nnir.el (nnir-run-imap): Allow halting a search when an article is found by setting `shortcut' in 'query.
(nnir-request-article): Use `shortcut' setting when requesting article by Message-ID.
gnus-msg.el (gnus-bug): Give the Version and Package headers to debbugs with the X-Debbugs-Package and X-Debbugs-Version headers. Bring the pseudo-headers back too.
Stefan Monnier [Sat, 2 Jul 2011 04:27:41 +0000 (00:27 -0400)]
Add multiple inheritance to keymaps.
* src/keymap.c (Fmake_composed_keymap): New function.
(Fset_keymap_parent): Simplify.
(fix_submap_inheritance): Remove.
(access_keymap_1): New function extracted from access_keymap to handle
embedded parents and handle lists of maps.
(access_keymap): Use it.
(Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
(Fcopy_keymap): Handle embedded parents.
(Fcommand_remapping, define_as_prefix): Simplify.
(Fkey_binding): Simplify.
(syms_of_keymap): Move minibuffer-local-completion-map,
minibuffer-local-filename-completion-map,
minibuffer-local-must-match-map, and
minibuffer-local-filename-must-match-map to Elisp.
(syms_of_keymap): Defsubr make-composed-keymap.
* src/keyboard.c (menu_bar_items): Use map_keymap_canonical.
(parse_menu_item): Trivial simplification.
* lisp/subr.el (remq): Don't allocate if it's not needed.
(keymap--menu-item-binding, keymap--menu-item-with-binding)
(keymap--merge-bindings): New functions.
(keymap-canonicalize): Use them to refine the canonicalization.
* lisp/minibuffer.el (minibuffer-local-completion-map)
(minibuffer-local-must-match-map): Move initialization from C.
(minibuffer-local-filename-completion-map): Move initialization from C;
don't inherit from anything here.
(minibuffer-local-filename-must-match-map): Make obsolete.
(completing-read-default): Use make-composed-keymap to combine
minibuffer-local-filename-completion-map with either
minibuffer-local-must-match-map or
minibuffer-local-filename-completion-map.
* progmodes/flymake.el (flymake-find-file-hook): Add an `autoload'
cookie, since the manual says that it should be possible to add
this function to `find-file-hook'.
Moved `cfengine3-mode' to cfengine.el. Removed cfengine3.el.
* progmodes/cfengine.el: Moved all cfengine3.el functionality
here. Noted Ted Zlatanov as the maintainer.
(cfengine-common-settings, cfengine-common-syntax): New functions
to set up common things between `cfengine-mode' and
`cfengine3-mode'.
(cfengine3-mode): New mode.
(cfengine3-defuns cfengine3-defuns-regex
(cfengine3-class-selector-regex cfengine3-category-regex)
(cfengine3-vartypes cfengine3-font-lock-keywords)
(cfengine3-beginning-of-defun, cfengine3-end-of-defun)
(cfengine3-indent-line): Added from cfengine3.el.
Jan Djärv [Fri, 1 Jul 2011 09:18:46 +0000 (11:18 +0200)]
* process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
(wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
xg_select.
* xgselect.c: Add defined (HAVE_GSETTINGS).
(xgselect_initialize): Ditto.
* xsettings.c (store_monospaced_changed): Take new font as arg and
check for change against current_mono_font.
(EMACS_TYPE_SETTINGS): Remove this and related defines.
(emacs_settings_constructor, emacs_settings_get_property)
(emacs_settings_set_property, emacs_settings_class_init)
(emacs_settings_init, gsettings_obj): Remove.
(something_changedCB): New function for HAVE_GSETTINGS.
(something_changedCB): HAVE_GCONF: Call store_monospaced_changed
with value as argument.
(init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
g_settings_new. Do not create gsettings_obj.
Remove calls to g_settings_bind. Connect something_changedCB to
"changed".
Paul Eggert [Fri, 1 Jul 2011 05:12:00 +0000 (22:12 -0700)]
* eval.c (struct backtrace): Simplify and port the data structure.
Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
signed bit field, as this assumption is not portable and it makes
Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
"char debug_on_exit : 1" as this is not portable either; instead,
use the portable "unsigned int debug_on_exit : 1". Remove unused
member evalargs. Remove obsolete comments about cc bombing out.
Stefan Monnier [Fri, 1 Jul 2011 03:48:44 +0000 (23:48 -0400)]
* lisp/window.el (bury-buffer): Don't iconify the only frame.
(switch-to-buffer): Revert to Emacs<23 behavior, i.e. do not fallback
to pop-to-buffer. Use pop-to-buffer-same-frame if you don't like that.
Stefan Monnier [Fri, 1 Jul 2011 03:15:02 +0000 (23:15 -0400)]
* lisp/emacs-lisp/find-func.el (find-library--load-name): New fun.
(find-library-name): Use it to find relative load names when provided
absolute file name.
* plstore.el (plstore-select-keys, plstore-encrypt-to): New variable.
(plstore-save): Support public key encryption.
(plstore--init-from-buffer): New function.
(plstore-open): Use it; fix error when opening a non-existent file.
(plstore-revert): Use plstore--init-from-buffer.
* net/soap-client.el (soap-invoke, soap-wsdl-resolve-references):
Remove two rather uninteresting debugging-like messages to make
debbugs.el more silent.
Gnus developers [Thu, 30 Jun 2011 22:20:32 +0000 (22:20 +0000)]
gnus-group.el (gnus-read-ephemeral-emacs-bug-group): Take an optional quit window configuration.
auth-source.el (epg-context-set-passphrase-callback): Remove duplicate autoload.
nnir.el (nnir-request-article): Allow requesting articles by Message-ID with nnimap.
gnus-sum.el (gnus-refer-article-methods): Allow (nnir) entry to use current server.
auth-source.el: Autoload EPA/EPG functions.
(auth-source-netrc-use-gpg-tokens): Clarify that it should not be changed when EPA/EPG is not available.
(auth-source-backend): Rename "arg" member to "data".
(auth-source-backend-parse, auth-source-plstore-search)
(auth-source-plstore-create): Use it.
Alan Mackenzie [Thu, 30 Jun 2011 20:45:12 +0000 (20:45 +0000)]
progmodes/cc-guess.el: New file.
progmodes/cc-langs.el (c-mode-menu): Added "Style..." submenu.
progmodes/cc-styles.el (cc-choose-style-for-mode): New function derived
from `c-basic-common-init'.
progmodes/cc-mode.el (top-level): Require cc-guess.
(c-basic-common-init): Use `cc-choose-style-for-mode'.
Alan Mackenzie [Thu, 30 Jun 2011 15:12:59 +0000 (15:12 +0000)]
progmodes/cc-engine.el (c-guess-continued-construct): Correct the
handling of template-args-cont, particularly for when font lock is
disabled. Name this case as "CASE G".
Ken Manheimer [Thu, 30 Jun 2011 14:38:35 +0000 (10:38 -0400)]
* allout.el (allout-yank-processing): Fix injection of extra space between
bullet and non-whitespace character in first topic when pasting, ensuring
that the actual spacing in the pasted topic following the bullet char is
preserved. This extra space was causing pasted encrypted topics to get a
decrypted status even when the content was actually still encrypted. Now
the decryption status from before the paste is preserved.
(allout-flag-region): Set all allout overlays so they evaporate when
reduced to zero length (evanescent), to prevent overlay leakage.
Gnus developers [Thu, 30 Jun 2011 14:25:27 +0000 (14:25 +0000)]
Merge changes made in Gnus trunk.
gnus-art.el (gnus-request-article-this-buffer): Use existing function `gnus-refer-article-methods'.
auth-source.el: Require EPA and EPG.
(auth-source-passphrase-alist): New variable.
(auth-source-passphrase-callback-function, auth-source-token-passphrase-callback-function): Callbacks for the netrc field encryption (GPG tokens).
(auth-source-epa-extract-gpg-token, auth-source-epa-make-gpg-token): Symmetric encryption and decryption of the netrc GPG tokens.
(auth-source-netrc-normalize): Use them, simplifying the closure.
Jan Djärv [Thu, 30 Jun 2011 14:00:26 +0000 (16:00 +0200)]
Add GSettings support (GConf is going away).
* configure.in (gsettings): New option and check for GSettings.
* src/Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Renamed from
GCONF_CFLAGS/LIBS.
* src/xsettings.c: Include glib.h if HAVE_GSETTINGS.
Let HAVE_GSETTINGS override HAVE_GCONF.
(store_monospaced_changed): New function.
(EMACS_SETTINGS): A new type derived from GObject to handle
GSettings notifications.
(emacs_settings_constructor, emacs_settings_get_property)
(emacs_settings_set_property, emacs_settings_class_init):
New functions.
(gsettings_client, gsettings_obj): New variables.
(GSETTINGS_SCHEMA): New define.
(something_changedCB): Call store_monospaced_changed.
(init_gsettings): New function.
(xsettings_initialize): Call init_gsettings.
(syms_of_xsettings): Initialize gsettings_client, gsettings_obj
to NULL.
message.el (message-point-in-header-p): Tweak the function to default to saying that we're not in the headers if there is no separator at all. This makes it possible to use the Message version of `M-q' in buffers with no headers (bug#7987).
(message-point-in-header-p): Fix last checkin to work with an empty mail-header-separator, too.
auth-source.el (auth-source-netrc-saver): If the user says "don't ask again, save the choice via customize.
message.el (message-send-mail-function): Add `sendmail-query-once'.
nnimap.el (nnimap-finish-retrieve-group-infos): If the server has ended the connection, bail out before waiting infinitely on a new connection.