final touches on dkim test harness
[citadel.git] / webcit / html2html.c
index 965dc55d69bc57ea9458068f8d19602897b261aa..a631eb81b44d168894b377d9ad4da91ba4ff62e7 100644 (file)
@@ -14,7 +14,7 @@
  */
 
 #include "webcit.h"
-#include "webserver.h"
+
 
 
 /*
@@ -59,7 +59,7 @@ void extract_charset_from_meta(char *charset, char *meta_http_equiv, char *meta_
        if (!ptr) return;
 
        safestrncpy(buf, ++ptr, sizeof buf);
-       striplt(buf);
+       string_trim(buf);
        if (!strncasecmp(buf, "charset=", 8)) {
                strcpy(charset, &buf[8]);
 
@@ -76,7 +76,7 @@ void extract_charset_from_meta(char *charset, char *meta_http_equiv, char *meta_
 
                /* Remove wandering punctuation */
                if ((ptr=strchr(charset, '\"'))) *ptr = 0;
-               striplt(charset);
+               string_trim(charset);
        }
 }
 
@@ -187,7 +187,7 @@ void output_html(const char *supplied_charset, int treat_as_wiki, int msgnum, St
                                meta = malloc(meta_length + 1);
                                safestrncpy(meta, meta_start, meta_length);
                                meta[meta_length] = 0;
-                               striplt(meta);
+                               string_trim(meta);
                                if (!strncasecmp(meta, "HTTP-EQUIV=", 11)) {
                                        meta_http_equiv = strdup(&meta[11]);
                                        spaceptr = strchr(meta_http_equiv, ' ');
@@ -296,10 +296,10 @@ void output_html(const char *supplied_charset, int treat_as_wiki, int msgnum, St
                        && (strcasecmp(charset, "UTF-8"))
                        && (strcasecmp(charset, ""))
           ) {
-               syslog(9, "Converting %s to UTF-8\n", charset);
+               syslog(LOG_DEBUG, "Converting %s to UTF-8\n", charset);
                ctdl_iconv_open("UTF-8", charset, &ic);
                if (ic == (iconv_t)(-1) ) {
-                       syslog(5, "%s:%d iconv_open() failed: %s\n",
+                       syslog(LOG_WARNING, "%s:%d iconv_open() failed: %s\n",
                                        __FILE__, __LINE__, strerror(errno));
                }
        }
@@ -414,9 +414,9 @@ void output_html(const char *supplied_charset, int treat_as_wiki, int msgnum, St
                         * and then ended the message)
                         */
                        if (!tag_end) {
-                               syslog(9, "tag_end is null and ptr is:\n");
-                               syslog(9, "%s\n", ptr);
-                               syslog(9, "Theoretical bytes remaining: %d\n", (int)(msgend - ptr));
+                               syslog(LOG_DEBUG, "tag_end is null and ptr is:\n");
+                               syslog(LOG_DEBUG, "%s\n", ptr);
+                               syslog(LOG_DEBUG, "Theoretical bytes remaining: %d\n", (int)(msgend - ptr));
                        }
 
                        src=strstr(ptr, "src=\"cid:");
@@ -450,72 +450,73 @@ void output_html(const char *supplied_charset, int treat_as_wiki, int msgnum, St
                 * Turn anything that looks like a URL into a real link, as long
                 * as it's not inside a tag already
                 */
-               else if ( (brak == 0) && (alevel == 0)
-                    && (!strncasecmp(ptr, "http://", 7))) {
-                               /** Find the end of the link */
-                               int strlenptr;
-                               linklen = 0;
+               else if ( (brak == 0) && (alevel == 0) &&
+                         ( (!strncasecmp(ptr, "http://", 7)) ||
+                           (!strncasecmp(ptr, "https://", 8)))) {
+                       /** Find the end of the link */
+                       int strlenptr;
+                       linklen = 0;
                                
-                               strlenptr = strlen(ptr);
-                               for (i=0; i<=strlenptr; ++i) {
-                                       if ((ptr[i]==0)
-                                          ||(isspace(ptr[i]))
-                                          ||(ptr[i]==10)
-                                          ||(ptr[i]==13)
-                                          ||(ptr[i]=='(')
-                                          ||(ptr[i]==')')
-                                          ||(ptr[i]=='<')
-                                          ||(ptr[i]=='>')
-                                          ||(ptr[i]=='[')
-                                          ||(ptr[i]==']')
-                                          ||(ptr[i]=='"')
-                                          ||(ptr[i]=='\'')
+                       strlenptr = strlen(ptr);
+                       for (i=0; i<=strlenptr; ++i) {
+                               if ((ptr[i]==0)
+                                   ||(isspace(ptr[i]))
+                                   ||(ptr[i]==10)
+                                   ||(ptr[i]==13)
+                                   ||(ptr[i]=='(')
+                                   ||(ptr[i]==')')
+                                   ||(ptr[i]=='<')
+                                   ||(ptr[i]=='>')
+                                   ||(ptr[i]=='[')
+                                   ||(ptr[i]==']')
+                                   ||(ptr[i]=='"')
+                                   ||(ptr[i]=='\'')
                                        ) linklen = i;
-                                       /* did s.b. send us an entity? */
-                                       if (ptr[i] == '&') {
-                                               if ((ptr[i+2] ==';') ||
-                                                   (ptr[i+3] ==';') ||
-                                                   (ptr[i+5] ==';') ||
-                                                   (ptr[i+6] ==';') ||
-                                                   (ptr[i+7] ==';'))
-                                                       linklen = i;
-                                       }
-                                       if (linklen > 0) break;
+                               /* did s.b. send us an entity? */
+                               if (ptr[i] == '&') {
+                                       if ((ptr[i+2] ==';') ||
+                                           (ptr[i+3] ==';') ||
+                                           (ptr[i+5] ==';') ||
+                                           (ptr[i+6] ==';') ||
+                                           (ptr[i+7] ==';'))
+                                               linklen = i;
                                }
-                               if (linklen > 0) {
-                                       char *ltreviewptr;
-                                       char *nbspreviewptr;
-                                       char linkedchar;
-                                       int len;
+                               if (linklen > 0) break;
+                       }
+                       if (linklen > 0) {
+                               char *ltreviewptr;
+                               char *nbspreviewptr;
+                               char linkedchar;
+                               int len;
                                        
-                                       len = linklen;
-                                       linkedchar = ptr[len];
-                                       ptr[len] = '\0';
-                                       /* spot for some subject strings tinymce tends to give us. */
-                                       ltreviewptr = strchr(ptr, '<');
-                                       if (ltreviewptr != NULL) {
-                                               *ltreviewptr = '\0';
-                                               linklen = ltreviewptr - ptr;
-                                       }
+                               len = linklen;
+                               linkedchar = ptr[len];
+                               ptr[len] = '\0';
+                               /* spot for some subject strings tinymce tends to give us. */
+                               ltreviewptr = strchr(ptr, '<');
+                               if (ltreviewptr != NULL) {
+                                       *ltreviewptr = '\0';
+                                       linklen = ltreviewptr - ptr;
+                               }
 
-                                       nbspreviewptr = strstr(ptr, "&nbsp;");
-                                       if (nbspreviewptr != NULL) {
-                                               /* nbspreviewptr = '\0'; */
-                                               linklen = nbspreviewptr - ptr;
-                                       }
-                                       if (ltreviewptr != 0)
-                                               *ltreviewptr = '<';
-
-                                       ptr[len] = linkedchar;
-
-                                       content_length += (32 + linklen);
-                                        StrBufAppendPrintf(converted_msg, "%s\"", new_window);
-                                       StrBufAppendBufPlain(converted_msg, ptr, linklen, 0);
-                                       StrBufAppendPrintf(converted_msg, "\">");
-                                       StrBufAppendBufPlain(converted_msg, ptr, linklen, 0);
-                                       ptr += linklen;
-                                       StrBufAppendPrintf(converted_msg, "</A>");
+                               nbspreviewptr = strstr(ptr, "&nbsp;");
+                               if (nbspreviewptr != NULL) {
+                                       /* nbspreviewptr = '\0'; */
+                                       linklen = nbspreviewptr - ptr;
                                }
+                               if (ltreviewptr != 0)
+                                       *ltreviewptr = '<';
+
+                               ptr[len] = linkedchar;
+
+                               content_length += (32 + linklen);
+                               StrBufAppendPrintf(converted_msg, "%s\"", new_window);
+                               StrBufAppendBufPlain(converted_msg, ptr, linklen, 0);
+                               StrBufAppendPrintf(converted_msg, "\">");
+                               StrBufAppendBufPlain(converted_msg, ptr, linklen, 0);
+                               ptr += linklen;
+                               StrBufAppendPrintf(converted_msg, "</A>");
+                       }
                }
                else {
                        StrBufAppendBufPlain(converted_msg, ptr, 1, 0);
@@ -641,7 +642,7 @@ void url(char *buf, size_t bufsize)
        start = NULL;
        len = strlen(buf);
        if (len > bufsize) {
-               syslog(1, "URL: content longer than buffer!");
+               syslog(LOG_WARNING, "URL: content longer than buffer!");
                return;
        }
        end = buf + len;
@@ -677,7 +678,7 @@ void url(char *buf, size_t bufsize)
        
        UrlLen = end - start;
        if (UrlLen > sizeof(urlbuf)){
-               syslog(1, "URL: content longer than buffer!");
+               syslog(LOG_WARNING, "URL: content longer than buffer!");
                return;
        }
        memcpy(urlbuf, start, UrlLen);
@@ -690,7 +691,7 @@ void url(char *buf, size_t bufsize)
                          "%ca href=%c%s%c TARGET=%c%s%c%c%s%c/A%c",
                          LB, QU, urlbuf, QU, QU, TARGET, QU, RB, urlbuf, LB, RB);
        if (outpos >= sizeof(outbuf) - Offset) {
-               syslog(1, "URL: content longer than buffer!");
+               syslog(LOG_WARNING, "URL: content longer than buffer!");
                return;
        }
 
@@ -698,7 +699,7 @@ void url(char *buf, size_t bufsize)
        if (TrailerLen > 0)
                memcpy(outbuf + Offset + outpos, end, TrailerLen);
        if (Offset + outpos + TrailerLen > bufsize) {
-               syslog(1, "URL: content longer than buffer!");
+               syslog(LOG_WARNING, "URL: content longer than buffer!");
                return;
        }
        memcpy (buf, outbuf, Offset + outpos + TrailerLen);