From 69c0cd4a41fc2eb6315f784d526ec1167fb32f9d Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Tue, 10 Apr 2012 13:51:44 +0000 Subject: [PATCH] Added escape char possibility to "\#" for substitutions SVN revision: 2449 --- src/elogd.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/elogd.c b/src/elogd.c index f2bf52b9..9b2b5a79 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -8650,7 +8650,7 @@ void get_auto_index(LOGBOOK * lbs, int index, char *format, char *retstr, int si auto-increment tags */ { int i, message_id, loc, len, old_index; - char str[NAME_LENGTH], attrib[MAX_N_ATTR][NAME_LENGTH], att[MAX_ATTACHMENTS][256]; + char *p, str[NAME_LENGTH], attrib[MAX_N_ATTR][NAME_LENGTH], att[MAX_ATTACHMENTS][256]; time_t now; if (strchr(format, '%') == NULL && strchr(format, '#') == NULL) { @@ -8661,8 +8661,14 @@ void get_auto_index(LOGBOOK * lbs, int index, char *format, char *retstr, int si time(&now); my_strftime(retstr, size, format, localtime(&now)); - if (strchr(retstr, '#') == NULL) + p = strchr(retstr, '#'); + if (p == NULL) return; + + if (p > retstr && *(p-1) == '\\') { // escape + memmove(p-1, p, strlen(p)+1); + return; + } /* record location and length of ###'s */ for (i = loc = 0, len = 1; i < (int) strlen(retstr); i++) {