#include #include #include #include #include #include #include "mfjterm.h" #include "inout.h" #include "misc.h" WINDOW *fkwin; void out_fk(int n) { int i; unsigned char c; for (i = 0; i < strlen(fkstr[n]); i++) { c = fkstr[n][i]; if (c == '|') c = 10; write_tnc(c); } } void show_fkeys(void) { char tmp[81]; int i; for (i = 0; i < 10; i++) { wmove(fkwin, 1 + i, (i < 9) ? 2 : 1); sprintf(tmp, "F%d: %s", i + 1, fkstr[i]); waddstr(fkwin, tmp); } wrefresh(fkwin); } void fkeys(void) { int c, n; unsigned char fkstr_bkup[71]; curs_set(0); fkwin = newwin(12, 78, 6, 1); keypad(fkwin, TRUE); wbkgd(fkwin, A_REVERSE); werase(fkwin); box(fkwin, 0, 0); show_fkeys(); while (1) { c = wgetch(fkwin); if ((c < KEY_F(1)) || (c > KEY_F(10))) break; n = (c - KEY_F(1)); strcpy(fkstr_bkup, fkstr[n]); wmove(fkwin, 1 + n, 6); waddstr(fkwin, " "); wmove(fkwin, 1 + n, 6); curs_set(1); wrefresh(fkwin); edgets(fkwin, fkstr[n], 70, FALSE); if (! strlen(fkstr[n])){ strcpy(fkstr[n], fkstr_bkup); wmove(fkwin, 1 + n, 6); waddstr(fkwin, fkstr[n]); } curs_set(0); wrefresh(fkwin); } delwin(fkwin); redrawwin(stdscr); move(tnc_y, tnc_x); curs_set(1); refresh(); } .