From ab9e18a47ad058d2af5539d0fa5e412833f44a7f Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Fri, 27 Apr 2012 12:14:28 +0000 Subject: [PATCH] Implemented "Preset on edit" SVN revision: 2453 --- src/elogd.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/elogd.c b/src/elogd.c index 0ffa518b..bb45148f 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -9343,6 +9343,26 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL } } + sprintf(str, "Preset on edit %s", attr_list[index]); + if ((i = getcfg(lbs->name, str, preset, sizeof(preset))) > 0 && bedit) { + + if (!breedit || (breedit && i == 2)) { /* subst on reedit only if preset is under condition */ + + /* check for index substitution */ + if (!bedit && (strchr(preset, '%') || strchr(preset, '#'))) { + /* get index */ + get_auto_index(lbs, index, preset, str, sizeof(str)); + strcpy(preset, str); + } + + /* do not format date for date attributes */ + i = build_subst_list(lbs, slist, svalue, attrib, (attr_flags[index] & (AF_DATE | AF_DATETIME)) + == 0); + strsubst_list(preset, sizeof(preset), slist, svalue, i); + strcpy(attrib[index], preset); + } + } + sprintf(str, "Preset on duplicate %s", attr_list[index]); if ((i = getcfg(lbs->name, str, preset, sizeof(preset))) > 0 && bduplicate) {