diff --git a/src/sbbs3/scfg/scfg.c b/src/sbbs3/scfg/scfg.c index 2c433da3ef192c4f99499d8f03d27bc76b01e9c1..b6038d48d079babc68fc6708c943d54e6f1f1bee 100644 --- a/src/sbbs3/scfg/scfg.c +++ b/src/sbbs3/scfg/scfg.c @@ -185,6 +185,7 @@ int main(int argc, char **argv) const char* grpname = NULL; unsigned int grpnum = 0; faddr_t faddr = {0}; + uint32_t misc = 0; for(i=1;i<argc;i++) { if(argv[i][0]=='-' #ifndef __unix__ @@ -199,6 +200,10 @@ int main(int argc, char **argv) faddr = atofaddr(argv[i] + 7); continue; } + if(strncmp(argv[i], "-misc=", 6) == 0) { + misc = strtoul(argv[i] + 7, NULL, 0); + continue; + } if(strcmp(argv[i], "-insert") == 0) { uifc.insert_mode = TRUE; continue; @@ -298,6 +303,7 @@ int main(int argc, char **argv) "-e# = set escape delay to #msec\n" "-import=<filename> = import a message area list file\n" "-faddr=<addr> = specify your FTN address for imported subs\n" + "-misc=<value> = specify option flags for imported subs\n" "-g# = set group number (or name) to import into\n" "-iX = set interface mode to X (default=auto) where X is one of:\n" #ifdef __unix__ @@ -379,7 +385,7 @@ int main(int argc, char **argv) case msgbase: { enum import_list_type list_type = determine_msg_list_type(fname); - ported = import_msg_areas(list_type, fp, grpnum, 1, 99999, /* qhub: */NULL, /* pkt_orig: */NULL, &faddr, &added); + ported = import_msg_areas(list_type, fp, grpnum, 1, 99999, /* qhub: */NULL, /* pkt_orig: */NULL, &faddr, misc, &added); break; } case filebase: diff --git a/src/sbbs3/scfg/scfg.h b/src/sbbs3/scfg/scfg.h index 7317d5e39109b04eb8caa5991f189a7f4310f431..baa4cc83a05ce342705c61ff9f90c2c6c9006722 100644 --- a/src/sbbs3/scfg/scfg.h +++ b/src/sbbs3/scfg/scfg.h @@ -166,7 +166,7 @@ BOOL save_chat_cfg(scfg_t*, int); BOOL save_xtrn_cfg(scfg_t*, int); long import_msg_areas(enum import_list_type, FILE*, unsigned grpnum, int min_confnum, int max_confnum - , qhub_t*, const char* pkt_orig, faddr_t* faddr, long* added); + , qhub_t*, const char* pkt_orig, faddr_t* faddr, uint32_t misc, long* added); /* Prepare a string to be used as an internal code; Note: use the return value, Luke */ char* prep_code(char *str, const char* prefix); diff --git a/src/sbbs3/scfg/scfgmsg.c b/src/sbbs3/scfg/scfgmsg.c index 197a3d00f136ed6bab8e859b05c13a95677e8e9e..5ff8670c715f3ff902c15cb8de1680d07b7209f9 100644 --- a/src/sbbs3/scfg/scfgmsg.c +++ b/src/sbbs3/scfg/scfgmsg.c @@ -100,7 +100,7 @@ static bool new_grp(unsigned new_grpnum) // Return number of imported (including over-written) subs or negative on error long import_msg_areas(enum import_list_type type, FILE* stream, unsigned grpnum - , int min_confnum, int max_confnum, qhub_t* qhub, const char* pkt_orig, faddr_t* faddr + , int min_confnum, int max_confnum, qhub_t* qhub, const char* pkt_orig, faddr_t* faddr, uint32_t misc , long* added) { char str[256]; @@ -156,6 +156,7 @@ long import_msg_areas(enum import_list_type type, FILE* stream, unsigned grpnum new_sub_misc = SUB_FIDO; break; } + new_sub_misc |= misc; while(1) { memset(&tmpsub,0,sizeof(tmpsub)); @@ -1026,7 +1027,8 @@ void msgs_cfg() } uifc.pop("Importing Areas..."); long added = 0; - ported = import_msg_areas(k, stream, i, min_confnum, max_confnum, /* qhub: */NULL, pkt_orig, /* faddr: */NULL, &added); + ported = import_msg_areas(k, stream, i, min_confnum, max_confnum, /* qhub: */NULL + , pkt_orig, /* faddr: */NULL, /* misc: */0, &added); fclose(stream); uifc.pop(0); if(ported < 0) diff --git a/src/sbbs3/scfg/scfgnet.c b/src/sbbs3/scfg/scfgnet.c index 56c61dd57db72c089f2ad0edcd932e8901c56cc3..897e894a12d7363d0f5684eba34f051d7ee0be43 100644 --- a/src/sbbs3/scfg/scfgnet.c +++ b/src/sbbs3/scfg/scfgnet.c @@ -1261,7 +1261,7 @@ BOOL import_qwk_conferences(uint qhubnum) } uifc.pop("Importing Areas..."); long added = 0; - long ported = import_msg_areas(IMPORT_LIST_TYPE_QWK_CONTROL_DAT, fp, grpnum, min_confnum, max_confnum, cfg.qhub[qhubnum], /* pkt_orig */NULL, /* faddr: */NULL, &added); + long ported = import_msg_areas(IMPORT_LIST_TYPE_QWK_CONTROL_DAT, fp, grpnum, min_confnum, max_confnum, cfg.qhub[qhubnum], /* pkt_orig */NULL, /* faddr: */NULL, /* misc: */0, &added); fclose(fp); uifc.pop(NULL); if(ported < 0)