X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=recvattach.c;h=30bcb49cff906ef655e796a2ed2302aa440039ea;hp=265a18c40d3f5611ee7cabd8d52641adbcf7013a;hb=0667a943d2454ec20b069133861cd40ffe685819;hpb=ba5e3af4ea19e1d20c80941c077039871ec84258 diff --git a/recvattach.c b/recvattach.c index 265a18c..30bcb49 100644 --- a/recvattach.c +++ b/recvattach.c @@ -13,6 +13,10 @@ #endif #include "mutt.h" +#include "ascii.h" +#include "enter.h" +#include "handler.h" +#include "recvattach.h" #include "mutt_curses.h" #include "mutt_menu.h" #include "rfc1524.h" @@ -45,6 +49,8 @@ static char LastSaveFolder[_POSIX_PATH_MAX] = ""; break; \ } +#define SW (option(OPTMBOXPANE)?SidebarWidth:0) + static struct mapping_t AttachHelp[] = { {N_("Exit"), OP_EXIT}, {N_("Save"), OP_SAVE}, @@ -54,7 +60,7 @@ static struct mapping_t AttachHelp[] = { {NULL} }; -int mutt_extract_path (char *filename, char *path) +static int mutt_extract_path (char *filename, char *path) { char *tmp = mem_malloc (sizeof (char) * _POSIX_PATH_MAX); char *help_ptr; @@ -298,6 +304,14 @@ const char *mutt_attach_fmt (char *dest, snprintf (dest, destlen, fmt, aptr->num + 1); } break; + case 'Q': + if (optional) + optional = aptr->content->attach_qualifies; + else { + snprintf (fmt, sizeof (fmt), "%%%sc", prefix); + mutt_format_s (dest, destlen, fmt, "Q"); + } + break; case 's': if (flags & M_FORMAT_STAT_FILE) { struct stat st; @@ -334,6 +348,14 @@ const char *mutt_attach_fmt (char *dest, else if (!aptr->content->unlink) optional = 0; break; + case 'X': + if (optional) + optional = (aptr->content->attach_count + aptr->content->attach_qualifies) != 0; + else { + snprintf (fmt, sizeof (fmt), "%%%sd", prefix); + snprintf (dest, destlen, fmt, aptr->content->attach_count + aptr->content->attach_qualifies); + } + break; default: *dest = 0; } @@ -345,9 +367,10 @@ const char *mutt_attach_fmt (char *dest, return (src); } -void attach_entry (char *b, size_t blen, MUTTMENU * menu, int num) +static void attach_entry (char *b, size_t blen, MUTTMENU * menu, int num) { - mutt_FormatString (b, blen, NONULL (AttachFormat), mutt_attach_fmt, + int w=(COLS-SW)>blen?blen:(COLS-SW); + mutt_FormatString (b, w, NONULL (AttachFormat), mutt_attach_fmt, (unsigned long) (((ATTACHPTR **) menu->data)[num]), M_FORMAT_ARROWCURSOR); } @@ -738,7 +761,7 @@ void mutt_print_attachment_list (FILE * fp, int tag, BODY * top) print_attachment_list (fp, tag, top, &state); } -void +static void mutt_update_attach_index (BODY * cur, ATTACHPTR *** idxp, short *idxlen, short *idxmax, MUTTMENU * menu) {