------------------------------------------------------------ revno: 116024 committer: Daiki Ueno branch nick: trunk timestamp: Tue 2014-01-14 17:41:09 +0900 message: * epa-file.el: Respect buffer-file-format when writing * epa-file.el (epa-file-write-region): Encode the region according to `buffer-file-format'. Problem reported at: . diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-14 08:13:13 +0000 +++ lisp/ChangeLog 2014-01-14 08:41:09 +0000 @@ -1,3 +1,9 @@ +2014-01-14 Daiki Ueno + + * epa-file.el (epa-file-write-region): Encode the region according + to `buffer-file-format'. Problem reported at: + . + 2014-01-14 Stefan Monnier * emacs-lisp/edebug.el (edebug--display): Move protective let-binding === modified file 'lisp/epa-file.el' --- lisp/epa-file.el 2014-01-01 07:43:34 +0000 +++ lisp/epa-file.el 2014-01-14 08:41:09 +0000 @@ -211,7 +211,8 @@ (recipients (cond ((listp epa-file-encrypt-to) epa-file-encrypt-to) - ((stringp epa-file-encrypt-to) (list epa-file-encrypt-to))))) + ((stringp epa-file-encrypt-to) (list epa-file-encrypt-to)))) + buffer) (epg-context-set-passphrase-callback context (cons #'epa-file-passphrase-callback-function @@ -230,8 +231,18 @@ (unless start (setq start (point-min) end (point-max))) - (epa-file--encode-coding-string (buffer-substring start end) - coding-system)) + (setq buffer (current-buffer)) + (with-temp-buffer + (insert-buffer-substring buffer start end) + ;; Translate the region according to + ;; `buffer-file-format', as `write-region' would. + ;; We can't simply do `write-region' (into a + ;; temporary file) here, since it writes out + ;; decrypted contents. + (format-encode-buffer (with-current-buffer buffer + buffer-file-format)) + (epa-file--encode-coding-string (buffer-string) + coding-system))) (if (or (eq epa-file-select-keys t) (and (null epa-file-select-keys) (not (local-variable-p 'epa-file-encrypt-to ------------------------------------------------------------ revno: 116023 committer: Glenn Morris branch nick: trunk timestamp: Tue 2014-01-14 00:13:13 -0800 message: ChangeLog fixes diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2014-01-11 03:55:50 +0000 +++ doc/emacs/ChangeLog 2014-01-14 08:13:13 +0000 @@ -6808,8 +6808,6 @@ * sending.texi (Mail Sending): pxref to Top needs five args. - * texinfo.tex: Update to current version (2006-03-21.13). - 2006-03-31 Richard Stallman * emacs.texi (Top): Update subnode menu. === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-01-12 16:50:54 +0000 +++ doc/misc/ChangeLog 2014-01-14 08:13:13 +0000 @@ -8702,6 +8702,10 @@ * gnus.texi (Security): Improve. +2006-04-02 Karl Berry + + * texinfo.tex: Update to current version (2006-03-21.13). + 2006-04-02 Bill Wohler * mh-e.texi (Getting Started, Junk, Bug Reports) @@ -10866,6 +10870,12 @@ * Makefile.in (mostlyclean, maintainer-clean): Delete more files. +2001-02-12 Michael Kifer + + * ediff.texi: Added ediff-coding-system-for-read. + + * viper.texi: Fix typos. + 2000-12-20 Eli Zaretskii * Makefile.in (../info/idlwave): Use --no-split. @@ -11257,7 +11267,7 @@ 1990-05-25 Richard Stallman (rms@sugar-bombs.ai.mit.edu) - * texindex.tex: If USG, include sys/types.h and sys/fcntl.h. + * texindex.c: If USG, include sys/types.h and sys/fcntl.h. 1989-01-17 Robert J. Chassell (bob@rice-chex.ai.mit.edu) === modified file 'leim/ChangeLog' --- leim/ChangeLog 2014-01-11 03:55:50 +0000 +++ leim/ChangeLog 2014-01-14 08:13:13 +0000 @@ -2055,11 +2055,11 @@ 1998-10-13 Francesco Potortì - * latin-alt.el ("latin-1-alt-postfix"): Add a method to enter the + * quail/latin-alt.el ("latin-1-alt-postfix"): Add a method to enter the small superscript underlined o and a. ("italian-alt-postfix"): Change it to something useful and different from italian-postfix. - * latin-post.el ("latin-1-postfix"): Add a method to enter the + * quail/latin-post.el ("latin-1-postfix"): Add a method to enter the small superscript underlined o and a. ("italian-postfix"): Same as above. ("italian-postfix"): Add methods to enter e with acute accent and === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-14 02:51:52 +0000 +++ lisp/ChangeLog 2014-01-14 08:13:13 +0000 @@ -176,7 +176,7 @@ Bazaar-specific names. * version.el (emacs-bzr-version): Name changed to - emacs-repository-version. Obsolete-variable alias made. + emacs-repository-version. Obsolete-variable alias made. * loadup.el: Follow through on this name change. * mail/emacsbug.el (report-emacs-bug): Factor out any assumption about the version control system in use. === modified file 'lisp/ChangeLog.10' --- lisp/ChangeLog.10 2014-01-11 03:55:50 +0000 +++ lisp/ChangeLog.10 2014-01-14 08:13:13 +0000 @@ -6076,7 +6076,7 @@ 2003-01-31 Christoph Wedler - * antlr-mode.el: Bug fixes, miscellaneous. + * progmodes/antlr-mode.el: Bug fixes, miscellaneous. (antlr-mode): Make major mode work with cc-mode-5.29 or higher, make it more robust against changes in cc-mode's style variables by using `boundp' and function `c-init-language-vars' if defined. @@ -6085,7 +6085,7 @@ (antlr-run-tool-interactive): New function. (antlr-run-tool): Use it for `interactive' specification. - * antlr-mode.el: Simplify Emacs/XEmacs compatibility. + * progmodes/antlr-mode.el: Simplify Emacs/XEmacs compatibility. (cond-emacs-xemacs): New compile-time macro. (defunx): New compile-time macro. (ignore-errors-x): New compile-time macro. @@ -6116,7 +6116,8 @@ (antlr-hide-actions): Ditto. (antlr-option-kind): Ditto. - * antlr-mode.el: In Emacs, use face attribute :weight, not :bold. + * progmodes/antlr-mode.el: In Emacs, use face attribute + :weight, not :bold. (antlr-font-lock-keyword-face): Use new macros. (antlr-font-lock-syntax-face): Ditto. (antlr-font-lock-ruledef-face): Ditto. @@ -6125,12 +6126,12 @@ Changes from 2002-05-24: - * antlr-mode.el: Version 2.2a. + * progmodes/antlr-mode.el: Version 2.2a. Changes from 2002-05-03: - * antlr-mode.el: Make context parsing faster on Emacs, for faster - syntax highlighting, indentation and imenu support. + * progmodes/antlr-mode.el: Make context parsing faster on Emacs, + for faster syntax highlighting, indentation and imenu support. Suggested by Aaron Davies . (antlr-slow-context-cache): New variable. (antlr-slow-syntactic-context): Use cache. @@ -6140,8 +6141,8 @@ antlr-xemacs-bug-workaround. (antlr-imenu-create-index-function): Search from beginning. - * antlr-mode.el: More sophisticated indentation, i.e., use the - indentation engine of cc-mode for most actions. + * progmodes/antlr-mode.el: More sophisticated indentation, i.e., + use the indentation engine of cc-mode for most actions. (antlr-c-common-init): Allow nil for `antlr-indent-style'. (antlr-indent-line): Use indentation engine of cc-mode more often. (antlr-indent-at-bol-alist): Only used for header actions. @@ -6150,7 +6151,7 @@ (antlr-indent-at-bol-alist): With language "Java", indent "package" and "import" at column 0 in header part. - * antlr-mode.el (antlr-simple-default-directory): Define. + * progmodes/antlr-mode.el (antlr-simple-default-directory): Define. (antlr-simple-read-shell-command): Define. (antlr-simple-with-displaying-help-buffer): Define. (antlr-simple-scan-sexps, antlr-simple-scan-lists): @@ -6158,11 +6159,12 @@ Changes from 2002-02-28: - * antlr-mode.el: Version 2.2 is released. - - * antlr-mode.el (antlr): Moved to SourceForge.net - - * antlr-mode.el: Minor bug fixes: insert options and indentation. + * progmodes/antlr-mode.el: Version 2.2 is released. + + * progmodes/antlr-mode.el (antlr): Moved to SourceForge.net + + * progmodes/antlr-mode.el: Minor bug fixes: insert options + and indentation. (antlr-option-location): Don't use point as position where to insert options if point is in comment. (antlr-mode): Don't set style here. @@ -6173,7 +6175,7 @@ Changes from 2002-01-31: - * antlr-mode.el (antlr-font-lock-additional-keywords): + * progmodes/antlr-mode.el (antlr-font-lock-additional-keywords): Also highlight `~' with `antlr-font-lock-syntax-face'. Suggested by Helmut Neukirchen . @@ -16171,8 +16173,8 @@ 2002-04-22 Martin Stjernholm - * progmodes/cc-align.el, progmodes/cc-mode.texi, - progmodes/cc-vars.el: Added two new lineup functions: + * progmodes/cc-align.el, progmodes/cc-mode.el: + * progmodes/cc-vars.el: Added two new lineup functions: (c-lineup-knr-region-comment): A new lineup function to get (what most people think is) better indentation of comments in @@ -20703,20 +20705,21 @@ 2001-12-21 Christoph Wedler - * antlr-mode.el: More sophisticated indentation of cpp directive. + * progmodes/antlr-mode.el: More sophisticated indentation + of cpp directive. (antlr-indent-at-bol-alist): New user option. (antlr-indent-line): Use it. (antlr-indent-style): New user option. (antlr-mode): Use it. (antlr-indent-item-regexp): Customize. - * antlr-mode.el: Syntax highlighting changes. + * progmodes/antlr-mode.el: Syntax highlighting changes. (antlr-font-lock-literal-regexp): New user option. (antlr-font-lock-syntax-face): New face used for :, |, .... (antlr-font-lock-default-face): New face. (antlr-font-lock-additional-keywords): Use them. - * antlr-mode.el: New command to insert options -- variables. + * progmodes/antlr-mode.el: New command to insert options -- variables. (antlr-mode-map): New binding [C-c C-o]. (antlr-mode-menu): New submenus. (antlr-options-use-submenus): New user option. @@ -20727,7 +20730,7 @@ (antlr-options-assign-string): New user option. (antlr-options-headings): New variable. - * antlr-mode.el: New command to insert options -- specific. + * progmodes/antlr-mode.el: New command to insert options -- specific. (antlr-options-alists): New variable. (antlr-read-value): New function. (antlr-read-boolean): New function. @@ -20737,7 +20740,7 @@ (antlr-grammar-tokens): New function. (antlr-imenu-create-index-function): New optional argument. - * antlr-mode.el: New command to insert options -- functions. + * progmodes/antlr-mode.el: New command to insert options -- functions. (antlr-insert-option): New command. (antlr-insert-option-interactive): New function. (antlr-options-menu-filter): New function. @@ -20755,7 +20758,7 @@ (antlr-insert-option-space): New function. (antlr-insert-option-area): New function. - * antlr-mode.el: New electric keys ":;|&(){}", TAB works better + * progmodes/antlr-mode.el: New electric keys ":;|&(){}", TAB works better with narrowing. Menu change. Miscellaneous. (antlr-mode-menu): Include "Indent Region" and "Customize Antlr". (antlr-mode-map): New bindings for characters in ":;|&(){}". @@ -22373,7 +22376,7 @@ * calc/calc-frac.el, calc/calc-macs.el, calc/calc-poly.el: * calc/calc-stuff.el, calc/calcalg2.el, calc/calc-comb.el: * calc/calc-funcs.el, calc/calc-maint.el, calc/calc-prog.el: - * calc/calc-trail.el, calcalg3.el, calc/calc-cplx.el: + * calc/calc-trail.el, calc/calcalg3.el, calc/calc-cplx.el: * calc/calc-graph.el, calc/calc-map.el, calc/calc-rewr.el: * calc/calc-undo.el, calc/calccomp.el, calc/calc-embed.el: * calc/calc-help.el, calc/calc-math.el, calc/calc-rules.el: === modified file 'lisp/ChangeLog.11' --- lisp/ChangeLog.11 2014-01-11 03:55:50 +0000 +++ lisp/ChangeLog.11 2014-01-14 08:13:13 +0000 @@ -13106,10 +13106,10 @@ 2003-08-29 Thierry Emery (tiny change) - * kinsoku.el (kinsoku-longer, kinsoku-shorter): Do not choose a - line break position in the middle of a non-kinsoku (e.g. latin) - word, making it skip until either a space or a character with - category "|". + * international/kinsoku.el (kinsoku-longer, kinsoku-shorter): + Do not choose a line break position in the middle of a + non-kinsoku (e.g. latin) word, making it skip until either + a space or a character with category "|". (kinsoku-longer): Test for end of buffer. 2003-08-28 Eli Zaretskii @@ -13630,10 +13630,10 @@ * calendar/cal-tex.el (cal-tex-day-name-format): Doc fix. (cal-tex-LaTeX-hourbox): Move definition before use. - * calendar/cal-china.el, cal-hebrew.el, cal-islam.el - * cal-julian.el, cal-menu.el, cal-move.el, holidays.el - * lunar.el, solar.el (displayed-month, displayed-year): - Define for compiler. + * calendar/cal-china.el, calendar/cal-hebrew.el, calendar/cal-islam.el: + * calendar/cal-julian.el, calendar/cal-menu.el, calendar/cal-move.el: + * calendar/holidays.el, calendar/lunar.el, calendar/solar.el: + (displayed-month, displayed-year): Define for compiler. 2003-08-03 Martin Stjernholm === modified file 'lisp/ChangeLog.12' --- lisp/ChangeLog.12 2014-01-11 03:55:50 +0000 +++ lisp/ChangeLog.12 2014-01-14 08:13:13 +0000 @@ -1092,9 +1092,9 @@ North American rule. Replace "daylight savings" with "daylight saving" in doc. - * calendar/cal-china.el, cal-dst.el, calendar.el, diary-lib.el: - * calendar/lunar.el, solar.el: Replace "daylight savings" with - "daylight saving" in text. + * calendar/cal-china.el, calendar/cal-dst.el, calendar/calendar.el: + * calendar/diary-lib.el, calendar/lunar.el, calendar/solar.el: + Replace "daylight savings" with "daylight saving" in text. * woman.el (woman-change-fonts): Tweak previous change by using woman-request-regexp rather than "^\\.". @@ -5113,7 +5113,7 @@ * version.el (emacs-version): Use mac-carbon-version-string. - * term/macterm.el (res-geometry): Apply 2006-10-18 change for x-win.el. + * term/mac-win.el (res-geometry): Apply 2006-10-18 change for x-win.el. 2006-10-19 Jan Djärv === modified file 'lisp/ChangeLog.8' --- lisp/ChangeLog.8 2014-01-08 19:16:10 +0000 +++ lisp/ChangeLog.8 2014-01-14 08:13:13 +0000 @@ -173,19 +173,19 @@ 1999-12-21 Christoph Wedler - * antlr-mode.el: Version 1.2 is released. + * progmodes/antlr-mode.el: Version 1.2 is released. (antlr): This package has a web page. 1999-12-21 Christoph Wedler - * antlr-mode.el: Menu/keymap additions for commenting/uncommenting + * progmodes/antlr-mode.el: Menu/keymap additions for commenting/uncommenting regions. Suggested by Dale Davis . (antlr-mode-map): New binding [C-c C-c]. (antlr-mode-menu): New entries. 1999-12-21 Christoph Wedler - * antlr-mode.el: Respect Emacs conventions. + * progmodes/antlr-mode.el: Respect Emacs conventions. ((require 'cl)): Only use during compilation. (antlr-language-for-option): New function to avoid using `find'. (antlr-mode): Use it. @@ -199,10 +199,10 @@ 1999-11-21 Christoph Wedler - * antlr-mode.el: Really use `antlr-tab-offset-alist'. + * progmodes/antlr-mode.el: Really use `antlr-tab-offset-alist'. (antlr-set-tabs): Don't use hard-coded values. - * antlr-mode.el: Minor navigation changes. Not perfect, but this + * progmodes/antlr-mode.el: Minor navigation changes. Not perfect, but this won't be possible without a huge time penalty. (antlr-skip-exception-part): Be more specific. (antlr-skip-file-prelude): Don't skip action prelude of next rule. @@ -212,7 +212,7 @@ (antlr-beginning-of-body): Better error message. (antlr-imenu-create-index-function): Skip rule action prelude. - * antlr-mode.el: Minor syntax highlighting changes. + * progmodes/antlr-mode.el: Minor syntax highlighting changes. (antlr-font-lock-default-face): Deletia. (antlr-font-lock-tokendef-face): Changed color. (antlr-font-lock-tokenref-face): Changed color. === modified file 'lisp/ChangeLog.9' --- lisp/ChangeLog.9 2014-01-11 03:55:50 +0000 +++ lisp/ChangeLog.9 2014-01-14 08:13:13 +0000 @@ -2846,8 +2846,9 @@ * international/quail.el (quail-start-conversion): Reset quail-translating to nil. - * antlr-mode.el (antlr-mode): Check that `c-Java-access-key' is - bound. Suggested by David B. Malkovsky . + * progmodes/antlr-mode.el (antlr-mode): + Check that `c-Java-access-key' is bound. + Suggested by David B. Malkovsky . 2001-06-18 Eli Zaretskii @@ -5565,10 +5566,6 @@ * ediff-util.el (ediff-compute-custom-diffs-maybe): Better handling of the diff mode. - * ediff.texi: Added ediff-coding-system-for-read. - - * viper.texi: Fix typos. - 2001-02-11 Dave Love * shadowfile.el: Doc fixes. @@ -7922,8 +7919,8 @@ 2000-11-29 Christoph Wedler - * antlr-mode.el: New commands to run ANTLR from within Emacs and - to create Makefile rules. + * progmodes/antlr-mode.el: New commands to run ANTLR from within + Emacs and to create Makefile rules. (antlr-tool-command): New user option. (antlr-ask-about-save): New user option. (antlr-makefile-specification): New user option. @@ -7942,7 +7939,7 @@ (antlr-insert-makefile-rules): New function. (antlr-show-makefile-rules): New command. - * antlr-mode.el: More Emacs/XEmacs stuff. + * progmodes/antlr-mode.el: More Emacs/XEmacs stuff. (antlr-no-action-keywords): New constant with value nil. (antlr-font-lock-keywords-alist): Use it. Old value would break syntax highlighting in Emacs-21.0. @@ -7952,7 +7949,7 @@ 2000-11-29 Christoph Wedler - * antlr-mode.el: imenu, parsing and highlighting changes. + * progmodes/antlr-mode.el: imenu, parsing and highlighting changes. (antlr-imenu-create-index-function): Don't create extra submenus for definitions in different grammar classes. It is not necessary for the menu and would make command `imenu' awkward to use. @@ -7967,7 +7964,7 @@ 2000-11-29 Christoph Wedler - * antlr-mode.el: Minor changes: language setting. + * progmodes/antlr-mode.el: Minor changes: language setting. (antlr-language-alist): The value for file option "language" can be both an identifier and a string. Reported by Rajesh Radhakrishnan . @@ -7975,7 +7972,7 @@ 2000-11-29 Christoph Wedler - * antlr-mode.el: Minor changes: tabs, hiding. + * progmodes/antlr-mode.el: Minor changes: tabs, hiding. (antlr-tab-offset-alist): Set `indent-tabs-mode' to nil instead t. (antlr-action-visibility): Also allow value nil to also hide the braces. Renamed from `antlr-tiny-action-length'. @@ -17227,7 +17224,7 @@ 2000-05-29 Christoph Wedler - * antlr-mode.el: New commands: hide/unhide actions, + * progmodes/antlr-mode.el: New commands: hide/unhide actions, upcase/downcase literals. (antlr-tiny-action-length): New user option. (antlr-hide-actions): New command. Suggested by @@ -17237,11 +17234,11 @@ (antlr-downcase-literals): New command. (antlr-upcase-literals): Ditto. - * antlr-mode.el: Minor changes: indentation, mode-name. + * progmodes/antlr-mode.el: Minor changes: indentation, mode-name. (antlr-indent-line): Indent cpp directive at column 0. (antlr-mode): Use mode-name prefix "Antlr." instead of "Antlr/". - * antlr-mode.el: XEmacs bug workaround, XEmacs hint. + * progmodes/antlr-mode.el: XEmacs bug workaround, XEmacs hint. (antlr-font-lock-additional-keywords): Workaround for intentional bug in XEmacs version of font-lock. (antlr-mode): Set symbol property `mode-name' to "Antlr". Could ------------------------------------------------------------ revno: 116022 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16410 committer: Stefan Monnier branch nick: trunk timestamp: Mon 2014-01-13 21:51:52 -0500 message: * lisp/emacs-lisp/edebug.el (edebug--display): Move protective let-binding so it applies in the right buffer. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-13 23:50:20 +0000 +++ lisp/ChangeLog 2014-01-14 02:51:52 +0000 @@ -1,3 +1,8 @@ +2014-01-14 Stefan Monnier + + * emacs-lisp/edebug.el (edebug--display): Move protective let-binding + so it applies in the right buffer (bug#16410). + 2014-01-13 Daniel Colascione * textmodes/rst.el (rst-define-key): Provide deprecated === modified file 'lisp/emacs-lisp/edebug.el' --- lisp/emacs-lisp/edebug.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/edebug.el 2014-01-14 02:51:52 +0000 @@ -2405,9 +2405,7 @@ (edebug-outside-d-c-i-n-s-w (default-value 'cursor-in-non-selected-windows))) (unwind-protect - (let ((overlay-arrow-position overlay-arrow-position) - (overlay-arrow-string overlay-arrow-string) - (cursor-in-echo-area nil) + (let ((cursor-in-echo-area nil) (unread-command-events nil) ;; any others?? ) @@ -2468,136 +2466,141 @@ (edebug-stop) ;; (discard-input) ; is this unfriendly?? )) - ;; Now display arrow based on mode. - (edebug-overlay-arrow) - - (cond - ((eq 'error arg-mode) - ;; Display error message - (setq edebug-execution-mode 'step) - (edebug-overlay-arrow) - (beep) - (if (eq 'quit (car value)) - (message "Quit") - (edebug-report-error value))) - (edebug-break - (cond - (edebug-global-break - (message "Global Break: %s => %s" - edebug-global-break-condition - edebug-global-break-result)) - (edebug-break-condition - (message "Break: %s => %s" - edebug-break-condition - edebug-break-result)) - ((not (eq edebug-execution-mode 'Continue-fast)) - (message "Break")) - (t))) - - (t (message ""))) - - (if (eq 'after arg-mode) - (progn - ;; Display result of previous evaluation. - (if (and edebug-break - (not (eq edebug-execution-mode 'Continue-fast))) - (sit-for edebug-sit-for-seconds)) ; Show message. - (edebug-previous-result))) - - (cond - (edebug-break - (cond - ((eq edebug-execution-mode 'continue) - (sit-for edebug-sit-for-seconds)) - ((eq edebug-execution-mode 'Continue-fast) (sit-for 0)) - (t (setq edebug-stop t)))) - ;; not edebug-break - ((eq edebug-execution-mode 'trace) - (sit-for edebug-sit-for-seconds)) ; Force update and pause. - ((eq edebug-execution-mode 'Trace-fast) - (sit-for 0))) ; Force update and continue. - - (unwind-protect - (if (or edebug-stop - (memq edebug-execution-mode '(step next)) - (eq arg-mode 'error)) - (progn - ;; (setq edebug-execution-mode 'step) - ;; (edebug-overlay-arrow) ; This doesn't always show up. - (edebug--recursive-edit arg-mode))) ; <----- Recursive edit - - ;; Reset the edebug-window-data to whatever it is now. - (let ((window (if (eq (window-buffer) edebug-buffer) - (selected-window) - (get-buffer-window edebug-buffer)))) - ;; Remember window-start for edebug-buffer, if still displayed. - (if window - (progn - (setcar edebug-window-data window) - (setcdr edebug-window-data (window-start window))))) - - ;; Save trace window point before restoring outside windows. - ;; Could generalize this for other buffers. - (setq edebug-trace-window (get-buffer-window edebug-trace-buffer)) - (if edebug-trace-window - (setq edebug-trace-window-start - (and edebug-trace-window - (window-start edebug-trace-window)))) - - ;; Restore windows before continuing. - (if edebug-save-windows - (progn - (edebug-set-windows edebug-outside-windows) - - ;; Restore displayed buffer points. - ;; Needed even if restoring windows because - ;; window-points are not restored. (should they be??) - (if edebug-save-displayed-buffer-points - (edebug-set-buffer-points edebug-buffer-points)) - - ;; Unrestore trace window's window-point. - (if edebug-trace-window - (set-window-start edebug-trace-window - edebug-trace-window-start)) - - ;; Unrestore edebug-buffer's window-start, if displayed. - (let ((window (car edebug-window-data))) - (if (and (edebug-window-live-p window) - (eq (window-buffer) edebug-buffer)) - (progn - (set-window-start window (cdr edebug-window-data) - 'no-force) - ;; Unrestore edebug-buffer's window-point. - ;; Needed in addition to setting the buffer point - ;; - otherwise quitting doesn't leave point as is. - ;; But this causes point to not be restored at times. - ;; Also, it may not be a visible window. - ;; (set-window-point window edebug-point) - ))) - - ;; Unrestore edebug-buffer's point. Rerestored below. - ;; (goto-char edebug-point) ;; in edebug-buffer - ) - ;; Since we may be in a save-excursion, in case of quit, - ;; reselect the outside window only. - ;; Only needed if we are not recovering windows?? - (if (edebug-window-live-p edebug-outside-window) - (select-window edebug-outside-window)) - ) ; if edebug-save-windows - - ;; Restore current buffer always, in case application needs it. - (if (buffer-name edebug-outside-buffer) - (set-buffer edebug-outside-buffer)) - ;; Restore point, and mark. - ;; Needed even if restoring windows because - ;; that doesn't restore point and mark in the current buffer. - ;; But don't restore point if edebug-buffer is current buffer. - (if (not (eq edebug-buffer edebug-outside-buffer)) - (goto-char edebug-outside-point)) - (if (marker-buffer (edebug-mark-marker)) - ;; Does zmacs-regions need to be nil while doing set-marker? - (set-marker (edebug-mark-marker) edebug-outside-mark)) - ) ; unwind-protect + + ;; Make sure we bind those in the right buffer (bug#16410). + (let ((overlay-arrow-position overlay-arrow-position) + (overlay-arrow-string overlay-arrow-string)) + ;; Now display arrow based on mode. + (edebug-overlay-arrow) + + (cond + ((eq 'error arg-mode) + ;; Display error message + (setq edebug-execution-mode 'step) + (edebug-overlay-arrow) + (beep) + (if (eq 'quit (car value)) + (message "Quit") + (edebug-report-error value))) + (edebug-break + (cond + (edebug-global-break + (message "Global Break: %s => %s" + edebug-global-break-condition + edebug-global-break-result)) + (edebug-break-condition + (message "Break: %s => %s" + edebug-break-condition + edebug-break-result)) + ((not (eq edebug-execution-mode 'Continue-fast)) + (message "Break")) + (t))) + + (t (message ""))) + + (if (eq 'after arg-mode) + (progn + ;; Display result of previous evaluation. + (if (and edebug-break + (not (eq edebug-execution-mode 'Continue-fast))) + (sit-for edebug-sit-for-seconds)) ; Show message. + (edebug-previous-result))) + + (cond + (edebug-break + (cond + ((eq edebug-execution-mode 'continue) + (sit-for edebug-sit-for-seconds)) + ((eq edebug-execution-mode 'Continue-fast) (sit-for 0)) + (t (setq edebug-stop t)))) + ;; not edebug-break + ((eq edebug-execution-mode 'trace) + (sit-for edebug-sit-for-seconds)) ; Force update and pause. + ((eq edebug-execution-mode 'Trace-fast) + (sit-for 0))) ; Force update and continue. + + (unwind-protect + (if (or edebug-stop + (memq edebug-execution-mode '(step next)) + (eq arg-mode 'error)) + (progn + ;; (setq edebug-execution-mode 'step) + ;; (edebug-overlay-arrow) ; This doesn't always show up. + (edebug--recursive-edit arg-mode))) ; <--- Recursive edit + + ;; Reset the edebug-window-data to whatever it is now. + (let ((window (if (eq (window-buffer) edebug-buffer) + (selected-window) + (get-buffer-window edebug-buffer)))) + ;; Remember window-start for edebug-buffer, if still displayed. + (if window + (progn + (setcar edebug-window-data window) + (setcdr edebug-window-data (window-start window))))) + + ;; Save trace window point before restoring outside windows. + ;; Could generalize this for other buffers. + (setq edebug-trace-window + (get-buffer-window edebug-trace-buffer)) + (if edebug-trace-window + (setq edebug-trace-window-start + (and edebug-trace-window + (window-start edebug-trace-window)))) + + ;; Restore windows before continuing. + (if edebug-save-windows + (progn + (edebug-set-windows edebug-outside-windows) + + ;; Restore displayed buffer points. + ;; Needed even if restoring windows because + ;; window-points are not restored. (should they be??) + (if edebug-save-displayed-buffer-points + (edebug-set-buffer-points edebug-buffer-points)) + + ;; Unrestore trace window's window-point. + (if edebug-trace-window + (set-window-start edebug-trace-window + edebug-trace-window-start)) + + ;; Unrestore edebug-buffer's window-start, if displayed. + (let ((window (car edebug-window-data))) + (if (and (edebug-window-live-p window) + (eq (window-buffer) edebug-buffer)) + (progn + (set-window-start window (cdr edebug-window-data) + 'no-force) + ;; Unrestore edebug-buffer's window-point. + ;; Needed in addition to setting the buffer point + ;; - otherwise quitting doesn't leave point as is. + ;; But can this causes point to not be restored. + ;; Also, it may not be a visible window. + ;; (set-window-point window edebug-point) + ))) + + ;; Unrestore edebug-buffer's point. Rerestored below. + ;; (goto-char edebug-point) ;; in edebug-buffer + ) + ;; Since we may be in a save-excursion, in case of quit, + ;; reselect the outside window only. + ;; Only needed if we are not recovering windows?? + (if (edebug-window-live-p edebug-outside-window) + (select-window edebug-outside-window)) + ) ; if edebug-save-windows + + ;; Restore current buffer always, in case application needs it. + (if (buffer-name edebug-outside-buffer) + (set-buffer edebug-outside-buffer)) + ;; Restore point, and mark. + ;; Needed even if restoring windows because + ;; that doesn't restore point and mark in the current buffer. + ;; But don't restore point if edebug-buffer is current buffer. + (if (not (eq edebug-buffer edebug-outside-buffer)) + (goto-char edebug-outside-point)) + (if (marker-buffer (edebug-mark-marker)) + ;; Does zmacs-regions need to be nil while doing set-marker? + (set-marker (edebug-mark-marker) edebug-outside-mark)) + )) ; unwind-protect ;; None of the following is done if quit or signal occurs. ;; Restore edebug-buffer's outside point. ------------------------------------------------------------ revno: 116021 committer: Paul Eggert branch nick: trunk timestamp: Mon 2014-01-13 17:19:42 -0800 message: Fix MinGW64 porting problem with _setjmp. Reported by Eli Zaretskii in: http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01297.html * image.c (FAST_SETJMP, FAST_LONGJMP): New macros, replacing the old _setjmp and _longjmp. All uses changed. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-01-13 23:41:43 +0000 +++ src/ChangeLog 2014-01-14 01:19:42 +0000 @@ -1,3 +1,11 @@ +2014-01-14 Paul Eggert + + Fix MinGW64 porting problem with _setjmp. + Reported by Eli Zaretskii in: + http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01297.html + * image.c (FAST_SETJMP, FAST_LONGJMP): New macros, replacing + the old _setjmp and _longjmp. All uses changed. + 2014-01-13 Daniel Colascione * textprop.c (Fremove_list_of_text_properties): Correctly === modified file 'src/image.c' --- src/image.c 2014-01-07 21:14:32 +0000 +++ src/image.c 2014-01-14 01:19:42 +0000 @@ -5608,24 +5608,26 @@ #endif /* WINDOWSNT */ -/* Possibly inefficient/inexact substitutes for _setjmp and _longjmp. - Do not use sys_setjmp, as PNG supports only jmp_buf. The _longjmp - substitute may munge the signal mask, but that should be OK here. - MinGW (MS-Windows) uses _setjmp and defines setjmp to _setjmp in - the system header setjmp.h; don't mess up that. */ -#ifndef HAVE__SETJMP -# define _setjmp(j) setjmp (j) -# define _longjmp longjmp +/* Fast implementations of setjmp and longjmp. Although setjmp and longjmp + will do, POSIX _setjmp and _longjmp (if available) are often faster. + Do not use sys_setjmp, as PNG supports only jmp_buf. + It's OK if the longjmp substitute restores the signal mask. */ +#ifdef HAVE__SETJMP +# define FAST_SETJMP(j) _setjmp (j) +# define FAST_LONGJMP _longjmp +#else +# define FAST_SETJMP(j) setjmp (j) +# define FAST_LONGJMP longjmp #endif -#if (PNG_LIBPNG_VER < 10500) -#define PNG_LONGJMP(ptr) (_longjmp ((ptr)->jmpbuf, 1)) +#if PNG_LIBPNG_VER < 10500 +#define PNG_LONGJMP(ptr) FAST_LONGJMP ((ptr)->jmpbuf, 1) #define PNG_JMPBUF(ptr) ((ptr)->jmpbuf) #else /* In libpng version 1.5, the jmpbuf member is hidden. (Bug#7908) */ -#define PNG_LONGJMP(ptr) (fn_png_longjmp ((ptr), 1)) +#define PNG_LONGJMP(ptr) fn_png_longjmp (ptr, 1) #define PNG_JMPBUF(ptr) \ - (*fn_png_set_longjmp_fn ((ptr), _longjmp, sizeof (jmp_buf))) + (*fn_png_set_longjmp_fn (ptr, FAST_LONGJMP, sizeof (jmp_buf))) #endif /* Error and warning handlers installed when the PNG library @@ -5810,7 +5812,7 @@ /* Set error jump-back. We come back here when the PNG library detects an error. */ - if (_setjmp (PNG_JMPBUF (png_ptr))) + if (FAST_SETJMP (PNG_JMPBUF (png_ptr))) { error: if (c->png_ptr) ------------------------------------------------------------ revno: 116020 committer: Daniel Colascione branch nick: trunk timestamp: Mon 2014-01-13 15:50:20 -0800 message: Fix rst-mode deprecated keybindings diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-13 22:13:44 +0000 +++ lisp/ChangeLog 2014-01-13 23:50:20 +0000 @@ -1,3 +1,9 @@ +2014-01-13 Daniel Colascione + + * textmodes/rst.el (rst-define-key): Provide deprecated + keybindings through named functions instead of anonymous ones so + that "??" doesn't appear in describe-mode output. + 2014-01-13 Bastien Guerry * simple.el (define-alternatives): Call the selected command === modified file 'lisp/textmodes/rst.el' --- lisp/textmodes/rst.el 2014-01-06 03:58:59 +0000 +++ lisp/textmodes/rst.el 2014-01-13 23:50:20 +0000 @@ -611,17 +611,28 @@ definitions should be in vector notation. These are defined as well but give an additional message." (define-key keymap key def) - (dolist (dep-key deprecated) - (define-key keymap dep-key - `(lambda () - ,(format "Deprecated binding for %s, use \\[%s] instead." def def) - (interactive) - (call-interactively ',def) - (message "[Deprecated use of key %s; use key %s instead]" - (key-description (this-command-keys)) - (key-description ,key)))))) - -;; Key bindings. + (when deprecated + (let* ((command-name (symbol-name def)) + (forwarder-function-name + (if (string-match "^rst-\\(.*\\)$" command-name) + (concat "rst-deprecated-" + (match-string 1 command-name)) + (error "not an RST command: %s" command-name))) + (forwarder-function (intern forwarder-function-name))) + (unless (fboundp forwarder-function) + (defalias forwarder-function + (lexical-let ((key key) (def def)) + (lambda () + (interactive) + (call-interactively def) + (message "[Deprecated use of key %s; use key %s instead]" + (key-description (this-command-keys)) + (key-description key)))) + (format "Deprecated binding for %s, use \\[%s] instead." + def def))) + (dolist (dep-key deprecated) + (define-key keymap dep-key forwarder-function))))) + ;; Key bindings. (defvar rst-mode-map (let ((map (make-sparse-keymap))) ------------------------------------------------------------ revno: 116019 [merge] committer: Daniel Colascione branch nick: trunk timestamp: Mon 2014-01-13 15:41:43 -0800 message: Correctly handle reaching the end of the interval tree. (Bug#15344) diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-01-13 11:30:30 +0000 +++ src/ChangeLog 2014-01-13 23:41:43 +0000 @@ -1,3 +1,8 @@ +2014-01-13 Daniel Colascione + + * textprop.c (Fremove_list_of_text_properties): Correctly + handle reaching the end of the interval tree. (Bug#15344) + 2014-01-13 Martin Rudalics * xdisp.c (resize_mini_window): Round height to a multiple of === modified file 'src/textprop.c' --- src/textprop.c 2014-01-01 07:43:34 +0000 +++ src/textprop.c 2014-01-13 23:40:16 +0000 @@ -1741,6 +1741,19 @@ } len -= LENGTH (i); i = next_interval (i); + if(!i) + { + if (modified) + { + if (BUFFERP (object)) + signal_after_change (XINT (start), + XINT (end) - XINT (start), + XINT (end) - XINT (start)); + return Qt; + } + else + return Qnil; + } } } ------------------------------------------------------------ revno: 116018 committer: Bastien Guerry branch nick: trunk timestamp: Mon 2014-01-13 23:24:29 +0100 message: Fix/enhance `define-alternatives' docstring again diff: === modified file 'lisp/simple.el' --- lisp/simple.el 2014-01-13 22:13:44 +0000 +++ lisp/simple.el 2014-01-13 22:24:29 +0000 @@ -7659,14 +7659,15 @@ The argument `COMMAND' should be a symbol. Running `M-x COMMAND RET' for the first time prompts for which -alternative to use and record the selected command as a custom +alternative to use and records the selected command as a custom variable. -Running `C-u M-x COMMAND RET' prompts again and overwrite the -previous choice. +Running `C-u M-x COMMAND RET' prompts again for an alternative +and overwrites the previous choice. The variable `COMMAND-alternatives' contains an alist with -alternative implementations of COMMAND. +alternative implementations of COMMAND. `define-alternatives' +does not have any effect until this variable is set. CUSTOMIZATIONS, if non-nil, should be composed of alternating `defcustom' keywords and values to add to the declaration of ------------------------------------------------------------ revno: 116017 committer: Paul Eggert branch nick: trunk timestamp: Mon 2014-01-13 14:21:32 -0800 message: Spelling fixes. diff: === modified file 'admin/admin.el' --- admin/admin.el 2014-01-04 03:18:33 +0000 +++ admin/admin.el 2014-01-13 22:21:32 +0000 @@ -78,7 +78,7 @@ (user-error "%s doesn't seem to be the root of an Emacs source tree" root)) ;; There's also a "version 3" (standing for GPLv3) at the end of ;; `README', but since `set-version-in-file' only replaces the first - ;; occurence, it won't be replaced. + ;; occurrence, it won't be replaced. (set-version-in-file root "README" version (rx (and "version" (1+ space) (submatch (1+ (in "0-9.")))))) === modified file 'doc/emacs/buffers.texi' --- doc/emacs/buffers.texi 2014-01-07 18:01:12 +0000 +++ doc/emacs/buffers.texi 2014-01-13 22:21:32 +0000 @@ -51,7 +51,7 @@ @menu * Select Buffer:: Creating a new buffer or reselecting an old one. * List Buffers:: Getting a list of buffers that exist. -* Misc Buffer:: Renaming; changing read-onlyness; copying text. +* Misc Buffer:: Renaming; changing read-only status; copying text. * Kill Buffer:: Killing buffers you no longer need. * Several Buffers:: How to go through the list of all buffers and operate variously on several of them. === modified file 'doc/emacs/emacs.texi' --- doc/emacs/emacs.texi 2014-01-10 02:44:51 +0000 +++ doc/emacs/emacs.texi 2014-01-13 22:21:32 +0000 @@ -493,7 +493,7 @@ * Select Buffer:: Creating a new buffer or reselecting an old one. * List Buffers:: Getting a list of buffers that exist. -* Misc Buffer:: Renaming; changing read-onlyness; copying text. +* Misc Buffer:: Renaming; changing read-only status; copying text. * Kill Buffer:: Killing buffers you no longer need. * Several Buffers:: How to go through the list of all buffers and operate variously on several of them. === modified file 'doc/misc/org.texi' --- doc/misc/org.texi 2014-01-07 16:59:24 +0000 +++ doc/misc/org.texi 2014-01-13 22:21:32 +0000 @@ -10690,7 +10690,7 @@ @cindex property, EXPORT_FILE_NAME When exporting only a subtree, each of the previous keywords@footnote{With -the exception of @samp{SETUPFILE}.} can be overriden locally by special node +the exception of @samp{SETUPFILE}.} can be overridden locally by special node properties. These begin with @samp{EXPORT_}, followed by the name of the keyword they supplant. For example, @samp{DATE} and @samp{OPTIONS} keywords become, respectively, @samp{EXPORT_DATE} and @samp{EXPORT_OPTIONS} === modified file 'doc/misc/todo-mode.texi' --- doc/misc/todo-mode.texi 2014-01-06 05:25:46 +0000 +++ doc/misc/todo-mode.texi 2014-01-13 22:21:32 +0000 @@ -443,7 +443,7 @@ @item F e This command (@code{todo-edit-file}) changes the buffer's major mode to Todo Edit mode. In this mode the entire file is visible, the buffer is -writeable and you can use the self-insertion keys and standard Emacs +writable and you can use the self-insertion keys and standard Emacs editing commands to make changes. To return to Todo mode, type @kbd{C-x C-q} (@code{todo-edit-quit}). === modified file 'lisp/calendar/todo-mode.el' --- lisp/calendar/todo-mode.el 2014-01-01 07:43:34 +0000 +++ lisp/calendar/todo-mode.el 2014-01-13 22:21:32 +0000 @@ -1204,7 +1204,7 @@ (defun todo-edit-file () "Put current buffer in `todo-edit-mode'. -This makes the entire file visible and the buffer writeable and +This makes the entire file visible and the buffer writable and you can use the self-insertion keys and standard Emacs editing commands to make changes. To return to Todo mode, type \\[todo-edit-quit]. This runs a file format check, signaling @@ -5560,7 +5560,7 @@ (if (or (eq name 'default) (eq name 'calendar) (eq name 'here)) - " { " " ") + " { " " ") "%s=>%s" (when (or (eq name 'copy) (eq name 'dayname) === modified file 'lisp/eshell/esh-mode.el' --- lisp/eshell/esh-mode.el 2014-01-01 07:43:34 +0000 +++ lisp/eshell/esh-mode.el 2014-01-13 22:21:32 +0000 @@ -482,7 +482,7 @@ (declare-function find-tag-interactive "etags" (prompt &optional no-default)) (defun eshell-find-tag (&optional tagname next-p regexp-p) - "A special version of `find-tag' that ignores read-onlyness." + "A special version of `find-tag' that ignores whether the text is read-only." (interactive) (require 'etags) (let ((inhibit-read-only t) === modified file 'lisp/gnus/nndiary.el' --- lisp/gnus/nndiary.el 2014-01-01 07:43:34 +0000 +++ lisp/gnus/nndiary.el 2014-01-13 22:21:32 +0000 @@ -1314,6 +1314,8 @@ res)) (sort res 'time-less-p))) +;; FIXME: "occurrence" is misspelled in this function name. + (defun nndiary-last-occurence (sched) ;; Returns the last occurrence of schedule SCHED as an Emacs time struct, or ;; nil for permanent schedule or errors. @@ -1394,6 +1396,8 @@ nil)) )))) +;; FIXME: "occurrence" is misspelled in this function name. + (defun nndiary-next-occurence (sched now) ;; Returns the next occurrence of schedule SCHED, starting from time NOW. ;; If there's no next occurrence, returns the last one (if any) which is then === modified file 'lisp/net/ange-ftp.el' --- lisp/net/ange-ftp.el 2014-01-01 07:43:34 +0000 +++ lisp/net/ange-ftp.el 2014-01-13 22:21:32 +0000 @@ -364,7 +364,7 @@ ;; ;; Filename syntax: ;; -;; CMS filenames are entered in a UNIX-y way. In otherwords, minidisks are +;; CMS filenames are entered in a UNIX-y way. In other words, minidisks are ;; treated as UNIX directories. For example to access the file READ.ME in ;; minidisk *.311 on cuvmb.cc.columbia.edu, you would enter ;; /anonymous@cuvmb.cc.columbia.edu:/*.311/READ.ME === modified file 'lisp/speedbar.el' --- lisp/speedbar.el 2014-01-01 07:43:34 +0000 +++ lisp/speedbar.el 2014-01-13 22:21:32 +0000 @@ -2969,7 +2969,7 @@ (run-hook-with-args 'speedbar-vc-in-control-hook directory name) )) -;; Objet File scanning +;; Object File scanning (defun speedbar-check-objects () "Scan all files in a directory, and for each see if there is an object. See `speedbar-check-obj-this-line' and `speedbar-obj-alist' for how === modified file 'test/ChangeLog' --- test/ChangeLog 2014-01-13 10:53:36 +0000 +++ test/ChangeLog 2014-01-13 22:21:32 +0000 @@ -583,7 +583,7 @@ * automated/file-notify-tests.el (file-notify--test-local-enabled): New defconst. Replaces all - `file-notify-support' occurences. + `file-notify-support' occurrences. (file-notify--test-remote-enabled): New defun. (file-notify--deftest-remote): Use it. (file-notify-test00-availability): Rewrite. ------------------------------------------------------------ revno: 116016 committer: Bastien Guerry branch nick: trunk timestamp: Mon 2014-01-13 23:13:44 +0100 message: `define-alternatives' bugfix and UI enhancement * simple.el (define-alternatives): Call the selected command interactively. When setting `COMMAND--implementation' for the first time, tell the user how to chose another implementation. Enhance the docstring. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-13 15:33:01 +0000 +++ lisp/ChangeLog 2014-01-13 22:13:44 +0000 @@ -1,3 +1,10 @@ +2014-01-13 Bastien Guerry + + * simple.el (define-alternatives): Call the selected command + interactively. When setting `COMMAND--implementation' for the + first time, tell the user how to chose another implementation. + Enhance the docstring. + 2014-01-13 Stefan Monnier * vc/log-edit.el: Fix highlighting of summary when it's the first line. === modified file 'lisp/simple.el' --- lisp/simple.el 2014-01-12 04:00:03 +0000 +++ lisp/simple.el 2014-01-13 22:13:44 +0000 @@ -7654,10 +7654,20 @@ ;; ;;;###autoload (push '("My impl name" . my-impl-symbol) COMMAND-alternatives (defmacro define-alternatives (command &rest customizations) - "Define new command `COMMAND'. -The variable `COMMAND-alternatives' will contain alternative -implementations of COMMAND, so that running `C-u M-x COMMAND' -will allow the user to chose among them. + "Define the new command `COMMAND'. + +The argument `COMMAND' should be a symbol. + +Running `M-x COMMAND RET' for the first time prompts for which +alternative to use and record the selected command as a custom +variable. + +Running `C-u M-x COMMAND RET' prompts again and overwrite the +previous choice. + +The variable `COMMAND-alternatives' contains an alist with +alternative implementations of COMMAND. + CUSTOMIZATIONS, if non-nil, should be composed of alternating `defcustom' keywords and values to add to the declaration of `COMMAND-alternatives' (typically :group and :version)." @@ -7688,13 +7698,19 @@ (interactive "P") (when (or arg (null ,varimp-sym)) (let ((val (completing-read - ,(format "Select implementation for command `%s': " command-name) - ,varalt-sym nil t))) + ,(format "Select implementation for command `%s': " + command-name) + ,varalt-sym nil t))) (unless (string-equal val "") - (customize-save-variable ',varimp-sym - (cdr (assoc-string val ,varalt-sym)))))) + (when (null ,varimp-sym) + (message + "Use `C-u M-x %s RET' to select another implementation" + ,command-name) + (sit-for 3)) + (customize-save-variable ',varimp-sym + (cdr (assoc-string val ,varalt-sym)))))) (if ,varimp-sym - (funcall ,varimp-sym) + (call-interactively ,varimp-sym) (message ,(format "No implementation selected for command `%s'" command-name))))))) ------------------------------------------------------------ revno: 116015 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-01-13 16:17:18 -0500 message: * admin/update_autogen (status): New function. Use throughout. diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2014-01-10 18:59:54 +0000 +++ admin/ChangeLog 2014-01-13 21:17:18 +0000 @@ -1,3 +1,7 @@ +2014-01-13 Glenn Morris + + * update_autogen (status): New function. Use throughout. + 2014-01-10 Glenn Morris * update_autogen: Fix sed bug that was losing the last AUTOGEN_VCS. === modified file 'admin/update_autogen' --- admin/update_autogen 2014-01-10 18:59:54 +0000 +++ admin/update_autogen 2014-01-13 21:17:18 +0000 @@ -140,24 +140,36 @@ [ "$quiet" ] && exec 1> /dev/null -echo "Running bzr status..." - -bzr status -S ${autogendir:+$sources} ${ldefs_flag:+lisp} \ - ${info_flag:+doc} >| $tempfile || \ - die "bzr status error for input files" +## Run status on inputs, list modified files on stdout. +status () +{ + bzr status -S "$@" >| $tempfile || die "bzr status error for $@" + + local stat file modified + + while read stat file; do + + [ "$stat" != "M" ] && \ + die "Unexpected status ($stat) for generated $file" + modified="$modified $file" + + done < $tempfile + + echo "$modified" + + return 0 +} # function status + + +echo "Checking input file status..." ## The lisp portion could be more permissive, eg only care about .el files. -while read stat file; do - - case $stat in - M) - echo "Locally modified: $file" - [ "$force" ] || die "There are local modifications" - ;; - - *) die "Unexpected status ($stat) for $file" ;; - esac -done < $tempfile +modified=$(status ${autogendir:+$sources} ${ldefs_flag:+lisp} ${info_flag:+doc}) || die + +[ "$modified" ] && { + echo "Locally modified: $modified" + [ "$force" ] || die "There are local modifications" +} ## Probably this is overkill, and there's no need to "bootstrap" just @@ -259,21 +271,11 @@ done done - bzr status -S $outfile >| $tempfile || \ - die "bzr status error for generated $outfile" - local modified - while read stat file; do - - [ "$stat" != "M" ] && \ - die "Unexpected status ($stat) for generated $file" - - modified="$modified $file" - - done < $tempfile - - commit "info/dir" $modified || die "bzr commit error" + modified=$(status $outfile) || die + + commit "info/dir" $modified || die "commit error" } # function info_dir @@ -287,23 +289,11 @@ echo "Checking status of generated files..." - bzr status -S $basegen >| $tempfile || \ - die "bzr status error for generated files" - - modified= - - while read stat file; do - - [ "$stat" != "M" ] && \ - die "Unexpected status ($stat) for generated $file" - - modified="$modified $file" - - done < $tempfile + modified=$(status $basegen) || die cd $oldpwd - commit "generated" $modified || die "bzr commit error" + commit "generated" $modified || die "commit error" exit 0 } # $autogendir @@ -371,24 +361,13 @@ ## It probably would be fine to just check+commit lisp/, since ## making autoloads should not effect any other files. But better ## safe than sorry. -bzr status -S $genfiles ${ldefs_out#lisp/} >| $tempfile || \ - die "bzr status error for generated files" - - -modified= - -while read stat file; do - - [ "$stat" != "M" ] && die "Unexpected status ($stat) for generated $file" - modified="$modified $file" - -done < $tempfile +modified=$(status $genfiles ${ldefs_out#lisp/}) || die cd ../ -commit "loaddefs" $modified || die "bzr commit error" +commit "loaddefs" $modified || die "commit error" exit 0 ------------------------------------------------------------ revno: 116014 [merge] committer: David Engster branch nick: trunk timestamp: Mon 2014-01-13 21:09:40 +0100 message: Merge bugfixes from CEDET upstream. diff: === modified file 'lisp/cedet/ChangeLog' --- lisp/cedet/ChangeLog 2014-01-11 03:55:50 +0000 +++ lisp/cedet/ChangeLog 2014-01-13 20:04:08 +0000 @@ -1,3 +1,15 @@ +2014-01-13 Eric Ludlam + + * semantic/analyze/refs.el (semantic-analyze-refs-impl): Fix Typo + in a doc string. + * semantic/ia.el (semantic-ia-complete-symbol): Ignore case if + prefix is all lower case. + (semantic-ia-fast-jump): Push mark before jumping to an include + file. + * semantic/complete.el (semantic-displayor-point-position): + Calculate if the toolbar is on the left when calculating point + position. + 2014-01-08 Paul Eggert Spelling fixes. === modified file 'lisp/cedet/semantic/analyze/refs.el' --- lisp/cedet/semantic/analyze/refs.el 2014-01-01 07:43:34 +0000 +++ lisp/cedet/semantic/analyze/refs.el 2014-01-13 20:04:08 +0000 @@ -109,7 +109,7 @@ ) (semanticdb-find-result-mapc (lambda (T DB) - "Examine T in the database DB, and sont it." + "Examine T in the database DB, and sort it." (let* ((ans (semanticdb-normalize-one-tag DB T)) (aT (cdr ans)) (aDB (car ans)) === modified file 'lisp/cedet/semantic/complete.el' --- lisp/cedet/semantic/complete.el 2014-01-06 06:25:30 +0000 +++ lisp/cedet/semantic/complete.el 2014-01-13 20:04:08 +0000 @@ -1718,9 +1718,14 @@ "Return the location of POINT as positioned on the selected frame. Return a cons cell (X . Y)" (let* ((frame (selected-frame)) - (left (or (car-safe (cdr-safe (frame-parameter frame 'left))) - (frame-parameter frame 'left))) - (top (or (car-safe (cdr-safe (frame-parameter frame 'top))) + (toolbarleft + (if (eq (cdr (assoc 'tool-bar-position default-frame-alist)) 'left) + (tool-bar-pixel-width) + 0)) + (left (+ (or (car-safe (cdr-safe (frame-parameter frame 'left))) + (frame-parameter frame 'left)) + toolbarleft)) + (top (or (car-safe (cdr-safe (frame-parameter frame 'top))) (frame-parameter frame 'top))) (point-pix-pos (posn-x-y (posn-at-point))) (edges (window-inside-pixel-edges (selected-window)))) === modified file 'lisp/cedet/semantic/ia.el' --- lisp/cedet/semantic/ia.el 2014-01-01 07:43:34 +0000 +++ lisp/cedet/semantic/ia.el 2014-01-13 20:04:08 +0000 @@ -123,7 +123,8 @@ ;; the smart completion engine sometimes fails. (semantic-complete-symbol)) ;; Use try completion to seek a common substring. - (let ((tc (try-completion (or pre "") syms))) + (let* ((completion-ignore-case (string= (downcase pre) pre)) + (tc (try-completion (or pre "") syms))) (if (and (stringp tc) (not (string= tc (or pre "")))) (let ((tok (semantic-find-first-tag-by-name tc syms))) @@ -376,6 +377,13 @@ ((semantic-tag-of-class-p (semantic-current-tag) 'include) ;; Just borrow this cool fcn. (require 'semantic/decorate/include) + + ;; Push the mark, so you can pop global mark back, or + ;; use semantic-mru-bookmark mode to do so. + (push-mark) + (when (fboundp 'push-tag-mark) + (push-tag-mark)) + (semantic-decoration-include-visit) ) ------------------------------------------------------------ revno: 116013 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-01-13 14:48:17 -0500 message: Fix comment typo in previous, sigh diff: === modified file 'Makefile.in' --- Makefile.in 2014-01-13 19:44:04 +0000 +++ Makefile.in 2014-01-13 19:48:17 +0000 @@ -375,7 +375,7 @@ # is not wrong, but is overkill in 99.99% of the cases. # # Note the use of single quotes in the value of vcswitness. -# This passes an unexpanded $scrdir to src's Makefile, which then +# This passes an unexpanded $srcdir to src's Makefile, which then # expands it using its own value of srcdir (which points to the # source directory of src/). src: Makefile FRC ------------------------------------------------------------ revno: 116012 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-01-13 14:44:04 -0500 message: * Makefile.in: Comment. diff: === modified file 'Makefile.in' --- Makefile.in 2014-01-12 18:02:45 +0000 +++ Makefile.in 2014-01-13 19:44:04 +0000 @@ -373,6 +373,11 @@ # file src/foo.c forces dumping a new bootstrap-emacs, then re-byte-compiling # all preloaded elisp files, and only then dump the actual src/emacs, which # is not wrong, but is overkill in 99.99% of the cases. +# +# Note the use of single quotes in the value of vcswitness. +# This passes an unexpanded $scrdir to src's Makefile, which then +# expands it using its own value of srcdir (which points to the +# source directory of src/). src: Makefile FRC dirstate='.bzr/checkout/dirstate'; \ vcswitness='$$(srcdir)/../'$$dirstate; \ ------------------------------------------------------------ revno: 116011 committer: Stefan Monnier branch nick: trunk timestamp: Mon 2014-01-13 10:33:01 -0500 message: * lisp/vc/log-edit.el: Fix highlighting of summary when it's the first line. (log-edit--match-first-line): New function. (log-edit-font-lock-keywords): Use it. (log-edit-mode): Make jit-lock-defer-multiline work. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-13 10:55:22 +0000 +++ lisp/ChangeLog 2014-01-13 15:33:01 +0000 @@ -1,3 +1,10 @@ +2014-01-13 Stefan Monnier + + * vc/log-edit.el: Fix highlighting of summary when it's the first line. + (log-edit--match-first-line): New function. + (log-edit-font-lock-keywords): Use it. + (log-edit-mode): Make jit-lock-defer-multiline work. + 2014-01-13 Bastien Guerry * rect.el (rectangle-mark-mode): When the region is not active, @@ -19,8 +26,8 @@ 2014-01-13 Martin Rudalics fit-frame/window-to-buffer code fixes including one for Bug#14096. - * window.el (fit-frame-to-buffer): Fix doc-string. Respect - window-min-height/-width. Fit pixelwise when + * window.el (fit-frame-to-buffer): Fix doc-string. + Respect window-min-height/-width. Fit pixelwise when frame-resize-pixelwise is non-nil. Adjust right/bottom edge when avoiding that frame goes partially off-screen. (fit-window-to-buffer): Respect window-min-height/-width === modified file 'lisp/vc/log-edit.el' --- lisp/vc/log-edit.el 2014-01-01 07:43:34 +0000 +++ lisp/vc/log-edit.el 2014-01-13 15:33:01 +0000 @@ -355,6 +355,21 @@ (set-match-data (list start (point))) (point)))) +(defun log-edit--match-first-line (limit) + (let ((start (point))) + (rfc822-goto-eoh) + (skip-chars-forward "\n") + (and (< start (line-end-position)) + (< (point) limit) + (save-excursion + (not (re-search-backward "^Summary:[ \t]*[^ \t\n]" nil t))) + (looking-at ".+") + (progn + (goto-char (match-end 0)) + (put-text-property (point-min) (point) + 'jit-lock-defer-multiline t) + (point))))) + (defvar log-edit-font-lock-keywords ;; Copied/inspired by message-font-lock-keywords. `((log-edit-match-to-eoh @@ -370,7 +385,8 @@ nil lax)) ("^\n" (progn (goto-char (match-end 0)) (1+ (match-end 0))) nil - (0 '(:height 0.1 :inverse-video t)))))) + (0 '(:height 0.1 :inverse-video t)))) + (log-edit--match-first-line (0 'log-edit-summary)))) (defvar log-edit-font-lock-gnu-style nil "If non-nil, highlight common failures to follow the GNU coding standards.") @@ -473,6 +489,7 @@ \\{log-edit-mode-map}" (set (make-local-variable 'font-lock-defaults) '(log-edit-font-lock-keywords t)) + (setq-local jit-lock-contextually t) ;For the "first line is summary". (make-local-variable 'log-edit-comment-ring-index) (add-hook 'kill-buffer-hook 'log-edit-remember-comment nil t) (hack-dir-local-variables-non-file-buffer)) ------------------------------------------------------------ revno: 116010 committer: Xue Fuqiao branch nick: trunk timestamp: Mon 2014-01-13 23:22:47 +0800 message: Minor doc fix for Flymake. diff: === modified file 'doc/misc/flymake.texi' --- doc/misc/flymake.texi 2014-01-06 05:25:46 +0000 +++ doc/misc/flymake.texi 2014-01-13 15:22:47 +0000 @@ -87,7 +87,7 @@ menu item will automatically open the file and jump to the line with error. -Syntax check is done 'on-the-fly'. It is started whenever +Syntax check is done ``on-the-fly''. It is started whenever @itemize @bullet @item buffer is loaded ------------------------------------------------------------ revno: 116009 committer: martin rudalics branch nick: trunk timestamp: Mon 2014-01-13 12:30:30 +0100 message: Fix bug when resizing mini window (Bug#16424). * xdisp.c (resize_mini_window): Round height to a multiple of frame's line height. Fix bug in calculation of window start position (Bug#16424). diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-01-13 10:32:48 +0000 +++ src/ChangeLog 2014-01-13 11:30:30 +0000 @@ -1,3 +1,9 @@ +2014-01-13 Martin Rudalics + + * xdisp.c (resize_mini_window): Round height to a multiple of + frame's line height. Fix bug in calculation of window start + position (Bug#16424). + 2014-01-13 Jan Djärv * macfont.m: Include termchar.h. === modified file 'src/xdisp.c' --- src/xdisp.c 2014-01-11 11:54:08 +0000 +++ src/xdisp.c 2014-01-13 11:30:30 +0000 @@ -10658,9 +10658,9 @@ /* Compute a suitable window start. */ if (height > max_height) { - height = max_height; + height = (max_height / unit) * unit; init_iterator (&it, w, ZV, ZV_BYTE, NULL, DEFAULT_FACE_ID); - move_it_vertically_backward (&it, height); + move_it_vertically_backward (&it, height - unit); start = it.current.pos; } else ------------------------------------------------------------ revno: 116008 committer: Bastien Guerry branch nick: trunk timestamp: Mon 2014-01-13 11:55:22 +0100 message: Partially fix Bug#16403. * rect.el (rectangle-mark-mode): When the region is not active, display a message saying that the mark as been set and that rectangle mode is in use. (rectangle--highlight-for-redisplay): Only put an overlay with a visible vertical bar when (display-graphic-p) is non-nil. This partially fixes Bug#16403. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-13 08:04:09 +0000 +++ lisp/ChangeLog 2014-01-13 10:55:22 +0000 @@ -1,3 +1,12 @@ +2014-01-13 Bastien Guerry + + * rect.el (rectangle-mark-mode): When the region is not active, + display a message saying that the mark as been set and that + rectangle mode is in use. + (rectangle--highlight-for-redisplay): Only put an overlay with a + visible vertical bar when (display-graphic-p) is non-nil. + This partially fixes Bug#16403. + 2014-01-13 Juri Linkov * info.el (Info-find-file): Go to DIR before displaying the error === modified file 'lisp/rect.el' --- lisp/rect.el 2014-01-01 07:43:34 +0000 +++ lisp/rect.el 2014-01-13 10:55:22 +0000 @@ -444,7 +444,8 @@ (lambda () (rectangle-mark-mode -1))) (unless (region-active-p) (push-mark) - (activate-mark)))) + (activate-mark) + (message "Mark set (rectangle mode)")))) (defun rectangle--extract-region (orig &optional delete) (if (not rectangle-mark-mode) @@ -553,10 +554,10 @@ (overlay-put ol 'after-string str)))) ((overlay-get ol 'after-string) (overlay-put ol 'after-string nil))) - (when (= leftcol rightcol) + (when (and (= leftcol rightcol) (display-graphic-p)) ;; Make zero-width rectangles visible! - (overlay-put ol 'after-string - (concat (propertize " " + (overlay-put ol 'after-string + (concat (propertize " " 'face '(region (:height 0.2))) (overlay-get ol 'after-string)))) (push ol nrol) ------------------------------------------------------------ revno: 116007 committer: Michael Albinus branch nick: trunk timestamp: Mon 2014-01-13 11:53:36 +0100 message: Bug#13064 * automated/ert-tests.el (ert-test-record-backtrace): Reenable test case with adapted test string. (Bug#13064) diff: === modified file 'test/ChangeLog' --- test/ChangeLog 2014-01-11 03:55:50 +0000 +++ test/ChangeLog 2014-01-13 10:53:36 +0000 @@ -1,3 +1,8 @@ +2014-01-13 Michael Albinus + + * automated/ert-tests.el (ert-test-record-backtrace): Reenable + test case with adapted test string. (Bug#13064) + 2013-12-28 Glenn Morris * automated/electric-tests.el: Require 'elec-pair. === modified file 'test/automated/ert-tests.el' --- test/automated/ert-tests.el 2014-01-01 07:43:34 +0000 +++ test/automated/ert-tests.el 2014-01-13 10:53:36 +0000 @@ -375,18 +375,16 @@ (should-error (macroexpand '(ert-deftest ghi () :documentation "foo")))) -;; FIXME Test disabled due to persistent failure owing to lexical binding. -;; http://debbugs.gnu.org/13064 -;;; (ert-deftest ert-test-record-backtrace () -;;; (let ((test (make-ert-test :body (lambda () (ert-fail "foo"))))) -;;; (let ((result (ert-run-test test))) -;;; (should (ert-test-failed-p result)) -;;; (with-temp-buffer -;;; (ert--print-backtrace (ert-test-failed-backtrace result)) -;;; (goto-char (point-min)) -;;; (end-of-line) -;;; (let ((first-line (buffer-substring-no-properties (point-min) (point)))) -;;; (should (equal first-line " signal(ert-test-failed (\"foo\"))"))))))) +(ert-deftest ert-test-record-backtrace () + (let ((test (make-ert-test :body (lambda () (ert-fail "foo"))))) + (let ((result (ert-run-test test))) + (should (ert-test-failed-p result)) + (with-temp-buffer + (ert--print-backtrace (ert-test-failed-backtrace result)) + (goto-char (point-min)) + (end-of-line) + (let ((first-line (buffer-substring-no-properties (point-min) (point)))) + (should (equal first-line " (closure (ert--test-body-was-run t) nil (ert-fail \"foo\"))()"))))))) (ert-deftest ert-test-messages () :tags '(:causes-redisplay) ------------------------------------------------------------ revno: 116006 fixes bug: http://debbugs.gnu.org/16425 committer: Jan Djärv branch nick: trunk timestamp: Mon 2014-01-13 11:32:48 +0100 message: * macfont.m: Include termchar.h. (CG_SET_FILL_COLOR_WITH_FACE_FOREGROUND) (CG_SET_FILL_COLOR_WITH_FACE_BACKGROUND) (CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND): Modified from *_WITH_GC_* to take face and f as parameters. (macfont_draw): Check for DRAW_MOUSE_FACE and set face accordingly. Use *_WITH_FACE_*, and pass face as parameter. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-01-13 01:50:46 +0000 +++ src/ChangeLog 2014-01-13 10:32:48 +0000 @@ -1,3 +1,13 @@ +2014-01-13 Jan Djärv + + * macfont.m: Include termchar.h. + (CG_SET_FILL_COLOR_WITH_FACE_FOREGROUND) + (CG_SET_FILL_COLOR_WITH_FACE_BACKGROUND) + (CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND): Modified from + *_WITH_GC_* to take face and f as parameters. + (macfont_draw): Check for DRAW_MOUSE_FACE and set face accordingly. + Use *_WITH_FACE_*, and pass face as parameter (Bug#16425). + 2014-01-13 Daniel Colascione Fix menu item updating in the presence of the Unity global menu === modified file 'src/macfont.m' --- src/macfont.m 2014-01-06 06:25:30 +0000 +++ src/macfont.m 2014-01-13 10:32:48 +0000 @@ -30,6 +30,7 @@ #include "composite.h" #include "fontset.h" #include "font.h" +#include "termchar.h" #include "nsgui.h" #include "nsterm.h" #include "macfont.h" @@ -630,24 +631,21 @@ return cgColor; } -#define CG_SET_FILL_COLOR_WITH_GC_FOREGROUND(context, s) \ +#define CG_SET_FILL_COLOR_WITH_FACE_FOREGROUND(context, face, f) \ do { \ - CGColorRef refcol_ = get_cgcolor (NS_FACE_FOREGROUND (s->face), \ - s->f); \ + CGColorRef refcol_ = get_cgcolor (NS_FACE_FOREGROUND (face), f); \ CGContextSetFillColorWithColor (context, refcol_) ; \ CGColorRelease (refcol_); \ } while (0) -#define CG_SET_FILL_COLOR_WITH_GC_BACKGROUND(context, s) \ +#define CG_SET_FILL_COLOR_WITH_FACE_BACKGROUND(context, face, f) \ do { \ - CGColorRef refcol_ = get_cgcolor (NS_FACE_BACKGROUND (s->face),\ - s->f); \ + CGColorRef refcol_ = get_cgcolor (NS_FACE_BACKGROUND (face), f); \ CGContextSetFillColorWithColor (context, refcol_); \ CGColorRelease (refcol_); \ } while (0) -#define CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND(context, s) \ +#define CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND(context, face, f) \ do { \ - CGColorRef refcol_ = get_cgcolor (NS_FACE_FOREGROUND (s->face),\ - s->f); \ + CGColorRef refcol_ = get_cgcolor (NS_FACE_FOREGROUND (face), f); \ CGContextSetStrokeColorWithColor (context, refcol_); \ CGColorRelease (refcol_); \ } while (0) @@ -2719,6 +2717,7 @@ BOOL isComposite = s->first_glyph->type == COMPOSITE_GLYPH; int end = isComposite ? s->cmp_to : s->nchars; int len = end - s->cmp_from; + struct face *face = s->face; int i; block_input (); @@ -2741,7 +2740,14 @@ if (with_background) { - CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (context, s); + if (s->hl == DRAW_MOUSE_FACE) + { + face = FACE_FROM_ID (s->f, MOUSE_HL_INFO (s->f)->mouse_face_face_id); + if (!face) + face = FACE_FROM_ID (s->f, MOUSE_FACE_ID); + } + + CG_SET_FILL_COLOR_WITH_FACE_BACKGROUND (context, face, f); CGContextFillRect (context, CGRectMake (x, y, s->width, FONT_HEIGHT (s->font))); @@ -2776,7 +2782,7 @@ } CGContextScaleCTM (context, 1, -1); - CG_SET_FILL_COLOR_WITH_GC_FOREGROUND (context, s); + CG_SET_FILL_COLOR_WITH_FACE_FOREGROUND (context, face, s->f); if (macfont_info->synthetic_italic_p) atfm = synthetic_italic_atfm; else @@ -2785,7 +2791,7 @@ { CGContextSetTextDrawingMode (context, kCGTextFillStroke); CGContextSetLineWidth (context, synthetic_bold_factor * font_size); - CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND (context, s); + CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND (context, face, f); } if (no_antialias_p) CGContextSetShouldAntialias (context, false); ------------------------------------------------------------ revno: 116005 fixes bug: http://debbugs.gnu.org/16405 committer: Juri Linkov branch nick: trunk timestamp: Mon 2014-01-13 10:04:09 +0200 message: * lisp/info.el (Info-find-file): Go to DIR before displaying the error about a nonexistent file if no previous Info file is visited. Use `user-error' instead of `error' for "Info file %s does not exist". (Info-find-node-2): In case of a nonexistent node in unwind forms go to the Top node if there is no previous node to revert to. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-01-13 07:47:15 +0000 +++ lisp/ChangeLog 2014-01-13 08:04:09 +0000 @@ -1,3 +1,12 @@ +2014-01-13 Juri Linkov + + * info.el (Info-find-file): Go to DIR before displaying the error + about a nonexistent file if no previous Info file is visited. + Use `user-error' instead of `error' for "Info file %s does not exist". + (Info-find-node-2): In case of a nonexistent node in unwind forms + go to the Top node if there is no previous node to revert to. + (Bug#16405) + 2014-01-13 Martin Rudalics fit-frame/window-to-buffer code fixes including one for Bug#14096. === modified file 'lisp/info.el' --- lisp/info.el 2014-01-10 07:26:04 +0000 +++ lisp/info.el 2014-01-13 08:04:09 +0000 @@ -925,7 +925,10 @@ (setq filename found) (if noerror (setq filename nil) - (error "Info file %s does not exist" filename))) + ;; If there is no previous Info file, go to the directory. + (unless Info-current-file + (Info-directory)) + (user-error "Info file %s does not exist" filename))) filename)))) (defun Info-find-node (filename nodename &optional no-going-back strict-case) @@ -1245,12 +1248,14 @@ (Info-find-index-name Info-point-loc) (setq Info-point-loc nil)))))) ;; If we did not finish finding the specified node, - ;; go back to the previous one. - (or Info-current-node no-going-back (null Info-history) - (let ((hist (car Info-history))) - (setq Info-history (cdr Info-history)) - (Info-find-node (nth 0 hist) (nth 1 hist) t) - (goto-char (nth 2 hist)))))) + ;; go back to the previous one or to the Top node. + (unless (or Info-current-node no-going-back) + (if Info-history + (let ((hist (car Info-history))) + (setq Info-history (cdr Info-history)) + (Info-find-node (nth 0 hist) (nth 1 hist) t) + (goto-char (nth 2 hist))) + (Info-find-node Info-current-file "Top" t))))) ;; Cache the contents of the (virtual) dir file, once we have merged ;; it for the first time, so we can save time subsequently. ------------------------------------------------------------ Use --include-merged or -n0 to see merged revisions.