projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
move history in lib-ui
[apps/madmutt.git]
/
url.c
diff --git
a/url.c
b/url.c
index
2315fc9
..
39bbec8
100644
(file)
--- a/
url.c
+++ b/
url.c
@@
-15,13
+15,15
@@
# include "config.h"
#endif
# include "config.h"
#endif
+#include <lib-lib/mem.h>
+#include <lib-lib/ascii.h>
+#include <lib-lib/mapping.h>
+
+#include <lib-mime/mime.h>
+
#include "mutt.h"
#include "mutt.h"
-#include "mapping.h"
#include "url.h"
#include "url.h"
-#include "mime.h"
-
-#include "lib/mem.h"
#include <ctype.h>
#include <ctype.h>
@@
-32,6
+34,7
@@
static struct mapping_t UrlMap[] = {
{"pop", U_POP},
{"pops", U_POPS},
{"nntp", U_NNTP},
{"pop", U_POP},
{"pops", U_POPS},
{"nntp", U_NNTP},
+ {"news", U_NNTP},
{"nntps", U_NNTPS},
{"snews", U_NNTPS},
{"mailto", U_MAILTO},
{"nntps", U_NNTPS},
{"snews", U_NNTPS},
{"mailto", U_MAILTO},
@@
-47,10
+50,7
@@
static void url_pct_decode (char *s)
return;
for (d = s; *s; 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;
}
*d++ = (hexval (s[1]) << 4) | (hexval (s[2]));
s += 2;
}
@@
-71,7
+71,7
@@
url_scheme_t url_check_scheme (const char *s)
if ((t - s) + 1 >= sizeof (sbuf))
return U_UNKNOWN;
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);
for (t = sbuf; *t; t++)
*t = ascii_tolower (*t);
@@
-88,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
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;
url_pct_decode (d);
return 0;
@@
-171,8
+171,8
@@
int url_ciss_tostring (ciss_url_t * ciss, char *dest, size_t len, int flags)
snprintf (dest, len, "%s:", mutt_getnamebyvalue (ciss->scheme, UrlMap));
if (ciss->host) {
snprintf (dest, len, "%s:", mutt_getnamebyvalue (ciss->scheme, UrlMap));
if (ciss->host) {
-
str_cat
(dest, len, "//");
- len -= (l =
str_len
(dest));
+
m_strcat
(dest, len, "//");
+ len -= (l =
m_strlen
(dest));
dest += l;
if (ciss->user) {
dest += l;
if (ciss->user) {
@@
-181,7
+181,7
@@
int url_ciss_tostring (ciss_url_t * ciss, char *dest, size_t len, int flags)
else
snprintf (dest, len, "%s@", ciss->user);
else
snprintf (dest, len, "%s@", ciss->user);
- len -= (l =
str_len
(dest));
+ len -= (l =
m_strlen
(dest));
dest += l;
}
dest += l;
}
@@
-192,7
+192,7
@@
int url_ciss_tostring (ciss_url_t * ciss, char *dest, size_t len, int flags)
}
if (ciss->path)
}
if (ciss->path)
-
str_cat
(dest, len, ciss->path);
+
m_strcat
(dest, len, ciss->path);
return 0;
}
return 0;
}
@@
-207,12
+207,12
@@
int url_parse_mailto (ENVELOPE * e, char **body, const char *src)
int taglen;
int taglen;
- LIST *
last = NULL
;
+ LIST *
*last = &e->userhdrs
;
if (!(t = strchr (src, ':')))
return -1;
if (!(t = strchr (src, ':')))
return -1;
- if ((tmp =
str_dup
(t + 1)) == NULL)
+ if ((tmp =
m_strdup
(t + 1)) == NULL)
return -1;
if ((headers = strchr (tmp, '?')))
return -1;
if ((headers = strchr (tmp, '?')))
@@
-234,25
+234,26
@@
int url_parse_mailto (ENVELOPE * e, char **body, const char *src)
if (!ascii_strcasecmp (tag, "body")) {
if (body)
if (!ascii_strcasecmp (tag, "body")) {
if (body)
-
str_replace
(body, value);
+
m_strreplace
(body, value);
}
else {
#define SAFEPFX (option (OPTSTRICTMAILTO) ? "" : "X-Mailto-")
}
else {
#define SAFEPFX (option (OPTSTRICTMAILTO) ? "" : "X-Mailto-")
- taglen =
str_len (tag) + str_len
(SAFEPFX);
+ taglen =
m_strlen(tag) + m_strlen
(SAFEPFX);
/* mutt_parse_rfc822_line makes some assumptions */
snprintf (scratch, sizeof (scratch), "%s%s: %s", SAFEPFX, tag, value);
#undef SAVEPFX
scratch[taglen] = '\0';
/* mutt_parse_rfc822_line makes some assumptions */
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 $strict_mailto is set, force editing headers to let
* users have a look at what we got */
- if (!option (OPTSTRICTMAILTO))
+ if (!option (OPTSTRICTMAILTO)) {
+ set_option (OPTXMAILTO);
set_option (OPTEDITHDRS);
set_option (OPTEDITHDRS);
+ }
}
}
}
}
-
mem_free
(&tmp);
+
p_delete
(&tmp);
return 0;
}
return 0;
}