From 6da0b648b6daa418da90834dd9252a0bfbb2e5c4 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Mon, 9 Sep 2002 03:51:01 +0000 Subject: [PATCH] * In the HTML-to-HTML converter: --> Open links in new window (as with text msgs) --> Convert loose URL's to hot links (as with text msgs) --- webcit/ChangeLog | 6 +++- webcit/html2html.c | 70 ++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 73 insertions(+), 3 deletions(-) diff --git a/webcit/ChangeLog b/webcit/ChangeLog index 95a85c087..9692936fc 100644 --- a/webcit/ChangeLog +++ b/webcit/ChangeLog @@ -1,4 +1,9 @@ $Log$ +Revision 323.68 2002/09/09 03:51:01 ajc +* In the HTML-to-HTML converter: + --> Open links in new window (as with text msgs) + --> Convert loose URL's to hot links (as with text msgs) + Revision 323.67 2002/09/06 03:59:11 ajc * Added an "About this server" panel to the Summary page. (Useless fluff, but better than an empty column.) @@ -929,4 +934,3 @@ Sun Dec 6 19:50:55 EST 1998 Art Cancro 1998-12-03 Nathan Bryant * webserver.c: warning fix - diff --git a/webcit/html2html.c b/webcit/html2html.c index 903e96961..023ab7c4a 100644 --- a/webcit/html2html.c +++ b/webcit/html2html.c @@ -37,11 +37,18 @@ void output_html(void) { char *ptr; char *msgstart; char *msgend; + char *converted_msg; int buffer_length = 1; int line_length = 0; int content_length = 0; + int output_length = 0; + char new_window[SIZ]; + int brak = 0; + int i; + int linklen; msg = strdup(""); + sprintf(new_window, "http_sock, msgstart, strlen(msgstart)); + converted_msg = malloc(content_length); + strcpy(converted_msg, ""); + ptr = msgstart; + while (ptr < msgend) { + /* Make links open in a separate window */ + if (!strncasecmp(ptr, "') + ||(ptr[i]==']') + ) linklen = i; + if (linklen > 0) break; + } + if (linklen > 0) { + content_length += (32 + linklen); + converted_msg = realloc(converted_msg, content_length); + sprintf(&converted_msg[output_length], new_window); + output_length += strlen(new_window); + converted_msg[output_length] = '\"'; + converted_msg[++output_length] = 0; + for (i=0; i"); + output_length += 2; + for (i=0; i"); + output_length += 4; + } + } + else { + if (*ptr == '<') ++brak; + if (*ptr == '>') --brak; + converted_msg[output_length] = *ptr++; + converted_msg[++output_length] = 0; + } + } + + /* Output our big pile of markup */ + write(WC->http_sock, converted_msg, output_length); /* A little trailing vertical whitespace... */ wprintf("

\n"); /* Now give back the memory */ + free(converted_msg); free(msg); - } -- 2.30.2