X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=muttlib.c;h=e3a7cad5c5d392ea3af636c51778bd31f210d00b;hp=f2137a804ace5d513cc53324ddacf1629bb3e301;hb=4761fa78a6dfc9437caa6e6e0aac806e50e01c83;hpb=c98480f8568e6c1bc927c6c5f2b5e80b4aa6548c diff --git a/muttlib.c b/muttlib.c index f2137a8..e3a7cad 100644 --- a/muttlib.c +++ b/muttlib.c @@ -19,23 +19,21 @@ #include #include +#include + #include "mutt.h" #include "enter.h" #include "mutt_curses.h" -#include "mime.h" #include "mx.h" #include "url.h" #include "attach.h" -#include "reldate.h" #include "version.h" -#ifdef USE_IMAP -#include "imap.h" -#include "imap/mx_imap.h" -#endif +#include +#include -#include "mutt_crypt.h" +#include #include "lib/debug.h" @@ -77,14 +75,14 @@ void mutt_adv_mktemp (const char* dir, char *s, size_t l) size_t sl; struct stat sb; - strfcpy (buf, dir && *dir ? dir : NONULL (Tempdir), sizeof (buf)); + m_strcpy(buf, sizeof(buf), m_strisempty(dir) ? NONULL(Tempdir) : dir); mutt_expand_path (buf, sizeof (buf)); if (s[0] == '\0') { snprintf (s, l, "%s/muttXXXXXX", buf); mktemp (s); } else { - strfcpy (tmp, s, sizeof (tmp)); + m_strcpy(tmp, sizeof(tmp), s); mutt_sanitize_filename (tmp, 1); snprintf (s, l, "%s/%s", buf, tmp); if (lstat (s, &sb) == -1 && errno == ENOENT) @@ -96,7 +94,7 @@ void mutt_adv_mktemp (const char* dir, char *s, size_t l) if (period != NULL) { *period = '.'; sl = m_strlen(s); - strfcpy (s + sl, period, l - sl); + m_strcpy(s + sl, l - sl, period); } } } @@ -114,7 +112,7 @@ int mutt_copy_body (FILE * fp, BODY ** tgt, BODY * src) if (src->filename) { use_disp = 1; - strfcpy (tmp, src->filename, sizeof (tmp)); + m_strcpy(tmp, sizeof(tmp), src->filename); } else { use_disp = 0; @@ -244,9 +242,7 @@ void mutt_free_header (HEADER ** h) #ifdef MIXMASTER mutt_free_list (&(*h)->chain); #endif -#if defined USE_POP || defined USE_IMAP || defined USE_NNTP p_delete(&(*h)->data); -#endif p_delete(h); } @@ -269,19 +265,19 @@ void mutt_expand_link (char *newpath, const char *path, const char *lnk) /* lnk is full path */ if (*lnk == '/') { - strfcpy (newpath, lnk, _POSIX_PATH_MAX); + m_strcpy(newpath, _POSIX_PATH_MAX, lnk); return; } if ((lb = strrchr (path, '/')) == NULL) { /* no path in lnk */ - strfcpy (newpath, lnk, _POSIX_PATH_MAX); + m_strcpy(newpath, _POSIX_PATH_MAX, lnk); return; } len = lb - path + 1; memcpy (newpath, path, len); - strfcpy (newpath + len, lnk, _POSIX_PATH_MAX - len); + m_strcpy(newpath + len, _POSIX_PATH_MAX - len, lnk); } char *mutt_expand_path (char *s, size_t slen) @@ -307,7 +303,7 @@ char *_mutt_expand_path (char *s, size_t slen, int rx) case '~': { if (*(s + 1) == '/' || *(s + 1) == 0) { - strfcpy (p, NONULL (Homedir), sizeof (p)); + m_strcpy(p, sizeof(p), NONULL(Homedir)); tail = s + 1; } else { @@ -317,7 +313,7 @@ char *_mutt_expand_path (char *s, size_t slen, int rx) *t = 0; if ((pw = getpwnam (s + 1))) { - strfcpy (p, pw->pw_dir, sizeof (p)); + m_strcpy(p, sizeof(p), pw->pw_dir); if (t) { *t = '/'; tail = t; @@ -339,13 +335,11 @@ char *_mutt_expand_path (char *s, size_t slen, int rx) case '=': case '+': { -#ifdef USE_IMAP /* if folder = imap[s]://host/: don't append slash */ if (imap_is_magic (NONULL (Maildir), NULL) == M_IMAP && Maildir[m_strlen(Maildir) - 1] == '/') - strfcpy (p, NONULL (Maildir), sizeof (p)); + m_strcpy(p, sizeof(p), NONULL(Maildir)); else -#endif snprintf (p, sizeof (p), "%s/", NONULL (Maildir)); tail = s + 1; @@ -357,7 +351,7 @@ char *_mutt_expand_path (char *s, size_t slen, int rx) case '@': { HEADER *h; - ADDRESS *alias; + address_t *alias; if ((alias = mutt_lookup_alias (s + 1))) { h = mutt_new_header (); @@ -377,14 +371,14 @@ char *_mutt_expand_path (char *s, size_t slen, int rx) case '>': { - strfcpy (p, NONULL (Inbox), sizeof (p)); + m_strcpy(p, sizeof(p), NONULL(Inbox)); tail = s + 1; } break; case '<': { - strfcpy (p, NONULL (Outbox), sizeof (p)); + m_strcpy(p, sizeof(p), NONULL(Outbox)); tail = s + 1; } break; @@ -392,11 +386,11 @@ char *_mutt_expand_path (char *s, size_t slen, int rx) case '!': { if (*(s + 1) == '!') { - strfcpy (p, NONULL (LastFolder), sizeof (p)); + m_strcpy(p, sizeof(p), NONULL(LastFolder)); tail = s + 2; } else { - strfcpy (p, NONULL (Spoolfile), sizeof (p)); + m_strcpy(p, sizeof(p), NONULL(Spoolfile)); tail = s + 1; } } @@ -404,14 +398,14 @@ char *_mutt_expand_path (char *s, size_t slen, int rx) case '-': { - strfcpy (p, NONULL (LastFolder), sizeof (p)); + m_strcpy(p, sizeof(p), NONULL(LastFolder)); tail = s + 1; } break; case '^': { - strfcpy (p, NONULL (CurrentFolder), sizeof (p)); + m_strcpy(p, sizeof(p), NONULL(CurrentFolder)); tail = s + 1; } break; @@ -430,7 +424,7 @@ char *_mutt_expand_path (char *s, size_t slen, int rx) else snprintf (tmp, sizeof (tmp), "%s%s", p, tail); - strfcpy (s, tmp, slen); + m_strcpy(s, slen, tmp); } while (recurse); @@ -459,13 +453,13 @@ char *mutt_gecos_name (char *dest, size_t destlen, struct passwd *pw) if (GecosMask.rx) { if (regexec (GecosMask.rx, pw->pw_gecos, 1, pat_match, 0) == 0) - strfcpy (dest, pw->pw_gecos + pat_match[0].rm_so, - MIN (pat_match[0].rm_eo - pat_match[0].rm_so + 1, destlen)); + m_strcpy(dest, MIN(pat_match[0].rm_eo - pat_match[0].rm_so + 1, destlen), + pw->pw_gecos + pat_match[0].rm_so); } else if ((p = strchr (pw->pw_gecos, ','))) - strfcpy (dest, pw->pw_gecos, MIN (destlen, p - pw->pw_gecos + 1)); + m_strcpy(dest, MIN(destlen, p - pw->pw_gecos + 1), pw->pw_gecos); else - strfcpy (dest, pw->pw_gecos, destlen); + m_strcpy(dest, destlen, pw->pw_gecos); pwnl = m_strlen(pw->pw_name); @@ -503,7 +497,7 @@ void mutt_set_parameter (const char *attribute, const char *value, for (q = *p; q; q = q->next) { if (ascii_strcasecmp (attribute, q->attribute) == 0) { - str_replace (&q->value, value); + m_strreplace(&q->value, value); return; } } @@ -542,9 +536,9 @@ int mutt_needs_mailcap (BODY * m) break; case TYPEAPPLICATION: - if ((WithCrypto & APPLICATION_PGP) && mutt_is_application_pgp (m)) + if (mutt_is_application_pgp (m)) return 0; - if ((WithCrypto & APPLICATION_SMIME) && mutt_is_application_smime (m)) + if (mutt_is_application_smime (m)) return 0; break; @@ -561,7 +555,7 @@ int mutt_is_text_part (BODY * b) int t = b->type; char *s = b->subtype; - if ((WithCrypto & APPLICATION_PGP) && mutt_is_application_pgp (b)) + if (mutt_is_application_pgp (b)) return 0; if (t == TYPETEXT) @@ -572,7 +566,7 @@ int mutt_is_text_part (BODY * b) return 1; } - if ((WithCrypto & APPLICATION_PGP) && t == TYPEAPPLICATION) { + if (t == TYPEAPPLICATION) { if (!ascii_strcasecmp ("pgp-keys", s)) return 1; } @@ -584,14 +578,14 @@ void mutt_free_envelope (ENVELOPE ** p) { if (!*p) return; - rfc822_free_address (&(*p)->return_path); - rfc822_free_address (&(*p)->from); - rfc822_free_address (&(*p)->to); - rfc822_free_address (&(*p)->cc); - rfc822_free_address (&(*p)->bcc); - rfc822_free_address (&(*p)->sender); - rfc822_free_address (&(*p)->reply_to); - rfc822_free_address (&(*p)->mail_followup_to); + address_delete (&(*p)->return_path); + address_delete (&(*p)->from); + address_delete (&(*p)->to); + address_delete (&(*p)->cc); + address_delete (&(*p)->bcc); + address_delete (&(*p)->sender); + address_delete (&(*p)->reply_to); + address_delete (&(*p)->mail_followup_to); p_delete(&(*p)->list_post); p_delete(&(*p)->subject); @@ -677,7 +671,7 @@ void mutt_free_alias (ALIAS ** p) t = *p; *p = (*p)->next; p_delete(&t->name); - rfc822_free_address (&t->addr); + address_delete (&t->addr); p_delete(&t); } } @@ -691,12 +685,10 @@ void mutt_pretty_mailbox (char *s) scheme = url_check_scheme (s); -#ifdef USE_IMAP if (scheme == U_IMAP || scheme == U_IMAPS) { imap_pretty_mailbox (s); return; } -#endif /* if s is an url, only collapse path component */ if (scheme != U_UNKNOWN) { @@ -738,7 +730,7 @@ void mutt_pretty_mailbox (char *s) void mutt_pretty_size (char *s, size_t len, long n) { if (n == 0) - strfcpy (s, "0K", len); + 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 */ @@ -783,7 +775,7 @@ void mutt_expand_fmt (char *dest, size_t destlen, const char *fmt, break; case 's': found = 1; - strfcpy (d, src, destlen + 1); + m_strcpy(d, destlen + 1, src); d += destlen > slen ? slen : destlen; destlen -= destlen > slen ? slen : destlen; p++; @@ -818,7 +810,7 @@ int mutt_check_overwrite (const char *attname, const char *path, char tmp[_POSIX_PATH_MAX]; struct stat st; - strfcpy (fname, path, flen); + m_strcpy(fname, flen, path); if (access (fname, F_OK) != 0) return 0; if (stat (fname, &st) != 0) @@ -829,7 +821,7 @@ int mutt_check_overwrite (const char *attname, const char *path, (_("File is a directory, save under it? [(y)es, (n)o, (a)ll]"), _("yna"))) { case 3: /* all */ - str_replace (directory, fname); + m_strreplace(directory, fname); break; case 1: /* yes */ p_delete(directory); @@ -879,23 +871,23 @@ int mutt_check_overwrite (const char *attname, const char *path, return 0; } -void mutt_save_path (char *d, size_t dsize, ADDRESS * a) +void mutt_save_path (char *d, size_t dsize, address_t * a) { if (a && a->mailbox) { - strfcpy (d, a->mailbox, dsize); + m_strcpy(d, dsize, a->mailbox); if (!option (OPTSAVEADDRESS)) { char *p; if ((p = strpbrk (d, "%@"))) *p = 0; } - str_tolower (d); + m_strtolower(d); } else *d = 0; } -void mutt_safe_path (char *s, size_t l, ADDRESS * a) +void mutt_safe_path (char *s, size_t l, address_t * a) { char *p; @@ -1070,7 +1062,7 @@ void mutt_FormatString (char *dest, /* output buffer */ data, flags); if (lower) - str_tolower (buf); + m_strtolower(buf); if (nodots) { char *p = buf; @@ -1178,13 +1170,11 @@ int mutt_save_confirm (const char *s, struct stat *st) magic = mx_get_magic (s); -#ifdef USE_POP if (magic == M_POP) { mutt_error _("Can't save message to POP mailbox."); return 1; } -#endif #ifdef USE_NNTP if (magic == M_NNTP) { @@ -1213,9 +1203,7 @@ int mutt_save_confirm (const char *s, struct stat *st) } } else { -#ifdef USE_IMAP if (magic != M_IMAP) -#endif /* execute the block unconditionally if we don't use imap */ { st->st_mtime = 0; st->st_atime = 0; @@ -1296,9 +1284,9 @@ const char *mutt_make_version (int full) static char vstring[STRING]; if (full) - snprintf (vstring, sizeof (vstring), "Mutt-ng %s-r%s (based " - "on Mutt 1.5.11/%s)", MUTT_VERSION, MUTT_REVISION, - ReleaseDate); + snprintf (vstring, sizeof (vstring), + "Mutt-ng %s-r%s (based on Mutt 1.5.11)", + MUTT_VERSION, MUTT_REVISION); else snprintf (vstring, sizeof (vstring), "mutt-ng/%s-r%s", MUTT_VERSION, MUTT_REVISION); @@ -1392,7 +1380,7 @@ int mutt_cmp_header (const HEADER * h1, const HEADER * h2) { } /* return 1 if address lists are strictly identical */ -int mutt_cmp_addr (const ADDRESS * a, const ADDRESS * b) +int mutt_cmp_addr (const address_t * a, const address_t * b) { while (a && b) { if (m_strcmp(a->mailbox, b->mailbox) ||