X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=commands.c;h=d8a10d7f886ecfba667c8221e324f916cf196dec;hp=01ea63979aef2e30e9be52114fa9ecaa527552e1;hb=6ebff74ad242d4c56fb7762965b19cee14fd2daa;hpb=ac813896ca32d850febc2d95065ac4fa040f11f9 diff --git a/commands.c b/commands.c index 01ea639..d8a10d7 100644 --- a/commands.c +++ b/commands.c @@ -8,25 +8,9 @@ * please see the file GPL in the top level source directory. */ -#if HAVE_CONFIG_H -# include "config.h" -#endif - -#include -#include -#include -#include -#include -#include -#include +#include #include -#include -#include -#include -#include -#include - #include #include @@ -35,26 +19,22 @@ #include #include #include +#include #include "mutt.h" +#include "alias.h" #include "recvattach.h" #include "sort.h" #include "copy.h" -#include "mx.h" #include "pager.h" #include #include "mutt_idna.h" -#include "rfc1524.h" #include #include #include #include -#ifdef BUFFY_SIZE -#include "buffy.h" -#endif - /* The folder the user last saved to. Used by ci_save_message() */ static char LastSaveFolder[_POSIX_PATH_MAX] = ""; @@ -75,11 +55,10 @@ int mutt_display_message (HEADER * cur) mutt_parse_mime_message (Context, cur); mutt_message_hook (Context, cur, M_MESSAGEHOOK); - mutt_mktemp (tempfile); - if ((fpout = safe_fopen (tempfile, "w")) == NULL) { + fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL); + if (!fpout) { mutt_error _("Could not create temporary file!"); - - return (0); + return 0; } if (DisplayFilter && *DisplayFilter) { @@ -90,7 +69,7 @@ int mutt_display_message (HEADER * cur) -1, fileno (fpfilterout), -1); if (filterpid < 0) { mutt_error (_("Cannot create display filter")); - safe_fclose (&fpfilterout); + m_fclose(&fpfilterout); unlink (tempfile); return 0; } @@ -143,18 +122,17 @@ int mutt_display_message (HEADER * cur) (option (OPTWEED) ? (CH_WEED | CH_REORDER) : 0) | CH_DECODE | CH_FROM); if (res == 0 && (ferror(fpout) || feof(fpout))) { - debug_print (1, ("_mutt_copy_message failed to detect EOF!\n")); res = -1; } mx_close_message (&msg); } - if ((safe_fclose (&fpout) != 0 && errno != EPIPE) || res == -1) { + if ((m_fclose(&fpout) != 0 && errno != EPIPE) || res == -1) { mutt_error (_("Could not copy message")); if (fpfilterout != NULL) { mutt_wait_filter (filterpid); - safe_fclose (&fpfilterout); + m_fclose(&fpfilterout); } #if 0 /* this is maybe just plain wrong but it makes the pager display @@ -171,7 +149,7 @@ int mutt_display_message (HEADER * cur) if (fpfilterout != NULL && mutt_wait_filter (filterpid) != 0) mutt_any_key_to_continue (NULL); - safe_fclose (&fpfilterout); /* XXX - check result? */ + m_fclose(&fpfilterout); /* XXX - check result? */ /* update crypto information for this message */ @@ -242,7 +220,7 @@ void ci_bounce_message (HEADER * h, int *redraw) char prompt[SHORT_STRING]; char buf[HUGE_STRING] = { 0 }; address_t *adr = NULL; - const char *err = NULL; + char *err = NULL; int rc; if (h) @@ -378,7 +356,7 @@ static int _mutt_pipe_message(HEADER * h, char *cmd, int decode, int print, } pipe_msg (h, fpout, decode, print); - fclose (fpout); + m_fclose(&fpout); rc = mutt_wait_filter (thepid); } else { /* handle tagged messages */ @@ -411,7 +389,7 @@ static int _mutt_pipe_message(HEADER * h, char *cmd, int decode, int print, /* add the message separator */ if (sep) fputs (sep, fpout); - safe_fclose (&fpout); + m_fclose(&fpout); if (mutt_wait_filter (thepid) != 0) rc = 1; } @@ -434,7 +412,7 @@ static int _mutt_pipe_message(HEADER * h, char *cmd, int decode, int print, fputs (sep, fpout); } } - safe_fclose (&fpout); + m_fclose(&fpout); if (mutt_wait_filter (thepid) != 0) rc = 1; } @@ -676,12 +654,7 @@ int mutt_save_message (HEADER * h, int delete, char prompt[SHORT_STRING], buf[_POSIX_PATH_MAX]; CONTEXT ctx; struct stat st; - -#ifdef BUFFY_SIZE - BUFFY *tmp = NULL; -#else struct utimbuf ut; -#endif *redraw = 0; @@ -795,20 +768,14 @@ int mutt_save_message (HEADER * h, int delete, mx_close_mailbox (&ctx, NULL); if (need_buffy_cleanup) { -#ifdef BUFFY_SIZE - tmp = buffy_find_mailbox (buf); - if (tmp && tmp->new <= 0) - buffy_update_mailbox (tmp); -#else /* fix up the times so buffy won't get confused */ if (st.st_mtime > st.st_atime) { ut.actime = st.st_atime; ut.modtime = time (NULL); utime (buf, &ut); - } - else + } else { utime (buf, NULL); -#endif + } } mutt_clear_error (); @@ -828,7 +795,6 @@ void mutt_edit_content_type (HEADER * h, BODY * b, FILE * fp) char buf[LONG_STRING]; char obuf[LONG_STRING]; char tmp[STRING]; - PARAMETER *p; char charset[STRING]; char *cp; @@ -836,13 +802,14 @@ void mutt_edit_content_type (HEADER * h, BODY * b, FILE * fp) short charset_changed = 0; short type_changed = 0; - cp = mutt_get_parameter ("charset", b->parameter); + cp = parameter_getval(b->parameter, "charset"); m_strcpy(charset, sizeof(charset), NONULL(cp)); snprintf (buf, sizeof (buf), "%s/%s", TYPE (b), b->subtype); m_strcpy(obuf, sizeof(obuf), buf); if (b->parameter) { - size_t l; + parameter_t *p; + ssize_t l; for (p = b->parameter; p; p = p->next) { l = m_strlen(buf); @@ -866,7 +833,7 @@ void mutt_edit_content_type (HEADER * h, BODY * b, FILE * fp) snprintf (tmp, sizeof (tmp), "%s/%s", TYPE (b), NONULL (b->subtype)); type_changed = ascii_strcasecmp (tmp, obuf); charset_changed = - ascii_strcasecmp (charset, mutt_get_parameter ("charset", b->parameter)); + ascii_strcasecmp (charset, parameter_getval(b->parameter, "charset")); /* if in send mode, check for conversion - current setting is default. */ @@ -874,7 +841,7 @@ void mutt_edit_content_type (HEADER * h, BODY * b, FILE * fp) int r; snprintf (tmp, sizeof (tmp), _("Convert to %s upon sending?"), - mutt_get_parameter ("charset", b->parameter)); + parameter_getval(b->parameter, "charset")); if ((r = mutt_yesorno (tmp, !b->noconv)) != -1) b->noconv = (r == M_NO); } @@ -888,14 +855,14 @@ void mutt_edit_content_type (HEADER * h, BODY * b, FILE * fp) if (type_changed) mutt_sleep (1); mutt_message (_("Character set changed to %s; %s."), - mutt_get_parameter ("charset", b->parameter), + parameter_getval(b->parameter, "charset"), b->noconv ? _("not converting") : _("converting")); } b->force_charset |= charset_changed ? 1 : 0; if (!is_multipart(b) && b->parts) - mutt_free_body (&b->parts); + body_list_wipe(&b->parts); if (!mutt_is_message_type (b->type, b->subtype) && b->hdr) { b->hdr->content = NULL; header_delete(&b->hdr);