Commit 821ff720 authored by Kenichi Handa's avatar Kenichi Handa
Browse files

merge trunk

parents 0902a04e 8ddde651
2011-08-22 Juri Linkov <>
* compilation.txt: Add more samples of output and non-output
switches (bug#9319).
2011-08-19 Chong Yidong <>
* themes/dichromacy-theme.el:
......@@ -407,7 +407,7 @@ If non-nil, C-d, [delete], and DEL delete the region if it is active
and no prefix argument is given. If set to `kill', these commands
kill instead.
*** New command `delete-forward-char', bound to C-d and [delete].
*** New command `delete-forward-char', bound to [delete].
This is meant for interactive use, and obeys `delete-active-region'.
The command `delete-char' does not obey `delete-active-region'.
......@@ -546,9 +546,20 @@ checking whether to build shared libraries... yes
checking whether -lc should be explicitly linked in... (cached) no
checking For GLIB - version >= 2.0.0... yes (version 2.1.0)
g++ -o foo.o
tool1 -output=foo foo.x
tool2 --outfile foo foo.y
tool -o foo.o foo.c
tool -o=foo.o foo.c
tool -output foo.o foo.c
tool -output=foo.o foo.c
tool -outfile foo.o foo.c
tool -outfile=foo.o foo.c
tool --output foo.o foo.c
tool --output=foo.o foo.c
tool --outfile foo.o foo.c
tool --outfile=foo.o foo.c
tool -omega foo.c foo2.c
tool -output-html-file foo.c foo2.c
tool --omega foo.c foo2.c
tool --output-html-file foo.c foo2.c
Compilation started at Wed Jul 20 12:20:10
Compilation interrupt at Wed Jul 20 12:20:10
2011-08-20 Glenn Morris <>
* makefile.w32-in (MISC): Add ipa-praat.elc.
2011-07-23 Yair F <>
* quail/hebrew.el ("hebrew"): Additional key mappings.
......@@ -124,6 +124,7 @@ OTHERS= \
${srcdir}/quail/arabic.elc \
${srcdir}/quail/ethiopic.elc \
${srcdir}/quail/ipa.elc \
${srcdir}/quail/ipa-praat.elc \
${srcdir}/quail/hebrew.elc \
${srcdir}/quail/georgian.elc \
$(srcdir)/quail/persian.elc \
......@@ -118,6 +118,7 @@ MISC= \
$(srcdir)/quail/arabic.elc \
$(srcdir)/quail/ethiopic.elc \
$(srcdir)/quail/ipa.elc \
$(srcdir)/quail/ipa-praat.elc \
$(srcdir)/quail/hebrew.elc \
$(srcdir)/quail/georgian.elc \
$(srcdir)/quail/persian.elc \
......@@ -16,6 +16,142 @@
* international/uni-titlecase.el:
* international/uni-uppercase.el: Regenerate.
2011-08-23 Martin Rudalics <>
* help.el (help-window-setup): Fix message displayed when other
window is reused. (Bug#9341)
2011-08-23 Stefan Monnier <>
* shell.el (shell-completion-vars): Set pcomplete-arg-quote-list.
* pcomplete.el (pcomplete-quote-argument): Fix thinko (bug#9161).
* pcomplete.el (pcomplete-parse-comint-arguments): Fix inf-loop.
Mark obsolete.
* shell.el (shell-parse-pcomplete-arguments): New function.
(shell-completion-vars): Use it instead (bug#9160).
2011-08-22 Stefan Monnier <>
* progmodes/sh-script.el (sh-maybe-here-document): Disable magic in
strings and comments (bug#9333).
* emacs-lisp/debug.el (debug-arglist): New function.
(debug-convert-byte-code): Use it. Handle lexical byte-codes.
(debug-on-entry-1): Handle interpreted closures (bug#9120).
2011-08-22 Juri Linkov <>
* progmodes/compile.el (compilation-mode-font-lock-keywords):
Revert regexp that highlights output switches to its old
pre-2010-10-28 value and remove one `?' from it (bug#9319).
* progmodes/grep.el (grep-process-setup): Use `buffer-modified-p'
to check for empty output (bug#9226).
2011-08-22 Chong Yidong <>
* progmodes/scheme.el (scheme-mode-syntax-table): Don't use
symbol-constituent as the default, as that stops font-lock from
working properly (Bug#8843).
2011-08-21 Lars Magne Ingebrigtsen <>
* mail/smtpmail.el (smtpmail-via-smtp): Only bind
`coding-system-for-*' around the process open call to avoid
auth-source side effects.
(smtpmail-try-auth-methods): Expand the secret password.
(smtpmail-query-smtp-server): Allow `quit'-ing out in case the
probe hangs.
2011-08-21 Chong Yidong <>
* term.el (term-mouse-paste): Yank primary selection (Bug#6845).
* emacs-lisp/find-func.el (find-function-noselect): New arg
* emacs-lisp/edebug.el (edebug-instrument-function): Use it to
signal an error for built-in functions (Bug#6664).
2011-08-21 Lars Magne Ingebrigtsen <>
* mail/smtpmail.el (smtpmail-smtp-user): New variable.
(smtpmail-try-auth-methods): Use it.
2011-08-21 Chong Yidong <>
* font-lock.el (font-lock-fontify-region)
(font-lock-unfontify-region, font-lock-default-fontify-buffer)
(font-lock-default-unfontify-region): Add docstrings (Bug#8624).
* progmodes/compile.el (compilation-error-properties):
Fix confusion between file struct and message struct (Bug#9319).
(compilation-error-regexp-alist-alist): Fix 2011-05-09 change to
`ant' regexp.
* net/browse-url.el (browse-url-firefox): Don't call
browse-url-firefox-sentinel unless using -remote (Bug#9328).
2011-08-20 Glenn Morris <>
* tutorial.el (help-with-tutorial): Avoid an error on short screens.
* tutorial.el (tutorial--default-keys): Update some default bindings.
* files.el (hack-local-variables): Fully ignore case for "mode:".
2011-08-20 Alan Mackenzie <>
Resolve invalid use of a regexp in regexp-opt.
* cc-fonts.el (c-complex-decl-matchers): Add in special detection
for a java annotation.
* cc-engine.el (c-forward-decl-or-cast-1): Add in special
detection for a java annotation.
* cc-langs.el (c-prefix-spec-kwds-re): Remove the special handling
for java.
(c-modifier-kwds): Remove the regexp "@[A-za-z0-9]+".
2011-08-20 Chong Yidong <>
* startup.el (normal-top-level-add-subdirs-to-load-path): Doc fix
2011-08-20 Alan Mackenzie <>
* Fontify CPP expressions correctly when starting in the middle of
such a construct. Mainly for when jit-lock etc. starts a chunk
* progmodes/cc-fonts.el (c-font-lock-context): new buffer local
(c-make-font-lock-search-form): new function, extracted from
(c-make-font-lock-search-function): Use the above function.
(c-make-font-lock-context-search-function): New function.
(c-cpp-matchers): Enhance the preprocessor expression case with
the above function
(c-font-lock-complex-decl-prepare): Test for being in a CPP form
which takes an expression.
* progmodes/cc-langs.el (c-cpp-expr-intro-re): New lang-variable.
2011-08-20 Martin Rudalics <>
* window.el (display-buffer-reuse-window)
(display-buffer-pop-up-window): Don't reuse or split a side
2011-08-19 Glenn Morris <>
* files.el (hack-local-variables-prop-line, hack-local-variables):
Downcase "Mode:". (Bug#9331)
2011-08-18 Chong Yidong <>
* international/characters.el: Add L and R categories.
......@@ -46,8 +182,8 @@
binding variables (bug#9298). Also clean up some unused
* net/network-stream.el (network-stream-open-starttls): Support
using starttls.el without using gnutls-cli.
* net/network-stream.el (network-stream-open-starttls):
Support using starttls.el without using gnutls-cli.
2011-08-17 Juri Linkov <>
......@@ -834,6 +834,7 @@ if `inhibit-field-text-motion' is non-nil."
(setq i (1+ i))))
(define-key global-map [?\C-\M--] 'negative-argument)
;; Update tutorial--default-keys if you change these.
(define-key global-map "\177" 'delete-backward-char)
(define-key global-map "\C-d" 'delete-char)
......@@ -778,6 +778,7 @@ Redefining FUNCTION also cancels it."
(not (debugger-special-form-p symbol))))
t nil nil (symbol-name fn)))
(list (if (equal val "") fn (intern val)))))
;; FIXME: Use advice.el.
(when (debugger-special-form-p function)
(error "Function %s is a special form" function))
(if (or (symbolp (symbol-function function))
......@@ -835,24 +836,30 @@ To specify a nil argument interactively, exit with an empty minibuffer."
(message "Cancelling debug-on-entry for all functions")
(mapcar 'cancel-debug-on-entry debug-function-list)))
(defun debug-arglist (definition)
;; FIXME: copied from ad-arglist.
"Return the argument list of DEFINITION."
(require 'help-fns)
(help-function-arglist definition 'preserve-names))
(defun debug-convert-byte-code (function)
(let* ((defn (symbol-function function))
(macro (eq (car-safe defn) 'macro)))
(when macro (setq defn (cdr defn)))
(unless (consp defn)
;; Assume a compiled code object.
(let* ((contents (append defn nil))
(when (byte-code-function-p defn)
(let* ((args (debug-arglist defn))
(list (list 'byte-code (nth 1 contents)
(nth 2 contents) (nth 3 contents)))))
(if (nthcdr 5 contents)
(setq body (cons (list 'interactive (nth 5 contents)) body)))
(if (nth 4 contents)
`((,(if (memq '&rest args) #'apply #'funcall)
,@(remq '&rest (remq '&optional args))))))
(if (> (length defn) 5)
(push `(interactive ,(aref defn 5)) body))
(if (aref defn 4)
;; Use `documentation' here, to get the actual string,
;; in case the compiled function has a reference
;; to the .elc file.
(setq body (cons (documentation function) body)))
(setq defn (cons 'lambda (cons (car contents) body))))
(setq defn `(closure (t) ,args ,@body)))
(when macro (setq defn (cons 'macro defn)))
(fset function defn))))
......@@ -861,11 +868,12 @@ To specify a nil argument interactively, exit with an empty minibuffer."
(tail defn))
(when (eq (car-safe tail) 'macro)
(setq tail (cdr tail)))
(if (not (eq (car-safe tail) 'lambda))
(if (not (memq (car-safe tail) '(closure lambda)))
;; Only signal an error when we try to set debug-on-entry.
;; When we try to clear debug-on-entry, we are now done.
(when flag
(error "%s is not a user-defined Lisp function" function))
(if (eq (car tail) 'closure) (setq tail (cdr tail)))
(setq tail (cdr tail))
;; Skip the docstring.
(when (and (stringp (cadr tail)) (cddr tail))
......@@ -875,9 +883,9 @@ To specify a nil argument interactively, exit with an empty minibuffer."
(setq tail (cdr tail)))
(unless (eq flag (equal (cadr tail) '(implement-debug-on-entry)))
;; Add/remove debug statement as needed.
(if flag
(setcdr tail (cons '(implement-debug-on-entry) (cdr tail)))
(setcdr tail (cddr tail)))))
(setcdr tail (if flag
(cons '(implement-debug-on-entry) (cdr tail))
(cddr tail)))))
(defun debugger-list-functions ()
......@@ -3408,7 +3408,7 @@ go to the end of the last sexp, or if that is the same point, then step."
(message "%s is already instrumented." func)
(let ((loc (find-function-noselect func)))
(let ((loc (find-function-noselect func t)))
(unless (cdr loc)
(error "Could not find the definition in its file"))
(with-current-buffer (car loc)
......@@ -312,7 +312,7 @@ The search is done in the source for library LIBRARY."
(cons (current-buffer) nil))))))))
(defun find-function-noselect (function)
(defun find-function-noselect (function &optional lisp-only)
"Return a pair (BUFFER . POINT) pointing to the definition of FUNCTION.
Finds the source file containing the definition of FUNCTION
......@@ -320,6 +320,10 @@ in a buffer and the point of the definition. The buffer is
not selected. If the function definition can't be found in
the buffer, returns (BUFFER).
If FUNCTION is a built-in function, this function normally
attempts to find it in the Emacs C sources; however, if LISP-ONLY
is non-nil, signal an error instead.
If the file where FUNCTION is defined is not known, then it is
searched for in `find-function-source-path' if non-nil, otherwise
in `load-path'."
......@@ -345,6 +349,8 @@ in `load-path'."
(cond ((eq (car-safe def) 'autoload)
(nth 1 def))
((subrp def)
(if lisp-only
(error "%s is a built-in function" function))
(help-C-file-name def 'subr))
((symbol-file function 'defun)))))
(find-function-search-for-symbol function nil library))))
......@@ -3003,9 +3003,10 @@ mode, if there is one, otherwise nil."
(or (equal keyname "coding")
(condition-case nil
(push (cons (if (eq key 'eval)
(indirect-variable key))
(push (cons (cond ((eq key 'eval) 'eval)
;; Downcase "Mode:".
((equal keyname "mode") 'mode)
(t (indirect-variable key)))
val) result)
(error nil))))
(skip-chars-forward " \t;")))
......@@ -3153,6 +3154,8 @@ major-mode."
(var (let ((read-circle nil))
(read str)))
val val2)
(and (equal (downcase (symbol-name var)) "mode")
(setq var 'mode))
;; Read the variable value.
(skip-chars-forward "^:")
(forward-char 1)
......@@ -1018,14 +1018,20 @@ The region it returns may start or end in the middle of a line.")
(funcall font-lock-unfontify-buffer-function))
(defun font-lock-fontify-region (beg end &optional loudly)
"Fontify the text between BEG and END.
If LOUDLY is non-nil, print status messages while fontifying.
This works by calling `font-lock-fontify-region-function'."
(funcall font-lock-fontify-region-function beg end loudly))
(defun font-lock-unfontify-region (beg end)
"Unfontify the text between BEG and END.
This works by calling `font-lock-unfontify-region-function'."
(funcall font-lock-unfontify-region-function beg end)))
(defun font-lock-default-fontify-buffer ()
"Fontify the whole buffer using `font-lock-fontify-region-function'."
(let ((verbose (if (numberp font-lock-verbose)
(> (buffer-size) font-lock-verbose)
......@@ -1045,6 +1051,7 @@ The region it returns may start or end in the middle of a line.")
(quit (font-lock-unfontify-buffer)))))))
(defun font-lock-default-unfontify-buffer ()
"Unfontify the whole buffer using `font-lock-unfontify-region-function'."
;; Make sure we unfontify etc. in the whole buffer.
......@@ -1114,6 +1121,9 @@ Put first the functions more likely to cause a change and cheaper to compute.")
(defun font-lock-default-fontify-region (beg end loudly)
"Fontify the text between BEG and END.
If LOUDLY is non-nil, print status messages while fontifying.
This function is the default `font-lock-fontify-region-function'."
;; Use the fontification syntax table, if any.
(with-syntax-table (or font-lock-syntax-table (syntax-table))
......@@ -1162,6 +1172,8 @@ This is used by `font-lock-default-unfontify-region' to decide
what properties to clear before refontifying a region.")
(defun font-lock-default-unfontify-region (beg end)
"Unfontify the text between BEG and END.
This function is the default `font-lock-unfontify-region-function'."
beg end (append
2011-08-21 Lars Magne Ingebrigtsen <>
* nnmail.el (nnmail-get-new-mail-1): If one mail source bugs out,
continue on and do the clean-up phase (bug#9188).
* gnus-sum.el (gnus-summary-expire-articles): When expiring articles,
just ignore groups that can't be opened instead of erroring out
* gnus-art.el (gnus-article-update-date-headers): Flip the default to
nil since some many people are fuddy-duddies.
* gnus-html.el (gnus-html-image-fetched): Don't cache zero-length
* nntp.el (nntp-authinfo-file): Mark as obsolete -- use auth-source
* pop3.el (pop3-wait-for-messages): Don't use Gnus functions here.
* gnus-util.el (gnus-process-live-p): Copy over compat function.
* pop3.el (pop3-wait-for-messages): If the pop3 process dies, stop
* nntp.el (nntp-kill-buffer): Kill the process before killing the
buffer to avoid warnings.
2011-08-20 Simon Josefsson <>
* gnus-agent.el (gnus-agent-expire-done-message): Use %.f as format
specified to reduce precision.
2011-08-19 Lars Magne Ingebrigtsen <>
* nnimap.el (nnimap-transform-headers): Protect against (NIL ...)
bodystructures (bug#9314).
2011-08-19 Katsumi Yamaoka <>
* gnus-art.el (gnus-insert-mime-button, gnus-mime-display-alternative):
......@@ -12,8 +50,29 @@
`gnus-registry-get-id-key' since `gnus-registry-fetch-groups' isn't
available anymore.
2011-08-12 Simon Josefsson <>
* starttls.el (starttls-any-program-available): Define as obsolete
2011-08-18 Lars Magne Ingebrigtsen <>
* gnus-util.el (gnus-y-or-n-p): Reinstate the message-clearing y-or-n-p
versions which Gnus use when appropriate.
* gnus-group.el (gnus-group-clear-data): Add a y-or-n query, since it's
a pretty destructive command.
* nnmail.el (nnmail-extra-headers): Clarify slightly (bug#9302).
2011-08-17 Lars Magne Ingebrigtsen <>
* message.el (message-fix-before-sending): Make a different warning
about NUL characters (bug#9270).
* gnus-sum.el (gnus-auto-select-subject): Allow specifying a function
from custom (bug#9260).
* gnus-spec.el (gnus-lrm-string): Use 8206 instead of ?\x200e to make
things work in Emacs 22 and XEmacs, too.
......@@ -3560,7 +3560,7 @@ articles in every agentized group? "))
units (cdr units)))
(format "Expiry recovered %d NOV entries, deleted %d files,\
and freed %f %s."
and freed %.f %s."
(nth 0 stats)
(nth 1 stats)
size (car units)))
......@@ -1039,7 +1039,7 @@ Some of these headers are updated automatically. See
(item :tag "ISO8601 format" :value 'iso8601)
(item :tag "User-defined" :value 'user-defined)))
(defcustom gnus-article-update-date-headers 1
(defcustom gnus-article-update-date-headers nil
"A number that says how often to update the date header (in seconds).
If nil, don't update it at all."
:version "24.1"
......@@ -3471,13 +3471,14 @@ sort in reverse order."
"Clear all marks and read ranges from the current group.
Obeys the process/prefix convention."
(interactive "P")
(when (gnus-y-or-n-p "Really clear data? ")
(gnus-group-iterate arg
(lambda (group)
(let (info)
(gnus-info-clear-data (setq info (gnus-get-info group)))
(gnus-get-unread-articles-in-group info (gnus-active group) t)
(when (gnus-group-goto-group group)
(defun gnus-group-clear-data-on-native-groups ()
"Clear all marks and read ranges from all native groups."
......@@ -399,15 +399,16 @@ Use ALT-TEXT for the image string."
(defun gnus-html-image-fetched (status buffer image)
"Callback function called when image has been fetched."
(unless (plist-get status :error)
(when gnus-html-image-automatic-caching
(url-store-in-cache (current-buffer)))
(when (and (or (search-forward "\n\n" nil t)
(search-forward "\r\n\r\n" nil t))
(buffer-live-p buffer))
(not (eobp)))
(when gnus-html-image-automatic-caching
(url-store-in-cache (current-buffer)))
(when (buffer-live-p buffer)
(let ((data (buffer-substring (point) (point-max))))
(with-current-buffer buffer
(let ((inhibit-read-only t))
(gnus-html-put-image data (car image) (cadr image)))))))
(gnus-html-put-image data (car image) (cadr image))))))))
(kill-buffer (current-buffer)))
(defun gnus-html-get-image-data (url)
......@@ -375,7 +375,8 @@ place point on some subject line."
(const unread)
(const first)
(const unseen)
(const unseen-or-unread)))
(const unseen-or-unread)
(function :tag "Function to call")))
(defcustom gnus-auto-select-next t
"*If non-nil, offer to go to the next group from the end of the previous.
......@@ -10286,8 +10287,7 @@ This will be the case if the article has both been mailed and posted."
;; There are expirable articles in this group, so we run them
;; through the expiry process.
(gnus-message 6 "Expiring articles...")
(unless (gnus-check-group gnus-newsgroup-name)
(error "Can't open server for %s" gnus-newsgroup-name))
(when (gnus-check-group gnus-newsgroup-name)
;; The list of articles that weren't expired is returned.
(if expiry-wait
......@@ -10313,7 +10313,7 @@ This will be the case if the article has both been mailed and posted."
(assoc article (gnus-data-list nil)))
(gnus-message 6 "Expiring articles...done")))))
(defun gnus-summary-expire-articles-now ()
......@@ -388,57 +388,14 @@ TIME defaults to the current time."
(define-key keymap key (pop plist))
(pop plist)))))
;; Two silly functions to ensure that all `y-or-n-p' questions clear
;; the echo area.
;; Do we really need these functions? Workarounds for bugs in the corresponding
;; Emacs functions? Maybe these bugs are no longer present in any supported
;; (X)Emacs version? Alias them to the original functions and see if anyone
;; reports a problem. If not, replace with original functions. --rsteib,
;; 2007-12-14
;; All supported Emacsen clear the echo area after `yes-or-no-p', so we can
;; remove `yes-or-no-p'. RMS says that not clearing after `y-or-n-p' is
;; intentional (see below), so we could remove `gnus-y-or-n-p' too.
;; Objections? --rsteib, 2008-02-16
;; ,----[ ]
;; | From: Richard Stallman
;; | Subject: Re: Do we need gnus-yes-or-no-p and gnus-y-or-n-p?
;; | To: Katsumi Yamaoka [...]
;; | Cc: emacs-devel@[...], xemacs-beta@[...], ding@[...]
;; | Date: Mon, 07 Jan 2008 12:16:05 -0500
;; | Message-ID: <>
;; |
;; | The behavior of `y-or-n-p' that it doesn't clear the question
;; | and the answer is not serious of course, but I feel it is not
;; | cool.
;; |
;; | It is intentional.
;; |
;; | Currently, it is commented out in the trunk by Reiner Steib. He
;; | also wrote the benefit of leaving the question and the answer in
;; | the echo area as follows:
;; |
;; | (
;; | > In contrast to yes-or-no-p it is much easier to type y, n,
;; | > SPC, DEL, etc accidentally, so it might be useful for the user
;; | > to see what he has typed.
;; |
;; | Yes, that is the reason.
;; `----
;; (defun gnus-y-or-n-p (prompt)
;; (prog1
;; (y-or-n-p prompt)
;; (message "")))
;; (defun gnus-yes-or-no-p (prompt)
;; (prog1
;; (yes-or-no-p prompt)
;; (message "")))
(defalias 'gnus-y-or-n-p 'y-or-n-p)