chaining menu commands

This commit is contained in:
Andrew Pamment 2018-05-01 16:05:01 +10:00
parent 91b7fa1de5
commit e8640d2230

View File

@ -66,8 +66,9 @@ extern int mynode;
struct menu_item { struct menu_item {
char hotkey; char hotkey;
int command; int *command;
char *data; char **data;
int command_count;
int seclevel; int seclevel;
}; };
@ -82,6 +83,7 @@ int menu_system(char *menufile) {
int i; int i;
int j; int j;
int k; int k;
int m;
struct stat s; struct stat s;
char *lRet; char *lRet;
lua_State *L; lua_State *L;
@ -125,117 +127,131 @@ int menu_system(char *menufile) {
} }
menu[menu_items-1] = (struct menu_item *)malloc(sizeof(struct menu_item)); menu[menu_items-1] = (struct menu_item *)malloc(sizeof(struct menu_item));
menu[menu_items-1]->hotkey = buffer[7]; menu[menu_items-1]->hotkey = buffer[7];
menu[menu_items-1]->command = 0; menu[menu_items-1]->command = NULL;
menu[menu_items-1]->data = NULL; menu[menu_items-1]->data = NULL;
menu[menu_items-1]->command_count = 0;
menu[menu_items-1]->seclevel = 0; menu[menu_items-1]->seclevel = 0;
} else if (strncasecmp(buffer, "COMMAND", 7) == 0 && menu_items > 0) { } else if (strncasecmp(buffer, "COMMAND", 7) == 0 && menu_items > 0) {
if (menu[menu_items-1]->command_count == 0) {
menu[menu_items-1]->command = (int *)malloc(sizeof(int));
menu[menu_items-1]->data = (char **)malloc(sizeof(char *));
} else {
menu[menu_items-1]->command = (int *)realloc(menu[menu_items-1]->command, sizeof(int) * (menu[menu_items-1]->command_count + 1));
menu[menu_items-1]->data = (char **)realloc(menu[menu_items-1]->data, sizeof(char *) * (menu[menu_items-1]->command_count + 1));
}
menu[menu_items-1]->command_count++;
menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = 0;
menu[menu_items-1]->data[menu[menu_items -1]->command_count - 1] = NULL;
if (strncasecmp(&buffer[8], "SUBMENU", 7) == 0) { if (strncasecmp(&buffer[8], "SUBMENU", 7) == 0) {
menu[menu_items-1]->command = MENU_SUBMENU; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_SUBMENU;
} else if (strncasecmp(&buffer[8], "LOGOFF", 6) == 0) { } else if (strncasecmp(&buffer[8], "LOGOFF", 6) == 0) {
menu[menu_items-1]->command = MENU_LOGOFF; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_LOGOFF;
} else if (strncasecmp(&buffer[8], "PREVMENU", 8) == 0) { } else if (strncasecmp(&buffer[8], "PREVMENU", 8) == 0) {
menu[menu_items-1]->command = MENU_PREVMENU; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_PREVMENU;
} else if (strncasecmp(&buffer[8], "AUTOMESSAGE", 11) == 0) { } else if (strncasecmp(&buffer[8], "AUTOMESSAGE", 11) == 0) {
menu[menu_items-1]->command = MENU_AUTOMESSAGE; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_AUTOMESSAGE;
} else if (strncasecmp(&buffer[8], "TEXTFILES", 9) == 0) { } else if (strncasecmp(&buffer[8], "TEXTFILES", 9) == 0) {
menu[menu_items-1]->command = MENU_TEXTFILES; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_TEXTFILES;
} else if (strncasecmp(&buffer[8], "CHATSYSTEM", 10) == 0) { } else if (strncasecmp(&buffer[8], "CHATSYSTEM", 10) == 0) {
menu[menu_items-1]->command = MENU_CHATSYSTEM; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_CHATSYSTEM;
} else if (strncasecmp(&buffer[8], "BBSLIST", 7) == 0) { } else if (strncasecmp(&buffer[8], "BBSLIST", 7) == 0) {
menu[menu_items-1]->command = MENU_BBSLIST; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_BBSLIST;
} else if (strncasecmp(&buffer[8], "LISTUSERS", 9) == 0) { } else if (strncasecmp(&buffer[8], "LISTUSERS", 9) == 0) {
menu[menu_items-1]->command = MENU_LISTUSERS; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_LISTUSERS;
} else if (strncasecmp(&buffer[8], "BULLETINS", 9) == 0) { } else if (strncasecmp(&buffer[8], "BULLETINS", 9) == 0) {
menu[menu_items-1]->command = MENU_BULLETINS; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_BULLETINS;
} else if (strncasecmp(&buffer[8], "LAST10CALLERS", 13) == 0) { } else if (strncasecmp(&buffer[8], "LAST10CALLERS", 13) == 0) {
menu[menu_items-1]->command = MENU_LAST10; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_LAST10;
} else if (strncasecmp(&buffer[8], "SETTINGS", 8) == 0) { } else if (strncasecmp(&buffer[8], "SETTINGS", 8) == 0) {
menu[menu_items-1]->command = MENU_SETTINGS; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_SETTINGS;
} else if (strncasecmp(&buffer[8], "RUNDOOR", 7) == 0) { } else if (strncasecmp(&buffer[8], "RUNDOOR", 7) == 0) {
menu[menu_items-1]->command = MENU_DOOR; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_DOOR;
} else if (strncasecmp(&buffer[8], "MAILSCAN", 8) == 0) { } else if (strncasecmp(&buffer[8], "MAILSCAN", 8) == 0) {
menu[menu_items-1]->command = MENU_MAILSCAN; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_MAILSCAN;
} else if (strncasecmp(&buffer[8], "READMAIL", 8) == 0) { } else if (strncasecmp(&buffer[8], "READMAIL", 8) == 0) {
menu[menu_items-1]->command = MENU_READMAIL; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_READMAIL;
} else if (strncasecmp(&buffer[8], "POSTMESSAGE", 11) == 0) { } else if (strncasecmp(&buffer[8], "POSTMESSAGE", 11) == 0) {
menu[menu_items-1]->command = MENU_POSTMESSAGE; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_POSTMESSAGE;
} else if (strncasecmp(&buffer[8], "CHOOSEMAILCONF", 14) == 0) { } else if (strncasecmp(&buffer[8], "CHOOSEMAILCONF", 14) == 0) {
menu[menu_items-1]->command = MENU_CHOOSEMAILCONF; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_CHOOSEMAILCONF;
} else if (strncasecmp(&buffer[8], "CHOOSEMAILAREA", 14) == 0) { } else if (strncasecmp(&buffer[8], "CHOOSEMAILAREA", 14) == 0) {
menu[menu_items-1]->command = MENU_CHOOSEMAILAREA; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_CHOOSEMAILAREA;
} else if (strncasecmp(&buffer[8], "SENDEMAIL", 9) == 0) { } else if (strncasecmp(&buffer[8], "SENDEMAIL", 9) == 0) {
menu[menu_items-1]->command = MENU_SENDEMAIL; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_SENDEMAIL;
} else if (strncasecmp(&buffer[8], "LISTEMAIL", 9) == 0) { } else if (strncasecmp(&buffer[8], "LISTEMAIL", 9) == 0) {
menu[menu_items-1]->command = MENU_LISTEMAIL; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_LISTEMAIL;
} else if (strncasecmp(&buffer[8], "NEXTMAILCONF", 12) == 0) { } else if (strncasecmp(&buffer[8], "NEXTMAILCONF", 12) == 0) {
menu[menu_items-1]->command = MENU_NEXTMAILCONF; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_NEXTMAILCONF;
} else if (strncasecmp(&buffer[8], "PREVMAILCONF", 12) == 0) { } else if (strncasecmp(&buffer[8], "PREVMAILCONF", 12) == 0) {
menu[menu_items-1]->command = MENU_PREVMAILCONF; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_PREVMAILCONF;
} else if (strncasecmp(&buffer[8], "NEXTMAILAREA", 12) == 0) { } else if (strncasecmp(&buffer[8], "NEXTMAILAREA", 12) == 0) {
menu[menu_items-1]->command = MENU_NEXTMAILAREA; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_NEXTMAILAREA;
} else if (strncasecmp(&buffer[8], "PREVMAILAREA", 12) == 0) { } else if (strncasecmp(&buffer[8], "PREVMAILAREA", 12) == 0) {
menu[menu_items-1]->command = MENU_PREVMAILAREA; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_PREVMAILAREA;
} else if (strncasecmp(&buffer[8], "BLUEWAVEDOWNLOAD", 16) == 0) { } else if (strncasecmp(&buffer[8], "BLUEWAVEDOWNLOAD", 16) == 0) {
menu[menu_items-1]->command = MENU_BLUEWAVEDOWN; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_BLUEWAVEDOWN;
} else if (strncasecmp(&buffer[8], "BLUEWAVEUPLOAD", 14) == 0) { } else if (strncasecmp(&buffer[8], "BLUEWAVEUPLOAD", 14) == 0) {
menu[menu_items-1]->command = MENU_BLUEWAVEUP; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_BLUEWAVEUP;
} else if (strncasecmp(&buffer[8], "CHOOSEFILEDIR", 13) == 0) { } else if (strncasecmp(&buffer[8], "CHOOSEFILEDIR", 13) == 0) {
menu[menu_items-1]->command = MENU_CHOOSEFILEDIR; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_CHOOSEFILEDIR;
} else if (strncasecmp(&buffer[8], "CHOOSEFILESUB", 13) == 0) { } else if (strncasecmp(&buffer[8], "CHOOSEFILESUB", 13) == 0) {
menu[menu_items-1]->command = MENU_CHOOSEFILESUB; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_CHOOSEFILESUB;
} else if (strncasecmp(&buffer[8], "LISTFILES", 9) == 0) { } else if (strncasecmp(&buffer[8], "LISTFILES", 9) == 0) {
menu[menu_items-1]->command = MENU_LISTFILES; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_LISTFILES;
} else if (strncasecmp(&buffer[8], "UPLOAD", 6) == 0) { } else if (strncasecmp(&buffer[8], "UPLOAD", 6) == 0) {
menu[menu_items-1]->command = MENU_UPLOAD; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_UPLOAD;
} else if (strncasecmp(&buffer[8], "DOWNLOAD", 8) == 0) { } else if (strncasecmp(&buffer[8], "DOWNLOAD", 8) == 0) {
menu[menu_items-1]->command = MENU_DOWNLOAD; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_DOWNLOAD;
} else if (strncasecmp(&buffer[8], "CLEARTAGGED", 11) == 0) { } else if (strncasecmp(&buffer[8], "CLEARTAGGED", 11) == 0) {
menu[menu_items-1]->command = MENU_CLEARTAGGEDFILES; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_CLEARTAGGEDFILES;
} else if (strncasecmp(&buffer[8], "NEXTFILEDIR", 11) == 0) { } else if (strncasecmp(&buffer[8], "NEXTFILEDIR", 11) == 0) {
menu[menu_items-1]->command = MENU_NEXTFILEDIR; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_NEXTFILEDIR;
} else if (strncasecmp(&buffer[8], "PREVFILEDIR", 11) == 0) { } else if (strncasecmp(&buffer[8], "PREVFILEDIR", 11) == 0) {
menu[menu_items-1]->command = MENU_PREVFILEDIR; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_PREVFILEDIR;
} else if (strncasecmp(&buffer[8], "NEXTFILESUB", 11) == 0) { } else if (strncasecmp(&buffer[8], "NEXTFILESUB", 11) == 0) {
menu[menu_items-1]->command = MENU_NEXTFILESUB; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_NEXTFILESUB;
} else if (strncasecmp(&buffer[8], "PREVFILESUB", 11) == 0) { } else if (strncasecmp(&buffer[8], "PREVFILESUB", 11) == 0) {
menu[menu_items-1]->command = MENU_PREVFILESUB; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_PREVFILESUB;
} else if (strncasecmp(&buffer[8], "LISTMESSAGES", 12) == 0) { } else if (strncasecmp(&buffer[8], "LISTMESSAGES", 12) == 0) {
menu[menu_items-1]->command = MENU_LISTMESSAGES; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_LISTMESSAGES;
} else if (strncasecmp(&buffer[8], "DOSCRIPT", 8) == 0) { } else if (strncasecmp(&buffer[8], "DOSCRIPT", 8) == 0) {
menu[menu_items-1]->command = MENU_DOSCRIPT; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_DOSCRIPT;
} else if (strncasecmp(&buffer[8], "SENDNODEMSG", 11) == 0) { } else if (strncasecmp(&buffer[8], "SENDNODEMSG", 11) == 0) {
menu[menu_items-1]->command = MENU_SENDNODEMSG; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_SENDNODEMSG;
} else if (strncasecmp(&buffer[8], "SUBUNSUBCONF", 12) == 0) { } else if (strncasecmp(&buffer[8], "SUBUNSUBCONF", 12) == 0) {
menu[menu_items-1]->command = MENU_SUBUNSUBCONF; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_SUBUNSUBCONF;
} else if (strncasecmp(&buffer[8], "RESETMSGPTRS", 12) == 0) { } else if (strncasecmp(&buffer[8], "RESETMSGPTRS", 12) == 0) {
menu[menu_items-1]->command = MENU_RESETPOINTERS; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_RESETPOINTERS;
} else if (strncasecmp(&buffer[8], "RESETALLMSGPTRS", 15) == 0) { } else if (strncasecmp(&buffer[8], "RESETALLMSGPTRS", 15) == 0) {
menu[menu_items-1]->command = MENU_RESETALLPOINTERS; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_RESETALLPOINTERS;
} else if (strncasecmp(&buffer[8], "FILESCAN", 8) == 0) { } else if (strncasecmp(&buffer[8], "FILESCAN", 8) == 0) {
menu[menu_items-1]->command = MENU_FILESCAN; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_FILESCAN;
} else if (strncasecmp(&buffer[8], "FULLMAILSCAN", 12) == 0) { } else if (strncasecmp(&buffer[8], "FULLMAILSCAN", 12) == 0) {
menu[menu_items-1]->command = MENU_FULLMAILSCAN; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_FULLMAILSCAN;
} else if (strncasecmp(&buffer[8], "FILESEARCH", 10) == 0) { } else if (strncasecmp(&buffer[8], "FILESEARCH", 10) == 0) {
menu[menu_items-1]->command = MENU_FILESEARCH; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_FILESEARCH;
} else if (strncasecmp(&buffer[8], "DISPLAYTXTFILE", 14) == 0) { } else if (strncasecmp(&buffer[8], "DISPLAYTXTFILE", 14) == 0) {
menu[menu_items-1]->command = MENU_DISPTXTFILE; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_DISPTXTFILE;
} else if (strncasecmp(&buffer[8], "DISPLAYTXTPAUSE", 15) == 0) { } else if (strncasecmp(&buffer[8], "DISPLAYTXTPAUSE", 15) == 0) {
menu[menu_items-1]->command = MENU_DISPTXTFILEPAUSE; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_DISPTXTFILEPAUSE;
} else if (strncasecmp(&buffer[8], "GENWWWURLS", 10) == 0) { } else if (strncasecmp(&buffer[8], "GENWWWURLS", 10) == 0) {
menu[menu_items-1]->command = MENU_GENWWWURLS; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_GENWWWURLS;
} else if (strncasecmp(&buffer[8], "NLBROWSER", 9) == 0) { } else if (strncasecmp(&buffer[8], "NLBROWSER", 9) == 0) {
menu[menu_items-1]->command = MENU_NLBROWSER; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_NLBROWSER;
} else if (strncasecmp(&buffer[8], "SENDFEEDBACK", 12) == 0) { } else if (strncasecmp(&buffer[8], "SENDFEEDBACK", 12) == 0) {
menu[menu_items-1]->command = MENU_SENDFEEDBACK; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_SENDFEEDBACK;
} else if (strncasecmp(&buffer[8], "BLOGDISPLAY", 11) == 0) { } else if (strncasecmp(&buffer[8], "BLOGDISPLAY", 11) == 0) {
menu[menu_items-1]->command = MENU_BLOGDISPLAY; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_BLOGDISPLAY;
} else if (strncasecmp(&buffer[8], "BLOGWRITE", 9) == 0) { } else if (strncasecmp(&buffer[8], "BLOGWRITE", 9) == 0) {
menu[menu_items-1]->command = MENU_BLOGWRITE; menu[menu_items-1]->command[menu[menu_items -1]->command_count - 1] = MENU_BLOGWRITE;
} }
} else if (strncasecmp(buffer, "SECLEVEL", 8) == 0) { } else if (strncasecmp(buffer, "SECLEVEL", 8) == 0) {
menu[menu_items-1]->seclevel = atoi(&buffer[9]); menu[menu_items-1]->seclevel = atoi(&buffer[9]);
} else if (strncasecmp(buffer, "DATA", 4) == 0) { } else if (strncasecmp(buffer, "DATA", 4) == 0) {
menu[menu_items-1]->data = strdup(&buffer[5]); if (menu[menu_items-1]->data[menu[menu_items -1]->command_count - 1] != NULL) {
free(menu[menu_items-1]->data[menu[menu_items -1]->command_count - 1]);
}
menu[menu_items-1]->data[menu[menu_items -1]->command_count - 1] = strdup(&buffer[5]);
} else if (strncasecmp(buffer, "LUASCRIPT", 9) == 0) { } else if (strncasecmp(buffer, "LUASCRIPT", 9) == 0) {
if (lua_script != NULL) { if (lua_script != NULL) {
free(lua_script); free(lua_script);
@ -334,9 +350,10 @@ int menu_system(char *menufile) {
for (i=0;i<menu_items;i++) { for (i=0;i<menu_items;i++) {
if (tolower(menu[i]->hotkey) == tolower(c)) { if (tolower(menu[i]->hotkey) == tolower(c)) {
if (menu[i]->seclevel <= gUser->sec_level) { if (menu[i]->seclevel <= gUser->sec_level) {
switch(menu[i]->command) { for (j=0; j<menu[i]->command_count;j++) {
switch(menu[i]->command[j]) {
case MENU_SUBMENU: case MENU_SUBMENU:
doquit = menu_system(menu[i]->data); doquit = menu_system(menu[i]->data[j]);
if (doquit == 1) { if (doquit == 1) {
// free menus // free menus
if (do_lua_menu) { if (do_lua_menu) {
@ -349,9 +366,13 @@ int menu_system(char *menufile) {
free(ansi_file); free(ansi_file);
} }
for (i=0;i<menu_items;i++) { for (i=0;i<menu_items;i++) {
if (menu[i]->data != NULL) { for (j=0;j<menu[i]->command_count;j++) {
free(menu[i]->data); if (menu[i]->data[j] != NULL) {
free(menu[i]->data[j]);
} }
}
free(menu[i]->data);
free(menu[i]->command);
free(menu[i]); free(menu[i]);
} }
free(menu); free(menu);
@ -369,9 +390,13 @@ int menu_system(char *menufile) {
free(ansi_file); free(ansi_file);
} }
for (i=0;i<menu_items;i++) { for (i=0;i<menu_items;i++) {
if (menu[i]->data != NULL) { for (j=0;j<menu[i]->command_count;j++) {
free(menu[i]->data); if (menu[i]->data[j] != NULL) {
free(menu[i]->data[j]);
} }
}
free(menu[i]->data);
free(menu[i]->command);
free(menu[i]); free(menu[i]);
} }
free(menu); free(menu);
@ -387,9 +412,13 @@ int menu_system(char *menufile) {
free(ansi_file); free(ansi_file);
} }
for (i=0;i<menu_items;i++) { for (i=0;i<menu_items;i++) {
if (menu[i]->data != NULL) { for (j=0;j<menu[i]->command_count;j++) {
free(menu[i]->data); if (menu[i]->data[j] != NULL) {
free(menu[i]->data[j]);
} }
}
free(menu[i]->data);
free(menu[i]->command);
free(menu[i]); free(menu[i]);
} }
free(menu); free(menu);
@ -420,11 +449,11 @@ int menu_system(char *menufile) {
break; break;
case MENU_DOOR: case MENU_DOOR:
{ {
for (j=0;j<conf.door_count;j++) { for (m=0;m<conf.door_count;m++) {
if (strcasecmp(menu[i]->data, conf.doors[j]->name) == 0) { if (strcasecmp(menu[i]->data[j], conf.doors[m]->name) == 0) {
dolog("%s launched door %s, on node %d", gUser->loginname, conf.doors[j]->name, mynode); dolog("%s launched door %s, on node %d", gUser->loginname, conf.doors[m]->name, mynode);
rundoor(gUser, conf.doors[j]->command, conf.doors[j]->stdio, conf.doors[j]->codepage); rundoor(gUser, conf.doors[m]->command, conf.doors[m]->stdio, conf.doors[m]->codepage);
dolog("%s returned from door %s, on node %d", gUser->loginname, conf.doors[j]->name, mynode); dolog("%s returned from door %s, on node %d", gUser->loginname, conf.doors[m]->name, mynode);
break; break;
} }
} }
@ -520,10 +549,10 @@ int menu_system(char *menufile) {
s_readstring(buffer, 10); s_readstring(buffer, 10);
if (tolower(buffer[0]) == 'r') { if (tolower(buffer[0]) == 'r') {
k = -1; k = -1;
j = 1; m = 1;
} else if (tolower(buffer[0]) == 'u') { } else if (tolower(buffer[0]) == 'u') {
k = -1; k = -1;
j = 0; m = 0;
} else if (buffer[0] < '0' || buffer[0] > '9') { } else if (buffer[0] < '0' || buffer[0] > '9') {
s_printf(get_string(39)); s_printf(get_string(39));
break; break;
@ -531,28 +560,28 @@ int menu_system(char *menufile) {
k = atoi(buffer) - 1; k = atoi(buffer) - 1;
} }
msgbase_reset_pointers(gUser->cur_mail_conf, gUser->cur_mail_area, j, k); msgbase_reset_pointers(gUser->cur_mail_conf, gUser->cur_mail_area, m, k);
break; break;
case MENU_RESETALLPOINTERS: case MENU_RESETALLPOINTERS:
s_printf(get_string(230)); s_printf(get_string(230));
confirm = s_getc(); confirm = s_getc();
if (confirm == 'r' || confirm == 'R') { if (confirm == 'r' || confirm == 'R') {
j = 1; m = 1;
} else if (confirm == 'u' || confirm == 'U') { } else if (confirm == 'u' || confirm == 'U') {
j = 0; m = 0;
} else { } else {
s_printf(get_string(39)); s_printf(get_string(39));
break; break;
} }
msgbase_reset_all_pointers(j); msgbase_reset_all_pointers(m);
break; break;
case MENU_FILESCAN: case MENU_FILESCAN:
file_scan(); file_scan();
break; break;
case MENU_FULLMAILSCAN: case MENU_FULLMAILSCAN:
if (menu[i]->data != NULL) { if (menu[i]->data[j] != NULL) {
if (strcasecmp(menu[i]->data, "PERSONAL") == 0) { if (strcasecmp(menu[i]->data[j], "PERSONAL") == 0) {
full_mail_scan_personal(gUser); full_mail_scan_personal(gUser);
} else { } else {
full_mail_scan(gUser); full_mail_scan(gUser);
@ -565,13 +594,13 @@ int menu_system(char *menufile) {
file_search(); file_search();
break; break;
case MENU_DISPTXTFILE: case MENU_DISPTXTFILE:
if (menu[i]->data != NULL) { if (menu[i]->data[j] != NULL) {
s_displayansi_pause(menu[i]->data, 0); s_displayansi_pause(menu[i]->data[j], 0);
} }
break; break;
case MENU_DISPTXTFILEPAUSE: case MENU_DISPTXTFILEPAUSE:
if (menu[i]->data != NULL) { if (menu[i]->data[j] != NULL) {
s_displayansi_pause(menu[i]->data, 1); s_displayansi_pause(menu[i]->data[j], 1);
} }
s_printf(get_string(6)); s_printf(get_string(6));
s_getc(); s_getc();
@ -606,6 +635,7 @@ int menu_system(char *menufile) {
} }
} }
} }
}
// free menus; // free menus;
return doquit; return doquit;