diff --git a/src/syncterm/bbslist.c b/src/syncterm/bbslist.c index 9abffd24a77e6b2b3d5172064957d73e3d6014c4..5ecc97b3dbecb53b559b410606e8a0fd36d15857 100644 --- a/src/syncterm/bbslist.c +++ b/src/syncterm/bbslist.c @@ -654,7 +654,7 @@ void change_settings(void) sprintf(opts[0],"Confirm Program Exit %s",settings.confirm_close?"Yes":"No"); sprintf(opts[1],"Startup Video Mode %s",screen_modes[settings.startup_mode]); sprintf(opts[2],"Scrollback Buffer Lines %d",settings.backlines); - switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&cur,NULL,"Program Settings",opt)) { + switch(uifc.list(WIN_ACT|WIN_MID|WIN_SAV,0,0,0,&cur,NULL,"Program Settings",opt)) { case -1: goto write_ini; case 0: @@ -664,33 +664,35 @@ void change_settings(void) case 1: j=settings.startup_mode; i=0; - for(;i!=-1;) { - switch(i=uifc.list(WIN_SAV,0,0,0,&j,NULL,"Startup Video Mode",screen_modes)) { - case -1: - continue; - default: - settings.startup_mode=j; - iniSetInteger(&inicontents,"SyncTERM","VideoMode",settings.startup_mode,&ini_style); - break; - } + switch(i=uifc.list(WIN_SAV,0,0,0,&j,NULL,"Startup Video Mode",screen_modes)) { + case -1: + continue; + default: + settings.startup_mode=j; + iniSetInteger(&inicontents,"SyncTERM","VideoMode",settings.startup_mode,&ini_style); + break; } break; case 2: sprintf(str,"%d",settings.backlines); - if(uifc.input(WIN_SAV|WIN_MID,0,0,"Scrollback Lines",str,9,K_NUMBER)!=-1) { + if(uifc.input(WIN_SAV|WIN_MID,0,0,"Scrollback Lines",str,9,K_NUMBER|K_EDIT)!=-1) { unsigned char *tmpscroll; j=atoi(str); - tmpscroll=(unsigned char *)realloc(scrollback_buf,80*2*j); - if(tmpscroll == NULL) { - uifc.msg("Cannot allocate space for scrollback."); - } + if(j<1) { + uifc.msg("Cannot set lines to less than one."); else { - if(scrollback_lines > j) - scrollback_lines=j; - scrollback_buf=tmpscroll; - settings.backlines=j; - iniSetInteger(&inicontents,"SyncTERM","ScrollBackLines",settings.backlines,&ini_style); + tmpscroll=(unsigned char *)realloc(scrollback_buf,80*2*j); + if(tmpscroll == NULL) { + uifc.msg("Cannot allocate space for scrollback."); + } + else { + if(scrollback_lines > j) + scrollback_lines=j; + scrollback_buf=tmpscroll; + settings.backlines=j; + iniSetInteger(&inicontents,"SyncTERM","ScrollBackLines",settings.backlines,&ini_style); + } } } break;