static void transform_to_7bit (BODY * a, FILE * fpin);
-static void encode_quoted (FGETCONV * fc, FILE * fout, int istext)
+static void encode_quoted (fgetconv_t * fc, FILE * fout, int istext)
{
int c, linelen = 0;
char line[77], savechar;
}
-static void encode_base64 (FGETCONV * fc, FILE * fout, int istext)
+static void encode_base64 (fgetconv_t * fc, FILE * fout, int istext)
{
int ch, ch1 = EOF;
fputc ('\n', fout);
}
-static void encode_8bit (FGETCONV * fc, FILE * fout, int istext)
+static void encode_8bit (fgetconv_t * fc, FILE * fout, int istext)
{
int ch;
int mutt_write_mime_header (BODY * a, FILE * f)
{
- PARAMETER *p;
char buffer[STRING];
char *t;
char *fn;
fprintf (f, "Content-Type: %s/%s", TYPE (a), a->subtype);
if (a->parameter) {
+ parameter_t *p;
+
len = 25 + m_strlen(a->subtype); /* approximate len. of content-type */
for (p = a->parameter; p; p = p->next) {
int mutt_write_mime_body (BODY * a, FILE * f)
{
- char *p, boundary[SHORT_STRING];
+ const char *p;
+ char boundary[SHORT_STRING];
char send_charset[SHORT_STRING];
FILE *fpin;
BODY *t;
- FGETCONV *fc;
+ fgetconv_t *fc;
if (a->type == TYPEMULTIPART) {
/* First, find the boundary to use */
- if (!(p = mutt_get_parameter ("boundary", a->parameter))) {
+ if (!(p = parameter_getval(a->parameter, "boundary"))) {
mutt_error _("No boundary parameter found! [report this error]");
return (-1);
#undef write_as_text_part
-#define BOUNDARYLEN 16
-void mutt_generate_boundary (PARAMETER ** parm)
-{
- char rs[BOUNDARYLEN + 1];
- char *p = rs;
- int i;
-
- rs[BOUNDARYLEN] = 0;
- for (i = 0; i < BOUNDARYLEN; i++)
- *p++ = __m_b64chars[lrand48() % sizeof(__m_b64chars)];
- *p = 0;
-
- mutt_set_parameter ("boundary", rs, parm);
-}
-
typedef struct {
int from;
int whitespace;
ssize_t *score;
cd1 = mutt_iconv_open ("UTF-8", fromcode, 0);
- if (cd1 == (iconv_t) (-1))
+ if (cd1 == MUTT_ICONV_ERROR)
return -1;
cd = p_new(iconv_t, ncodes);
cd[i] = mutt_iconv_open (tocodes[i], "UTF-8", 0);
else
/* Special case for conversion to UTF-8 */
- cd[i] = (iconv_t) (-1), score[i] = -1;
+ cd[i] = MUTT_ICONV_ERROR, score[i] = -1;
rewind (file);
ibl = 0;
/* Convert from UTF-8 */
for (i = 0; i < ncodes; i++)
- if (cd[i] != (iconv_t) (-1) && score[i] != -1) {
+ if (cd[i] != MUTT_ICONV_ERROR && score[i] != -1) {
ub = bufu, ubl = ubl1;
ob = bufo, obl = sizeof (bufo);
n = my_iconv(cd[i], (ibl || ubl) ? &ub : 0, &ubl, &ob, &obl);
update_content_info (&infos[i], &states[i], bufo, ob - bufo);
}
}
- else if (cd[i] == (iconv_t) (-1) && score[i] == -1)
+ else if (cd[i] == MUTT_ICONV_ERROR && score[i] == -1)
/* Special case for conversion to UTF-8 */
update_content_info (&infos[i], &states[i], bufu, ubl1);
/* Find best score */
ret = -1;
for (i = 0; i < ncodes; i++) {
- if (cd[i] == (iconv_t) (-1) && score[i] == -1) {
+ if (cd[i] == MUTT_ICONV_ERROR && score[i] == -1) {
/* Special case for conversion to UTF-8 */
*tocode = i;
ret = 0;
break;
}
- else if (cd[i] == (iconv_t) (-1) || score[i] == -1)
+ else if (cd[i] == MUTT_ICONV_ERROR || score[i] == -1)
continue;
else if (ret == -1 || score[i] < ret) {
*tocode = i;
}
for (i = 0; i < ncodes; i++)
- if (cd[i] != (iconv_t) (-1))
+ if (cd[i] != MUTT_ICONV_ERROR)
iconv_close (cd[i]);
iconv_close (cd1);
p_clear(&state, 1);
if (b != NULL && b->type == TYPETEXT && (!b->noconv && !b->force_charset)) {
- char *chs = mutt_get_parameter ("charset", b->parameter);
+ const char *chs = parameter_getval(b->parameter, "charset");
char *fchs = b->use_disp ? ((FileCharset && *FileCharset) ?
FileCharset : Charset) : Charset;
if (Charset && (chs || SendCharset) &&
convert_file_from_to (fp, fchs, chs ? chs : SendCharset,
&fromcode, &tocode, info) != -1) {
if (!chs) {
- mutt_canonical_charset (chsbuf, sizeof (chsbuf), tocode);
- mutt_set_parameter ("charset", chsbuf, &b->parameter);
+ charset_canonicalize (chsbuf, sizeof (chsbuf), tocode);
+ parameter_setval(&b->parameter, "charset", chsbuf);
}
b->file_charset = fromcode;
p_delete(&tocode);
safe_fclose (&fp);
if (b != NULL && b->type == TYPETEXT && (!b->noconv && !b->force_charset))
- mutt_set_parameter ("charset", (!info->hibin ? "us-ascii" :
- Charset
- && !charset_is_us_ascii (Charset) ? Charset :
- "unknown-8bit"), &b->parameter);
+ parameter_setval(&b->parameter, "charset",
+ (!info->hibin ? "us-ascii"
+ : Charset && !charset_is_us_ascii(Charset) ? Charset : "unknown-8bit"));
return info;
}
char *mutt_get_body_charset (char *d, ssize_t dlen, BODY * b)
{
- char *p = NULL;
+ const char *p = NULL;
if (b && b->type != TYPETEXT)
return NULL;
if (b)
- p = mutt_get_parameter ("charset", b->parameter);
+ p = parameter_getval(b->parameter, "charset");
if (p)
- mutt_canonical_charset (d, dlen, NONULL (p));
+ charset_canonicalize (d, dlen, p);
else
m_strcpy(d, dlen, "us-ascii");
a->noconv = 0;
if (!a->force_charset && !a->noconv)
- mutt_delete_parameter ("charset", &a->parameter);
+ parameter_delval(&a->parameter, "charset");
if ((info = mutt_get_content_info (a->filename, a)) == NULL)
return;
new->type = TYPEMULTIPART;
new->subtype = m_strdup("mixed");
new->encoding = get_toplevel_encoding (b);
- mutt_generate_boundary (&new->parameter);
+ parameter_set_boundary(&new->parameter);
new->use_disp = 0;
new->disposition = DISPINLINE;
new->parts = b;
if (b->type == TYPEMESSAGE || b->type == TYPEMULTIPART)
set_noconv_flags (b->parts, flag);
else if (b->type == TYPETEXT && b->noconv) {
- if (flag)
- mutt_set_parameter ("x-mutt-noconv", "yes", &b->parameter);
- else
- mutt_delete_parameter ("x-mutt-noconv", &b->parameter);
+ parameter_setval(&b->parameter, "x-mutt-noconv", flag ? "yes" : NULL);
}
}
}