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)
{
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)
{
}
}
-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 */
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 */
col++;
}
else {
- unsigned int bar = mutt_skipchars (src, "%\\");
+ unsigned int bar = strcspn(src, "%\\");
char *bar2 = p_dupstr(src, bar);
while (bar--) {
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 */