Added '\' as escape character for HTML and ELCode tags

SVN revision: 1428
This commit is contained in:
Stefan Ritt 2005-07-16 10:18:17 +00:00
parent b20bdbae28
commit bee752b218

View File

@ -6,6 +6,9 @@
Contents: Web server program for Electronic Logbook ELOG Contents: Web server program for Electronic Logbook ELOG
$Log$ $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 Revision 1.702 2005/07/11 10:28:04 ritt
Added 'title' to all icons for FireFox Added 'title' to all icons for FireFox
@ -5914,9 +5917,11 @@ void logd(const char *format, ...)
/*------------------------------------------------------------------*/ /*------------------------------------------------------------------*/
char *html_tags[] = { "<B>", "<I>", "<P>", "<HR>", "" };
int is_html(char *s) int is_html(char *s)
{ {
char *str; char *str, *p;
int i; int i;
str = xstrdup(s); str = xstrdup(s);
@ -5925,20 +5930,24 @@ int is_html(char *s)
str[i] = toupper(s[i]); str[i] = toupper(s[i]);
str[i] = 0; str[i] = 0;
if (strstr(str, "<A HREF") && strchr(str, '>')) { p = strstr(str, "<A HREF");
if (p && strchr(str, '>') && p > str && *(p-1) != '\\') {
xfree(str); xfree(str);
return TRUE; return TRUE;
} }
if (strstr(str, "<IMG") && strchr(str, '>')) { p = strstr(str, "<IMG");
if (p && strchr(str, '>') && p > str && *(p-1) != '\\') {
xfree(str); xfree(str);
return TRUE; return TRUE;
} }
if (strstr(str, "<BR>") || strstr(str, "<HR>") || strstr(str, "<B>") || strstr(str, "<I>") || for (i=0 ; html_tags[i][0] ; i++) {
strstr(str, "<P>")) { p = strstr(str, html_tags[i]);
xfree(str); if (p && strchr(str, '>') && p > str && *(p-1) != '\\') {
return TRUE; xfree(str);
return TRUE;
}
} }
xfree(str); xfree(str);
@ -6185,7 +6194,13 @@ void rsputs2(const char *str)
j += 4; j += 4;
break; 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': case '\001':
strcat(return_buffer, "<"); strcat(return_buffer, "<");
j++; j++;
@ -6252,6 +6267,9 @@ typedef struct {
PATTERN_LIST pattern_list[] = { PATTERN_LIST pattern_list[] = {
/* escape */
{"\\[", "["},
/* smileys */ /* smileys */
{":))", "<img src=\"%s/icons/happy.png\">"}, {":))", "<img src=\"%s/icons/happy.png\">"},
{":-))", "<img src=\"%sicons/happy.png\">"}, {":-))", "<img src=\"%sicons/happy.png\">"},