X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=url.c;h=39bbec8bb0a554680dcca1552f9f681a170dcdc0;hp=8a00cddba7a959ba66dd350071679b2041f29d9f;hb=cb4704c68992fe6e12cd153a693508b04bc7a470;hpb=1c16e9623a9fb6a15bb284a6f7322b583ebc06a7 diff --git a/url.c b/url.c index 8a00cdd..39bbec8 100644 --- a/url.c +++ b/url.c @@ -17,12 +17,13 @@ #include #include +#include + +#include #include "mutt.h" -#include "mapping.h" #include "url.h" -#include "mime.h" #include @@ -49,10 +50,7 @@ static void url_pct_decode (char *s) return; for (d = s; *s; s++) { - if (*s == '%' && s[1] && s[2] && - isxdigit ((unsigned char) s[1]) && - isxdigit ((unsigned char) s[2]) && - hexval (s[1]) >= 0 && hexval (s[2]) >= 0) { + if (*s == '%' && hexval (s[1]) >= 0 && hexval (s[2]) >= 0) { *d++ = (hexval (s[1]) << 4) | (hexval (s[2])); s += 2; } @@ -73,7 +71,7 @@ url_scheme_t url_check_scheme (const char *s) if ((t - s) + 1 >= sizeof (sbuf)) return U_UNKNOWN; - strfcpy (sbuf, s, t - s + 1); + m_strcpy(sbuf, t - s + 1, s); for (t = sbuf; *t; t++) *t = ascii_tolower (*t); @@ -90,7 +88,7 @@ int url_parse_file (char *d, const char *src, size_t dl) else if (!ascii_strncasecmp (src, "file://", 7)) /* we don't support remote files */ return -1; else - strfcpy (d, src + 5, dl); + m_strcpy(d, dl, src + 5); url_pct_decode (d); return 0; @@ -209,7 +207,7 @@ int url_parse_mailto (ENVELOPE * e, char **body, const char *src) int taglen; - LIST *last = NULL; + LIST **last = &e->userhdrs; if (!(t = strchr (src, ':'))) return -1; @@ -236,7 +234,7 @@ int url_parse_mailto (ENVELOPE * e, char **body, const char *src) if (!ascii_strcasecmp (tag, "body")) { if (body) - str_replace (body, value); + m_strreplace(body, value); } else { #define SAFEPFX (option (OPTSTRICTMAILTO) ? "" : "X-Mailto-") @@ -245,9 +243,8 @@ int url_parse_mailto (ENVELOPE * e, char **body, const char *src) snprintf (scratch, sizeof (scratch), "%s%s: %s", SAFEPFX, tag, value); #undef SAVEPFX scratch[taglen] = '\0'; - value = &scratch[taglen + 1]; - SKIPWS (value); - mutt_parse_rfc822_line (e, NULL, scratch, value, 1, 0, 0, &last); + value = vskipspaces(&scratch[taglen + 1]); + last = mutt_parse_rfc822_line (e, NULL, scratch, value, 0, 0, last); /* if $strict_mailto is set, force editing headers to let * users have a look at what we got */ if (!option (OPTSTRICTMAILTO)) {