X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=muttlib.c;h=81a0788ad6c25645754361f02c1be79aaef4c408;hb=c8b8b9539aaf11b48c4c1e5baba434db09722111;hp=539f7faaf699d73827a3e285f5a7c791a974c9cb;hpb=031280cca515ce7949dfef0c6c8265c6112b1e34;p=apps%2Fmadmutt.git diff --git a/muttlib.c b/muttlib.c index 539f7fa..81a0788 100644 --- a/muttlib.c +++ b/muttlib.c @@ -70,72 +70,6 @@ void mutt_adv_mktemp (const char* dir, char *s, ssize_t l) } } -/* create a send-mode duplicate from a receive-mode body */ - -int mutt_copy_body (FILE * fp, BODY ** tgt, BODY * src) -{ - char tmp[_POSIX_PATH_MAX]; - BODY *b; - - parameter_t *par, **ppar; - - short use_disp; - - if (src->filename) { - use_disp = 1; - m_strcpy(tmp, sizeof(tmp), src->filename); - } - else { - use_disp = 0; - tmp[0] = '\0'; - } - - mutt_adv_mktemp (NULL, tmp, sizeof (tmp)); - if (mutt_save_attachment (fp, src, tmp, 0, NULL) == -1) - return -1; - - *tgt = body_new(); - b = *tgt; - - memcpy (b, src, sizeof (BODY)); - b->parts = NULL; - b->next = NULL; - - b->filename = m_strdup(tmp); - b->use_disp = use_disp; - b->unlink = 1; - - if (mutt_is_text_part (b)) - b->noconv = 1; - - b->xtype = m_strdup(b->xtype); - b->subtype = m_strdup(b->subtype); - b->form_name = m_strdup(b->form_name); - b->filename = m_strdup(b->filename); - b->d_filename = m_strdup(b->d_filename); - b->description = m_strdup(b->description); - - /* - * we don't seem to need the HEADER structure currently. - * XXX - this may change in the future - */ - - if (b->hdr) - b->hdr = NULL; - - /* copy parameters */ - for (par = b->parameter, ppar = &b->parameter; par; - ppar = &(*ppar)->next, par = par->next) { - *ppar = parameter_new(); - (*ppar)->attribute = m_strdup(par->attribute); - (*ppar)->value = m_strdup(par->value); - } - - mutt_stamp_attachment (b); - - return 0; -} - /* returns true if the header contained in "s" is in list "t" */ int mutt_matches_ignore (const char *s, string_list_t * t) { @@ -316,66 +250,13 @@ void mutt_pretty_mailbox (char *s) } } -void mutt_pretty_size (char *s, ssize_t len, long n) -{ - if (n == 0) - m_strcpy(s, len, "0K"); - else if (n < 10189) /* 0.1K - 9.9K */ - snprintf (s, len, "%3.1fK", (n < 103) ? 0.1 : n / 1024.0); - else if (n < 1023949) { /* 10K - 999K */ - /* 51 is magic which causes 10189/10240 to be rounded up to 10 */ - snprintf (s, len, "%ldK", (n + 51) / 1024); - } - else if (n < 10433332) /* 1.0M - 9.9M */ - snprintf (s, len, "%3.1fM", n / 1048576.0); - else { /* 10M+ */ - - /* (10433332 + 52428) / 1048576 = 10 */ - snprintf (s, len, "%ldM", (n + 52428) / 1048576); - } -} - void mutt_expand_file_fmt(char *dest, ssize_t destlen, const char *fmt, const char *src) { char tmp[LONG_STRING]; mutt_quote_filename(tmp, sizeof(tmp), src); - mutt_expand_fmt(dest, destlen, fmt, tmp); -} - -void mutt_expand_fmt(char *dst, ssize_t dlen, - const char *fmt, const char *src) -{ - ssize_t pos = 0; - int found = 0; - - while (*fmt && pos < dlen - 1) { - if (*fmt == '%') { - switch (*++fmt) { - case 's': - found = 1; - pos += m_strcpy(dst + pos, dlen - pos, src); - break; - - case '%': - dst[pos++] = *fmt++; - break; - - default: - dst[pos++] = '%'; - break; - } - } else { - dst[pos++] = *fmt++; - } - } - - dst[pos] = '\0'; - if (!found) { - pos += m_strcpy(dst + pos, dlen - pos, " "); - pos += m_strcpy(dst + pos, dlen - pos, src); - } + m_snsubst(dest, destlen, fmt, tmp); } /* return 0 on success, -1 on abort, 1 on error */