From 9c7055c264fa47afb4b9d407f7a2b3265c5ce315 Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Tue, 10 Nov 2009 13:19:52 +0000 Subject: [PATCH] Execute 'subst on edit' and 'subst on reply' AFTER submission SVN revision: 2263 --- src/elogd.c | 104 +++++++++++++++++++++++++--------------------------- 1 file changed, 49 insertions(+), 55 deletions(-) diff --git a/src/elogd.c b/src/elogd.c index 343dabda..dab3840b 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -9519,59 +9519,6 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL } } - /* subst attributes for replies */ - if (breply) { - for (index = 0; index < n_attr; index++) { - sprintf(str, "Subst on reply %s", attr_list[index]); - if (getcfg(lbs->name, str, preset, sizeof(preset))) { - /* check if already second reply */ - if (orig_tag[0] == 0) { - - /* do not format date for date attributes */ - i = build_subst_list(lbs, slist, svalue, attrib, (attr_flags[index] & (AF_DATE | AF_DATETIME)) - == 0); - sprintf(str, "%d", message_id); - add_subst_list(slist, svalue, "message id", str, &i); - add_subst_time(lbs, slist, svalue, "entry time", date, &i, attr_flags[index]); - strsubst_list(preset, sizeof(preset), slist, svalue, i); - strcpy(attrib[index], preset); - } - } - } - } - - /* subst attributes for edits */ - if (message_id && bedit && !breedit && !bupload) { - for (index = 0; index < n_attr; index++) { - sprintf(str, "Subst on edit %s", attr_list[index]); - if (getcfg(lbs->name, str, preset, sizeof(preset))) { - - /* do not format date for date attributes */ - i = build_subst_list(lbs, slist, svalue, attrib, (attr_flags[index] & (AF_DATE | AF_DATETIME)) - == 0); - - sprintf(str, "%d", message_id); - add_subst_list(slist, svalue, "message id", str, &i); - add_subst_time(lbs, slist, svalue, "entry time", date, &i, attr_flags[index]); - - strsubst_list(preset, sizeof(preset), slist, svalue, i); - if (strlen(preset) > NAME_LENGTH - 100) { - if (strstr(preset + 100, "
")) { - strlcpy(str, strstr(preset + 100, "
"), sizeof(str)); - } else - strlcpy(str, preset + 100, sizeof(str)); - - strcpy(preset, "..."); - strlcat(preset, str, sizeof(preset)); - } - if (strncmp(preset, "
", 4) == 0) - strcpy(attrib[index], preset + 4); - else - strcpy(attrib[index], preset); - } - } - } - /* header */ if (getcfg(lbs->name, "Edit Page Title", str, sizeof(str))) { @@ -22130,8 +22077,8 @@ void submit_elog(LOGBOOK * lbs) add_subst_list(slist, svalue, "message id", getparam("edit_id"), &n); /* substitute attributes */ - for (i = 0; i < n_attr; i++) { - if (!isparam("edit_id")) { + if (!isparam("edit_id")) { + for (i = 0; i < n_attr; i++) { sprintf(str, "Subst %s", attr_list[i]); if (getcfg(lbs->name, str, subst_str, sizeof(subst_str))) { strsubst_list(subst_str, sizeof(subst_str), slist, svalue, n); @@ -22146,6 +22093,53 @@ void submit_elog(LOGBOOK * lbs) strcpy(attrib[i], subst_str); } } + } + + /* subst attributes for edits */ + if (isparam("edit_id")) { + for (index = 0; index < n_attr; index++) { + sprintf(str, "Subst on edit %s", attr_list[index]); + if (getcfg(lbs->name, str, str2, sizeof(str2))) { + + /* do not format date for date attributes */ + i = build_subst_list(lbs, slist, svalue, attrib, (attr_flags[index] & (AF_DATE | AF_DATETIME)) + == 0); + + add_subst_list(slist, svalue, "message id", getparam("edit_id"), &i); + add_subst_time(lbs, slist, svalue, "entry time", date, &i, attr_flags[index]); + + strsubst_list(str2, sizeof(str2), slist, svalue, i); + if (strlen(str2) > NAME_LENGTH - 100) { + if (strstr(str2 + 100, "
")) { + strlcpy(str, strstr(str2 + 100, "
"), sizeof(str)); + } else + strlcpy(str, str2 + 100, sizeof(str)); + + strcpy(str2, "..."); + strlcat(str2, str, sizeof(str2)); + } + if (strncmp(str2, "
", 4) == 0) + strcpy(attrib[index], str2 + 4); + else + strcpy(attrib[index], str2); + } + } + } + + /* subst attributes for replies */ + if (isparam("reply_to")) { + for (index = 0; index < n_attr; index++) { + sprintf(str, "Subst on reply %s", attr_list[index]); + if (getcfg(lbs->name, str, str2, sizeof(str2))) { + /* do not format date for date attributes */ + i = build_subst_list(lbs, slist, svalue, attrib, (attr_flags[index] & (AF_DATE | AF_DATETIME)) + == 0); + add_subst_list(slist, svalue, "Reply to", getparam("reply_to"), &i); + add_subst_time(lbs, slist, svalue, "entry time", date, &i, attr_flags[index]); + strsubst_list(str2, sizeof(str2), slist, svalue, i); + strcpy(attrib[index], str2); + } + } } /* check for attributes to keep */