Gnus developers [Sun, 2 Jan 2011 11:23:02 +0000 (11:23 +0000)]
Merge changes made in Gnus trunk.
mm-view.el (mml-smime): Require.
mm-view.el (mm-view-pkcs7-decrypt): If mml-smime-use is set to 'epg, use EPG to decrypt S/MIME messages instead of openssl.
nnimap.el (nnimap-request-group): Avoid double SELECT on `M-g'.
gnus-group.el (gnus-group-kill-group): Don't try to update the group status is the group clearly is unreachable.
auth-source.el (auth-source-create): Add the optional second parameter to `local-variable-p' to be compatible with XEmacs.
nnml.el (nnml-request-article): Allow requesting by Message-ID to work when using a compressed nnml folder.
gnus-sum.el (gnus-select-newsgroup): Don't propagate marks to backends after sanitising on entry, because this never makes sense: If the articles have gone missing, then the data no longer exists on the backend, and if they haven't, then Gnus is wrong, and shouldn't overwrite anything anyway.
shr.el (shr-insert-document): Bind shr-width dynamically to window-width if it's nil.
shr.el (shr-width, shr-insert-document): Allow nil as shr-width value with the meaning of using the full emacs window width for rendering.
Chong Yidong [Sat, 1 Jan 2011 06:02:36 +0000 (01:02 -0500)]
Reduce GTK tool-bar switching delay by avoiding selective show/hide of widgets.
* src/gtkutil.c (xg_get_tool_bar_widgets): Use NULL for a missing
image or label in the container.
(xg_make_tool_item): Replace VERT_ONLY arg with HORIZ, TEXT_IMAGE.
(xg_show_toolbar_item): Function deleted.
(xg_tool_item_stale_p): New function.
(update_frame_tool_bar): Calculate tool-bar style once per call.
Instead of hiding text labels, omit them. Don't use
xg_show_toolbar_item; create new GtkToolItems from scratch if
necessary, instead of trying to re-use them. This avoids an
annoying animation when changing tool-bars.
Jan Djärv [Fri, 31 Dec 2010 13:16:16 +0000 (14:16 +0100)]
For nextstep: Handle bad utf-8 in buffer name, always use buffer name for title.
* nsfns.m (ns_set_name_as_filename): Always use buffer name for
title and buffer filename only for RepresentedFilename.
Handle bad UTF-8 in buffer name.
Eli Zaretskii [Fri, 31 Dec 2010 12:38:06 +0000 (14:38 +0200)]
Fix bug #7716 with PNG image support libraries on Windows.
src/image.c <Qlibpng_version>: New variable.
(syms_of_image): Intern and staticpro it. Set its value to the
version of PNG library we were compiled with.
(my_png_error, png_load): Avoid GCC warnings about direct access
to png_ptr->jmpbuf.
lisp/term/w32-win.el (image-library-alist): Set up correctly for
libpng versions both before and after 1.4.0.
admin/nt/README.W32: Update the information about PNG support libraries.
nt/INSTALL: Update the information about PNG support libraries.
Tassilo Horn [Thu, 30 Dec 2010 18:08:18 +0000 (19:08 +0100)]
* doc-view.el (doc-view-set-doc-type): New function refactored
from doc-view-mode.
(doc-view-fallback-mode): New function.
(doc-view-mode): Use it.
(doc-view-mode-maybe): New function that checks if doc-view-mode
can be used and falls back to the next best mode otherwise.
* files.el (auto-mode-alist): Use doc-view-mode-maybe for PDF,
DVI, OpenDocument, and MS Office files.
Tassilo Horn [Thu, 30 Dec 2010 14:47:53 +0000 (15:47 +0100)]
* doc-view.el (doc-view-mode, doc-view-toggle-display): Use
normal-mode without doc-view-mode bindings in auto-mode-alist as
fallback instead of hard coding fundamental mode.
Tassilo Horn [Thu, 30 Dec 2010 13:45:09 +0000 (14:45 +0100)]
* doc-view.el: Implement viewing of OpenDocument (and Microsoft Office) files.
Not yet enabled via auto-mode-list.
(doc-view-unoconv-program): New custom variable.
(doc-view-mode-p): Handle new odf document type.
(doc-view-odf->pdf): New conversion function.
(doc-view-convert-current-doc): Call it for odf files.
(doc-view-mode): Recognize newly supported file extensions.
Karl Fogel [Wed, 29 Dec 2010 03:24:09 +0000 (22:24 -0500)]
* lisp/saveplace.el (save-place-alist-to-file): Save list sorted and
pretty-printed, so that it is mergeable by line-based text merging,
as suggested by Iain Dalton <iain.dalton {_AT_} gmail.com>.
Ken Manheimer [Tue, 28 Dec 2010 19:57:15 +0000 (14:57 -0500)]
(allout-v18/19-file-var-hack): Obsolete, remove.
(allout-mode): Argument "toggle" => "force".
Refine the docstring.
Remove special provisions for reactivation, besides the 'force' argument.
Consolidate layout provisions coce directly into the activation condition
branch, now that we've removed those provisions.
(allout-unload-function): Explicitly activate the mode before deactivating,
if it's initially deactivated.
(allout-set-buffer-multibyte): Properly prevent byte-compiler warnings for
version of function used only where set-buffer-multibyte is unavailable.
Chong Yidong [Tue, 28 Dec 2010 09:39:25 +0000 (17:39 +0800)]
Fix 2010-12-20 change to tool-bar.el.
* tool-bar.el (tool-bar-setup): Remove :enable conditions, which
are handled by the menu-bar entries. As before, don't use
:visibile to avoid changing the tool-bar.
Stefan Monnier [Sun, 26 Dec 2010 23:17:09 +0000 (18:17 -0500)]
* lisp/emacs-lisp/rx.el: Make it a superset of sregex.
(rx-constituents): Add `any => "."', mark `repeat' as taking any number
of args, add `regex' alias.
(rx-info): Add arg to distinguish head and standalone forms.
(rx-check, rx-form): Pass the corresponding arg.
(rx-**): Simplify.
(rx-repeat): Make it work for any number of args.
(rx-syntax): Make it accept syntax chars as is.
* lisp/obsolete/sregex.el: Move from emacs-lisp/.
* lisp/emacs-lisp/re-builder.el: Remove sregex support.
* lisp/emacs-lisp/edebug.el (sregexq, rx): Remove redundant defs.
Eli Zaretskii [Sat, 25 Dec 2010 11:34:45 +0000 (13:34 +0200)]
Fix bug #7702 with docs of selections wrt MS-Windows.
doc/emacs/frames.texi (Cut and Paste): Modify the section's name and text:
don't mix "cut/paste" with "kill/yank".
(Cut/Paste Other App): Describe the per-session emulation of PRIMARY.
lisp/simple.el (select-active-regions): Doc fix.
Eli Zaretskii [Sat, 25 Dec 2010 10:14:48 +0000 (12:14 +0200)]
More fallout from fixing bug #7587.
src/xdisp.c (Fformat_mode_line): Doc fix: no need to state that only
the basic faces are supported.
doc/lispref/modes.texi (Emulating Mode Line): Fix last change.
etc/NEWS: Remove the entry about format-mode-line accepting only
basic faces.
Julien Danjou [Thu, 23 Dec 2010 22:24:24 +0000 (22:24 +0000)]
gnus-gravatar.el (gnus-gravatar-transform-address): Set `mail-extr-ignore-realname-equals-mailbox-name' to nil when extracting the addresses, otherwise we might misplaced the gravatar.
Stefan Monnier [Thu, 23 Dec 2010 00:00:12 +0000 (19:00 -0500)]
Fix up last change.
* lisp/emacs-lisp/bytecomp.el (byte-compile-output-docform): Fix up use of
print-number-table.
* src/print.c (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): Remove.
(print_preprocess): Fix handling of uninterned symbols in last change.
Chong Yidong [Tue, 21 Dec 2010 07:54:27 +0000 (15:54 +0800)]
Resection the Killing chapter in the Emacs manual.
* killing.texi: Resection the Info version to conform to the
printed manual, to avoid making sections on Accumulating Text, CUA
and Rectangles into full chapters.
Juri Linkov [Mon, 20 Dec 2010 01:18:15 +0000 (01:18 +0000)]
* lisp/isearch.el (isearch-lazy-highlight-error): New variable.
(isearch-lazy-highlight-new-loop): Compare `isearch-error' and
`isearch-lazy-highlight-error'. Set `isearch-lazy-highlight-error'
to the current value of `isearch-error' (Bug#7468).
Chong Yidong [Mon, 20 Dec 2010 00:20:25 +0000 (08:20 +0800)]
Fix 2010-11-22 change to diff.el.
* vc/diff.el (diff-better-file-name): Function deleted.
abbreviating file names causes problems with shell-quote-argument.
(diff-no-select): Just use expand-file-name.
Chong Yidong [Mon, 20 Dec 2010 00:17:26 +0000 (08:17 +0800)]
Implement tool-bar separators for non-GTK tool-bars.
* lisp/tool-bar.el (tool-bar--image-expression): New function.
(tool-bar-local-item, tool-bar--image-exp): Use it.
(tool-bar-setup): Initialize tool-bar-separator-image-expression.
Use :enable instead of :visible to avoid changing the tool-bar
configuration unnecessarily.
* src/keyboard.c (Vtool_bar_separator_image_expression): New variable.
(parse_tool_bar_item): Use it to obtain image separators for
displays not using native tool-bar separators.
* src/xdisp.c (build_desired_tool_bar_string): Don't handle separators
specially, since this is now done in parse_tool_bar_item.
Stefan Monnier [Sat, 18 Dec 2010 16:28:15 +0000 (11:28 -0500)]
* doc/lispref/keymaps.texi (Simple Menu Items, Extended Menu Items):
Remove mention of the key-binding-data cache since we don't use it
any more.
* doc/lispref/modes.texi (Derived Modes): Mention prog-mode.
Gnus developers [Fri, 17 Dec 2010 22:45:16 +0000 (22:45 +0000)]
Merge changes made in Gnus trunk.
nnir.el (nnir-get-active): Ignore nnir-ignored-newsgroups if null.
gnus-sum.el (gnus-summary-refer-thread): Simplify code. Restore gnus-use-agent.
(gnus-get-newsgroup-headers): Avoid unwanted spaces at eol.
gravatar.el (gravatar-retrieve-synchronously): New function.
(gravatar-get-data): Make more robust.
gnus-util.el (gnus-rescale-image): Allow to resize images even if they are from file. Can also scale up.
nnimap.el (nnimap-retrieve-headers): Remove CRLF from the headers.
nnir.el (nnir-mode): Make sure 'gnus-registry-install is bound.
gnus-sum.el (gnus-get-newsgroup-headers): Revert the last change here, since it's up to the backends to do CRLF removal if their protocol has it.
gnus-group.el (gnus-group-delete-articles): New command.
Chong Yidong [Fri, 17 Dec 2010 04:04:06 +0000 (12:04 +0800)]
Support for menu separators in the GTK tool-bar.
* src/gtkutil.c (XG_BIN_CHILD): New macro.
(xg_get_menu_item_label, xg_update_menubar)
(xg_update_menu_item, xg_tool_bar_menu_proxy)
(xg_show_toolbar_item, update_frame_tool_bar): Use it.
(separator_names, xg_separator_p): Move to keyboard.c.
(create_menus, xg_update_submenu, update_frame_tool_bar): Use
menu_separator_name_p.
* src/keyboard.c (parse_tool_bar_item): Allow menu separators in
tool-bar maps.
(menu_separator_name_p): New function, from gtkutil.c.
(separator_names): Move from gtkutil.c.
Ken Manheimer [Thu, 16 Dec 2010 23:30:57 +0000 (18:30 -0500)]
Synopsis: Migrate allout encryption provisions from pgg library, which is
obsolete, to epg library, which replaces pgg.
Due to the underlying GnuPG V2 restrictions on external handling of
passphrases (or epg's restrictions when working with GnuPG v2), we are
dropping allout's symmetric encryption passphrase hinting and verification.
This has the advantage that no emacs code has access to the passphrase,
leaving all passphrase handling in GnuPG, which is much more secure. This,
together with the reduction in allout code complexity and logistical
complications the user would have in arranging to use GnuPG v1, requires
dropping these features.
Keypair encryption gains features, with adoption of respect for epa-file's
'epa-file-encrypt-to'. This means that allout outlines can be associated
with recipients, and encryptions by default will be targeted to those
recipients.
The default encryption mode (whether to epa-file-encrypt-to recipients, if
any, or symmetric mode) is overridden by providing a universal argument
greater than 1 to the outline entry encryption command,
'allout-toggle-current-subtree-encryption'. The user is then prompted to
select keypair identities from their list of known GnuPG keypairs. If they
don't select any, then symmetric encryption is done. Otherwise, the
selected keypair identities are targeted. If the universal argument is
greater than 4 then the selected recipients (or none, if none were
selected) are associated with the outline using a file local variable, as
default recipients for subsequent encryptions.
This is a big merge from a private branch.
Code details:
(allout-toggle-current-subtree-encryption,
allout-toggle-subtree-encryption): Adjust docstrings to reflect defaulting
policy and other changes.
Change fetch-pass to keymode-cue, for simpler universal argument
interpretation.
(allout-toggle-subtree-encryption): Adjust docstring to describe
changed encryption provisions.
Change fetch-pass to keymode-cue, for simpler universal argument
interpretation.
Remove provisions for handling key type and identity - they'll all be
within allout-encrypt-string or epg/epg or even contained all the way in
gpg.
(allout-encrypt-string): Include keymode-cue, for optionally prompting for
keypair recipients (universal argument > 1) and, in addition, associating the
specified recipients with the outline (universal argument > 4) using a file
local variable setting for 'epa-file-encrypt-to'.
Require epa, for recipients handling.
Change how regexp filtering elements are named.
Describe the problem with caching of incorrect symmetric-decryption keys.
Use the epa-passphrase-callback-function, in case the user is using GnuPG
v1.
Support saving of the selected keypair recipients when invoked with a
keymode-cue > 4.
Remove obsolete arguments 'fetch-pass', 'target-cache-id', 'retried'.
Require 'epa.
Establish epg-context with armoring and default epg-protocol.
Remove all passphrase cache, verification, and hinting code.
(allout-passphrase-verifier-handling, allout-passphrase-hint-handling):
No longer used, delete.
(allout-mode): Adjust docstring to describe changed encryption provisions.
Describe the problem with caching of incorrect symmetric-decryption keys.
(allout-obtain-passphrase, allout-epg-passphrase-callback-function,
allout-make-passphrase-state, allout-passphrase-state-passphrase,
allout-encrypted-key-info, allout-update-passphrase-mnemonic-aids,
allout-get-encryption-passphrase-verifier, allout-verify-passphrase):
Obsolete, remove.
Ken Manheimer [Thu, 16 Dec 2010 22:33:13 +0000 (17:33 -0500)]
last pgg adjustment before migrating to epg.
(allout-encrypted-key-info): replace pgg-gpg-symmetric-key-p with explicit
examination of the parsed armoring structure. pgg-gpg-symmetric-key-p
seems to have drifted, not recognizing parsed symmetric keys as being
symmetric.
Gnus developers [Thu, 16 Dec 2010 22:22:28 +0000 (22:22 +0000)]
Merge changes made in Gnus trunk.
nnimap.el (nnimap-wait-for-response): Always look (at least) at the previous line.
nnimap.el (nnimap-quirk): New function.
(nnimap-retrieve-group-data-early): Use it.
(nnimap-quirks): New alist.
gnus.texi (Foreign Groups): Added clarification of foreign groups.
gnus-sum.el (gnus-summary-push-marks-to-backend): Fix the logic for copying read-ness to the backends.
gnus-group.el (gnus-group-kill-group): Notify the backend that the group has been killed.
(gnus-group-yank-group): Ditto.
gnus-start.el (gnus-subscribe-newsgroup): Notify the backend.
nnir.el: Improve customizations.
gnus.texi (Archived Messages): Removed outdated comment and text.
nnfolder.el (nnfolder-save-all-buffers): Refactor out into its own function.
(nnfolder-request-expire-articles): Save all the buffers after doing expiry.
nnmail.el (nnmail-expiry-target-group): Revert the "all articles are the last article", since that led to serious performance regressions when expiring nnml groups.
gnus-html.el (gnus-html-schedule-image-fetching): Make sure the HTML fetching stops when Gnus exits.
gnus-srvr.el: Avoid passing nil regexp argument to delete-matching-lines.
auth-source.el (auth-source-gpg-encrypt-to): New variable to set the list of recipient keys, or use symmetric encryption if not a list.
(auth-source-create): Use it to make `epa-file-encrypt-to' local for an EPA override, replacing the call to `netrc-store-data'.
Ken Manheimer [Thu, 16 Dec 2010 07:39:17 +0000 (02:39 -0500)]
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
adjusting the value (as a file local variable and an active buffer setting)
with the result of epa-select-keys.
note the problem with caching of incorrect symmetric decryption keys.
(allout-toggle-current-subtree-encryption),
(allout-toggle-subtree-encryption): Adjust docstrings to reflect defaulting
policy change.
(allout-encrypt-string): keymod-cue rather than keypair-mode, which is
interpreted here. Use the epa-passphrase-callback-function, in case the
user is using GnuPG v1. Support saving of the selected keypair recipients
when invoked with a keymode-cue > 4.