X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Froutines.c;h=65798e27f7065491ecbff55d45bb1c03f7918dc6;hb=44bdabdda4dc6e9823e0464c37157c960abac9f7;hp=cfae5d1831b099d7e6477aadb1f5ae29ea4e2c53;hpb=4f0a46fc946ddc739758c6be5532543a4fff3c2b;p=citadel.git diff --git a/citadel/routines.c b/citadel/routines.c index cfae5d183..65798e27f 100644 --- a/citadel/routines.c +++ b/citadel/routines.c @@ -82,12 +82,12 @@ void hit_any_key(CtdlIPC *ipc) { /* hit any key to continue */ color(DIM_RED); scr_printf("%s\r", ipc->ServInfo.moreprompt); color(COLOR_POP); - sttybbs(0); + stty_ctdl(0); b=inkey(); for (a=0; aServInfo.moreprompt); ++a) scr_putc(' '); scr_putc(13); - sttybbs(1); + stty_ctdl(1); if ( (rc_prompt_control == 1) || ((rc_prompt_control == 3) && (userflags & US_PROMPTCTL)) ) { if (b == 'q' || b == 'Q' || b == 's' || b == 'S') @@ -100,9 +100,9 @@ void hit_any_key(CtdlIPC *ipc) { /* hit any key to continue */ } /* - * change a user's access level + * Edit or delete a user (cmd=25 to edit/create, 96 to delete) */ -void edituser(CtdlIPC *ipc) +void edituser(CtdlIPC *ipc, int cmd) { char buf[SIZ]; char who[USERNAME_SIZE]; @@ -110,47 +110,57 @@ void edituser(CtdlIPC *ipc) int newnow = 0; int r; /* IPC response code */ - newprompt("User name: ", who, 25); + newprompt("User name: ", who, 29); while ((r = CtdlIPCAideGetUserParameters(ipc, who, &user, buf)) / 100 != 2) { scr_printf("%s\n", buf); - scr_printf("Do you want to create this user? "); - if (yesno()) { - r = CtdlIPCCreateUser(ipc, who, 0, buf); - if (r / 100 == 2) { - newnow = 1; - continue; + if (cmd == 25) { + scr_printf("Do you want to create this user? "); + if (yesno()) { + r = CtdlIPCCreateUser(ipc, who, 0, buf); + if (r / 100 == 2) { + newnow = 1; + continue; + } + scr_printf("%s\n",&buf[4]); } - scr_printf("%s\n",&buf[4]); } free(user); return; } - val_user(ipc, user->fullname, 0); /* Display registration */ + if (cmd == 25) { + val_user(ipc, user->fullname, 0); /* Display registration */ - if (newnow || boolprompt("Change password", 0)) { /* I'm lazy */ - strprompt("Password", user->password, -19); + if (newnow || boolprompt("Change password", 0)) { + strprompt("Password", user->password, -19); + } + + user->axlevel = intprompt("Access level", user->axlevel, 0, 6); + + user->flags = set_attr(ipc, user->flags, + "Permission to send Internet mail", + US_INTERNET, 0); + + if (boolprompt("Ask user to register again", !(user->flags & US_REGIS))) + user->flags &= ~US_REGIS; + else + user->flags |= US_REGIS; + user->timescalled = intprompt("Times called", + user->timescalled, 0, INT_MAX); + user->posted = intprompt("Messages posted", + user->posted, 0, INT_MAX); + user->lastcall = boolprompt("Set last call to now", 0) ? + time(NULL) : user->lastcall; + user->USuserpurge = intprompt("Purge time (in days, 0 for system default", + user->USuserpurge, 0, INT_MAX); } - user->axlevel = intprompt("Access level", user->axlevel, 0, 6); - - user->flags = set_attr(ipc, user->flags, - "Permission to send Internet mail", - US_INTERNET, 0); - - if (boolprompt("Ask user to register again", !(user->flags & US_REGIS))) - user->flags &= ~US_REGIS; - else - user->flags |= US_REGIS; - user->timescalled = intprompt("Times called", - user->timescalled, 0, INT_MAX); - user->posted = intprompt("Messages posted", - user->posted, 0, INT_MAX); - user->lastcall = boolprompt("Set last call to now", 0) ? - time(NULL) : user->lastcall; - user->USuserpurge = intprompt("Purge time (in days, 0 for system default", - user->USuserpurge, 0, INT_MAX); - + if (cmd == 96) { + scr_printf("Do you want to delete this user? "); + if (!yesno()) return; + user->axlevel = 0; + } + r = CtdlIPCAideSetUserParameters(ipc, user, buf); if (r / 100 != 2) { scr_printf("%s\n", buf); @@ -170,7 +180,7 @@ int set_attr(CtdlIPC *ipc, unsigned int sval, char *prompt, unsigned int sbit, i temp = sval; color(DIM_WHITE); - scr_printf("%45s ", prompt); + scr_printf("%50s ", prompt); color(DIM_MAGENTA); scr_printf("["); color(BRIGHT_MAGENTA); @@ -215,10 +225,16 @@ void enter_config(CtdlIPC *ipc, int mode) if (mode == 0 || mode == 1) { + /* Does anyone still use dialup connections with manual + * screen dimensions setting anymore? For now we'll keep + * the system's ability to set these, but remove the prompts + * because they're spurious for nearly everyone. + * user->USscreenwidth = intprompt("Enter your screen width", user->USscreenwidth, 20, 255); user->USscreenheight = intprompt("Enter your screen height", user->USscreenheight, 3, 255); + */ user->flags = set_attr(ipc, user->flags, "Are you an experienced Citadel user", @@ -266,6 +282,13 @@ void enter_config(CtdlIPC *ipc, int mode) user->flags = set_attr(ipc, user->flags, "Be unlisted in userlog", US_UNLISTED, 0); + + if (strlen(editor_paths[0]) > 0) { + user->flags = set_attr(ipc, user->flags, + "Always enter messages with the full-screen editor", + US_EXTEDIT, 0); + } + } if (mode == 2) { @@ -391,7 +414,7 @@ void progress(CtdlIPC* ipc, unsigned long curr, unsigned long cmax) if (curr >= cmax) { sln_printf("\r%79s\r",""); - status_line(ipc->ServInfo.humannode, ipc->ServInfo.bbs_city, + status_line(ipc->ServInfo.humannode, ipc->ServInfo.site_location, room_name, secure, 0); } else { /* a will be range 0-50 rather than 0-100 */ @@ -493,12 +516,12 @@ void locate_host(CtdlIPC* ipc, char *hbuf) void misc_server_cmd(CtdlIPC *ipc, char *cmd) { char buf[SIZ]; - CtdlIPC_putline(ipc, cmd); - CtdlIPC_getline(ipc, buf); + CtdlIPC_chat_send(ipc, cmd); + CtdlIPC_chat_recv(ipc, buf); scr_printf("%s\n",buf); if (buf[0]=='1') { set_keepalives(KA_HALF); - while (CtdlIPC_getline(ipc, buf), strcmp(buf,"000")) { + while (CtdlIPC_chat_recv(ipc, buf), strcmp(buf,"000")) { scr_printf("%s\n",buf); } set_keepalives(KA_YES); @@ -507,7 +530,7 @@ void misc_server_cmd(CtdlIPC *ipc, char *cmd) { if (buf[0]=='4') { do { newprompt("> ",buf,255); - CtdlIPC_putline(ipc, buf); + CtdlIPC_chat_send(ipc, buf); } while(strcmp(buf,"000")); return; }