X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=muttlib.c;h=6ac6dbaef2d21f53c8c359d01b561d1ab172a565;hp=fc9606d6160e6494a2b3c6698b175993471f4ce2;hb=529d980f183269a45ba925b4f9ee688b01ad3b22;hpb=0dbe922d4298aed78dcba64b7c770f315a64505e diff --git a/muttlib.c b/muttlib.c index fc9606d..6ac6dba 100644 --- a/muttlib.c +++ b/muttlib.c @@ -157,15 +157,6 @@ int mutt_copy_body (FILE * fp, BODY ** tgt, BODY * src) return 0; } -HEADER *mutt_dup_header (HEADER * h) -{ - HEADER *hnew; - - hnew = header_new(); - memcpy (hnew, h, sizeof (HEADER)); - return hnew; -} - /* returns true if the header contained in "s" is in list "t" */ int mutt_matches_ignore (const char *s, string_list_t * t) { @@ -352,57 +343,6 @@ char *_mutt_expand_path (char *s, ssize_t slen, int rx) return (s); } -/* returns 1 if Mutt can't display this type of data, 0 otherwise */ -int mutt_needs_mailcap (BODY * m) -{ - switch (m->type) { - case TYPETEXT: - - if (!ascii_strcasecmp ("plain", m->subtype) || - !ascii_strcasecmp ("rfc822-headers", m->subtype) || - !ascii_strcasecmp ("enriched", m->subtype)) - return 0; - break; - - case TYPEAPPLICATION: - if (mutt_is_application_pgp (m)) - return 0; - if (mutt_is_application_smime (m)) - return 0; - break; - - case TYPEMULTIPART: - case TYPEMESSAGE: - return 0; - } - - return 1; -} - -int mutt_is_text_part (BODY * b) -{ - int t = b->type; - char *s = b->subtype; - - if (mutt_is_application_pgp (b)) - return 0; - - if (t == TYPETEXT) - return 1; - - if (t == TYPEMESSAGE) { - if (!ascii_strcasecmp ("delivery-status", s)) - return 1; - } - - if (t == TYPEAPPLICATION) { - if (!ascii_strcasecmp ("pgp-keys", s)) - return 1; - } - - return 0; -} - /* move all the headers from extra not present in base into base */ void mutt_merge_envelopes(ENVELOPE* base, ENVELOPE** extra) { @@ -526,59 +466,47 @@ void mutt_pretty_size (char *s, ssize_t len, long n) } } -void mutt_expand_file_fmt (char *dest, ssize_t destlen, const char *fmt, - const char *src) +void mutt_expand_file_fmt(char *dest, ssize_t destlen, + const char *fmt, const char *src) { - char tmp[LONG_STRING]; + char tmp[LONG_STRING]; - mutt_quote_filename (tmp, sizeof (tmp), src); - mutt_expand_fmt (dest, destlen, fmt, tmp); + mutt_quote_filename(tmp, sizeof(tmp), src); + mutt_expand_fmt(dest, destlen, fmt, tmp); } -void mutt_expand_fmt (char *dest, ssize_t destlen, const char *fmt, - const char *src) +void mutt_expand_fmt(char *dst, ssize_t dlen, + const char *fmt, const char *src) { - const char *p; - char *d; - ssize_t slen; - int found = 0; - - slen = m_strlen(src); - destlen--; - - for (p = fmt, d = dest; destlen && *p; p++) { - if (*p == '%') { - switch (p[1]) { - case '%': - *d++ = *p++; - destlen--; - break; - case 's': - found = 1; - m_strcpy(d, destlen + 1, src); - d += destlen > slen ? slen : destlen; - destlen -= destlen > slen ? slen : destlen; - p++; - break; - default: - *d++ = *p; - destlen--; - break; - } - } - else { - *d++ = *p; - destlen--; + 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++; + } } - } - - *d = '\0'; - - if (!found && destlen > 0) { - m_strcat(dest, destlen, " "); - m_strcat(dest, destlen, src); - } + dst[pos] = '\0'; + if (!found) { + pos += m_strcpy(dst + pos, dlen - pos, " "); + pos += m_strcpy(dst + pos, dlen - pos, src); + } } /* return 0 on success, -1 on abort, 1 on error */ @@ -651,51 +579,31 @@ int mutt_check_overwrite (const char *attname, const char *path, return 0; } -void mutt_save_path (char *d, ssize_t dsize, address_t * a) +void mutt_save_path(char *d, ssize_t dsize, address_t *a) { - if (a && a->mailbox) { - m_strcpy(d, dsize, a->mailbox); - if (!option (OPTSAVEADDRESS)) { - char *p; + if (a && a->mailbox) { + m_strcpy(d, dsize, a->mailbox); - if ((p = strpbrk (d, "%@"))) - *p = 0; + if (!option(OPTSAVEADDRESS)) { + char *p = strpbrk(d, "%@"); + if (p) + *p = '\0'; + } + m_strtolower(d); + } else { + *d = '\0'; } - m_strtolower(d); - } - else - *d = 0; } -void mutt_safe_path (char *s, ssize_t l, address_t * a) +void mutt_safe_path(char *s, ssize_t l, address_t *a) { - char *p; - - mutt_save_path (s, l, a); - for (p = s; *p; p++) - if (*p == '/' || ISSPACE (*p) || !IsPrint ((unsigned char) *p)) - *p = '_'; -} - -/* counts how many characters in s can be skipped while none of the - * characters of c appears */ -int mutt_skipchars (const char *s, const char *c) -{ - int ret = 0; - const char *p = s; + mutt_save_path(s, l, a); - while (s && *s) { - register const char *t = c; - - while (t && *t) { - if (*t == *s) - return (ret); - t++; + while (*s) { + if (*s == '/' || ISSPACE(*s) || !IsPrint((unsigned char)*s)) + *s = '_'; + s++; } - ret++; - s++; - } - return (m_strlen(p)); } void mutt_FormatString (char *dest, /* output buffer */ @@ -889,7 +797,7 @@ void mutt_FormatString (char *dest, /* output buffer */ col++; } else { - unsigned int bar = mutt_skipchars (src, "%\\"); + unsigned int bar = strcspn(src, "%\\"); char *bar2 = p_dupstr(src, bar); while (bar--) { @@ -1008,20 +916,9 @@ int mutt_save_confirm (const char *s, struct stat *st) return (ret); } -void mutt_display_sanitize (char *s) -{ - for (; *s; s++) { - if (!IsPrint (*s)) - *s = '?'; - } -} - void mutt_sleep (short s) { - if (SleepTime > s) - sleep (SleepTime); - else if (s) - sleep (s); + sleep(MAX(s, SleepTime)); } /* Decrease a file's modification time by 1 second */