------------------------------------------------------------ revno: 115706 committer: Xue Fuqiao branch nick: trunk timestamp: Mon 2013-12-23 16:50:31 +0800 message: Fix an argument of `copy-file'. * doc/lispref/files.texi (Changing Files): Fix an argument of `copy-file'. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-12-23 07:55:08 +0000 +++ doc/lispref/ChangeLog 2013-12-23 08:50:31 +0000 @@ -1,5 +1,7 @@ 2013-12-23 Xue Fuqiao + * files.texi (Changing Files): Fix an argument of `copy-file'. + * strings.texi (Creating Strings): Document TRIM in `split-string'. 2013-12-23 Chong Yidong === modified file 'doc/lispref/files.texi' --- doc/lispref/files.texi 2013-11-20 02:52:35 +0000 +++ doc/lispref/files.texi 2013-12-23 08:50:31 +0000 @@ -1550,7 +1550,7 @@ same effect as renaming, aside from momentary intermediate states. @end deffn -@deffn Command copy-file oldname newname &optional ok-if-exists time preserve-uid-gid preserve-selinux +@deffn Command copy-file oldname newname &optional ok-if-exists time preserve-uid-gid preserve-extended-attributes This command copies the file @var{oldname} to @var{newname}. An error is signaled if @var{oldname} does not exist. If @var{newname} names a directory, it copies @var{oldname} into that directory, === modified file 'etc/NEWS' --- etc/NEWS 2013-12-23 08:11:14 +0000 +++ etc/NEWS 2013-12-23 08:50:31 +0000 @@ -993,6 +993,7 @@ ** File-handling changes ++++ *** Support for filesystem notifications. Emacs now supports notifications of filesystem changes, such as creation, modification, and deletion of files. This requires the @@ -1000,11 +1001,13 @@ MS-Windows systems, this is supported for Windows XP and newer versions. ++++ *** The 9th element returned by `file-attributes' is now unspecified. Formerly, it was t if the file's gid would change if file were deleted and recreated. This value has been inaccurate for years on many platforms, and nobody seems to have noticed or cared. ++++ *** The 6th argument to `copy-file' has been renamed to PRESERVE-EXTENDED-ATTRIBUTES as it now handles both SELinux context and ACL entries. ------------------------------------------------------------ revno: 115705 committer: Tassilo Horn branch nick: trunk timestamp: Mon 2013-12-23 09:11:14 +0100 message: Unmark electric-indent-mode; it requires more doc changes. diff: === modified file 'etc/NEWS' --- etc/NEWS 2013-12-23 07:55:08 +0000 +++ etc/NEWS 2013-12-23 08:11:14 +0000 @@ -223,7 +223,6 @@ the text indentation in the region. Typing any other key resumes normal editing behavior. -+++ *** `electric-indent-mode' is enabled by default. *** `tab-stop-list' is now implicitly extended to infinity by repeating ------------------------------------------------------------ revno: 115704 committer: Xue Fuqiao branch nick: trunk timestamp: Mon 2013-12-23 15:55:08 +0800 message: Document TRIM in `split-string'. * doc/lispref/strings.texi (Creating Strings): Document TRIM in `split-string'. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-12-23 03:59:10 +0000 +++ doc/lispref/ChangeLog 2013-12-23 07:55:08 +0000 @@ -1,3 +1,7 @@ +2013-12-23 Xue Fuqiao + + * strings.texi (Creating Strings): Document TRIM in `split-string'. + 2013-12-23 Chong Yidong * keymaps.texi (Controlling Active Maps): Renamed === modified file 'doc/lispref/strings.texi' --- doc/lispref/strings.texi 2013-01-01 09:11:05 +0000 +++ doc/lispref/strings.texi 2013-12-23 07:55:08 +0000 @@ -268,7 +268,7 @@ combine-and-quote-strings}. @end defun -@defun split-string string &optional separators omit-nulls +@defun split-string string &optional separators omit-nulls trim This function splits @var{string} into substrings based on the regular expression @var{separators} (@pxref{Regular Expressions}). Each match for @var{separators} defines a splitting point; the substrings between @@ -350,6 +350,11 @@ @result{} ("o" "o" "o") @end example +If the optional argument @var{trim} is non-@code{nil}, it should be a +regular expression to match text to trim from the beginning and end of +each substring. If trimming makes the substring empty, it is treated +as null. + If you need to split a string into a list of individual command-line arguments suitable for @code{call-process} or @code{start-process}, see @ref{Shell Arguments, split-string-and-unquote}. === modified file 'etc/NEWS' --- etc/NEWS 2013-12-23 03:59:10 +0000 +++ etc/NEWS 2013-12-23 07:55:08 +0000 @@ -983,6 +983,7 @@ ** `byte-compile-interactive-only-functions' is now obsolete. It has been replaced by the symbol property 'interactive-only. ++++ ** `split-string' now takes an optional argument TRIM. The value, if non-nil, is a regexp that specifies what to trim from the start and end of each substring. ------------------------------------------------------------ revno: 115703 committer: Chong Yidong branch nick: trunk timestamp: Mon 2013-12-23 12:07:01 +0800 message: * indent.el (indent-rigidly): Use substitute-command-keys. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-23 03:59:10 +0000 +++ lisp/ChangeLog 2013-12-23 04:07:01 +0000 @@ -12,6 +12,8 @@ * calendar/todo-mode.el (todo-insert-item--next-param): * progmodes/f90.el (f90-abbrev-start): Callers changed. + * indent.el (indent-rigidly): Use substitute-command-keys. + 2013-12-22 Kenjiro NAKAYAMA * net/eww.el (eww-tag-select): Add text-property to jump to next === modified file 'lisp/indent.el' --- lisp/indent.el 2013-12-23 03:59:10 +0000 +++ lisp/indent.el 2013-12-23 04:07:01 +0000 @@ -194,8 +194,9 @@ (interactive "r\nP\np") (if (and (not arg) interactive) (progn - (message "Edit region indentation with , , \ -and .") + (message + (substitute-command-keys + "Indent region with \\\\[indent-rigidly-left], \\[indent-rigidly-right], \\[indent-rigidly-left-to-tab-stop], or \\[indent-rigidly-right-to-tab-stop].")) (set-transient-map indent-rigidly-map t)) (save-excursion (goto-char end) ------------------------------------------------------------ revno: 115702 committer: Chong Yidong branch nick: trunk timestamp: Mon 2013-12-23 11:59:10 +0800 message: Rename set-temporary-overlay-map -> set-transient-map * lisp/subr.el (set-transient-map): Rename from set-temporary-overlay-map. Doc fix. * lisp/face-remap.el (text-scale-adjust): * lisp/indent.el (indent-rigidly): * lisp/kmacro.el (kmacro-call-macro): * lisp/minibuffer.el (minibuffer-force-complete): * lisp/repeat.el (repeat): * lisp/simple.el (universal-argument--mode): * lisp/calendar/todo-mode.el (todo-insert-item--next-param): * lisp/progmodes/f90.el (f90-abbrev-start): Callers changed. * lisp/org/org.el (orgstruct-make-binding): Call set-transient-map instead of old name set-temporary-overlay-map. * doc/lispref/keymaps.texi (Controlling Active Maps): Renamed set-temporary-overlay-map to set-transient map. Doc fixes. (Searching Keymaps): The transient keymap takes precedence. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-12-23 02:54:28 +0000 +++ doc/lispref/ChangeLog 2013-12-23 03:59:10 +0000 @@ -1,3 +1,9 @@ +2013-12-23 Chong Yidong + + * keymaps.texi (Controlling Active Maps): Renamed + set-temporary-overlay-map to set-transient map. Doc fixes. + (Searching Keymaps): The transient keymap takes precedence. + 2013-12-23 Glenn Morris * loading.texi (How Programs Do Loading, Load Suffixes): === modified file 'doc/lispref/keymaps.texi' --- doc/lispref/keymaps.texi 2013-11-10 12:18:03 +0000 +++ doc/lispref/keymaps.texi 2013-12-23 03:59:10 +0000 @@ -747,13 +747,13 @@ them: @lisp -(or (cond +(or (@var{find-in} @var{transient-map}) + (cond (overriding-terminal-local-map (@var{find-in} overriding-terminal-local-map)) (overriding-local-map (@var{find-in} overriding-local-map)) ((or (@var{find-in} (get-char-property (point) 'keymap)) - (@var{find-in} @var{temp-map}) (@var{find-in-any} emulation-mode-map-alists) (@var{find-in-any} minor-mode-overriding-map-alist) (@var{find-in-any} minor-mode-map-alist) @@ -764,14 +764,17 @@ @end lisp @noindent -@var{find-in} and @var{find-in-any} are pseudo functions that search -in one keymap and in an alist of keymaps, respectively. (Searching a -single keymap for a binding is called @dfn{key lookup}; see @ref{Key -Lookup}.) If the key sequence starts with a mouse event, that event's position -is used instead of point and the current buffer. Mouse events on an -embedded string use non-@code{nil} text properties from that string -instead of the buffer. @var{temp-map} is a pseudo variable that -represents the effect of a @code{set-temporary-overlay-map} call. +Here, @var{find-in} and @var{find-in-any} are pseudo functions that +search in one keymap and in an alist of keymaps, respectively. +(Searching a single keymap for a binding is called @dfn{key lookup}; +see @ref{Key Lookup}.) @var{transient-map} is a pseudo variable that +represents the effect of a @code{set-transient-map} call +(@pxref{Controlling Active Maps}). + + In the above pseudo-code, if a key sequence starts with a mouse +event, that event's position is used instead of point and the current +buffer. Mouse events on an embedded string use non-@code{nil} text +properties from that string instead of the buffer. When a match is found (@pxref{Key Lookup}), if the binding in the keymap is a function, the search is over. However if the keymap entry @@ -951,19 +954,27 @@ @code{minor-mode-overriding-map-alist}. @end defvar -@defun set-temporary-overlay-map keymap &optional keep -This function adds @var{keymap} as a temporary keymap that takes -precedence over most other keymaps. It does not take precedence over -the ``overriding'' maps (see above); and unlike them, if no match for -a key is found in @var{keymap}, the search continues. - -Normally, @var{keymap} is used only once. If the optional argument -@var{pred} is @code{t}, the map stays active if a key from @var{keymap} -is used. @var{pred} can also be a function of no arguments: if it returns -non-@code{nil} then @var{keymap} stays active. - -For a pseudo-Lisp description of exactly how and when this keymap applies, -@pxref{Searching Keymaps}. +@cindex transient keymap +@defun set-transient-map keymap &optional keep +This function adds @var{keymap} as a @dfn{transient} keymap, which +takes precedence over other keymaps for one (or more) subsequent keys. + +Normally, @var{keymap} is used just once, to look up the very next +key. If the optional argument @var{pred} is @code{t}, the map stays +active as long as the user types keys defined in @var{keymap}; when +the user types a key that is not in @var{keymap}, the transient keymap +is deactivated and normal key lookup continues for that key. + +The @var{pred} argument can also be a function. In that case, the +function is called with no arguments, prior to running each command, +while @var{keymap} is active; it should return non-@code{nil} if +@var{keymap} should stay active. + +The transient keymap takes precedence over the ``overriding'' maps +(see above); and unlike them, if no match for a key is found in +@var{keymap}, the key lookup process continues. For a pseudo-Lisp +description of exactly how and when this keymap applies, +@xref{Searching Keymaps}. @end defun @node Key Lookup === modified file 'etc/NEWS' --- etc/NEWS 2013-12-22 23:19:42 +0000 +++ etc/NEWS 2013-12-23 03:59:10 +0000 @@ -2149,8 +2149,8 @@ ** Miscellaneous new functions -*** `set-temporary-overlay-map' sets up a temporary keymap that -takes precedence over most other maps for a short while (normally one key). +*** `set-transient-map' sets up a temporary keymap, active for one key +(and optionally more). This keymap takes precedence over other maps. *** `autoloadp' tests if its argument is an autoloaded object. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-22 22:40:35 +0000 +++ lisp/ChangeLog 2013-12-23 03:59:10 +0000 @@ -1,3 +1,17 @@ +2013-12-23 Chong Yidong + + * subr.el (set-transient-map): Rename from + set-temporary-overlay-map. Doc fix. + + * face-remap.el (text-scale-adjust): + * indent.el (indent-rigidly): + * kmacro.el (kmacro-call-macro): + * minibuffer.el (minibuffer-force-complete): + * repeat.el (repeat): + * simple.el (universal-argument--mode): + * calendar/todo-mode.el (todo-insert-item--next-param): + * progmodes/f90.el (f90-abbrev-start): Callers changed. + 2013-12-22 Kenjiro NAKAYAMA * net/eww.el (eww-tag-select): Add text-property to jump to next === modified file 'lisp/calendar/todo-mode.el' --- lisp/calendar/todo-mode.el 2013-12-20 17:21:12 +0000 +++ lisp/calendar/todo-mode.el 2013-12-23 03:59:10 +0000 @@ -5619,7 +5619,7 @@ (setq todo-insert-item--argsleft todo-insert-item--newargsleft)) (when prompt (message "Enter a key (so far `%s'): %s" todo-insert-item--keys-so-far prompt)) - (set-temporary-overlay-map map) + (set-transient-map map) (setq todo-insert-item--argsleft argsleft))) ;; ----------------------------------------------------------------------------- === modified file 'lisp/face-remap.el' --- lisp/face-remap.el 2013-10-13 05:17:42 +0000 +++ lisp/face-remap.el 2013-12-23 03:59:10 +0000 @@ -326,7 +326,7 @@ (text-scale-increase step) ;; (unless (zerop step) (message "Use +,-,0 for further adjustment") - (set-temporary-overlay-map + (set-transient-map (let ((map (make-sparse-keymap))) (dolist (mods '(() (control))) (dolist (key '(?- ?+ ?= ?0)) ;; = is often unshifted +. === modified file 'lisp/indent.el' --- lisp/indent.el 2013-12-21 08:37:08 +0000 +++ lisp/indent.el 2013-12-23 03:59:10 +0000 @@ -196,7 +196,7 @@ (progn (message "Edit region indentation with , , \ and .") - (set-temporary-overlay-map indent-rigidly-map t)) + (set-transient-map indent-rigidly-map t)) (save-excursion (goto-char end) (setq end (point-marker)) === modified file 'lisp/isearch.el' --- lisp/isearch.el 2013-12-19 22:12:12 +0000 +++ lisp/isearch.el 2013-12-23 03:59:10 +0000 @@ -2251,7 +2251,7 @@ (main-event (aref key 0))) (cond ;; Don't exit Isearch if we're in the middle of some - ;; set-temporary-overlay-map thingy like universal-argument--mode. + ;; `set-transient-map' thingy like `universal-argument--mode'. ((not (eq overriding-terminal-local-map isearch--saved-overriding-local-map))) ;; Don't exit Isearch for isearch key bindings. ((commandp (lookup-key isearch-mode-map key nil))) === modified file 'lisp/kmacro.el' --- lisp/kmacro.el 2013-09-23 02:58:02 +0000 +++ lisp/kmacro.el 2013-12-23 03:59:10 +0000 @@ -650,10 +650,10 @@ (if (and kmacro-call-repeat-with-arg arg (> arg 1)) (format " %d times" arg) ""))) - ;; Can't use the `keep-pred' arg because this overlay keymap needs to be - ;; removed during the next run of the kmacro (i.e. we need to add&remove - ;; this overlay-map at each repetition). - (set-temporary-overlay-map + ;; Can't use the `keep-pred' arg because this overlay keymap + ;; needs to be removed during the next run of the kmacro + ;; (i.e. we must add and remove this map at each repetition). + (set-transient-map (let ((map (make-sparse-keymap))) (define-key map (vector repeat-key) `(lambda () (interactive) === modified file 'lisp/minibuffer.el' --- lisp/minibuffer.el 2013-12-06 00:48:52 +0000 +++ lisp/minibuffer.el 2013-12-23 03:59:10 +0000 @@ -1222,7 +1222,7 @@ (interactive) (let ((completion-extra-properties extra-prop)) (completion-in-region start (point) table pred))))) - (set-temporary-overlay-map + (set-transient-map (let ((map (make-sparse-keymap))) (define-key map [remap completion-at-point] cmd) (define-key map (vector last-command-event) cmd) === modified file 'lisp/org/ChangeLog' --- lisp/org/ChangeLog 2013-12-06 11:21:31 +0000 +++ lisp/org/ChangeLog 2013-12-23 03:59:10 +0000 @@ -1,3 +1,8 @@ +2013-12-23 Chong Yidong + + * org.el (orgstruct-make-binding): Call set-transient-map instead + of old name set-temporary-overlay-map. + 2013-12-06 Achim Gratz * org-crypt.el: Declare `epg-context´. === modified file 'lisp/org/org.el' --- lisp/org/org.el 2013-12-06 11:21:31 +0000 +++ lisp/org/org.el 2013-12-23 03:59:10 +0000 @@ -9062,7 +9062,7 @@ (key-description key)))))) thereis (key-binding key)))) (if (keymapp binding) - (set-temporary-overlay-map binding) + (set-transient-map binding) (let ((func (or binding (unless disable 'orgstruct-error)))) === modified file 'lisp/progmodes/f90.el' --- lisp/progmodes/f90.el 2013-08-05 10:35:55 +0000 +++ lisp/progmodes/f90.el 2013-12-23 03:59:10 +0000 @@ -2259,7 +2259,7 @@ (interactive "*") (self-insert-command 1) (when abbrev-mode - (set-temporary-overlay-map + (set-transient-map (let ((map (make-sparse-keymap))) (define-key map [??] 'f90-abbrev-help) (define-key map (vector help-char) 'f90-abbrev-help) === modified file 'lisp/repeat.el' --- lisp/repeat.el 2013-01-01 09:11:05 +0000 +++ lisp/repeat.el 2013-12-23 03:59:10 +0000 @@ -278,7 +278,7 @@ (execute-kbd-macro last-repeatable-command)) (call-interactively last-repeatable-command)))) (when repeat-repeat-char - (set-temporary-overlay-map + (set-transient-map (let ((map (make-sparse-keymap))) (define-key map (vector repeat-repeat-char) (if (null repeat-message-function) 'repeat === modified file 'lisp/simple.el' --- lisp/simple.el 2013-12-21 22:55:59 +0000 +++ lisp/simple.el 2013-12-23 03:59:10 +0000 @@ -3321,7 +3321,7 @@ "Keymap used while processing \\[universal-argument].") (defun universal-argument--mode () - (set-temporary-overlay-map universal-argument-map)) + (set-transient-map universal-argument-map)) (defun universal-argument () "Begin a numeric argument for the following command. === modified file 'lisp/subr.el' --- lisp/subr.el 2013-12-20 19:55:56 +0000 +++ lisp/subr.el 2013-12-23 03:59:10 +0000 @@ -4266,33 +4266,35 @@ (eq 'add-keymap-witness (nth 1 map)) (set symbol tail))))) -(defun set-temporary-overlay-map (map &optional keep-pred on-exit) - "Set MAP as a temporary keymap taking precedence over most other keymaps. -Note that this does NOT take precedence over the \"overriding\" maps -`overriding-terminal-local-map' and `overriding-local-map' (or the -`keymap' text property). Unlike those maps, if no match for a key is -found in MAP, the normal key lookup sequence then continues. - -Normally, MAP is used only once. If the optional argument -KEEP-PRED is t, MAP stays active if a key from MAP is used. -KEEP-PRED can also be a function of no arguments: if it returns -non-nil then MAP stays active. - -Optional ON-EXIT argument is a function that is called after the -deactivation of MAP." - (let ((clearfun (make-symbol "clear-temporary-overlay-map"))) +(defun set-transient-map (map &optional keep-pred on-exit) + "Set MAP as a temporary keymap taking precedence over other keymaps. +Normally, MAP is used only once, to look up the very next key. +However, if the optional argument KEEP-PRED is t, MAP stays +active if a key from MAP is used. KEEP-PRED can also be a +function of no arguments: if it returns non-nil, then MAP stays +active. + +Optional arg ON-EXIT, if non-nil, specifies a function that is +called, with no arguments, after MAP is deactivated. + +Note that MAP will take precedence over the \"overriding\" maps +`overriding-terminal-local-map' and `overriding-local-map' (and +over the `keymap' text property). Unlike those maps, if no match +for a key is found in MAP, Emacs continues the normal key lookup +sequence." + (let ((clearfun (make-symbol "clear-transient-map"))) ;; Don't use letrec, because equal (in add/remove-hook) would get trapped ;; in a cycle. (fset clearfun (lambda () - ;; FIXME: Handle the case of multiple temporary-overlay-maps - ;; E.g. if isearch and C-u both use temporary-overlay-maps, Then - ;; the lifetime of the C-u should be nested within the isearch - ;; overlay, so the pre-command-hook of isearch should be - ;; suspended during the C-u one so we don't exit isearch just - ;; because we hit 1 after C-u and that 1 exits isearch whereas it - ;; doesn't exit C-u. - (with-demoted-errors "set-temporary-overlay-map PCH: %S" + ;; FIXME: Handle the case of multiple transient maps. For + ;; example, if isearch and C-u both use transient maps, + ;; then the lifetime of the C-u should be nested within + ;; the isearch overlay, so the pre-command-hook of isearch + ;; should be suspended during the C-u one so we don't exit + ;; isearch just because we hit 1 after C-u and that 1 + ;; exits isearch whereas it doesn't exit C-u. + (with-demoted-errors "set-transient-map PCH: %S" (unless (cond ((null keep-pred) nil) ((eq t keep-pred) (eq this-command ------------------------------------------------------------ revno: 115701 committer: Glenn Morris branch nick: trunk timestamp: Sun 2013-12-22 18:54:28 -0800 message: Some documenting of load-prefer-newer * doc/lispref/loading.texi (How Programs Do Loading, Load Suffixes): Mention `load-prefer-newer'. * src/lread.c (Fload): Mention load-prefer-newer in doc. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-12-22 23:19:42 +0000 +++ doc/lispref/ChangeLog 2013-12-23 02:54:28 +0000 @@ -1,6 +1,12 @@ +2013-12-23 Glenn Morris + + * loading.texi (How Programs Do Loading, Load Suffixes): + Mention `load-prefer-newer'. + 2013-12-22 Xue Fuqiao - * hash.texi (Other Hash): Document `hash-table-keys and `hash-table-values'. + * hash.texi (Other Hash): Document `hash-table-keys' + and `hash-table-values'. 2013-12-22 Eli Zaretskii @@ -15,11 +21,11 @@ * text.texi (Examining Properties): Document `get-pos-property'. - * variables.texi (Directory Local Variables): Document - `enable-dir-local-variables'. + * variables.texi (Directory Local Variables): + Document `enable-dir-local-variables'. - * debugging.texi (Debugger Commands): Document - `debugger-toggle-locals'. + * debugging.texi (Debugger Commands): + Document `debugger-toggle-locals'. 2013-12-21 Chong Yidong === modified file 'doc/lispref/loading.texi' --- doc/lispref/loading.texi 2013-12-13 18:25:30 +0000 +++ doc/lispref/loading.texi 2013-12-23 02:54:28 +0000 @@ -93,6 +93,10 @@ @samp{.el} or @samp{.elc} (possibly extended with a compression suffix), unless it contains an explicit directory name. +If the option @code{load-prefer-newer} is non-@code{nil}, then when +searching suffixes, @code{load} selects whichever version of a file +(@samp{.elc}, @samp{.el}, etc.) has been modified most recently. + If @var{filename} is a relative file name, such as @file{foo} or @file{baz/foo.bar}, @code{load} searches for the file using the variable @code{load-path}. It appends @var{filename} to each of the directories @@ -246,6 +250,12 @@ it skips the former group, and if @var{must-suffix} is non-@code{nil}, it skips the latter group. +@defopt load-prefer-newer +If this option is non-@code{nil}, then rather than stopping at the +first suffix that exists, @code{load} tests them all, and uses +whichever file is the newest. +@end defopt + @node Library Search @section Library Search @cindex library search === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-22 15:19:09 +0000 +++ src/ChangeLog 2013-12-23 02:54:28 +0000 @@ -1,3 +1,7 @@ +2013-12-23 Glenn Morris + + * lread.c (Fload): Mention load-prefer-newer in doc. + 2013-12-22 Martin Rudalics Handle Bug#16207 by being more restrictive when running hooks. === modified file 'src/lread.c' --- src/lread.c 2013-12-22 00:52:26 +0000 +++ src/lread.c 2013-12-23 02:54:28 +0000 @@ -1029,6 +1029,10 @@ return value of `get-load-suffixes' is used, i.e. the file name is required to have a non-empty suffix. +When searching suffixes, this function normally stops at the first +one that exists. If the option `load-prefer-newer' is non-nil, +however, it tries all suffixes, and uses whichever file is the newest. + Loading a file records its definitions, and its `provide' and `require' calls, in an element of `load-history' whose car is the file name loaded. See `load-history'. ------------------------------------------------------------ revno: 115700 committer: Xue Fuqiao branch nick: trunk timestamp: Mon 2013-12-23 07:19:42 +0800 message: Document `hash-table-keys and `hash-table-values'. * doc/lispref/hash.texi (Other Hash): Document `hash-table-keys and `hash-table-values'. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-12-22 18:17:20 +0000 +++ doc/lispref/ChangeLog 2013-12-22 23:19:42 +0000 @@ -1,3 +1,7 @@ +2013-12-22 Xue Fuqiao + + * hash.texi (Other Hash): Document `hash-table-keys and `hash-table-values'. + 2013-12-22 Eli Zaretskii * nonascii.texi (Character Properties): NAME or OLD-NAME === modified file 'doc/lispref/hash.texi' --- doc/lispref/hash.texi 2013-01-03 18:38:55 +0000 +++ doc/lispref/hash.texi 2013-12-22 23:19:42 +0000 @@ -353,3 +353,14 @@ @defun hash-table-size table This returns the current nominal size of @var{table}. @end defun + +The following two functions are provided by the @file{subr-x} library. +To use them, you need to load this library first. + +@defun hash-table-keys hash-table +This returns a list of keys in @var{hash-table}. +@end defun + +@defun hash-table-values hash-table +This returns a list of values in @var{hash-table}. +@end defun === modified file 'etc/NEWS' --- etc/NEWS 2013-12-22 07:11:05 +0000 +++ etc/NEWS 2013-12-22 23:19:42 +0000 @@ -949,8 +949,11 @@ ** New macro with-eval-after-load. Like eval-after-load, but better behaved. ** New library subr-x.el for misc helper functions ++++ *** `hash-table-keys' ++++ *** `hash-table-values' + *** `string-blank-p` *** `string-empty-p` *** `string-join` ------------------------------------------------------------ revno: 115699 committer: Glenn Morris branch nick: trunk timestamp: Sun 2013-12-22 15:13:18 -0800 message: Misc small fixes for some recent doc changes * doc/emacs/calendar.texi (General Calendar): * doc/emacs/rmail.texi (Rmail Scrolling): * doc/misc/woman.texi (Navigation): Use itemx where appropriate. * doc/emacs/entering.texi (Entering Emacs): Typo fix. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-12-22 18:31:38 +0000 +++ doc/emacs/ChangeLog 2013-12-22 23:13:18 +0000 @@ -1,3 +1,10 @@ +2013-12-22 Glenn Morris + + * entering.texi (Entering Emacs): Typo fix. + + * calendar.texi (General Calendar): + * rmail.texi (Rmail Scrolling): Use itemx where appropriate. + 2013-12-22 Eli Zaretskii * regs.texi (Keyboard Macro Registers): Fix last change. @@ -26,14 +33,8 @@ 2013-12-20 Tassilo Horn - * rmail.texi: Document `S-SPC' as alternative to scrolling down - with `DEL'. - - * help.texi: Ditto. - - * display.texi: Ditto. - - * calendar.texi: Ditto. + * calendar.texi, display.texi, help.texi, rmail.texi: + Document `S-SPC' as alternative to scrolling down with `DEL'. * frames.texi: Document `toggle-frame-maximized' and `toggle-frame-fullscreen' with their respective keys. === modified file 'doc/emacs/calendar.texi' --- doc/emacs/calendar.texi 2013-12-20 20:08:17 +0000 +++ doc/emacs/calendar.texi 2013-12-22 23:13:18 +0000 @@ -304,7 +304,7 @@ @item SPC Scroll the next window up (@code{scroll-other-window}). @item DEL -@item S-SPC +@itemx S-SPC Scroll the next window down (@code{scroll-other-window-down}). @item q Exit from calendar (@code{calendar-exit}). === modified file 'doc/emacs/entering.texi' --- doc/emacs/entering.texi 2013-12-20 14:18:21 +0000 +++ doc/emacs/entering.texi 2013-12-22 23:13:18 +0000 @@ -74,7 +74,7 @@ information about @file{site-start.el}.} You can also force Emacs to display a file or directory at startup -by setting the variable @code{initial-buffer-choice} to a a string +by setting the variable @code{initial-buffer-choice} to a string naming that file or directory. The value of @code{initial-buffer-choice} may also be a function which should return a buffer which is then displayed. @code{initial-buffer-choice} === modified file 'doc/emacs/rmail.texi' --- doc/emacs/rmail.texi 2013-12-20 20:08:56 +0000 +++ doc/emacs/rmail.texi 2013-12-22 23:13:18 +0000 @@ -101,7 +101,7 @@ @item @key{SPC} Scroll forward (@code{scroll-up-command}). @item @key{DEL} -@item @key{S-SPC} +@itemx @key{S-SPC} Scroll backward (@code{scroll-down-command}). @item . Scroll to start of message (@code{rmail-beginning-of-message}). === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2013-12-20 16:03:12 +0000 +++ doc/misc/ChangeLog 2013-12-22 23:13:18 +0000 @@ -1,9 +1,11 @@ +2013-12-22 Glenn Morris + + * woman.texi (Navigation): Use itemx where appropriate. + 2013-12-20 Tassilo Horn - * info.texi: Document `S-SPC' as alternative to `DEL' for - scrolling. - - * woman.texi: Ditto. + * info.texi, woman.texi: + Document `S-SPC' as alternative to `DEL' for scrolling. 2013-12-20 Jay Belanger === modified file 'doc/misc/woman.texi' --- doc/misc/woman.texi 2013-12-20 20:08:56 +0000 +++ doc/misc/woman.texi 2013-12-22 23:13:18 +0000 @@ -629,7 +629,7 @@ Scroll the man page up the window (@code{scroll-up}). @item @key{DEL} -@item @key{S-SPC} +@itemx @key{S-SPC} @kindex DEL @kindex S-SPC @findex scroll-down ------------------------------------------------------------ revno: 115698 author: Kenjiro NAKAYAMA committer: Ted Zlatanov branch nick: quickfixes timestamp: Sun 2013-12-22 17:40:35 -0500 message: eww: jump to next select field easier and better ftp error * net/eww.el (eww-tag-select): Add text-property to jump to next select field. (eww) : Add non-supported ftp error. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-22 20:38:26 +0000 +++ lisp/ChangeLog 2013-12-22 22:40:35 +0000 @@ -1,3 +1,9 @@ +2013-12-22 Kenjiro NAKAYAMA + + * net/eww.el (eww-tag-select): Add text-property to jump to next + select field. + (eww) : Add non-supported ftp error. + 2013-12-22 Dmitry Gutov * progmodes/ruby-mode.el (ruby--electric-indent-p): Improve the === modified file 'lisp/net/eww.el' --- lisp/net/eww.el 2013-12-21 20:50:02 +0000 +++ lisp/net/eww.el 2013-12-22 22:40:35 +0000 @@ -144,19 +144,21 @@ If the input doesn't look like an URL or a domain name, the word(s) will be searched for via `eww-search-prefix'." (interactive "sEnter URL or keywords: ") - (cond ((string-match-p "\\`file:" url)) - (t - (if (and (= (length (split-string url)) 1) - (or (> (length (split-string url "\\.")) 1) - (string-match eww-local-regex url))) - (progn - (unless (string-match-p "\\`[a-zA-Z][-a-zA-Z0-9+.]*://" url) - (setq url (concat "http://" url))) - ;; some site don't redirect final / - (when (string= (url-filename (url-generic-parse-url url)) "") - (setq url (concat url "/")))) - (setq url (concat eww-search-prefix - (replace-regexp-in-string " " "+" url)))))) + (cond ((string-match-p "\\`file://" url)) + ((string-match-p "\\`ftp://" url) + (user-error "FTP is not supported.")) + (t + (if (and (= (length (split-string url)) 1) + (or (> (length (split-string url "\\.")) 1) + (string-match eww-local-regex url))) + (progn + (unless (string-match-p "\\`[a-zA-Z][-a-zA-Z0-9+.]*://" url) + (setq url (concat "http://" url))) + ;; some site don't redirect final / + (when (string= (url-filename (url-generic-parse-url url)) "") + (setq url (concat url "/")))) + (setq url (concat eww-search-prefix + (replace-regexp-in-string " " "+" url)))))) (url-retrieve url 'eww-render (list url))) ;;;###autoload (defalias 'browse-web 'eww) @@ -847,6 +849,8 @@ (put-text-property start (point) 'eww-form menu) (add-face-text-property start (point) 'eww-form-select) (put-text-property start (point) 'keymap eww-select-map) + (unless (= start (point)) + (put-text-property start (1+ start) 'help-echo "select field")) (shr-ensure-paragraph)))) (defun eww-select-display (select) ------------------------------------------------------------ revno: 115697 committer: Dmitry Gutov branch nick: trunk timestamp: Sun 2013-12-22 22:38:26 +0200 message: * lisp/progmodes/ruby-mode.el (ruby--electric-indent-p): Improve the comments. Handle electric indent after typing `?' and `!'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-22 13:40:44 +0000 +++ lisp/ChangeLog 2013-12-22 20:38:26 +0000 @@ -1,3 +1,8 @@ +2013-12-22 Dmitry Gutov + + * progmodes/ruby-mode.el (ruby--electric-indent-p): Improve the + comments. Handle electric indent after typing `?' and `!'. + 2013-12-22 Chong Yidong * faces.el (face-spec-recalc): If the theme specs are not === modified file 'lisp/progmodes/ruby-mode.el' --- lisp/progmodes/ruby-mode.el 2013-12-22 06:04:40 +0000 +++ lisp/progmodes/ruby-mode.el 2013-12-22 20:38:26 +0000 @@ -779,15 +779,15 @@ (defun ruby--electric-indent-p (char) (cond ((memq char ruby--electric-indent-chars) - ;; Outdent after typing a closing paren. + ;; Reindent after typing a char affecting indentation. (ruby--at-indentation-p (1- (point)))) ((memq (char-after) ruby--electric-indent-chars) - ;; Reindent after inserting something before a closing paren. + ;; Reindent after inserting something in front of the above. (ruby--at-indentation-p (1- (point)))) - ((or (memq (char-syntax char) '(?w ?_))) + ((or (and (>= char ?a) (<= char ?z)) (memq char '(?_ ?? ?! ?:))) (let ((pt (point))) (save-excursion - (skip-syntax-backward "w_") + (skip-chars-backward "[:alpha:]:_?!") (and (ruby--at-indentation-p) (looking-at (regexp-opt (cons "end" ruby-block-mid-keywords))) ;; Outdent after typing a keyword. ------------------------------------------------------------ revno: 115696 committer: Eli Zaretskii branch nick: trunk timestamp: Sun 2013-12-22 20:31:38 +0200 message: Fix last commit in doc/emacs/regs.texi. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-12-22 05:57:32 +0000 +++ doc/emacs/ChangeLog 2013-12-22 18:31:38 +0000 @@ -1,10 +1,15 @@ +2013-12-22 Eli Zaretskii + + * regs.texi (Keyboard Macro Registers): Fix last change. + 2013-12-22 Xue Fuqiao * search.texi (Special Isearch): (Query Replace): Document negative argument of replacement commands. (Symbol Search): Document `isearch-forward-symbol-at-point'. - * files.texi (File Conveniences): Document `image-next-file' and `image-previous-file'. + * files.texi (File Conveniences): Document `image-next-file' and + `image-previous-file'. * display.texi (Optional Mode Line): Fix an index. @@ -12,7 +17,8 @@ * indent.texi (Tab Stops): Mention recent changes about `tab-stop-list'. - * frames.texi (Scroll Bars): Document `scroll-bar-adjust-thumb-portion'. + * frames.texi (Scroll Bars): Document + `scroll-bar-adjust-thumb-portion'. 2013-12-21 Chong Yidong === modified file 'doc/emacs/regs.texi' --- doc/emacs/regs.texi 2013-12-22 02:55:43 +0000 +++ doc/emacs/regs.texi 2013-12-22 18:31:38 +0000 @@ -259,11 +259,11 @@ @kindex C-x C-k x @findex kmacro-to-register - If you execute certain keyboard macros (@pxref{Keyboard Macros}) -frequently, you can execute them more conveniently if putting them in -registers or save them (@pxref{Save Keyboard Macro}). @kbd{C-x C-k x -@var{r}} (@code{kmacro-to-register}) stores the last keyboard macro in -register @var{r}. + If you need to execute a keyboard macro (@pxref{Keyboard Macros}) +frequently, it is more convenient to put it in a register or save it +(@pxref{Save Keyboard Macro}). @kbd{C-x C-k x @var{r}} +(@code{kmacro-to-register}) stores the last keyboard macro in register +@var{r}. To execute the keyboard macro in register @var{r}, type @kbd{C-x r j @var{r}}. (This is the same command used to jump to a position or ------------------------------------------------------------ revno: 115695 committer: Eli Zaretskii branch nick: trunk timestamp: Sun 2013-12-22 20:24:23 +0200 message: Add 4 new bidi-class values in unidata-gen.el. diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2013-12-22 18:02:37 +0000 +++ admin/ChangeLog 2013-12-22 18:24:23 +0000 @@ -3,6 +3,8 @@ * unidata/unidata-gen.el (unidata-split-name): Don't give any NAME to characters: the Unicode Standard says they have no name. (Bug#16216) + (unidata-describe-bidi-class): Add new "isolate" classes + introduced by Unicode 6.3. 2013-12-12 David Engster === modified file 'admin/unidata/unidata-gen.el' --- admin/unidata/unidata-gen.el 2013-12-22 18:02:37 +0000 +++ admin/unidata/unidata-gen.el 2013-12-22 18:24:23 +0000 @@ -1134,6 +1134,10 @@ (RLE . "Right-to-Left Embedding") (RLO . "Right-to-Left Override") (PDF . "Pop Directional Format") + (LRI . "Left-to-Right Isolate") + (RLI . "Right-to-Left Isolate") + (FSI . "First Strong Isolate") + (PDI . "Pop Directional Isolate") (EN . "European Number") (ES . "European Number Separator") (ET . "European Number Terminator") ------------------------------------------------------------ revno: 115694 committer: Eli Zaretskii branch nick: trunk timestamp: Sun 2013-12-22 20:17:20 +0200 message: Update UCD reference in ELisp manual. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-12-22 18:02:37 +0000 +++ doc/lispref/ChangeLog 2013-12-22 18:17:20 +0000 @@ -2,6 +2,7 @@ * nonascii.texi (Character Properties): NAME or OLD-NAME properties can be nil (there's no empty string). + (Character Properties): Update the reference to the UCD. 2013-12-22 Xue Fuqiao === modified file 'doc/lispref/nonascii.texi' --- doc/lispref/nonascii.texi 2013-12-22 18:02:37 +0000 +++ doc/lispref/nonascii.texi 2013-12-22 18:17:20 +0000 @@ -409,7 +409,7 @@ @uref{http://www.unicode.org/reports/tr23/, Unicode Character Property Model}, and the Emacs character property database is derived from the Unicode Character Database (@acronym{UCD}). See the -@uref{http://www.unicode.org/versions/Unicode5.0.0/ch04.pdf, Character +@uref{http://www.unicode.org/versions/Unicode6.2.0/ch04.pdf, Character Properties chapter of the Unicode Standard}, for a detailed description of Unicode character properties and their meaning. This section assumes you are already familiar with that chapter of the ------------------------------------------------------------ revno: 115693 fixes bug: http://debbugs.gnu.org/16216 committer: Eli Zaretskii branch nick: trunk timestamp: Sun 2013-12-22 20:02:37 +0200 message: Fix bug #16216 with 'name' Unicode property of control characters. admin/unidata/unidata-gen.el (unidata-split-name): Don't give any NAME to characters: the Unicode Standard says they have no name. doc/lispref/nonascii.texi (Character Properties): NAME or OLD-NAME properties can be nil (there's no empty string). diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2013-12-12 22:09:15 +0000 +++ admin/ChangeLog 2013-12-22 18:02:37 +0000 @@ -1,3 +1,9 @@ +2013-12-22 Eli Zaretskii + + * unidata/unidata-gen.el (unidata-split-name): Don't give any NAME + to characters: the Unicode Standard says they have no + name. (Bug#16216) + 2013-12-12 David Engster * grammars/c.by (expr-binop): Add MOD. === modified file 'admin/unidata/unidata-gen.el' --- admin/unidata/unidata-gen.el 2013-12-04 16:58:05 +0000 +++ admin/unidata/unidata-gen.el 2013-12-22 18:02:37 +0000 @@ -984,7 +984,14 @@ (l nil) (idx 0) c) - (if (= len 0) + (if (or (= len 0) + ;; Unicode Standard, paragraph 4.8: "For all other + ;; Unicode code points of all other types (Control, + ;; Private-Use, Surrogate, Noncharacter, and Reserved), + ;; the value of the Name property is the null string." + ;; We already handle elsewhere all the characters except + ;; Cc, Control characters, which are handled here. + (string= str "")) nil (dotimes (i len) (setq c (aref str i)) === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-12-22 07:11:05 +0000 +++ doc/lispref/ChangeLog 2013-12-22 18:02:37 +0000 @@ -1,12 +1,20 @@ +2013-12-22 Eli Zaretskii + + * nonascii.texi (Character Properties): NAME or OLD-NAME + properties can be nil (there's no empty string). + 2013-12-22 Xue Fuqiao - * sequences.texi (Bool-Vectors): Document new bool-vector set operation functions. + * sequences.texi (Bool-Vectors): Document new bool-vector set + operation functions. * text.texi (Examining Properties): Document `get-pos-property'. - * variables.texi (Directory Local Variables): Document `enable-dir-local-variables'. + * variables.texi (Directory Local Variables): Document + `enable-dir-local-variables'. - * debugging.texi (Debugger Commands): Document `debugger-toggle-locals'. + * debugging.texi (Debugger Commands): Document + `debugger-toggle-locals'. 2013-12-21 Chong Yidong === modified file 'doc/lispref/nonascii.texi' --- doc/lispref/nonascii.texi 2013-12-07 16:51:33 +0000 +++ doc/lispref/nonascii.texi 2013-12-22 18:02:37 +0000 @@ -440,7 +440,7 @@ Corresponds to the @code{Name} Unicode property. The value is a string consisting of upper-case Latin letters A to Z, digits, spaces, and hyphen @samp{-} characters. For unassigned codepoints, the value -is an empty string. +is @code{nil}. @cindex unicode general category @item general-category @@ -522,7 +522,8 @@ @item old-name Corresponds to the Unicode @code{Unicode_1_Name} property. The value -is a string. For unassigned codepoints, the value is an empty string. +is a string. Unassigned codepoints, and characters that have no value +for this property, the value is @code{nil}. @item iso-10646-comment Corresponds to the Unicode @code{ISO_Comment} property. The value is ------------------------------------------------------------ revno: 115692 committer: martin rudalics branch nick: trunk timestamp: Sun 2013-12-22 16:19:09 +0100 message: Handle Bug#16207 by being more restrictive when running hooks. * window.c (unwind_change_frame): New function. (Fset_window_configuration): Don't run configuration change hook while the frame configuration is unsafe. Call select_window twice. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-22 00:52:26 +0000 +++ src/ChangeLog 2013-12-22 15:19:09 +0000 @@ -1,3 +1,11 @@ +2013-12-22 Martin Rudalics + + Handle Bug#16207 by being more restrictive when running hooks. + * window.c (unwind_change_frame): New function. + (Fset_window_configuration): Don't run configuration change hook + while the frame configuration is unsafe. Call select_window + twice. + 2013-12-22 Xue Fuqiao * lread.c (syms_of_lread) : Doc fix. === modified file 'src/window.c' --- src/window.c 2013-12-20 10:48:36 +0000 +++ src/window.c 2013-12-22 15:19:09 +0000 @@ -5917,6 +5917,13 @@ return XWINDOW (SAVED_WINDOW_N (saved_windows, 0)->window)->frame; } +/* From Chong's unwind_create_frame_1. */ +static void +unwind_change_frame (Lisp_Object val) +{ + inhibit_lisp_code = val; +} + DEFUN ("set-window-configuration", Fset_window_configuration, Sset_window_configuration, 1, 1, 0, doc: /* Set the configuration of windows and buffers as specified by CONFIGURATION. @@ -5996,7 +6003,7 @@ int n_leaf_windows; ptrdiff_t k; int i, n; - + ptrdiff_t count = SPECPDL_INDEX (); /* If the frame has been resized since this window configuration was made, we change the frame to the size specified in the configuration, restore the configuration, and then resize it @@ -6025,6 +6032,10 @@ call1 (Qrecord_window_buffer, window); } + /* Don't run lisp in the following segment since the frame is in a + completely inconsistent state. See Bug#16207. */ + record_unwind_protect (unwind_change_frame, inhibit_lisp_code); + inhibit_lisp_code = Qt; /* The mouse highlighting code could get screwed up if it runs during this. */ block_input (); @@ -6222,6 +6233,18 @@ make_number (old_point), XWINDOW (data->current_window)->contents); + /* In the following call to `select-window', prevent "swapping out + point" in the old selected window using the buffer that has + been restored into it. We already swapped out that point from + that window's old buffer. + + Do not record the buffer here. We do that in a separate call + to select_window below. See also Bug#16207. */ + select_window (data->current_window, Qt, 1); + BVAR (XBUFFER (XWINDOW (selected_window)->contents), + last_selected_window) + = selected_window; + if (NILP (data->focus_frame) || (FRAMEP (data->focus_frame) && FRAME_LIVE_P (XFRAME (data->focus_frame)))) @@ -6262,6 +6285,7 @@ adjust_frame_glyphs (f); unblock_input (); + unbind_to (count, Qnil); /* Scan dead buffer windows. */ for (; CONSP (dead_windows); dead_windows = XCDR (dead_windows)) @@ -6271,19 +6295,9 @@ delete_deletable_window (window); } - /* In the following call to `select-window', prevent "swapping out - point" in the old selected window using the buffer that has - been restored into it. We already swapped out that point from - that window's old buffer. */ - /* This `select_window' calls record_buffer which calls Fdelq which - invokes QUIT, so we do it here at the end rather than earlier, - to minimize the risk of interrupting the Fset_window_configuration - in an inconsistent state (e.g. before frame-focus redirection is - canceled). */ - select_window (data->current_window, Qnil, 1); - BVAR (XBUFFER (XWINDOW (selected_window)->contents), - last_selected_window) - = selected_window; + /* Record the selected window's buffer here. The window should + already be the selected one from the call above. */ + select_window (data->current_window, Qnil, 0); /* Fselect_window will have made f the selected frame, so we reselect the proper frame here. Fhandle_switch_frame will change the ------------------------------------------------------------ revno: 115691 committer: Chong Yidong branch nick: trunk timestamp: Sun 2013-12-22 21:40:44 +0800 message: Prevent themes from obliterating faces on low-color terminals. * lisp/faces.el (face-spec-recalc): If the theme specs are not applicable to a frame, fall back on the defface spec. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-22 06:04:40 +0000 +++ lisp/ChangeLog 2013-12-22 13:40:44 +0000 @@ -1,3 +1,9 @@ +2013-12-22 Chong Yidong + + * faces.el (face-spec-recalc): If the theme specs are not + applicable to a frame, fall back on the defface spec. This + prevents themes from obliterating faces on low-color terminals. + 2013-12-22 Dmitry Gutov * progmodes/ruby-mode.el (ruby-smie--implicit-semi-p): Return t === modified file 'lisp/faces.el' --- lisp/faces.el 2013-12-21 15:31:09 +0000 +++ lisp/faces.el 2013-12-22 13:40:44 +0000 @@ -1625,20 +1625,28 @@ (setq face (get face 'face-alias))) (face-spec-reset-face face frame) ;; 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))) + ;; `theme-face' records. + (let ((theme-faces (get face 'theme-face)) + spec theme-face-applied) (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)) + (dolist (elt (reverse theme-faces)) + (setq spec (face-spec-choose (cadr elt) frame)) + (when spec + (face-spec-set-2 face frame spec) + (setq theme-face-applied t)))) + ;; If there was a spec applicable to FRAME, that overrides the + ;; defface spec entirely (rather than inheriting from it). If + ;; there was no spec applicable to FRAME, apply the defface spec. + (unless theme-face-applied + (setq spec (face-spec-choose (face-default-spec face) frame)) + (face-spec-set-2 face frame spec)) + (setq spec (face-spec-choose (get face 'face-override-spec) frame)) + (face-spec-set-2 face frame spec)) (make-face-x-resource-internal face frame)) (defun face-spec-set-2 (face frame spec) "Set the face attributes of FACE on FRAME according to SPEC." - (let* ((spec (face-spec-choose spec frame)) - attrs) + (let (attrs) (while spec (when (assq (car spec) face-x-resources) (push (car spec) attrs) ------------------------------------------------------------ revno: 115690 committer: Andreas Schwab branch nick: emacs timestamp: Sun 2013-12-22 12:33:28 +0100 message: Ignore info/dir diff: === modified file '.gitignore' --- .gitignore 2013-12-19 18:00:05 +0000 +++ .gitignore 2013-12-22 11:33:28 +0000 @@ -19,4 +19,5 @@ /leim/ja-dic/ etc/refcards/*.aux etc/refcards/*.log +info/dir info/*.info ------------------------------------------------------------ revno: 115689 committer: Paul Eggert branch nick: trunk timestamp: Sat 2013-12-21 23:23:49 -0800 message: Spelling fix. diff: === modified file 'src/xfont.c' --- src/xfont.c 2013-12-16 07:45:33 +0000 +++ src/xfont.c 2013-12-22 07:23:49 +0000 @@ -895,7 +895,7 @@ struct xfont_info *xfi = (struct xfont_info *) font; /* This function may be called from GC when X connection is gone - (Bug#16093), and an attempt to free font resourses on invalid + (Bug#16093), and an attempt to free font resources on invalid display may lead to X protocol errors or segfaults. */ if (xfi->xfont && x_display_info_for_display (xfi->display)) {