}
}
-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);
- 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;
-
- 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 */
void mutt_clear_error (void);
void mutt_default_save (char *, ssize_t, HEADER *);
void mutt_display_address (ENVELOPE *);
-void mutt_display_sanitize (char *);
void mutt_edit_content_type (HEADER *, BODY *, FILE *);
void mutt_edit_file (const char *, const char *);
void mutt_edit_headers (const char *, const char *, HEADER *, char *, ssize_t);
int _mutt_save_message (HEADER *, CONTEXT *, int, int, int);
int mutt_save_message (HEADER *, int, int, int, int *);
int mutt_search_command (int, int);
-int mutt_skipchars (const char *, const char *);
int mutt_strwidth (const char *);
int mutt_compose_menu (HEADER *, char *, ssize_t, HEADER *);
int mutt_thread_set_flag (HEADER *, int, int, int);