color(DIM_RED);
scr_printf("%s\r", ipc->ServInfo.moreprompt);
color(COLOR_POP);
- sttybbs(0);
+ stty_ctdl(0);
b=inkey();
- for (a=0; a<strlen(ipc->ServInfo.moreprompt); ++a)
+ for (a=0; !IsEmptyStr(&ipc->ServInfo.moreprompt[0]); ++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')
}
/*
- * 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];
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("Permission to send Internet mail", (user->flags & US_INTERNET)))
+ user->flags |= US_INTERNET;
+ else
+ user->flags &= ~US_INTERNET;
+ 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);
temp = sval;
color(DIM_WHITE);
- scr_printf("%45s ", prompt);
+ scr_printf("%50s ", prompt);
color(DIM_MAGENTA);
scr_printf("[");
color(BRIGHT_MAGENTA);
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",
user->flags = set_attr(ipc, user->flags,
"Be unlisted in userlog",
US_UNLISTED, 0);
+
+ if (!IsEmptyStr(editor_paths[0])) {
+ user->flags = set_attr(ipc, user->flags,
+ "Always enter messages with the full-screen editor",
+ US_EXTEDIT, 0);
+ }
+
}
if (mode == 2) {
/* Searches for patn in search string */
int pattern(char *search, char *patn) {
- int a,b;
-
- for (a=0; a<strlen(search); ++a) {
- b=strncasecmp(&search[a],patn,strlen(patn));
+ int a,b,len;
+
+ len = strlen(patn);
+ for (a=0; !IsEmptyStr(&search[a]); ++a) {
+ b=strncasecmp(&search[a],patn,len);
if (b==0) return(b);
}
return(-1);
{
int a;
- if (strlen(string)==0) return;
+ if (IsEmptyStr(string)) return;
/* Convert non-printable characters to blanks */
- for (a=0; a<strlen(string); ++a) {
+ for (a=0; !IsEmptyStr(&string[a]); ++a) {
if (string[a]<32) string[a]=32;
if (string[a]>126) string[a]=32;
}
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 */
pclose(who);
b = 0;
- for (a=0; a<strlen(buf); ++a) {
+ for (a=0; !IsEmptyStr(&buf[a]); ++a) {
if ((buf[a]=='(')||(buf[a]==')')) ++b;
}
if (b<2) {
if (buf[a]==')') buf[a] = 0;
}
- if (strlen(buf)==0) strcpy(hbuf, ipc->ServInfo.fqdn);
+ if (IsEmptyStr(buf)) strcpy(hbuf, ipc->ServInfo.fqdn);
else strncpy(hbuf,buf,24);
#else
char *tty = ttyname(0);