#define ENCWORD_LEN_MIN 9 /* m_strlen("=?.?.?.?=") */
#define HSPACE(x) ((x) == '\0' || (x) == ' ' || (x) == '\t')
-
#define CONTINUATION_BYTE(c) (((c) & 0xc0) == 0x80)
/* converts f of len flen and charset from
* 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 (const char *d, ssize_t dlen,
- const char *fromcode, const char *tocode,
- encoder_t **encoder, ssize_t *wlen)
+static size_t try_block(const char *d, ssize_t dlen,
+ const char *fromcode, const char *tocode,
+ encoder_t **encoder, ssize_t *wlen)
{
char buf1[ENCWORD_LEN_MAX - ENCWORD_LEN_MIN + 1];
ssize_t obl = sizeof(buf1) - m_strlen(tocode);
* Encode the data (d, dlen) into s using the encoder.
* Return the length of the encoded word.
*/
-static size_t encode_block (char *s, char *d, ssize_t dlen,
- const char *fromcode, const char *tocode,
- encoder_t *encoder)
+static size_t
+encode_block(char *s, char *d, ssize_t dlen,
+ const char *fromcode, const char *tocode, encoder_t *encoder)
{
char buf1[ENCWORD_LEN_MAX - ENCWORD_LEN_MIN + 1];
ssize_t ibl, obl, n1, n2;
char *ob;
if (fromcode) {
- cd = mutt_iconv_open (tocode, fromcode, 0);
+ cd = mutt_iconv_open(tocode, fromcode, 0);
assert (cd != (iconv_t) (-1));
- ib = d, ibl = dlen, ob = buf1, obl = sizeof (buf1) - m_strlen(tocode);
+ ib = d, ibl = dlen, ob = buf1, obl = sizeof(buf1) - m_strlen(tocode);
n1 = my_iconv(cd, &ib, &ibl, &ob, &obl);
n2 = my_iconv(cd, 0, 0, &ob, &obl);
assert (n1 >= 0 && n2 >= 0);
iconv_close (cd);
- return (*encoder) (s, buf1, ob - buf1, tocode);
+ return (*encoder)(s, buf1, ob - buf1, tocode);
} else {
- return (*encoder) (s, d, dlen, tocode);
+ return (*encoder)(s, d, dlen, tocode);
}
}
encoder_t **encoder, ssize_t *wlen)
{
size_t n, nn;
- int utf8 = fromcode && !ascii_strcasecmp (fromcode, "UTF-8");
+ int utf8 = fromcode && !ascii_strcasecmp(fromcode, "UTF-8");
n = dlen;
for (;;) {
assert (d + n > d);
- nn = try_block (d, n, fromcode, tocode, encoder, wlen);
+ nn = try_block(d, n, fromcode, tocode, encoder, wlen);
if (!nn && (col + *wlen <= ENCWORD_LEN_MAX + 1 || n <= 1))
break;
n = (nn ? nn : n) - 1;
assert (n > 0);
- if (utf8)
- while (n > 1 && CONTINUATION_BYTE (d[n]))
+ if (utf8) {
+ while (n > 1 && CONTINUATION_BYTE(d[n]))
--n;
+ }
}
return n;
}
+
+
+/*** XXX: MC: not read after that mark ***/
+
/*
* Place the result of RFC-2047-encoding (d, dlen) into the dynamically
* allocated buffer (e, elen). The input data is in charset fromcode