summaryrefslogtreecommitdiff
path: root/mail/elm+ME/files/patch-hdrdecode.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/elm+ME/files/patch-hdrdecode.c')
-rw-r--r--mail/elm+ME/files/patch-hdrdecode.c84
1 files changed, 0 insertions, 84 deletions
diff --git a/mail/elm+ME/files/patch-hdrdecode.c b/mail/elm+ME/files/patch-hdrdecode.c
deleted file mode 100644
index 730250394dab..000000000000
--- a/mail/elm+ME/files/patch-hdrdecode.c
+++ /dev/null
@@ -1,84 +0,0 @@
---- lib/hdrdecode.c Sat Jul 9 18:03:15 2005
-+++ lib/hdrdecode.c Sun Sep 10 04:57:10 2006
-@@ -173,9 +173,16 @@
- char *encoded = NULL;
- struct string *ret = NULL;
- charset_t set;
-+ char *front, *end;
-+ struct string *fstr, *estr;
-
-- if ('=' != *p++)
-+ /* Pasear: front, end are used to solve buffer: abc""=?...?=" problem */
-+ front = p;
-+ while (*p && '=' != *p) ++p;
-+ if (front != p && '=' == *p && '"' == *(p-1)) *(p-1) = '\0';
-+ if ('=' != *p)
- goto fail;
-+ *p = '\0'; ++p;
- if ('?' != *p++)
- goto fail;
- sn = p;
-@@ -209,8 +216,8 @@
- p++;
- if ('=' != *p++)
- goto fail;
-- if (*p)
-- goto fail;
-+ if ('"' == *p) ++p;
-+ end = p;
-
- set = MIME_name_to_charset(sn,CHARSET_create);
-
-@@ -225,6 +232,18 @@
- break;
- }
-
-+ /* Pasear */
-+ if (ret){
-+ estr = ret;
-+ fstr = new_string2(system_charset,us_str(front));
-+ fstr = ret = cat_strings(fstr, ret, 0);
-+ free_string(&estr);
-+ estr = new_string2(system_charset,us_str(end));
-+ ret = cat_strings(ret, estr, 0);
-+ free_string(&estr);
-+ free_string(&fstr);
-+ }
-+
- fail:
- if (!ret) {
- DPRINT(Debug,20,(&Debug,
-@@ -341,20 +360,31 @@
- struct string * ret = new_string(defcharset);
- char **tokenized = rfc822_tokenize(buffer);
- unsigned char * last_char = NULL;
-- int i;
-+ int i, encoded;
-+ char* p;
-
- for (i = 0; tokenized[i]; i++) {
-
- struct string * ok = NULL;
- int nostore = 0;
-
-+ /* Pasear: detect if it is a encoded string */
-+ encoded = 0;
-+ if ('"' == tokenized[i][0]){
-+ p = tokenized[i];
-+ while (*p && *p != '=') ++p;
-+ if (*p && *p == '=' && *(p+1) && *(p+1) == '?' )
-+ encoded = 1;
-+ }
-+
-+
- if ('(' == tokenized[i][0]) {
- /* we need add last space */
- if (last_char)
- add_ascii_to_string(ret,last_char);
- ok = hdr_comment(tokenized[i],defcharset,demime);
- nostore = 1;
-- } else if ('"' == tokenized[i][0]) {
-+ } else if (!encoded && '"' == tokenized[i][0]) {
- /* we need add last space */
- if (last_char)
- add_ascii_to_string(ret,last_char);