X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=alias.c;h=f9d7b77c5fa0a8d8e480ebd1d8ac6d8873209ec2;hp=a4e984f0be2cda9bcc9b3327466f56db818c5844;hb=d5d56308b49c3f157a17125415312f0c13e1e25b;hpb=7f7a0be369840b290248e5b0302beb447fa1b3cd diff --git a/alias.c b/alias.c index a4e984f..f9d7b77 100644 --- a/alias.c +++ b/alias.c @@ -15,19 +15,20 @@ #include #include +#include #include +#include #include +#include #include "lib/rx.h" #include "lib/debug.h" #include "mutt.h" #include "enter.h" -#include "ascii.h" #include "mutt_curses.h" #include "mutt_idna.h" #include "mutt_menu.h" -#include "mapping.h" #include "sort.h" #define RSORT(x) (SortAlias & SORT_REVERSE) ? -x : x @@ -41,19 +42,19 @@ static struct mapping_t AliasHelp[] = { {NULL, OP_NULL} }; -ADDRESS *mutt_lookup_alias (const char *s) +address_t *mutt_lookup_alias (const char *s) { ALIAS *t = Aliases; for (; t; t = t->next) - if (!str_casecmp (s, t->name)) + if (!m_strcasecmp(s, t->name)) return (t->addr); return (NULL); /* no such alias */ } -static ADDRESS *mutt_expand_aliases_r (ADDRESS * a, LIST ** expn) +static address_t *mutt_expand_aliases_r (address_t * a, LIST ** expn) { - ADDRESS *head = NULL, *last = NULL, *t, *w; + address_t *head = NULL, *last = NULL, *t, *w; LIST *u; char i; const char *fqdn; @@ -66,7 +67,7 @@ static ADDRESS *mutt_expand_aliases_r (ADDRESS * a, LIST ** expn) if (t) { i = 0; for (u = *expn; u; u = u->next) { - if (str_cmp (a->mailbox, u->data) == 0) { /* alias already found */ + if (m_strcmp(a->mailbox, u->data) == 0) { /* alias already found */ debug_print(1, ("loop in alias found for '%s'\n", a->mailbox)); i = 1; break; @@ -78,7 +79,7 @@ static ADDRESS *mutt_expand_aliases_r (ADDRESS * a, LIST ** expn) u->data = m_strdup(a->mailbox); u->next = *expn; *expn = u; - w = rfc822_cpy_adr (t); + w = address_list_dup (t); w = mutt_expand_aliases_r (w, expn); if (head) last->next = w; @@ -90,7 +91,7 @@ static ADDRESS *mutt_expand_aliases_r (ADDRESS * a, LIST ** expn) t = a; a = a->next; t->next = NULL; - rfc822_free_address (&t); + address_delete (&t); continue; } else { @@ -100,7 +101,7 @@ static ADDRESS *mutt_expand_aliases_r (ADDRESS * a, LIST ** expn) char namebuf[STRING]; mutt_gecos_name (namebuf, sizeof (namebuf), pw); - str_replace (&a->personal, namebuf); + m_strreplace (&a->personal, namebuf); } } } @@ -123,9 +124,9 @@ static ADDRESS *mutt_expand_aliases_r (ADDRESS * a, LIST ** expn) return (head); } -ADDRESS *mutt_expand_aliases (ADDRESS * a) +address_t *mutt_expand_aliases (address_t * a) { - ADDRESS *t; + address_t *t; LIST *expn = NULL; /* previously expanded aliases to avoid loops */ t = mutt_expand_aliases_r (a, &expn); @@ -175,9 +176,9 @@ static void write_safe_address (FILE * fp, char *s) } } -ADDRESS *mutt_get_address (ENVELOPE * env, const char **pfxp) +address_t *mutt_get_address (ENVELOPE * env, const char **pfxp) { - ADDRESS *adr; + address_t *adr; const char *pfx = NULL; if (mutt_addr_is_user (env->from)) { @@ -205,14 +206,14 @@ ADDRESS *mutt_get_address (ENVELOPE * env, const char **pfxp) return adr; } -void mutt_create_alias (ENVELOPE * cur, ADDRESS * iadr) +void mutt_create_alias (ENVELOPE * cur, address_t * iadr) { ALIAS *new, *t; char buf[LONG_STRING], prompt[SHORT_STRING], *pc; char *err = NULL; char fixed[LONG_STRING]; FILE *rc; - ADDRESS *adr = NULL; + address_t *adr = NULL; if (cur) { adr = mutt_get_address (cur, NULL); @@ -222,7 +223,7 @@ void mutt_create_alias (ENVELOPE * cur, ADDRESS * iadr) } if (adr && adr->mailbox) { - strfcpy (buf, adr->mailbox, sizeof (buf)); + m_strcpy(buf, sizeof(buf), adr->mailbox); if ((pc = strchr (buf, '@'))) *pc = 0; } @@ -248,7 +249,7 @@ retry_name: switch (mutt_yesorno (_("Warning: This alias name may not work. Fix it?"), M_YES)) { case M_YES: - strfcpy (buf, fixed, sizeof (buf)); + m_strcpy(buf, sizeof(buf), fixed); goto retry_name; case -1: return; @@ -262,7 +263,7 @@ retry_name: mutt_addrlist_to_local (adr); if (adr) - strfcpy (buf, adr->mailbox, sizeof (buf)); + m_strcpy(buf, sizeof(buf), adr->mailbox); else buf[0] = 0; @@ -284,8 +285,8 @@ retry_name: } while (new->addr == NULL); - if (adr && adr->personal && !mutt_is_mail_list (adr)) - strfcpy (buf, adr->personal, sizeof (buf)); + if (adr && adr->personal && !mutt_is_mail_list(adr)) + m_strcpy(buf, sizeof(buf), adr->personal); else buf[0] = 0; @@ -311,15 +312,15 @@ retry_name: else Aliases = new; - strfcpy (buf, NONULL (AliasFile), sizeof (buf)); + m_strcpy(buf, sizeof(buf), NONULL(AliasFile)); if (mutt_get_field (_("Save to file: "), buf, sizeof (buf), M_FILE) != 0) return; mutt_expand_path (buf, sizeof (buf)); if ((rc = safe_fopen (buf, "a"))) { if (mutt_check_alias_name (new->name, NULL)) - mutt_quote_filename (buf, sizeof (buf), new->name); + mutt_quote_filename(buf, sizeof(buf), new->name); else - strfcpy (buf, new->name, sizeof (buf)); + m_strcpy(buf, sizeof(buf), new->name); fprintf (rc, "alias %s ", buf); buf[0] = 0; rfc822_write_address (buf, sizeof (buf), new->addr, 0); @@ -368,10 +369,10 @@ int mutt_check_alias_name (const char *s, char *d) * This routine looks to see if the user has an alias defined for the given * address. */ -ADDRESS *alias_reverse_lookup (ADDRESS * a) +address_t *alias_reverse_lookup (address_t * a) { ALIAS *t = Aliases; - ADDRESS *ap; + address_t *ap; if (!a || !a->mailbox) return NULL; @@ -403,13 +404,13 @@ int mutt_alias_complete (char *s, size_t buflen) #define min(a,b) ((aname && strstr (a->name, s) == a->name) { if (!bestname[0]) /* init */ - strfcpy (bestname, a->name, - min (m_strlen(a->name) + 1, sizeof (bestname))); + m_strcpy(bestname, MIN(m_strlen(a->name) + 1, ssizeof(bestname)), + a->name); else { for (i = 0; a->name[i] && a->name[i] == bestname[i]; i++); bestname[i] = 0; @@ -419,9 +420,9 @@ int mutt_alias_complete (char *s, size_t buflen) } if (bestname[0] != 0) { - if (str_cmp (bestname, s) != 0) { + if (m_strcmp(bestname, s) != 0) { /* we are adding something to the completion */ - strfcpy (s, bestname, m_strlen(bestname) + 1); + m_strcpy(s, m_strlen(bestname) + 1, bestname); return 1; } @@ -447,7 +448,7 @@ int mutt_alias_complete (char *s, size_t buflen) bestname[0] = 0; mutt_alias_menu (bestname, sizeof (bestname), a_list ? a_list : Aliases); if (bestname[0] != 0) - strfcpy (s, bestname, buflen); + m_strcpy(s, buflen, bestname); /* free the alias list */ while (a_list) { @@ -494,7 +495,7 @@ static int string_is_address (const char *str, const char *u, const char *d) } /* returns TRUE if the given address belongs to the user. */ -int mutt_addr_is_user (ADDRESS * addr) +int mutt_addr_is_user (address_t * addr) { /* NULL address is assumed to be the user. */ if (!addr) { @@ -540,19 +541,21 @@ int mutt_addr_is_user (ADDRESS * addr) return 0; } -static const char *alias_format_str (char *dest, size_t destlen, char op, - const char *src, const char *fmt, - const char *ifstring, - const char *elsestring, - unsigned long data, format_flag flags) +static const format_t *alias_format_str (char *dest, size_t destlen, char op, + const format_t *src, const char *fmt, + const char *ifstring __attribute__ ((unused)), + const char *elsestring __attribute__ ((unused)), + unsigned long data, format_flag flags __attribute__ ((unused))) { char tmp[SHORT_STRING], adr[SHORT_STRING]; ALIAS *alias = (ALIAS *) data; switch (op) { case 'f': - snprintf (tmp, sizeof (tmp), "%%%ss", fmt); - snprintf (dest, destlen, tmp, alias->del ? "D" : " "); + if(alias->del) + m_strcpy (dest, sizeof(dest), "D"); + else + m_strcpy (dest, sizeof(dest), " "); break; case 'a': mutt_format_s (dest, destlen, fmt, alias->name); @@ -578,7 +581,7 @@ static const char *alias_format_str (char *dest, size_t destlen, char op, static void alias_entry (char *s, size_t slen, MUTTMENU * m, int num) { - mutt_FormatString (s, slen, NONULL (AliasFmt), alias_format_str, + mutt_FormatString (s, slen, NONULL (AliasFmt), (format_t *) alias_format_str, (unsigned long) ((ALIAS **) m->data)[num], M_FORMAT_ARROWCURSOR); } @@ -597,15 +600,15 @@ static int alias_SortAlias (const void *a, const void *b) { ALIAS *pa = *(ALIAS **) a; ALIAS *pb = *(ALIAS **) b; - int r = str_casecmp (pa->name, pb->name); + int r = m_strcasecmp(pa->name, pb->name); return (RSORT (r)); } static int alias_SortAddress (const void *a, const void *b) { - ADDRESS *pa = (*(ALIAS **) a)->addr; - ADDRESS *pb = (*(ALIAS **) b)->addr; + address_t *pa = (*(ALIAS **) a)->addr; + address_t *pb = (*(ALIAS **) b)->addr; int r; if (pa == pb) @@ -616,7 +619,7 @@ static int alias_SortAddress (const void *a, const void *b) r = 1; else if (pa->personal) { if (pb->personal) - r = str_casecmp (pa->personal, pb->personal); + r = m_strcasecmp(pa->personal, pb->personal); else r = 1; }