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/>. */ /* 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 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 $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 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 @@ +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. 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 @@ @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 @@ -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' diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 37291cfa774..9e403af6416 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -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 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." (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 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 @@ ;;; 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 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." (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))) 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." (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. - -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 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))) +(defun face-spec-set (face spec &optional spec-type) + "Set the face spec SPEC for FACE. +See `defface' for the format of SPEC. + +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 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." 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." ;; 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)) 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." (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))))) 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. (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 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': (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") diff --git a/src/ChangeLog b/src/ChangeLog index 859b3a7d254..c612c4dd365 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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): 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) 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; |