diff options
| -rw-r--r-- | autogen/config.in | 3 | ||||
| -rwxr-xr-x | autogen/configure | 3 | ||||
| -rw-r--r-- | doc/misc/ChangeLog | 11 | ||||
| -rw-r--r-- | doc/misc/mh-e.texi | 12 | ||||
| -rw-r--r-- | etc/NEWS | 10 | ||||
| -rw-r--r-- | lisp/ChangeLog | 44 | ||||
| -rw-r--r-- | lisp/cus-edit.el | 34 | ||||
| -rw-r--r-- | lisp/cus-face.el | 44 | ||||
| -rw-r--r-- | lisp/emacs-lisp/lisp-mode.el | 17 | ||||
| -rw-r--r-- | lisp/faces.el | 99 | ||||
| -rw-r--r-- | lisp/textmodes/reftex-parse.el | 2 | ||||
| -rw-r--r-- | lisp/textmodes/reftex-toc.el | 2 | ||||
| -rw-r--r-- | lisp/textmodes/reftex.el | 24 | ||||
| -rw-r--r-- | lisp/textmodes/sgml-mode.el | 4 | ||||
| -rw-r--r-- | src/ChangeLog | 4 | ||||
| -rw-r--r-- | src/sysdep.c | 2 |
16 files changed, 182 insertions, 133 deletions
diff --git a/autogen/config.in b/autogen/config.in index c0fb1f34bf4..487fe9160e2 100644 --- a/autogen/config.in +++ b/autogen/config.in | |||
| @@ -681,9 +681,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 681 | /* Define to 1 if you have a working `mmap' system call. */ | 681 | /* Define to 1 if you have a working `mmap' system call. */ |
| 682 | #undef HAVE_MMAP | 682 | #undef HAVE_MMAP |
| 683 | 683 | ||
| 684 | /* Define if you have mouse support. */ | ||
| 685 | #undef HAVE_MOUSE | ||
| 686 | |||
| 687 | /* Define to 1 if you have the `nanotime' function. */ | 684 | /* Define to 1 if you have the `nanotime' function. */ |
| 688 | #undef HAVE_NANOTIME | 685 | #undef HAVE_NANOTIME |
| 689 | 686 | ||
diff --git a/autogen/configure b/autogen/configure index fbb2efbc860..4571c89b85a 100755 --- a/autogen/configure +++ b/autogen/configure | |||
| @@ -25494,9 +25494,6 @@ if test "$window_system" != "none"; then | |||
| 25494 | 25494 | ||
| 25495 | $as_echo "#define HAVE_WINDOW_SYSTEM 1" >>confdefs.h | 25495 | $as_echo "#define HAVE_WINDOW_SYSTEM 1" >>confdefs.h |
| 25496 | 25496 | ||
| 25497 | |||
| 25498 | $as_echo "#define HAVE_MOUSE 1" >>confdefs.h | ||
| 25499 | |||
| 25500 | WINDOW_SYSTEM_OBJ="fontset.o fringe.o image.o" | 25497 | WINDOW_SYSTEM_OBJ="fontset.o fringe.o image.o" |
| 25501 | fi | 25498 | fi |
| 25502 | 25499 | ||
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 3284e7b92c8..076dfd2bac5 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | 2012-11-25 Bill Wohler <wohler@newt.com> | ||
| 2 | |||
| 3 | Release MH-E manual version 8.4. | ||
| 4 | |||
| 5 | * mh-e.texi: (VERSION, EDITION, UPDATED, UPDATE-MONTH, Preface): | ||
| 6 | Update for release 8.4. | ||
| 7 | |||
| 8 | 2012-11-25 Paul Eggert <eggert@cs.ucla.edu> | ||
| 9 | |||
| 10 | * mh-e.texi (Procmail): Fix two @ typos. | ||
| 11 | |||
| 1 | 2012-11-24 Paul Eggert <eggert@cs.ucla.edu> | 12 | 2012-11-24 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 13 | ||
| 3 | * doclicense.texi, gpl.texi: Update to latest version from FSF. | 14 | * doclicense.texi, gpl.texi: Update to latest version from FSF. |
diff --git a/doc/misc/mh-e.texi b/doc/misc/mh-e.texi index 2ae0ed7ffce..08ef9e484b5 100644 --- a/doc/misc/mh-e.texi +++ b/doc/misc/mh-e.texi | |||
| @@ -8,12 +8,12 @@ | |||
| 8 | @c %**end of header | 8 | @c %**end of header |
| 9 | 9 | ||
| 10 | @c Version of the software and manual. | 10 | @c Version of the software and manual. |
| 11 | @set VERSION 8.3 | 11 | @set VERSION 8.4 |
| 12 | @c Edition of the manual. It is either empty for the first edition or | 12 | @c Edition of the manual. It is either empty for the first edition or |
| 13 | @c has the form ", nth Edition" (without the quotes). | 13 | @c has the form ", nth Edition" (without the quotes). |
| 14 | @set EDITION | 14 | @set EDITION |
| 15 | @set UPDATED 2011-09-20 | 15 | @set UPDATED 2012-11-25 |
| 16 | @set UPDATE-MONTH September, 2011 | 16 | @set UPDATE-MONTH November, 2012 |
| 17 | 17 | ||
| 18 | @c Other variables. | 18 | @c Other variables. |
| 19 | @set MH-BOOK-HOME http://rand-mh.sourceforge.net/book/mh | 19 | @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 | |||
| 212 | them. | 212 | them. |
| 213 | 213 | ||
| 214 | The MH-E package is distributed with Emacs@footnote{Version | 214 | The MH-E package is distributed with Emacs@footnote{Version |
| 215 | @value{VERSION} of MH-E appeared in Emacs 24.1. It is supported in GNU | 215 | @value{VERSION} of MH-E appeared in Emacs 24.4. It is supported in GNU |
| 216 | Emacs 23 and higher, as well as XEmacs 21.4.22 and 21.5.31. MH-E is | 216 | Emacs 23 and higher, as well as XEmacs 21.4.22 and 21.5.31. MH-E is |
| 217 | known not to work with GNU Emacs versions 20 and below, and XEmacs | 217 | known not to work with GNU Emacs versions 20 and below, and XEmacs |
| 218 | version 21.5.9 - 21.5.16. It is compatible with MH versions 6.8.4 and | 218 | 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. | |||
| 8525 | [12] | 8525 | [12] |
| 8526 | [13] # Place mail sent to any MH-E mailing list in +mh-e. | 8526 | [13] # Place mail sent to any MH-E mailing list in +mh-e. |
| 8527 | [14] :0 w: mh-e$LOCKEXT | 8527 | [14] :0 w: mh-e$LOCKEXT |
| 8528 | [15] * ^TO.*mh-e-.*@.*sourceforge.net | 8528 | [15] * ^TO.*mh-e-.*@@.*sourceforge.net |
| 8529 | [16] | myrcvstore -create +mh-e | 8529 | [16] | myrcvstore -create +mh-e |
| 8530 | @end smallexample | 8530 | @end smallexample |
| 8531 | 8531 | ||
| @@ -8631,7 +8631,7 @@ MAILDIR=$HOME/`mhparam Path` | |||
| 8631 | # Place mail sent to the GnuCash mailing list in gnucash.spool, where | 8631 | # Place mail sent to the GnuCash mailing list in gnucash.spool, where |
| 8632 | # Gnus will pick it up. | 8632 | # Gnus will pick it up. |
| 8633 | :0: | 8633 | :0: |
| 8634 | * ^TO.*gnucash.*@.*gnucash.org | 8634 | * ^TO.*gnucash.*@@.*gnucash.org |
| 8635 | gnucash.spool | 8635 | gnucash.spool |
| 8636 | @end smallexample | 8636 | @end smallexample |
| 8637 | 8637 | ||
| @@ -87,6 +87,16 @@ spurious warnings about an unused var. | |||
| 87 | 87 | ||
| 88 | * Lisp changes in Emacs 24.4 | 88 | * Lisp changes in Emacs 24.4 |
| 89 | 89 | ||
| 90 | ** Face changes | ||
| 91 | |||
| 92 | *** The `face-spec-set' is now analogous to `setq' for face specs. | ||
| 93 | Its third arg now accepts values specifying exactly which face spec to | ||
| 94 | set (defface, custom, or user spec), and it directly sets the relevant | ||
| 95 | property using the supplied face spec. | ||
| 96 | |||
| 97 | *** Face specs set via Custom themes now replace the `defface' spec | ||
| 98 | rather than inheriting from it (as do face specs set via Customize). | ||
| 99 | |||
| 90 | ** time-to-seconds is not obsolete any more. | 100 | ** time-to-seconds is not obsolete any more. |
| 91 | ** New function special-form-p. | 101 | ** New function special-form-p. |
| 92 | ** Docstrings can be made dynamic by adding a `dynamic-docstring-function' | 102 | ** Docstrings can be made dynamic by adding a `dynamic-docstring-function' |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 37291cfa774..9e403af6416 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,47 @@ | |||
| 1 | 2012-11-25 Leo Liu <sdl.web@gmail.com> | ||
| 2 | |||
| 3 | * textmodes/sgml-mode.el (sgml-tag): Fix indentation for closing tag. | ||
| 4 | (Bug#12979) | ||
| 5 | |||
| 6 | 2012-11-24 Vincent Belaïche <vincentb1@users.sourceforge.net> | ||
| 7 | |||
| 8 | * textmodes/reftex-parse.el (reftex-parse-from-file): Use variable | ||
| 9 | reftex-section-info-function in order to be compatible with | ||
| 10 | Texinfo integration. | ||
| 11 | |||
| 12 | * textmodes/reftex.el (reftex-section-pre-regexp) | ||
| 13 | (reftex-section-post-regexp, reftex-section-info-function): New | ||
| 14 | variable. | ||
| 15 | (reftex-compile-variables): Use variables | ||
| 16 | reftex-section-pre-regexp, reftex-section-post-regexp, and | ||
| 17 | reftex-section-info-function in order to be compatible with Texinfo integration. | ||
| 18 | |||
| 19 | * textmodes/reftex-toc.el (reftex-toc-promote-action): use | ||
| 20 | reftex-section-pre-regexp variable in order to be compatible with | ||
| 21 | Texinfo integration. | ||
| 22 | |||
| 23 | 2012-11-25 Chong Yidong <cyd@gnu.org> | ||
| 24 | |||
| 25 | * faces.el: Make face-spec-set more analogous to setq. | ||
| 26 | (face-spec-set): Change the third arg to specify whether this | ||
| 27 | function is being called via defface, customize, or a third party. | ||
| 28 | Set the appropriate symbol properties. Clear the override spec if | ||
| 29 | setting via Custom. Initialize face if necessary. (Bug#4988) | ||
| 30 | (face-spec-recalc): Allow theme faces to completely replace the | ||
| 31 | defface spec, in the same way as custom faces (Bug#8454). | ||
| 32 | |||
| 33 | * cus-face.el (custom-declare-face): Move face initialization to | ||
| 34 | face-spec-set. | ||
| 35 | (custom-theme-set-faces): Don't initialize the face name here, as | ||
| 36 | that is now done in face-spec-set. | ||
| 37 | |||
| 38 | * cus-edit.el (custom-face-set, custom-face-mark-to-save) | ||
| 39 | (custom-face-reset-saved, custom-face-mark-to-reset-standard): | ||
| 40 | Simplify by using the new arg to face-spec-set. | ||
| 41 | |||
| 42 | * emacs-lisp/lisp-mode.el (eval-defun-1): When evaluating defface, | ||
| 43 | reset face-override-spec too, and use custom-declare-face. | ||
| 44 | |||
| 1 | 2012-11-24 Jan Djärv <jan.h.d@swipnet.se> | 45 | 2012-11-24 Jan Djärv <jan.h.d@swipnet.se> |
| 2 | 46 | ||
| 3 | * term/ns-win.el (ns-initialize-window-system): Move creation of | 47 | * term/ns-win.el (ns-initialize-window-system): Move creation of |
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 8e06b16bd12..69e694bd14e 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el | |||
| @@ -3679,15 +3679,10 @@ Optional EVENT is the location for the menu." | |||
| 3679 | (setq comment nil) | 3679 | (setq comment nil) |
| 3680 | ;; Make the comment invisible by hand if it's empty | 3680 | ;; Make the comment invisible by hand if it's empty |
| 3681 | (custom-comment-hide comment-widget)) | 3681 | (custom-comment-hide comment-widget)) |
| 3682 | (put symbol 'customized-face value) | ||
| 3683 | (custom-push-theme 'theme-face symbol 'user 'set value) | 3682 | (custom-push-theme 'theme-face symbol 'user 'set value) |
| 3684 | (if (face-spec-choose value) | 3683 | (face-spec-set symbol value 'customized-face) |
| 3685 | (face-spec-set symbol value t) | ||
| 3686 | ;; face-set-spec ignores empty attribute lists, so just give it | ||
| 3687 | ;; something harmless instead. | ||
| 3688 | (face-spec-set symbol '((t :foreground unspecified)) t)) | ||
| 3689 | (put symbol 'customized-face-comment comment) | ||
| 3690 | (put symbol 'face-comment comment) | 3684 | (put symbol 'face-comment comment) |
| 3685 | (put symbol 'customized-face-comment comment) | ||
| 3691 | (custom-face-state-set widget) | 3686 | (custom-face-state-set widget) |
| 3692 | (custom-redraw-magic widget))) | 3687 | (custom-redraw-magic widget))) |
| 3693 | 3688 | ||
| @@ -3696,20 +3691,14 @@ Optional EVENT is the location for the menu." | |||
| 3696 | (let* ((symbol (widget-value widget)) | 3691 | (let* ((symbol (widget-value widget)) |
| 3697 | (value (custom-face-widget-to-spec widget)) | 3692 | (value (custom-face-widget-to-spec widget)) |
| 3698 | (comment-widget (widget-get widget :comment-widget)) | 3693 | (comment-widget (widget-get widget :comment-widget)) |
| 3699 | (comment (widget-value comment-widget))) | 3694 | (comment (widget-value comment-widget)) |
| 3695 | (standard (eq (widget-get widget :custom-state) 'standard))) | ||
| 3700 | (when (equal comment "") | 3696 | (when (equal comment "") |
| 3701 | (setq comment nil) | 3697 | (setq comment nil) |
| 3702 | ;; Make the comment invisible by hand if it's empty | 3698 | ;; Make the comment invisible by hand if it's empty |
| 3703 | (custom-comment-hide comment-widget)) | 3699 | (custom-comment-hide comment-widget)) |
| 3704 | (custom-push-theme 'theme-face symbol 'user 'set value) | 3700 | (custom-push-theme 'theme-face symbol 'user 'set value) |
| 3705 | (if (face-spec-choose value) | 3701 | (face-spec-set symbol value (if standard 'reset 'saved-face)) |
| 3706 | (face-spec-set symbol value t) | ||
| 3707 | ;; face-set-spec ignores empty attribute lists, so just give it | ||
| 3708 | ;; something harmless instead. | ||
| 3709 | (face-spec-set symbol '((t :foreground unspecified)) t)) | ||
| 3710 | (unless (eq (widget-get widget :custom-state) 'standard) | ||
| 3711 | (put symbol 'saved-face value)) | ||
| 3712 | (put symbol 'customized-face nil) | ||
| 3713 | (put symbol 'face-comment comment) | 3702 | (put symbol 'face-comment comment) |
| 3714 | (put symbol 'customized-face-comment nil) | 3703 | (put symbol 'customized-face-comment nil) |
| 3715 | (put symbol 'saved-face-comment comment))) | 3704 | (put symbol 'saved-face-comment comment))) |
| @@ -3738,13 +3727,12 @@ uncustomized (themed or standard) face." | |||
| 3738 | (saved-face (get face 'saved-face)) | 3727 | (saved-face (get face 'saved-face)) |
| 3739 | (comment (get face 'saved-face-comment)) | 3728 | (comment (get face 'saved-face-comment)) |
| 3740 | (comment-widget (widget-get widget :comment-widget))) | 3729 | (comment-widget (widget-get widget :comment-widget))) |
| 3741 | (put face 'customized-face nil) | ||
| 3742 | (put face 'customized-face-comment nil) | ||
| 3743 | (custom-push-theme 'theme-face face 'user | 3730 | (custom-push-theme 'theme-face face 'user |
| 3744 | (if saved-face 'set 'reset) | 3731 | (if saved-face 'set 'reset) |
| 3745 | saved-face) | 3732 | saved-face) |
| 3746 | (face-spec-set face saved-face t) | 3733 | (face-spec-set face saved-face 'saved-face) |
| 3747 | (put face 'face-comment comment) | 3734 | (put face 'face-comment comment) |
| 3735 | (put face 'customized-face-comment nil) | ||
| 3748 | (widget-value-set child saved-face) | 3736 | (widget-value-set child saved-face) |
| 3749 | ;; This call manages the comment visibility | 3737 | ;; This call manages the comment visibility |
| 3750 | (widget-value-set comment-widget (or comment "")) | 3738 | (widget-value-set comment-widget (or comment "")) |
| @@ -3764,11 +3752,10 @@ redraw the widget immediately." | |||
| 3764 | (comment-widget (widget-get widget :comment-widget))) | 3752 | (comment-widget (widget-get widget :comment-widget))) |
| 3765 | (unless value | 3753 | (unless value |
| 3766 | (user-error "No standard setting for this face")) | 3754 | (user-error "No standard setting for this face")) |
| 3767 | (put symbol 'customized-face nil) | ||
| 3768 | (put symbol 'customized-face-comment nil) | ||
| 3769 | (custom-push-theme 'theme-face symbol 'user 'reset) | 3755 | (custom-push-theme 'theme-face symbol 'user 'reset) |
| 3770 | (face-spec-set symbol value t) | 3756 | (face-spec-set symbol value 'reset) |
| 3771 | (custom-theme-recalc-face symbol) | 3757 | (put symbol 'face-comment nil) |
| 3758 | (put symbol 'customized-face-comment nil) | ||
| 3772 | (if (and custom-reset-standard-faces-list | 3759 | (if (and custom-reset-standard-faces-list |
| 3773 | (or (get symbol 'saved-face) (get symbol 'saved-face-comment))) | 3760 | (or (get symbol 'saved-face) (get symbol 'saved-face-comment))) |
| 3774 | ;; Do this later. | 3761 | ;; Do this later. |
| @@ -3784,7 +3771,6 @@ redraw the widget immediately." | |||
| 3784 | (put symbol 'saved-face nil) | 3771 | (put symbol 'saved-face nil) |
| 3785 | (put symbol 'saved-face-comment nil) | 3772 | (put symbol 'saved-face-comment nil) |
| 3786 | (custom-save-all)) | 3773 | (custom-save-all)) |
| 3787 | (put symbol 'face-comment nil) | ||
| 3788 | (widget-value-set child | 3774 | (widget-value-set child |
| 3789 | (custom-pre-filter-face-spec | 3775 | (custom-pre-filter-face-spec |
| 3790 | (list (list t (custom-face-attributes-get | 3776 | (list (list t (custom-face-attributes-get |
diff --git a/lisp/cus-face.el b/lisp/cus-face.el index 06fd10149d3..bf18c917cff 100644 --- a/lisp/cus-face.el +++ b/lisp/cus-face.el | |||
| @@ -32,35 +32,14 @@ | |||
| 32 | ;;; Declaring a face. | 32 | ;;; Declaring a face. |
| 33 | 33 | ||
| 34 | (defun custom-declare-face (face spec doc &rest args) | 34 | (defun custom-declare-face (face spec doc &rest args) |
| 35 | "Like `defface', but FACE is evaluated as a normal argument." | 35 | "Like `defface', but with FACE evaluated as a normal argument." |
| 36 | (unless (get face 'face-defface-spec) | 36 | (unless (get face 'face-defface-spec) |
| 37 | (let ((facep (facep face))) | 37 | (face-spec-set face (purecopy spec) 'face-defface-spec) |
| 38 | (unless facep | 38 | (push (cons 'defface face) current-load-list) |
| 39 | ;; If the user has already created the face, respect that. | 39 | (when doc |
| 40 | (let ((value (or (get face 'saved-face) spec)) | 40 | (set-face-documentation face (purecopy doc))) |
| 41 | (have-window-system (memq initial-window-system '(x w32)))) | 41 | (custom-handle-all-keywords face args 'custom-face) |
| 42 | ;; Create global face. | 42 | (run-hooks 'custom-define-hook)) |
| 43 | (make-empty-face face) | ||
| 44 | ;; Create frame-local faces | ||
| 45 | (dolist (frame (frame-list)) | ||
| 46 | (face-spec-set-2 face frame value) | ||
| 47 | (when (memq (window-system frame) '(x w32 ns)) | ||
| 48 | (setq have-window-system t))) | ||
| 49 | ;; When making a face after frames already exist | ||
| 50 | (if have-window-system | ||
| 51 | (make-face-x-resource-internal face)))) | ||
| 52 | ;; Don't record SPEC until we see it causes no errors. | ||
| 53 | (put face 'face-defface-spec (purecopy spec)) | ||
| 54 | (push (cons 'defface face) current-load-list) | ||
| 55 | (when (and doc (null (face-documentation face))) | ||
| 56 | (set-face-documentation face (purecopy doc))) | ||
| 57 | (custom-handle-all-keywords face args 'custom-face) | ||
| 58 | (run-hooks 'custom-define-hook) | ||
| 59 | ;; If the face had existing settings, recalculate it. For | ||
| 60 | ;; example, the user might load a theme with a face setting, and | ||
| 61 | ;; later load a library defining that face. | ||
| 62 | (if facep | ||
| 63 | (custom-theme-recalc-face face)))) | ||
| 64 | face) | 43 | face) |
| 65 | 44 | ||
| 66 | ;;; Face attributes. | 45 | ;;; Face attributes. |
| @@ -343,10 +322,7 @@ Several properties of THEME and FACE are used in the process: | |||
| 343 | 322 | ||
| 344 | If THEME property `theme-immediate' is non-nil, this is equivalent of | 323 | If THEME property `theme-immediate' is non-nil, this is equivalent of |
| 345 | providing the NOW argument to all faces in the argument list: FACE is | 324 | providing the NOW argument to all faces in the argument list: FACE is |
| 346 | created now. The only difference is FACE property `force-face': if NOW | 325 | created now. |
| 347 | is non-nil, FACE property `force-face' is set to the symbol `rogue', else | ||
| 348 | if THEME property `theme-immediate' is non-nil, FACE property `force-face' | ||
| 349 | is set to the symbol `immediate'. | ||
| 350 | 326 | ||
| 351 | SPEC itself is saved in FACE property `saved-face' and it is stored in | 327 | SPEC itself is saved in FACE property `saved-face' and it is stored in |
| 352 | FACE's list property `theme-face' \(using `custom-push-theme')." | 328 | FACE's list property `theme-face' \(using `custom-push-theme')." |
| @@ -371,15 +347,11 @@ FACE's list property `theme-face' \(using `custom-push-theme')." | |||
| 371 | (when (not (and oldspec (eq 'user (caar oldspec)))) | 347 | (when (not (and oldspec (eq 'user (caar oldspec)))) |
| 372 | (put face 'saved-face spec) | 348 | (put face 'saved-face spec) |
| 373 | (put face 'saved-face-comment comment)) | 349 | (put face 'saved-face-comment comment)) |
| 374 | ;; Do this AFTER checking the `theme-face' property. | ||
| 375 | (custom-push-theme 'theme-face face theme 'set spec) | 350 | (custom-push-theme 'theme-face face theme 'set spec) |
| 376 | (when (or now immediate) | 351 | (when (or now immediate) |
| 377 | (put face 'force-face (if now 'rogue 'immediate))) | 352 | (put face 'force-face (if now 'rogue 'immediate))) |
| 378 | (when (or now immediate (facep face)) | 353 | (when (or now immediate (facep face)) |
| 379 | (unless (facep face) | ||
| 380 | (make-empty-face face)) | ||
| 381 | (put face 'face-comment comment) | 354 | (put face 'face-comment comment) |
| 382 | (put face 'face-override-spec nil) | ||
| 383 | (face-spec-set face spec t)))))))) | 355 | (face-spec-set face spec t)))))))) |
| 384 | 356 | ||
| 385 | ;; XEmacs compatibility function. In XEmacs, when you reset a Custom | 357 | ;; XEmacs compatibility function. In XEmacs, when you reset a Custom |
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 64aac4b81db..bc61a24d9dc 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el | |||
| @@ -847,21 +847,8 @@ Reinitialize the face according to the `defface' specification." | |||
| 847 | (setq face-new-frame-defaults | 847 | (setq face-new-frame-defaults |
| 848 | (assq-delete-all face-symbol face-new-frame-defaults)) | 848 | (assq-delete-all face-symbol face-new-frame-defaults)) |
| 849 | (put face-symbol 'face-defface-spec nil) | 849 | (put face-symbol 'face-defface-spec nil) |
| 850 | (put face-symbol 'face-documentation (nth 3 form)) | 850 | (put face-symbol 'face-override-spec nil)) |
| 851 | ;; Setting `customized-face' to the new spec after calling | 851 | form) |
| 852 | ;; the form, but preserving the old saved spec in `saved-face', | ||
| 853 | ;; imitates the situation when the new face spec is set | ||
| 854 | ;; temporarily for the current session in the customize | ||
| 855 | ;; buffer, thus allowing `face-user-default-spec' to use the | ||
| 856 | ;; new customized spec instead of the saved spec. | ||
| 857 | ;; Resetting `saved-face' temporarily to nil is needed to let | ||
| 858 | ;; `defface' change the spec, regardless of a saved spec. | ||
| 859 | (prog1 `(prog1 ,form | ||
| 860 | (put ,(nth 1 form) 'saved-face | ||
| 861 | ',(get face-symbol 'saved-face)) | ||
| 862 | (put ,(nth 1 form) 'customized-face | ||
| 863 | ,(nth 2 form))) | ||
| 864 | (put face-symbol 'saved-face nil)))) | ||
| 865 | ((eq (car form) 'progn) | 852 | ((eq (car form) 'progn) |
| 866 | (cons 'progn (mapcar 'eval-defun-1 (cdr form)))) | 853 | (cons 'progn (mapcar 'eval-defun-1 (cdr form)))) |
| 867 | (t form))) | 854 | (t form))) |
diff --git a/lisp/faces.el b/lisp/faces.el index 928174c3954..2a0b77b19c4 100644 --- a/lisp/faces.el +++ b/lisp/faces.el | |||
| @@ -1587,44 +1587,79 @@ If SPEC is nil, return nil." | |||
| 1587 | (mapcar (lambda (x) (list (car x) 'unspecified)) | 1587 | (mapcar (lambda (x) (list (car x) 'unspecified)) |
| 1588 | face-attribute-name-alist))))) | 1588 | face-attribute-name-alist))))) |
| 1589 | 1589 | ||
| 1590 | (defun face-spec-set (face spec &optional for-defface) | 1590 | (defun face-spec-set (face spec &optional spec-type) |
| 1591 | "Set and apply the face spec for FACE. | 1591 | "Set the face spec SPEC for FACE. |
| 1592 | If the optional argument FOR-DEFFACE is omitted or nil, set the | 1592 | See `defface' for the format of SPEC. |
| 1593 | overriding spec to SPEC, recording it in the `face-override-spec' | 1593 | |
| 1594 | property of FACE. See `defface' for the format of SPEC. | 1594 | The appearance of each face is controlled by its spec, and by the |
| 1595 | 1595 | internal face attributes (which can be frame-specific and can be | |
| 1596 | If FOR-DEFFACE is non-nil, set the base spec (the one set by | 1596 | set via `set-face-attribute'). |
| 1597 | `defface' and Custom). In this case, SPEC is ignored; the caller | 1597 | |
| 1598 | is responsible for putting the face spec in the `saved-face', | 1598 | The argument SPEC-TYPE determines which spec to set: |
| 1599 | `customized-face', or `face-defface-spec', as appropriate. | 1599 | nil or `face-override-spec' means the override spec (which is |
| 1600 | 1600 | usually what you want if calling this function outside of | |
| 1601 | The appearance of FACE is controlled by the base spec, by any | 1601 | Custom code); |
| 1602 | custom theme specs on top of that, and by the overriding spec on | 1602 | `customized-face' or `saved-face' means the customized spec or |
| 1603 | top of all the rest." | 1603 | the saved custom spec; |
| 1604 | (if for-defface | 1604 | `face-defface-spec' means the default spec |
| 1605 | ;; When we reset the face based on its custom spec, then it is | 1605 | (usually set only via `defface'); |
| 1606 | ;; unmodified as far as Custom is concerned. | 1606 | `reset' means to ignore SPEC, but clear the `customized-face' |
| 1607 | (put (or (get face 'face-alias) face) 'face-modified nil) | 1607 | and `face-override-spec' specs; |
| 1608 | ;; When we change a face based on a spec from outside custom, | 1608 | Any other value means not to set any spec, but to run the |
| 1609 | ;; record it for future frames. | 1609 | function for its other effects. |
| 1610 | (put (or (get face 'face-alias) face) 'face-override-spec spec)) | 1610 | |
| 1611 | ;; Reset each frame according to the rules implied by all its specs. | 1611 | In addition to setting the face spec, this function defines FACE |
| 1612 | (dolist (frame (frame-list)) | 1612 | as a valid face name if it is not already one, and (re)calculates |
| 1613 | (face-spec-recalc face frame))) | 1613 | the face's attributes on existing frames." |
| 1614 | (if (get face 'face-alias) | ||
| 1615 | (setq face (get face 'face-alias))) | ||
| 1616 | ;; Save SPEC to the relevant symbol property. | ||
| 1617 | (unless spec-type | ||
| 1618 | (setq spec-type 'face-override-spec)) | ||
| 1619 | (if (memq spec-type '(face-defface-spec face-override-spec | ||
| 1620 | customized-face saved-face)) | ||
| 1621 | (put face spec-type spec)) | ||
| 1622 | (if (memq spec-type '(reset saved-face)) | ||
| 1623 | (put face 'customized-face nil)) | ||
| 1624 | ;; Setting the face spec via Custom empties out any override spec, | ||
| 1625 | ;; similar to how setting a variable via Custom changes its valus. | ||
| 1626 | (if (memq spec-type '(customized-face saved-face reset)) | ||
| 1627 | (put face 'face-override-spec nil)) | ||
| 1628 | ;; If we reset the face based on its custom spec, it is unmodified | ||
| 1629 | ;; as far as Custom is concerned. | ||
| 1630 | (unless (eq face 'face-override-spec) | ||
| 1631 | (put face 'face-modified nil)) | ||
| 1632 | (if (facep face) | ||
| 1633 | ;; If the face already exists, recalculate it. | ||
| 1634 | (dolist (frame (frame-list)) | ||
| 1635 | (face-spec-recalc face frame)) | ||
| 1636 | ;; Otherwise, initialize it on all frames. | ||
| 1637 | (make-empty-face face) | ||
| 1638 | (let ((value (face-user-default-spec face)) | ||
| 1639 | (have-window-system (memq initial-window-system '(x w32 ns)))) | ||
| 1640 | (dolist (frame (frame-list)) | ||
| 1641 | (face-spec-set-2 face frame value) | ||
| 1642 | (when (memq (window-system frame) '(x w32 ns)) | ||
| 1643 | (setq have-window-system t))) | ||
| 1644 | (if have-window-system | ||
| 1645 | (make-face-x-resource-internal face))))) | ||
| 1614 | 1646 | ||
| 1615 | (defun face-spec-recalc (face frame) | 1647 | (defun face-spec-recalc (face frame) |
| 1616 | "Reset the face attributes of FACE on FRAME according to its specs. | 1648 | "Reset the face attributes of FACE on FRAME according to its specs. |
| 1617 | This applies the defface/custom spec first, then the custom theme specs, | 1649 | This applies the defface/custom spec first, then the custom theme specs, |
| 1618 | then the override spec." | 1650 | then the override spec." |
| 1651 | (while (get face 'face-alias) | ||
| 1652 | (setq face (get face 'face-alias))) | ||
| 1619 | (face-spec-reset-face face frame) | 1653 | (face-spec-reset-face face frame) |
| 1620 | (let ((face-sym (or (get face 'face-alias) face))) | 1654 | ;; If FACE is customized or themed, set the custom spec from |
| 1621 | (or (get face 'customized-face) | 1655 | ;; `theme-face' records, which completely replace the defface spec |
| 1622 | (get face 'saved-face) | 1656 | ;; rather than inheriting from it. |
| 1623 | (face-spec-set-2 face frame (face-default-spec face))) | 1657 | (let ((theme-faces (get face 'theme-face))) |
| 1624 | (let ((theme-faces (reverse (get face-sym 'theme-face)))) | 1658 | (if theme-faces |
| 1625 | (dolist (spec theme-faces) | 1659 | (dolist (spec (reverse theme-faces)) |
| 1626 | (face-spec-set-2 face frame (cadr spec)))) | 1660 | (face-spec-set-2 face frame (cadr spec))) |
| 1627 | (face-spec-set-2 face frame (get face-sym 'face-override-spec)))) | 1661 | (face-spec-set-2 face frame (face-default-spec face)))) |
| 1662 | (face-spec-set-2 face frame (get face 'face-override-spec))) | ||
| 1628 | 1663 | ||
| 1629 | (defun face-spec-set-2 (face frame spec) | 1664 | (defun face-spec-set-2 (face frame spec) |
| 1630 | "Set the face attributes of FACE on FRAME according to SPEC." | 1665 | "Set the face attributes of FACE on FRAME according to SPEC." |
diff --git a/lisp/textmodes/reftex-parse.el b/lisp/textmodes/reftex-parse.el index 791b5d7b945..7169e70d6c4 100644 --- a/lisp/textmodes/reftex-parse.el +++ b/lisp/textmodes/reftex-parse.el | |||
| @@ -251,7 +251,7 @@ of master file." | |||
| 251 | ;; the next parsing iteration. | 251 | ;; the next parsing iteration. |
| 252 | (when (eq (char-before) ?\\) (backward-char)) | 252 | (when (eq (char-before) ?\\) (backward-char)) |
| 253 | ;; Insert in List | 253 | ;; Insert in List |
| 254 | (setq toc-entry (reftex-section-info file)) | 254 | (setq toc-entry (funcall reftex-section-info-function file)) |
| 255 | (when toc-entry | 255 | (when toc-entry |
| 256 | ;; It can happen that section info returns nil | 256 | ;; It can happen that section info returns nil |
| 257 | (setq level (nth 5 toc-entry)) | 257 | (setq level (nth 5 toc-entry)) |
diff --git a/lisp/textmodes/reftex-toc.el b/lisp/textmodes/reftex-toc.el index 4f73322d3f5..eec15be4d83 100644 --- a/lisp/textmodes/reftex-toc.el +++ b/lisp/textmodes/reftex-toc.el | |||
| @@ -785,7 +785,7 @@ PRO-OR-DE is assumed to be dynamically scoped into this function." | |||
| 785 | (marker (nth 4 data))) | 785 | (marker (nth 4 data))) |
| 786 | (with-current-buffer (marker-buffer marker) | 786 | (with-current-buffer (marker-buffer marker) |
| 787 | (goto-char (marker-position marker)) | 787 | (goto-char (marker-position marker)) |
| 788 | (if (looking-at (concat "\\([ \t]*\\\\\\)" (regexp-quote name))) | 788 | (if (looking-at (concat "\\([ \t]*" reftex-section-pre-regexp "\\)" (regexp-quote name))) |
| 789 | (replace-match (concat "\\1" newname)) | 789 | (replace-match (concat "\\1" newname)) |
| 790 | (error "Fatal error during %smotion" pro-or-de))))) | 790 | (error "Fatal error during %smotion" pro-or-de))))) |
| 791 | 791 | ||
diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el index bdee0fcf1d4..dfbeda38fd9 100644 --- a/lisp/textmodes/reftex.el +++ b/lisp/textmodes/reftex.el | |||
| @@ -301,7 +301,9 @@ on the menu bar. | |||
| 301 | (modify-syntax-entry ?\' "." reftex-syntax-table-for-bib) | 301 | (modify-syntax-entry ?\' "." reftex-syntax-table-for-bib) |
| 302 | (modify-syntax-entry ?\" "." reftex-syntax-table-for-bib) | 302 | (modify-syntax-entry ?\" "." reftex-syntax-table-for-bib) |
| 303 | (modify-syntax-entry ?\[ "." reftex-syntax-table-for-bib) | 303 | (modify-syntax-entry ?\[ "." reftex-syntax-table-for-bib) |
| 304 | (modify-syntax-entry ?\] "." reftex-syntax-table-for-bib)) | 304 | (modify-syntax-entry ?\] "." reftex-syntax-table-for-bib) |
| 305 | |||
| 306 | (run-hooks 'reftex-mode-hook)) | ||
| 305 | ;; Mode was turned off | 307 | ;; Mode was turned off |
| 306 | (easy-menu-remove reftex-mode-menu))) | 308 | (easy-menu-remove reftex-mode-menu))) |
| 307 | 309 | ||
| @@ -664,6 +666,16 @@ will deactivate it." | |||
| 664 | (defvar reftex-find-label-regexp-format nil) | 666 | (defvar reftex-find-label-regexp-format nil) |
| 665 | (defvar reftex-find-label-regexp-format2 nil) | 667 | (defvar reftex-find-label-regexp-format2 nil) |
| 666 | 668 | ||
| 669 | ;; Constants for making RefTeX open to Texinfo hooking | ||
| 670 | (defvar reftex-section-pre-regexp "\\\\") | ||
| 671 | ;; Including `\' as a character to be matched at the end of the regexp | ||
| 672 | ;; will allow stuff like \begin{foo}\label{bar} to be matched. This | ||
| 673 | ;; will make the parser to advance one char too much. Therefore | ||
| 674 | ;; `reftex-parse-from-file' will step one char back if a section is | ||
| 675 | ;; found. | ||
| 676 | (defvar reftex-section-post-regexp "\\*?\\(\\[[^]]*\\]\\)?[[{ \t\r\n\\]") | ||
| 677 | (defvar reftex-section-info-function 'reftex-section-info) | ||
| 678 | |||
| 667 | (defvar reftex-memory nil | 679 | (defvar reftex-memory nil |
| 668 | "Memorizes old variable values to indicate changes in these variables.") | 680 | "Memorizes old variable values to indicate changes in these variables.") |
| 669 | 681 | ||
| @@ -1083,16 +1095,10 @@ This enforces rescanning the buffer on next use." | |||
| 1083 | reftex-include-file-commands "\\|") | 1095 | reftex-include-file-commands "\\|") |
| 1084 | "\\)[{ \t]+\\([^} \t\n\r]+\\)")) | 1096 | "\\)[{ \t]+\\([^} \t\n\r]+\\)")) |
| 1085 | (section-re | 1097 | (section-re |
| 1086 | ;; Including `\' as a character to be matched at the end | 1098 | (concat wbol reftex-section-pre-regexp "\\(" |
| 1087 | ;; of the regexp will allow stuff like | ||
| 1088 | ;; \begin{foo}\label{bar} to be matched. This will make | ||
| 1089 | ;; the parser to advance one char too much. Therefore | ||
| 1090 | ;; `reftex-parse-from-file' will step one char back if a | ||
| 1091 | ;; section is found. | ||
| 1092 | (concat wbol "\\\\\\(" | ||
| 1093 | (mapconcat (lambda (x) (regexp-quote (car x))) | 1099 | (mapconcat (lambda (x) (regexp-quote (car x))) |
| 1094 | reftex-section-levels-all "\\|") | 1100 | reftex-section-levels-all "\\|") |
| 1095 | "\\)\\*?\\(\\[[^]]*\\]\\)?[[{ \t\r\n\\]")) | 1101 | "\\)" reftex-section-post-regexp)) |
| 1096 | (appendix-re (concat wbol "\\(\\\\appendix\\)")) | 1102 | (appendix-re (concat wbol "\\(\\\\appendix\\)")) |
| 1097 | (macro-re | 1103 | (macro-re |
| 1098 | (if macros-with-labels | 1104 | (if macros-with-labels |
diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el index 46c65b25b37..ed031664246 100644 --- a/lisp/textmodes/sgml-mode.el +++ b/lisp/textmodes/sgml-mode.el | |||
| @@ -671,13 +671,13 @@ in your `.emacs': | |||
| 671 | (if (eq v2 t) (setq v2 nil)) | 671 | (if (eq v2 t) (setq v2 nil)) |
| 672 | ;; We use `identity' to prevent skeleton from passing | 672 | ;; We use `identity' to prevent skeleton from passing |
| 673 | ;; `str' through `skeleton-transformation-function' a second time. | 673 | ;; `str' through `skeleton-transformation-function' a second time. |
| 674 | '(("") v2 _ v2 "</" (identity ',str) ?>)) | 674 | '(("") v2 _ v2 "</" (identity ',str) ?> >)) |
| 675 | ((eq (car v2) t) | 675 | ((eq (car v2) t) |
| 676 | (cons '("") (cdr v2))) | 676 | (cons '("") (cdr v2))) |
| 677 | (t | 677 | (t |
| 678 | (append '(("") (car v2)) | 678 | (append '(("") (car v2)) |
| 679 | (cdr v2) | 679 | (cdr v2) |
| 680 | '(resume: (car v2) _ "</" (identity ',str) ?>)))))) | 680 | '(resume: (car v2) _ "</" (identity ',str) ?> >)))))) |
| 681 | 681 | ||
| 682 | (autoload 'skeleton-read "skeleton") | 682 | (autoload 'skeleton-read "skeleton") |
| 683 | 683 | ||
diff --git a/src/ChangeLog b/src/ChangeLog index 859b3a7d254..c612c4dd365 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2012-11-25 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | * sysdep.c (sys_subshell): Don't assume pid_t fits in int. | ||
| 4 | |||
| 1 | 2012-11-24 Ken Brown <kbrown@cornell.edu> | 5 | 2012-11-24 Ken Brown <kbrown@cornell.edu> |
| 2 | 6 | ||
| 3 | * keyboard.c (HAVE_MOUSE): | 7 | * keyboard.c (HAVE_MOUSE): |
diff --git a/src/sysdep.c b/src/sysdep.c index bc4dc91509f..1a3834f0379 100644 --- a/src/sysdep.c +++ b/src/sysdep.c | |||
| @@ -453,7 +453,7 @@ sys_subshell (void) | |||
| 453 | int st; | 453 | int st; |
| 454 | char oldwd[MAXPATHLEN+1]; /* Fixed length is safe on MSDOS. */ | 454 | char oldwd[MAXPATHLEN+1]; /* Fixed length is safe on MSDOS. */ |
| 455 | #endif | 455 | #endif |
| 456 | int pid; | 456 | pid_t pid; |
| 457 | struct save_signal saved_handlers[5]; | 457 | struct save_signal saved_handlers[5]; |
| 458 | Lisp_Object dir; | 458 | Lisp_Object dir; |
| 459 | unsigned char *volatile str_volatile = 0; | 459 | unsigned char *volatile str_volatile = 0; |