X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fhtml2html.c;h=ca2404385505ff14f1890d9d4114959e6eec9221;hb=HEAD;hp=fe49f90052862879d01436f5976ecaa25e7fef9f;hpb=156d3eaa1b5d85cb70a79046bd874ab832df6ff1;p=citadel.git diff --git a/webcit/html2html.c b/webcit/html2html.c index fe49f9005..a631eb81b 100644 --- a/webcit/html2html.c +++ b/webcit/html2html.c @@ -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, ' '); @@ -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, " "); - 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, ""); + nbspreviewptr = strstr(ptr, " "); + 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, ""); + } } else { StrBufAppendBufPlain(converted_msg, ptr, 1, 0);