From 45b3edba9e68e5e43423d24d59844b0ff7a96875 Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Thu, 13 Oct 2005 06:15:23 +0000 Subject: [PATCH] Implemented escape character for http://, mailto:, etc. SVN revision: 1512 --- src/elogd.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/elogd.c b/src/elogd.c index e7397f14..bdefd140 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -4941,6 +4941,14 @@ void rsputs2(LOGBOOK *lbs, const char *str) for (i = 0; i < (int) strlen(str); i++) { for (l = 0; key_list[l][0]; l++) { if (strncmp(str + i, key_list[l], strlen(key_list[l])) == 0) { + + /* check for escape character */ + if (i > 0 && *(str + i - 1) == '\\') { + j--; + *(return_buffer + j) = 0; + continue; + } + p = (char *) (str + i + strlen(key_list[l])); i += strlen(key_list[l]); for (k = 0; *p && strcspn(p, " \t\n\r({[)}]\"") && k < (int) sizeof(link); k++, i++) @@ -5234,6 +5242,14 @@ void rsputs_elcode(LOGBOOK * lbs, BOOL email_notify, const char *str) for (i = 0; i < (int) strlen(str); i++) { for (l = 0; key_list[l][0]; l++) { if (strncmp(str + i, key_list[l], strlen(key_list[l])) == 0) { + + /* check for escape character */ + if (i > 0 && *(str + i - 1) == '\\') { + j--; + *(return_buffer + j) = 0; + continue; + } + p = (char *) (str + i + strlen(key_list[l])); i += strlen(key_list[l]); for (k = 0; *p && strcspn(p, " \t\n\r({[)}]\"") && k < (int) sizeof(link); k++, i++)