X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-crypt%2Fpgpkey.c;h=96db58a5cb0993f7b33eba080a93f6fe2eab3146;hp=a4549cf0cc719a5aaf455c0c156f37c80c918cb1;hb=678c4d550b27a06ba3c94ac5821fcf0291c33f8a;hpb=23e6291cb5d5b4cd2008403d8b628007fd75ff23 diff --git a/lib-crypt/pgpkey.c b/lib-crypt/pgpkey.c index a4549cf..96db58a 100644 --- a/lib-crypt/pgpkey.c +++ b/lib-crypt/pgpkey.c @@ -8,38 +8,20 @@ * please see the file GPL in the top level source directory. */ -#if HAVE_CONFIG_H -# include "config.h" -#endif - -#include -#include -#include -#include -#include +#include #include +#include #include #include #include -#include "mutt.h" #include "recvattach.h" #include "pgp.h" #include "pager.h" #include "sort.h" - -#include -#include -#include -#include -#include -#include - -#include - struct pgp_cache { char *what; char *dflt; @@ -117,8 +99,8 @@ typedef struct pgp_entry { static const char * pgp_entry_fmt (char *dest, ssize_t destlen, char op, const char *src, const char *prefix, - const char *ifstring, const char *elsestring, - unsigned long data, format_flag flags) + const char *ifstr, const char *elstr, + anytype data, format_flag flags) { char fmt[16]; pgp_entry_t *entry; @@ -127,7 +109,7 @@ pgp_entry_fmt (char *dest, ssize_t destlen, char op, int kflags = 0; int optional = (flags & M_FORMAT_OPTIONAL); - entry = (pgp_entry_t *) data; + entry = data.ptr; uid = entry->uid; key = uid->parent; pkey = pgp_principal_key (key); @@ -143,7 +125,7 @@ pgp_entry_fmt (char *dest, ssize_t destlen, char op, { const char *cp; - char buf2[SHORT_STRING], *p; + char buf2[STRING], *p; int do_locales; struct tm *tm; ssize_t len; @@ -253,11 +235,10 @@ pgp_entry_fmt (char *dest, ssize_t destlen, char op, *dest = '\0'; } - if (optional) - mutt_FormatString (dest, destlen, ifstring, mutt_attach_fmt, data, 0); - else if (flags & M_FORMAT_OPTIONAL) - mutt_FormatString (dest, destlen, elsestring, mutt_attach_fmt, data, 0); - return (src); + if (flags & M_FORMAT_OPTIONAL) + m_strformat(dest, destlen, 0, optional ? ifstr : elstr, + mutt_attach_fmt, data, 0); + return src; } static void pgp_entry (char *s, ssize_t l, MUTTMENU * menu, int num) @@ -268,8 +249,8 @@ static void pgp_entry (char *s, ssize_t l, MUTTMENU * menu, int num) entry.uid = KeyTable[num]; entry.num = num + 1; - mutt_FormatString (s, l, NONULL (PgpEntryFormat), pgp_entry_fmt, - (unsigned long) &entry, M_FORMAT_ARROWCURSOR); + m_strformat(s, l, COLS - SW, PgpEntryFormat, pgp_entry_fmt, &entry, + option(OPTARROWCURSOR) ? M_FORMAT_ARROWCURSOR : 0); } static int _pgp_compare_address (const void *a, const void *b) @@ -424,7 +405,7 @@ static pgp_key_t pgp_select_key (pgp_key_t keys, address_t * p, const char *s) pgp_uid_t **KeyTable; MUTTMENU *menu; int i, done = 0; - char helpstr[SHORT_STRING], buf[LONG_STRING], tmpbuf[STRING]; + char helpstr[STRING], buf[LONG_STRING], tmpbuf[STRING]; char cmd[LONG_STRING], tempfile[_POSIX_PATH_MAX]; FILE *fp, *devnull; pid_t thepid; @@ -484,15 +465,15 @@ static pgp_key_t pgp_select_key (pgp_key_t keys, address_t * p, const char *s) helpstr[0] = 0; mutt_make_help (buf, sizeof (buf), _("Exit "), MENU_PGP, OP_EXIT); - strcat (helpstr, buf); /* __STRCAT_CHECKED__ */ + m_strcat(helpstr, sizeof(helpstr), buf); mutt_make_help (buf, sizeof (buf), _("Select "), MENU_PGP, OP_GENERIC_SELECT_ENTRY); - strcat (helpstr, buf); /* __STRCAT_CHECKED__ */ + m_strcat(helpstr, sizeof(helpstr), buf); mutt_make_help (buf, sizeof (buf), _("Check key "), MENU_PGP, OP_VERIFY_KEY); - strcat (helpstr, buf); /* __STRCAT_CHECKED__ */ + m_strcat(helpstr, sizeof(helpstr), buf); mutt_make_help (buf, sizeof (buf), _("Help"), MENU_PGP, OP_HELP); - strcat (helpstr, buf); /* __STRCAT_CHECKED__ */ + m_strcat(helpstr, sizeof(helpstr), buf); menu = mutt_new_menu (); menu->max = i; @@ -518,14 +499,15 @@ static pgp_key_t pgp_select_key (pgp_key_t keys, address_t * p, const char *s) case OP_VERIFY_KEY: - mutt_mktemp (tempfile); - if ((devnull = fopen ("/dev/null", "w")) == NULL) { /* __FOPEN_CHECKED__ */ + if ((devnull = fopen("/dev/null", "w")) == NULL) { mutt_perror (_("Can't open /dev/null")); break; } - if ((fp = safe_fopen (tempfile, "w")) == NULL) { - fclose (devnull); + + fp = m_tempfile (tempfile, sizeof(tempfile), NONULL(MCore.tmpdir), NULL); + if (!fp) { + m_fclose(&devnull); mutt_perror (_("Can't create temporary file")); break; @@ -543,13 +525,13 @@ static pgp_key_t pgp_select_key (pgp_key_t keys, address_t * p, const char *s) mutt_perror (_("Can't create filter")); unlink (tempfile); - fclose (fp); - fclose (devnull); + m_fclose(&fp); + m_fclose(&devnull); } mutt_wait_filter (thepid); - fclose (fp); - fclose (devnull); + m_fclose(&fp); + m_fclose(&devnull); mutt_clear_error (); snprintf (cmd, sizeof (cmd), _("Key ID: 0x%s"), pgp_keyid (pgp_principal_key @@ -634,7 +616,7 @@ pgp_key_t pgp_ask_for_key (char *tag, char *whatfor, short abilities, pgp_ring_t keyring) { pgp_key_t key; - char resp[SHORT_STRING]; + char resp[STRING]; struct pgp_cache *l = NULL; mutt_clear_error (); @@ -700,20 +682,21 @@ BODY *pgp_make_key_attachment (char *tempf) pgp_free_key (&key); if (!tempf) { - mutt_mktemp (tempfb); + tempfp = m_tempfile (tempfb, sizeof(tempfb), NONULL(MCore.tmpdir), NULL); tempf = tempfb; + } else { + tempfp = safe_fopen(tempf, "a"); } - if ((tempfp = safe_fopen (tempf, tempf == tempfb ? "w" : "a")) == NULL) { + if (!tempfp) { mutt_perror (_("Can't create temporary file")); - return NULL; } - if ((devnull = fopen ("/dev/null", "w")) == NULL) { /* __FOPEN_CHECKED__ */ + if ((devnull = fopen("/dev/null", "w")) == NULL) { mutt_perror (_("Can't open /dev/null")); - fclose (tempfp); + m_fclose(&tempfp); if (tempf == tempfb) unlink (tempf); return NULL; @@ -728,17 +711,17 @@ BODY *pgp_make_key_attachment (char *tempf) mutt_perror (_("Can't create filter")); unlink (tempf); - fclose (tempfp); - fclose (devnull); + m_fclose(&tempfp); + m_fclose(&devnull); return NULL; } mutt_wait_filter (thepid); - fclose (tempfp); - fclose (devnull); + m_fclose(&tempfp); + m_fclose(&devnull); - att = mutt_new_body (); + att = body_new(); att->filename = m_strdup(tempf); att->unlink = 1; att->use_disp = 0; @@ -894,7 +877,7 @@ pgp_key_t pgp_getkeybyaddr (address_t * a, short abilities, pgp_ring_t keyring) return NULL; } -pgp_key_t pgp_getkeybystr (char *p, short abilities, pgp_ring_t keyring) +pgp_key_t pgp_getkeybystr (const char *p, short abilities, pgp_ring_t keyring) { string_list_t *hints = NULL; pgp_key_t keys;