#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <curses.h>
#include <ncinput.h>
#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();
}