Merge from trunk.

This commit is contained in:
Bill Wohler 2012-11-25 10:33:16 -08:00
commit a09777fb29
16 changed files with 180 additions and 131 deletions

View file

@ -681,9 +681,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have a working `mmap' system call. */
#undef HAVE_MMAP
/* Define if you have mouse support. */
#undef HAVE_MOUSE
/* Define to 1 if you have the `nanotime' function. */
#undef HAVE_NANOTIME

3
autogen/configure vendored
View file

@ -25494,9 +25494,6 @@ if test "$window_system" != "none"; then
$as_echo "#define HAVE_WINDOW_SYSTEM 1" >>confdefs.h
$as_echo "#define HAVE_MOUSE 1" >>confdefs.h
WINDOW_SYSTEM_OBJ="fontset.o fringe.o image.o"
fi

View file

@ -1,3 +1,14 @@
2012-11-25 Bill Wohler <wohler@newt.com>
Release MH-E manual version 8.4.
* mh-e.texi: (VERSION, EDITION, UPDATED, UPDATE-MONTH, Preface):
Update for release 8.4.
2012-11-25 Paul Eggert <eggert@cs.ucla.edu>
* mh-e.texi (Procmail): Fix two @ typos.
2012-11-24 Paul Eggert <eggert@cs.ucla.edu>
* doclicense.texi, gpl.texi: Update to latest version from FSF.

View file

