From d6f092fc137b85e7b6b681ac5664aed61e6ed4eb Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Mon, 2 Feb 2004 16:00:01 +0000 Subject: [PATCH] Fixed bug that '<' was not correctly displayed in links SVN revision: 730 --- src/elogd.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/elogd.c b/src/elogd.c index 27554b85..9e8eb706 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -6,6 +6,9 @@ Contents: Web server program for Electronic Logbook ELOG $Log$ + Revision 1.222 2004/02/02 16:00:01 midas + Fixed bug that '<' was not correctly displayed in links + Revision 1.221 2004/01/30 09:50:51 midas Added entry counter @@ -4110,7 +4113,7 @@ void rsputs2(const char *str) if (strncmp(str + i, list[l], strlen(list[l])) == 0) { p = (char *) (str + i + strlen(list[l])); i += strlen(list[l]); - for (k = 0; *p && strcspn(p, "> ,\t\n\r({[)}]"); k++, i++) + for (k = 0; *p && strcspn(p, " ,\t\n\r({[)}]"); k++, i++) link[k] = *p++; link[k] = 0; i--; @@ -4179,9 +4182,16 @@ void rsputs2(const char *str) else sprintf(return_buffer + j, "elog:%s", link, link_text); - } else - sprintf(return_buffer + j, "%s%s", list[l], link, - list[l], link_text); + } else { + sprintf(return_buffer + j, "%s", list[l], link, list[l]); + j += strlen(return_buffer + j); + strlen_retbuf = j; + + /* link_text can contain special characters */ + rsputs2(link_text); + j = strlen_retbuf; + sprintf(return_buffer + j, ""); + } j += strlen(return_buffer + j); break;