------------------------------------------------------------ revno: 117468 [merge] committer: Glenn Morris branch nick: trunk timestamp: Wed 2014-07-02 23:00:53 -0700 message: Merge from emacs-24; up to r117340 diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2014-06-23 06:43:20 +0000 +++ doc/emacs/ChangeLog 2014-07-03 06:00:53 +0000 @@ -1,3 +1,9 @@ +2014-07-03 Glenn Morris + + * help.texi (Misc Help): + * trouble.texi (Checklist): "Online" help doesn't mean what it + used to any more. + 2014-06-23 Glenn Morris * Makefile.in (%.texi): Disable implicit rules. === modified file 'doc/emacs/help.texi' --- doc/emacs/help.texi 2014-06-08 23:41:43 +0000 +++ doc/emacs/help.texi 2014-07-03 06:00:53 +0000 @@ -490,8 +490,7 @@ @kindex C-h i @findex info @cindex Info -@cindex manuals, on-line -@cindex on-line manuals +@cindex manuals, included @kbd{C-h i} (@code{info}) runs the Info program, which browses structured documentation files. The entire Emacs manual is available within Info, along with many other manuals for the GNU system. Type === modified file 'doc/emacs/trouble.texi' --- doc/emacs/trouble.texi 2014-05-02 12:28:10 +0000 +++ doc/emacs/trouble.texi 2014-06-29 02:33:50 +0000 @@ -847,7 +847,7 @@ @item If the bug is that the Emacs Manual or the Emacs Lisp Reference Manual fails to describe the actual behavior of Emacs, or that the text is -confusing, copy in the text from the online manual which you think is +confusing, copy in the text from the manual which you think is at fault. If the section is small, just the section name is enough. @item === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2014-06-23 06:43:20 +0000 +++ doc/lispintro/ChangeLog 2014-07-03 06:00:53 +0000 @@ -1,3 +1,8 @@ +2014-07-03 Glenn Morris + + * emacs-lisp-intro.texi (Note for Novices, Finding More, Conclusion): + "Online" help doesn't mean what it used to any more. + 2014-06-23 Glenn Morris * Makefile.in (%.texi): Disable implicit rules. === modified file 'doc/lispintro/emacs-lisp-intro.texi' --- doc/lispintro/emacs-lisp-intro.texi 2014-06-10 02:20:31 +0000 +++ doc/lispintro/emacs-lisp-intro.texi 2014-07-03 06:00:53 +0000 @@ -903,7 +903,7 @@ If you don't know GNU Emacs, you can still read this document profitably. However, I recommend you learn Emacs, if only to learn to move around your computer screen. You can teach yourself how to use -Emacs with the on-line tutorial. To use it, type @kbd{C-h t}. (This +Emacs with the built-in tutorial. To use it, type @kbd{C-h t}. (This means you press and release the @key{CTRL} key and the @kbd{h} at the same time, and then press and release @kbd{t}.) @@ -4657,7 +4657,7 @@ rather than a general library. Each library, or file, contains functions that relate to a particular topic or activity, such as @file{abbrev.el} for handling abbreviations and other typing -shortcuts, and @file{help.el} for on-line help. (Sometimes several +shortcuts, and @file{help.el} for help. (Sometimes several libraries provide code for a single activity, as the various @file{rmail@dots{}} files provide code for reading electronic mail.) In @cite{The GNU Emacs Manual}, you will see sentences such as ``The @@ -18685,9 +18685,9 @@ experts, but for people who know what you know. (The @cite{Reference Manual} comes with the standard GNU Emacs distribution. Like this introduction, it comes as a Texinfo source file, so you can read it -on-line and as a typeset, printed book.) +on your computer and as a typeset, printed book.) -Go to the other on-line help that is part of GNU Emacs: the on-line +Go to the other built-in help that is part of GNU Emacs: the built-in documentation for all functions and variables, and @code{find-tag}, the program that takes you to sources. === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-07-02 01:49:31 +0000 +++ doc/lispref/ChangeLog 2014-07-03 06:00:53 +0000 @@ -1,3 +1,8 @@ +2014-07-03 Glenn Morris + + * help.texi (Help Functions): "Online" help doesn't mean what it + used to any more. + 2014-07-02 Stefan Monnier * keymaps.texi (Key Lookup): Remove mention of indirect entries. === modified file 'doc/lispref/help.texi' --- doc/lispref/help.texi 2014-03-16 09:26:58 +0000 +++ doc/lispref/help.texi 2014-06-29 02:33:50 +0000 @@ -508,7 +508,7 @@ @node Help Functions @section Help Functions - Emacs provides a variety of on-line help functions, all accessible to + Emacs provides a variety of built-in help functions, all accessible to the user as subcommands of the prefix @kbd{C-h}. For more information about them, see @ref{Help, , Help, emacs, The GNU Emacs Manual}. Here we describe some program-level interfaces to the same information. === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2014-06-24 07:15:26 +0000 +++ doc/misc/ChangeLog 2014-07-03 06:00:53 +0000 @@ -1,3 +1,10 @@ +2014-07-03 Glenn Morris + + * info.texi, mh-e.texi: "Online help" doesn't mean what it + used to any more. + + * idlwave.texi (Introduction): Comment out dead http screenshot links. + 2014-06-24 Leo Liu * dired-x.texi (Omitting Files in Dired, Omitting Variables): === modified file 'doc/misc/idlwave.texi' --- doc/misc/idlwave.texi 2014-06-10 02:20:31 +0000 +++ doc/misc/idlwave.texi 2014-07-03 06:00:53 +0000 @@ -239,24 +239,27 @@ And much, much more... @end itemize +@c Dead links, 2014/06. +@ignore @ifnottex @cindex Screenshots Here are a number of screenshots showing IDLWAVE in action: @itemize @bullet @item -@uref{http://idlwave.org/screenshots/emacs_21_nav.gif,An IDLWAVE buffer} -@item -@uref{http://idlwave.org/screenshots/emacs_21_keys.gif,A keyword being completed} -@item -@uref{http://idlwave.org/screenshots/emacs_21_help.gif,Online help text.} -@item -@uref{http://idlwave.org/screenshots/emacs_21_ri.gif,Routine information displayed} -@item -@uref{http://idlwave.org/screenshots/emacs_21_bp.gif,Debugging code +@uref{http://github.com/jdtsmith/idlwave/screenshots/emacs_21_nav.gif,An IDLWAVE buffer} +@item +@uref{http://github.com/jdtsmith/idlwave/screenshots/emacs_21_keys.gif,A keyword being completed} +@item +@uref{http://github.com/jdtsmith/idlwave/screenshots/emacs_21_help.gif,Online help text.} +@item +@uref{http://github.com/jdtsmith/idlwave/screenshots/emacs_21_ri.gif,Routine information displayed} +@item +@uref{http://github.com/jdtsmith/idlwave/screenshots/emacs_21_bp.gif,Debugging code stopped at a breakpoint} @end itemize @end ifnottex +@end ignore IDLWAVE is the distant successor to the @file{idl.el} and @file{idl-shell.el} files written by Chris Chase. The modes and files === modified file 'doc/misc/info.texi' --- doc/misc/info.texi 2014-06-08 19:30:13 +0000 +++ doc/misc/info.texi 2014-06-29 02:33:50 +0000 @@ -12,7 +12,7 @@ @comment %**end of header @copying -This file describes how to use Info, the on-line, menu-driven GNU +This file describes how to use Info, the menu-driven GNU documentation system. Copyright @copyright{} 1989, 1992, 1996--2014 Free Software Foundation, Inc. @@ -51,7 +51,7 @@ @node Top @top Info: An Introduction -The GNU Project distributes most of its on-line manuals in the +The GNU Project distributes most of its manuals in the @dfn{Info format}, which you read using an @dfn{Info reader}. You are probably using an Info reader to read this now. @@ -98,7 +98,7 @@ about them. Reading it on paper or with an HTML browser is less effective, since you must take it on faith that the commands described really do what the manual says. By all means go through this manual -now that you have it; but please try going through the on-line version +now that you have it; but please try going through the Info version as well. @cindex Info reader, how to invoke === modified file 'doc/misc/mh-e.texi' --- doc/misc/mh-e.texi 2014-06-10 02:20:31 +0000 +++ doc/misc/mh-e.texi 2014-07-03 06:00:53 +0000 @@ -227,7 +227,7 @@ @kindex C-h t If you don't already use GNU Emacs but want to learn more, you can -read an online tutorial by starting GNU Emacs and typing @kbd{C-h t} +read a built-in tutorial by starting GNU Emacs and typing @kbd{C-h t} (@code{help-with-tutorial}). (To learn about this notation, see @ref{Conventions}.) If you want to take the plunge, consult the @iftex @@ -1066,9 +1066,9 @@ about every MH-E command and option. @cindex Emacs, info -@cindex Emacs, online help +@cindex Emacs, built-in help @cindex info -@cindex online help +@cindex built-in help @findex describe-mode @findex mh-help @kindex ? @@ -1083,12 +1083,12 @@ like to rebind the keys, the command summaries also list the associated Emacs Lisp function. Furthermore, even if you're stranded on a desert island with a laptop and are without your manuals, you can -get a summary of all these commands with GNU Emacs online help: use +get a summary of all these commands with GNU Emacs built-in help: use @kbd{C-h m} (@code{describe-mode}) for a brief summary of commands, @kbd{?} (@code{mh-help}) for an even briefer summary@footnote{This help appears in a buffer called @file{*MH-E Help*} (@pxref{Miscellaneous}).} (@kbd{C-c ?} in MH-Letter mode), or @kbd{C-h -i} to read this manual via Info. The online help is quite good; try +i} to read this manual via Info. The built-in help is quite good; try running @kbd{C-h C-h}. This brings up a list of available help topics, one of which displays the documentation for a given key (like @kbd{C-h k C-n}). Another useful help feature is to view the manual section @@ -1120,21 +1120,21 @@ @c Yes, some of the stuff in the following sections is redundant, but @c TeX barfs if the @ifs are inside the @footnote. @iftex -@footnote{The @cite{GNU Emacs Lisp Reference Manual} may be available -online in the Info system by typing @kbd{C-h i m Emacs Lisp +@footnote{The @cite{GNU Emacs Lisp Reference Manual} should be available +via the Info system by typing @kbd{C-h i m Emacs Lisp @key{RET}}. It is also available online at @* @uref{http://www.gnu.org/software/emacs/manual/elisp.html}.} @end iftex @ifinfo @footnote{@xref{Top, The GNU Emacs Lisp Reference Manual, , elisp, GNU -Emacs Lisp Reference Manual}, which may be available online in the +Emacs Lisp Reference Manual}, which should be available via the Info system. It is also available online at @uref{http://www.gnu.org/software/emacs/manual/elisp.html}.} @end ifinfo @ifhtml @footnote{The @uref{http://www.gnu.org/software/emacs/manual/elisp.html, -The GNU Emacs Lisp Reference Manual} may also be available online in +The GNU Emacs Lisp Reference Manual} should be available via the Info system by typing @kbd{C-h i m Emacs Lisp @key{RET}}.} @end ifhtml and you can look at the code itself for examples. Look in the Emacs @@ -1142,7 +1142,7 @@ @file{/usr/local/share/emacs/lisp/mh-e}) and find all the @file{mh-*.el} files there. When calling MH-E and other Emacs Lisp functions directly from Emacs Lisp code, you'll need to know the correct arguments. Use -the online help for this. For example, try @kbd{C-h f +the built-in help for this. For example, try @kbd{C-h f mh-execute-commands @key{RET}}. If you write your own functions, please do not prefix your symbols (variables and functions) with @samp{mh-}. This prefix is reserved for the MH-E package. To avoid @@ -6405,7 +6405,7 @@ The Menu Bar} in @cite{The GNU Emacs Manual}. @end ifhtml -The Emacs manual describes how to get online help for a particular +The Emacs manual describes how to get help for a particular menu item. You can also look up a menu item in the index of this manual in two ways: all of the menu items are listed alphabetically, and you can also browse all of the items under the index entry === modified file 'etc/ChangeLog' --- etc/ChangeLog 2014-06-28 17:27:29 +0000 +++ etc/ChangeLog 2014-07-03 06:00:53 +0000 @@ -1,3 +1,8 @@ +2014-07-03 Glenn Morris + + * refcards/calccard.tex (section{Getting Help}): + Meaning of "on-line" has changed. + 2014-06-28 Glenn Morris * publicsuffix.txt: Update from source. === modified file 'etc/refcards/calccard.tex' --- etc/refcards/calccard.tex 2014-01-01 07:43:34 +0000 +++ etc/refcards/calccard.tex 2014-06-29 02:33:50 +0000 @@ -297,7 +297,7 @@ \key{describe key briefly}{h c} \key{describe key fully}{h k} \key{describe function or command}{h f} -\key{read on-line manual}{h i{\rm\enskip or\enskip}\calcprefix i} +\key{read Info manual}{h i{\rm\enskip or\enskip}\calcprefix i} \key{read full Calc summary}{h s{\rm\enskip or\enskip}\calcprefix s} \section{Error Recovery} === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-07-02 00:57:53 +0000 +++ lisp/ChangeLog 2014-07-03 06:00:53 +0000 @@ -1,3 +1,56 @@ +2014-07-03 Juri Linkov + + * desktop.el (desktop-save): Rename arg `auto-save' to + `only-if-changed'. Doc fix. (Bug#17873) + +2014-07-03 Stefan Monnier + + * mouse.el (mouse-yank-primary, mouse-yank-secondary): + Use insert-for-yank (bug#17271). + +2014-07-03 Leo Liu + + * emacs-lisp/pp.el (pp-eval-expression, pp-eval-last-sexp): + Support lexical-binding. + +2014-07-03 Stefan Monnier + + * vc/log-edit.el (log-edit-goto-eoh): New function. + (log-edit--match-first-line): Use it (bug#17861). + +2014-07-03 Glenn Morris + + * vc/log-edit.el (log-edit-hook): Add missing :version. + +2014-07-03 Fabián Ezequiel Gallina + + * progmodes/python.el (python-indent-post-self-insert-function): + Enhancements to electric indentation behavior inside + parens. (Bug#17658) + +2014-07-03 Stefan Monnier + + * ps-def.el (ps-generate-postscript-with-faces1): Don't mess with + buffer-invisibility-spec (bug#17867). + +2014-07-03 Andreas Schwab + + * vc/vc-git.el (vc-git-checkin): When operating on the whole tree + pass "-a". + +2014-07-03 Glenn Morris + + * cus-edit.el (help): + * finder.el (finder-known-keywords): + * help.el (help-for-help-internal): + * vc/ediff-mult.el (ediff-meta-buffer-verbose-message) + (ediff-redraw-registry-buffer): + * vc/ediff-ptch.el (ediff-patch-file-internal): + Doc fixes re "online" help. (Bug#17803) + + * progmodes/idlwave.el (idlwave): Update url-link for custom group. + (idlwave-mode): Doc URL update. + 2014-07-01 Juri Linkov * man.el: Display man pages immediately and use process-filter === modified file 'lisp/cus-edit.el' --- lisp/cus-edit.el 2014-02-10 01:34:22 +0000 +++ lisp/cus-edit.el 2014-06-29 02:33:50 +0000 @@ -324,7 +324,7 @@ :group 'emacs) (defgroup help nil - "Support for on-line help systems." + "Support for Emacs help systems." :group 'emacs) (defgroup multimedia nil === modified file 'lisp/desktop.el' --- lisp/desktop.el 2014-06-24 23:23:41 +0000 +++ lisp/desktop.el 2014-07-02 23:45:12 +0000 @@ -942,12 +942,13 @@ :predicate #'desktop--check-dont-save)))) ;;;###autoload -(defun desktop-save (dirname &optional release auto-save) +(defun desktop-save (dirname &optional release only-if-changed) "Save the desktop in a desktop file. Parameter DIRNAME specifies where to save the desktop file. Optional parameter RELEASE says whether we're done with this desktop. -If AUTO-SAVE is non-nil, compare the saved contents to the one last saved, -and don't save the buffer if they are the same." +If ONLY-IF-CHANGED is non-nil, compare the current desktop information +to that in the desktop file, and if the desktop information has not +changed since it was last saved then do not rewrite the file." (interactive (list ;; Or should we just use (car desktop-path)? (let ((default (if (member "." desktop-path) @@ -1020,7 +1021,7 @@ (setq default-directory desktop-dirname) ;; When auto-saving, avoid writing if nothing has changed since the last write. - (let* ((beg (and auto-save + (let* ((beg (and only-if-changed (save-excursion (goto-char (point-min)) ;; Don't check the header with changing timestamp === modified file 'lisp/ehelp.el' --- lisp/ehelp.el 2014-02-10 01:34:22 +0000 +++ lisp/ehelp.el 2014-06-29 02:33:50 +0000 @@ -25,7 +25,7 @@ ;;; Commentary: ;; This package provides a pre-packaged `Electric Help Mode' for -;; browsing on-line help screens. There is one entry point, +;; browsing Emacs help screens. There is one entry point, ;; `with-electric-help'; all you have to give it is a no-argument ;; function that generates the actual text of the help into the current ;; buffer. === modified file 'lisp/emacs-lisp/pp.el' --- lisp/emacs-lisp/pp.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/pp.el 2014-07-02 05:05:50 +0000 @@ -129,7 +129,7 @@ (interactive (list (read--expression "Eval: "))) (message "Evaluating...") - (setq values (cons (eval expression) values)) + (setq values (cons (eval expression lexical-binding) values)) (pp-display-expression (car values) "*Pp Eval Output*")) ;;;###autoload @@ -165,7 +165,7 @@ Ignores leading comment characters." (interactive "P") (if arg - (insert (pp-to-string (eval (pp-last-sexp)))) + (insert (pp-to-string (eval (pp-last-sexp) lexical-binding))) (pp-eval-expression (pp-last-sexp)))) ;;;###autoload === modified file 'lisp/emulation/viper.el' --- lisp/emulation/viper.el 2014-01-27 02:02:28 +0000 +++ lisp/emulation/viper.el 2014-06-29 02:33:50 +0000 @@ -107,7 +107,7 @@ ;; ---------------- ;; Bug reports and ideas contributed by many users have helped ;; improve Viper and the various versions of VIP. -;; See the on-line manual for a complete list of contributors. +;; See the manual for a complete list of contributors. ;; ;; ;;; Notes: === modified file 'lisp/finder.el' --- lisp/finder.el 2014-03-14 20:41:01 +0000 +++ lisp/finder.el 2014-06-29 02:33:50 +0000 @@ -52,7 +52,7 @@ (frames . "Emacs frames and window systems") (games . "games, jokes and amusements") (hardware . "interfacing with system hardware") - (help . "on-line help systems") + (help . "Emacs help systems") (hypermedia . "links between text or other media types") (i18n . "internationalization and character-set support") (internal . "code for Emacs internals, build process, defaults") === modified file 'lisp/help.el' --- lisp/help.el 2014-06-13 09:00:08 +0000 +++ lisp/help.el 2014-07-03 06:00:53 +0000 @@ -23,7 +23,7 @@ ;;; Commentary: -;; This code implements GNU Emacs's on-line help system, the one invoked by +;; This code implements GNU Emacs's built-in help system, the one invoked by ;; `M-x help-for-help'. ;;; Code: @@ -198,13 +198,13 @@ documentation matches the PATTERN (a list of words or a regexp). e Go to the *Messages* buffer which logs echo-area messages. f FUNCTION Display documentation for the given function. -F COMMAND Show the on-line manual's section that describes the command. +F COMMAND Show the Emacs manual's section that describes the command. g Display information about the GNU project. h Display the HELLO file which illustrates various scripts. -i Start the Info documentation reader: read on-line manuals. +i Start the Info documentation reader: read included manuals. I METHOD Describe a specific input method, or RET for current. k KEYS Display the full documentation for the key sequence. -K KEYS Show the on-line manual's section for the command bound to KEYS. +K KEYS Show the Emacs manual's section for the command bound to KEYS. l Show last 300 input keystrokes (lossage). L LANG-ENV Describes a specific language environment, or RET for current. m Display documentation of current minor modes and current major mode, @@ -214,7 +214,7 @@ P PACKAGE Describe the given Emacs Lisp package. r Display the Emacs manual in Info mode. s Display contents of current syntax table, plus explanations. -S SYMBOL Show the section for the given symbol in the on-line manual +S SYMBOL Show the section for the given symbol in the Info manual for the programming language used in this buffer. t Start the Emacs learn-by-doing tutorial. v VARIABLE Display the given variable's documentation and value. === modified file 'lisp/mouse.el' --- lisp/mouse.el 2014-06-23 15:32:24 +0000 +++ lisp/mouse.el 2014-07-03 06:00:53 +0000 @@ -1079,7 +1079,7 @@ (unless primary (error "No selection is available")) (push-mark (point)) - (insert primary))) + (insert-for-yank primary))) (defun mouse-kill-ring-save (click) "Copy the region between point and the mouse click in the kill ring. @@ -1361,7 +1361,7 @@ (or mouse-yank-at-point (mouse-set-point click)) (let ((secondary (x-get-selection 'SECONDARY))) (if secondary - (insert secondary) + (insert-for-yank secondary) (error "No secondary selection")))) (defun mouse-kill-secondary () === modified file 'lisp/progmodes/f90.el' --- lisp/progmodes/f90.el 2014-05-29 03:45:29 +0000 +++ lisp/progmodes/f90.el 2014-07-03 06:00:53 +0000 @@ -71,8 +71,8 @@ ;; For example: ;; (add-to-list 'auto-mode-alist '("\\.f\\'" . f90-mode)) -;; Once you have entered f90-mode, you may get more info by using -;; the command describe-mode (C-h m). For online help use +;; Once you have entered f90-mode, you can get more info by using +;; the command describe-mode (C-h m). For help use ;; C-h f , or ;; C-h v . === modified file 'lisp/progmodes/idlw-complete-structtag.el' --- lisp/progmodes/idlw-complete-structtag.el 2014-01-01 07:43:34 +0000 +++ lisp/progmodes/idlw-complete-structtag.el 2014-06-29 02:17:17 +0000 @@ -49,14 +49,14 @@ ;; ;; New versions of IDLWAVE, documentation, and more information available ;; from: -;; http://idlwave.org +;; http://github.com/jdtsmith/idlwave ;; ;; INSTALLATION ;; ============ ;; Put this file on the emacs load path and load it with the following ;; line in your init file: ;; -;; (add-hook 'idlwave-load-hook +;; (add-hook 'idlwave-load-hook ;; (lambda () (require 'idlw-complete-structtag))) ;; ;; DESCRIPTION === modified file 'lisp/progmodes/idlw-help.el' --- lisp/progmodes/idlw-help.el 2014-05-29 03:45:29 +0000 +++ lisp/progmodes/idlw-help.el 2014-07-03 06:00:53 +0000 @@ -32,7 +32,7 @@ ;; along with new versions of IDLWAVE, documentation, and more ;; information, at: ;; -;; http://idlwave.org +;; http://github.com/jdtsmith/idlwave ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; === modified file 'lisp/progmodes/idlw-shell.el' --- lisp/progmodes/idlw-shell.el 2014-06-26 06:28:04 +0000 +++ lisp/progmodes/idlw-shell.el 2014-07-03 06:00:53 +0000 @@ -40,7 +40,7 @@ ;; ;; New versions of IDLWAVE, documentation, and more information ;; available from: -;; http://idlwave.org +;; http://github.com/jdtsmith/idlwave ;; ;; INSTALLATION: ;; ============= @@ -58,7 +58,7 @@ ;; The newest version of this file can be found on the maintainers ;; web site. ;; -;; http://idlwave.org +;; http://github.com/jdtsmith/idlwave ;; ;; DOCUMENTATION ;; ============= @@ -923,7 +923,7 @@ Info documentation for this package is available. Use \\[idlwave-info] to display (complain to your sysadmin if that does not work). For PostScript and HTML versions of the documentation, check IDLWAVE's - homepage at URL `http://idlwave.org'. + homepage at URL `http://github.com/jdtsmith/idlwave'. IDLWAVE has customize support - see the group `idlwave'. 8. Keybindings === modified file 'lisp/progmodes/idlw-toolbar.el' --- lisp/progmodes/idlw-toolbar.el 2014-01-01 07:43:34 +0000 +++ lisp/progmodes/idlw-toolbar.el 2014-06-29 02:17:17 +0000 @@ -29,7 +29,7 @@ ;; New versions of IDLWAVE, documentation, and more information ;; available from: -;; http://idlwave.org +;; http://github.com/jdtsmith/idlwave ;;; Code: === modified file 'lisp/progmodes/idlwave.el' --- lisp/progmodes/idlwave.el 2014-04-23 02:22:06 +0000 +++ lisp/progmodes/idlwave.el 2014-06-29 02:17:17 +0000 @@ -44,7 +44,7 @@ ;; ;; New versions of IDLWAVE, documentation, and more information ;; available from: -;; http://idlwave.org +;; http://github.com/jdtsmith/idlwave ;; ;; INSTALLATION ;; ============ @@ -64,7 +64,7 @@ ;; The newest version of this file is available from the maintainer's ;; Webpage: ;; -;; http://idlwave.org +;; http://github.com/jdtsmith/idlwave ;; ;; DOCUMENTATION ;; ============= @@ -179,7 +179,7 @@ "Major mode for editing IDL .pro files." :tag "IDLWAVE" :link '(url-link :tag "Home Page" - "http://idlwave.org") + "http://github.com/jdtsmith/idlwave") :link '(emacs-commentary-link :tag "Commentary in idlw-shell.el" "idlw-shell.el") :link '(emacs-commentary-link :tag "Commentary in idlwave.el" "idlwave.el") @@ -1878,7 +1878,8 @@ Info documentation for this package is available. Use \\[idlwave-info] to display (complain to your sysadmin if that does not work). For Postscript, PDF, and HTML versions of the - documentation, check IDLWAVE's homepage at URL `http://idlwave.org'. + documentation, check IDLWAVE's homepage at URL + `http://github.com/jdtsmith/idlwave'. IDLWAVE has customize support - see the group `idlwave'. 10.Keybindings === modified file 'lisp/progmodes/pascal.el' --- lisp/progmodes/pascal.el 2014-04-10 13:56:28 +0000 +++ lisp/progmodes/pascal.el 2014-06-29 02:33:50 +0000 @@ -26,8 +26,8 @@ ;; ===== ;; Emacs should enter Pascal mode when you find a Pascal source file. -;; When you have entered Pascal mode, you may get more info by pressing -;; C-h m. You may also get online help describing various functions by: +;; When you have entered Pascal mode, you can get more info by pressing +;; C-h m. You can also get help describing various functions by: ;; C-h f ;; If you want to customize Pascal mode to fit you better, you may add === modified file 'lisp/progmodes/python.el' --- lisp/progmodes/python.el 2014-06-21 19:45:59 +0000 +++ lisp/progmodes/python.el 2014-07-03 06:00:53 +0000 @@ -1096,16 +1096,28 @@ (when (and electric-indent-mode (eq (char-before) last-command-event)) (cond - ((and (not (bolp)) - (memq (char-after) '(?\) ?\] ?\}))) + ;; Electric indent inside parens + ((and + (not (bolp)) + (let ((paren-start (python-syntax-context 'paren))) + ;; Check that point is inside parens. + (when paren-start + (not + ;; Filter the case where input is happening in the same + ;; line where the open paren is. + (= (line-number-at-pos) + (line-number-at-pos paren-start))))) + ;; When content has been added before the closing paren or a + ;; comma has been inserted, it's ok to do the trick. + (or + (memq (char-after) '(?\) ?\] ?\})) + (eq (char-before) ?,))) (save-excursion (goto-char (line-beginning-position)) - ;; If after going to the beginning of line the point - ;; is still inside a paren it's ok to do the trick - (when (python-syntax-context 'paren) - (let ((indentation (python-indent-calculate-indentation))) - (when (< (current-indentation) indentation) - (indent-line-to indentation)))))) + (let ((indentation (python-indent-calculate-indentation))) + (when (< (current-indentation) indentation) + (indent-line-to indentation))))) + ;; Electric colon ((and (eq ?: last-command-event) (memq ?: electric-indent-chars) (not current-prefix-arg) === modified file 'lisp/ps-def.el' --- lisp/ps-def.el 2014-04-15 13:21:18 +0000 +++ lisp/ps-def.el 2014-07-01 02:25:52 +0000 @@ -325,8 +325,6 @@ ;; Emacs (property-change from) (overlay-change from) - (save-buffer-invisibility-spec buffer-invisibility-spec) - (buffer-invisibility-spec nil) before-string after-string) (while (< from to) (and (< property-change to) ; Don't search for property change === modified file 'lisp/vc/ediff-mult.el' --- lisp/vc/ediff-mult.el 2014-01-01 07:43:34 +0000 +++ lisp/vc/ediff-mult.el 2014-06-29 02:33:50 +0000 @@ -140,7 +140,7 @@ uh/um:\tunmark all sessions marked for hiding/operation n,SPC:\tnext session p,DEL:\tprevious session - E:\tbrowse Ediff on-line manual + E:\tbrowse Ediff manual T:\ttoggle truncation of long file names q:\tquit this session group ") @@ -1464,7 +1464,7 @@ R in any Ediff session: display session registry n,SPC: next session p,DEL: previous session - E: browse Ediff on-line manual + E: browse Ediff manual q: bury registry === modified file 'lisp/vc/ediff-ptch.el' --- lisp/vc/ediff-ptch.el 2014-01-01 07:43:34 +0000 +++ lisp/vc/ediff-ptch.el 2014-06-29 02:33:50 +0000 @@ -735,7 +735,7 @@ ediff-patch-program = %S ediff-patch-options = %S ediff-backup-extension = %S ediff-backup-specs = %S -See Ediff on-line manual for more details on these variables. +See Ediff manual for more details on these variables. In particular, check the documentation for `ediff-backup-specs'. In any of the above cases, Ediff doesn't compare files automatically. === modified file 'lisp/vc/ediff.el' --- lisp/vc/ediff.el 2014-04-02 07:07:11 +0000 +++ lisp/vc/ediff.el 2014-06-29 02:33:50 +0000 @@ -64,7 +64,7 @@ ;; compressed files. Details are given below. ;; Finally, Ediff supports directory-level comparison, merging and patching. -;; See the on-line manual for details. +;; See the Ediff manual for details. ;; This package builds upon the ideas borrowed from emerge.el and several ;; Ediff's functions are adaptations from emerge.el. Much of the functionality === modified file 'lisp/vc/log-edit.el' --- lisp/vc/log-edit.el 2014-02-08 23:01:45 +0000 +++ lisp/vc/log-edit.el 2014-07-01 15:15:03 +0000 @@ -132,6 +132,8 @@ log-edit-insert-changelog log-edit-show-files) "Hook run at the end of `log-edit'." + ;; Added log-edit-insert-message-template, moved log-edit-show-files. + :version "24.4" :group 'log-edit :type '(hook :options (log-edit-insert-message-template log-edit-insert-cvs-rcstemplate @@ -355,9 +357,15 @@ (set-match-data (list start (point))) (point)))) +(defun log-edit-goto-eoh () ;FIXME: Almost rfc822-goto-eoh! + (goto-char (point-min)) + (when (re-search-forward + "^\\([^[:alpha:]]\\|[[:alnum:]-]+[^[:alnum:]-:]\\)" nil 'move) + (goto-char (match-beginning 0)))) + (defun log-edit--match-first-line (limit) (let ((start (point))) - (rfc822-goto-eoh) + (log-edit-goto-eoh) (skip-chars-forward "\n") (and (< start (line-end-position)) (< (point) limit) === modified file 'lisp/vc/vc-git.el' --- lisp/vc/vc-git.el 2014-03-08 06:56:22 +0000 +++ lisp/vc/vc-git.el 2014-06-29 20:48:55 +0000 @@ -674,7 +674,7 @@ (cl-flet ((boolean-arg-fn (argument) (lambda (value) (when (equal value "yes") (list argument))))) - ;; When operating on the whole tree, better pass nil than ".", since "." + ;; When operating on the whole tree, better pass "-a" than ".", since "." ;; fails when we're committing a merge. (apply 'vc-git-command nil 0 (if only files) (nconc (list "commit" "-m") @@ -684,7 +684,7 @@ ("Amend" . ,(boolean-arg-fn "--amend")) ("Sign-Off" . ,(boolean-arg-fn "--signoff"))) comment) - (if only (list "--only" "--"))))))) + (if only (list "--only" "--") '("-a"))))))) (defun vc-git-find-revision (file rev buffer) (let* (process-file-side-effects === modified file 'src/ChangeLog' --- src/ChangeLog 2014-07-02 15:22:49 +0000 +++ src/ChangeLog 2014-07-03 06:00:53 +0000 @@ -1,3 +1,28 @@ +2014-07-03 Eli Zaretskii + + * dispnew.c (prepare_desired_row): Accept 2 additional arguments: + the window whose glyph row is being prepared and a flag whether it + is for mode/header line. Make sure the glyph row's marginal areas + are in sync with what the window wants. + (Bug#17892) + + * xdisp.c (display_line, display_mode_line): Call + prepare_desired_row with additional arguments, as appropriate. + + * dispextern.h (prepare_desired_row): Adjust prototype. + +2014-07-03 Dmitry Antipov + + * xfaces.c (init_frame_faces): Always realize basic faces (Bug#17889). + * menu.c (Fx_popup_dialog): Set Vmenu_updating_frame to avoid crash + caused by xw_popup_dialog in daemon mode (Bug#17891). + +2014-07-03 Eli Zaretskii + + * frame.c (do_switch_frame): When switching to another TTY frame, + make sure FrameCols and FrameRows are in sync with the new frame's + data. (Bug#17875) + 2014-07-02 Dmitry Antipov Shrink Lisp_Sub_Char_Table by preferring C integers to Lisp_Objects. === modified file 'src/dispextern.h' --- src/dispextern.h 2014-06-21 19:45:59 +0000 +++ src/dispextern.h 2014-07-03 06:00:53 +0000 @@ -3460,7 +3460,7 @@ void blank_row (struct window *, struct glyph_row *, int); void clear_glyph_matrix_rows (struct glyph_matrix *, int, int); void clear_glyph_row (struct glyph_row *); -void prepare_desired_row (struct glyph_row *); +void prepare_desired_row (struct window *, struct glyph_row *, bool); void update_single_window (struct window *, bool); void do_pending_window_change (bool); void change_frame_size (struct frame *, int, int, bool, bool, bool, bool); === modified file 'src/dispnew.c' --- src/dispnew.c 2014-06-04 09:16:46 +0000 +++ src/dispnew.c 2014-07-01 18:00:29 +0000 @@ -449,7 +449,8 @@ + x); if (w == NULL - || row == matrix->rows + dim.height - 1 + || (row == matrix->rows + dim.height - 1 + && WINDOW_WANTS_MODELINE_P (w)) || (row == matrix->rows && matrix->header_line_p)) { row->glyphs[TEXT_AREA] @@ -492,8 +493,9 @@ = xnrealloc (row->glyphs[LEFT_MARGIN_AREA], dim.width, sizeof (struct glyph)); - /* The mode line never has marginal areas. */ - if (row == matrix->rows + dim.height - 1 + /* The mode line, if displayed, never has marginal areas. */ + if ((row == matrix->rows + dim.height - 1 + && !(w && WINDOW_WANTS_MODELINE_P (w))) || (row == matrix->rows && matrix->header_line_p)) { row->glyphs[TEXT_AREA] @@ -1049,13 +1051,16 @@ #endif /* 0 */ -/* Prepare ROW for display. Desired rows are cleared lazily, - i.e. they are only marked as to be cleared by setting their +/* Prepare ROW for display in windows W. Desired rows are cleared + lazily, i.e. they are only marked as to be cleared by setting their enabled_p flag to zero. When a row is to be displayed, a prior - call to this function really clears it. */ + call to this function really clears it. In addition, this function + makes sure the marginal areas of ROW are in sync with the window's + display margins. MODE_LINE_P non-zero means we are preparing a + glyph row for header line or mode line. */ void -prepare_desired_row (struct glyph_row *row) +prepare_desired_row (struct window *w, struct glyph_row *row, bool mode_line_p) { if (!row->enabled_p) { @@ -1065,6 +1070,39 @@ row->enabled_p = true; row->reversed_p = rp; } + if (mode_line_p) + { + /* Mode and header lines, if displayed, never have marginal + areas. If we are called with MODE_LINE_P non-zero, we are + displaying the mode/header line in this window, and so the + marginal areas of this glyph row should be eliminated. This + is needed when the mode/header line is switched on in a + window that has display margins. */ + if (w->left_margin_cols > 0) + row->glyphs[TEXT_AREA] = row->glyphs[LEFT_MARGIN_AREA]; + if (w->right_margin_cols > 0) + row->glyphs[RIGHT_MARGIN_AREA] = row->glyphs[LAST_AREA]; + } + else if (row == MATRIX_MODE_LINE_ROW (w->desired_matrix) + || row == MATRIX_HEADER_LINE_ROW (w->desired_matrix)) + { + /* The real number of glyphs reserved for the margins is + recorded in the glyph matrix, and can be different from + window's left_margin_cols and right_margin_cols; see + margin_glyphs_to_reserve for when that happens. */ + int left = w->desired_matrix->left_margin_glyphs; + int right = w->desired_matrix->right_margin_glyphs; + + /* Make sure the marginal areas of this row are in sync with + what the window wants, when the 1st/last row of the matrix + actually displays text and not header/mode line. */ + if (w->left_margin_cols > 0 + && (left != row->glyphs[TEXT_AREA] - row->glyphs[LEFT_MARGIN_AREA])) + row->glyphs[TEXT_AREA] = row->glyphs[LEFT_MARGIN_AREA] + left; + if (w->right_margin_cols > 0 + && (right != row->glyphs[LAST_AREA] - row->glyphs[RIGHT_MARGIN_AREA])) + row->glyphs[RIGHT_MARGIN_AREA] = row->glyphs[LAST_AREA] - right; + } } === modified file 'src/frame.c' --- src/frame.c 2014-06-17 16:09:19 +0000 +++ src/frame.c 2014-07-03 06:00:53 +0000 @@ -46,6 +46,7 @@ #ifdef HAVE_WINDOW_SYSTEM #include "fontset.h" #endif +#include "cm.h" #ifdef MSDOS #include "msdos.h" #include "dosfns.h" @@ -854,7 +855,9 @@ if (FRAME_TERMCAP_P (XFRAME (frame)) || FRAME_MSDOS_P (XFRAME (frame))) { - Lisp_Object top_frame = FRAME_TTY (XFRAME (frame))->top_frame; + struct frame *f = XFRAME (frame); + struct tty_display_info *tty = FRAME_TTY (f); + Lisp_Object top_frame = tty->top_frame; /* Don't mark the frame garbaged and/or obscured if we are switching to the frame that is already the top frame of that @@ -864,9 +867,16 @@ if (FRAMEP (top_frame)) /* Mark previously displayed frame as now obscured. */ SET_FRAME_VISIBLE (XFRAME (top_frame), 2); - SET_FRAME_VISIBLE (XFRAME (frame), 1); + SET_FRAME_VISIBLE (f, 1); + /* If the new TTY frame changed dimensions, we need to + resync term.c's idea of the frame size with the new + frame's data. */ + if (FRAME_COLS (f) != FrameCols (tty)) + FrameCols (tty) = FRAME_COLS (f); + if (FRAME_LINES (f) != FrameRows (tty)) + FrameRows (tty) = FRAME_LINES (f); } - FRAME_TTY (XFRAME (frame))->top_frame = frame; + tty->top_frame = frame; } selected_frame = frame; === modified file 'src/menu.c' --- src/menu.c 2014-06-22 05:00:14 +0000 +++ src/menu.c 2014-07-03 06:00:53 +0000 @@ -1529,6 +1529,11 @@ but I don't want to make one now. */ CHECK_WINDOW (window); + /* Note that xw_popup_dialog can call menu code, so + Vmenu_updating_frame should be set (Bug#17891). */ + eassert (f && FRAME_LIVE_P (f)); + XSETFRAME (Vmenu_updating_frame, f); + /* Force a redisplay before showing the dialog. If a frame is created just before showing the dialog, its contents may not have been fully drawn, as this depends on timing of events from the X server. Redisplay === modified file 'src/window.h' --- src/window.h 2014-01-01 07:43:34 +0000 +++ src/window.h 2014-07-01 17:07:24 +0000 @@ -271,8 +271,10 @@ int left_fringe_width; int right_fringe_width; - /* Width of left and right marginal areas in columns. - A value of 0 means no margin. */ + /* Requested width of left and right marginal areas in columns. A + value of 0 means no margin. The actual values are recorded in + the window's glyph matrix, in the left_margin_glyphs and + right_margin_glyphs members. */ int left_margin_cols; int right_margin_cols; === modified file 'src/xdisp.c' --- src/xdisp.c 2014-06-23 04:11:29 +0000 +++ src/xdisp.c 2014-07-03 06:00:53 +0000 @@ -19878,7 +19878,7 @@ } /* Clear the result glyph row and enable it. */ - prepare_desired_row (row); + prepare_desired_row (it->w, row, false); row->y = it->current_y; row->start = it->start; @@ -21517,7 +21517,7 @@ /* Don't extend on a previously drawn mode-line. This may happen if called from pos_visible_p. */ it.glyph_row->enabled_p = false; - prepare_desired_row (it.glyph_row); + prepare_desired_row (w, it.glyph_row, true); it.glyph_row->mode_line_p = 1; === modified file 'src/xfaces.c' --- src/xfaces.c 2014-06-10 03:32:36 +0000 +++ src/xfaces.c 2014-07-03 06:00:53 +0000 @@ -676,19 +676,9 @@ } #endif /* HAVE_WINDOW_SYSTEM */ - /* Realize basic faces. Must have enough information in frame - parameters to realize basic faces at this point. */ -#ifdef HAVE_X_WINDOWS - if (!FRAME_X_P (f) || FRAME_X_WINDOW (f)) -#endif -#ifdef HAVE_NTGUI - if (!FRAME_WINDOW_P (f) || FRAME_W32_WINDOW (f)) -#endif -#ifdef HAVE_NS - if (!FRAME_NS_P (f) || FRAME_NS_WINDOW (f)) -#endif - if (!realize_basic_faces (f)) - emacs_abort (); + /* Realize faces early (Bug#17889). */ + if (!realize_basic_faces (f)) + emacs_abort (); } === modified file 'test/ChangeLog' --- test/ChangeLog 2014-06-30 19:58:56 +0000 +++ test/ChangeLog 2014-07-03 06:00:53 +0000 @@ -1,3 +1,9 @@ +2014-07-03 Fabián Ezequiel Gallina + + * automated/python-tests.el (python-tests-self-insert): New function. + (python-triple-quote-pairing): Use it. + (python-util-forward-comment-1): New test. (Bug#17658) + 2014-06-30 Fabián Ezequiel Gallina * automated/subr-x-tests.el: New file. === modified file 'test/automated/python-tests.el' --- test/automated/python-tests.el 2014-06-21 14:14:54 +0000 +++ test/automated/python-tests.el 2014-07-01 03:54:11 +0000 @@ -86,6 +86,24 @@ found-point (and restore-point (goto-char starting-point))))) +(defun python-tests-self-insert (char-or-str) + "Call `self-insert-command' for chars in CHAR-OR-STR." + (let ((chars + (cond + ((characterp char-or-str) + (list char-or-str)) + ((stringp char-or-str) + (string-to-list char-or-str)) + ((not + (cl-remove-if #'characterp char-or-str)) + char-or-str) + (t (error "CHAR-OR-STR must be a char, string, or list of char"))))) + (mapc + (lambda (char) + (let ((last-command-event char)) + (call-interactively 'self-insert-command))) + chars))) + ;;; Tests for your tests, so you can test while you test. @@ -2715,9 +2733,6 @@ (should (string= (python-util-strip-string "\n \t \n\r ") "")) (should (string= (python-util-strip-string "") ""))) - -;;; Electricity - (ert-deftest python-util-forward-comment-1 () (python-tests-with-temp-buffer (concat @@ -2730,36 +2745,85 @@ (python-util-forward-comment -1) (should (= (point) (point-min))))) + +;;; Electricity + +(ert-deftest python-parens-electric-indent-1 () + (require 'electric) + (let ((eim electric-indent-mode)) + (unwind-protect + (progn + (python-tests-with-temp-buffer + " +from django.conf.urls import patterns, include, url + +from django.contrib import admin + +from myapp import views + + +urlpatterns = patterns('', + url(r'^$', views.index +) +" + (electric-indent-mode 1) + (python-tests-look-at "views.index") + (end-of-line) + + ;; Inserting commas within the same line should leave + ;; indentation unchanged. + (python-tests-self-insert ",") + (should (= (current-indentation) 4)) + + ;; As well as any other input happening within the same + ;; set of parens. + (python-tests-self-insert " name='index')") + (should (= (current-indentation) 4)) + + ;; But a comma outside it, should trigger indentation. + (python-tests-self-insert ",") + (should (= (current-indentation) 23)) + + ;; Newline indents to the first argument column + (python-tests-self-insert "\n") + (should (= (current-indentation) 23)) + + ;; All this input must not change indentation + (indent-line-to 4) + (python-tests-self-insert "url(r'^/login$', views.login)") + (should (= (current-indentation) 4)) + + ;; But this comma does + (python-tests-self-insert ",") + (should (= (current-indentation) 23)))) + (or eim (electric-indent-mode -1))))) + (ert-deftest python-triple-quote-pairing () (require 'electric) (let ((epm electric-pair-mode)) (unwind-protect (progn (python-tests-with-temp-buffer - "\"\"\n" - (or epm (electric-pair-mode 1)) - (goto-char (1- (point-max))) - (let ((last-command-event ?\")) - (call-interactively 'self-insert-command)) - (should (string= (buffer-string) - "\"\"\"\"\"\"\n")) - (should (= (point) 4))) - (python-tests-with-temp-buffer - "\n" - (let ((last-command-event ?\")) - (dotimes (i 3) - (call-interactively 'self-insert-command))) - (should (string= (buffer-string) - "\"\"\"\"\"\"\n")) - (should (= (point) 4))) - (python-tests-with-temp-buffer - "\"\n\"\"\n" - (goto-char (1- (point-max))) - (let ((last-command-event ?\")) - (call-interactively 'self-insert-command)) - (should (= (point) (1- (point-max)))) - (should (string= (buffer-string) - "\"\n\"\"\"\n")))) + "\"\"\n" + (or epm (electric-pair-mode 1)) + (goto-char (1- (point-max))) + (python-tests-self-insert ?\") + (should (string= (buffer-string) + "\"\"\"\"\"\"\n")) + (should (= (point) 4))) + (python-tests-with-temp-buffer + "\n" + (python-tests-self-insert (list ?\" ?\" ?\")) + (should (string= (buffer-string) + "\"\"\"\"\"\"\n")) + (should (= (point) 4))) + (python-tests-with-temp-buffer + "\"\n\"\"\n" + (goto-char (1- (point-max))) + (python-tests-self-insert ?\") + (should (= (point) (1- (point-max)))) + (should (string= (buffer-string) + "\"\n\"\"\"\n")))) (or epm (electric-pair-mode -1))))) ------------------------------------------------------------ revno: 117467 committer: Dmitry Antipov branch nick: trunk timestamp: Wed 2014-07-02 19:22:49 +0400 message: * lisp.h (toplevel): Add compile-time assert to verify suitable member layout in Lisp_Sub_Char_Table. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-07-02 14:00:41 +0000 +++ src/ChangeLog 2014-07-02 15:22:49 +0000 @@ -6,6 +6,8 @@ (enum char_table_specials): Rename from CHAR_TABLE_STANDARD_SLOTS. Add SUB_CHAR_TABLE_OFFSET member. (make_uninit_sub_char_table): New function. + (toplevel): Add compile-time assert to verify suitable member layout + in Lisp_Sub_Char_Table. * alloc.c (mark_char_table): Add extra argument to denote char table subtype. Adjust to match new layout of sub char-table. (mark_object): Always mark sub char-tables with mark_char_table. === modified file 'src/lisp.h' --- src/lisp.h 2014-07-02 03:26:19 +0000 +++ src/lisp.h 2014-07-02 15:22:49 +0000 @@ -1561,7 +1561,11 @@ - CHAR_TABLE_STANDARD_SLOTS); } - +/* Make sure that sub char-table contents slot + is aligned on a multiple of Lisp_Objects. */ +verify ((offsetof (struct Lisp_Sub_Char_Table, contents) + - offsetof (struct Lisp_Sub_Char_Table, depth)) % word_size == 0); + /*********************************************************************** Symbols ***********************************************************************/ ------------------------------------------------------------ revno: 117466 committer: Dmitry Antipov branch nick: trunk timestamp: Wed 2014-07-02 18:00:41 +0400 message: * print.c (print_object): Adjust to match new layout of sub char-table (Bug#17898). diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-07-02 03:26:19 +0000 +++ src/ChangeLog 2014-07-02 14:00:41 +0000 @@ -15,6 +15,7 @@ (map_sub_char_table_for_charset, uniprop_table_uncompress): All related users changed. * lread.c (read1): Adjust to match new layout of sub char-table. + * print.c (print_object): Likewise (Bug#17898). 2014-07-02 Stefan Monnier === modified file 'src/print.c' --- src/print.c 2014-07-02 03:26:19 +0000 +++ src/print.c 2014-07-02 14:00:41 +0000 @@ -1981,16 +1981,24 @@ PRINTCHAR ('['); { - register int i; + int i, idx = SUB_CHAR_TABLE_P (obj) ? SUB_CHAR_TABLE_OFFSET : 0; register Lisp_Object tem; ptrdiff_t real_size = size; + /* For a sub char-table, print heading non-Lisp data first. */ + if (SUB_CHAR_TABLE_P (obj)) + { + i = sprintf (buf, "%d %d", XSUB_CHAR_TABLE (obj)->depth, + XSUB_CHAR_TABLE (obj)->min_char); + strout (buf, i, i, printcharfun); + } + /* Don't print more elements than the specified maximum. */ if (NATNUMP (Vprint_length) && XFASTINT (Vprint_length) < size) size = XFASTINT (Vprint_length); - for (i = 0; i < size; i++) + for (i = idx; i < size; i++) { if (i) PRINTCHAR (' '); tem = AREF (obj, i); ------------------------------------------------------------ revno: 117465 committer: Luke Lee branch nick: trunk timestamp: Wed 2014-07-02 12:25:21 +0800 message: * lisp/progmodes/hideif.el (hide-ifdef-exclude-define-regexp): Add the forgotten :version "24.5". diff: === modified file 'lisp/progmodes/hideif.el' --- lisp/progmodes/hideif.el 2014-06-28 17:27:29 +0000 +++ lisp/progmodes/hideif.el 2014-07-02 04:25:21 +0000 @@ -138,7 +138,8 @@ (defcustom hide-ifdef-exclude-define-regexp nil "Ignore #define names if those names match this exclusion pattern." - :type 'string) + :type 'string + :version "24.5") (defvar hide-ifdef-mode-submap ;; Set up the submap that goes after the prefix key. ------------------------------------------------------------ revno: 117464 committer: Dmitry Antipov branch nick: trunk timestamp: Wed 2014-07-02 07:26:19 +0400 message: Shrink Lisp_Sub_Char_Table by preferring C integers to Lisp_Objects. * lisp.h (struct Lisp_Sub_Char_Table): Use C integers for depth and min_char slots. Adjust comment. (enum char_table_specials): Rename from CHAR_TABLE_STANDARD_SLOTS. Add SUB_CHAR_TABLE_OFFSET member. (make_uninit_sub_char_table): New function. * alloc.c (mark_char_table): Add extra argument to denote char table subtype. Adjust to match new layout of sub char-table. (mark_object): Always mark sub char-tables with mark_char_table. * chartab.c (make_sub_char_table, copy_sub_char_table) (sub_char_table_ref, sub_char_table_ref_and_range, sub_char_table_set) (sub_char_table_set_range, optimize_sub_char_table, map_sub_char_table) (map_sub_char_table_for_charset, uniprop_table_uncompress): All related users changed. * lread.c (read1): Adjust to match new layout of sub char-table. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-07-02 01:49:31 +0000 +++ src/ChangeLog 2014-07-02 03:26:19 +0000 @@ -1,3 +1,21 @@ +2014-07-02 Dmitry Antipov + + Shrink Lisp_Sub_Char_Table by preferring C integers to Lisp_Objects. + * lisp.h (struct Lisp_Sub_Char_Table): Use C integers for depth and + min_char slots. Adjust comment. + (enum char_table_specials): Rename from CHAR_TABLE_STANDARD_SLOTS. + Add SUB_CHAR_TABLE_OFFSET member. + (make_uninit_sub_char_table): New function. + * alloc.c (mark_char_table): Add extra argument to denote char table + subtype. Adjust to match new layout of sub char-table. + (mark_object): Always mark sub char-tables with mark_char_table. + * chartab.c (make_sub_char_table, copy_sub_char_table) + (sub_char_table_ref, sub_char_table_ref_and_range, sub_char_table_set) + (sub_char_table_set_range, optimize_sub_char_table, map_sub_char_table) + (map_sub_char_table_for_charset, uniprop_table_uncompress): + All related users changed. + * lread.c (read1): Adjust to match new layout of sub char-table. + 2014-07-02 Stefan Monnier * keymap.c (get_keyelt): Simplify. === modified file 'src/alloc.c' --- src/alloc.c 2014-06-15 00:06:30 +0000 +++ src/alloc.c 2014-07-02 03:26:19 +0000 @@ -5958,14 +5958,15 @@ symbols. */ static void -mark_char_table (struct Lisp_Vector *ptr) +mark_char_table (struct Lisp_Vector *ptr, enum pvec_type pvectype) { int size = ptr->header.size & PSEUDOVECTOR_SIZE_MASK; - int i; + /* Consult the Lisp_Sub_Char_Table layout before changing this. */ + int i, idx = (pvectype == PVEC_SUB_CHAR_TABLE ? SUB_CHAR_TABLE_OFFSET : 0); eassert (!VECTOR_MARKED_P (ptr)); VECTOR_MARK (ptr); - for (i = 0; i < size; i++) + for (i = idx; i < size; i++) { Lisp_Object val = ptr->contents[i]; @@ -5974,7 +5975,7 @@ if (SUB_CHAR_TABLE_P (val)) { if (! VECTOR_MARKED_P (XVECTOR (val))) - mark_char_table (XVECTOR (val)); + mark_char_table (XVECTOR (val), PVEC_SUB_CHAR_TABLE); } else mark_object (val); @@ -6320,7 +6321,8 @@ break; case PVEC_CHAR_TABLE: - mark_char_table (ptr); + case PVEC_SUB_CHAR_TABLE: + mark_char_table (ptr, (enum pvec_type) pvectype); break; case PVEC_BOOL_VECTOR: @@ -7218,7 +7220,7 @@ union { enum CHARTAB_SIZE_BITS CHARTAB_SIZE_BITS; - enum CHAR_TABLE_STANDARD_SLOTS CHAR_TABLE_STANDARD_SLOTS; + enum char_table_specials char_table_specials; enum char_bits char_bits; enum CHECK_LISP_OBJECT_TYPE CHECK_LISP_OBJECT_TYPE; enum DEFAULT_HASH_SIZE DEFAULT_HASH_SIZE; === modified file 'src/chartab.c' --- src/chartab.c 2014-04-03 20:46:04 +0000 +++ src/chartab.c 2014-07-02 03:26:19 +0000 @@ -140,15 +140,11 @@ static Lisp_Object make_sub_char_table (int depth, int min_char, Lisp_Object defalt) { - Lisp_Object table; - int size = (PSEUDOVECSIZE (struct Lisp_Sub_Char_Table, contents) - + chartab_size[depth]); - - table = Fmake_vector (make_number (size), defalt); - XSETPVECTYPE (XVECTOR (table), PVEC_SUB_CHAR_TABLE); - XSUB_CHAR_TABLE (table)->depth = make_number (depth); - XSUB_CHAR_TABLE (table)->min_char = make_number (min_char); - + int i; + Lisp_Object table = make_uninit_sub_char_table (depth, min_char); + + for (i = 0; i < chartab_size[depth]; i++) + XSUB_CHAR_TABLE (table)->contents[i] = defalt; return table; } @@ -172,8 +168,8 @@ static Lisp_Object copy_sub_char_table (Lisp_Object table) { - int depth = XINT (XSUB_CHAR_TABLE (table)->depth); - int min_char = XINT (XSUB_CHAR_TABLE (table)->min_char); + int depth = XSUB_CHAR_TABLE (table)->depth; + int min_char = XSUB_CHAR_TABLE (table)->min_char; Lisp_Object copy = make_sub_char_table (depth, min_char, Qnil); int i; @@ -220,10 +216,8 @@ sub_char_table_ref (Lisp_Object table, int c, bool is_uniprop) { struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table); - int depth = XINT (tbl->depth); - int min_char = XINT (tbl->min_char); Lisp_Object val; - int idx = CHARTAB_IDX (c, depth, min_char); + int idx = CHARTAB_IDX (c, tbl->depth, tbl->min_char); val = tbl->contents[idx]; if (is_uniprop && UNIPROP_COMPRESSED_FORM_P (val)) @@ -265,8 +259,7 @@ Lisp_Object defalt, bool is_uniprop) { struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table); - int depth = XINT (tbl->depth); - int min_char = XINT (tbl->min_char); + int depth = tbl->depth, min_char = tbl->min_char; int chartab_idx = CHARTAB_IDX (c, depth, min_char), idx; Lisp_Object val; @@ -402,8 +395,7 @@ sub_char_table_set (Lisp_Object table, int c, Lisp_Object val, bool is_uniprop) { struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table); - int depth = XINT ((tbl)->depth); - int min_char = XINT ((tbl)->min_char); + int depth = tbl->depth, min_char = tbl->min_char; int i = CHARTAB_IDX (c, depth, min_char); Lisp_Object sub; @@ -458,8 +450,7 @@ bool is_uniprop) { struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table); - int depth = XINT ((tbl)->depth); - int min_char = XINT ((tbl)->min_char); + int depth = tbl->depth, min_char = tbl->min_char; int chars_in_block = chartab_chars[depth]; int i, c, lim = chartab_size[depth]; @@ -689,9 +680,8 @@ optimize_sub_char_table (Lisp_Object table, Lisp_Object test) { struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table); - int depth = XINT (tbl->depth); + int i, depth = tbl->depth; Lisp_Object elt, this; - int i; bool optimizable; elt = XSUB_CHAR_TABLE (table)->contents[0]; @@ -778,8 +768,8 @@ { struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table); - depth = XINT (tbl->depth); - min_char = XINT (tbl->min_char); + depth = tbl->depth; + min_char = tbl->min_char; max_char = min_char + chartab_chars[depth - 1] - 1; } else @@ -973,12 +963,10 @@ unsigned from, unsigned to) { struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table); - int depth = XINT (tbl->depth); - int c, i; + int i, c = tbl->min_char, depth = tbl->depth; if (depth < 3) - for (i = 0, c = XINT (tbl->min_char); i < chartab_size[depth]; - i++, c += chartab_chars[depth]) + for (i = 0; i < chartab_size[depth]; i++, c += chartab_chars[depth]) { Lisp_Object this; @@ -1000,7 +988,7 @@ } } else - for (i = 0, c = XINT (tbl->min_char); i < chartab_size[depth]; i++, c ++) + for (i = 0; i < chartab_size[depth]; i++, c++) { Lisp_Object this; unsigned code; @@ -1147,8 +1135,7 @@ uniprop_table_uncompress (Lisp_Object table, int idx) { Lisp_Object val = XSUB_CHAR_TABLE (table)->contents[idx]; - int min_char = (XINT (XSUB_CHAR_TABLE (table)->min_char) - + chartab_chars[2] * idx); + int min_char = XSUB_CHAR_TABLE (table)->min_char + chartab_chars[2] * idx; Lisp_Object sub = make_sub_char_table (3, min_char, Qnil); const unsigned char *p, *pend; === modified file 'src/lisp.h' --- src/lisp.h 2014-06-25 12:11:08 +0000 +++ src/lisp.h 2014-07-02 03:26:19 +0000 @@ -1407,10 +1407,11 @@ sense to handle a char-table with type struct Lisp_Vector. An element of a char table can be any Lisp objects, but if it is a sub char-table, we treat it a table that contains information of a - specific range of characters. A sub char-table has the same - structure as a vector. A sub char table appears only in an element - of a char-table, and there's no way to access it directly from - Emacs Lisp program. */ + specific range of characters. A sub char-table is like a vector but + with two integer fields between the header and Lisp data, which means + that it has to be marked with some precautions (see mark_char_table + in alloc.c). A sub char-table appears only in an element of a char-table, + and there's no way to access it directly from Emacs Lisp program. */ enum CHARTAB_SIZE_BITS { @@ -1465,10 +1466,10 @@ contains 32 elements, and each element covers 128 characters. A sub char-table of depth 3 contains 128 elements, and each element is for one character. */ - Lisp_Object depth; + int depth; /* Minimum character covered by the sub char-table. */ - Lisp_Object min_char; + int min_char; /* Use set_sub_char_table_contents to set this. */ Lisp_Object contents[FLEXIBLE_ARRAY_MEMBER]; @@ -1539,12 +1540,16 @@ const char *doc; }; -/* This is the number of slots that every char table must have. This - counts the ordinary slots and the top, defalt, parent, and purpose - slots. */ -enum CHAR_TABLE_STANDARD_SLOTS +enum char_table_specials { - CHAR_TABLE_STANDARD_SLOTS = PSEUDOVECSIZE (struct Lisp_Char_Table, extras) + /* This is the number of slots that every char table must have. This + counts the ordinary slots and the top, defalt, parent, and purpose + slots. */ + CHAR_TABLE_STANDARD_SLOTS = PSEUDOVECSIZE (struct Lisp_Char_Table, extras), + + /* This is an index of first Lisp_Object field in Lisp_Sub_Char_Table + when the latter is treated as an ordinary Lisp_Vector. */ + SUB_CHAR_TABLE_OFFSET = PSEUDOVECSIZE (struct Lisp_Sub_Char_Table, contents) }; /* Return the number of "extra" slots in the char table CT. */ @@ -3723,6 +3728,20 @@ return v; } +/* Like above, but special for sub char-tables. */ + +INLINE Lisp_Object +make_uninit_sub_char_table (int depth, int min_char) +{ + int slots = SUB_CHAR_TABLE_OFFSET + chartab_size[depth]; + Lisp_Object v = make_uninit_vector (slots); + + XSETPVECTYPE (XVECTOR (v), PVEC_SUB_CHAR_TABLE); + XSUB_CHAR_TABLE (v)->depth = depth; + XSUB_CHAR_TABLE (v)->min_char = min_char; + return v; +} + extern struct Lisp_Vector *allocate_pseudovector (int, int, enum pvec_type); #define ALLOCATE_PSEUDOVECTOR(typ,field,tag) \ ((typ*) \ === modified file 'src/lread.c' --- src/lread.c 2014-06-23 04:11:29 +0000 +++ src/lread.c 2014-07-02 03:26:19 +0000 @@ -2619,21 +2619,38 @@ c = READCHAR; if (c == '[') { - Lisp_Object tmp; - int depth; - ptrdiff_t size; + /* Sub char-table can't be read as a regular + vector because of a two C integer fields. */ + Lisp_Object tbl, tmp = read_list (1, readcharfun); + ptrdiff_t size = XINT (Flength (tmp)); + int i, depth, min_char; + struct Lisp_Cons *cell; - tmp = read_vector (readcharfun, 0); - size = ASIZE (tmp); if (size == 0) - error ("Invalid size char-table"); - if (! RANGED_INTEGERP (1, AREF (tmp, 0), 3)) - error ("Invalid depth in char-table"); - depth = XINT (AREF (tmp, 0)); + error ("Zero-sized sub char-table"); + + if (! RANGED_INTEGERP (1, XCAR (tmp), 3)) + error ("Invalid depth in sub char-table"); + depth = XINT (XCAR (tmp)); if (chartab_size[depth] != size - 2) - error ("Invalid size char-table"); - XSETPVECTYPE (XVECTOR (tmp), PVEC_SUB_CHAR_TABLE); - return tmp; + error ("Invalid size in sub char-table"); + cell = XCONS (tmp), tmp = XCDR (tmp), size--; + free_cons (cell); + + if (! RANGED_INTEGERP (0, XCAR (tmp), MAX_CHAR)) + error ("Invalid minimum character in sub-char-table"); + min_char = XINT (XCAR (tmp)); + cell = XCONS (tmp), tmp = XCDR (tmp), size--; + free_cons (cell); + + tbl = make_uninit_sub_char_table (depth, min_char); + for (i = 0; i < size; i++) + { + XSUB_CHAR_TABLE (tbl)->contents[i] = XCAR (tmp); + cell = XCONS (tmp), tmp = XCDR (tmp); + free_cons (cell); + } + return tbl; } invalid_syntax ("#^^"); } === modified file 'src/print.c' --- src/print.c 2014-06-23 04:11:29 +0000 +++ src/print.c 2014-07-02 03:26:19 +0000 @@ -1968,7 +1968,7 @@ Otherwise we'll make a line extremely long, which results in slow redisplay. */ if (SUB_CHAR_TABLE_P (obj) - && XINT (XSUB_CHAR_TABLE (obj)->depth) == 3) + && XSUB_CHAR_TABLE (obj)->depth == 3) PRINTCHAR ('\n'); PRINTCHAR ('#'); PRINTCHAR ('^'); ------------------------------------------------------------ revno: 117463 committer: Stefan Monnier branch nick: trunk timestamp: Tue 2014-07-01 21:49:31 -0400 message: * doc/lispref/keymaps.texi (Key Lookup): Remove mention of indirect entries. (Scanning Keymaps): Reword the `noindirect' argument. * src/keymap.c (get_keyelt): Simplify. (copy_keymap_item): Remove left-over code for when we had key-shortcut caches. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-06-28 17:27:29 +0000 +++ doc/lispref/ChangeLog 2014-07-02 01:49:31 +0000 @@ -1,3 +1,8 @@ +2014-07-02 Stefan Monnier + + * keymaps.texi (Key Lookup): Remove mention of indirect entries. + (Scanning Keymaps): Reword the `noindirect' argument. + 2014-06-28 Glenn Morris * minibuf.texi (Intro to Minibuffers): Batch mode is basic. === modified file 'doc/lispref/keymaps.texi' --- doc/lispref/keymaps.texi 2014-06-08 23:39:23 +0000 +++ doc/lispref/keymaps.texi 2014-07-02 01:49:31 +0000 @@ -1043,22 +1043,6 @@ as such (see above). In order to execute properly as a key binding, this function must be a command---it must have an @code{interactive} specification. @xref{Defining Commands}. - -@item -If the @sc{car} of @var{list} is a keymap and the @sc{cdr} is an event -type, then this is an @dfn{indirect entry}: - -@example -(@var{othermap} . @var{othertype}) -@end example - -When key lookup encounters an indirect entry, it looks up instead the -binding of @var{othertype} in @var{othermap} and uses that. - -This feature permits you to define one key as an alias for another key. -For example, an entry whose @sc{car} is the keymap called @code{esc-map} -and whose @sc{cdr} is 32 (the code for @key{SPC}) means, ``Use the global -binding of @kbd{Meta-@key{SPC}}, whatever that may be''. @end itemize @item @var{symbol} @@ -1066,9 +1050,7 @@ The function definition of @var{symbol} is used in place of @var{symbol}. If that too is a symbol, then this process is repeated, any number of times. Ultimately this should lead to an object that is -a keymap, a command, or a keyboard macro. A list is allowed if it is a -keymap or a command, but indirect entries are not understood when found -via symbols. +a keymap, a command, or a keyboard macro. Note that keymaps and keyboard macros (strings and vectors) are not valid functions, so a symbol with a keymap, string, or vector as its @@ -1097,8 +1079,7 @@ @end table In short, a keymap entry may be a keymap, a command, a keyboard -macro, a symbol that leads to one of them, or an indirection or -@code{nil}. +macro, a symbol that leads to one of them, or @code{nil}. @node Functions for Key Lookup @section Functions for Key Lookup @@ -1945,9 +1926,9 @@ characters) are preferred to all other key sequences and that the return value can never be a menu binding. -If @var{noindirect} is non-@code{nil}, @code{where-is-internal} doesn't -follow indirect keymap bindings. This makes it possible to search for -an indirect definition itself. +If @var{noindirect} is non-@code{nil}, @code{where-is-internal} doesn't look +inside menu-items to find their commands. This makes it possible to search for +a menu-item itself. The fifth argument, @var{no-remap}, determines how this function treats command remappings (@pxref{Remapping Commands}). There are two === modified file 'src/ChangeLog' --- src/ChangeLog 2014-06-30 18:44:56 +0000 +++ src/ChangeLog 2014-07-02 01:49:31 +0000 @@ -1,3 +1,9 @@ +2014-07-02 Stefan Monnier + + * keymap.c (get_keyelt): Simplify. + (copy_keymap_item): Remove left-over code for when we had + key-shortcut caches. + 2014-06-30 Jan Djärv * nsterm.m (judge): EmacsScroller: Move dealloc code here. @@ -19,8 +25,7 @@ (mouseMoved:): Set any_help_event_p to YES if help event is generated. Remove else with empty help event that triggered redisplay for every mouse move. - (windowDidResignKey:): If any_help_event_p, generate empty help - event. + (windowDidResignKey:): If any_help_event_p, generate empty help event. 2014-06-29 Dmitry Antipov === modified file 'src/keymap.c' --- src/keymap.c 2014-06-12 14:55:48 +0000 +++ src/keymap.c 2014-07-02 01:49:31 +0000 @@ -727,11 +727,6 @@ /* This is really the value. */ return object; - /* If the keymap contents looks like (keymap ...) or (lambda ...) - then use itself. */ - else if (EQ (XCAR (object), Qkeymap) || EQ (XCAR (object), Qlambda)) - return object; - /* If the keymap contents looks like (menu-item name . DEFN) or (menu-item name DEFN ...) then use DEFN. This is a new format menu item. */ @@ -768,25 +763,8 @@ Keymap alist elements like (CHAR MENUSTRING . DEFN) will be used by HierarKey menus. */ else if (STRINGP (XCAR (object))) - { - object = XCDR (object); - /* Also remove a menu help string, if any, - following the menu item name. */ - if (CONSP (object) && STRINGP (XCAR (object))) - object = XCDR (object); - /* Also remove the sublist that caches key equivalences, if any. */ - if (CONSP (object) && CONSP (XCAR (object))) - { - Lisp_Object carcar; - carcar = XCAR (XCAR (object)); - if (NILP (carcar) || VECTORP (carcar)) - object = XCDR (object); - } - } + object = XCDR (object); - /* If the contents are (KEYMAP . ELEMENT), go indirect. */ - else if (KEYMAPP (XCAR (object))) - error ("Wow, indirect keymap entry!!"); else return object; } @@ -990,9 +968,6 @@ if (CONSP (tem) && EQ (XCAR (tem), Qkeymap)) XSETCAR (elt, Fcopy_keymap (tem)); tem = XCDR (elt); - if (CONSP (tem) && CONSP (XCAR (tem))) - /* Delete cache for key equivalences. */ - XSETCDR (elt, XCDR (tem)); } } else @@ -1011,16 +986,6 @@ elt = XCDR (elt); tem = XCDR (elt); } - /* There may also be a list that caches key equivalences. - Just delete it for the new keymap. */ - if (CONSP (tem) - && CONSP (XCAR (tem)) - && (NILP (XCAR (XCAR (tem))) - || VECTORP (XCAR (XCAR (tem))))) - { - XSETCDR (elt, XCDR (tem)); - tem = XCDR (tem); - } if (CONSP (tem) && EQ (XCAR (tem), Qkeymap)) XSETCDR (elt, Fcopy_keymap (tem)); } @@ -2572,9 +2537,8 @@ that use the modifier key specified in `where-is-preferred-modifier' \(or their meta variants) and entirely reject menu bindings. -If optional 4th arg NOINDIRECT is non-nil, don't follow indirections -to other keymaps or slots. This makes it possible to search for an -indirect definition itself. +If optional 4th arg NOINDIRECT is non-nil, don't extract the commands inside +menu-items. This makes it possible to search for a menu-item itself. The optional 5th arg NO-REMAP alters how command remapping is handled: ------------------------------------------------------------ revno: 117462 committer: Juri Linkov branch nick: trunk timestamp: Wed 2014-07-02 03:57:53 +0300 message: * lisp/man.el (Man-bgproc-sentinel): Use `Man-page-from-arguments' for the message about the man page cleaned up. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-07-01 23:54:59 +0000 +++ lisp/ChangeLog 2014-07-02 00:57:53 +0000 @@ -21,11 +21,14 @@ `Man-bgproc-filter'. Move the call of `Man-mode' to `Man-getpage-in-background'. Use `quit-restore-window' instead of `kill-buffer'. Use `message' instead of `error' - because errors are catched by process sentinel. + because errors are caught by process sentinel. (Man-mode): Move calls of `Man-build-page-list', `Man-strip-page-headers', `Man-unindent', `Man-goto-page' to `Man-bgproc-sentinel'. Doc fix. (Bug#2588, bug#5054, bug#9084, bug#17831) + * man.el (Man-bgproc-sentinel): Use `Man-page-from-arguments' + for the message about the man page cleaned up. + 2014-07-01 Mario Lang * net/gnutls.el (gnutls-negotiate): Prevent destructive modification of === modified file 'lisp/man.el' --- lisp/man.el 2014-07-01 23:54:59 +0000 +++ lisp/man.el 2014-07-02 00:57:53 +0000 @@ -1432,7 +1432,8 @@ (if Man-fontify-manpage-flag (message "%s man page formatted" (Man-page-from-arguments Man-arguments)) - (message "%s man page cleaned up" Man-arguments)) + (message "%s man page cleaned up" + (Man-page-from-arguments Man-arguments))) (unless (and (processp process) (not (eq (process-status process) 'exit))) (setq mode-line-process nil)) ------------------------------------------------------------ revno: 117461 fixes bug: http://debbugs.gnu.org/2588 committer: Juri Linkov branch nick: trunk timestamp: Wed 2014-07-02 02:54:59 +0300 message: Display man pages immediately and use process-filter to format them asynchronously. * lisp/man.el (Man-width): Doc fix. (man): Doc fix. (Man-start-calling): Use `with-selected-window' to get `frame-width' and `window-width'. (Man-getpage-in-background): Call `Man-notify-when-ready' immediately after creating a new buffer. Call `Man-mode' and set `mode-line-process' in the created buffer. Set process-filter to `Man-bgproc-filter' in start-process branch. In call-process branch call either `Man-fontify-manpage' or `Man-cleanup-manpage'. Use `Man-start-calling' inside `with-current-buffer'. (Man-fontify-manpage): Don't print messages. Fix boundary condition. (Man-cleanup-manpage): Don't print messages. (Man-bgproc-filter): New function. (Man-bgproc-sentinel): Add `save-excursion' to keep point when user moved it during asynchronous formatting. Move calls of `Man-fontify-manpage' and `Man-cleanup-manpage' to `Man-bgproc-filter'. Move the call of `Man-mode' to `Man-getpage-in-background'. Use `quit-restore-window' instead of `kill-buffer'. Use `message' instead of `error' because errors are catched by process sentinel. (Man-mode): Move calls of `Man-build-page-list', `Man-strip-page-headers', `Man-unindent', `Man-goto-page' to `Man-bgproc-sentinel'. Doc fix. (Bug#2588, bug#5054, bug#9084, bug#17831) diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-07-01 18:48:24 +0000 +++ lisp/ChangeLog 2014-07-01 23:54:59 +0000 @@ -1,3 +1,31 @@ +2014-07-01 Juri Linkov + + * man.el: Display man pages immediately and use process-filter + to format them asynchronously. + (Man-width): Doc fix. + (man): Doc fix. + (Man-start-calling): Use `with-selected-window' to get + `frame-width' and `window-width'. + (Man-getpage-in-background): Call `Man-notify-when-ready' + immediately after creating a new buffer. Call `Man-mode' and set + `mode-line-process' in the created buffer. Set process-filter to + `Man-bgproc-filter' in start-process branch. In call-process branch + call either `Man-fontify-manpage' or `Man-cleanup-manpage'. + Use `Man-start-calling' inside `with-current-buffer'. + (Man-fontify-manpage): Don't print messages. Fix boundary condition. + (Man-cleanup-manpage): Don't print messages. + (Man-bgproc-filter): New function. + (Man-bgproc-sentinel): Add `save-excursion' to keep point when + user moved it during asynchronous formatting. Move calls of + `Man-fontify-manpage' and `Man-cleanup-manpage' to + `Man-bgproc-filter'. Move the call of `Man-mode' to + `Man-getpage-in-background'. Use `quit-restore-window' + instead of `kill-buffer'. Use `message' instead of `error' + because errors are catched by process sentinel. + (Man-mode): Move calls of `Man-build-page-list', + `Man-strip-page-headers', `Man-unindent', `Man-goto-page' to + `Man-bgproc-sentinel'. Doc fix. (Bug#2588, bug#5054, bug#9084, bug#17831) + 2014-07-01 Mario Lang * net/gnutls.el (gnutls-negotiate): Prevent destructive modification of === modified file 'lisp/man.el' --- lisp/man.el 2014-05-09 07:02:00 +0000 +++ lisp/man.el 2014-07-01 23:54:59 +0000 @@ -173,13 +173,12 @@ (defcustom Man-width nil "Number of columns for which manual pages should be formatted. -If nil, the width of the window selected at the moment of man -invocation is used. If non-nil, the width of the frame selected -at the moment of man invocation is used. The value also can be a -positive integer." +If nil, use the width of the window where the manpage is displayed. +If non-nil, use the width of the frame where the manpage is displayed. +The value also can be a positive integer for a fixed width." :type '(choice (const :tag "Window width" nil) (const :tag "Frame width" t) - (integer :tag "Specific width" :value 65)) + (integer :tag "Fixed width" :value 65)) :group 'man) (defcustom Man-frame-parameters nil @@ -930,12 +929,14 @@ ;;;###autoload (defun man (man-args) "Get a Un*x manual page and put it in a buffer. -This command is the top-level command in the man package. It -runs a Un*x command to retrieve and clean a manpage in the +This command is the top-level command in the man package. +It runs a Un*x command to retrieve and clean a manpage in the background and places the results in a `Man-mode' browsing -buffer. See variable `Man-notify-method' for what happens when -the buffer is ready. If a buffer already exists for this man -page, it will display immediately. +buffer. The variable `Man-width' defines the number of columns in +formatted manual pages. The buffer is displayed immediately. +The variable `Man-notify-method' defines how the buffer is displayed. +If a buffer already exists for this man page, it will be displayed +without running the man command. For a manpage from a particular section, use either of the following. \"cat(1)\" is how cross-references appear and is @@ -1030,15 +1031,22 @@ ;; ther is available). (when (or window-system (not (or (getenv "MANWIDTH") (getenv "COLUMNS")))) - ;; This isn't strictly correct, since we don't know how - ;; the page will actually be displayed, but it seems - ;; reasonable. + ;; Since the page buffer is displayed beforehand, + ;; we can select its window and get the window/frame width. (setenv "COLUMNS" (number-to-string (cond ((and (integerp Man-width) (> Man-width 0)) Man-width) - (Man-width (frame-width)) - ((window-width)))))) + (Man-width + (if (window-live-p (get-buffer-window (current-buffer) t)) + (with-selected-window (get-buffer-window (current-buffer) t) + (frame-width)) + (frame-width))) + (t + (if (window-live-p (get-buffer-window (current-buffer) t)) + (with-selected-window (get-buffer-window (current-buffer) t) + (window-width)) + (window-width))))))) ;; Since man-db 2.4.3-1, man writes plain text with no escape ;; sequences when stdout is not a tty. In 2.5.0, the following ;; env-var was added to allow control of this (see Debian Bug#340673). @@ -1057,33 +1065,45 @@ (message "Invoking %s %s in the background" manual-program man-args) (setq buffer (generate-new-buffer bufname)) (with-current-buffer buffer + (Man-notify-when-ready buffer) (setq buffer-undo-list t) (setq Man-original-frame (selected-frame)) - (setq Man-arguments man-args)) - (Man-start-calling - (if (fboundp 'start-process) - (set-process-sentinel - (start-process manual-program buffer - (if (memq system-type '(cygwin windows-nt)) - shell-file-name - "sh") - shell-command-switch - (format (Man-build-man-command) man-args)) - 'Man-bgproc-sentinel) - (let ((exit-status - (call-process shell-file-name nil (list buffer nil) nil - shell-command-switch - (format (Man-build-man-command) man-args))) - (msg "")) - (or (and (numberp exit-status) - (= exit-status 0)) - (and (numberp exit-status) - (setq msg - (format "exited abnormally with code %d" - exit-status))) - (setq msg exit-status)) - (Man-bgproc-sentinel bufname msg))))) - buffer)) + (setq Man-arguments man-args) + (Man-mode) + (setq mode-line-process + (concat " " (propertize (if Man-fontify-manpage-flag + "[formatting...]" + "[cleaning...]") + 'face 'mode-line-emphasis))) + (Man-start-calling + (if (fboundp 'start-process) + (let ((proc (start-process + manual-program buffer + (if (memq system-type '(cygwin windows-nt)) + shell-file-name + "sh") + shell-command-switch + (format (Man-build-man-command) man-args)))) + (set-process-sentinel proc 'Man-bgproc-sentinel) + (set-process-filter proc 'Man-bgproc-filter)) + (let* ((inhibit-read-only t) + (exit-status + (call-process shell-file-name nil (list buffer nil) nil + shell-command-switch + (format (Man-build-man-command) man-args))) + (msg "")) + (or (and (numberp exit-status) + (= exit-status 0)) + (and (numberp exit-status) + (setq msg + (format "exited abnormally with code %d" + exit-status))) + (setq msg exit-status)) + (if Man-fontify-manpage-flag + (Man-fontify-manpage) + (Man-cleanup-manpage)) + (Man-bgproc-sentinel bufname msg)))))) + buffer)) (defun Man-update-manpage () "Reformat current manpage by calling the man command again synchronously." @@ -1168,7 +1188,6 @@ "Convert overstriking and underlining to the correct fonts. Same for the ANSI bold and normal escape sequences." (interactive) - (message "Please wait: formatting the %s man page..." Man-arguments) (goto-char (point-min)) ;; Fontify ANSI escapes. (let ((ansi-color-apply-face-function @@ -1183,7 +1202,7 @@ ;; Multibyte characters exist. (progn (goto-char (point-min)) - (while (search-forward "__\b\b" nil t) + (while (and (search-forward "__\b\b" nil t) (not (eobp))) (backward-delete-char 4) (put-text-property (point) (1+ (point)) 'face 'Man-underline)) (goto-char (point-min)) @@ -1191,7 +1210,7 @@ (backward-delete-char 4) (put-text-property (1- (point)) (point) 'face 'Man-underline)))) (goto-char (point-min)) - (while (search-forward "_\b" nil t) + (while (and (search-forward "_\b" nil t) (not (eobp))) (backward-delete-char 2) (put-text-property (point) (1+ (point)) 'face 'Man-underline)) (goto-char (point-min)) @@ -1223,8 +1242,7 @@ (while (re-search-forward Man-heading-regexp nil t) (put-text-property (match-beginning 0) (match-end 0) - 'face 'Man-overstrike))) - (message "%s man page formatted" (Man-page-from-arguments Man-arguments))) + 'face 'Man-overstrike)))) (defun Man-highlight-references (&optional xref-man-type) "Highlight the references on mouse-over. @@ -1286,8 +1304,6 @@ but when called interactively, do those jobs even if the sed script would have done them." (interactive "p") - (message "Please wait: cleaning up the %s man page..." - Man-arguments) (if (or interactive (not Man-sed-script)) (progn (goto-char (point-min)) @@ -1309,8 +1325,35 @@ ;; their preceding chars (but don't put Man-overstrike). (Bug#5566) (goto-char (point-min)) (while (re-search-forward ".\b" nil t) (backward-delete-char 2)) - (Man-softhyphen-to-minus) - (message "%s man page cleaned up" Man-arguments)) + (Man-softhyphen-to-minus)) + +(defun Man-bgproc-filter (process string) + "Manpage background process filter. +When manpage command is run asynchronously, PROCESS is the process +object for the manpage command; when manpage command is run +synchronously, PROCESS is the name of the buffer where the manpage +command is run. Second argument STRING is the entire string of output." + (save-excursion + (let ((Man-buffer (process-buffer process))) + (if (null (buffer-name Man-buffer)) ;; deleted buffer + (set-process-buffer process nil) + + (with-current-buffer Man-buffer + (let ((inhibit-read-only t) + (beg (marker-position (process-mark process)))) + (save-excursion + (goto-char beg) + (insert string) + (save-restriction + (narrow-to-region + (save-excursion + (goto-char beg) + (line-beginning-position)) + (point)) + (if Man-fontify-manpage-flag + (Man-fontify-manpage) + (Man-cleanup-manpage))) + (set-marker (process-mark process) (point-max))))))))) (defun Man-bgproc-sentinel (process msg) "Manpage background process sentinel. @@ -1329,63 +1372,74 @@ (set-process-buffer process nil)) (with-current-buffer Man-buffer - (let ((case-fold-search nil)) - (goto-char (point-min)) - (cond ((or (looking-at "No \\(manual \\)*entry for") - (looking-at "[^\n]*: nothing appropriate$")) - (setq err-mess (buffer-substring (point) - (progn - (end-of-line) (point))) - delete-buff t)) - - ;; "-k foo", successful exit, but no output (from man-db) - ;; ENHANCE-ME: share the check for -k with - ;; `Man-highlight-references'. The \\s- bits here are - ;; meant to allow for multiple options with -k among them. - ((and (string-match "\\(\\`\\|\\s-\\)-k\\s-" Man-arguments) - (eq (process-status process) 'exit) - (= (process-exit-status process) 0) - (= (point-min) (point-max))) - (setq err-mess (format "%s: no matches" Man-arguments) - delete-buff t)) - - ((or (stringp process) - (not (and (eq (process-status process) 'exit) - (= (process-exit-status process) 0)))) - (or (zerop (length msg)) - (progn - (setq err-mess - (concat (buffer-name Man-buffer) - ": process " - (let ((eos (1- (length msg)))) - (if (= (aref msg eos) ?\n) - (substring msg 0 eos) msg)))) - (goto-char (point-max)) - (insert (format "\nprocess %s" msg)))) - )) - (if delete-buff - (kill-buffer Man-buffer) - (if Man-fontify-manpage-flag - (Man-fontify-manpage) - (Man-cleanup-manpage)) - - (run-hooks 'Man-cooked-hook) - (Man-mode) - - (if (not Man-page-list) - (let ((args Man-arguments)) - (kill-buffer (current-buffer)) - (user-error "Can't find the %s manpage" - (Man-page-from-arguments args))) - (set-buffer-modified-p nil)))) - ;; Restore case-fold-search before calling - ;; Man-notify-when-ready because it may switch buffers. - - (if (not delete-buff) - (Man-notify-when-ready Man-buffer)) + (save-excursion + (let ((case-fold-search nil)) + (goto-char (point-min)) + (cond ((or (looking-at "No \\(manual \\)*entry for") + (looking-at "[^\n]*: nothing appropriate$")) + (setq err-mess (buffer-substring (point) + (progn + (end-of-line) (point))) + delete-buff t)) + + ;; "-k foo", successful exit, but no output (from man-db) + ;; ENHANCE-ME: share the check for -k with + ;; `Man-highlight-references'. The \\s- bits here are + ;; meant to allow for multiple options with -k among them. + ((and (string-match "\\(\\`\\|\\s-\\)-k\\s-" Man-arguments) + (eq (process-status process) 'exit) + (= (process-exit-status process) 0) + (= (point-min) (point-max))) + (setq err-mess (format "%s: no matches" Man-arguments) + delete-buff t)) + + ((or (stringp process) + (not (and (eq (process-status process) 'exit) + (= (process-exit-status process) 0)))) + (or (zerop (length msg)) + (progn + (setq err-mess + (concat (buffer-name Man-buffer) + ": process " + (let ((eos (1- (length msg)))) + (if (= (aref msg eos) ?\n) + (substring msg 0 eos) msg)))) + (goto-char (point-max)) + (insert (format "\nprocess %s" msg)))) + )) + (if delete-buff + (if (window-live-p (get-buffer-window Man-buffer t)) + (quit-restore-window + (get-buffer-window Man-buffer t) 'kill) + (kill-buffer Man-buffer)) + + (run-hooks 'Man-cooked-hook) + + (Man-build-page-list) + (Man-strip-page-headers) + (Man-unindent) + (Man-goto-page 1 t) + + (if (not Man-page-list) + (let ((args Man-arguments)) + (if (window-live-p (get-buffer-window (current-buffer) t)) + (quit-restore-window + (get-buffer-window (current-buffer) t) 'kill) + (kill-buffer (current-buffer))) + (message "Can't find the %s manpage" + (Man-page-from-arguments args))) + + (if Man-fontify-manpage-flag + (message "%s man page formatted" + (Man-page-from-arguments Man-arguments)) + (message "%s man page cleaned up" Man-arguments)) + (unless (and (processp process) + (not (eq (process-status process) 'exit))) + (setq mode-line-process nil)) + (set-buffer-modified-p nil))))) (if err-mess - (error "%s" err-mess)) + (message "%s" err-mess)) )))) (defun Man-page-from-arguments (args) @@ -1429,7 +1483,7 @@ The following variables may be of some use. Try \"\\[describe-variable] RET\" for more information: -`Man-notify-method' What happens when manpage formatting is done. +`Man-notify-method' What happens when manpage is ready to display. `Man-downcase-section-letters-flag' Force section letters to lower case. `Man-circular-pages-flag' Treat multiple manpage list as circular. `Man-section-translations-alist' List of section numbers and their Un*x equiv. @@ -1458,11 +1512,7 @@ (set (make-local-variable 'outline-regexp) Man-heading-regexp) (set (make-local-variable 'outline-level) (lambda () 1)) (set (make-local-variable 'bookmark-make-record-function) - 'Man-bookmark-make-record) - (Man-build-page-list) - (Man-strip-page-headers) - (Man-unindent) - (Man-goto-page 1 t)) + 'Man-bookmark-make-record)) (defsubst Man-build-section-alist () "Build the list of manpage sections." @@ -1516,7 +1566,6 @@ (page-end (point-max)) (header "")) (goto-char page-start) - ;; (switch-to-buffer (current-buffer))(debug) (while (not (eobp)) (setq header (if (looking-at Man-page-header-regexp) ------------------------------------------------------------ revno: 117460 committer: Mario Lang branch nick: trunk timestamp: Tue 2014-07-01 20:48:24 +0200 message: * net/gnutls.el (gnutls-negotiate): Prevent destructive modification of customization option `gnutls-verify-error. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-07-01 18:13:28 +0000 +++ lisp/ChangeLog 2014-07-01 18:48:24 +0000 @@ -1,3 +1,8 @@ +2014-07-01 Mario Lang + + * net/gnutls.el (gnutls-negotiate): Prevent destructive modification of + cosutomization option `gnutls-verify-error'. + 2014-07-01 Stefan Monnier * simple.el (deactivate-mark, set-mark-command, handle-shift-selection): === modified file 'lisp/net/gnutls.el' --- lisp/net/gnutls.el 2014-01-01 07:43:34 +0000 +++ lisp/net/gnutls.el 2014-07-01 18:48:24 +0000 @@ -214,7 +214,7 @@ (cl-mapcan (lambda (check) (when (string-match (car check) hostname) - (cdr check))) + (copy-sequence (cdr check)))) gnutls-verify-error)) ;; else it's nil (t nil)))) ------------------------------------------------------------ revno: 117459 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6316 committer: Stefan Monnier branch nick: trunk timestamp: Tue 2014-07-01 14:13:28 -0400 message: * lisp/simple.el (deactivate-mark, set-mark-command, handle-shift-selection): Don't keep transient-mark-mode buffer-local when not needed. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-07-01 16:10:02 +0000 +++ lisp/ChangeLog 2014-07-01 18:13:28 +0000 @@ -1,5 +1,8 @@ 2014-07-01 Stefan Monnier + * simple.el (deactivate-mark, set-mark-command, handle-shift-selection): + Don't keep transient-mark-mode buffer-local when not needed (bug#6316). + * xt-mouse.el (turn-on-xterm-mouse-tracking-on-terminal) (turn-off-xterm-mouse-tracking-on-terminal): Don't burp if the terminal is suspended (bug#17857). === modified file 'lisp/simple.el' --- lisp/simple.el 2014-06-23 20:23:33 +0000 +++ lisp/simple.el 2014-07-01 18:13:28 +0000 @@ -4527,9 +4527,11 @@ (when mark-active (force-mode-line-update)) ;Refresh toolbar (bug#16382). (cond ((eq (car-safe transient-mark-mode) 'only) - (setq transient-mark-mode (cdr transient-mark-mode))) + (setq transient-mark-mode (cdr transient-mark-mode)) + (if (eq transient-mark-mode (default-value 'transient-mark-mode)) + (kill-local-variable 'transient-mark-mode))) ((eq transient-mark-mode 'lambda) - (setq transient-mark-mode nil))) + (kill-local-variable 'transient-mark-mode))) (setq mark-active nil) (run-hooks 'deactivate-mark-hook) (redisplay--update-region-highlight (selected-window)))) @@ -4756,7 +4758,7 @@ purposes. See the documentation of `set-mark' for more information." (interactive "P") (cond ((eq transient-mark-mode 'lambda) - (setq transient-mark-mode nil)) + (kill-local-variable 'transient-mark-mode)) ((eq (car-safe transient-mark-mode) 'only) (deactivate-mark))) (cond @@ -4894,6 +4896,8 @@ (push-mark nil nil t))) ((eq (car-safe transient-mark-mode) 'only) (setq transient-mark-mode (cdr transient-mark-mode)) + (if (eq transient-mark-mode (default-value 'transient-mark-mode)) + (kill-local-variable 'transient-mark-mode)) (deactivate-mark)))) (define-minor-mode transient-mark-mode ------------------------------------------------------------ revno: 117458 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17857 committer: Stefan Monnier branch nick: trunk timestamp: Tue 2014-07-01 12:10:02 -0400 message: * lisp/xt-mouse.el (turn-on-xterm-mouse-tracking-on-terminal) (turn-off-xterm-mouse-tracking-on-terminal): Don't burp if the terminal is suspended. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-07-01 14:06:11 +0000 +++ lisp/ChangeLog 2014-07-01 16:10:02 +0000 @@ -1,3 +1,9 @@ +2014-07-01 Stefan Monnier + + * xt-mouse.el (turn-on-xterm-mouse-tracking-on-terminal) + (turn-off-xterm-mouse-tracking-on-terminal): Don't burp if the terminal + is suspended (bug#17857). + 2014-07-01 Michael Albinus * net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): @@ -40,8 +46,7 @@ Don't call c-parse-state when c++-template-syntax-table is active. * progmodes/cc-engine.el (c-guess-continued-construct CASE G) (c-guess-basic-syntax CASE 5D.3): Rearrange so that - c-syntactic-skip-backwards isn't called with the pertinent syntax - table. + c-syntactic-skip-backwards isn't called with the pertinent syntax table. 2014-06-28 Stephen Berman === modified file 'lisp/xt-mouse.el' --- lisp/xt-mouse.el 2014-06-21 19:45:59 +0000 +++ lisp/xt-mouse.el 2014-07-01 16:10:02 +0000 @@ -312,7 +312,8 @@ "Enable xterm mouse tracking on TERMINAL." (when (and xterm-mouse-mode (eq t (terminal-live-p terminal)) ;; Avoid the initial terminal which is not a termcap device. - ;; FIXME: is there more elegant way to detect the initial terminal? + ;; FIXME: is there more elegant way to detect the initial + ;; terminal? (not (string= (terminal-name terminal) "initial_terminal"))) (unless (terminal-parameter terminal 'xterm-mouse-mode) ;; Simulate selecting a terminal by selecting one of its frames @@ -320,7 +321,13 @@ (with-selected-frame (car (frames-on-display-list terminal)) (define-key input-decode-map "\e[M" 'xterm-mouse-translate) (define-key input-decode-map "\e[<" 'xterm-mouse-translate-extended)) - (send-string-to-terminal xterm-mouse-tracking-enable-sequence terminal) + (condition-case err + (send-string-to-terminal xterm-mouse-tracking-enable-sequence + terminal) + ;; FIXME: This should use a dedicated error signal. + (error (if (equal (cadr err) "Terminal is currently suspended") + nil ;The sequence will be sent upon resume. + (signal (car err) (cdr err))))) (push xterm-mouse-tracking-enable-sequence (terminal-parameter nil 'tty-mode-set-strings)) (push xterm-mouse-tracking-disable-sequence @@ -338,7 +345,13 @@ ;; command too many times (or to catch an unintended key sequence), than ;; to send it too few times (or to fail to let xterm-mouse events ;; pass by untranslated). - (send-string-to-terminal xterm-mouse-tracking-disable-sequence terminal) + (condition-case err + (send-string-to-terminal xterm-mouse-tracking-disable-sequence + terminal) + ;; FIXME: This should use a dedicated error signal. + (error (if (equal (cadr err) "Terminal is currently suspended") + nil + (signal (car err) (cdr err))))) (setf (terminal-parameter nil 'tty-mode-set-strings) (remq xterm-mouse-tracking-enable-sequence (terminal-parameter nil 'tty-mode-set-strings))) ------------------------------------------------------------ revno: 117457 committer: Michael Albinus branch nick: trunk timestamp: Tue 2014-07-01 16:06:11 +0200 message: * net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): Prefer utf-8 coding. (Bug#17859) diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-06-30 20:17:17 +0000 +++ lisp/ChangeLog 2014-07-01 14:06:11 +0000 @@ -1,3 +1,8 @@ +2014-07-01 Michael Albinus + + * net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Prefer utf-8 coding. (Bug#17859) + 2014-06-30 Fabián Ezequiel Gallina * emacs-lisp/subr-x.el (string-reverse): Define as obsolete alias === modified file 'lisp/net/tramp-sh.el' --- lisp/net/tramp-sh.el 2014-06-24 07:15:26 +0000 +++ lisp/net/tramp-sh.el 2014-07-01 14:06:11 +0000 @@ -3964,15 +3964,16 @@ ;; Try to set up the coding system correctly. ;; CCC this can't be the right way to do it. Hm. (tramp-message vec 5 "Determining coding system") - (tramp-send-command vec "echo foo ; echo bar" t) (with-current-buffer (process-buffer proc) - (goto-char (point-min)) (if (featurep 'mule) ;; Use MULE to select the right EOL convention for communicating ;; with the process. - (let* ((cs (or (tramp-compat-funcall 'process-coding-system proc) - (cons 'undecided 'undecided))) - cs-decode cs-encode) + (let ((cs (or (when (string-match + "utf8" (or (tramp-get-remote-locale vec) "")) + (cons 'utf-8 'utf-8)) + (tramp-compat-funcall 'process-coding-system proc) + (cons 'undecided 'undecided))) + cs-decode cs-encode) (when (symbolp cs) (setq cs (cons cs cs))) (setq cs-decode (car cs)) (setq cs-encode (cdr cs)) @@ -3980,6 +3981,8 @@ (unless cs-encode (setq cs-encode 'undecided)) (setq cs-encode (tramp-compat-coding-system-change-eol-conversion cs-encode 'unix)) + (tramp-send-command vec "echo foo ; echo bar" t) + (goto-char (point-min)) (when (search-forward "\r" nil t) (setq cs-decode (tramp-compat-coding-system-change-eol-conversion cs-decode 'dos))) ------------------------------------------------------------ revno: 117456 committer: Glenn Morris branch nick: trunk timestamp: Tue 2014-07-01 06:18:16 -0400 message: Auto-commit of loaddefs files. diff: === modified file 'lisp/ldefs-boot.el' --- lisp/ldefs-boot.el 2014-06-28 17:27:29 +0000 +++ lisp/ldefs-boot.el 2014-07-01 10:18:16 +0000 @@ -374,7 +374,7 @@ ;;;*** -;;;### (autoloads nil "align" "align.el" (21299 64170 881226 0)) +;;;### (autoloads nil "align" "align.el" (21417 20521 870414 0)) ;;; Generated autoloads from align.el (autoload 'align "align" "\ @@ -1452,8 +1452,8 @@ ;;;*** -;;;### (autoloads nil "asm-mode" "progmodes/asm-mode.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "asm-mode" "progmodes/asm-mode.el" (21419 62246 +;;;;;; 751914 0)) ;;; Generated autoloads from progmodes/asm-mode.el (autoload 'asm-mode "asm-mode" "\ @@ -1604,14 +1604,16 @@ ;;;*** -;;;### (autoloads nil "autoload" "emacs-lisp/autoload.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "autoload" "emacs-lisp/autoload.el" (21425 +;;;;;; 43779 760127 645000)) ;;; Generated autoloads from emacs-lisp/autoload.el (put 'generated-autoload-file 'safe-local-variable 'stringp) (put 'generated-autoload-load-name 'safe-local-variable 'stringp) +(put 'autoload-ensure-writable 'risky-local-variable t) + (autoload 'update-file-autoloads "autoload" "\ Update the autoloads for FILE. If prefix arg SAVE-AFTER is non-nil, save the buffer too. @@ -1872,8 +1874,8 @@ ;;;*** -;;;### (autoloads nil "bibtex" "textmodes/bibtex.el" (21264 28773 -;;;;;; 629489 0)) +;;;### (autoloads nil "bibtex" "textmodes/bibtex.el" (21414 44327 +;;;;;; 790846 0)) ;;; Generated autoloads from textmodes/bibtex.el (autoload 'bibtex-initialize "bibtex" "\ @@ -2120,7 +2122,7 @@ ;;;*** -;;;### (autoloads nil "bookmark" "bookmark.el" (21294 46247 414129 +;;;### (autoloads nil "bookmark" "bookmark.el" (21397 35239 170099 ;;;;;; 0)) ;;; Generated autoloads from bookmark.el (define-key ctl-x-r-map "b" 'bookmark-jump) @@ -2287,8 +2289,7 @@ If you load a file containing bookmarks with the same names as bookmarks already present in your Emacs, the new bookmarks will get -unique numeric suffixes \"<2>\", \"<3>\", ... following the same -method buffers use to resolve name collisions. +unique numeric suffixes \"<2>\", \"<3>\", etc. \(fn FILE &optional OVERWRITE NO-MSG)" t nil) @@ -2672,7 +2673,7 @@ ;;;*** -;;;### (autoloads nil "bubbles" "play/bubbles.el" (21202 31159 541460 +;;;### (autoloads nil "bubbles" "play/bubbles.el" (21410 47268 609529 ;;;;;; 0)) ;;; Generated autoloads from play/bubbles.el @@ -2968,7 +2969,7 @@ ;;;*** -;;;### (autoloads nil "calculator" "calculator.el" (21231 31415 579137 +;;;### (autoloads nil "calculator" "calculator.el" (21417 20521 870414 ;;;;;; 0)) ;;; Generated autoloads from calculator.el @@ -2980,8 +2981,8 @@ ;;;*** -;;;### (autoloads nil "calendar" "calendar/calendar.el" (21383 2343 -;;;;;; 498187 0)) +;;;### (autoloads nil "calendar" "calendar/calendar.el" (21403 21198 +;;;;;; 190145 203000)) ;;; Generated autoloads from calendar/calendar.el (autoload 'calendar "calendar" "\ @@ -3049,8 +3050,8 @@ ;;;*** -;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (21385 -;;;;;; 6339 454454 0)) +;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (21425 +;;;;;; 14635 268306 0)) ;;; Generated autoloads from progmodes/cc-engine.el (autoload 'c-guess-basic-syntax "cc-engine" "\ @@ -3060,8 +3061,8 @@ ;;;*** -;;;### (autoloads nil "cc-guess" "progmodes/cc-guess.el" (21308 46599 -;;;;;; 181916 0)) +;;;### (autoloads nil "cc-guess" "progmodes/cc-guess.el" (21419 62246 +;;;;;; 751914 0)) ;;; Generated autoloads from progmodes/cc-guess.el (defvar c-guess-guessed-offsets-alist nil "\ @@ -4959,32 +4960,6 @@ ;;;*** -;;;### (autoloads nil "crisp" "emulation/crisp.el" (21187 63826 213216 -;;;;;; 0)) -;;; Generated autoloads from emulation/crisp.el - -(defvar crisp-mode nil "\ -Track status of CRiSP emulation mode. -A value of nil means CRiSP mode is not enabled. A value of t -indicates CRiSP mode is enabled. - -Setting this variable directly does not take effect; -use either M-x customize or the function `crisp-mode'.") - -(custom-autoload 'crisp-mode "crisp" nil) - -(autoload 'crisp-mode "crisp" "\ -Toggle CRiSP/Brief emulation (CRiSP mode). -With a prefix argument ARG, enable CRiSP mode if ARG is positive, -and disable it otherwise. If called from Lisp, enable the mode -if ARG is omitted or nil. - -\(fn &optional ARG)" t nil) - -(defalias 'brief-mode 'crisp-mode) - -;;;*** - ;;;### (autoloads nil "crm" "emacs-lisp/crm.el" (21263 7861 493097 ;;;;;; 0)) ;;; Generated autoloads from emacs-lisp/crm.el @@ -5571,7 +5546,7 @@ ;;;*** -;;;### (autoloads nil "dbus" "net/dbus.el" (21379 5287 607434 0)) +;;;### (autoloads nil "dbus" "net/dbus.el" (21414 44327 790846 0)) ;;; Generated autoloads from net/dbus.el (autoload 'dbus-handle-event "dbus" "\ @@ -5810,7 +5785,7 @@ ;;;*** -;;;### (autoloads nil "delsel" "delsel.el" (21251 41787 268999 0)) +;;;### (autoloads nil "delsel" "delsel.el" (21414 44327 790846 0)) ;;; Generated autoloads from delsel.el (defalias 'pending-delete-mode 'delete-selection-mode) @@ -5940,7 +5915,8 @@ ;;;*** -;;;### (autoloads nil "desktop" "desktop.el" (21346 7974 405729 0)) +;;;### (autoloads nil "desktop" "desktop.el" (21419 62246 751914 +;;;;;; 0)) ;;; Generated autoloads from desktop.el (defvar desktop-save-mode nil "\ @@ -6268,8 +6244,8 @@ ;;;*** -;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (21409 26408 +;;;;;; 607647 0)) ;;; Generated autoloads from vc/diff-mode.el (autoload 'diff-mode "diff-mode" "\ @@ -6312,7 +6288,7 @@ ;;;*** -;;;### (autoloads nil "dired" "dired.el" (21348 49701 793915 0)) +;;;### (autoloads nil "dired" "dired.el" (21414 44327 790846 0)) ;;; Generated autoloads from dired.el (defvar dired-listing-switches (purecopy "-al") "\ @@ -6735,7 +6711,7 @@ ;;;*** -;;;### (autoloads nil "dunnet" "play/dunnet.el" (21187 63826 213216 +;;;### (autoloads nil "dunnet" "play/dunnet.el" (21406 50214 284651 ;;;;;; 0)) ;;; Generated autoloads from play/dunnet.el (push (purecopy '(dunnet 2 1)) package--builtin-versions) @@ -7954,7 +7930,7 @@ ;;;*** -;;;### (autoloads nil "edt" "emulation/edt.el" (21260 31670 94248 +;;;### (autoloads nil "edt" "emulation/edt.el" (21417 20521 870414 ;;;;;; 0)) ;;; Generated autoloads from emulation/edt.el @@ -8681,7 +8657,7 @@ ;;;*** -;;;### (autoloads nil "erc" "erc/erc.el" (21311 55332 986627 0)) +;;;### (autoloads nil "erc" "erc/erc.el" (21412 2598 318409 0)) ;;; Generated autoloads from erc/erc.el (push (purecopy '(erc 5 3)) package--builtin-versions) @@ -9188,7 +9164,7 @@ ;;;*** -;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (21261 52533 628241 +;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (21419 62246 751914 ;;;;;; 0)) ;;; Generated autoloads from emacs-lisp/ert.el @@ -9278,8 +9254,8 @@ ;;;*** -;;;### (autoloads nil "eshell" "eshell/eshell.el" (21187 63826 213216 -;;;;;; 0)) +;;;### (autoloads nil "eshell" "eshell/eshell.el" (21403 21396 190131 +;;;;;; 14000)) ;;; Generated autoloads from eshell/eshell.el (push (purecopy '(eshell 2 4 2)) package--builtin-versions) @@ -9937,7 +9913,7 @@ ;;;*** -;;;### (autoloads nil "eww" "net/eww.el" (21271 29460 497806 0)) +;;;### (autoloads nil "eww" "net/eww.el" (21423 59302 489365 0)) ;;; Generated autoloads from net/eww.el (autoload 'eww "eww" "\ @@ -10334,7 +10310,7 @@ ;;;*** -;;;### (autoloads nil "ffap" "ffap.el" (21293 25385 120083 0)) +;;;### (autoloads nil "ffap" "ffap.el" (21401 32300 989919 0)) ;;; Generated autoloads from ffap.el (autoload 'ffap-next "ffap" "\ @@ -10699,8 +10675,8 @@ ;;;*** -;;;### (autoloads nil "find-func" "emacs-lisp/find-func.el" (21230 -;;;;;; 10550 983182 0)) +;;;### (autoloads nil "find-func" "emacs-lisp/find-func.el" (21419 +;;;;;; 62246 751914 0)) ;;; Generated autoloads from emacs-lisp/find-func.el (autoload 'find-library "find-func" "\ @@ -11863,8 +11839,8 @@ ;;;*** -;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (21365 58789 -;;;;;; 638999 0)) +;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (21393 38187 +;;;;;; 675040 0)) ;;; Generated autoloads from gnus/gnus-art.el (autoload 'gnus-article-prepare-display "gnus-art" "\ @@ -12473,8 +12449,8 @@ ;;;*** -;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (21296 1575 438327 -;;;;;; 0)) +;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (21414 44327 +;;;;;; 790846 0)) ;;; Generated autoloads from gnus/gnus-sum.el (autoload 'gnus-summary-bookmark-jump "gnus-sum" "\ @@ -12882,7 +12858,7 @@ ;;;*** -;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (21255 45558 780901 +;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (21388 20265 495157 ;;;;;; 0)) ;;; Generated autoloads from emacs-lisp/gv.el @@ -13202,7 +13178,7 @@ ;;;*** -;;;### (autoloads nil "help-fns" "help-fns.el" (21355 22953 61816 +;;;### (autoloads nil "help-fns" "help-fns.el" (21419 62246 751914 ;;;;;; 0)) ;;; Generated autoloads from help-fns.el @@ -13674,8 +13650,8 @@ ;;;*** -;;;### (autoloads nil "hideif" "progmodes/hideif.el" (21292 4516 -;;;;;; 491683 0)) +;;;### (autoloads nil "hideif" "progmodes/hideif.el" (21422 8265 +;;;;;; 959286 0)) ;;; Generated autoloads from progmodes/hideif.el (autoload 'hide-ifdef-mode "hideif" "\ @@ -13913,7 +13889,7 @@ ;;;*** -;;;### (autoloads nil "hippie-exp" "hippie-exp.el" (21379 5287 607434 +;;;### (autoloads nil "hippie-exp" "hippie-exp.el" (21402 53158 293492 ;;;;;; 0)) ;;; Generated autoloads from hippie-exp.el (push (purecopy '(hippie-exp 1 6)) package--builtin-versions) @@ -14145,8 +14121,8 @@ ;;;*** -;;;### (autoloads nil "html2text" "gnus/html2text.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "html2text" "gnus/html2text.el" (21417 20521 +;;;;;; 870414 0)) ;;; Generated autoloads from gnus/html2text.el (autoload 'html2text "html2text" "\ @@ -14450,8 +14426,8 @@ ;;;*** -;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (21195 -;;;;;; 23530 495420 0)) +;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (21419 +;;;;;; 62246 751914 0)) ;;; Generated autoloads from progmodes/idlw-shell.el (autoload 'idlwave-shell "idlw-shell" "\ @@ -15525,7 +15501,7 @@ ;;;*** -;;;### (autoloads nil "info" "info.el" (21359 20005 772941 0)) +;;;### (autoloads nil "info" "info.el" (21419 7843 195974 0)) ;;; Generated autoloads from info.el (defcustom Info-default-directory-list (let* ((config-dir (file-name-as-directory (or (and (featurep 'ns) (let ((dir (expand-file-name "../info" data-directory))) (if (file-directory-p dir) dir))) configure-info-directory))) (prefixes (prune-directory-list '("/usr/local/" "/usr/" "/opt/" "/"))) (suffixes '("share/" "" "gnu/" "gnu/lib/" "gnu/lib/emacs/" "emacs/" "lib/" "lib/emacs/")) (standard-info-dirs (apply #'nconc (mapcar (lambda (pfx) (let ((dirs (mapcar (lambda (sfx) (concat pfx sfx "info/")) suffixes))) (prune-directory-list dirs))) prefixes))) (dirs (if (member config-dir standard-info-dirs) (nconc standard-info-dirs (list config-dir)) (cons config-dir standard-info-dirs)))) (if (not (eq system-type 'windows-nt)) dirs (let* ((instdir (file-name-directory invocation-directory)) (dir1 (expand-file-name "../info/" instdir)) (dir2 (expand-file-name "../../../info/" instdir))) (cond ((file-exists-p dir1) (append dirs (list dir1))) ((file-exists-p dir2) (append dirs (list dir2))) (t dirs))))) "\ @@ -16426,7 +16402,7 @@ ;;;*** -;;;### (autoloads nil "js" "progmodes/js.el" (21350 58112 380040 +;;;### (autoloads nil "js" "progmodes/js.el" (21388 20265 495157 ;;;;;; 0)) ;;; Generated autoloads from progmodes/js.el (push (purecopy '(js 9)) package--builtin-versions) @@ -16673,9 +16649,10 @@ ;;;*** -;;;### (autoloads nil "landmark" "play/landmark.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "landmark" "play/landmark.el" (21419 7843 195974 +;;;;;; 0)) ;;; Generated autoloads from play/landmark.el +(push (purecopy '(landmark 1 0)) package--builtin-versions) (defalias 'landmark-repeat 'landmark-test-run) @@ -18773,8 +18750,8 @@ ;;;*** -;;;### (autoloads nil "mule-util" "international/mule-util.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "mule-util" "international/mule-util.el" (21412 +;;;;;; 2598 318409 0)) ;;; Generated autoloads from international/mule-util.el (defsubst string-to-list (string) "\ @@ -18810,7 +18787,7 @@ end of STR (including any padding) if it extends beyond END-COLUMN, unless the display width of STR is equal to or less than the display width of ELLIPSIS. If it is non-nil and not a string, then ELLIPSIS -defaults to \"...\". +defaults to `truncate-string-ellipsis'. \(fn STR END-COLUMN &optional START-COLUMN PADDING ELLIPSIS)" nil nil) @@ -20054,8 +20031,8 @@ ;;;*** -;;;### (autoloads nil "org-compat" "org/org-compat.el" (21383 2343 -;;;;;; 498187 0)) +;;;### (autoloads nil "org-compat" "org/org-compat.el" (21417 20521 +;;;;;; 870414 0)) ;;; Generated autoloads from org/org-compat.el (autoload 'org-check-version "org-compat" "\ @@ -20156,8 +20133,8 @@ ;;;*** -;;;### (autoloads nil "package" "emacs-lisp/package.el" (21381 47015 -;;;;;; 637535 0)) +;;;### (autoloads nil "package" "emacs-lisp/package.el" (21419 62246 +;;;;;; 751914 0)) ;;; Generated autoloads from emacs-lisp/package.el (push (purecopy '(package 1 0 1)) package--builtin-versions) @@ -20759,8 +20736,8 @@ ;;;*** -;;;### (autoloads nil "picture" "textmodes/picture.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "picture" "textmodes/picture.el" (21419 62246 +;;;;;; 751914 0)) ;;; Generated autoloads from textmodes/picture.el (autoload 'picture-mode "picture" "\ @@ -21879,8 +21856,8 @@ ;;;*** -;;;### (autoloads nil "python" "progmodes/python.el" (21364 37926 -;;;;;; 837230 0)) +;;;### (autoloads nil "python" "progmodes/python.el" (21414 44327 +;;;;;; 790846 0)) ;;; Generated autoloads from progmodes/python.el (push (purecopy '(python 0 24 2)) package--builtin-versions) @@ -22264,7 +22241,7 @@ ;;;*** -;;;### (autoloads nil "rcirc" "net/rcirc.el" (21361 61732 646433 +;;;### (autoloads nil "rcirc" "net/rcirc.el" (21425 14635 268306 ;;;;;; 0)) ;;; Generated autoloads from net/rcirc.el @@ -22349,7 +22326,7 @@ ;;;*** -;;;### (autoloads nil "rect" "rect.el" (21203 52022 581300 0)) +;;;### (autoloads nil "rect" "rect.el" (21409 26408 607647 0)) ;;; Generated autoloads from rect.el (autoload 'delete-rectangle "rect" "\ @@ -22510,8 +22487,8 @@ ;;;*** -;;;### (autoloads nil "reftex" "textmodes/reftex.el" (21379 5529 -;;;;;; 990138 255000)) +;;;### (autoloads nil "reftex" "textmodes/reftex.el" (21418 41409 +;;;;;; 280143 158000)) ;;; Generated autoloads from textmodes/reftex.el (autoload 'reftex-citation "reftex-cite" nil t) (autoload 'reftex-all-document-files "reftex-parse") @@ -23261,7 +23238,7 @@ ;;;*** -;;;### (autoloads nil "rst" "textmodes/rst.el" (21346 7974 405729 +;;;### (autoloads nil "rst" "textmodes/rst.el" (21415 65191 692645 ;;;;;; 0)) ;;; Generated autoloads from textmodes/rst.el (add-to-list 'auto-mode-alist (purecopy '("\\.re?st\\'" . rst-mode))) @@ -23292,8 +23269,8 @@ ;;;*** -;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (21355 -;;;;;; 22953 61816 0)) +;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (21414 +;;;;;; 44327 790846 0)) ;;; Generated autoloads from progmodes/ruby-mode.el (push (purecopy '(ruby-mode 1 2)) package--builtin-versions) @@ -23310,7 +23287,7 @@ ;;;*** -;;;### (autoloads nil "ruler-mode" "ruler-mode.el" (21187 63826 213216 +;;;### (autoloads nil "ruler-mode" "ruler-mode.el" (21419 62246 751914 ;;;;;; 0)) ;;; Generated autoloads from ruler-mode.el (push (purecopy '(ruler-mode 1 6)) package--builtin-versions) @@ -23735,7 +23712,7 @@ ;;;*** -;;;### (autoloads nil "scroll-all" "scroll-all.el" (21187 63826 213216 +;;;### (autoloads nil "scroll-all" "scroll-all.el" (21388 20265 495157 ;;;;;; 0)) ;;; Generated autoloads from scroll-all.el @@ -24215,7 +24192,7 @@ ;;;*** -;;;### (autoloads nil "ses" "ses.el" (21220 61111 156047 0)) +;;;### (autoloads nil "ses" "ses.el" (21405 29360 677747 0)) ;;; Generated autoloads from ses.el (autoload 'ses-mode "ses" "\ @@ -24325,8 +24302,8 @@ ;;;*** -;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (21383 -;;;;;; 2343 498187 0)) +;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (21419 +;;;;;; 62246 751914 0)) ;;; Generated autoloads from progmodes/sh-script.el (push (purecopy '(sh-script 2 0 6)) package--builtin-versions) (put 'sh-shell 'safe-local-variable 'symbolp) @@ -24635,7 +24612,7 @@ ;;;*** -;;;### (autoloads nil "skeleton" "skeleton.el" (21293 25385 120083 +;;;### (autoloads nil "skeleton" "skeleton.el" (21420 38312 308000 ;;;;;; 0)) ;;; Generated autoloads from skeleton.el @@ -24687,7 +24664,9 @@ If ELEMENT is a string or a character it gets inserted (see also `skeleton-transformation-function'). Other possibilities are: - \\n go to next line and indent according to mode + \\n go to next line and indent according to mode, unless + this is the first/last element of a skeleton and point + is at bol/eol _ interesting point, interregion here - interesting point, no interregion interaction, overrides interesting point set by _ @@ -24702,6 +24681,11 @@ After termination, point will be positioned at the last occurrence of - or at the first occurrence of _ or at the end of the inserted text. +Note that \\n as the last element of the skeleton only inserts a +newline if not at eol. If you want to unconditionally insert a newline +at the end of the skeleton, use \"\\n\" instead. Likewise with \\n +as the first element when at bol. + Further elements can be defined via `skeleton-further-elements'. ELEMENT may itself be a SKELETON with an INTERACTOR. The user is prompted repeatedly for different inputs. The SKELETON is processed as often as @@ -24747,8 +24731,8 @@ ;;;*** -;;;### (autoloads nil "smerge-mode" "vc/smerge-mode.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "smerge-mode" "vc/smerge-mode.el" (21409 26408 +;;;;;; 607647 0)) ;;; Generated autoloads from vc/smerge-mode.el (autoload 'smerge-ediff "smerge-mode" "\ @@ -26759,7 +26743,7 @@ ;;;*** -;;;### (autoloads nil "term" "term.el" (21339 34726 39547 0)) +;;;### (autoloads nil "term" "term.el" (21414 44327 790846 0)) ;;; Generated autoloads from term.el (autoload 'make-term "term" "\ @@ -27180,8 +27164,8 @@ ;;;*** -;;;### (autoloads nil "texinfo" "textmodes/texinfo.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "texinfo" "textmodes/texinfo.el" (21414 44327 +;;;;;; 790846 0)) ;;; Generated autoloads from textmodes/texinfo.el (defvar texinfo-open-quote (purecopy "``") "\ @@ -27466,10 +27450,10 @@ ;;;*** -;;;### (autoloads nil "tildify" "textmodes/tildify.el" (21381 47015 -;;;;;; 637535 0)) +;;;### (autoloads nil "tildify" "textmodes/tildify.el" (21393 38187 +;;;;;; 675040 0)) ;;; Generated autoloads from textmodes/tildify.el -(push (purecopy '(tildify 4 5 1)) package--builtin-versions) +(push (purecopy '(tildify 4 5 3)) package--builtin-versions) (autoload 'tildify-region "tildify" "\ Add hard spaces in the region between BEG and END. @@ -27890,8 +27874,8 @@ ;;;*** -;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (21379 -;;;;;; 5287 607434 0)) +;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (21423 +;;;;;; 59302 489365 0)) ;;; Generated autoloads from calendar/todo-mode.el (autoload 'todo-show "todo-mode" "\ @@ -28029,72 +28013,6 @@ ;;;*** -;;;### (autoloads nil "tpu-edt" "emulation/tpu-edt.el" (21187 63826 -;;;;;; 213216 0)) -;;; Generated autoloads from emulation/tpu-edt.el -(push (purecopy '(tpu-edt 4 5)) package--builtin-versions) - -(defvar tpu-edt-mode nil "\ -Non-nil if Tpu-Edt mode is enabled. -See the command `tpu-edt-mode' for a description of this minor mode. -Setting this variable directly does not take effect; -either customize it (see the info node `Easy Customization') -or call the function `tpu-edt-mode'.") - -(custom-autoload 'tpu-edt-mode "tpu-edt" nil) - -(autoload 'tpu-edt-mode "tpu-edt" "\ -Toggle TPU/edt emulation on or off. -With a prefix argument ARG, enable the mode if ARG is positive, -and disable it otherwise. If called from Lisp, enable the mode -if ARG is omitted or nil. - -\(fn &optional ARG)" t nil) - -(defalias 'tpu-edt 'tpu-edt-on) - -(autoload 'tpu-edt-on "tpu-edt" "\ -Turn on TPU/edt emulation. - -\(fn)" t nil) - -;;;*** - -;;;### (autoloads nil "tpu-mapper" "emulation/tpu-mapper.el" (21187 -;;;;;; 63826 213216 0)) -;;; Generated autoloads from emulation/tpu-mapper.el - -(autoload 'tpu-mapper "tpu-mapper" "\ -Create an Emacs lisp file defining the TPU-edt keypad for X-windows. - -This command displays an instruction screen showing the TPU-edt keypad -and asks you to press the TPU-edt editing keys. It uses the keys you -press to create an Emacs Lisp file that will define a TPU-edt keypad -for your X server. You can even re-arrange the standard EDT keypad to -suit your tastes (or to cope with those silly Sun and PC keypads). - -Finally, you will be prompted for the name of the file to store the key -definitions. If you chose the default, TPU-edt will find it and load it -automatically. If you specify a different file name, you will need to -set the variable ``tpu-xkeys-file'' before starting TPU-edt. Here's how -you might go about doing that in your init file. - - (setq tpu-xkeys-file (expand-file-name \"~/.my-emacs-x-keys\")) - (tpu-edt) - -Known Problems: - -Sometimes, tpu-mapper will ignore a key you press, and just continue to -prompt for the same key. This can happen when your window manager sucks -up the key and doesn't pass it on to Emacs, or it could be an Emacs bug. -Either way, there's nothing that tpu-mapper can do about it. You must -press RETURN, to skip the current key and continue. Later, you and/or -your local X guru can try to figure out why the key is being ignored. - -\(fn)" t nil) - -;;;*** - ;;;### (autoloads nil "tq" "emacs-lisp/tq.el" (21240 46395 727291 ;;;;;; 0)) ;;; Generated autoloads from emacs-lisp/tq.el @@ -28155,7 +28073,7 @@ ;;;*** -;;;### (autoloads nil "tramp" "net/tramp.el" (21330 19750 309501 +;;;### (autoloads nil "tramp" "net/tramp.el" (21406 50214 284651 ;;;;;; 0)) ;;; Generated autoloads from net/tramp.el @@ -28271,8 +28189,8 @@ ;;;*** -;;;### (autoloads nil "tramp-ftp" "net/tramp-ftp.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "tramp-ftp" "net/tramp-ftp.el" (21406 50214 +;;;;;; 284651 0)) ;;; Generated autoloads from net/tramp-ftp.el (autoload 'tramp-ftp-enable-ange-ftp "tramp-ftp" "\ @@ -28820,8 +28738,8 @@ ;;;*** -;;;### (autoloads nil "url-handlers" "url/url-handlers.el" (21360 -;;;;;; 40869 887231 0)) +;;;### (autoloads nil "url-handlers" "url/url-handlers.el" (21419 +;;;;;; 62246 751914 0)) ;;; Generated autoloads from url/url-handlers.el (defvar url-handler-mode nil "\ @@ -28875,8 +28793,8 @@ ;;;*** -;;;### (autoloads nil "url-http" "url/url-http.el" (21302 6606 390237 -;;;;;; 377000)) +;;;### (autoloads nil "url-http" "url/url-http.el" (21419 62246 751914 +;;;;;; 0)) ;;; Generated autoloads from url/url-http.el (autoload 'url-default-expander "url-expand") @@ -29800,7 +29718,7 @@ ;;;*** -;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (21360 40869 887231 0)) +;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (21396 14374 24888 0)) ;;; Generated autoloads from vc/vc-hg.el (defun vc-hg-registered (file) "Return non-nil if FILE is registered with hg." @@ -29935,7 +29853,7 @@ ;;;*** ;;;### (autoloads nil "verilog-mode" "progmodes/verilog-mode.el" -;;;;;; (21383 2343 498187 0)) +;;;;;; (21388 20265 495157 0)) ;;; Generated autoloads from progmodes/verilog-mode.el (autoload 'verilog-mode "verilog-mode" "\ @@ -30629,59 +30547,6 @@ ;;;*** -;;;### (autoloads nil "vi" "emulation/vi.el" (20929 34089 117790 -;;;;;; 0)) -;;; Generated autoloads from emulation/vi.el - -(autoload 'vi-mode "vi" "\ -Major mode that acts like the `vi' editor. -The purpose of this mode is to provide you the combined power of vi (namely, -the \"cross product\" effect of commands and repeat last changes) and Emacs. - -This command redefines nearly all keys to look like vi commands. -It records the previous major mode, and any vi command for input -\(`i', `a', `s', etc.) switches back to that mode. -Thus, ordinary Emacs (in whatever major mode you had been using) -is \"input\" mode as far as vi is concerned. - -To get back into vi from \"input\" mode, you must issue this command again. -Therefore, it is recommended that you assign it to a key. - -Major differences between this mode and real vi : - -* Limitations and unsupported features - - Search patterns with line offset (e.g. /pat/+3 or /pat/z.) are - not supported. - - Ex commands are not implemented; try ':' to get some hints. - - No line undo (i.e. the 'U' command), but multi-undo is a standard feature. - -* Modifications - - The stopping positions for some point motion commands (word boundary, - pattern search) are slightly different from standard 'vi'. - Also, no automatic wrap around at end of buffer for pattern searching. - - Since changes are done in two steps (deletion then insertion), you need - to undo twice to completely undo a change command. But this is not needed - for undoing a repeated change command. - - No need to set/unset 'magic', to search for a string with regular expr - in it just put a prefix arg for the search commands. Replace cmds too. - - ^R is bound to incremental backward search, so use ^L to redraw screen. - -* Extensions - - Some standard (or modified) Emacs commands were integrated, such as - incremental search, query replace, transpose objects, and keyboard macros. - - In command state, ^X links to the 'ctl-x-map', and ESC can be linked to - esc-map or set undefined. These can give you the full power of Emacs. - - See vi-com-map for those keys that are extensions to standard vi, e.g. - `vi-name-last-change-or-macro', `vi-verify-spelling', `vi-locate-def', - `vi-mark-region', and 'vi-quote-words'. Some of them are quite handy. - - Use \\[vi-switch-mode] to switch among different modes quickly. - -Syntax table and abbrevs while in vi mode remain as they were in Emacs. - -\(fn)" t nil) - -;;;*** - ;;;### (autoloads nil "viet-util" "language/viet-util.el" (21187 ;;;;;; 63826 213216 0)) ;;; Generated autoloads from language/viet-util.el @@ -30983,22 +30848,6 @@ ;;;*** -;;;### (autoloads nil "vip" "emulation/vip.el" (21187 63826 213216 -;;;;;; 0)) -;;; Generated autoloads from emulation/vip.el - -(autoload 'vip-setup "vip" "\ -Set up bindings for C-x 7 and C-z that are useful for VIP users. - -\(fn)" nil nil) - -(autoload 'vip-mode "vip" "\ -Turn on VIP emulation of VI. - -\(fn)" t nil) - -;;;*** - ;;;### (autoloads nil "viper" "emulation/viper.el" (21222 16439 978802 ;;;;;; 0)) ;;; Generated autoloads from emulation/viper.el @@ -31568,7 +31417,7 @@ ;;;*** -;;;### (autoloads nil "wid-edit" "wid-edit.el" (21240 46395 727291 +;;;### (autoloads nil "wid-edit" "wid-edit.el" (21414 44327 790846 ;;;;;; 0)) ;;; Generated autoloads from wid-edit.el @@ -31687,7 +31536,7 @@ ;;;*** -;;;### (autoloads nil "woman" "woman.el" (21240 46395 727291 0)) +;;;### (autoloads nil "woman" "woman.el" (21393 38187 675040 0)) ;;; Generated autoloads from woman.el (push (purecopy '(woman 0 551)) package--builtin-versions) @@ -31736,28 +31585,6 @@ ;;;*** -;;;### (autoloads nil "ws-mode" "emulation/ws-mode.el" (21187 63826 -;;;;;; 213216 0)) -;;; Generated autoloads from emulation/ws-mode.el -(push (purecopy '(ws-mode 0 7)) package--builtin-versions) - -(autoload 'wordstar-mode "ws-mode" "\ -Major mode with WordStar-like key bindings. - -BUGS: - - Help menus with WordStar commands (C-j just calls help-for-help) - are not implemented - - Options for search and replace - - Show markers (C-k h) is somewhat strange - - Search and replace (C-q a) is only available in forward direction - -No key bindings beginning with ESC are installed, they will work -Emacs-like. - -\(fn)" t nil) - -;;;*** - ;;;### (autoloads nil "xml" "xml.el" (21187 63826 213216 0)) ;;; Generated autoloads from xml.el @@ -31833,7 +31660,7 @@ ;;;*** -;;;### (autoloads nil "xt-mouse" "xt-mouse.el" (21359 20005 772941 +;;;### (autoloads nil "xt-mouse" "xt-mouse.el" (21414 44327 790846 ;;;;;; 0)) ;;; Generated autoloads from xt-mouse.el @@ -31894,33 +31721,34 @@ ;;;;;; "calc/calc-fin.el" "calc/calc-forms.el" "calc/calc-frac.el" ;;;;;; "calc/calc-funcs.el" "calc/calc-graph.el" "calc/calc-help.el" ;;;;;; "calc/calc-incom.el" "calc/calc-keypd.el" "calc/calc-lang.el" -;;;;;; "calc/calc-macs.el" "calc/calc-map.el" "calc/calc-math.el" -;;;;;; "calc/calc-menu.el" "calc/calc-misc.el" "calc/calc-mode.el" -;;;;;; "calc/calc-mtx.el" "calc/calc-nlfit.el" "calc/calc-poly.el" -;;;;;; "calc/calc-prog.el" "calc/calc-rewr.el" "calc/calc-rules.el" -;;;;;; "calc/calc-sel.el" "calc/calc-stat.el" "calc/calc-store.el" -;;;;;; "calc/calc-stuff.el" "calc/calc-trail.el" "calc/calc-units.el" -;;;;;; "calc/calc-vec.el" "calc/calc-yank.el" "calc/calcalg2.el" -;;;;;; "calc/calcalg3.el" "calc/calccomp.el" "calc/calcsel2.el" -;;;;;; "calendar/cal-bahai.el" "calendar/cal-coptic.el" "calendar/cal-french.el" -;;;;;; "calendar/cal-html.el" "calendar/cal-islam.el" "calendar/cal-iso.el" -;;;;;; "calendar/cal-julian.el" "calendar/cal-loaddefs.el" "calendar/cal-mayan.el" -;;;;;; "calendar/cal-menu.el" "calendar/cal-move.el" "calendar/cal-persia.el" -;;;;;; "calendar/cal-tex.el" "calendar/cal-x.el" "calendar/diary-loaddefs.el" -;;;;;; "calendar/hol-loaddefs.el" "cdl.el" "cedet/cedet-cscope.el" -;;;;;; "cedet/cedet-files.el" "cedet/cedet-global.el" "cedet/cedet-idutils.el" -;;;;;; "cedet/ede/auto.el" "cedet/ede/autoconf-edit.el" "cedet/ede/base.el" -;;;;;; "cedet/ede/cpp-root.el" "cedet/ede/custom.el" "cedet/ede/dired.el" -;;;;;; "cedet/ede/emacs.el" "cedet/ede/files.el" "cedet/ede/generic.el" -;;;;;; "cedet/ede/linux.el" "cedet/ede/locate.el" "cedet/ede/make.el" -;;;;;; "cedet/ede/makefile-edit.el" "cedet/ede/pconf.el" "cedet/ede/pmake.el" -;;;;;; "cedet/ede/proj-archive.el" "cedet/ede/proj-aux.el" "cedet/ede/proj-comp.el" -;;;;;; "cedet/ede/proj-elisp.el" "cedet/ede/proj-info.el" "cedet/ede/proj-misc.el" -;;;;;; "cedet/ede/proj-obj.el" "cedet/ede/proj-prog.el" "cedet/ede/proj-scheme.el" -;;;;;; "cedet/ede/proj-shared.el" "cedet/ede/proj.el" "cedet/ede/project-am.el" -;;;;;; "cedet/ede/shell.el" "cedet/ede/simple.el" "cedet/ede/source.el" -;;;;;; "cedet/ede/speedbar.el" "cedet/ede/srecode.el" "cedet/ede/system.el" -;;;;;; "cedet/ede/util.el" "cedet/semantic/analyze.el" "cedet/semantic/analyze/complete.el" +;;;;;; "calc/calc-loaddefs.el" "calc/calc-macs.el" "calc/calc-map.el" +;;;;;; "calc/calc-math.el" "calc/calc-menu.el" "calc/calc-misc.el" +;;;;;; "calc/calc-mode.el" "calc/calc-mtx.el" "calc/calc-nlfit.el" +;;;;;; "calc/calc-poly.el" "calc/calc-prog.el" "calc/calc-rewr.el" +;;;;;; "calc/calc-rules.el" "calc/calc-sel.el" "calc/calc-stat.el" +;;;;;; "calc/calc-store.el" "calc/calc-stuff.el" "calc/calc-trail.el" +;;;;;; "calc/calc-units.el" "calc/calc-vec.el" "calc/calc-yank.el" +;;;;;; "calc/calcalg2.el" "calc/calcalg3.el" "calc/calccomp.el" +;;;;;; "calc/calcsel2.el" "calendar/cal-bahai.el" "calendar/cal-coptic.el" +;;;;;; "calendar/cal-french.el" "calendar/cal-html.el" "calendar/cal-islam.el" +;;;;;; "calendar/cal-iso.el" "calendar/cal-julian.el" "calendar/cal-loaddefs.el" +;;;;;; "calendar/cal-mayan.el" "calendar/cal-menu.el" "calendar/cal-move.el" +;;;;;; "calendar/cal-persia.el" "calendar/cal-tex.el" "calendar/cal-x.el" +;;;;;; "calendar/diary-loaddefs.el" "calendar/hol-loaddefs.el" "cdl.el" +;;;;;; "cedet/cedet-cscope.el" "cedet/cedet-files.el" "cedet/cedet-global.el" +;;;;;; "cedet/cedet-idutils.el" "cedet/ede/auto.el" "cedet/ede/autoconf-edit.el" +;;;;;; "cedet/ede/base.el" "cedet/ede/cpp-root.el" "cedet/ede/custom.el" +;;;;;; "cedet/ede/dired.el" "cedet/ede/emacs.el" "cedet/ede/files.el" +;;;;;; "cedet/ede/generic.el" "cedet/ede/linux.el" "cedet/ede/loaddefs.el" +;;;;;; "cedet/ede/locate.el" "cedet/ede/make.el" "cedet/ede/makefile-edit.el" +;;;;;; "cedet/ede/pconf.el" "cedet/ede/pmake.el" "cedet/ede/proj-archive.el" +;;;;;; "cedet/ede/proj-aux.el" "cedet/ede/proj-comp.el" "cedet/ede/proj-elisp.el" +;;;;;; "cedet/ede/proj-info.el" "cedet/ede/proj-misc.el" "cedet/ede/proj-obj.el" +;;;;;; "cedet/ede/proj-prog.el" "cedet/ede/proj-scheme.el" "cedet/ede/proj-shared.el" +;;;;;; "cedet/ede/proj.el" "cedet/ede/project-am.el" "cedet/ede/shell.el" +;;;;;; "cedet/ede/simple.el" "cedet/ede/source.el" "cedet/ede/speedbar.el" +;;;;;; "cedet/ede/srecode.el" "cedet/ede/system.el" "cedet/ede/util.el" +;;;;;; "cedet/semantic/analyze.el" "cedet/semantic/analyze/complete.el" ;;;;;; "cedet/semantic/analyze/debug.el" "cedet/semantic/analyze/fcn.el" ;;;;;; "cedet/semantic/analyze/refs.el" "cedet/semantic/bovine.el" ;;;;;; "cedet/semantic/bovine/c.el" "cedet/semantic/bovine/debug.el" @@ -31938,13 +31766,13 @@ ;;;;;; "cedet/semantic/fw.el" "cedet/semantic/grammar-wy.el" "cedet/semantic/grammar.el" ;;;;;; "cedet/semantic/html.el" "cedet/semantic/ia-sb.el" "cedet/semantic/ia.el" ;;;;;; "cedet/semantic/idle.el" "cedet/semantic/imenu.el" "cedet/semantic/java.el" -;;;;;; "cedet/semantic/lex-spp.el" "cedet/semantic/lex.el" "cedet/semantic/mru-bookmark.el" -;;;;;; "cedet/semantic/sb.el" "cedet/semantic/scope.el" "cedet/semantic/senator.el" -;;;;;; "cedet/semantic/sort.el" "cedet/semantic/symref.el" "cedet/semantic/symref/cscope.el" -;;;;;; "cedet/semantic/symref/filter.el" "cedet/semantic/symref/global.el" -;;;;;; "cedet/semantic/symref/grep.el" "cedet/semantic/symref/idutils.el" -;;;;;; "cedet/semantic/symref/list.el" "cedet/semantic/tag-file.el" -;;;;;; "cedet/semantic/tag-ls.el" "cedet/semantic/tag-write.el" +;;;;;; "cedet/semantic/lex-spp.el" "cedet/semantic/lex.el" "cedet/semantic/loaddefs.el" +;;;;;; "cedet/semantic/mru-bookmark.el" "cedet/semantic/sb.el" "cedet/semantic/scope.el" +;;;;;; "cedet/semantic/senator.el" "cedet/semantic/sort.el" "cedet/semantic/symref.el" +;;;;;; "cedet/semantic/symref/cscope.el" "cedet/semantic/symref/filter.el" +;;;;;; "cedet/semantic/symref/global.el" "cedet/semantic/symref/grep.el" +;;;;;; "cedet/semantic/symref/idutils.el" "cedet/semantic/symref/list.el" +;;;;;; "cedet/semantic/tag-file.el" "cedet/semantic/tag-ls.el" "cedet/semantic/tag-write.el" ;;;;;; "cedet/semantic/tag.el" "cedet/semantic/texi.el" "cedet/semantic/util-modes.el" ;;;;;; "cedet/semantic/util.el" "cedet/semantic/wisent.el" "cedet/semantic/wisent/comp.el" ;;;;;; "cedet/semantic/wisent/java-tags.el" "cedet/semantic/wisent/javascript.el" @@ -31954,19 +31782,19 @@ ;;;;;; "cedet/srecode/el.el" "cedet/srecode/expandproto.el" "cedet/srecode/extract.el" ;;;;;; "cedet/srecode/fields.el" "cedet/srecode/filters.el" "cedet/srecode/find.el" ;;;;;; "cedet/srecode/getset.el" "cedet/srecode/insert.el" "cedet/srecode/java.el" -;;;;;; "cedet/srecode/map.el" "cedet/srecode/mode.el" "cedet/srecode/semantic.el" -;;;;;; "cedet/srecode/srt.el" "cedet/srecode/table.el" "cedet/srecode/template.el" -;;;;;; "cedet/srecode/texi.el" "cus-dep.el" "dframe.el" "dired-aux.el" -;;;;;; "dired-x.el" "dos-fns.el" "dos-vars.el" "dos-w32.el" "dynamic-setting.el" -;;;;;; "emacs-lisp/authors.el" "emacs-lisp/avl-tree.el" "emacs-lisp/bindat.el" -;;;;;; "emacs-lisp/byte-opt.el" "emacs-lisp/cl-extra.el" "emacs-lisp/cl-macs.el" -;;;;;; "emacs-lisp/cl-seq.el" "emacs-lisp/cl.el" "emacs-lisp/eieio-base.el" -;;;;;; "emacs-lisp/eieio-custom.el" "emacs-lisp/eieio-datadebug.el" -;;;;;; "emacs-lisp/eieio-opt.el" "emacs-lisp/eieio-speedbar.el" -;;;;;; "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el" "emacs-lisp/smie.el" -;;;;;; "emacs-lisp/subr-x.el" "emacs-lisp/tcover-ses.el" "emacs-lisp/tcover-unsafep.el" -;;;;;; "emulation/cua-gmrk.el" "emulation/edt-lk201.el" "emulation/edt-mapper.el" -;;;;;; "emulation/edt-pc.el" "emulation/edt-vt100.el" "emulation/tpu-extras.el" +;;;;;; "cedet/srecode/loaddefs.el" "cedet/srecode/map.el" "cedet/srecode/mode.el" +;;;;;; "cedet/srecode/semantic.el" "cedet/srecode/srt.el" "cedet/srecode/table.el" +;;;;;; "cedet/srecode/template.el" "cedet/srecode/texi.el" "cus-dep.el" +;;;;;; "dframe.el" "dired-aux.el" "dired-x.el" "dos-fns.el" "dos-vars.el" +;;;;;; "dos-w32.el" "dynamic-setting.el" "emacs-lisp/avl-tree.el" +;;;;;; "emacs-lisp/bindat.el" "emacs-lisp/byte-opt.el" "emacs-lisp/cl-extra.el" +;;;;;; "emacs-lisp/cl-loaddefs.el" "emacs-lisp/cl-macs.el" "emacs-lisp/cl-seq.el" +;;;;;; "emacs-lisp/cl.el" "emacs-lisp/eieio-base.el" "emacs-lisp/eieio-custom.el" +;;;;;; "emacs-lisp/eieio-datadebug.el" "emacs-lisp/eieio-opt.el" +;;;;;; "emacs-lisp/eieio-speedbar.el" "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el" +;;;;;; "emacs-lisp/smie.el" "emacs-lisp/subr-x.el" "emacs-lisp/tcover-ses.el" +;;;;;; "emacs-lisp/tcover-unsafep.el" "emulation/cua-gmrk.el" "emulation/edt-lk201.el" +;;;;;; "emulation/edt-mapper.el" "emulation/edt-pc.el" "emulation/edt-vt100.el" ;;;;;; "emulation/viper-cmd.el" "emulation/viper-ex.el" "emulation/viper-init.el" ;;;;;; "emulation/viper-keym.el" "emulation/viper-macs.el" "emulation/viper-mous.el" ;;;;;; "emulation/viper-util.el" "erc/erc-backend.el" "erc/erc-goodies.el" @@ -31977,32 +31805,32 @@ ;;;;;; "eshell/em-rebind.el" "eshell/em-script.el" "eshell/em-smart.el" ;;;;;; "eshell/em-term.el" "eshell/em-tramp.el" "eshell/em-unix.el" ;;;;;; "eshell/em-xtra.el" "eshell/esh-arg.el" "eshell/esh-cmd.el" -;;;;;; "eshell/esh-ext.el" "eshell/esh-io.el" "eshell/esh-module.el" -;;;;;; "eshell/esh-opt.el" "eshell/esh-proc.el" "eshell/esh-util.el" -;;;;;; "eshell/esh-var.el" "ezimage.el" "format-spec.el" "fringe.el" -;;;;;; "generic-x.el" "gnus/compface.el" "gnus/gnus-async.el" "gnus/gnus-bcklg.el" -;;;;;; "gnus/gnus-cite.el" "gnus/gnus-cloud.el" "gnus/gnus-cus.el" -;;;;;; "gnus/gnus-demon.el" "gnus/gnus-dup.el" "gnus/gnus-eform.el" -;;;;;; "gnus/gnus-ems.el" "gnus/gnus-icalendar.el" "gnus/gnus-int.el" -;;;;;; "gnus/gnus-logic.el" "gnus/gnus-mh.el" "gnus/gnus-salt.el" -;;;;;; "gnus/gnus-score.el" "gnus/gnus-srvr.el" "gnus/gnus-topic.el" -;;;;;; "gnus/gnus-undo.el" "gnus/gnus-util.el" "gnus/gnus-uu.el" -;;;;;; "gnus/gnus-vm.el" "gnus/gssapi.el" "gnus/ietf-drums.el" "gnus/legacy-gnus-agent.el" -;;;;;; "gnus/mail-parse.el" "gnus/mail-prsvr.el" "gnus/mail-source.el" -;;;;;; "gnus/mailcap.el" "gnus/messcompat.el" "gnus/mm-archive.el" -;;;;;; "gnus/mm-bodies.el" "gnus/mm-decode.el" "gnus/mm-util.el" -;;;;;; "gnus/mm-view.el" "gnus/mml-sec.el" "gnus/mml-smime.el" "gnus/nnagent.el" -;;;;;; "gnus/nnbabyl.el" "gnus/nndir.el" "gnus/nndraft.el" "gnus/nneething.el" -;;;;;; "gnus/nngateway.el" "gnus/nnheader.el" "gnus/nnimap.el" "gnus/nnir.el" -;;;;;; "gnus/nnmail.el" "gnus/nnmaildir.el" "gnus/nnmairix.el" "gnus/nnmbox.el" -;;;;;; "gnus/nnmh.el" "gnus/nnnil.el" "gnus/nnoo.el" "gnus/nnregistry.el" -;;;;;; "gnus/nnrss.el" "gnus/nnspool.el" "gnus/nntp.el" "gnus/nnvirtual.el" -;;;;;; "gnus/nnweb.el" "gnus/registry.el" "gnus/rfc1843.el" "gnus/rfc2045.el" -;;;;;; "gnus/rfc2047.el" "gnus/rfc2104.el" "gnus/rfc2231.el" "gnus/rtree.el" -;;;;;; "gnus/sieve-manage.el" "gnus/smime.el" "gnus/spam-stat.el" -;;;;;; "gnus/spam-wash.el" "hex-util.el" "hfy-cmap.el" "ibuf-ext.el" -;;;;;; "international/cp51932.el" "international/eucjp-ms.el" "international/fontset.el" -;;;;;; "international/iso-ascii.el" "international/ja-dic-cnv.el" +;;;;;; "eshell/esh-ext.el" "eshell/esh-groups.el" "eshell/esh-io.el" +;;;;;; "eshell/esh-module.el" "eshell/esh-opt.el" "eshell/esh-proc.el" +;;;;;; "eshell/esh-util.el" "eshell/esh-var.el" "ezimage.el" "format-spec.el" +;;;;;; "fringe.el" "generic-x.el" "gnus/compface.el" "gnus/gnus-async.el" +;;;;;; "gnus/gnus-bcklg.el" "gnus/gnus-cite.el" "gnus/gnus-cloud.el" +;;;;;; "gnus/gnus-cus.el" "gnus/gnus-demon.el" "gnus/gnus-dup.el" +;;;;;; "gnus/gnus-eform.el" "gnus/gnus-ems.el" "gnus/gnus-icalendar.el" +;;;;;; "gnus/gnus-int.el" "gnus/gnus-logic.el" "gnus/gnus-mh.el" +;;;;;; "gnus/gnus-salt.el" "gnus/gnus-score.el" "gnus/gnus-srvr.el" +;;;;;; "gnus/gnus-topic.el" "gnus/gnus-undo.el" "gnus/gnus-util.el" +;;;;;; "gnus/gnus-uu.el" "gnus/gnus-vm.el" "gnus/gssapi.el" "gnus/ietf-drums.el" +;;;;;; "gnus/legacy-gnus-agent.el" "gnus/mail-parse.el" "gnus/mail-prsvr.el" +;;;;;; "gnus/mail-source.el" "gnus/mailcap.el" "gnus/messcompat.el" +;;;;;; "gnus/mm-archive.el" "gnus/mm-bodies.el" "gnus/mm-decode.el" +;;;;;; "gnus/mm-util.el" "gnus/mm-view.el" "gnus/mml-sec.el" "gnus/mml-smime.el" +;;;;;; "gnus/nnagent.el" "gnus/nnbabyl.el" "gnus/nndir.el" "gnus/nndraft.el" +;;;;;; "gnus/nneething.el" "gnus/nngateway.el" "gnus/nnheader.el" +;;;;;; "gnus/nnimap.el" "gnus/nnir.el" "gnus/nnmail.el" "gnus/nnmaildir.el" +;;;;;; "gnus/nnmairix.el" "gnus/nnmbox.el" "gnus/nnmh.el" "gnus/nnnil.el" +;;;;;; "gnus/nnoo.el" "gnus/nnregistry.el" "gnus/nnrss.el" "gnus/nnspool.el" +;;;;;; "gnus/nntp.el" "gnus/nnvirtual.el" "gnus/nnweb.el" "gnus/registry.el" +;;;;;; "gnus/rfc1843.el" "gnus/rfc2045.el" "gnus/rfc2047.el" "gnus/rfc2104.el" +;;;;;; "gnus/rfc2231.el" "gnus/rtree.el" "gnus/sieve-manage.el" +;;;;;; "gnus/smime.el" "gnus/spam-stat.el" "gnus/spam-wash.el" "hex-util.el" +;;;;;; "hfy-cmap.el" "ibuf-ext.el" "international/cp51932.el" "international/eucjp-ms.el" +;;;;;; "international/fontset.el" "international/iso-ascii.el" "international/ja-dic-cnv.el" ;;;;;; "international/ja-dic-utl.el" "international/ogonek.el" "kermit.el" ;;;;;; "language/hanja-util.el" "language/thai-word.el" "ldefs-boot.el" ;;;;;; "leim/quail/arabic.el" "leim/quail/croatian.el" "leim/quail/cyril-jis.el" @@ -32044,13 +31872,13 @@ ;;;;;; "nxml/rng-pttrn.el" "nxml/rng-uri.el" "nxml/rng-util.el" ;;;;;; "nxml/xsd-regexp.el" "obsolete/abbrevlist.el" "obsolete/assoc.el" ;;;;;; "obsolete/awk-mode.el" "obsolete/bruce.el" "obsolete/cl-compat.el" -;;;;;; "obsolete/complete.el" "obsolete/cust-print.el" "obsolete/erc-hecomplete.el" -;;;;;; "obsolete/fast-lock.el" "obsolete/gulp.el" "obsolete/iso-acc.el" -;;;;;; "obsolete/iso-insert.el" "obsolete/iso-swed.el" "obsolete/keyswap.el" -;;;;;; "obsolete/lazy-lock.el" "obsolete/ledit.el" "obsolete/levents.el" -;;;;;; "obsolete/lmenu.el" "obsolete/longlines.el" "obsolete/lucid.el" -;;;;;; "obsolete/mailpost.el" "obsolete/meese.el" "obsolete/mouse-sel.el" -;;;;;; "obsolete/old-emacs-lock.el" "obsolete/old-whitespace.el" +;;;;;; "obsolete/complete.el" "obsolete/crisp.el" "obsolete/cust-print.el" +;;;;;; "obsolete/erc-hecomplete.el" "obsolete/fast-lock.el" "obsolete/gulp.el" +;;;;;; "obsolete/iso-acc.el" "obsolete/iso-insert.el" "obsolete/iso-swed.el" +;;;;;; "obsolete/keyswap.el" "obsolete/lazy-lock.el" "obsolete/ledit.el" +;;;;;; "obsolete/levents.el" "obsolete/lmenu.el" "obsolete/longlines.el" +;;;;;; "obsolete/lucid.el" "obsolete/mailpost.el" "obsolete/meese.el" +;;;;;; "obsolete/mouse-sel.el" "obsolete/old-emacs-lock.el" "obsolete/old-whitespace.el" ;;;;;; "obsolete/options.el" "obsolete/otodo-mode.el" "obsolete/patcomp.el" ;;;;;; "obsolete/pc-mode.el" "obsolete/pc-select.el" "obsolete/pgg-def.el" ;;;;;; "obsolete/pgg-gpg.el" "obsolete/pgg-parse.el" "obsolete/pgg-pgp.el" @@ -32058,7 +31886,9 @@ ;;;;;; "obsolete/resume.el" "obsolete/s-region.el" "obsolete/scribe.el" ;;;;;; "obsolete/spell.el" "obsolete/sregex.el" "obsolete/sup-mouse.el" ;;;;;; "obsolete/swedish.el" "obsolete/sym-comp.el" "obsolete/terminal.el" -;;;;;; "obsolete/vc-mcvs.el" "obsolete/xesam.el" "obsolete/yow.el" +;;;;;; "obsolete/tpu-edt.el" "obsolete/tpu-extras.el" "obsolete/tpu-mapper.el" +;;;;;; "obsolete/vc-mcvs.el" "obsolete/vi.el" "obsolete/vip.el" +;;;;;; "obsolete/ws-mode.el" "obsolete/xesam.el" "obsolete/yow.el" ;;;;;; "org/ob-C.el" "org/ob-R.el" "org/ob-asymptote.el" "org/ob-awk.el" ;;;;;; "org/ob-calc.el" "org/ob-clojure.el" "org/ob-comint.el" "org/ob-core.el" ;;;;;; "org/ob-css.el" "org/ob-ditaa.el" "org/ob-dot.el" "org/ob-emacs-lisp.el" @@ -32078,14 +31908,14 @@ ;;;;;; "org/org-eshell.el" "org/org-faces.el" "org/org-feed.el" ;;;;;; "org/org-footnote.el" "org/org-gnus.el" "org/org-habit.el" ;;;;;; "org/org-id.el" "org/org-indent.el" "org/org-info.el" "org/org-inlinetask.el" -;;;;;; "org/org-install.el" "org/org-irc.el" "org/org-list.el" "org/org-macro.el" -;;;;;; "org/org-mhe.el" "org/org-mobile.el" "org/org-mouse.el" "org/org-pcomplete.el" -;;;;;; "org/org-plot.el" "org/org-protocol.el" "org/org-rmail.el" -;;;;;; "org/org-src.el" "org/org-table.el" "org/org-timer.el" "org/org-w3m.el" -;;;;;; "org/ox-ascii.el" "org/ox-beamer.el" "org/ox-html.el" "org/ox-icalendar.el" -;;;;;; "org/ox-latex.el" "org/ox-man.el" "org/ox-md.el" "org/ox-odt.el" -;;;;;; "org/ox-org.el" "org/ox-publish.el" "org/ox-texinfo.el" "org/ox.el" -;;;;;; "play/gametree.el" "progmodes/ada-prj.el" "progmodes/cc-align.el" +;;;;;; "org/org-install.el" "org/org-irc.el" "org/org-list.el" "org/org-loaddefs.el" +;;;;;; "org/org-macro.el" "org/org-mhe.el" "org/org-mobile.el" "org/org-mouse.el" +;;;;;; "org/org-pcomplete.el" "org/org-plot.el" "org/org-protocol.el" +;;;;;; "org/org-rmail.el" "org/org-src.el" "org/org-table.el" "org/org-timer.el" +;;;;;; "org/org-w3m.el" "org/ox-ascii.el" "org/ox-beamer.el" "org/ox-html.el" +;;;;;; "org/ox-icalendar.el" "org/ox-latex.el" "org/ox-man.el" "org/ox-md.el" +;;;;;; "org/ox-odt.el" "org/ox-org.el" "org/ox-publish.el" "org/ox-texinfo.el" +;;;;;; "org/ox.el" "play/gametree.el" "progmodes/ada-prj.el" "progmodes/cc-align.el" ;;;;;; "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el" "progmodes/cc-cmds.el" ;;;;;; "progmodes/cc-defs.el" "progmodes/cc-fonts.el" "progmodes/cc-langs.el" ;;;;;; "progmodes/cc-menus.el" "progmodes/ebnf-abn.el" "progmodes/ebnf-bnf.el" @@ -32108,8 +31938,8 @@ ;;;;;; "vc/ediff-ptch.el" "vc/ediff-vers.el" "vc/ediff-wind.el" ;;;;;; "vc/pcvs-info.el" "vc/pcvs-parse.el" "vc/pcvs-util.el" "vc/vc-dav.el" ;;;;;; "vcursor.el" "vt-control.el" "vt100-led.el" "w32-common-fns.el" -;;;;;; "w32-fns.el" "w32-vars.el" "x-dnd.el") (21386 65266 511227 -;;;;;; 583000)) +;;;;;; "w32-fns.el" "w32-vars.el" "x-dnd.el") (21426 35556 729434 +;;;;;; 927000)) ;;;*** ------------------------------------------------------------ revno: 117455 committer: Fabi?n Ezequiel Gallina branch nick: trunk timestamp: Mon 2014-06-30 17:17:17 -0300 message: * lisp/emacs-lisp/subr-x.el (string-reverse): Define as obsolete alias for `reverse'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-06-30 18:26:34 +0000 +++ lisp/ChangeLog 2014-06-30 20:17:17 +0000 @@ -1,3 +1,8 @@ +2014-06-30 Fabián Ezequiel Gallina + + * emacs-lisp/subr-x.el (string-reverse): Define as obsolete alias + for `reverse'. + 2014-06-30 Glenn Morris * emacs-lisp/autoload.el (autoload-ensure-writable): New variable. === modified file 'lisp/emacs-lisp/subr-x.el' --- lisp/emacs-lisp/subr-x.el 2014-06-30 04:54:46 +0000 +++ lisp/emacs-lisp/subr-x.el 2014-06-30 20:17:17 +0000 @@ -159,9 +159,7 @@ "Join all STRINGS using SEPARATOR." (mapconcat 'identity strings separator)) -(defsubst string-reverse (str) - "Reverse the string STR." - (reverse str)) +(define-obsolete-function-alias 'string-reverse 'reverse "24.5") (defsubst string-trim-left (string) "Remove leading whitespace from STRING." ------------------------------------------------------------ revno: 117454 committer: Fabi?n Ezequiel Gallina branch nick: trunk timestamp: Mon 2014-06-30 16:58:56 -0300 message: Changelog, NEWS and Copyright fixes. diff: === modified file 'etc/NEWS' --- etc/NEWS 2014-06-30 04:11:43 +0000 +++ etc/NEWS 2014-06-30 19:58:56 +0000 @@ -179,12 +179,11 @@ optional repeat-count argument. --- -** New macros `if-let' and `when-let' allow defining bindings and to - execute code depending whether all values are a true. - ---- -** New macros `thread-first' and `thread-last' allow threading a form - as the first or last argument of subsequent forms. +** New utilities in subr-x.el: +*** New macros `if-let' and `when-let' allow defining bindings and to + execute code depending whether all values are true. +*** New macros `thread-first' and `thread-last' allow threading a form + as the first or last argument of subsequent forms. * Changes in Emacs 24.5 on Non-Free Operating Systems === modified file 'test/ChangeLog' --- test/ChangeLog 2014-06-30 04:11:43 +0000 +++ test/ChangeLog 2014-06-30 19:58:56 +0000 @@ -1,26 +1,6 @@ 2014-06-30 Fabián Ezequiel Gallina - * automated/subr-x-tests.el - (subr-x-test-if-let-single-binding-expansion) - (subr-x-test-if-let-single-symbol-expansion) - (subr-x-test-if-let-nil-related-expansion) - (subr-x-test-if-let-malformed-binding, subr-x-test-if-let-true) - (subr-x-test-if-let-false, subr-x-test-if-let-bound-references) - (subr-x-test-if-let-and-lazyness-is-preserved) - (subr-x-test-when-let-body-expansion) - (subr-x-test-when-let-single-binding-expansion) - (subr-x-test-when-let-single-symbol-expansion) - (subr-x-test-when-let-nil-related-expansion) - (subr-x-test-when-let-malformed-binding) - (subr-x-test-when-let-true, subr-x-test-when-let-false) - (subr-x-test-when-let-bound-references) - (subr-x-test-when-let-and-lazyness-is-preserved) - (subr-x-test-thread-first-no-forms) - (subr-x-test-thread-first-function-names-are-threaded) - (subr-x-test-thread-first-expansion) - (subr-x-test-thread-last-no-forms) - (subr-x-test-thread-last-function-names-are-threaded) - (subr-x-test-thread-last-expansion): New tests. + * automated/subr-x-tests.el: New file. 2014-06-29 Michael Albinus === modified file 'test/automated/subr-x-tests.el' --- test/automated/subr-x-tests.el 2014-06-30 04:11:43 +0000 +++ test/automated/subr-x-tests.el 2014-06-30 19:58:56 +0000 @@ -1,6 +1,6 @@ ;;; subr-x-tests.el --- Testing the extended lisp routines -;; Copyright (C) 2011-2014 Free Software Foundation, Inc. +;; Copyright (C) 2014 Free Software Foundation, Inc. ;; Author: Fabián E. Gallina ;; Keywords: ------------------------------------------------------------ revno: 117453 committer: Jan D. branch nick: trunk timestamp: Mon 2014-06-30 20:44:56 +0200 message: Fix use of deallocated memory. * nsterm.h (EmacsScroller): Remove dealloc. * nsterm.m (judge): EmacsScroller: Move dealloc code here. (dealloc): Remove for EmacsScroller. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-06-30 15:39:29 +0000 +++ src/ChangeLog 2014-06-30 18:44:56 +0000 @@ -1,3 +1,10 @@ +2014-06-30 Jan Djärv + + * nsterm.m (judge): EmacsScroller: Move dealloc code here. + (dealloc): Remove for EmacsScroller. + + * nsterm.h (EmacsScroller): Remove dealloc. + 2014-06-30 Eli Zaretskii * coding.c (MIN_CHARBUF_SIZE): Enlarge to 32. (Bug#17881) === modified file 'src/nsterm.h' --- src/nsterm.h 2014-06-11 17:57:51 +0000 +++ src/nsterm.h 2014-06-30 18:44:56 +0000 @@ -412,7 +412,6 @@ - initFrame: (NSRect )r window: (Lisp_Object)win; - (void)setFrame: (NSRect)r; -- (void)dealloc; - setPosition: (int) position portion: (int) portion whole: (int) whole; - (int) checkSamePosition: (int)position portion: (int)portion === modified file 'src/nsterm.m' --- src/nsterm.m 2014-06-30 12:38:09 +0000 +++ src/nsterm.m 2014-06-30 18:44:56 +0000 @@ -7144,15 +7144,6 @@ } -- (void)dealloc -{ - NSTRACE (EmacsScroller_dealloc); - if (!NILP (win)) - wset_vertical_scroll_bar (XWINDOW (win), Qnil); - [super dealloc]; -} - - - condemn { NSTRACE (condemn); @@ -7180,6 +7171,9 @@ view = (EmacsView *)FRAME_NS_VIEW (frame); if (view != nil) view->scrollbarsNeedingUpdate++; + if (!NILP (win)) + wset_vertical_scroll_bar (XWINDOW (win), Qnil); + win = Qnil; [self removeFromSuperview]; [self release]; unblock_input (); ------------------------------------------------------------ revno: 117452 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-06-30 14:26:34 -0400 message: Get rid of the AUTOGEN_VCS variable in lisp/Makefile * lisp/emacs-lisp/autoload.el (autoload-ensure-writable): New variable. (autoload-ensure-default-file): Maybe make existing output writable. * lisp/Makefile.in (AUTOGEN_VCS): Remove. (autoloads): Use autoload-ensure-writable rather than AUTOGEN_VCS. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-06-30 04:54:46 +0000 +++ lisp/ChangeLog 2014-06-30 18:26:34 +0000 @@ -1,3 +1,10 @@ +2014-06-30 Glenn Morris + + * emacs-lisp/autoload.el (autoload-ensure-writable): New variable. + (autoload-ensure-default-file): Maybe make existing output writable. + * Makefile.in (AUTOGEN_VCS): Remove. + (autoloads): Use autoload-ensure-writable rather than AUTOGEN_VCS. + 2014-06-30 Fabián Ezequiel Gallina * emacs-lisp/subr-x.el (string-reverse): Use `reverse'. === modified file 'lisp/Makefile.in' --- lisp/Makefile.in 2014-06-30 00:01:51 +0000 +++ lisp/Makefile.in 2014-06-30 18:26:34 +0000 @@ -70,17 +70,6 @@ cedet/srecode/loaddefs.el \ org/org-loaddefs.el -# Versioned files that are the value of someone's `generated-autoload-file'. -AUTOGEN_VCS = \ - ps-print.el \ - obsolete/tpu-edt.el \ - mail/rmail.el \ - dired.el \ - ibuffer.el \ - htmlfontify.el \ - emacs-lisp/eieio.el \ - textmodes/reftex.el - # Value of max-lisp-eval-depth when compiling initially. # During bootstrapping the byte-compiler is run interpreted when compiling # itself, and uses more stack than usual. @@ -182,7 +171,6 @@ --eval '(setq generated-finder-keywords-file (unmsys--file-name "$(srcdir)/finder-inf.el"))' \ -f finder-compile-keywords-make-dist $$wins -# The chmod +w is to handle env var CVSREAD=1. # Use expand-file-name rather than $abs_scrdir so that Emacs does not # get confused when it compares file-names for equality. # @@ -190,10 +178,10 @@ # If you want to allow autoloads in such files, remove that, # and make this depend on leim. autoloads: $(LOADDEFS) - cd $(lisp) && chmod +w $(AUTOGEN_VCS) $(setwins_almost); \ echo Directories: $$wins; \ $(emacs) -l autoload \ + --eval '(setq autoload-ensure-writable t)' \ --eval '(setq autoload-builtin-package-versions t)' \ --eval '(setq generated-autoload-file (expand-file-name (unmsys--file-name "$(srcdir)/loaddefs.el")))' \ -f batch-update-autoloads $$wins === modified file 'lisp/emacs-lisp/autoload.el' --- lisp/emacs-lisp/autoload.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/autoload.el 2014-06-30 18:26:34 +0000 @@ -351,9 +351,26 @@ ";;; " basename " ends here\n"))) +(defvar autoload-ensure-writable nil + "Non-nil means `autoload-ensure-default-file' makes existing file writable.") +;; Just in case someone tries to get you to overwrite a file that you +;; don't want to. +;;;###autoload +(put 'autoload-ensure-writable 'risky-local-variable t) + (defun autoload-ensure-default-file (file) - "Make sure that the autoload file FILE exists and if not create it." - (unless (file-exists-p file) + "Make sure that the autoload file FILE exists, creating it if needed. +If the file already exists and `autoload-ensure-writable' is non-nil, +make it writable." + (if (file-exists-p file) + ;; Probably pointless, but replaces the old AUTOGEN_VCS in lisp/Makefile, + ;; which was designed to handle CVSREAD=1 and equivalent. + (and autoload-ensure-writable + (let ((modes (file-modes file))) + (if (zerop (logand modes #o0200)) + ;; Ignore any errors here, and let subsequent attempts + ;; to write the file raise any real error. + (ignore-errors (set-file-modes file (logior modes #o0200)))))) (write-region (autoload-rubric file) nil file)) file) ------------------------------------------------------------ revno: 117451 fixes bug: http://debbugs.gnu.org/17881 committer: Eli Zaretskii branch nick: trunk timestamp: Mon 2014-06-30 18:39:29 +0300 message: Fix bug #17881 with infloop in decoding emacs-mule encoded text. src/coding.c (MIN_CHARBUF_SIZE): Enlarge to 32. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-06-30 12:38:09 +0000 +++ src/ChangeLog 2014-06-30 15:39:29 +0000 @@ -1,3 +1,7 @@ +2014-06-30 Eli Zaretskii + + * coding.c (MIN_CHARBUF_SIZE): Enlarge to 32. (Bug#17881) + 2014-06-30 Jan Djärv * nsmenu.m (update_frame_tool_bar): Set wait_for_tool_bar to NO === modified file 'src/coding.c' --- src/coding.c 2014-06-28 17:27:29 +0000 +++ src/coding.c 2014-06-30 15:39:29 +0000 @@ -7266,7 +7266,8 @@ } #define MAX_CHARBUF_SIZE 0x4000 -#define MIN_CHARBUF_SIZE 0x10 +/* emacs-mule decoding requires more than 16 bytes. */ +#define MIN_CHARBUF_SIZE 0x20 #define ALLOC_CONVERSION_WORK_AREA(coding, size) \ do { \ ------------------------------------------------------------ revno: 117450 committer: Jan D. branch nick: trunk timestamp: Mon 2014-06-30 14:38:09 +0200 message: Remove unnecessary redisplays in NS port. * nsmenu.m (update_frame_tool_bar): Set wait_for_tool_bar to NO when setNeedsDisplay is called so we don't trigger redisplay for every tool bar update. * nsterm.m (any_help_event_p): New variable. (mouseMoved:): Set any_help_event_p to YES if help event is generated. Remove else with empty help event that triggered redisplay for every mouse move. (windowDidResignKey:): If any_help_event_p, generate empty help event. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-06-29 16:12:08 +0000 +++ src/ChangeLog 2014-06-30 12:38:09 +0000 @@ -1,3 +1,16 @@ +2014-06-30 Jan Djärv + + * nsmenu.m (update_frame_tool_bar): Set wait_for_tool_bar to NO + when setNeedsDisplay is called so we don't trigger redisplay for every + tool bar update. + + * nsterm.m (any_help_event_p): New variable. + (mouseMoved:): Set any_help_event_p to YES if help event is + generated. Remove else with empty help event that triggered redisplay + for every mouse move. + (windowDidResignKey:): If any_help_event_p, generate empty help + event. + 2014-06-29 Dmitry Antipov * xfns.c (Qsuppress_icon): Remove; no real users. === modified file 'src/nsmenu.m' --- src/nsmenu.m 2014-06-04 14:59:09 +0000 +++ src/nsmenu.m 2014-06-30 12:38:09 +0000 @@ -1152,7 +1152,10 @@ FRAME_TOOLBAR_HEIGHT (f) = 0; if (view->wait_for_tool_bar && FRAME_TOOLBAR_HEIGHT (f) > 0) + { + view->wait_for_tool_bar = NO; [view setNeedsDisplay: YES]; + } unblock_input (); } === modified file 'src/nsterm.m' --- src/nsterm.m 2014-06-11 17:57:51 +0000 +++ src/nsterm.m 2014-06-30 12:38:09 +0000 @@ -283,6 +283,11 @@ static BOOL ns_do_open_file = NO; static BOOL ns_last_use_native_fullscreen; +/* Non-zero means that a HELP_EVENT has been generated since Emacs + start. */ + +static BOOL any_help_event_p = NO; + static struct { struct input_event *q; int nr, cap; @@ -5688,14 +5693,10 @@ /* NOTE: help_echo_{window,pos,object} are set in xdisp.c (note_mouse_highlight), which is called through the note_mouse_movement () call above */ + any_help_event_p = YES; gen_help_event (help_echo_string, frame, help_echo_window, help_echo_object, help_echo_pos); } - else - { - help_echo_string = Qnil; - gen_help_event (Qnil, frame, Qnil, Qnil, 0); - } if (emacsframe->mouse_moved && send_appdefined) ns_send_appdefined (-1); @@ -5973,6 +5974,14 @@ x_set_frame_alpha (emacsframe); } + if (any_help_event_p) + { + Lisp_Object frame; + XSETFRAME (frame, emacsframe); + help_echo_string = Qnil; + gen_help_event (Qnil, frame, Qnil, Qnil, 0); + } + if (emacs_event && is_focus_frame) { [self deleteWorkingText]; ------------------------------------------------------------ revno: 117449 committer: Fabi?n Ezequiel Gallina branch nick: trunk timestamp: Mon 2014-06-30 01:54:46 -0300 message: * lisp/emacs-lisp/subr-x.el (string-reverse): Use `reverse'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-06-30 04:11:43 +0000 +++ lisp/ChangeLog 2014-06-30 04:54:46 +0000 @@ -1,5 +1,9 @@ 2014-06-30 Fabián Ezequiel Gallina + * emacs-lisp/subr-x.el (string-reverse): Use `reverse'. + +2014-06-30 Fabián Ezequiel Gallina + New if-let, when-let, thread-first and thread-last macros. * emacs-lisp/subr-x.el === modified file 'lisp/emacs-lisp/subr-x.el' --- lisp/emacs-lisp/subr-x.el 2014-06-30 04:11:43 +0000 +++ lisp/emacs-lisp/subr-x.el 2014-06-30 04:54:46 +0000 @@ -161,7 +161,7 @@ (defsubst string-reverse (str) "Reverse the string STR." - (apply 'string (nreverse (string-to-list str)))) + (reverse str)) (defsubst string-trim-left (string) "Remove leading whitespace from STRING." ------------------------------------------------------------ Use --include-merged or -n0 to see merged revisions.