diff --git a/exec/str_cmds.js b/exec/str_cmds.js index 7f847935487c75a79303a3771e09a11ef82e918c..315a78555ab97b2865eac725aad7ea355875b0cf 100644 --- a/exec/str_cmds.js +++ b/exec/str_cmds.js @@ -820,6 +820,29 @@ function str_cmds(str) console.printfile(plan); } } + + if(str=="HELP") { + writeln("SIG\tEdit or delete your default message signature."); + writeln("SUBSIG\tEdit or delete your signature for this sub-board (over-rides default)."); + } + if(str=="SIG" || str=="SUBSIG") { + var userSigFilename = system.data_dir + "user/" + format("%04u", user.number); + if(str == "SUBSIG") + userSigFilename += "." + bbs.cursub_code; + userSigFilename += ".sig"; + if (file_exists(userSigFilename)) { + if (console.yesno(bbs.text(bbs.text.ViewSignatureQ))) + console.printfile(userSigFilename); + } + if (console.yesno(bbs.text(bbs.text.CreateEditSignatureQ))) + console.editfile(userSigFilename); + else if (!console.aborted) { + if (file_exists(userSigFilename)) { + if (console.yesno(bbs.text(bbs.text.DeleteSignatureQ))) + file_remove(userSigFilename); + } + } + } } if(str=="HELP") { diff --git a/src/sbbs3/writemsg.cpp b/src/sbbs3/writemsg.cpp index ef42e8d68afcd8ed2aec2151d44807f12610824d..2b4d95cafcfd82948bf1e1667bd108e0aff452ea 100644 --- a/src/sbbs3/writemsg.cpp +++ b/src/sbbs3/writemsg.cpp @@ -750,7 +750,13 @@ bool sbbs_t::writemsg(const char *fname, const char *top, char *subj, int mode, /* Signature file */ if ((subnum == INVALID_SUB && cfg.msg_misc & MM_EMAILSIG) || (subnum != INVALID_SUB && !(cfg.sub[subnum]->misc & SUB_NOUSERSIG))) { - SAFEPRINTF2(str, "%suser/%04u.sig", cfg.data_dir, useron.number); + bool got_sig = false; + if (subnum_is_valid(subnum)) { + snprintf(str, sizeof str, "%suser/%04u.%s.sig", cfg.data_dir, useron.number, cfg.sub[subnum]->code); + got_sig = fexistcase(str); + } + if (!got_sig) + SAFEPRINTF2(str, "%suser/%04u.sig", cfg.data_dir, useron.number); FILE* sig; if (fexistcase(str) && (sig = fopen(str, "r")) != NULL) { while (!feof(sig)) {