* please see the file GPL in the top level source directory.
*/
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <sys/wait.h>
-#include <sys/stat.h>
-
-#include <lib-lib/mem.h>
-#include <lib-lib/ascii.h>
-#include <lib-lib/str.h>
-#include <lib-lib/macros.h>
-#include <lib-lib/file.h>
+#include <lib-lib/lib-lib.h>
#include <lib-mime/mime.h>
#include <lib-mime/rfc3676.h>
#include <lib-ui/curses.h>
+#include <lib-sys/unix.h>
+
#include "mutt.h"
#include "recvattach.h"
#include "handler.h"
*
*/
-void mutt_decode_quoted (STATE * s, long len, int istext, iconv_t cd)
+static void mutt_decode_quoted (STATE * s, long len, int istext, iconv_t cd)
{
char line[STRING];
char decline[2 * STRING];
state_reset_prefix (s);
}
-unsigned char decode_byte (char ch)
+static unsigned char decode_byte (char ch)
{
if (ch == 96)
return 0;
return ch - 32;
}
-void mutt_decode_uuencoded (STATE * s, long len, int istext, iconv_t cd)
+static void mutt_decode_uuencoded (STATE * s, long len, int istext, iconv_t cd)
{
char tmps[SHORT_STRING];
char linelen, c, l, out;
}
}
-int text_enriched_handler (BODY * a, STATE * s)
+static int text_enriched_handler (BODY * a, STATE * s)
{
enum {
TEXT, LANGLE, TAG, BOGUS_TAG, NEWLINE, ST_EOF, DONE
mustfree = 1;
fstat (fileno (s->fpin), &st);
- b = mutt_new_body ();
+ b = body_new();
b->length = (long) st.st_size;
- b->parts = mutt_parse_multipart (s->fpin,
- mutt_get_parameter ("boundary",
- a->parameter),
- (long) st.st_size,
- ascii_strcasecmp ("digest",
- a->subtype) == 0);
+ b->parts = mutt_parse_multipart(s->fpin,
+ parameter_getval(a->parameter, "boundary"),
+ (long)st.st_size,
+ !ascii_strcasecmp("digest", a->subtype));
}
else
b = a;
}
if (mustfree)
- mutt_free_body (&a);
+ body_list_wipe(&a);
return (rc);
}
if (a->encoding == ENCBASE64 || a->encoding == ENCQUOTEDPRINTABLE ||
a->encoding == ENCUUENCODED) {
fstat (fileno (s->fpin), &st);
- b = mutt_new_body ();
+ b = body_new();
b->length = (long) st.st_size;
b->parts = mutt_parse_messageRFC822 (s->fpin, b);
}
if (a->encoding == ENCBASE64 || a->encoding == ENCQUOTEDPRINTABLE ||
a->encoding == ENCUUENCODED)
- mutt_free_body (&b);
+ body_list_wipe(&b);
return (rc);
}
if (a->encoding == ENCBASE64 || a->encoding == ENCQUOTEDPRINTABLE ||
a->encoding == ENCUUENCODED) {
fstat (fileno (s->fpin), &st);
- b = mutt_new_body ();
+ b = body_new();
b->length = (long) st.st_size;
- b->parts = mutt_parse_multipart (s->fpin,
- mutt_get_parameter ("boundary",
- a->parameter),
- (long) st.st_size,
- ascii_strcasecmp ("digest",
- a->subtype) == 0);
+ b->parts = mutt_parse_multipart(s->fpin,
+ parameter_getval(a->parameter, "boundary"),
+ (long)st.st_size,
+ !ascii_strcasecmp("digest", a->subtype));
}
else
b = a;
if (a->encoding == ENCBASE64 || a->encoding == ENCQUOTEDPRINTABLE ||
a->encoding == ENCUUENCODED)
- mutt_free_body (&b);
+ body_list_wipe(&b);
return (rc);
}
const char *expiration;
time_t expire;
- access_type = mutt_get_parameter ("access-type", b->parameter);
+ access_type = parameter_getval(b->parameter, "access-type");
if (!access_type) {
if (s->flags & M_DISPLAY) {
state_mark_attach (s);
return (-1);
}
- expiration = mutt_get_parameter ("expiration", b->parameter);
+ expiration = parameter_getval(b->parameter, "expiration");
if (expiration)
expire = mutt_parse_date (expiration, NULL);
else
state_mark_attach (s);
state_printf (s, _("[-- This %s/%s attachment "),
TYPE (b->parts), b->parts->subtype);
- length = mutt_get_parameter ("length", b->parameter);
+ length = parameter_getval(b->parameter, "length");
if (length) {
mutt_pretty_size (pretty_size, sizeof (pretty_size),
strtol (length, NULL, 10));
void mutt_decode_attachment (BODY * b, STATE * s)
{
int istext = mutt_is_text_part (b);
- iconv_t cd = (iconv_t) (-1);
+ iconv_t cd = MUTT_ICONV_ERROR;
Quotebuf[0] = '\0';
if (istext) {
if (s->flags & M_CHARCONV) {
- const char *charset = mutt_get_parameter ("charset", b->parameter);
+ const char *charset = parameter_getval(b->parameter, "charset");
if (!option (OPTSTRICTMIME) && !charset)
- charset = mutt_get_first_charset (AssumedCharset);
+ charset = charset_getfirst(AssumedCharset);
if (charset && Charset)
cd = mutt_iconv_open (Charset, charset, M_ICONV_HOOK_FROM);
}
break;
}
- if (cd != (iconv_t) (-1))
+ if (cd != MUTT_ICONV_ERROR)
iconv_close (cd);
}
if (mutt_is_application_pgp (b))
handler = crypt_pgp_application_pgp_handler;
else
- if (ascii_strcasecmp
- ("flowed", mutt_get_parameter ("format", b->parameter)) == 0)
- handler = rfc3676_handler;
+ if (!ascii_strcasecmp("flowed", parameter_getval(b->parameter, "format")))
+ handler = rfc3676_handler;
else
plaintext = 1;
}
if (ascii_strcasecmp ("alternative", b->subtype) == 0)
handler = alternative_handler;
else if (ascii_strcasecmp ("signed", b->subtype) == 0) {
- p = mutt_get_parameter ("protocol", b->parameter);
+ p = parameter_getval(b->parameter, "protocol");
if (!p)
mutt_error (_("Error: multipart/signed has no protocol."));
handler = mutt_signed_handler;
}
else if (m_strcasecmp("encrypted", b->subtype) == 0) {
- p = mutt_get_parameter ("protocol", b->parameter);
+ p = parameter_getval(b->parameter, "protocol");
if (!p)
mutt_error (_