--- PATCHES Dec 2002 17:44:54 -0000 3.6 +++ PATCHES Feb 2004 06:07:13 -0000 @@ -0,0 +1,4 @@ +patch-1.5.6.dw.multiple-crypt-hook.2 +patch-1.5.6.dw.confirm-crypt-hook.1 +patch-1.5.6.dw.crypt-autoselectkey.1 +patch-1.5.6.dw.pgp-menu-traditional.2 --- compose.c Oct 2003 20:34:59 -0000 3.14 +++ compose.c Feb 2004 06:07:13 -0000 @@ -133,2 +133,9 @@ static void redraw_crypt_lines (HEADER * addstr (_("Clear")); + + if ((WithCrypto & APPLICATION_PGP)) + if ((msg->security & (ENCRYPT | SIGN))) + if ((msg->security & INLINE)) + addstr (_(" (inline)")); + else + addstr (_(" (PGP/MIME)")); clrtoeol (); @@ -158,2 +165,3 @@ static int pgp_send_menu (HEADER *msg, i { + int use_autoinline = 0; pgp_key_t p; @@ -164,7 +172,10 @@ static int pgp_send_menu (HEADER *msg, i - switch (mutt_multi_choice (_("PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "), - N_("esabf"))) + if (!(msg->security & (SIGN | ENCRYPT))) + use_autoinline = 1; + + switch (mutt_multi_choice (_("PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? "), + N_("esabif"))) { case 1: /* (e)ncrypt */ - msg->security |= ENCRYPT; + msg->security ^= ENCRYPT; break; @@ -172,3 +183,3 @@ static int pgp_send_menu (HEADER *msg, i case 2: /* (s)ign */ - msg->security |= SIGN; + msg->security ^= SIGN; break; @@ -199,6 +210,16 @@ static int pgp_send_menu (HEADER *msg, i case 4: /* (b)oth */ - msg->security = ENCRYPT | SIGN; + if ((msg->security & (ENCRYPT | SIGN)) == (ENCRYPT | SIGN)) + msg->security = 0; + else + msg->security |= (ENCRYPT | SIGN); break; - case 5: /* (f)orget it */ + case 5: /* (i)nline */ + if ((msg->security & (ENCRYPT | SIGN))) + msg->security ^= INLINE; + else + msg->security &= ~INLINE; + break; + + case 6: /* (f)orget it */ msg->security = 0; @@ -207,6 +228,16 @@ static int pgp_send_menu (HEADER *msg, i - if (msg->security && msg->security != APPLICATION_PGP) - msg->security |= APPLICATION_PGP; - else - msg->security = 0; + if (msg->security) + { + if (!(msg->security & (ENCRYPT | SIGN))) + { + msg->security = 0; + } + else + { + msg->security |= APPLICATION_PGP; + + if (use_autoinline && option (OPTPGPAUTOINLINE)) + msg->security |= INLINE; + } + } --- crypt.c Jan 2004 19:59:38 -0000 3.22 +++ crypt.c Feb 2004 06:07:13 -0000 @@ -161,3 +161,3 @@ int crypt_valid_passphrase(int flags) -int mutt_protect (HEADER *msg, HEADER *cur, char *keylist) +int mutt_protect (HEADER *msg, char *keylist) { @@ -166,3 +166,2 @@ int mutt_protect (HEADER *msg, HEADER *c BODY *tmp_pgp_pbody = NULL; - int traditional = 0; int flags = (WithCrypto & APPLICATION_PGP)? msg->security: 0; @@ -176,29 +175,9 @@ int mutt_protect (HEADER *msg, HEADER *c - if ((WithCrypto & APPLICATION_PGP) && (msg->security & APPLICATION_PGP)) + if ((WithCrypto & APPLICATION_PGP) && ((msg->security & PGPINLINE) == PGPINLINE)) { - if ((msg->content->type == TYPETEXT) && - !ascii_strcasecmp (msg->content->subtype, "plain")) - { - if (cur && cur->security && option (OPTPGPAUTOTRAD) - && (option (OPTCRYPTREPLYENCRYPT) - || option (OPTCRYPTREPLYSIGN) - || option (OPTCRYPTREPLYSIGNENCRYPTED))) - { - if(mutt_is_application_pgp(cur->content)) - traditional = 1; - } - else - { - if ((i = query_quadoption (OPT_PGPTRADITIONAL, _("Create a traditional (inline) PGP message?"))) == -1) - return -1; - else if (i == M_YES) - traditional = 1; - } - } - if (traditional) + /* they really want to send it inline... go for it */ + if (!isendwin ()) mutt_endwin _("Invoking PGP..."); + pbody = crypt_pgp_traditional_encryptsign (msg->content, flags, keylist); + if (pbody) { - if (!isendwin ()) mutt_endwin _("Invoking PGP..."); - if (!(pbody = crypt_pgp_traditional_encryptsign (msg->content, flags, keylist))) - return -1; - msg->content = pbody; @@ -206,2 +185,8 @@ int mutt_protect (HEADER *msg, HEADER *c } + + /* otherwise inline won't work...ask for revert */ + if ((i = query_quadoption (OPT_PGPMIMEASK, _("Message can't be sent inline. Revert to using PGP/MIME?"))) != M_YES) + return -1; + + /* go ahead with PGP/MIME */ } @@ -393,2 +378,5 @@ int mutt_is_application_pgp (BODY *m) } + if (t) + t |= PGPINLINE; + return t; --- hook.c Jan 2004 09:52:55 -0000 3.8 +++ hook.c Feb 2004 06:07:13 -0000 @@ -119,3 +119,7 @@ int mutt_parse_hook (BUFFER *buf, BUFFER { +#ifdef M_CRYPTHOOK + if (data & (M_FOLDERHOOK | M_SENDHOOK | M_MESSAGEHOOK | M_ACCOUNTHOOK | M_REPLYHOOK | M_CRYPTHOOK)) +#else if (data & (M_FOLDERHOOK | M_SENDHOOK | M_MESSAGEHOOK | M_ACCOUNTHOOK | M_REPLYHOOK)) +#endif { @@ -445,5 +449,21 @@ char *mutt_iconv_hook (const char *chs) -char *mutt_crypt_hook (ADDRESS *adr) +LIST *mutt_crypt_hook (ADDRESS *adr) { - return _mutt_string_hook (adr->mailbox, M_CRYPTHOOK); + HOOK *hook; + LIST *key_list = NULL; + + if (!adr && !adr->mailbox) + return (NULL); + + for (hook = Hooks; hook; hook = hook->next) + { + if (!hook->command) + continue; + if (!(hook->type & M_CRYPTHOOK)) + continue; + + if ((regexec (hook->rx.rx, adr->mailbox, 0, NULL, 0) == 0) ^ hook->rx.not) + key_list = mutt_add_list (key_list, hook->command); + } + return (key_list); } --- init.h Feb 2004 17:10:43 -0000 3.43 +++ init.h Feb 2004 06:07:14 -0000 @@ -1205,2 +1205,12 @@ struct option_t MuttVars[] = { */ + + + { "pgp_autoselectkey", DT_SYN, R_NONE, UL "crypt_autoselectkey", 0 }, + { "crypt_autoselectkey", DT_BOOL, R_NONE, OPTCRYPTAUTOSELECT, 0 }, + /* + ** .pp + ** If set, then a list of keys is not presented for selection when only + ** one matching key is available. This may be useful in conjunction with + ** the \fIcrypt-hook\fP command. + */ { "pgp_autosign", DT_SYN, R_NONE, UL "crypt_autosign", 0 }, @@ -1230,2 +1240,11 @@ struct option_t MuttVars[] = { */ + { "pgp_confirmhook", DT_SYN, R_NONE, UL "crypt_confirmhook", 1 }, + { "crypt_confirmhook", DT_BOOL, R_NONE, OPTCRYPTCONFIRMHOOK, 1 }, + /* + ** .pp + ** If set, then you will be prompted for confirmation of keys when using + ** the \fIcrypt-hook\fP command. If unset, no such confirmation prompt will + ** be presented. This is generally considered unsafe, especially where + ** typos are concerned. + */ { "pgp_ignore_subkeys", DT_BOOL, R_NONE, OPTPGPIGNORESUB, 1}, @@ -1374,2 +1393,44 @@ struct option_t MuttVars[] = { */ + { "pgp_create_traditional", DT_SYN, R_NONE, UL "pgp_autoinline", 0 }, + { "pgp_autoinline", DT_BOOL, R_NONE, OPTPGPAUTOINLINE, 0 }, + /* + ** .pp + ** This option controls whether Mutt generates old-style inline + ** (traditional) PGP encrypted or signed messages under certain + ** circumstances. This can be overridden by use of the \fIpgp-menu\fP, + ** when inline is not required. + ** .pp + ** Note that Mutt might automatically use PGP/MIME for messages + ** which consist of more than a single MIME part. Mutt can be + ** configured to ask before sending PGP/MIME messages when inline + ** (traditional) would not work. + ** See also: ``$$pgp_mime_ask''. + ** .pp + ** Also note that using the old-style PGP message format is \fBstrongly\fP + ** \fBdeprecated\fP. + ** (PGP only) + */ + { "pgp_auto_traditional", DT_SYN, R_NONE, UL "pgp_replyinline", 0 }, + { "pgp_replyinline", DT_BOOL, R_NONE, OPTPGPREPLYINLINE, 0 }, + /* + ** .pp + ** Setting this variable will cause Mutt to always attempt to + ** create an inline (traditional) message when replying to a + ** message which is PGP encrypted/signed inline. This can be + ** overridden by use of the \fIpgp-menu\fP, when inline is not + ** required. This option does not automatically detect if the + ** (replied-to) message is inline; instead it relies on Mutt + ** internals for previously checked/flagged messages. + ** .pp + ** Note that Mutt might automatically use PGP/MIME for messages + ** which consist of more than a single MIME part. Mutt can be + ** configured to ask before sending PGP/MIME messages when inline + ** (traditional) would not work. + ** See also: ``$$pgp_mime_ask''. + ** .pp + ** Also note that using the old-style PGP message format is \fBstrongly\fP + ** \fBdeprecated\fP. + ** (PGP only) + ** + */ { "pgp_show_unusable", DT_BOOL, R_NONE, OPTPGPSHOWUNUSABLE, 1 }, @@ -1423,11 +1484,8 @@ struct option_t MuttVars[] = { */ - { "pgp_create_traditional", DT_QUAD, R_NONE, OPT_PGPTRADITIONAL, M_NO }, + { "pgp_mime_ask", DT_QUAD, R_NONE, OPT_PGPMIMEASK, M_NO }, /* ** .pp - ** This option controls whether Mutt generates old-style inline PGP - ** encrypted or signed messages. - ** .pp - ** Note that PGP/MIME will be used automatically for messages which have - ** a character set different from us-ascii, or which consist of more than - ** a single MIME part. + ** This option controls whether Mutt will prompt you for + ** automatically sending a (signed/encrypted) message using + ** PGP/MIME when inline (traditional) fails (for any reason). ** .pp @@ -1435,19 +1493,2 @@ struct option_t MuttVars[] = { ** \fBdeprecated\fP. - ** (PGP only) - */ - { "pgp_auto_traditional", DT_BOOL, R_NONE, OPTPGPAUTOTRAD, 0 }, - /* - ** .pp - ** This option causes Mutt to generate an old-style inline PGP - ** encrypted or signed message when replying to an old-style - ** message, and a PGP/MIME message when replying to a PGP/MIME - ** message. Note that this option is only meaningful when using - ** ``$$crypt_replyencrypt'', ``$$crypt_replysign'', or - ** ``$$crypt_replysignencrypted''. - ** .pp - ** Also note that PGP/MIME will be used automatically for messages - ** which have a character set different from us-ascii, or which - ** consist of more than a single MIME part. - ** .pp - ** This option overrides ``$$pgp_create_traditional'' ** (PGP only) --- mutt.h Feb 2004 17:10:43 -0000 3.23 +++ mutt.h Feb 2004 06:07:14 -0000 @@ -278,3 +278,2 @@ enum OPT_MOVE, - OPT_PGPTRADITIONAL, /* create old-style PGP messages */ #ifdef USE_POP @@ -284,2 +283,3 @@ enum OPT_POSTPONE, + OPT_PGPMIMEASK, /* ask to revert to PGP/MIME when inline fails */ OPT_PRINT, @@ -431,2 +431,3 @@ enum + OPTCRYPTAUTOSELECT, OPTCRYPTAUTOSIGN, @@ -442,2 +443,3 @@ enum OPTSDEFAULTDECRYPTKEY, + OPTCRYPTCONFIRMHOOK, OPTPGPIGNORESUB, @@ -445,3 +447,2 @@ enum OPTPGPLONGIDS, - OPTPGPAUTOTRAD, #if 0 @@ -453,2 +454,4 @@ enum OPTPGPSHOWUNUSABLE, + OPTPGPAUTOINLINE, + OPTPGPREPLYINLINE, @@ -642,4 +645,4 @@ typedef struct header { - unsigned int security : 9; /* bit 0-6: flags, bit 7,8: application. - see: crypt.h pgplib.h, smime.h */ + unsigned int security : 10; /* bit 0-7: flags, bit 8,9: application. + see: mutt_crypt.h */ --- mutt_crypt.h Dec 2003 13:04:20 -0000 3.5 +++ mutt_crypt.h Feb 2004 06:07:14 -0000 @@ -38,6 +38,7 @@ #define SIGNOPAQUE (1 << 5) -/* (1 << 6) is used by PGPKEY below. */ +#define KEYBLOCK (1 << 6) /* KEY too generic? */ +#define INLINE (1 << 7) -#define APPLICATION_PGP (1 << 7) -#define APPLICATION_SMIME (1 << 8) +#define APPLICATION_PGP (1 << 8) +#define APPLICATION_SMIME (1 << 9) @@ -46,3 +47,4 @@ #define PGPGOODSIGN (APPLICATION_PGP | GOODSIGN) -#define PGPKEY (APPLICATION_PGP | (1 << 6)) +#define PGPKEY (APPLICATION_PGP | KEYBLOCK) +#define PGPINLINE (APPLICATION_PGP | INLINE) @@ -105,3 +107,3 @@ typedef struct pgp_keyinfo *pgp_key_t; -int mutt_protect (HEADER *, HEADER *, char *); +int mutt_protect (HEADER *, char *); --- pgp.c Sep 2003 13:03:26 -0000 3.26 +++ pgp.c Feb 2004 06:07:14 -0000 @@ -1018,2 +1018,4 @@ char *pgp_findKeys (ADDRESS *to, ADDRESS size_t keylist_used = 0; + LIST *hook_list = NULL; + LIST *hook = NULL; ADDRESS *tmp = NULL, *addr = NULL; @@ -1051,66 +1053,93 @@ char *pgp_findKeys (ADDRESS *to, ADDRESS q = p; - k_info = NULL; - if ((keyID = mutt_crypt_hook (p)) != NULL) + /* + * grab the list of matching hooks (matching on recipient address) + * process each entry singly so that auto key selection still works + */ + hook_list = mutt_crypt_hook (p); + hook = hook_list; + while (1) { int r; - snprintf (buf, sizeof (buf), _("Use keyID = \"%s\" for %s?"), keyID, p->mailbox); - if ((r = mutt_yesorno (buf, M_YES)) == M_YES) + + k_info = NULL; + key = NULL; + + if (hook) { - if (is_numerical_keyid (keyID)) + keyID = (char *)hook->data; + snprintf (buf, sizeof (buf), _("Use keyID = \"%s\" for %s?"), keyID, p->mailbox); + if (!option(OPTCRYPTCONFIRMHOOK) || (r = mutt_yesorno (buf, M_YES)) == M_YES) { - if (strncmp (keyID, "0x", 2) == 0) - keyID += 2; - goto bypass_selection; /* you don't see this. */ + if (is_numerical_keyid (keyID)) + { + if (strncmp (keyID, "0x", 2) == 0) + keyID += 2; + goto bypass_selection; /* you don't see this. */ + } + + /* check for e-mail address */ + if ((t = strchr (keyID, '@')) && + (addr = rfc822_parse_adrlist (NULL, keyID))) + { + if (fqdn) rfc822_qualify (addr, fqdn); + q = addr; + } + else + k_info = pgp_getkeybystr (keyID, KEYFLAG_CANENCRYPT, PGP_PUBRING); } - - /* check for e-mail address */ - if ((t = strchr (keyID, '@')) && - (addr = rfc822_parse_adrlist (NULL, keyID))) + else if (r == -1) { - if (fqdn) rfc822_qualify (addr, fqdn); - q = addr; + /* + * yes, this implies that if one key fails they all do + */ + FREE (&keylist); + rfc822_free_address (&tmp); + rfc822_free_address (&addr); + mutt_free_list (&hook_list); + return NULL; } - else - k_info = pgp_getkeybystr (keyID, KEYFLAG_CANENCRYPT, PGP_PUBRING); } - else if (r == -1) - { - FREE (&keylist); - rfc822_free_address (&tmp); - rfc822_free_address (&addr); - return NULL; - } - } - if (k_info == NULL) - pgp_invoke_getkeys (q); - - if (k_info == NULL && (k_info = pgp_getkeybyaddr (q, KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL) - { - snprintf (buf, sizeof (buf), _("Enter keyID for %s: "), q->mailbox); + if (k_info == NULL) + pgp_invoke_getkeys (q); - if ((key = pgp_ask_for_key (buf, q->mailbox, - KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL) + if (k_info == NULL && (k_info = pgp_getkeybyaddr (q, KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL) { - FREE (&keylist); - rfc822_free_address (&tmp); - rfc822_free_address (&addr); - return NULL; + snprintf (buf, sizeof (buf), _("Enter keyID for %s: "), q->mailbox); + + if ((key = pgp_ask_for_key (buf, q->mailbox, + KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL) + { + FREE (&keylist); + rfc822_free_address (&tmp); + rfc822_free_address (&addr); + mutt_free_list (&hook_list); + return NULL; + } } - } - else - key = k_info; + else + key = k_info; - keyID = pgp_keyid (key); + keyID = pgp_keyid (key); bypass_selection: - keylist_size += mutt_strlen (keyID) + 4; - safe_realloc (&keylist, keylist_size); - sprintf (keylist + keylist_used, "%s0x%s", keylist_used ? " " : "", /* __SPRINTF_CHECKED__ */ - keyID); - keylist_used = mutt_strlen (keylist); + keylist_size += mutt_strlen (keyID) + 4; + safe_realloc (&keylist, keylist_size); + sprintf (keylist + keylist_used, "%s0x%s", keylist_used ? " " : "", /* __SPRINTF_CHECKED__ */ + keyID); + keylist_used = mutt_strlen (keylist); - pgp_free_key (&key); - rfc822_free_address (&addr); + pgp_free_key (&key); + rfc822_free_address (&addr); + + if (!hook_list) + break; + + hook = hook->next; + if (!hook) + break; + + } + mutt_free_list (&hook_list); --- pgpkey.c Oct 2003 19:55:39 -0000 3.8 +++ pgpkey.c Feb 2004 06:07:14 -0000 @@ -437,4 +437,9 @@ static int pgp_id_matches_addr (ADDRESS + +#define pgp_trusted_id(uid) (!option(OPTPGPCHECKTRUST) \ + || (pgp_id_is_valid((uid)) \ + && pgp_id_is_strong((uid)))) + static pgp_key_t pgp_select_key (pgp_key_t keys, - ADDRESS * p, const char *s) + ADDRESS * p, const char *s) { @@ -452,2 +457,3 @@ static pgp_key_t pgp_select_key (pgp_key + int keymatch = 0; /* count matching keys */ int unusable = 0; @@ -481,2 +487,3 @@ static pgp_key_t pgp_select_key (pgp_key } + keymatch++; } @@ -489,2 +496,17 @@ static pgp_key_t pgp_select_key (pgp_key } + else if (keymatch == 1 && option(OPTCRYPTAUTOSELECT)) + { + /* + * Only one matching key...see if there's an id with enough trust to auto-select + */ + kp = KeyTable[0]->parent; + for (a = kp->address; a; a = a->next) + { + if (pgp_trusted_id(a)) + { + safe_free ((void **) &KeyTable); + return (kp); + } + } + } @@ -599,5 +621,3 @@ static pgp_key_t pgp_select_key (pgp_key - if (option (OPTPGPCHECKTRUST) && - (!pgp_id_is_valid (KeyTable[menu->current]) - || !pgp_id_is_strong (KeyTable[menu->current]))) + if (!pgp_trusted_id(KeyTable[menu->current])) { --- postpone.c Sep 2003 17:22:09 -0000 3.9 +++ postpone.c Feb 2004 06:07:14 -0000 @@ -486,2 +486,7 @@ int mutt_parse_crypt_hdr (char *p, int s + case 'i': + case 'I': + pgp |= INLINE; + break; + default: --- protos.h Feb 2004 17:10:43 -0000 3.19 +++ protos.h Feb 2004 06:07:14 -0000 @@ -131,3 +131,3 @@ const char *mutt_get_name (ADDRESS *); char *mutt_get_parameter (const char *, PARAMETER *); -char *mutt_crypt_hook (ADDRESS *); +LIST *mutt_crypt_hook (ADDRESS *); char *mutt_make_date (char *, size_t); --- send.c Jan 2004 10:03:46 -0000 3.29 +++ send.c Feb 2004 06:07:14 -0000 @@ -1258,2 +1258,9 @@ ci_send_message (int flags, /* send mod msg->security |= SIGN; + if ((WithCrypto & APPLICATION_PGP) && (msg->security & (ENCRYPT | SIGN))) + { + if (option (OPTPGPAUTOINLINE)) + msg->security |= INLINE; + if (option (OPTPGPREPLYINLINE) && cur && (cur->security & INLINE)) + msg->security |= INLINE; + } } @@ -1496,3 +1503,3 @@ main_loop: if ((crypt_get_keys (msg, &pgpkeylist) == -1) || - mutt_protect (msg, cur, pgpkeylist) == -1) + mutt_protect (msg, pgpkeylist) == -1) { @@ -1576,3 +1583,3 @@ main_loop: - if (mutt_protect (msg, cur, pgpkeylist) == -1) + if (mutt_protect (msg, pgpkeylist) == -1) { --- sendlib.c Sep 2003 13:03:26 -0000 3.24 +++ sendlib.c Feb 2004 06:07:14 -0000 @@ -2407,2 +2407,4 @@ int mutt_write_fcc (const char *path, HE } + if (hdr->security & INLINE) + fputc ('I', msg->fp); fputc ('\n', msg->fp); --- doc/manual.sgml.head Feb 2004 17:45:33 -0000 3.26 +++ doc/manual.sgml.head Feb 2004 06:07:15 -0000 @@ -1450,3 +1450,5 @@ normally use. The crypt-hook command pr specify the ID of the public key to be used when encrypting messages to -a certain recipient. +a certain recipient. You may use multiple pgp-hook's with the same +pattern; multiple matching pgp-hook's result in the use of multiple +keyids for recipient. --- doc/muttrc.man.head Feb 2004 17:10:43 -0000 3.10 +++ doc/muttrc.man.head Feb 2004 06:07:15 -0000 @@ -297,3 +297,6 @@ to a certain recipient. The meaning of broadly: This can be a different e-mail address, a numerical key ID, -or even just an arbitrary search string. +or even just an arbitrary search string. You may use multiple +\fBpgp-hook\fPs with the same \fIpattern\fP; multiple matching +\fBpgp-hook\fPs result in the use of multiple \fIkey-id\fPs for +recipient. .TP --- po/ca.po Feb 2004 18:26:11 -0000 3.13 +++ po/ca.po Feb 2004 06:07:15 -0000 @@ -603,10 +603,10 @@ msgstr "Xifra amb: " #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "PGP: (x)ifra, (s)igna, si(g)na com a, (a)mbds, o en (c)lar? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "PGP: (x)ifra, (s)igna, s(i)gna com a, (a)mbds, en (l)nia, o en (c)lar? " # ivb (2003/03/26) -# ivb (x)ifra, (s)igna, si(g)na com a, (a)mbds, (c)lar +# ivb (x)ifra, (s)igna, s(i)gna com a, (a)mbds, en (l)nia, o en (c)lar #: compose.c:166 -msgid "esabf" -msgstr "xsgac" +msgid "esabif" +msgstr "xsialc" --- po/cs.po Feb 2004 18:26:11 -0000 3.12 +++ po/cs.po Feb 2004 06:07:16 -0000 @@ -683,4 +683,4 @@ msgstr "Zaifrovat pomoc:" #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "PGP - ()ifrovat, (p)odepsat, podepsat (j)ako, (o)boj, i (n)ic?" +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "PGP - ()ifrovat, (p)odepsat, podepsat (j)ako, (o)boj, p(m), i (n)ic?" @@ -688,4 +688,4 @@ msgstr "PGP - ()ifrovat, (p)odepsat, po #: compose.c:166 -msgid "esabf" -msgstr "pjon" +msgid "esabif" +msgstr "pjomn" --- po/da.po Feb 2004 18:26:11 -0000 3.11 +++ po/da.po Feb 2004 06:07:16 -0000 @@ -578,8 +578,8 @@ msgstr "Kryptr" #, fuzzy -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "(k)ryptr, (u)nderskriv, underskriv (s)om, (b)egge, (i)ngen PGP" +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "(k)ryptr, (u)nderskriv, underskriv (s)om, (b)egge, i(n)tegreret, (i)ngen PGP" #: compose.c:166 -msgid "esabf" -msgstr "kusbi" +msgid "esabif" +msgstr "kusbni" --- po/de.po Feb 2004 18:26:11 -0000 3.15 +++ po/de.po Feb 2004 06:07:16 -0000 @@ -569,8 +569,8 @@ msgstr "Verschlsseln mit: " #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "PGP (v)erschl., (s)ign., sign. (a)ls, (b)eides, (k)ein PGP? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "PGP (v)erschl., (s)ign., sign. (a)ls, (b)eides, (i)nline, (k)ein PGP? " #: compose.c:166 -msgid "esabf" -msgstr "vsabk" +msgid "esabif" +msgstr "vsabik" --- po/el.po Feb 2004 18:26:11 -0000 3.12 +++ po/el.po Feb 2004 06:07:17 -0000 @@ -700,4 +700,4 @@ msgstr " : " #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (f)orget it? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i), (f)orget it? " @@ -706,4 +706,4 @@ msgstr "PGP (e)ncrypt, (s)ign, sign (a)s #: compose.c:166 -msgid "esabf" -msgstr "esabf" +msgid "esabif" +msgstr "esabif" --- po/eo.po Feb 2004 18:26:11 -0000 3.13 +++ po/eo.po Feb 2004 06:07:17 -0000 @@ -571,8 +571,8 @@ msgstr "ifri per: " #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "PGP (i)fri, (s)ubskribi, subskribi (k)iel, (a)mba, a (f)orgesi? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "PGP (i)fri, (s)ubskribi, subskribi (k)iel, (a)mba, \"i(n)line\", a (f)orgesi? " #: compose.c:166 -msgid "esabf" -msgstr "iskaf" +msgid "esabif" +msgstr "iskanf" --- po/es.po Feb 2004 18:26:11 -0000 3.14 +++ po/es.po Feb 2004 06:07:17 -0000 @@ -576,4 +576,4 @@ msgstr "Cifrar" #, fuzzy -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "co(d)ificar, f(i)rmar (c)omo, amb(o)s o ca(n)celar? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "co(d)ificar, f(i)rmar (c)omo, amb(o)s, inc(l)uido, o ca(n)celar? " @@ -581,4 +581,4 @@ msgstr "co(d)ificar, f(i)rmar (c)omo, a #, fuzzy -msgid "esabf" -msgstr "dicon" +msgid "esabif" +msgstr "dicoln" --- po/et.po Feb 2004 18:26:11 -0000 3.13 +++ po/et.po Feb 2004 06:07:18 -0000 @@ -571,8 +571,8 @@ msgstr "Krpti kasutades: " #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "PGP (k)rpti, (a)llkiri, allk. ku(i), (m)lemad vi (u)nusta? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "PGP (k)rpti, (a)llkiri, allk. ku(i), (m)lemad, k(e)hasse, vi (u)nusta? " #: compose.c:166 -msgid "esabf" -msgstr "kaimu" +msgid "esabif" +msgstr "kaimeu" --- po/fr.po Feb 2004 18:26:11 -0000 3.23 +++ po/fr.po Feb 2004 06:07:18 -0000 @@ -596,8 +596,8 @@ msgstr "Chiffrer avec : " #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "(c)hiffrer PGP, (s)igner, (e)n tant que, les (d)eux, ou (o)ublier ? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "(c)hiffrer PGP, (s)igner, (e)n tant que, les (d)eux, en (l)igne, ou (o)ublier ? " #: compose.c:166 -msgid "esabf" -msgstr "csedo" +msgid "esabif" +msgstr "csedlo" --- po/gl.po Feb 2004 18:26:11 -0000 3.11 +++ po/gl.po Feb 2004 06:07:18 -0000 @@ -580,8 +580,8 @@ msgstr "Encriptar" #, fuzzy -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "(e)ncriptar, (f)irmar, firmar (c)omo, (a)mbas ou (o)lvidar? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "(e)ncriptar, (f)irmar, firmar (c)omo, (a)mbas, (i)nterior, ou (o)lvidar? " #: compose.c:166 -msgid "esabf" -msgstr "efcao" +msgid "esabif" +msgstr "efcaio" --- po/hu.po Feb 2004 18:26:11 -0000 3.12 +++ po/hu.po Feb 2004 06:07:19 -0000 @@ -571,8 +571,8 @@ msgstr "Titkosts: " #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "PGP (t)itkost, (a)lr, alr (m)int, titkost (s) alr, m(g)se? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "PGP (t)itkost, (a)lr, alr (m)int, titkost (s) alr, (b)egyazott, m(g)se? " #: compose.c:166 -msgid "esabf" -msgstr "tamsg" +msgid "esabif" +msgstr "tamsbg" --- po/id.po Feb 2004 18:26:12 -0000 3.14 +++ po/id.po Feb 2004 06:07:19 -0000 @@ -572,8 +572,8 @@ msgstr "Enkrip dengan: " #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "PGP (e)nkrip, (t)andatangan, tandatangan (s)bg, ke(d)uanya, (b)atal? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "PGP (e)nkrip, (t)andatangan, tandatangan (s)bg, ke(d)uanya, (i)nline, (b)atal? " #: compose.c:166 -msgid "esabf" -msgstr "etsdb" +msgid "esabif" +msgstr "etsdib" --- po/it.po Feb 2004 18:26:12 -0000 3.11 +++ po/it.po Feb 2004 06:07:19 -0000 @@ -582,8 +582,8 @@ msgstr "Crittografa" #, fuzzy -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "cifra(e), firma(s), firma come(a), entrambi(b), annulla(f) " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "cifra(e), firma(s), firma come(a), entrambi(b), in l(i)nea , annulla(f) " #: compose.c:166 -msgid "esabf" -msgstr "esabf" +msgid "esabif" +msgstr "esabif" --- po/ja.po Feb 2004 18:26:12 -0000 3.21 +++ po/ja.po Feb 2004 06:07:20 -0000 @@ -569,8 +569,8 @@ msgstr " Ź沽: " #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "PGP (e)Ź沽,(s)̾,(a)..Ȥƽ̾,(b)ξ,(f)?" +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "PGP (e)Ź沽,(s)̾,(a)..Ȥƽ̾,(b)ξ,(i)nline,(f)?" #: compose.c:166 -msgid "esabf" -msgstr "esabf" +msgid "esabif" +msgstr "esabif" --- po/ko.po Feb 2004 18:26:12 -0000 3.15 +++ po/ko.po Feb 2004 06:07:20 -0000 @@ -570,8 +570,8 @@ msgstr "ȣȭ : " #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "PGP ȣȭ(e), (s), (a), (b), (f)? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "PGP ȣȭ(e), (s), (a), (b), (i)nline, (f)? " #: compose.c:166 -msgid "esabf" -msgstr "esabf" +msgid "esabif" +msgstr "esabif" --- po/lt.po Feb 2004 18:26:12 -0000 3.11 +++ po/lt.po Feb 2004 06:07:20 -0000 @@ -578,5 +578,5 @@ msgstr "Uifruoti" #, fuzzy -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " msgstr "" -"(u)ifruot, pa(s)irayt, pasirayt k(a)ip, a(b)u, rinktis (m)ic algoritm, " +"(u)ifruot, pa(s)irayt, pasirayt k(a)ip, a(b)u, (l)aike, " "ar (p)amirti?" @@ -585,4 +585,4 @@ msgstr "" #, fuzzy -msgid "esabf" -msgstr "usabmp" +msgid "esabif" +msgstr "usablp" @@ -598,4 +598,3 @@ msgid "" msgstr "" -"(u)ifruot, pa(s)irayt, pasirayt k(a)ip, a(b)u, rinktis (m)ic algoritm, " -"ar (p)amirti?" +"(u)ifruot, pa(s)irayt, uifruo(t) su, pasirayt k(a)ip, a(b)u, ar (p)amirti?" @@ -604,3 +603,3 @@ msgstr "" msgid "eswabf" -msgstr "usabmp" +msgstr "ustabp" --- po/nl.po Feb 2004 18:26:12 -0000 3.16 +++ po/nl.po Feb 2004 06:07:21 -0000 @@ -568,8 +568,8 @@ msgstr "Versleutelen met: " #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "PGP (v)ersleutel, (o)ndertekenen, ondert. (a)ls, (b)eiden, (g)een? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "PGP (v)ersleutel, (o)ndertekenen, ondert. (a)ls, (b)eiden, ber(i)cht, (g)een? " #: compose.c:166 -msgid "esabf" -msgstr "voabg" +msgid "esabif" +msgstr "voabig" --- po/pl.po Feb 2004 18:26:12 -0000 3.17 +++ po/pl.po Feb 2004 06:07:21 -0000 @@ -571,8 +571,8 @@ msgstr "Zaszyfruj uywajc: " #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "PGP: (z)aszyfruj, podpi(s)z, podpisz j(a)ko, o(b)a, b(e)z PGP? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "PGP: (z)aszyfruj, podpi(s)z, podpisz j(a)ko, o(b)a, (i)nline, b(e)z PGP? " #: compose.c:166 -msgid "esabf" -msgstr "zsabe" +msgid "esabif" +msgstr "zsabie" --- po/pt_BR.po Feb 2004 18:26:13 -0000 3.12 +++ po/pt_BR.po Feb 2004 06:07:21 -0000 @@ -581,5 +581,5 @@ msgstr "Encriptar" #, fuzzy -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " msgstr "" -"(e)ncripa, a(s)sina, assina (c)omo, (a)mbos, escolhe (m)ic, ou es(q)uece? " +"(e)ncripa, a(s)sina, assina (c)omo, (a)mbos, em l(i)nha, ou es(q)uece? " @@ -587,4 +587,4 @@ msgstr "" #, fuzzy -msgid "esabf" -msgstr "escamq" +msgid "esabif" +msgstr "escaiq" @@ -600,3 +600,3 @@ msgid "" msgstr "" -"(e)ncripa, a(s)sina, assina (c)omo, (a)mbos, escolhe (m)ic, ou es(q)uece? " +"(e)ncripa, a(s)sina, e(n)cripa com, assina (c)omo, (a)mbos, ou es(q)uece? " @@ -605,3 +605,3 @@ msgstr "" msgid "eswabf" -msgstr "escamq" +msgstr "esncaq" --- po/ru.po Feb 2004 18:26:13 -0000 3.19 +++ po/ru.po Feb 2004 06:07:22 -0000 @@ -577,8 +577,8 @@ msgstr ": " #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "PGP (e), (s), (a) , (b), (f)? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "PGP (e), (s), (a) , (b), (i)nline, (f)? " #: compose.c:166 -msgid "esabf" -msgstr "esabf" +msgid "esabif" +msgstr "esabif" --- po/sk.po Feb 2004 18:26:13 -0000 3.11 +++ po/sk.po Feb 2004 06:07:22 -0000 @@ -586,5 +586,5 @@ msgstr "Zaifruj" #, fuzzy -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " msgstr "" -"(e)-ifr, (s)-podp, podp (a)ko, o(b)e, ozna alg. mi(c), alebo (f)-zabudn " +"(e)-ifr, (s)-podp, podp (a)ko, o(b)e, (i)nline, alebo (f)-zabudn " "na to? " @@ -593,4 +593,4 @@ msgstr "" #, fuzzy -msgid "esabf" -msgstr "esabmf" +msgid "esabif" +msgstr "esabif" @@ -606,4 +606,3 @@ msgid "" msgstr "" -"(e)-ifr, (s)-podp, podp (a)ko, o(b)e, ozna alg. mi(c), alebo (f)-zabudn " -"na to? " +"(e)-ifr, (s)-podp, (w)-ifr s, podp (a)ko, o(b)e, alebo (f)-zabudn na to? " @@ -612,3 +611,3 @@ msgstr "" msgid "eswabf" -msgstr "esabmf" +msgstr "eswabf" --- po/sv.po Feb 2004 18:26:13 -0000 3.12 +++ po/sv.po Feb 2004 06:07:22 -0000 @@ -568,8 +568,8 @@ msgstr "Kryptera med: " #: compose.c:165 -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr "PGP: (k)ryptera, (s)ignera, signera s(o)m, (b)da, eller sk(i)ppa det?" +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr "PGP: (k)ryptera, (s)ignera, signera s(o)m, (b)da, i(n)fogat, eller sk(i)ppa det?" #: compose.c:166 -msgid "esabf" -msgstr "ksobi" +msgid "esabif" +msgstr "ksobni" --- po/tr.po Feb 2004 18:26:13 -0000 3.11 +++ po/tr.po Feb 2004 06:07:22 -0000 @@ -577,5 +577,5 @@ msgstr "ifrele" #, fuzzy -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " msgstr "" -"(i)frele, i(m)zala, (f)arkl imzala, i(k)isi de, mi(c) algoritmini se " +"(i)frele, i(m)zala, (f)arkl imzala, i(k)isi de, (i)nline, " "yoksa i(p)talm? " @@ -583,4 +583,4 @@ msgstr "" #: compose.c:166 -msgid "esabf" -msgstr "imfkcp" +msgid "esabif" +msgstr "imfkip" --- po/uk.po Feb 2004 18:26:13 -0000 3.12 +++ po/uk.po Feb 2004 06:07:23 -0000 @@ -572,8 +572,8 @@ msgstr "" #, fuzzy -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -msgstr ".(e), Ц.(s), Ц. (a), (b) צͦ(f)? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " +msgstr ".(e), Ц.(s), Ц. (a), (b), (i)nline צͦ(f)? " #: compose.c:166 -msgid "esabf" -msgstr "" +msgid "esabif" +msgstr "esabif" --- po/zh_CN.po Feb 2004 18:26:13 -0000 3.11 +++ po/zh_CN.po Feb 2004 06:07:23 -0000 @@ -585,5 +585,5 @@ msgstr "" #, fuzzy -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " msgstr "" -"(e), (s)ǩ, (a)ñǩ, (b)߽Ҫ, ѡ (m)ic 㷨 (f)" +"(e), (s)ǩ, (a)ñǩ, (b)߽Ҫ, (i)nline, (f)" "" @@ -591,4 +591,4 @@ msgstr "" #: compose.c:166 -msgid "esabf" -msgstr "" +msgid "esabif" +msgstr "esabif" --- po/zh_TW.po Feb 2004 18:26:13 -0000 3.11 +++ po/zh_TW.po Feb 2004 06:07:24 -0000 @@ -577,3 +577,3 @@ msgstr "加密" #, fuzzy -msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " +msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " msgstr "(1)加密, (2)簽名, (3)用別的身份簽, (4)兩者皆要, 或 (5)放棄?" @@ -581,4 +581,4 @@ msgstr "(1)加密, (2)簽名, (3)用別 #: compose.c:166 -msgid "esabf" -msgstr "12345" +msgid "esabif" +msgstr "1234i5"