This is s_axfer.c in view mode; [Download] [Up]
/* * Display the ASCII transfer setup, query for changes. A non-zero return * code means something was changed. */ #include <stdio.h> #include <curses.h> #include "config.h" #include "misc.h" #include "param.h" int axfer_setup() { extern char *v_yes[]; WINDOW *x_win, *newwin(); int i, ret_code, num; char *ans, *menu_prompt(), *str_rep(); static char *v_cr[4] = {"NONE", "STRIP", "ADD LF", NULL}; static char *v_lf[4] = {"NONE", "STRIP", "ADD CR", NULL}; static char *v_delay[4] = {"0", "100", "150", NULL}; x_win = newwin(23, 80, 0, 0); horizontal(x_win, 0, 0, 28); mvwattrstr(x_win, 0, 29, A_BOLD, "ASCII Transfer Setup"); horizontal(x_win, 0, 50, 29); mvwaddstr(x_win, 3, 33, "ASCII UPLOAD"); mvwprintw(x_win, 5, 22, "1) Echo locally ........... %s", param->lecho); mvwprintw(x_win, 6, 22, "2) Expand blank lines ..... %s", param->expand); mvwprintw(x_win, 7, 22, "3) CR delay (ms) .......... %d", param->cr_delay); mvwprintw(x_win, 8, 22, "4) Pace the output ........ %s", param->pace); mvwprintw(x_win, 9, 22, "5) CR translation ......... %s", param->cr_up); mvwprintw(x_win, 10, 22, "6) LF translation ......... %s", param->lf_up); mvwaddstr(x_win, 12, 32, "ASCII DOWNLOAD"); mvwprintw(x_win, 14, 22, "7) Transfer timeout (sec) . %d", param->timer); mvwprintw(x_win, 15, 22, "8) CR translation ......... %s", param->cr_dn); mvwprintw(x_win, 16, 22, "9) LF translation ......... %s", param->lf_dn); horizontal(x_win, 19, 0, 80); mvwattrstr(x_win, 20, 0, A_BOLD, "OPTION ==> "); mvwaddstr(x_win, 20, 58, "Press <ESC> to return"); wmove(x_win, 20, 12); touchwin(x_win); wrefresh(x_win); /* get the option number */ ret_code = 0; while ((i = get_num(x_win, 1)) != -1) { switch (i) { case 1: if ((ans = menu_prompt(x_win, 5, 50, "Echo locally", v_yes)) != NULL) { param->lecho = str_rep(param->lecho, ans); ret_code++; } break; case 2: if ((ans = menu_prompt(x_win, 6, 50, "Expand blank lines", v_yes)) != NULL) { param->expand = str_rep(param->expand, ans); ret_code++; } break; case 3: if ((ans = menu_prompt(x_win, 7, 50, "CR delay (ms)", v_delay)) != NULL) { param->cr_delay = atoi(ans); ret_code++; } break; case 4: if ((ans = menu_prompt(x_win, 8, 50, "Pace the output", v_yes)) != NULL) { param->pace = str_rep(param->pace, ans); ret_code++; } break; case 5: if ((ans = menu_prompt(x_win, 9, 50, "CR translation (upload)", v_cr)) != NULL) { param->cr_up = str_rep(param->cr_up, ans); ret_code++; } break; case 6: if ((ans = menu_prompt(x_win, 10, 50, "LF translation (upload)", v_lf)) != NULL) { param->lf_up = str_rep(param->lf_up, ans); ret_code++; } break; case 7: if ((num = num_prompt(x_win, 14, 50, "Transfer timeout", "(in seconds)")) != -1) { if (num > MAX_TIMER || num < MIN_TIMER) { beep(); /* some reasonable range of values */ if (num < MIN_TIMER) num = MIN_TIMER; else num = MAX_TIMER; mvwaddstr(x_win, 14, 50, " "); wrefresh(x_win); mvwattrnum(x_win, 14, 50, A_BOLD, num); wrefresh(x_win); } param->timer = num; ret_code++; } break; case 8: if ((ans = menu_prompt(x_win, 15, 50, "CR translation (download)", v_cr)) != NULL) { param->cr_dn = str_rep(param->cr_dn, ans); ret_code++; } break; case 9: if ((ans = menu_prompt(x_win, 16, 50, "LF translation (download)", v_lf)) != NULL) { param->lf_dn = str_rep(param->lf_dn, ans); ret_code++; } break; default: beep(); } mvwaddch(x_win, 20, 12, (chtype) ' '); clear_line(x_win, 21, 0, FALSE); clear_line(x_win, 22, 0, FALSE); wmove(x_win, 20, 12); wrefresh(x_win); } delwin(x_win); return(ret_code); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.