summaryrefslogtreecommitdiffstats
path: root/keymap.c
AgeCommit message (Collapse)Author
2005-09-17Gah, forgot the zip code when updating the FSF address...Brendan Cully
2005-09-17Update FSF address (via sed, I hope nothing got mangled). Closes: #2071.Brendan Cully
2005-09-04Teach keymap.c about KEY_NEXT. Closes: #1588.Zardoz
2005-09-02Allow non-ascii characters in push arguments. Closes: #2023.Alain Bench
2005-02-03Add config.h to the top of every C file that could possibly want it.Brendan Cully
Remove it from mutt.h
2004-06-17This is the sequel to the crypto modularization changes I did onMoritz Schulte
2003-01-21. Moritz added another abstraction layer which cleans up the code and allows the crypto modules to use their own option menu. Everything should work as it used to but is now in a really good shape for part III, the Return of the GnuPG Easy Makers. -wk * crypt-mod-pgp-classic.c, crypt-mod-smime-classic.c, crypt-mod.c, crypt-mod.h: New files. * smime.c (smime_valid_passphrase, smime_send_menu): New functions. * smime.h: Removed macro: smime_valid_passphrase. Declared: smime_valid_passphrase, smime_send_menu. * pgp.c: Include "mutt_menu.h". (pgp_valid_passphrase, pgp_send_menu): New functions. * pgp.h: Removed macro: pgp_valid_passphrase. Declared: pgp_valid_passphrase, pgp_send_menu. * mutt_curses.h: Declare: mutt_need_hard_redraw. * mutt_crypt.h: Declare: crypt_pgp_valid_passphrase, crypt_pgp_send_menu, crypt_smime_valid_passphrase, crypt_smime_send_menu, crypt_init. Adjust WithCrypto definition since the GPGME backend does not exclude anymore the other `classic' backends. (KEYFLAG_ISX509): New symbol. * mutt.h (enum): New symbol: OPTCRYPTUSEGPGME. (struct body): New member: is_signed_data, warnsig. * main.c (main): Call crypt_init. * keymap.c (km_get_table): Support for MENU_KEY_SELECT_PGP and MENU_KEY_SELECT_SMIME. (Menus): Added entries fuer MENU_KEY_SELECT_PGP and MENU_KEY_SELECT_SMIME. (km_init): Create bindings for MENU_KEY_SELECT_PGP and MENU_KEY_SELECT_SMIME. * keymap.h (enum): New enum symbols: MENU_KEY_SELECT_PGP, MENU_KEY_SELECT_SMIME. * init.h: New configuration variable: crypt_use_gpgme. * compose.c (pgp_send_menu, smime_send_menu): Removed functions, they are now contained in the crypto backend modules. (mutt_compose_menu): Use crypt_pgp_send_menu and crypt_smime_send_menu instead pgp_send_menu and smime_send_menu. * cryptglue.c: Slightly rewritten in order to make use of the module mechanism used to access crypto backends. * curs_lib.c (mutt_need_hard_redraw): New function. * crypt.c (crypt_forget_passphrase): Adjust for new crypto backend interface. (crypt_valid_passphrase): Stripped, use calls to crypt_pgp_valid_passphrase and crypt_smime_valid_passphrase.
2004-04-12#1550: bind for multiple menus.Aaron Lehmann
2003-07-24Some functions/macros like isspace take an int and require theVincent Lefevre
argument to have the value of an unsigned char (or EOF). Under Solaris, gcc complains when the argument is a char (as this is a possible bug, on platforms where char is signed, like Solaris). The attached patch fixes such problems (well, perhaps I've changed more than necessary, but this doesn't hurt).
2003-07-16This patch redoes yesterday's unbuffered input patch. Now it uses aBrendan Cully
pseudo-option, which means less mess to carry down the call stack. It also made it much easier to have the SSL certificate menu be unbuffered, which it is now. So push commands won't annoy you when entering passwords or accepting certificates.
2003-07-14The attached patch prevents mutt from reading the push buffer whenBrendan Cully
asking for passwords. This is a proper fix for bug 1312. I think it's uncontroversial.
2003-01-21- To cleanup the pgp/smime code and prepare for other backends.Werner Koch
- Support gpg-agent by not asking for a passphrase - autconf cleanups. This is just a start and probably we need a couple of other things to do. One drawback is that the help menu does always list all crypto realted stuff even when configured for no crypto at all. Same goes for the configure options but I consider thsi a feature: It allows to use the same .muttrc for different versions of mutt - at least during development, this is an advantage. This all might be fixed but requires some changes to the configuration system. Note, the use of the WithCrypto macro - it enables the compiler to do dead-code-elimination depending on the configured backend. This is better readable than all the nested ifdefs. I did some short tests and it seems to work, althoug mutt's size does not change largely when compiled w/o crypto. cryptglue.c is new as a warpper to all crypto calls; some are still in crypt.c but they should eventually also be wrapped. We don't use function pointers to keep a path to use dlopen or runtime configured backends. crypt.h is also new and replaces pgp.h and smime.h in most files (except for the backend). 2003-01-06 Werner Koch <wk@gnupg.org> * crypt.c (crypt_valid_passphrase): Detect gpg-agent and don't ask for the passphrase. * pgp.c (pgp_decrypt_part, pgp_application_pgp_handler) (pgp_sign_message, pgp_encrypt_message) (pgp_traditional_encryptsign): Make sure that we never ever send the passphrase if the gpg-agent has been detected. Likewise. * acconfig.h: Removed all remaining stuff as AC_TEMPLATEs to configure.in. BTW, we should consider to rename configure.in to configure.ac. 2003-01-04 Werner Koch <wk@gnupg.org> Replaced the use of HAVE_PGP and HAVE_SMIME by a more readable and extendable solution. * pgplib.h: Moved enum pgp_ring and KEYFLAGS_* to * crypt.h: here. * smime.c (mutt_is_application_smime): Moved to * crypt.c (mutt_is_application_smime): here. * pgp.c (mutt_is_application_pgp): Moved to * crypt.c (mutt_is_application_pgp): here. * pgp.c (pgp_is_multipart_encrypted): Removed. Merged code with * crypt.c (mutt_is_multipart_encrypted): this. * mutt.h: Protect against double inclusion. * pgplib.h (struct pgp_keyinfo): Remove the typedef to pgp_key_t. * crypt.h (pgp_key_t): Declare the typedef here. NOTE: This is now a pointer. Changed all usages accordingly. * configure.in: Replace HAVE_PGP and HAVE_SMIME by the new CRYPT_BACKEND macros. Always include all OPS.*. (LIBOBJ): Replaced by AC_LIBOBJ as required by newer autoconfs. * Makefile.am (EXTRA_mutt_SOURCES): Move crypt.c to mutt_SOURCES. (mutt_SOURCES): Add cryptglue.c (EXTRA_DIST): Add crypt.h * pgp.h, pgplib.h, smime.h: Use the header only when the approriate backend has been configured. * pgp.c, pgpkey.c, smime.c: Build only if the approriate CRYPT_BACKEND_ macro is defined. * pgp.h, smime.h, global.h: Moved all variable declarations to global.h because they are now always defined. * sort.h: Always define PgpSortKey, although it does not belong to here. * keymap.h: Unconditionally include all PGP and SMIME stuff. * mutt.h: Ditto. * protos.h: Ditto. * init.h (HAVE_SMIME): Unconditionally include all crypto related definitions. Mark the doc entries with "(Crypto/PGP/SMIME only)". * globals.h: Replace gpg.h and smime.h by crypt.h. * functions.h: Always include all crypto commands. * copy.h: Unconditionally define the crypto related M_CM_ * pgplib.h: Move APPLICATION_PGP and PGP* to crypt.h and include it. * smime.h: Move APPLICATION_SMIME and SMIME* to crypt.h and include it. * mutt_crypt.h (ENCRYPT,SIGN,GOODSIGN, BADSIGN): Move to crypt.h. * crypt.c: Replaced pgp.h and smime.h header by crypt.h. Always include all functions but shortcut them depending on WITHCRYPTO. All over the place use WITHCRYPTO instead of ifdefs. Replaced all direct calls of the backend fucntions by twrapper functions defined in cryptglue.c (crypt_get_keys): Removed prototypes. * pgp.h (pgp_findKeys): New prototype. * smime.h (smime_findKeys): New prototype. * cryptglue.c: New. * crypt.h: New. * mutt_crypt.h: Moved all crypt_* prototypes to gcrypt.h. Unconditionally use this file. * init.c: Replaced pgp.h and smime.h header by crypt.h. (parse_set): Use WITHCRYPTO instead of ifdefs. (mutt_var_value_complete): Ditto. * sendlib.c: Replaced pgp.h and smime.h header by crypt.h. (write_as_text_part): Now one macro using WITHCRYPTO. (mutt_write_mime_body): Use WITHCRYPTO instead of ifdefs. (mutt_make_message_attach): Ditto. (mutt_write_fcc): Ditto. * send.c: Replaced pgp.h and smime.h header by crypt.h. (include_forward): Use WITHCRYPTO and validate passphrases for pgp and smime. (include_reply): Ditto. (generate_body): Use WITHCRYPTO instead of ifdefs. (ci_send_message): Ditto. * recvattach.c: Replaced pgp.h and smime.h header by crypt.h. (mutt_gen_attach_list): Use WITHCRYPTO instead of ifdefs. (mutt_attach_display_loop): Ditto (mutt_view_attachments): Ditto. * postpone.c: Replaced pgp.h and smime.h header by crypt.h. (mutt_get_postponed): Use WITHCRYPTO instead of ifdefs. (mutt_parse_crypt_hdr): Always include and use WITHCRYPTO instead of ifdefs. (mutt_prepare_template): Use WITHCRYPTO instead of ifdefs. * pop.c: Removed pgp.h and smime.h. (pop_fetch_message): Use WITHCRYPTO instead of ifdefs. * pattern.c: Replaced pgp.h and smime.h header by crypt.h. (Flags): Always include the crypto flags. (msg_search): Use WITHCRYPTO instead of ifdefs. (mutt_pattern_exec): Ditto. * parse.c: Removed pgp.h and smime.h. (mutt_parse_mime_message): Use WITHCRYPTO instead of ifdefs. * pager.c: Replaced pgp.h and smime.h header by crypt.h. (mutt_pager): Use WITHCRYPTO instead of ifdefs. * mx.c: Removed smime.h and pgp.h. (mx_update_context): Use WITHCRYPTO instead of ifdefs. * muttlib.c: Replaced pgp.h and smime.h header by crypt.h. (mutt_needs_mailcap): Use WITHCRYPTO. Note, that there used to be an error when PGP was not configured so that TYPEAPPLICATION was not recognized for SMIME. (mutt_is_text_part): Use WITHCRYPTO instead of ifdefs. * main.c: Include crypt.h. (show_version): Remove HAVE_PGP and HAVE_SMIME. Add CRYPT_BACKEND_CLASSIC_PGP, CRYPT_BACKEND_CLASSIC_SMIME. * keymap.c: Include crypt.h so that we can test WITHCRYPTO. (Menus): Always include pgp and smime. (km_init): Create smime and pgp bindings depending on WITHCRYPTO. (km_get_table): Return OpPgp depending on WITHCRYPTO. * hook.c (mutt_parse_hook): Use WITHCRYPTO instead of ifdefs. (mutt_crypt_hook): Always include. * headers.c: Replaced pgp.h and smime.h header by crypt.h. (mutt_edit_headers): Use WITHCRYPTO instead of ifdefs * hdrline.c: Replaced pgp.h and smime.h header by crypt.h. (hdr_format_str): Use WITHCRYPTO. * handler.c: Replaced pgp.h and smime.h header by crypt.h. (mutt_can_decode): Use WITHCRYPTO instead of ifdefs. (mutt_can_decode): Application/smime is now also checked when PGP support is not configured. (mutt_body_handler): Use WITHCRYPTO * curs_main.c: Replaced pgp.h and smime.h header by crypt.h. (mutt_index_menu): Shortcut crypto only operations depending on WITHCRYPTO. * copy.c: Replaced pgp.h and smime.h header by crypt.h. (_mutt_copy_message): * compose.c: Replaced pgp.h and smime.h header by crypt.h. (enum): Always include HDR_CRYPT and HDR_CRYPTINFO. (redraw_crypt_lines): Always include this fnc but shortcut it depending on WITHCRYPT. Draw lines depending on the configured crypto support. (pgp_send_menu): Always include this one. Call wrapper functions. (smime_send_menu): Likewise. (draw_envelope): Use WITHCRYPTO instead of ifdefs. (mutt_compose_menu): Allow pgp/smime commands only when configured. * commands.c: Replaced pgp.h and smime.h header by crypt.h. (mutt_display_message,pipe_msg, _mutt_pipe_message) (set_copy_flags, mutt_save_message, mutt_edit_content_type) (_mutt_check_traditional_pgp): Use pgp wrapper. * attach.c (mutt_view_attachment): Removed HAVE_GPG and HAVE_SMIME and replaced by global variable WITHCRYPTO. Replaced pgp and smime header by crypt.h.x
2002-12-18Make the messages from the what-key function internationalizable.Thomas Roessler
2002-12-11Fix Mike's and my e-mail addresses in copyright lines.Thomas Roessler
2002-12-09This patch adds two features to mutt:Michael Elkins
- you can now specify the octal code of a key in a bind or macro function, using the syntax <NNN>. Eg, bind index <541> show-version This allows you to bind to a function key for which Mutt doesn't have a friendly name associated with it. - adds a what-key function which allows you to press a key and have mutt show you the decimal/octal value. (not bound to anything by default)
2002-11-13Add a safeguard #ifdef for the KEY_BTAB entry. Suggested by ThomasThomas Roessler
Dickey.
2002-11-12Tell mutt about the back-tab key (shift tab).Michael Elkins
2002-01-24S/MIME support. From Oliver Ehli <elmy@acm.org> and Mike SchiraldiThomas Roessler
<raldi@research.netsol.com>.
2001-10-16Address book nit fix from geerd.debruijn@nl.thalesgroup.com.Thomas Roessler
2001-09-11The addressbook used to crash when someone issued the alias andThomas Roessler
unalias commands while on that menu. This patch has a basic fix for this behaviour, and adds delete and undelete functions to this menu. While I'm on it, I've also made sure that "apply-tag" untags everything on all menus. The original crash was noted by Oliver Kauss <kauss@gmx.de>.
2001-06-11command/function cosmetics from Byrial Jensen.Thomas Roessler
2001-04-26Add ascii_strcasecmp() and ascii_strncasecmp() functions which doThomas Roessler
locale-independent and case-insensitive string comparisons. Needed for mutt to work in iso-8859-9 environments, where tolower('I') != 'i'.
2001-04-09Entering multibyte characters. From Edmund Grimley Evans.Thomas Roessler
2001-01-08Let check_sec.sh check for use of the unsafe malloc, realloc, free,Thomas Roessler
and strdup routines. While we are on it, plug some memory leaks and make some code understandable.
2000-03-25Timeout occasionally in menus, with the notable exception of theThomas Roessler
editor. This is needed to avoid some more IMAP timeouts. [patch-1.1.9.tlr.timeout.1]
2000-03-03The FSF apparently has moved.Thomas Roessler
2000-02-15More OP_EXIT fixes.Thomas Roessler
2000-02-15Remove the OP_PAGER_EXIT opcode, and change it to OP_EXIT.Thomas Roessler
2000-02-10PGP-cleanup patch from Roland Rosenfeld. Thanks!Thomas Roessler
2000-02-08Avoid IMAP timeouts when viewing messages. FromThomas Roessler
Tommi.Komulainen@iki.fi.
2000-01-08Fix a macro-related segmentation fault. From Byrial Jensen.Thomas Roessler
2000-01-06Update copyright notices for unstable.Thomas Roessler
1999-08-26Change alias menu key bindings to something more reasonable.Thomas Roessler
1999-08-26IRIX fixes.Thomas Roessler
1999-05-03Various fixes.Thomas Roessler
1999-01-19patch-0.95.1.vikas.macro_function.1Thomas Roessler
1999-01-13A first take at adding a mixmaster front-end to mutt. Don't worry,Thomas Roessler
it's optional. ;-)
1999-01-07Get rid of RCS ids in source files. They are getting in our wayThomas Roessler
when merging changes.
1998-11-10Introduce or rewrite mutt_{str*cmp,strlen} and use them all over theThomas Roessler
place. If there are still segmentation faults due to missing NONULLs over, they are gone now.
1998-10-28Gero Treuner's help-wrap patch.Thomas Roessler
1998-10-20Another macro-function fix from Vikas.Thomas Roessler
1998-10-16Nits from Vikas.Thomas Roessler
1998-10-15Change "static char rcsid[]" to "static const char rcsid[]" to makemutt-0-94-13-relThomas Roessler
gcc shut up about this.
1998-10-15A slightly modified version of Vikas' help_unbound patch.Thomas Roessler
1998-10-13Add RCS $Id$ strings to (hopefully) all source files.Thomas Roessler
1998-10-07Fix macro functions for the pager menu.Thomas Roessler
1998-10-07The attached patch fixes a minor inconsistency between the displayThomas Roessler
of special key-names in the help screen and their actual usage. The help screen now shows the special keys exactly as you would/could/should use them in the muttrc/command-line. (From: Vikas Agnihotri <VikasA@att.com>)
1998-10-07Fix the error message for unbound keys. From Vikas.Thomas Roessler
1998-10-06Macro function fixes.Thomas Roessler
1998-10-05macro_function.2-3, from Vikas.Thomas Roessler
1998-10-05Make exec grok >= 1 parameters; fix double ops problem inThomas Roessler
index_menu().