projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
force our cflags in subdirs as well.
[apps/madmutt.git]
/
rfc2047.c
diff --git
a/rfc2047.c
b/rfc2047.c
index
50304c6
..
e173254
100644
(file)
--- a/
rfc2047.c
+++ b/
rfc2047.c
@@
-17,6
+17,7
@@
#include "mime.h"
#include "charset.h"
#include "rfc2047.h"
#include "mime.h"
#include "charset.h"
#include "rfc2047.h"
+#include "thread.h"
#include "lib/mem.h"
#include "lib/str.h"
#include "lib/mem.h"
#include "lib/str.h"
@@
-45,10
+46,10
@@
extern char RFC822Specials[];
extern char RFC822Specials[];
-typedef size_t (*encoder_t) (char *,
ICONV_CONST
char *, size_t,
+typedef size_t (*encoder_t) (char *,
const
char *, size_t,
const char *);
const char *);
-static size_t convert_string (
ICONV_CONST
char *f, size_t flen,
+static size_t convert_string (
const
char *f, size_t flen,
const char *from, const char *to,
char **t, size_t * tlen)
{
const char *from, const char *to,
char **t, size_t * tlen)
{
@@
-62,8
+63,8
@@
static size_t convert_string (ICONV_CONST char *f, size_t flen,
return (size_t) (-1);
obl = 4 * flen + 1;
ob = buf = mem_malloc (obl);
return (size_t) (-1);
obl = 4 * flen + 1;
ob = buf = mem_malloc (obl);
- n =
iconv
(cd, &f, &flen, &ob, &obl);
- if (n == (size_t) (-1) ||
iconv
(cd, 0, 0, &ob, &obl) == (size_t) (-1)) {
+ n =
my_iconv
(cd, &f, &flen, &ob, &obl);
+ if (n == (size_t) (-1) ||
my_iconv
(cd, 0, 0, &ob, &obl) == (size_t) (-1)) {
e = errno;
mem_free (&buf);
iconv_close (cd);
e = errno;
mem_free (&buf);
iconv_close (cd);
@@
-142,7
+143,7
@@
char *mutt_choose_charset (const char *fromcode, const char *charsets,
return tocode;
}
return tocode;
}
-static size_t b_encoder (char *s,
ICONV_CONST
char *d, size_t dlen,
+static size_t b_encoder (char *s,
const
char *d, size_t dlen,
const char *tocode)
{
char *s0 = s;
const char *tocode)
{
char *s0 = s;
@@
-179,7
+180,7
@@
static size_t b_encoder (char *s, ICONV_CONST char *d, size_t dlen,
return s - s0;
}
return s - s0;
}
-static size_t q_encoder (char *s,
ICONV_CONST
char *d, size_t dlen,
+static size_t q_encoder (char *s,
const
char *d, size_t dlen,
const char *tocode)
{
char hex[] = "0123456789ABCDEF";
const char *tocode)
{
char hex[] = "0123456789ABCDEF";
@@
-214,13
+215,13
@@
static size_t q_encoder (char *s, ICONV_CONST char *d, size_t dlen,
* tocode, unless fromcode is 0, in which case the data is assumed to
* be already in tocode, which should be 8-bit and stateless.
*/
* tocode, unless fromcode is 0, in which case the data is assumed to
* be already in tocode, which should be 8-bit and stateless.
*/
-static size_t try_block (
ICONV_CONST
char *d, size_t dlen,
+static size_t try_block (
const
char *d, size_t dlen,
const char *fromcode, const char *tocode,
encoder_t * encoder, size_t * wlen)
{
char buf1[ENCWORD_LEN_MAX - ENCWORD_LEN_MIN + 1];
iconv_t cd;
const char *fromcode, const char *tocode,
encoder_t * encoder, size_t * wlen)
{
char buf1[ENCWORD_LEN_MAX - ENCWORD_LEN_MIN + 1];
iconv_t cd;
-
ICONV_CONST
char *ib;
+
const
char *ib;
char *ob, *p;
size_t ibl, obl;
int count, len, len_b, len_q;
char *ob, *p;
size_t ibl, obl;
int count, len, len_b, len_q;
@@
-229,8
+230,8
@@
static size_t try_block (ICONV_CONST char *d, size_t dlen,
cd = mutt_iconv_open (tocode, fromcode, 0);
assert (cd != (iconv_t) (-1));
ib = d, ibl = dlen, ob = buf1, obl = sizeof (buf1) - str_len (tocode);
cd = mutt_iconv_open (tocode, fromcode, 0);
assert (cd != (iconv_t) (-1));
ib = d, ibl = dlen, ob = buf1, obl = sizeof (buf1) - str_len (tocode);
- if (
iconv
(cd, &ib, &ibl, &ob, &obl) == (size_t) (-1) ||
-
iconv
(cd, 0, 0, &ob, &obl) == (size_t) (-1)) {
+ if (
my_iconv
(cd, &ib, &ibl, &ob, &obl) == (size_t) (-1) ||
+
my_iconv
(cd, 0, 0, &ob, &obl) == (size_t) (-1)) {
assert (errno == E2BIG);
iconv_close (cd);
assert (ib > d);
assert (errno == E2BIG);
iconv_close (cd);
assert (ib > d);
@@
-287,7
+288,7
@@
static size_t encode_block (char *s, char *d, size_t dlen,
{
char buf1[ENCWORD_LEN_MAX - ENCWORD_LEN_MIN + 1];
iconv_t cd;
{
char buf1[ENCWORD_LEN_MAX - ENCWORD_LEN_MIN + 1];
iconv_t cd;
-
ICONV_CONST
char *ib;
+
const
char *ib;
char *ob;
size_t ibl, obl, n1, n2;
char *ob;
size_t ibl, obl, n1, n2;
@@
-295,8
+296,8
@@
static size_t encode_block (char *s, char *d, size_t dlen,
cd = mutt_iconv_open (tocode, fromcode, 0);
assert (cd != (iconv_t) (-1));
ib = d, ibl = dlen, ob = buf1, obl = sizeof (buf1) - str_len (tocode);
cd = mutt_iconv_open (tocode, fromcode, 0);
assert (cd != (iconv_t) (-1));
ib = d, ibl = dlen, ob = buf1, obl = sizeof (buf1) - str_len (tocode);
- n1 =
iconv
(cd, &ib, &ibl, &ob, &obl);
- n2 =
iconv
(cd, 0, 0, &ob, &obl);
+ n1 =
my_iconv
(cd, &ib, &ibl, &ob, &obl);
+ n2 =
my_iconv
(cd, 0, 0, &ob, &obl);
assert (n1 != (size_t) (-1) && n2 != (size_t) (-1));
iconv_close (cd);
return (*encoder) (s, buf1, ob - buf1, tocode);
assert (n1 != (size_t) (-1) && n2 != (size_t) (-1));
iconv_close (cd);
return (*encoder) (s, buf1, ob - buf1, tocode);
@@
-343,7
+344,7
@@
static size_t choose_block (char *d, size_t dlen, int col,
* The input data is assumed to be a single line starting at column col;
* if col is non-zero, the preceding character was a space.
*/
* The input data is assumed to be a single line starting at column col;
* if col is non-zero, the preceding character was a space.
*/
-static int rfc2047_encode (
ICONV_CONST
char *d, size_t dlen, int col,
+static int rfc2047_encode (
const
char *d, size_t dlen, int col,
const char *fromcode, const char *charsets,
char **e, size_t * elen, char *specials)
{
const char *fromcode, const char *charsets,
char **e, size_t * elen, char *specials)
{
@@
-356,7
+357,7
@@
static int rfc2047_encode (ICONV_CONST char *d, size_t dlen, int col,
encoder_t encoder;
char *tocode1 = 0;
const char *tocode;
encoder_t encoder;
char *tocode1 = 0;
const char *tocode;
- char *icode = "UTF-8";
+ c
onst c
har *icode = "UTF-8";
/* Try to convert to UTF-8. */
if (convert_string (d, dlen, fromcode, icode, &u, &ulen)) {
/* Try to convert to UTF-8. */
if (convert_string (d, dlen, fromcode, icode, &u, &ulen)) {
@@
-519,7
+520,7
@@
void _rfc2047_encode_string (char **pd, int encode_specials, int col)
{
char *e;
size_t elen;
{
char *e;
size_t elen;
- char *charsets;
+ c
onst c
har *charsets;
if (!Charset || !*pd)
return;
if (!Charset || !*pd)
return;
@@
-818,13
+819,7
@@
void rfc2047_decode_envelope (ENVELOPE* e) {
rfc2047_decode_adrlist (e->sender);
if (e->subject) {
rfc2047_decode_adrlist (e->sender);
if (e->subject) {
- regmatch_t pmatch[1];
-
rfc2047_decode (&e->subject);
rfc2047_decode (&e->subject);
-
- if (regexec (ReplyRegexp.rx, e->subject, 1, pmatch, 0) == 0)
- e->real_subj = e->subject + pmatch[0].rm_eo;
- else
- e->real_subj = e->subject;
+ mutt_adjust_subject (e);
}
}
}
}