Simplications go on.
[apps/madmutt.git] / url.c
diff --git a/url.c b/url.c
index c889b2e..39bbec8 100644 (file)
--- a/url.c
+++ b/url.c
 
 #include <lib-lib/mem.h>
 #include <lib-lib/ascii.h>
+#include <lib-lib/mapping.h>
+
+#include <lib-mime/mime.h>
 
 #include "mutt.h"
-#include "mapping.h"
 #include "url.h"
 
-#include "mime.h"
 
 #include <ctype.h>
 
@@ -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;
     }
@@ -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)) {