diff --git a/src/sbbs3/sbbsdefs.h b/src/sbbs3/sbbsdefs.h index 9672f683a6ee5ea1467d8dccba26cb194283fb0d..573732f60b46ed91aef15e3fe567214605ce98fe 100644 --- a/src/sbbs3/sbbsdefs.h +++ b/src/sbbs3/sbbsdefs.h @@ -240,7 +240,6 @@ #define SUB_EDIT (1 << 28) /* Users can edit message text after posting */ #define SUB_EDITLAST (1 << 29) /* Users can edit last message only */ #define SUB_NOUSERSIG (1 << 30) /* Suppress user signatures */ -#define SUB_HDRMOD (1U << 31) /* Modified sub-board header info (SCFG) */ /* Bit values for lib[x].misc */ #define LIB_DIRS (1 << 0) /* Local directory (sub-directory of lib parent) access */ diff --git a/src/sbbs3/scfg/scfgmsg.c b/src/sbbs3/scfg/scfgmsg.c index 087f5cbb474ef86b27aed22af4e5f6230291f56f..7b16545ffd7285eaa35c66b12266e978ba3fc1d1 100644 --- a/src/sbbs3/scfg/scfgmsg.c +++ b/src/sbbs3/scfg/scfgmsg.c @@ -810,7 +810,7 @@ void msgs_cfg() template = cfg.sub[j]; else if (cfg.sub[j] != template) { uifc.changes = 1; - cfg.sub[j]->misc = template->misc | SUB_HDRMOD; + cfg.sub[j]->misc = template->misc; cfg.sub[j]->misc &= ~SUB_TEMPLATE; SAFECOPY(cfg.sub[j]->post_arstr, template->post_arstr); SAFECOPY(cfg.sub[j]->read_arstr, template->read_arstr); @@ -826,6 +826,7 @@ void msgs_cfg() cfg.sub[j]->pmode = template->pmode; cfg.sub[j]->n_pmode = template->n_pmode; cfg.sub[j]->faddr = template->faddr; + cfg.sub[j]->cfg_modified = true; } } } diff --git a/src/sbbs3/scfg/scfgsub.c b/src/sbbs3/scfg/scfgsub.c index c43295cf41b4bbd2d37212509a3c25af6834855e..9152d667426582087b68dbb86906718812e84a10 100644 --- a/src/sbbs3/scfg/scfgsub.c +++ b/src/sbbs3/scfg/scfgsub.c @@ -50,7 +50,7 @@ bool new_sub(int new_subnum, int group_num, sub_t* pasted_sub, long misc) break; } } - new_subboard->misc |= SUB_HDRMOD; + new_subboard->cfg_modified = true; if (pasted_sub != NULL) { *new_subboard = *pasted_sub; if (cut_qhub_sub != NULL && (*cut_qhub_sub) == NULL) { @@ -539,7 +539,7 @@ void sub_cfg(int grpnum) uifc.input(WIN_MID | WIN_SAV, 0, 17, "Maximum Number of Messages (0=Unlimited)" , str, 9, K_EDIT | K_NUMBER); cfg.sub[i]->maxmsgs = atoi(str); - cfg.sub[i]->misc |= SUB_HDRMOD; + cfg.sub[i]->cfg_modified = true; break; case 12: sprintf(str, "%u", cfg.sub[i]->maxage); @@ -561,7 +561,7 @@ void sub_cfg(int grpnum) uifc.input(WIN_MID | WIN_SAV, 0, 17, "Maximum Age of Messages (in days)" , str, 5, K_EDIT | K_NUMBER); cfg.sub[i]->maxage = atoi(str); - cfg.sub[i]->misc |= SUB_HDRMOD; + cfg.sub[i]->cfg_modified = true; break; case 13: sprintf(str, "%" PRIu32, cfg.sub[i]->maxcrcs); @@ -582,7 +582,7 @@ void sub_cfg(int grpnum) uifc.input(WIN_MID | WIN_SAV, 0, 17, "Maximum Number of CRCs" , str, 9, K_EDIT | K_NUMBER); cfg.sub[i]->maxcrcs = atol(str); - cfg.sub[i]->misc |= SUB_HDRMOD; + cfg.sub[i]->cfg_modified = true; break; case 14: while (1) { @@ -1585,7 +1585,7 @@ void sub_cfg(int grpnum) uifc.changes = TRUE; cfg.sub[i]->misc |= SUB_HYPER; cfg.sub[i]->misc &= ~SUB_FAST; - cfg.sub[i]->misc |= SUB_HDRMOD; + cfg.sub[i]->cfg_modified = true; break; } if (!n) @@ -1610,7 +1610,7 @@ void sub_cfg(int grpnum) } if (cfg.sub[i]->misc & SUB_HYPER) - cfg.sub[i]->misc |= SUB_HDRMOD; + cfg.sub[i]->cfg_modified = true; if (n == 1 && !(cfg.sub[i]->misc & SUB_FAST)) { uifc.changes = TRUE; cfg.sub[i]->misc |= SUB_FAST; diff --git a/src/sbbs3/scfgdefs.h b/src/sbbs3/scfgdefs.h index d20df710157d397d3c26429993612cf2ee29641e..bc7baf28801fa888c6c9ccbacb7f6fdff43fd748 100644 --- a/src/sbbs3/scfgdefs.h +++ b/src/sbbs3/scfgdefs.h @@ -57,6 +57,7 @@ typedef struct { /* Message sub board info */ int32_t pmode; /* printfile()/putmsg() mode flags */ int32_t n_pmode; /* set of negated pmode flags */ faddr_t faddr; /* FidoNet address */ + bool cfg_modified; /* Update SMB header for this sub */ } sub_t; diff --git a/src/sbbs3/scfgsave.c b/src/sbbs3/scfgsave.c index 6fb3b58ce0e833c8e46bf2ac4c2100fb885097ba..d59e333c586a88221750d9a51483df3e50a9ec03 100644 --- a/src/sbbs3/scfgsave.c +++ b/src/sbbs3/scfgsave.c @@ -411,7 +411,7 @@ bool write_msgs_cfg(scfg_t* cfg) iniSetString(§ion, name, "read_ars", cfg->sub[i]->read_arstr, &ini_style); iniSetString(§ion, name, "post_ars", cfg->sub[i]->post_arstr, &ini_style); iniSetString(§ion, name, "operator_ars", cfg->sub[i]->op_arstr, &ini_style); - iniSetHexInt(§ion, name, "settings", cfg->sub[i]->misc & (~SUB_HDRMOD), &ini_style); /* Don't write mod bit */ + iniSetHexInt(§ion, name, "settings", cfg->sub[i]->misc, &ini_style); /* Don't write mod bit */ iniSetString(§ion, name, "qwknet_tagline", cfg->sub[i]->tagline, &ini_style); iniSetString(§ion, name, "fidonet_origin", cfg->sub[i]->origline, &ini_style); iniSetString(§ion, name, "post_sem", cfg->sub[i]->post_sem, &ini_style); @@ -429,7 +429,7 @@ bool write_msgs_cfg(scfg_t* cfg) strListMerge(&ini, section); free(section); - if (all_msghdr || (cfg->sub[i]->misc & SUB_HDRMOD && !no_msghdr)) { + if (all_msghdr || (cfg->sub[i]->cfg_modified && !no_msghdr)) { if (!cfg->sub[i]->data_dir[0]) SAFEPRINTF(smb.file, "%ssubs", cfg->data_dir); else