Newer
Older
cterm->scrollback = scrollback_buf;
cterm->backlines = settings.backlines;
if (cterm->backpos > cterm->backlines)
cterm->backpos = cterm->backlines;
showmouse();
_setcursortype(_NORMALCURSOR);
key = 0;
}
break;
case 0x2100: /* ALT-F */
setup_mouse_events(&ms);
case 0x2600: /* ALT-L */
if ((bbs->conn_type != CONN_TYPE_RLOGIN)
&& (bbs->conn_type != CONN_TYPE_RLOGIN_REVERSED)
&& (bbs->conn_type != CONN_TYPE_SSH)) {
if (bbs->conn_type != CONN_TYPE_SSHNA) {
if (bbs->user[0]) {
conn_send(bbs->user, strlen(bbs->user), 0);
conn_send(
cterm->emulation == CTERM_EMULATION_ATASCII ? "\x9b" : "\r",
1,
0);
if (bbs->password[0]) {
conn_send(bbs->password, strlen(bbs->password), 0);
conn_send(
cterm->emulation == CTERM_EMULATION_ATASCII ? "\x9b" : "\r",
1,
0);
SLEEP(10);
}
if (bbs->syspass[0]) {
conn_send(bbs->syspass, strlen(bbs->syspass), 0);
conn_send(cterm->emulation == CTERM_EMULATION_ATASCII ? "\x9b" : "\r",
1,
0);
setup_mouse_events(&ms);
setup_mouse_events(&ms);
case 17: /* CTRL-Q */
if ((cio_api.mode != CIOLIB_MODE_CURSES)
&& (cio_api.mode != CIOLIB_MODE_CURSES_ASCII)
&& (cio_api.mode != CIOLIB_MODE_CURSES_IBM)
&& (cio_api.mode != CIOLIB_MODE_ANSI))
break;
if ((cio_api.mode != CIOLIB_MODE_CURSES)
&& (cio_api.mode != CIOLIB_MODE_CURSES_ASCII)
&& (cio_api.mode != CIOLIB_MODE_CURSES_IBM)
&& (cio_api.mode != CIOLIB_MODE_ANSI)) {
/* FALLTHROUGH for curses/ansi modes */
case 0x2d00: /* Alt-X - Exit */
case CIO_KEY_QUIT:
if (!check_exit(true))
break;
// Fallthrough
case 0x2300: /* Alt-H - Hangup */
{
struct ciolib_screen *savscrn;
savscrn = savescreen();
setfont(0, false, 1);
setfont(0, false, 2);
setfont(0, false, 3);
setfont(0, false, 4);
if (quitting
|| confirm("Disconnect... Are you sure?",
"Selecting Yes closes the connection\n")) {
setup_mouse_events(&ms);
cterm_clearscreen(cterm, cterm->attr); /* Clear screen into
* scrollback */
scrollback_lines = cterm->backpos;
cterm_end(cterm, 0);
cterm = NULL;
conn_close();
hidemouse();
hold_update = oldmc;
return key == 0x2d00 /* Alt-X? */ || key == CIO_KEY_QUIT;
restorescreen(savscrn);
freescreen(savscrn);
setup_mouse_events(&ms);
showmouse();
}
case 19: /* CTRL-S */
if ((cio_api.mode != CIOLIB_MODE_CURSES)
&& (cio_api.mode != CIOLIB_MODE_CURSES_IBM)
&& (cio_api.mode != CIOLIB_MODE_ANSI))
break;
/* FALLTHROUGH for curses/ansi modes */
case 0x2c00: /* ALT-Z */
if (bbs->hidepopups)
break;
i = wherex();
j = wherey();
switch (syncmenu(bbs, &speed)) {
case -1:
cterm_clearscreen(cterm, cterm->attr); /* Clear screen into
* scrollback */
scrollback_lines = cterm->backpos;
begin_download(bbs);
capture_control(bbs);
break;
case 8:
break;
case 10:
#ifdef WITHOUT_OOII
xptone_close();
xptone_open();
break;
case 12:
#endif
cterm_clearscreen(cterm, cterm->attr); /* Clear screen into
* scrollback */
scrollback_lines = cterm->backpos;
#else
case 13:
#endif
struct ciolib_screen *savscrn;
char title[LIST_NAME_MAX + 13];
savscrn = savescreen();
setfont(0, false, 1);
setfont(0, false, 2);
setfont(0, false, 3);
setfont(0, false, 4);
show_bbslist(bbs->name, true);
sprintf(title, "SyncTERM - %s\n", bbs->name);
settitle(title);
restorescreen(savscrn);
freescreen(savscrn);
}
break;
setup_mouse_events(&ms);
case 0x9800: /* ALT-Up */
if ((bbs->conn_type != CONN_TYPE_SERIAL)
&& (bbs->conn_type != CONN_TYPE_SERIAL_NORTS)) {
if (speed)
speed = rates[get_rate_num(speed) + 1];
case 0xa000: /* ALT-Down */
if ((bbs->conn_type != CONN_TYPE_SERIAL)
&& (bbs->conn_type != CONN_TYPE_SERIAL_NORTS)) {
i = get_rate_num(speed);
if (i == 0)
speed = 0;
if (key && (cterm->emulation == CTERM_EMULATION_ATASCII)) {
/* Translate keys to ATASCII */
switch (key) {
case CIO_KEY_DC: /* "Delete" key */
case '\b': /* Backspace */
ch[0] = 126;
conn_send(ch, 1, 0);
if (key < 256) {
/* ASCII Translation */
if (key < 123) {
ch[0] = key;
conn_send(ch, 1, 0);
else if (key && (cterm->emulation == CTERM_EMULATION_PETASCII)) {
/* Translate keys to PETSCII */
switch (key) {
case CIO_KEY_END:
ch[0] = 147; /* Clear / Shift-Home */
conn_send(ch, 1, 0);
break;
case CIO_KEY_DC: /* "Delete" key */
ch[0] = 20;
conn_send(ch, 1, 0);
if (key < 256) {
ch[0] = key;
conn_send(ch, 1, 0);
break;
case CIO_KEY_END:
#ifdef CIO_KEY_SELECT
case CIO_KEY_SELECT: /* Some terminfo/termcap entries use KEY_SELECT as the END
* key! */
case CIO_KEY_DC: /* "Delete" key, send ASCII 127 (DEL) */
conn_send("\x7f", 1, 0);
case CIO_KEY_NPAGE: /* Page down */
conn_send("\033[U", 3, 0);
case CIO_KEY_PPAGE: /* Page up */
conn_send("\033[V", 3, 0);
break;
case CIO_KEY_SHIFT_F(2):
break;
case CIO_KEY_SHIFT_F(3):
break;
case CIO_KEY_SHIFT_F(4):
break;
case CIO_KEY_SHIFT_F(5):
break;
case CIO_KEY_SHIFT_F(6):
break;
case CIO_KEY_SHIFT_F(7):
break;
case CIO_KEY_SHIFT_F(8):
break;
case CIO_KEY_SHIFT_F(9):
break;
case CIO_KEY_SHIFT_F(10):
break;
case CIO_KEY_SHIFT_F(11):
break;
case CIO_KEY_SHIFT_F(12):
break;
case CIO_KEY_CTRL_F(1):
break;
case CIO_KEY_CTRL_F(2):
break;
case CIO_KEY_CTRL_F(3):
break;
case CIO_KEY_CTRL_F(4):
break;
case CIO_KEY_CTRL_F(5):
break;
case CIO_KEY_CTRL_F(6):
break;
case CIO_KEY_CTRL_F(7):
break;
case CIO_KEY_CTRL_F(8):
break;
case CIO_KEY_CTRL_F(9):
break;
case CIO_KEY_CTRL_F(10):
break;
case CIO_KEY_CTRL_F(11):
break;
case CIO_KEY_CTRL_F(12):
break;
case CIO_KEY_ALT_F(1):
break;
case CIO_KEY_ALT_F(2):
break;
case CIO_KEY_ALT_F(3):
break;
case CIO_KEY_ALT_F(4):
break;
case CIO_KEY_ALT_F(5):
break;
case CIO_KEY_ALT_F(6):
break;
case CIO_KEY_ALT_F(7):
break;
case CIO_KEY_ALT_F(8):
break;
case CIO_KEY_ALT_F(9):
break;
case CIO_KEY_ALT_F(10):
break;
case CIO_KEY_ALT_F(11):
break;
case CIO_KEY_ALT_F(12):
case 17: /* CTRL-Q */
ch[0] = key;
conn_send(ch, 1, 0);
case 19: /* CTRL-S */
ch[0] = key;
conn_send(ch, 1, 0);
case CIO_KEY_BACKTAB:
conn_send("\033[Z", 3, 0);
break;
if ((key < 256) && (key >= 0)) {
ch[0] = key;
conn_send(ch, 1, 0);
}
}