diff --git a/src/sbbs3/inkey.cpp b/src/sbbs3/inkey.cpp index 8cbbc78d8fa82b4cc51b25b8db5a68f6b1a6c21f..4a57986f108e0b1ab6fbed15df52ddc841db9018 100644 --- a/src/sbbs3/inkey.cpp +++ b/src/sbbs3/inkey.cpp @@ -112,7 +112,23 @@ char sbbs_t::inkey(long mode) if(cfg.hotkey[i]->key==ch) break; if(i<cfg.total_hotkeys) { + if(hotkey_inside>1) /* only allow so much recursion */ + return(0); + if(mode&K_SPIN) + bputs("\b "); + if(!(sys_status&SS_SPLITP)) { + SAVELINE; + attr(LIGHTGRAY); + CRLF; + } + hotkey_inside++; external(cfg.hotkey[i]->cmd,0); + hotkey_inside--; + if(!(sys_status&SS_SPLITP)) { + CRLF; + RESTORELINE; + } + lncntr=0; return(0); } if(ch==CTRL_O) { /* Ctrl-O toggles pause temporarily */