mirror of
https://gitea.psi.ch/ELOG/elog.git
synced 2026-09-08 17:13:56 +00:00
Fixed problem with coloring hyperlinks in find result page
SVN revision: 579
This commit is contained in:
parent
9e954f8fc5
commit
35dcbd201d
57
src/elogd.c
57
src/elogd.c
@ -6,6 +6,9 @@
|
|||||||
Contents: Web server program for Electronic Logbook ELOG
|
Contents: Web server program for Electronic Logbook ELOG
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.132 2003/07/15 08:00:04 midas
|
||||||
|
Fixed problem with coloring hyperlinks in find result page
|
||||||
|
|
||||||
Revision 1.131 2003/07/10 16:02:19 midas
|
Revision 1.131 2003/07/10 16:02:19 midas
|
||||||
Added '-x' flag
|
Added '-x' flag
|
||||||
|
|
||||||
@ -3979,8 +3982,8 @@ char *list[] = { "http://", "https://", "ftp://", "mailto:", "elog:", "file://",
|
|||||||
|
|
||||||
void rsputs2(const char *str)
|
void rsputs2(const char *str)
|
||||||
{
|
{
|
||||||
int i, j, k, l, m;
|
int i, j, k, l, m, n;
|
||||||
char *p, link[256], tmp[256];
|
char *p, *pd, link[1000], link_text[1000], tmp[256];
|
||||||
|
|
||||||
if (strlen_retbuf + (int)strlen(str) > return_buffer_size)
|
if (strlen_retbuf + (int)strlen(str) > return_buffer_size)
|
||||||
{
|
{
|
||||||
@ -4003,6 +4006,48 @@ char *p, link[256], tmp[256];
|
|||||||
link[k] = 0;
|
link[k] = 0;
|
||||||
i--;
|
i--;
|
||||||
|
|
||||||
|
/* check if link contains coloring */
|
||||||
|
p = strchr(link, '\001');
|
||||||
|
if (p != NULL)
|
||||||
|
{
|
||||||
|
strlcpy(link_text, link, sizeof(link_text));
|
||||||
|
|
||||||
|
/* skip everything between '<' and '>' */
|
||||||
|
pd = p;
|
||||||
|
while (*pd && *pd != '\002')
|
||||||
|
*p = *pd++;
|
||||||
|
|
||||||
|
strcpy(p, pd+1);
|
||||||
|
|
||||||
|
/* skip '</B>' */
|
||||||
|
p = strchr(link, '\001');
|
||||||
|
if (p != NULL)
|
||||||
|
{
|
||||||
|
pd = p;
|
||||||
|
|
||||||
|
while (*pd && *pd != '\002')
|
||||||
|
*p = *pd++;
|
||||||
|
|
||||||
|
strcpy(p, pd+1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* correct link text */
|
||||||
|
for (n=0 ; n<(int)strlen(link_text) ; n++)
|
||||||
|
{
|
||||||
|
switch (link_text[n])
|
||||||
|
{
|
||||||
|
/* the translation for the search highliting */
|
||||||
|
case '\001' : link_text[n] = '<'; break;
|
||||||
|
case '\002' : link_text[n] = '>'; break;
|
||||||
|
case '\003' : link_text[n] = '\"'; break;
|
||||||
|
case '\004' : link_text[n] = ' '; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
strlcpy(link_text, link, sizeof(link_text));
|
||||||
|
|
||||||
if (strcmp(list[l], "elog:") == 0)
|
if (strcmp(list[l], "elog:") == 0)
|
||||||
{
|
{
|
||||||
strlcpy(tmp, link, sizeof(tmp));
|
strlcpy(tmp, link, sizeof(tmp));
|
||||||
@ -4015,14 +4060,14 @@ char *p, link[256], tmp[256];
|
|||||||
|
|
||||||
if (m < (int)strlen(tmp))
|
if (m < (int)strlen(tmp))
|
||||||
/* if link contains reference to other logbook, add ".." in front */
|
/* if link contains reference to other logbook, add ".." in front */
|
||||||
sprintf(return_buffer+j, "<a href=\"../%s\">elog:%s</a>", link, link);
|
sprintf(return_buffer+j, "<a href=\"../%s\">elog:%s</a>", link, link_text);
|
||||||
else if (link[0] == '/')
|
else if (link[0] == '/')
|
||||||
sprintf(return_buffer+j, "<a href=\"%d%s\">elog:%s</a>", _current_message_id, link, link);
|
sprintf(return_buffer+j, "<a href=\"%d%s\">elog:%s</a>", _current_message_id, link, link_text);
|
||||||
else
|
else
|
||||||
sprintf(return_buffer+j, "<a href=\"%s\">elog:%s</a>", link, link);
|
sprintf(return_buffer+j, "<a href=\"%s\">elog:%s</a>", link, link_text);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
sprintf(return_buffer+j, "<a href=\"%s%s\">%s%s</a>", list[l], link, list[l], link);
|
sprintf(return_buffer+j, "<a href=\"%s%s\">%s%s</a>", list[l], link, list[l], link_text);
|
||||||
|
|
||||||
j += strlen(return_buffer+j);
|
j += strlen(return_buffer+j);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user