pop3.el (pop3-movemail): Use erase-buffer instead of looping and deleting regions, which seems rather odd; gnus-start.el (gnus-get-unread-articles): Protect against groups that come from no known methods.
Rewrite the Gnus group activation method to be more efficient; nnmh.el (nnmh-request-list-1): Fix up the recursion behavior; Add more changes related to the new methodology for requesting backend data.
* progmodes/compile.el (compilation-error-regexp-alist-alist):
Remove ruby regexp; handle Ruby errors with gcc-include and gnu.
Recognize leading tab in gcc-include regexp. Ignore names with
leading "from" or "in" in gnu regexp (Bug#6937).
Stefan Monnier [Sat, 4 Sep 2010 18:47:29 +0000 (20:47 +0200)]
Avoid global recursive calls to kill-buffer-hooks, and fit into 80 cols.
* lisp/textmodes/ispell.el (ispell-process-buffer-name): Remove.
(ispell-start-process): Avoid setq and simplify logic.
(ispell-init-process): Setup kill-buffer-hook locally when needed.
(kill-buffer-hook): Don't use it globally with code that uses
expand-file-name since that may call kill-buffer via
code_conversion_restore.
* emacs-lisp/package.el (package--download-one-archive): Ensure
that archive-contents is valid before saving it.
(package-activate-1, package-mark-obsolete, define-package)
(package-compute-transaction, package-list-maybe-add): Use push.
(gnus-article-copy-string): Say what data we copied; (gnus-html-wash-tags): Remove even more white space around <pre_int>; (gnus-agent-load-alist): Check whether the agentview files exist before trying to read them.
Eli Zaretskii [Sat, 4 Sep 2010 15:16:08 +0000 (18:16 +0300)]
Fix display of composed R2L text on MS-Windows.
w32uniscribe.c (uniscribe_shape): Update commentary. Don't
try to reorder grapheme clusters, since LGSTRING should always
hold them in the logical order.
(uniscribe_encode_char, uniscribe_shape): Force ScriptShape to
return glyph codes in the logical order.
mm-util.el: Just return the image directories, not all directories in the path in addition to the image directories; Maintain a cache of the image directories. This means that the `g' command in Gnus doesn't have to stat dozens of directories each time; nnmh.el: Only recurse down into subdirectories if the link count is more than 2. This results in a 100x speed up on my nnmh spool, and that's from an SSD disk, and not over nfs.
gnus-html.el: Remove more white space before <pre_int> image spacers; Decode entities at the end. So that entities inside the tags don't mess up the rest of the "parsing".
gnus-agent.el: Change the default so that nnimap methods aren't agentized by default. There's apparently many problems related to agent/imap behaviour; gnus-art.el: Don't reuse the 'gnus-data text property, but use a new property. This avoids stomping over other functions that use this for other things; gnus-html.el: Add a new `i' command to insert images.
gnus-html: Comment fix.; gnus-art.el: Provide an `u' command on urls and the like that copies the string over to the kill ring; Also have the `u' command work for HTML links.
Stefan Monnier [Fri, 3 Sep 2010 13:28:09 +0000 (15:28 +0200)]
Use SMIE's blink-paren for octave-mode.
* lisp/progmodes/octave-mod.el (octave-font-lock-close-quotes):
Backslashes do not escape single-quotes, single-quotes do.
(octave-block-else-regexp, octave-block-end-regexp)
(octave-block-match-alist): Remove.
(octave-smie-bnf-table): New var, with old content.
(octave-smie-op-levels): Use it.
(octave-smie-closer-alist): New var.
(octave-mode): Use it. Setup smie-blink-matching and electric-indent.
(octave-blink-matching-block-open): Remove.
(octave-reindent-then-newline-and-indent, octave-electric-semi)
(octave-electric-space): Let self-insert-command run expand-abbrev and
blink parens.
Stefan Monnier [Fri, 3 Sep 2010 13:06:51 +0000 (15:06 +0200)]
* lisp/electric.el (electricity): New group.
(electric-indent-chars): New var.
(electric-indent-post-self-insert-function): New fun.
(electric-indent-mode): New minor mode.
(electric-pair-skip-self): New custom.
(electric-pair-post-self-insert-function): New function.
(electric-pair-mode): New minor mode.
Stefan Monnier [Fri, 3 Sep 2010 11:26:08 +0000 (13:26 +0200)]
* lisp/calc/calc-aent.el (calcAlg-blink-matching-check): New fun, to replace
calcAlg-blink-matching-open.
(calc-alg-ent-map, calc-alg-ent-esc-map): Initialize in the declaration.
(calc-do-alg-entry): Only touch the part of the keymap that varies.
Use the new blink-matching-check-function.
Stefan Monnier [Fri, 3 Sep 2010 11:18:45 +0000 (13:18 +0200)]
Provide blink-matching support to SMIE.
* lisp/emacs-lisp/smie.el (smie-bnf-closer-alist): New function.
(smie-blink-matching-triggers, smie-blink-matching-inners): New vars.
(smie-blink-matching-check, smie-blink-matching-open): New functions.
message.el (message-generate-hashcash): Change default to 'opportunistic if hashcash is installed; gnus-html.el (gnus-html-put-image): Only call image-size once, since it's somewhat time-consuming on remote X servers.
Stefan Monnier [Thu, 2 Sep 2010 21:57:08 +0000 (23:57 +0200)]
Add blink-matching-check-function and misc cleanups.
* lisp/simple.el (newline): Eliminate optimization.
Use post-self-insert-hook to set hard-newline and things before
running post-self-insert-hook.
(blink-matching-check-mismatch): New function.
(blink-matching-check-function): New variable.
(blink-matching-open): Use them.
Skip back forward over prefix chars skipped by forward-sexp.
Don't check if the parens are backslash escaped.
(blink-paren-post-self-insert-function): Check backslash escaping here.
ispell.el: better `default-directory' and kill-ispell-on-exit handling
* textmodes/ispell.el (ispell-init-process): Use "~/" as
`default-directory' unless using Ispell per-directory personal
dictionaries and not in a mini-buffer under XEmacs.
(kill-buffer-hook): Do not kill ispell process on exit when
`ispell-process-directory' is "~/". (Bug#6143)
gnus-html.el (gnus-html-wash-tags): Don't show images that are really small. They're probably tracking images; nntp.el (nntp-request-set-mark): Refuse to do marks if nntp-marks-file-name is nil.
gnus-html.el (gnus-html-wash-tags): "A" is also used for links, just like "a", it seems like; (gnus-html-image-url-blocked-p): Take a parameter for blocked-images since it needs to be picked from the correct buffer.
gnus-html.el: Rescale images in article buffers for Emacs versions that support this. This is currently only Emacs 24 compiled with imagemagick support.
Stefan Monnier [Wed, 1 Sep 2010 14:41:17 +0000 (16:41 +0200)]
* lisp/simple.el (blink-paren-function): Move from C to here.
(blink-paren-post-self-insert-function): New function.
(post-self-insert-hook): Use it.
* src/cmds.c (Vblink_paren_function): Remove.
(internal_self_insert): Make it insert N chars at a time.
Don't call blink-paren-function.
(Fself_insert_command): Adjust accordingly.
(syms_of_cmds): Don't declare blink-paren-function.
Katsumi Yamaoka [Tue, 31 Aug 2010 23:26:23 +0000 (23:26 +0000)]
gnus-ems.el: Provide compatibility functions for gnus-set-process-plist by Katsumi Yamaoka <yamaoka@jpl.org>; gnus-html.el: Use gnus-process-plist and friends for compatibility; gnus-cite.el: New function to guess whether a long line is natural text or not; message.el: Implement message-prune-recipient-rules; by Lars Magne Ingebrigtsen <larsi@gnus.org>.
Stefan Monnier [Tue, 31 Aug 2010 19:47:35 +0000 (21:47 +0200)]
* lisp/gnus/gnus-html.el: Require pkgs that define macros used in this file.
(gnus-article-mouse-face): Declare to silence byte-compiler.
(gnus-html-curl-sentinel): Use with-current-buffer, inhibit-read-only, and
process-get.
(gnus-html-put-image): Use plist-get to avoid getf.
(gnus-html-prefetch-images): Use with-current-buffer.