diff --git a/src/elogd.c b/src/elogd.c index 19c7cb70..40fb2279 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -6,6 +6,9 @@ Contents: Web server program for Electronic Logbook ELOG $Log$ + Revision 1.703 2005/07/16 10:18:17 ritt + Added '\' as escape character for HTML and ELCode tags + Revision 1.702 2005/07/11 10:28:04 ritt Added 'title' to all icons for FireFox @@ -5914,9 +5917,11 @@ void logd(const char *format, ...) /*------------------------------------------------------------------*/ +char *html_tags[] = { "", "", "
", "
")) {
- xfree(str);
- return TRUE;
+ for (i=0 ; html_tags[i][0] ; i++) {
+ p = strstr(str, html_tags[i]);
+ if (p && strchr(str, '>') && p > str && *(p-1) != '\\') {
+ xfree(str);
+ return TRUE;
+ }
}
xfree(str);
@@ -6185,7 +6194,13 @@ void rsputs2(const char *str)
j += 4;
break;
- /* the translation for the search highliting */
+ /* suppress escape character '\' in front of HTML or ELCode tag */
+ case '\\':
+ if (str[i+1] != '<' && str[i+1] != '[')
+ return_buffer[j++] = str[i];
+ break;
+
+ /* the translation for the search highliting */
case '\001':
strcat(return_buffer, "<");
j++;
@@ -6252,6 +6267,9 @@ typedef struct {
PATTERN_LIST pattern_list[] = {
+ /* escape */
+ {"\\[", "["},
+
/* smileys */
{":))", "
"},
{":-))", "
"},