diff --git a/src/sbbs3/uedit/uedit.c b/src/sbbs3/uedit/uedit.c index 9d08663da80b411662fd70cf3629da28065d4e67..3fc45300891a0097ff9749adc321455977fa3102 100644 --- a/src/sbbs3/uedit/uedit.c +++ b/src/sbbs3/uedit/uedit.c @@ -117,7 +117,7 @@ int confirm(char *prompt) ,"" }; - i=uifc.list(WIN_MID|WIN_SAV,0,0,0,&i,0,prompt,opt); + i=uifc.list(WIN_MID|WIN_ACT|WIN_SAV,0,0,0,&i,0,prompt,opt); if(i==0) return(1); if(i==-1) @@ -186,6 +186,83 @@ time_t DLLCALL strtosec(char *str) */ int edit_terminal(scfg_t *cfg, user_t *user) { + int i,j; + char **opt; + char str[256]; + + if((opt=(char **)MALLOC(sizeof(char *)*(MAX_OPTS+1)))==NULL) + allocfail(sizeof(char *)*(MAX_OPTS+1)); + for(i=0;i<(MAX_OPTS+1);i++) + if((opt[i]=(char *)MALLOC(MAX_OPLN))==NULL) + allocfail(MAX_OPLN); + + j=0; + while(1) { + i=0; + sprintf(opt[i++],"Auto-detect: %s",user->misc & AUTOTERM?"Yes":"No"); + sprintf(opt[i++],"Extended ASCII: %s",user->misc & NO_EXASCII?"No":"Yes"); + sprintf(opt[i++],"ANSI: %s",user->misc & ANSI?"Yes":"No"); + sprintf(opt[i++],"Colour: %s",user->misc & COLOR?"Yes":"No"); + sprintf(opt[i++],"RIP: %s",user->misc & RIP?"Yes":"No"); + sprintf(opt[i++],"WIP: %s",user->misc & WIP?"Yes":"No"); + sprintf(opt[i++],"Pause: %s",user->misc & UPAUSE?"Yes":"No"); + sprintf(opt[i++],"Hot Keys: %s",user->misc & COLDKEYS?"No":"Yes"); + sprintf(opt[i++],"Spinning Cursor: %s",user->misc & SPIN?"Yes":"No"); + sprintf(str,"%u",user->rows); + sprintf(opt[i++],"Number of Rows: %s",user->rows?str:"Auto"); + opt[i][0]=0; + switch(uifc.list(WIN_MID|WIN_ACT|WIN_SAV,0,0,0,&j,0,"Terminal Settings",opt)) { + case -1: + freeopt(opt); + return(0); + break; + case 0: + /* Auto-detect */ + user->misc ^= AUTOTERM; + break; + case 1: + /* EX-ASCII */ + user->misc ^= NO_EXASCII; + break; + case 2: + /* ANSI */ + user->misc ^= ANSI; + break; + case 3: + /* Colour */ + user->misc ^= COLOR; + break; + case 4: + /* RIP */ + user->misc ^= RIP; + break; + case 5: + /* WIP */ + user->misc ^= WIP; + break; + case 6: + /* Pause */ + user->misc ^= UPAUSE; + break; + case 7: + /* Hot Keys */ + user->misc ^= COLDKEYS; + break; + case 8: + /* Spinning Cursor */ + user->misc ^= SPIN; + break; + case 9: + /* Rows */ + sprintf(str,"%u",user->rows); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Rows",str,3,K_EDIT|K_NUMBER); + if(uifc.changes) { + modified=1; + user->rows=strtoul(str,NULL,10); + } + break; + } + } return(0); } @@ -198,6 +275,51 @@ int edit_terminal(scfg_t *cfg, user_t *user) */ int edit_logon(scfg_t *cfg, user_t *user) { + int i,j; + char **opt; + + if((opt=(char **)MALLOC(sizeof(char *)*(MAX_OPTS+1)))==NULL) + allocfail(sizeof(char *)*(MAX_OPTS+1)); + for(i=0;i<(MAX_OPTS+1);i++) + if((opt[i]=(char *)MALLOC(MAX_OPLN))==NULL) + allocfail(MAX_OPLN); + + j=0; + while(1) { + i=0; + sprintf(opt[i++],"Ask for New Message Scan: %s",user->misc & ASK_NSCAN?"Yes":"No"); + sprintf(opt[i++],"Ask for Your Message Scan: %s",user->misc & ASK_SSCAN?"Yes":"No"); + sprintf(opt[i++],"Remember Current Sub: %s",user->misc & CURSUB?"Yes":"No"); + sprintf(opt[i++],"Quiet Mode: (Q exempt) %s",user->misc & QUIET?"Yes":"No"); + sprintf(opt[i++],"Auto-Login via IP (V exempt) %s",user->misc & AUTOLOGON?"Yes":"No"); + opt[i][0]=0; + switch(uifc.list(WIN_MID|WIN_ACT|WIN_SAV,0,0,0,&j,0,"Logon Settings",opt)) { + case -1: + freeopt(opt); + return(0); + break; + case 0: + /* Ask New MSG Scan */ + user->misc ^= ASK_NSCAN; + break; + case 1: + /* Ask YOUR MSG scan */ + user->misc ^= ASK_SSCAN; + break; + case 2: + /* Remember Curr Sub */ + user->misc ^= CURSUB; + break; + case 3: + /* Quiet Mode */ + user->misc ^= QUIET; + break; + case 4: + /* Auto-Login by IP */ + user->misc ^= AUTOLOGON; + break; + } + } return(0); } @@ -210,6 +332,79 @@ int edit_logon(scfg_t *cfg, user_t *user) */ int edit_chat(scfg_t *cfg, user_t *user) { + int i,j; + char **opt; + + if((opt=(char **)MALLOC(sizeof(char *)*(MAX_OPTS+1)))==NULL) + allocfail(sizeof(char *)*(MAX_OPTS+1)); + for(i=0;i<(MAX_OPTS+1);i++) + if((opt[i]=(char *)MALLOC(MAX_OPLN))==NULL) + allocfail(MAX_OPLN); + + j=0; + while(1) { + i=0; + sprintf(opt[i++],"Chat Echo: %s",user->chat & CHAT_ECHO?"Yes":"No"); + sprintf(opt[i++],"Chat Actions: %s",user->chat & CHAT_ACTION?"Yes":"No"); + sprintf(opt[i++],"Available for Chat: %s",user->chat & CHAT_NOPAGE?"No":"Yes"); + sprintf(opt[i++],"Activity Alerts %s",user->chat & CHAT_NOACT?"No":"Yes"); + sprintf(opt[i++],"Split-Screen Private Chat: %s",user->chat & CHAT_SPLITP?"Yes":"No"); + opt[i][0]=0; + switch(uifc.list(WIN_MID|WIN_ACT|WIN_SAV,0,0,0,&j,0,"Chat Settings",opt)) { + case -1: + freeopt(opt); + return(0); + break; + case 0: + /* Chat Echo */ + user->chat ^= CHAT_ECHO; + break; + case 1: + /* Chat Actions */ + user->chat ^= CHAT_ACTION; + break; + case 2: + /* Availabe for Chat */ + user->chat ^= CHAT_NOPAGE; + break; + case 3: + /* Activity Alerts */ + user->chat ^= CHAT_NOACT; + break; + case 4: + /* Split-Screen Priv Chat */ + user->chat ^= CHAT_SPLITP; + break; + } + } + return(0); +} + +/* Pick Command Shell */ +int edit_shell(scfg_t *cfg, user_t *user) +{ + int i,j; + char **opt; + + if((opt=(char **)MALLOC(sizeof(char *)*(MAX_OPTS+1)))==NULL) + allocfail(sizeof(char *)*(MAX_OPTS+1)); + + + for(i=0;i<cfg->total_shells;i++) { + opt[i]=cfg->shell[i]->name; + } + opt[i]=""; + j=user->shell-1; + switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&j,0,"Shell",opt)) { + case -1: + break; + default: + if(user->shell != j+1) + modified=1; + user->shell=j+1; + break; + } + free(opt); return(0); } @@ -219,6 +414,37 @@ int edit_chat(scfg_t *cfg, user_t *user) */ int edit_cmd(scfg_t *cfg, user_t *user) { + int i,j; + char **opt; + + if((opt=(char **)MALLOC(sizeof(char *)*(MAX_OPTS+1)))==NULL) + allocfail(sizeof(char *)*(MAX_OPTS+1)); + for(i=0;i<(MAX_OPTS+1);i++) + if((opt[i]=(char *)MALLOC(MAX_OPLN))==NULL) + allocfail(MAX_OPLN); + + j=0; + while(1) { + i=0; + sprintf(opt[i++],"Command Shell: %s",cfg->shell[user->shell]->name); + sprintf(opt[i++],"Expert Mode: %s",user->misc & EXPERT?"Yes":"No"); + opt[i][0]=0; + switch(uifc.list(WIN_MID|WIN_ACT|WIN_SAV,0,0,0,&j,0,"Command Shell",opt)) { + case -1: + freeopt(opt); + return(0); + break; + case 0: + /* Command Shell */ + edit_shell(cfg,user); + break; + case 1: + /* Expoert Mode */ + user->misc ^= EXPERT; + break; + } + } + return(0); } @@ -255,7 +481,7 @@ int edit_settings(scfg_t *cfg, user_t *user) int i=0; while(1) { - switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&i,0,"Settings",opt)) { + switch(uifc.list(WIN_BOT|WIN_RHT|WIN_ACT,0,0,0,&i,0,"Settings",opt)) { case -1: return(0); break; @@ -335,7 +561,7 @@ int edit_stats(scfg_t *cfg, user_t *user) sprintf(opt[i++],"Total Uploads: %hu",user->uls); sprintf(opt[i++],"Uploaded Bytes: %lu",user->ulb); sprintf(opt[i++],"Leech: %u",user->leech); - switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&j,0,"Statistics",opt)) { + switch(uifc.list(WIN_MID|WIN_ACT,0,0,0,&j,0,"Statistics",opt)) { case -1: freeopt(opt); return(0); @@ -344,11 +570,11 @@ int edit_stats(scfg_t *cfg, user_t *user) /* First On */ temptime=user->firston; unixtodstr(cfg,temptime,str); - uifc.input(WIN_MID|WIN_SAV,0,0,"First On Date",str,8,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"First On Date",str,8,K_EDIT); user->firston=dstrtounix(cfg, str); temptime2=temptime-user->firston; sectostr(temptime2,str); - uifc.input(WIN_MID|WIN_SAV,0,0,"First On Time",str,8,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"First On Time",str,8,K_EDIT); temptime2=strtosec(str); if(temptime2!=-1) user->firston += temptime2; @@ -359,11 +585,11 @@ int edit_stats(scfg_t *cfg, user_t *user) /* Last On */ temptime=user->laston; unixtodstr(cfg,temptime,str); - uifc.input(WIN_MID|WIN_SAV,0,0,"Last On Date",str,8,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Last On Date",str,8,K_EDIT); user->laston=dstrtounix(cfg, str); temptime2=temptime-user->laston; sectostr(temptime2,str); - uifc.input(WIN_MID|WIN_SAV,0,0,"Last On Time",str,8,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Last On Time",str,8,K_EDIT); temptime2=strtosec(str); if(temptime2!=-1) user->laston += temptime2; @@ -374,11 +600,11 @@ int edit_stats(scfg_t *cfg, user_t *user) /* Logon Time */ temptime=user->logontime; unixtodstr(cfg,temptime,str); - uifc.input(WIN_MID|WIN_SAV,0,0,"Logon Date",str,8,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Logon Date",str,8,K_EDIT); user->logontime=dstrtounix(cfg, str); temptime2=temptime-user->logontime; sectostr(temptime2,str); - uifc.input(WIN_MID|WIN_SAV,0,0,"Logon Time",str,8,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Logon Time",str,8,K_EDIT); temptime2=strtosec(str); if(temptime2!=-1) user->logontime += temptime2; @@ -388,7 +614,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 3: /* Total Logons */ sprintf(str,"%hu",user->logons); - uifc.input(WIN_MID|WIN_SAV,0,0,"Total Logons",str,5,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Total Logons",str,5,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->logons=strtoul(str,NULL,10); @@ -397,7 +623,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 4: /* Todays Logons */ sprintf(str,"%hu",user->ltoday); - uifc.input(WIN_MID|WIN_SAV,0,0,"Todays Logons",str,5,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Todays Logons",str,5,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->ltoday=strtoul(str,NULL,10); @@ -406,7 +632,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 5: /* Total Posts */ sprintf(str,"%hu",user->posts); - uifc.input(WIN_MID|WIN_SAV,0,0,"Total Posts",str,5,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Total Posts",str,5,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->posts=strtoul(str,NULL,10); @@ -415,7 +641,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 6: /* Todays Posts */ sprintf(str,"%hu",user->ptoday); - uifc.input(WIN_MID|WIN_SAV,0,0,"Todays Posts",str,5,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Todays Posts",str,5,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->ptoday=strtoul(str,NULL,10); @@ -424,7 +650,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 7: /* Total Emails */ sprintf(str,"%hu",user->emails); - uifc.input(WIN_MID|WIN_SAV,0,0,"Total Emails",str,5,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Total Emails",str,5,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->emails=strtoul(str,NULL,10); @@ -433,7 +659,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 8: /* Todays Emails */ sprintf(str,"%hu",user->etoday); - uifc.input(WIN_MID|WIN_SAV,0,0,"Todays Emails",str,5,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Todays Emails",str,5,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->etoday=strtoul(str,NULL,10); @@ -442,7 +668,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 9: /* Emails to Sysop */ sprintf(str,"%hu",user->fbacks); - uifc.input(WIN_MID|WIN_SAV,0,0,"Emails to Sysop",str,5,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Emails to Sysop",str,5,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->fbacks=strtoul(str,NULL,10); @@ -451,7 +677,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 10: /* Total Time On */ sprintf(str,"%hu",user->timeon); - uifc.input(WIN_MID|WIN_SAV,0,0,"Total Time On",str,5,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Total Time On",str,5,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->timeon=strtoul(str,NULL,10); @@ -460,7 +686,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 11: /* Time On Today */ sprintf(str,"%hu",user->ttoday); - uifc.input(WIN_MID|WIN_SAV,0,0,"Time On Today",str,5,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Time On Today",str,5,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->ttoday=strtoul(str,NULL,10); @@ -469,7 +695,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 12: /* Time On Last Call */ sprintf(str,"%hu",user->tlast); - uifc.input(WIN_MID|WIN_SAV,0,0,"Time On Last Call",str,5,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Time On Last Call",str,5,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->tlast=strtoul(str,NULL,10); @@ -478,7 +704,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 13: /* Extra Time Today */ sprintf(str,"%hu",user->textra); - uifc.input(WIN_MID|WIN_SAV,0,0,"Extra Time Today",str,5,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Extra Time Today",str,5,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->textra=strtoul(str,NULL,10); @@ -487,7 +713,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 14: /* Total Downloads */ sprintf(str,"%hu",user->dls); - uifc.input(WIN_MID|WIN_SAV,0,0,"Total Downloads",str,5,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Total Downloads",str,5,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->dls=strtoul(str,NULL,10); @@ -496,7 +722,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 15: /* Downloaded Bytes */ sprintf(str,"%lu",user->dlb); - uifc.input(WIN_MID|WIN_SAV,0,0,"Downloaded Bytes",str,10,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Downloaded Bytes",str,10,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->dlb=strtoul(str,NULL,10); @@ -505,7 +731,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 16: /* Total Uploads */ sprintf(str,"%hu",user->uls); - uifc.input(WIN_MID|WIN_SAV,0,0,"Total Uploads",str,5,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Total Uploads",str,5,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->uls=strtoul(str,NULL,10); @@ -514,7 +740,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 17: /* Uploaded Bytes */ sprintf(str,"%lu",user->ulb); - uifc.input(WIN_MID|WIN_SAV,0,0,"Uploaded Bytes",str,10,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Uploaded Bytes",str,10,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->ulb=strtoul(str,NULL,10); @@ -523,7 +749,7 @@ int edit_stats(scfg_t *cfg, user_t *user) case 18: /* Leech Counter */ sprintf(str,"%u",user->leech); - uifc.input(WIN_MID|WIN_SAV,0,0,"Leech Counter",str,3,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Leech Counter",str,3,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->leech=strtoul(str,NULL,10); @@ -574,7 +800,7 @@ int edit_security(scfg_t *cfg, user_t *user) sprintf(opt[i++],"Free Credits: %lu",user->freecdt); sprintf(opt[i++],"Minutes: %lu",user->min); opt[i][0]=0; - switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&j,0,"Security Settings",opt)) { + switch(uifc.list(WIN_MID|WIN_ACT,0,0,0,&j,0,"Security Settings",opt)) { case -1: freeopt(opt); return(0); @@ -582,7 +808,7 @@ int edit_security(scfg_t *cfg, user_t *user) case 0: /* Level */ sprintf(str,"%d",user->level); - uifc.input(WIN_MID|WIN_SAV,0,0,"Level",str,2,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Level",str,2,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->level=atoi(str); @@ -591,7 +817,7 @@ int edit_security(scfg_t *cfg, user_t *user) case 1: /* Expiration */ unixtodstr(cfg,user->expire,str); - uifc.input(WIN_MID|WIN_SAV,0,0,"Expiration",str,8,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Expiration",str,8,K_EDIT); if(uifc.changes && dstrtounix(cfg, str)!=user->expire) { modified=1; user->expire=dstrtounix(cfg, str); @@ -600,7 +826,7 @@ int edit_security(scfg_t *cfg, user_t *user) case 2: /* Flag Set 1 */ ltoaf(user->flags1,str); - uifc.input(WIN_MID|WIN_SAV,0,0,"Flag Set 1",str,26,K_EDIT|K_UPPER|K_ALPHA); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Flag Set 1",str,26,K_EDIT|K_UPPER|K_ALPHA); if(uifc.changes) { modified=1; user->flags1=aftol(str); @@ -609,7 +835,7 @@ int edit_security(scfg_t *cfg, user_t *user) case 3: /* Flag Set 2 */ ltoaf(user->flags2,str); - uifc.input(WIN_MID|WIN_SAV,0,0,"Flag Set 2",str,26,K_EDIT|K_UPPER|K_ALPHA); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Flag Set 2",str,26,K_EDIT|K_UPPER|K_ALPHA); if(uifc.changes) { modified=1; user->flags2=aftol(str); @@ -618,7 +844,7 @@ int edit_security(scfg_t *cfg, user_t *user) case 4: /* Flag Set 3 */ ltoaf(user->flags3,str); - uifc.input(WIN_MID|WIN_SAV,0,0,"Flag Set 3",str,26,K_EDIT|K_UPPER|K_ALPHA); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Flag Set 3",str,26,K_EDIT|K_UPPER|K_ALPHA); if(uifc.changes) { modified=1; user->flags3=aftol(str); @@ -627,7 +853,7 @@ int edit_security(scfg_t *cfg, user_t *user) case 5: /* Flag Set 4 */ ltoaf(user->flags4,str); - uifc.input(WIN_MID|WIN_SAV,0,0,"Flag Set 4",str,26,K_EDIT|K_UPPER|K_ALPHA); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Flag Set 4",str,26,K_EDIT|K_UPPER|K_ALPHA); if(uifc.changes) { modified=1; user->flags4=aftol(str); @@ -636,7 +862,7 @@ int edit_security(scfg_t *cfg, user_t *user) case 6: /* Exemptions */ ltoaf(user->exempt,str); - uifc.input(WIN_MID|WIN_SAV,0,0,"Exemptions",str,26,K_EDIT|K_UPPER|K_ALPHA); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Exemptions",str,26,K_EDIT|K_UPPER|K_ALPHA); if(uifc.changes) { modified=1; user->exempt=aftol(str); @@ -645,7 +871,7 @@ int edit_security(scfg_t *cfg, user_t *user) case 7: /* Restrictions */ ltoaf(user->rest,str); - uifc.input(WIN_MID|WIN_SAV,0,0,"Restrictions",str,26,K_EDIT|K_UPPER|K_ALPHA); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Restrictions",str,26,K_EDIT|K_UPPER|K_ALPHA); if(uifc.changes) { modified=1; user->rest=aftol(str); @@ -654,7 +880,7 @@ int edit_security(scfg_t *cfg, user_t *user) case 8: /* Credits */ sprintf(str,"%lu",user->cdt); - uifc.input(WIN_MID|WIN_SAV,0,0,"Credits",str,10,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Credits",str,10,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->cdt=strtoul(str,NULL,10); @@ -663,7 +889,7 @@ int edit_security(scfg_t *cfg, user_t *user) case 9: /* Free Credits */ sprintf(str,"%lu",user->freecdt); - uifc.input(WIN_MID|WIN_SAV,0,0,"Free Credits",str,10,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Free Credits",str,10,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->freecdt=strtoul(str,NULL,10); @@ -672,7 +898,7 @@ int edit_security(scfg_t *cfg, user_t *user) case 10: /* Minutes */ sprintf(str,"%lu",user->min); - uifc.input(WIN_MID|WIN_SAV,0,0,"Minutes",str,10,K_EDIT|K_NUMBER); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Minutes",str,10,K_EDIT|K_NUMBER); if(uifc.changes) { modified=1; user->min=strtoul(str,NULL,10); @@ -730,50 +956,50 @@ int edit_personal(scfg_t *cfg, user_t *user) sprintf(opt[i++],"Postal/Zip: %s",user->zipcode); opt[i][0]=0; uifc.changes=FALSE; - switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&j,0,"Personal Settings",opt)) { + switch(uifc.list(WIN_MID|WIN_ACT,0,0,0,&j,0,"Personal Settings",opt)) { case -1: freeopt(opt); return(0); case 0: /* Real Name */ - uifc.input(WIN_MID|WIN_SAV,0,0,"Real Name",user->name,LEN_NAME,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Real Name",user->name,LEN_NAME,K_EDIT); if(uifc.changes) modified=1; break; case 1: /* Computer */ - uifc.input(WIN_MID|WIN_SAV,0,0,"Computer",user->comp,LEN_COMP,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Computer",user->comp,LEN_COMP,K_EDIT); if(uifc.changes) modified=1; break; case 2: /* NetMail */ - uifc.input(WIN_MID|WIN_SAV,0,0,"NetMail Address",user->netmail,LEN_NETMAIL,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"NetMail Address",user->netmail,LEN_NETMAIL,K_EDIT); if(uifc.changes) modified=1; break; case 3: /* Phone */ - uifc.input(WIN_MID|WIN_SAV,0,0,"Phone",user->phone,LEN_PHONE,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Phone",user->phone,LEN_PHONE,K_EDIT); if(uifc.changes) modified=1; break; case 4: /* Note */ - uifc.input(WIN_MID|WIN_SAV,0,0,"Note",user->note,LEN_NOTE,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Note",user->note,LEN_NOTE,K_EDIT); if(uifc.changes) modified=1; break; case 5: /* Comment */ - uifc.input(WIN_MID|WIN_SAV,0,0,"Comment",user->comment,LEN_COMMENT,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Comment",user->comment,LEN_COMMENT,K_EDIT); if(uifc.changes) modified=1; break; case 6: /* Gender */ sprintf(onech,"%c",user->sex); - uifc.input(WIN_MID|WIN_SAV,0,0,"Gender",onech,1,K_UPPER|K_ALPHA|K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Gender",onech,1,K_UPPER|K_ALPHA|K_EDIT); if(onech[0]!=user->sex && (onech[0]=='M' || onech[0]=='F')) { modified=1; user->sex=onech[0]; @@ -781,37 +1007,37 @@ int edit_personal(scfg_t *cfg, user_t *user) break; case 7: /* Connection */ - uifc.input(WIN_MID|WIN_SAV,0,0,"Connection",user->modem,LEN_MODEM,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Connection",user->modem,LEN_MODEM,K_EDIT); if(uifc.changes) modified=1; break; case 8: /* Handle */ - uifc.input(WIN_MID|WIN_SAV,0,0,"Handle",user->alias,LEN_ALIAS,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Handle",user->alias,LEN_ALIAS,K_EDIT); if(uifc.changes) modified=1; break; case 9: /* Password */ - uifc.input(WIN_MID|WIN_SAV,0,0,"Password",user->pass,LEN_PASS,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Password",user->pass,LEN_PASS,K_EDIT); if(uifc.changes) modified=1; break; case 10: /* Location */ - uifc.input(WIN_MID|WIN_SAV,0,0,"Location",user->location,LEN_LOCATION,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Location",user->location,LEN_LOCATION,K_EDIT); if(uifc.changes) modified=1; break; case 11: /* Address */ - uifc.input(WIN_MID|WIN_SAV,0,0,"Address",user->address,LEN_ADDRESS,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Address",user->address,LEN_ADDRESS,K_EDIT); if(uifc.changes) modified=1; break; case 12: /* Postal/Zip */ - uifc.input(WIN_MID|WIN_SAV,0,0,"Postal/Zip Code",user->zipcode,LEN_ZIPCODE,K_EDIT); + uifc.input(WIN_MID|WIN_ACT|WIN_SAV,0,0,"Postal/Zip Code",user->zipcode,LEN_ZIPCODE,K_EDIT); if(uifc.changes) modified=1; break; @@ -860,7 +1086,7 @@ int edit_user(scfg_t *cfg, int usernum) strcpy(opt[i++],"Extended Comment"); opt[i][0]=0; - switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&j,0,"Edit User",opt)) { + switch(uifc.list(WIN_ORG|WIN_ACT,0,0,0,&j,0,"Edit User",opt)) { case -1: if(modified) { i=check_save(cfg,&user); @@ -1088,7 +1314,7 @@ int main(int argc, char** argv) { "\n" "\nIf you want to exit the Synchronet user editor," "\nselect `Yes`. Otherwise, select `No` or hit ~ ESC ~."; - if(confirm("Exit Synchronet User Editor")) + if(confirm("Exit Synchronet User Editor")==1) bail(0); continue; } @@ -1111,7 +1337,7 @@ int main(int argc, char** argv) { } opt[i-1][0]=0; i=0; - switch(uifc.list(WIN_MID,0,0,0,&i,0,"Select User",opt)) { + switch(uifc.list(WIN_ORG|WIN_MID|WIN_ACT,0,0,0,&i,0,"Select User",opt)) { case -1: done=1; break;