@ -8,12 +8,12 @@
@c %**end of header
@c Version of the software and manual.
@set VERSION 8.3
@set VERSION 8.4
@c Edition of the manual. It is either empty for the first edition or
@c has the form ", nth Edition" (without the quotes).
@set EDITION
@set UPDATED 2011-09-20
@set UPDATE-MONTH September, 2011
@set UPDATED 2012-11-25
@set UPDATE-MONTH November, 2012
@c Other variables.
@set MH-BOOK-HOME http://rand-mh.sourceforge.net/book/mh
@ -212,7 +212,7 @@ more niceties about GNU Emacs and MH@. Now I'm fully hooked on both of
them.
The MH-E package is distributed with Emacs@footnote{Version
@value{VERSION} of MH-E appeared in Emacs 24.1. It is supported in GNU
@value{VERSION} of MH-E appeared in Emacs 24.4. It is supported in GNU
Emacs 23 and higher, as well as XEmacs 21.4.22 and 21.5.31. MH-E is
known not to work with GNU Emacs versions 20 and below, and XEmacs
version 21.5.9 - 21.5.16. It is compatible with MH versions 6.8.4 and
@ -8525,7 +8525,7 @@ necessary, they are extremely useful.
[12]
[13] # Place mail sent to any MH-E mailing list in +mh-e.
[14] :0 w: mh-e$LOCKEXT
[15] * ^TO.*mh-e-.*@.*sourceforge.net
[15] * ^TO.*mh-e-.*@@.*sourceforge.net
[16] | myrcvstore -create +mh-e
@end smallexample
@ -8631,7 +8631,7 @@ MAILDIR=$HOME/`mhparam Path`
# Place mail sent to the GnuCash mailing list in gnucash.spool, where
# Gnus will pick it up.
:0:
* ^TO.*gnucash.*@.*gnucash.org
* ^TO.*gnucash.*@@.*gnucash.org
gnucash.spool
@end smallexample

View file

@ -87,6 +87,16 @@ spurious warnings about an unused var.
* Lisp changes in Emacs 24.4
** Face changes
*** The `face-spec-set' is now analogous to `setq' for face specs.
Its third arg now accepts values specifying exactly which face spec to
set (defface, custom, or user spec), and it directly sets the relevant
property using the supplied face spec.
*** Face specs set via Custom themes now replace the `defface' spec
rather than inheriting from it (as do face specs set via Customize).
** time-to-seconds is not obsolete any more.
** New function special-form-p.
** Docstrings can be made dynamic by adding a `dynamic-docstring-function'

View file

@ -1,3 +1,47 @@
2012-11-25 Leo Liu <sdl.web@gmail.com>
* textmodes/sgml-mode.el (sgml-tag): Fix indentation for closing tag.
(Bug#12979)
2012-11-24 Vincent Belaïche <vincentb1@users.sourceforge.net>
* textmodes/reftex-parse.el (reftex-parse-from-file): Use variable
reftex-section-info-function in order to be compatible with
Texinfo integration.
* textmodes/reftex.el (reftex-section-pre-regexp)
(reftex-section-post-regexp, reftex-section-info-function): New
variable.
(reftex-compile-variables): Use variables
reftex-section-pre-regexp, reftex-section-post-regexp, and
reftex-section-info-function in order to be compatible with Texinfo integration.
* textmodes/reftex-toc.el (reftex-toc-promote-action): use
reftex-section-pre-regexp variable in order to be compatible with
Texinfo integration.
2012-11-25 Chong Yidong <cyd@gnu.org>
* faces.el: Make face-spec-set more analogous to setq.
(face-spec-set): Change the third arg to specify whether this
function is being called via defface, customize, or a third party.
Set the appropriate symbol properties. Clear the override spec if
setting via Custom. Initialize face if necessary. (Bug#4988)
(face-spec-recalc): Allow theme faces to completely replace the
defface spec, in the same way as custom faces (Bug#8454).
* cus-face.el (custom-declare-face): Move face initialization to
face-spec-set.
(custom-theme-set-faces): Don't initialize the face name here, as
that is now done in face-spec-set.
* cus-edit.el (custom-face-set, custom-face-mark-to-save)
(custom-face-reset-saved, custom-face-mark-to-reset-standard):
Simplify by using the new arg to face-spec-set.
* emacs-lisp/lisp-mode.el (eval-defun-1): When evaluating defface,
reset face-override-spec too, and use custom-declare-face.
2012-11-24 Jan Djärv <jan.h.d@swipnet.se>
* term/ns-win.el (ns-initialize-window-system): Move creation of

View file

@ -3679,15 +3679,10 @@ Optional EVENT is the location for the menu."
(setq comment nil)
;; Make the comment invisible by hand if it's empty
(custom-comment-hide comment-widget))
(put symbol 'customized-face value)
(custom-push-theme 'theme-face symbol 'user 'set value)
(if (face-spec-choose value)
(face-spec-set symbol value t)
;; face-set-spec ignores empty attribute lists, so just give it
;; something harmless instead.
(face-spec-set symbol '((t :foreground unspecified)) t))
(put symbol 'customized-face-comment comment)
(face-spec-set symbol value 'customized-face)
(put symbol 'face-comment comment)
(put symbol 'customized-face-comment comment)
(custom-face-state-set widget)
(custom-redraw-magic widget)))
@ -3696,20 +3691,14 @@ Optional EVENT is the location for the menu."
(let* ((symbol (widget-value widget))
(value (custom-face-widget-to-spec widget))
(comment-widget (widget-get widget :comment-widget))
(comment (widget-value comment-widget)))
(comment (widget-value comment-widget))
(standard (eq (widget-get widget :custom-state) 'standard)))
(when (equal comment "")
(setq comment nil)
;; Make the comment invisible by hand if it's empty
(custom-comment-hide comment-widget))
(custom-push-theme 'theme-face symbol 'user 'set value)
(if (face-spec-choose value)
(face-spec-set symbol value t)
;; face-set-spec ignores empty attribute lists, so just give it
;; something harmless instead.
(face-spec-set symbol '((t :foreground unspecified)) t))
(unless (eq (widget-get widget :custom-state) 'standard)
(put symbol 'saved-face value))
(put symbol 'customized-face nil)
(face-spec-set symbol value (if standard 'reset 'saved-face))
(put symbol 'face-comment comment)
(put symbol 'customized-face-comment nil)
(put symbol 'saved-face-comment comment)))
@ -3738,13 +3727,12 @@ uncustomized (themed or standard) face."
(saved-face (get face 'saved-face))
(comment (get face 'saved-face-comment))
(comment-widget (widget-get widget :comment-widget)))
(put face 'customized-face nil)
(put face 'customized-face-comment nil)
(custom-push-theme 'theme-face face 'user
(if saved-face 'set 'reset)
saved-face)
(face-spec-set face saved-face t)
(face-spec-set face saved-face 'saved-face)
(put face 'face-comment comment)
(put face 'customized-face-comment nil)
(widget-value-set child saved-face)
;; This call manages the comment visibility
(widget-value-set comment-widget (or comment ""))
@ -3764,11 +3752,10 @@ redraw the widget immediately."
(comment-widget (widget-get widget :comment-widget)))
(unless value
(user-error "No standard setting for this face"))
(put symbol 'customized-face nil)
(put symbol 'customized-face-comment nil)
(custom-push-theme 'theme-face symbol 'user 'reset)
(face-spec-set symbol value t)
(custom-theme-recalc-face symbol)
(face-spec-set symbol value 'reset)
(put symbol 'face-comment nil)
(put symbol 'customized-face-comment nil)
(if (and custom-reset-standard-faces-list
(or (get symbol 'saved-face) (get symbol 'saved-face-comment)))
;; Do this later.
@ -3784,7 +3771,6 @@ redraw the widget immediately."
(put symbol 'saved-face nil)
(put symbol 'saved-face-comment nil)
(custom-save-all))
(put symbol 'face-comment nil)
(widget-value-set child
(custom-pre-filter-face-spec
(list (list t (custom-face-attributes-get

View file

@ -32,35 +32,14 @@
;;; Declaring a face.
(defun custom-declare-face (face spec doc &rest args)
"Like `defface', but FACE is evaluated as a normal argument."
"Like `defface', but with FACE evaluated as a normal argument."
(unless (get face 'face-defface-spec)
(let ((facep (facep face)))
(unless facep
;; If the user has already created the face, respect that.
(let ((value (or (get face 'saved-face) spec))
(have-window-system (memq initial-window-system '(x w32))))
;; Create global face.
(make-empty-face face)
;; Create frame-local faces
(dolist (frame (frame-list))
(face-spec-set-2 face frame value)
(when (memq (window-system frame) '(x w32 ns))
(setq have-window-system t)))
;; When making a face after frames already exist
(if have-window-system
(make-face-x-resource-internal face))))
;; Don't record SPEC until we see it causes no errors.
(put face 'face-defface-spec (purecopy spec))
(push (cons 'defface face) current-load-list)
(when (and doc (null (face-documentation face)))
(set-face-documentation face (purecopy doc)))
(custom-handle-all-keywords face args 'custom-face)
(run-hooks 'custom-define-hook)
;; If the face had existing settings, recalculate it. For
;; example, the user might load a theme with a face setting, and
;; later load a library defining that face.
(if facep
(custom-theme-recalc-face face))))
(face-spec-set face (purecopy spec) 'face-defface-spec)
(push (cons 'defface face) current-load-list)
(when doc
(set-face-documentation face (purecopy doc)))
(custom-handle-all-keywords face args 'custom-face)
(run-hooks 'custom-define-hook))
face)
;;; Face attributes.
@ -343,10 +322,7 @@ Several properties of THEME and FACE are used in the process:
If THEME property `theme-immediate' is non-nil, this is equivalent of
providing the NOW argument to all faces in the argument list: FACE is
created now. The only difference is FACE property `force-face': if NOW
is non-nil, FACE property `force-face' is set to the symbol `rogue', else
if THEME property `theme-immediate' is non-nil, FACE property `force-face'
is set to the symbol `immediate'.
created now.
SPEC itself is saved in FACE property `saved-face' and it is stored in
FACE's list property `theme-face' \(using `custom-push-theme')."
@ -371,15 +347,11 @@ FACE's list property `theme-face' \(using `custom-push-theme')."
(when (not (and oldspec (eq 'user (caar oldspec))))
(put face 'saved-face spec)
(put face 'saved-face-comment comment))
;; Do this AFTER checking the `theme-face' property.
(custom-push-theme 'theme-face face theme 'set spec)
(when (or now immediate)
(put face 'force-face (if now 'rogue 'immediate)))
(when (or now immediate (facep face))
(unless (facep face)
(make-empty-face face))
(put face 'face-comment comment)
(put face 'face-override-spec nil)
(face-spec-set face spec t))))))))
;; XEmacs compatibility function. In XEmacs, when you reset a Custom

View file

@ -847,21 +847,8 @@ Reinitialize the face according to the `defface' specification."
(setq face-new-frame-defaults
(assq-delete-all face-symbol face-new-frame-defaults))
(put face-symbol 'face-defface-spec nil)
(put face-symbol 'face-documentation (nth 3 form))
;; Setting `customized-face' to the new spec after calling
;; the form, but preserving the old saved spec in `saved-face',
;; imitates the situation when the new face spec is set
;; temporarily for the current session in the customize
;; buffer, thus allowing `face-user-default-spec' to use the
;; new customized spec instead of the saved spec.
;; Resetting `saved-face' temporarily to nil is needed to let
;; `defface' change the spec, regardless of a saved spec.
(prog1 `(prog1 ,form
(put ,(nth 1 form) 'saved-face
',(get face-symbol 'saved-face))
(put ,(nth 1 form) 'customized-face
,(nth 2 form)))
(put face-symbol 'saved-face nil))))
(put face-symbol 'face-override-spec nil))
form)
((eq (car form) 'progn)
(cons 'progn (mapcar 'eval-defun-1 (cdr form))))
(t form)))

View file

@ -1587,44 +1587,79 @@ If SPEC is nil, return nil."
(mapcar (lambda (x) (list (car x) 'unspecified))
face-attribute-name-alist)))))
(defun face-spec-set (face spec &optional for-defface)
"Set and apply the face spec for FACE.
If the optional argument FOR-DEFFACE is omitted or nil, set the
overriding spec to SPEC, recording it in the `face-override-spec'
property of FACE. See `defface' for the format of SPEC.
(defun face-spec-set (face spec &optional spec-type)
"Set the face spec SPEC for FACE.
See `defface' for the format of SPEC.
If FOR-DEFFACE is non-nil, set the base spec (the one set by
`defface' and Custom). In this case, SPEC is ignored; the caller
is responsible for putting the face spec in the `saved-face',
`customized-face', or `face-defface-spec', as appropriate.
The appearance of each face is controlled by its spec, and by the
internal face attributes (which can be frame-specific and can be
set via `set-face-attribute').
The appearance of FACE is controlled by the base spec, by any
custom theme specs on top of that, and by the overriding spec on
top of all the rest."
(if for-defface
;; When we reset the face based on its custom spec, then it is
;; unmodified as far as Custom is concerned.
(put (or (get face 'face-alias) face) 'face-modified nil)
;; When we change a face based on a spec from outside custom,
;; record it for future frames.
(put (or (get face 'face-alias) face) 'face-override-spec spec))
;; Reset each frame according to the rules implied by all its specs.
(dolist (frame (frame-list))
(face-spec-recalc face frame)))
The argument SPEC-TYPE determines which spec to set:
nil or `face-override-spec' means the override spec (which is
usually what you want if calling this function outside of
Custom code);
`customized-face' or `saved-face' means the customized spec or
the saved custom spec;
`face-defface-spec' means the default spec
(usually set only via `defface');
`reset' means to ignore SPEC, but clear the `customized-face'
and `face-override-spec' specs;
Any other value means not to set any spec, but to run the
function for its other effects.
In addition to setting the face spec, this function defines FACE
as a valid face name if it is not already one, and (re)calculates
the face's attributes on existing frames."
(if (get face 'face-alias)
(setq face (get face 'face-alias)))
;; Save SPEC to the relevant symbol property.
(unless spec-type
(setq spec-type 'face-override-spec))
(if (memq spec-type '(face-defface-spec face-override-spec
customized-face saved-face))
(put face spec-type spec))
(if (memq spec-type '(reset saved-face))
(put face 'customized-face nil))
;; Setting the face spec via Custom empties out any override spec,
;; similar to how setting a variable via Custom changes its valus.
(if (memq spec-type '(customized-face saved-face reset))
(put face 'face-override-spec nil))
;; If we reset the face based on its custom spec, it is unmodified
;; as far as Custom is concerned.
(unless (eq face 'face-override-spec)
(put face 'face-modified nil))
(if (facep face)
;; If the face already exists, recalculate it.
(dolist (frame (frame-list))
(face-spec-recalc face frame))
;; Otherwise, initialize it on all frames.
(make-empty-face face)
(let ((value (face-user-default-spec face))
(have-window-system (memq initial-window-system '(x w32 ns))))
(dolist (frame (frame-list))
(face-spec-set-2 face frame value)
(when (memq (window-system frame) '(x w32 ns))
(setq have-window-system t)))
(if have-window-system
(make-face-x-resource-internal face)))))
(defun face-spec-recalc (face frame)
"Reset the face attributes of FACE on FRAME according to its specs.
This applies the defface/custom spec first, then the custom theme specs,
then the override spec."
(while (get face 'face-alias)
(setq face (get face 'face-alias)))
(face-spec-reset-face face frame)
(let ((face-sym (or (get face 'face-alias) face)))
(or (get face 'customized-face)
(get face 'saved-face)
(face-spec-set-2 face frame (face-default-spec face)))
(let ((theme-faces (reverse (get face-sym 'theme-face))))
(dolist (spec theme-faces)
(face-spec-set-2 face frame (cadr spec))))
(face-spec-set-2 face frame (get face-sym 'face-override-spec))))
;; If FACE is customized or themed, set the custom spec from
;; `theme-face' records, which completely replace the defface spec
;; rather than inheriting from it.
(let ((theme-faces (get face 'theme-face)))
(if theme-faces
(dolist (spec (reverse theme-faces))
(face-spec-set-2 face frame (cadr spec)))
(face-spec-set-2 face frame (face-default-spec face))))
(face-spec-set-2 face frame (get face 'face-override-spec)))
(defun face-spec-set-2 (face frame spec)
"Set the face attributes of FACE on FRAME according to SPEC."

View file

@ -251,7 +251,7 @@ of master file."
;; the next parsing iteration.
(when (eq (char-before) ?\\) (backward-char))
;; Insert in List
(setq toc-entry (reftex-section-info file))
(setq toc-entry (funcall reftex-section-info-function file))
(when toc-entry
;; It can happen that section info returns nil
(setq level (nth 5 toc-entry))

View file

@ -785,7 +785,7 @@ PRO-OR-DE is assumed to be dynamically scoped into this function."
(marker (nth 4 data)))
(with-current-buffer (marker-buffer marker)
(goto-char (marker-position marker))
(if (looking-at (concat "\\([ \t]*\\\\\\)" (regexp-quote name)))
(if (looking-at (concat "\\([ \t]*" reftex-section-pre-regexp "\\)" (regexp-quote name)))
(replace-match (concat "\\1" newname))
(error "Fatal error during %smotion" pro-or-de)))))

View file

@ -301,7 +301,9 @@ on the menu bar.
(modify-syntax-entry ?\' "." reftex-syntax-table-for-bib)
(modify-syntax-entry ?\" "." reftex-syntax-table-for-bib)
(modify-syntax-entry ?\[ "." reftex-syntax-table-for-bib)
(modify-syntax-entry ?\] "." reftex-syntax-table-for-bib))
(modify-syntax-entry ?\] "." reftex-syntax-table-for-bib)
(run-hooks 'reftex-mode-hook))
;; Mode was turned off
(easy-menu-remove reftex-mode-menu)))
@ -664,6 +666,16 @@ will deactivate it."
(defvar reftex-find-label-regexp-format nil)
(defvar reftex-find-label-regexp-format2 nil)
;; Constants for making RefTeX open to Texinfo hooking
(defvar reftex-section-pre-regexp "\\\\")
;; Including `\' as a character to be matched at the end of the regexp
;; will allow stuff like \begin{foo}\label{bar} to be matched. This
;; will make the parser to advance one char too much. Therefore
;; `reftex-parse-from-file' will step one char back if a section is
;; found.
(defvar reftex-section-post-regexp "\\*?\\(\\[[^]]*\\]\\)?[[{ \t\r\n\\]")
(defvar reftex-section-info-function 'reftex-section-info)
(defvar reftex-memory nil
"Memorizes old variable values to indicate changes in these variables.")
@ -1083,16 +1095,10 @@ This enforces rescanning the buffer on next use."
reftex-include-file-commands "\\|")
"\\)[{ \t]+\\([^} \t\n\r]+\\)"))
(section-re
;; Including `\' as a character to be matched at the end
;; of the regexp will allow stuff like
;; \begin{foo}\label{bar} to be matched. This will make
;; the parser to advance one char too much. Therefore
;; `reftex-parse-from-file' will step one char back if a
;; section is found.
(concat wbol "\\\\\\("
(concat wbol reftex-section-pre-regexp "\\("
(mapconcat (lambda (x) (regexp-quote (car x)))
reftex-section-levels-all "\\|")
"\\)\\*?\\(\\[[^]]*\\]\\)?[[{ \t\r\n\\]"))
"\\)" reftex-section-post-regexp))
(appendix-re (concat wbol "\\(\\\\appendix\\)"))
(macro-re
(if macros-with-labels

View file

@ -671,13 +671,13 @@ in your `.emacs':
(if (eq v2 t) (setq v2 nil))
;; We use `identity' to prevent skeleton from passing
;; `str' through `skeleton-transformation-function' a second time.
'(("") v2 _ v2 "</" (identity ',str) ?>))
'(("") v2 _ v2 "</" (identity ',str) ?> >))
((eq (car v2) t)
(cons '("") (cdr v2)))
(t
(append '(("") (car v2))
(cdr v2)
'(resume: (car v2) _ "</" (identity ',str) ?>))))))
'(resume: (car v2) _ "</" (identity ',str) ?> >))))))
(autoload 'skeleton-read "skeleton")

View file

@ -1,3 +1,7 @@
2012-11-25 Paul Eggert <eggert@cs.ucla.edu>
* sysdep.c (sys_subshell): Don't assume pid_t fits in int.
2012-11-24 Ken Brown <kbrown@cornell.edu>
* keyboard.c (HAVE_MOUSE):

View file

@ -453,7 +453,7 @@ sys_subshell (void)
int st;
char oldwd[MAXPATHLEN+1]; /* Fixed length is safe on MSDOS. */
#endif
int pid;
pid_t pid;
struct save_signal saved_handlers[5];
Lisp_Object dir;
unsigned char *volatile str_volatile = 0;