commit 4f5c868f5b519610ec3e8b63e4f12656f3351161 (HEAD, refs/remotes/origin/master) Author: Michael Albinus Date: Tue Sep 27 10:39:09 2016 +0200 * etc/PROBLEMS: Remove problem Bug#22814, again. diff --git a/etc/PROBLEMS b/etc/PROBLEMS index 2e1044f..62d2bd1 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -578,17 +578,6 @@ you have a personal configuration file (normally ~/.aspell.conf), it can cause this error. Remove that file, execute 'ispell-kill-ispell' in Emacs, and then try spell-checking again. -*** Emacs eats all file descriptors when using kqueue file notifications. -See . - -When you have a large number of buffers running auto-revert-mode, and -Emacs is configured to use the kqueue file notification library, it -uses an own file descriptor for every watched file. On systems with a -small limit of file descriptors allowed per process, like OS X, you -could run out of file descriptors. You won't be able to open new files. - -auto-revert-use-notify is set to nil in global-auto-revert-mode, therefore. - *** TLS problems, e.g., Gnus hangs when fetching via imaps http://debbugs.gnu.org/24247 commit f1451d4206ba27fb5ceaeb335f606cd26381bfd7 Author: Paul Eggert Date: Mon Sep 26 17:28:17 2016 -0700 Stick with debbugs-supported tags in triage * admin/notes/bug-triage: Stick to the tag "unreproducible", which debbugs supports, rather than suggesting "doneunreproducible" or "unreproducable". diff --git a/admin/notes/bug-triage b/admin/notes/bug-triage index 4a2a5f3..47ce4e0 100644 --- a/admin/notes/bug-triage +++ b/admin/notes/bug-triage @@ -30,12 +30,12 @@ the ones that are not reproducible on the current release. [ ] Make sure there's enough information to reproduce the bug. It should be very clear how to reproduce. If not, please ask for specific steps to reproduce. If you don't get them, and - you can't reproduce without them, you can close as - "doneunreproducible". Sometimes there is specific hardware - involved, such as particular models of keyboards, or it may - simply involve a platform you don't have access to. It's - fine to ignore those, and let a future triager that is better - equipped to reproduce it handle it. + you can't reproduce without them, you can tag the bug report + as "unreproducible" and close the bug report. Sometimes this + involves specific hardware such as particular models of + keyboards, or it may simply involve a platform you don't have + access to. It's fine to ignore those, and let a future + triager that is better equipped to reproduce it handle it. An example reply asking for clear reproduction steps would be something like: "Hi! In the interest of seeing whether this @@ -61,9 +61,9 @@ the ones that are not reproducible on the current release. If you can't reproduce, state that you can't reproduce it on the current release, ask if they can try again against the - current release. Tag the bug as "unreproducable". Wait a + current release. Tag the bug as "unreproducible". Wait a few weeks for their reply - if they can reproduce it, then - that's great, otherwise close as "doneunreproducible". + that's great, otherwise close the bug report. Example reply: "I've attempted to reproduce this on the latest version of emacs, Emacs 25, but haven't been able to. commit 3db6defcf43561deb2733446571ca1fc9f589f8f Merge: a251366 5b73408 Author: Paul Eggert Date: Mon Sep 26 16:18:08 2016 -0700 ; Merge from origin/emacs-25 The following commit was skipped: 5b73408 Backport mm-convert-shr-links fix from master (bug#23964) commit 5b734087b18e4596cdf2fa34806e092c4b532db1 Author: Katsumi Yamaoka Date: Mon Sep 26 22:34:53 2016 +0000 Backport mm-convert-shr-links fix from master (bug#23964) * lisp/gnus/mm-decode.el (mm-convert-shr-links): Preserve key bindings that shr adds (bug#23964). diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index bb8e203..b6532b3 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -1910,8 +1910,6 @@ If RECURSIVE, search recursively." :help-echo (get-text-property start 'help-echo) :keymap (setq keymap (copy-keymap shr-map)) (get-text-property start 'shr-url)) - ;; Remove keymap that `shr-urlify' adds. - (put-text-property start end 'keymap nil) ;; Mask keys that launch `widget-button-click'. ;; Those bindings are provided by `widget-keymap' ;; that is a parent of `gnus-article-mode-map'. commit a2513667af6c1cfc58e971b9a5476cd5edfaef1c Merge: ffd6a03 9fc9988 Author: Paul Eggert Date: Mon Sep 26 13:39:17 2016 -0700 Merge from origin/emacs-25 9fc9988 Improve documentation of 'expand-abbrev' and wrapper hooks c14a1d4 Minor copyedits of MS-Windows installation instructions f281924 Fix display of cursor when 'blink-cursor-delay' has small value # Conflicts: # lisp/minibuffer.el commit ffd6a03521de0a177db217e56cd6564ef60348fe Merge: fa9d904 7cb120e Author: Paul Eggert Date: Mon Sep 26 13:37:36 2016 -0700 ; Merge from origin/emacs-25 The following commits were skipped: 7cb120e Improve the doc string of 'format' 3a9866e Improve doc strings in whitespace.el 2e2469b Improve detectability of 'next-logical-line' and 'previous-lo... 16e6207 Fix (next-frame nil t) crash (Bug#24281) 3f539c0 Fix debugging of string-match-p errors f746a92 Fix region display while dragging mouse df4f812 Fix 'vertical-motion' and 'posn-at-point' under 'visual-line-... 9135bd7 Improve display of tex-verbatim and Info quoted e0dd65c Document how to check for ImageMagick support dc1e0ac Run find-function-after-hook after finding a symbol commit fa9d9041aa05263b5331e32f99f7e3d5a1f16696 Merge: 4dad967 0ae9a81 Author: Paul Eggert Date: Mon Sep 26 13:37:36 2016 -0700 Merge from origin/emacs-25 0ae9a81 Document 'timerp' 2c72c46 Improve documentation of overlay priorities f6fa160 Fix 'dired-compress-files' 2b8c5f0 Update commentary of STRING_CHAR and FETCH_MULTIBYTE_CHAR # Conflicts: # lisp/dired.el # src/buffer.h # src/character.h commit 4dad9675c58ea82f6d2f8ec8dfa10d67d754d1d1 Merge: fffa49b 0d016ca Author: Paul Eggert Date: Mon Sep 26 13:35:57 2016 -0700 ; Merge from origin/emacs-25 The following commit was skipped: 0d016ca Increment Emacs version to 25.1.50 commit fffa49b136b02052073fa584cf7b9fe99b1bf951 Merge: 2914d52 cf9e174 Author: Paul Eggert Date: Mon Sep 26 13:35:56 2016 -0700 Merge from origin/emacs-25 cf9e174 Document the optional zlib library in MS-Windows builds 84eb144 ; * admin/notes/unicode: Mention BidiCharacterTest.txt. 73c67dd Fix tagging of DEFUN by etags ea1960b Avoid resetting track-mouse by mouse clicks 505fef3 Improve nt/README.W32 instructions 1229cc4 Document that desktop file overrides frame parameters f0eb70d ; Update ChangeLog.2 and ldef-boot.el for Emacs 25.1 release # Conflicts: # ChangeLog.2 # admin/notes/unicode # lisp/ldefs-boot.el commit 2914d52129032c471a6754f4a3961a9dffdc7b18 Merge: dcd90f6 8d0ff83 Author: Paul Eggert Date: Mon Sep 26 13:32:28 2016 -0700 ; Merge from origin/emacs-25 The following commit was skipped: 8d0ff83 * etc/AUTHORS: Regenerate the AUTHORS file commit dcd90f60eb8952d119d97efcef9564ec96def054 Merge: c44ecb7 0ffc9ce Author: Paul Eggert Date: Mon Sep 26 13:32:28 2016 -0700 Merge from origin/emacs-25 0ffc9ce Update admin/authors.el 0ad7410 Update Antinews in ELisp manual ea0f750 Fix comments on window height macros 0bbdeed Fix 'url-http-create-request' when cookies are used 0045998 Fix cross reference in frames.texi 1392894 ; * etc/DEBUG: Minor copyedits. 304a5c8 ; * etc/DEBUG: Improve documentation of getting control to GDB. 56bf7d7 Fix regexp-opt documentation (bug #17862) 803ad6f ; Fix documentation of seq-subseq ed4530d * lisp/emacs-lisp/gv.el (gv-ref): Fix example of PLACE in doc... 88ea396 ; Spelling fixes 17197d0 Fix tags-query-replace docstring 80a7f8b Clarify documentation of precision in format specs 88a5052 Improve and clarify documentation of subprocesses 89eb09f * etc/PROBLEMS: Mention gnutls-cli 3.5.3 (Bug#24247). # Conflicts: # etc/PROBLEMS # src/process.c commit 9fc9988d4d08028fb37c588f5e0483ac85b713d3 Author: Eli Zaretskii Date: Mon Sep 26 19:02:01 2016 +0300 Improve documentation of 'expand-abbrev' and wrapper hooks * lisp/simple.el (filter-buffer-substring-functions) (buffer-substring--filter): Add a link to 'with-wrapper-hook' as the place to look for documentation of wrapper hooks. * lisp/minibuffer.el (completion-in-region-functions) (completion--in-region): Add a link to 'with-wrapper-hook' as the place to look for documentation of wrapper hooks. * lisp/abbrev.el (expand-abbrev, abbrev--default-expand): Clarify the doc strings. (Bug#24540) * doc/lispref/text.texi (Buffer Contents): Mention 'with-wrapper-hook's doc string as the place to learn about that obsolete facility. diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 0445d68..f37f75f 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -232,7 +232,9 @@ using a function specified by the variable @code{filter-buffer-substring-function}, and returns the result. The default filter function consults the obsolete wrapper hook -@code{filter-buffer-substring-functions}, and the obsolete variable +@code{filter-buffer-substring-functions} (see the documentation string +of the macro @code{with-wrapper-hook} for the details about this +obsolete facility), and the obsolete variable @code{buffer-substring-filters}. If both of these are @code{nil}, it returns the unaltered text from the buffer, i.e., what @code{buffer-substring} would return. diff --git a/lisp/abbrev.el b/lisp/abbrev.el index d181d97..8c4f6eb 100644 --- a/lisp/abbrev.el +++ b/lisp/abbrev.el @@ -837,16 +837,17 @@ Takes no argument and should return the abbrev symbol if expansion took place.") "Expand the abbrev before point, if there is an abbrev there. Effective when explicitly called even when `abbrev-mode' is nil. Before doing anything else, runs `pre-abbrev-expand-hook'. -Calls `abbrev-expand-function' with no argument to do the work, -and returns whatever it does. (This should be the abbrev symbol -if expansion occurred, else nil.)" +Calls the value of `abbrev-expand-function' with no argument to do +the work, and returns whatever it does. (That return value should +be the abbrev symbol if expansion occurred, else nil.)" (interactive) (run-hooks 'pre-abbrev-expand-hook) (funcall abbrev-expand-function)) (defun abbrev--default-expand () "Default function to use for `abbrev-expand-function'. -This respects the wrapper hook `abbrev-expand-functions'. +This also respects the obsolete wrapper hook `abbrev-expand-functions'. +\(See `with-wrapper-hook' for details about wrapper hooks.) Calls `abbrev-insert' to insert any expansion, and returns what it does." (with-wrapper-hook abbrev-expand-functions () (pcase-let ((`(,sym ,name ,wordstart ,wordend) (abbrev--before-point))) diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 1ee05d3..c7f7c41 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -1925,7 +1925,8 @@ variables.") (exit-minibuffer)) (defvar completion-in-region-functions nil - "Wrapper hook around `completion--in-region'.") + "Wrapper hook around `completion--in-region'. +\(See `with-wrapper-hook' for details about wrapper hooks.)") (make-obsolete-variable 'completion-in-region-functions 'completion-in-region-function "24.4") @@ -1969,7 +1970,8 @@ if there was no valid completion, else t." (defun completion--in-region (start end collection &optional predicate) "Default function to use for `completion-in-region-function'. Its arguments and return value are as specified for `completion-in-region'. -This respects the wrapper hook `completion-in-region-functions'." +Also respects the obsolete wrapper hook `completion-in-region-functions'. +\(See `with-wrapper-hook' for details about wrapper hooks.)" (with-wrapper-hook ;; FIXME: Maybe we should use this hook to provide a "display ;; completions" operation as well. diff --git a/lisp/simple.el b/lisp/simple.el index 5dbaebb..c7d3b2e 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4009,7 +4009,8 @@ These commands include \\[set-mark-command] and \\[start-kbd-macro]." (defvar filter-buffer-substring-functions nil - "This variable is a wrapper hook around `buffer-substring--filter'.") + "This variable is a wrapper hook around `buffer-substring--filter'. +\(See `with-wrapper-hook' for details about wrapper hooks.)") (make-obsolete-variable 'filter-buffer-substring-functions 'filter-buffer-substring-function "24.4") @@ -4050,7 +4051,8 @@ that are special to a buffer, and should not be copied into other buffers." (defun buffer-substring--filter (beg end &optional delete) "Default function to use for `filter-buffer-substring-function'. Its arguments and return value are as specified for `filter-buffer-substring'. -This respects the wrapper hook `filter-buffer-substring-functions', +Also respects the obsolete wrapper hook `filter-buffer-substring-functions' +\(see `with-wrapper-hook' for details about wrapper hooks), and the abnormal hook `buffer-substring-filters'. No filtering is done unless a hook says to." (with-wrapper-hook filter-buffer-substring-functions (beg end delete) commit c14a1d4580b831bb1c62f273a11cee90d6ee283e Author: Eli Zaretskii Date: Sun Sep 25 18:16:07 2016 +0300 Minor copyedits of MS-Windows installation instructions * nt/INSTALL: * nt/README.W32: Add URL of Emacs dependencies on alpha.gnu.org. diff --git a/nt/INSTALL b/nt/INSTALL index fff0eb6..cd726cb 100644 --- a/nt/INSTALL +++ b/nt/INSTALL @@ -633,11 +633,13 @@ build will run on Windows 9X and newer systems). To support XPM images (required for color tool-bar icons), you will need the libXpm library. It is available from the ezwinports site, - http://sourceforge.net/projects/ezwinports/files/. + http://sourceforge.net/projects/ezwinports/files/ and from + http://alpha.gnu.org/gnu/emacs/pretest/windows/. For PNG images, we recommend to use versions 1.4.x and later of libpng, because previous versions had security issues. You can find - precompiled libraries and headers on the ezwinports site. + precompiled libraries and headers on the ezwinports site and on + alpha.gnu. Versions 1.4.0 and later of libpng are binary incompatible with earlier versions, so Emacs will only look for libpng libraries which @@ -654,7 +656,8 @@ build will run on Windows 9X and newer systems). For GIF images, we recommend to use versions 5.0.0 or later of giflib, as it is much enhanced wrt previous versions. You can find precompiled binaries and headers for giflib on the ezwinports site, - http://sourceforge.net/projects/ezwinports/files/. + http://sourceforge.net/projects/ezwinports/files/ and on + http://alpha.gnu.org/gnu/emacs/pretest/windows/. Version 5.0.0 and later of giflib are binary incompatible with previous versions (the signatures of several functions have @@ -668,7 +671,7 @@ build will run on Windows 9X and newer systems). For JPEG images, you will need libjpeg 6b or later, which will be called libjpeg-N.dll, jpeg62.dll, libjpeg.dll, or jpeg.dll. You can - find these on the ezwinports site. + find these on the ezwinports site and on alpha.gnu. TIFF images require libTIFF 3.0 or later, which will be called libtiffN.dll or libtiff-N.dll or libtiff.dll. These can be found on @@ -695,6 +698,10 @@ build will run on Windows 9X and newer systems). because the compiler needs to see their header files when building Emacs. + http://alpha.gnu.org/gnu/emacs/pretest/windows/ + + More fat ports, from the MSYS2 project. + To use librsvg at runtime, ensure that librsvg and its dependencies are on your PATH, or in the same directory as the emacs.exe binary. If you are downloading from the ezwinports site, you only need to @@ -751,7 +758,8 @@ build will run on Windows 9X and newer systems). session. You can get pre-built binaries (including any required DLL and the - header files) at http://sourceforge.net/projects/ezwinports/files/. + header files) at http://sourceforge.net/projects/ezwinports/files/ + and on http://alpha.gnu.org/gnu/emacs/pretest/windows/. * Optional libxml2 support @@ -773,6 +781,7 @@ build will run on Windows 9X and newer systems). (including any required DLL and the header files) is here: http://sourceforge.net/projects/ezwinports/files/ + http://alpha.gnu.org/gnu/emacs/pretest/windows/ For runtime support of libxml2, you will also need to install the libiconv "development" tarball, because the libiconv headers need to @@ -788,7 +797,8 @@ build will run on Windows 9X and newer systems). Emacs can decompress text if compiled with the zlib library. Prebuilt binaries of zlib DLL (for 32-bit builds of Emacs) are - available from the ezwinports site; see above for the URL. + available from the ezwinports site and on alpha.gnu; see above for + the URLs. (This library is also a prerequisite for several image libraries, so you may already have it; look for zlib1.dll or libz-1.dll.) diff --git a/nt/README.W32 b/nt/README.W32 index a061596..e3f6094 100644 --- a/nt/README.W32 +++ b/nt/README.W32 @@ -140,10 +140,12 @@ See the end of the file for license conditions. 1. http://sourceforge.net/projects/ezwinports/files/ -- up-to-date builds, self-contained archives, only for 32-bit Emacs - 2. The MSYS2 project -- for 64-bit Emacs: + 2. Libraries from the MSYS2 project on alpha.gnu.org: + http://alpha.gnu.org/gnu/emacs/pretest/windows/. + 3. The MSYS2 project -- for 64-bit Emacs: http://msys2.github.io/ https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/ - 3. GnuWin32 project -- very old 32-bit builds, not recommended + 4. GnuWin32 project -- very old 32-bit builds, not recommended The libraries to download are mentioned below. Some libraries depend on others that need to be downloaded separately from the same @@ -197,7 +199,8 @@ See the end of the file for license conditions. but GnuTLS won't be available to the running session. You can get pre-built binaries (including any dependency DLLs) at - http://sourceforge.net/projects/ezwinports/files/. + http://sourceforge.net/projects/ezwinports/files/ and on + http://alpha.gnu.org/gnu/emacs/pretest/windows/. * libxml2 support @@ -210,7 +213,8 @@ See the end of the file for license conditions. running session. You can get pre-built binaries (including any required DLL and the - header files) at http://sourceforge.net/projects/ezwinports/files/. + header files) at http://sourceforge.net/projects/ezwinports/files/ and + http://alpha.gnu.org/gnu/emacs/pretest/windows/. * zlib support @@ -219,9 +223,9 @@ See the end of the file for license conditions. the zlib-decompress-region primitive. Prebuilt binaries of zlib DLL (for 32-bit builds of Emacs) are - available from the ezwinports site; see above for the URL. For the - 64-bit DLL, see the instructions below for installing from MSYS2 - site. + available from the ezwinports site and on alpha.gnu; see above for + the URLs. For the 64-bit DLL, see the instructions below for + installing from MSYS2 site. (This library is also a prerequisite for several image libraries, so you may already have it; look for zlib1.dll or libz-1.dll.) commit f2819241bc93b641f13e1a04f3520fadb8ed53a8 Author: Eli Zaretskii Date: Fri Sep 23 17:25:55 2016 +0300 Fix display of cursor when 'blink-cursor-delay' has small value * lisp/frame.el (blink-cursor-check, blink-cursor-mode): Protect ourselves against too small values of blink-cursor-delay. This avoids erratic display of the cursor, or even failure to display it, when user types text at high speed or leans on a key to invoke the keyboard auto-repeat feature. (Bug#24372) diff --git a/lisp/frame.el b/lisp/frame.el index 09738d1..291150b 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -2115,7 +2115,11 @@ This is done when a frame gets focus. Blink timers may be stopped by (not blink-cursor-idle-timer)) (remove-hook 'post-command-hook 'blink-cursor-check) (setq blink-cursor-idle-timer - (run-with-idle-timer blink-cursor-delay + ;; The 0.2 sec limitation from below is to avoid erratic + ;; behavior (or downright failure to display the cursor + ;; during command execution) if they set blink-cursor-delay + ;; to a very small or even zero value. + (run-with-idle-timer (max 0.2 blink-cursor-delay) blink-cursor-delay 'blink-cursor-start)))) @@ -2149,7 +2153,11 @@ terminals, cursor blinking is controlled by the terminal." (add-hook 'focus-in-hook #'blink-cursor-check) (add-hook 'focus-out-hook #'blink-cursor-suspend) (setq blink-cursor-idle-timer - (run-with-idle-timer blink-cursor-delay + ;; The 0.2 sec limitation from below is to avoid erratic + ;; behavior (or downright failure to display the cursor + ;; during command execution) if they set blink-cursor-delay + ;; to a very small or even zero value. + (run-with-idle-timer (max 0.2 blink-cursor-delay) blink-cursor-delay #'blink-cursor-start)))) commit 7cb120ebf397c51540ebb4ef223d84852394ed58 Author: Eli Zaretskii Date: Fri Sep 16 12:55:15 2016 +0300 Improve the doc string of 'format' * src/editfns.c (Fformat): Fix ambiguity in the doc string's usage of a literal period. (Bug#24407) This was backported from master (cherry picked from commit 7123896626b06c26c4e37839ab41e41980c8f433) diff --git a/src/editfns.c b/src/editfns.c index e1c8516..51b87de 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -3815,7 +3815,8 @@ specifiers, as follows: %character -where flags is [+ #-0]+, width is [0-9]+, and precision is .[0-9]+ +where flags is [+ #-0]+, width is [0-9]+, and precision is a literal +period "." followed by [0-9]+ The + flag character inserts a + before any positive number, while a space inserts a space before any positive number; these flags only commit 3a9866e203dd263accfb8f9d0a12f5337eb4cff1 Author: Eli Zaretskii Date: Fri Sep 16 12:46:15 2016 +0300 Improve doc strings in whitespace.el * lisp/whitespace.el (whitespace-mode, whitespace-newline-mode) (global-whitespace-mode, global-whitespace-newline-mode): Improve the doc strings. (Bug#24413) This was backported from master (cherry picked from commit 3462fe73351f3da5bc3ebf8296ee44dd2e6b1dbc) diff --git a/lisp/whitespace.el b/lisp/whitespace.el index af906ba..0f6b8df 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el @@ -1031,8 +1031,10 @@ Any other value is treated as nil." (define-minor-mode whitespace-mode "Toggle whitespace visualization (Whitespace mode). With a prefix argument ARG, enable Whitespace mode if ARG is -positive, and disable it otherwise. If called from Lisp, enable -the mode if ARG is omitted or nil. +positive, and disable it otherwise. + +If called from Lisp, also enables the mode if ARG is omitted or nil, +and toggles it if ARG is `toggle'. See also `whitespace-style', `whitespace-newline' and `whitespace-display-mappings'." @@ -1054,8 +1056,10 @@ See also `whitespace-style', `whitespace-newline' and (define-minor-mode whitespace-newline-mode "Toggle newline visualization (Whitespace Newline mode). With a prefix argument ARG, enable Whitespace Newline mode if ARG -is positive, and disable it otherwise. If called from Lisp, -enable the mode if ARG is omitted or nil. +is positive, and disable it otherwise. + +If called from Lisp, also enables the mode if ARG is omitted or nil, +and toggles it if ARG is `toggle'. Use `whitespace-newline-mode' only for NEWLINE visualization exclusively. For other visualizations, including NEWLINE @@ -1082,8 +1086,10 @@ See also `whitespace-newline' and `whitespace-display-mappings'." (define-minor-mode global-whitespace-mode "Toggle whitespace visualization globally (Global Whitespace mode). With a prefix argument ARG, enable Global Whitespace mode if ARG -is positive, and disable it otherwise. If called from Lisp, -enable it if ARG is omitted or nil. +is positive, and disable it otherwise. + +If called from Lisp, also enables the mode if ARG is omitted or nil, +and toggles it if ARG is `toggle'. See also `whitespace-style', `whitespace-newline' and `whitespace-display-mappings'." @@ -1141,8 +1147,10 @@ This variable is normally modified via `add-function'.") (define-minor-mode global-whitespace-newline-mode "Toggle global newline visualization (Global Whitespace Newline mode). With a prefix argument ARG, enable Global Whitespace Newline mode -if ARG is positive, and disable it otherwise. If called from -Lisp, enable it if ARG is omitted or nil. +if ARG is positive, and disable it otherwise. + +If called from Lisp, also enables the mode if ARG is omitted or nil, +and toggles it if ARG is `toggle'. Use `global-whitespace-newline-mode' only for NEWLINE visualization exclusively. For other visualizations, including commit 2e2469bbfeb6c1865012f34a180c9beda9e56862 Author: Eli Zaretskii Date: Fri Sep 16 12:31:41 2016 +0300 Improve detectability of 'next-logical-line' and 'previous-logical-line' * lisp/simple.el (next-line, previous-line): Mention 'next-logical-line' and 'previous-logical-line' in the doc strings. (Bug#24443) This was backported from master (cherry picked from commit e95d0d15bb1534803b0adb3c3a927c8beb7d4e79) diff --git a/lisp/simple.el b/lisp/simple.el index c08a01f..5dbaebb 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -5641,6 +5641,7 @@ cursor to the end of the buffer. If the variable `line-move-visual' is non-nil, this command moves by display lines. Otherwise, it moves by buffer lines, without taking variable-width characters or continued lines into account. +See \\[next-logical-line] for a command that always moves by buffer lines. The command \\[set-goal-column] can be used to create a semipermanent goal column for this command. @@ -5684,6 +5685,7 @@ column, or at the end of the line if it is not long enough. If the variable `line-move-visual' is non-nil, this command moves by display lines. Otherwise, it moves by buffer lines, without taking variable-width characters or continued lines into account. +See \\[previous-logical-line] for a command that always moves by buffer lines. The command \\[set-goal-column] can be used to create a semipermanent goal column for this command. commit 16e62077bb0013fdc557c4894f26164ce174064d Author: Martin Rudalics Date: Mon Aug 22 08:33:48 2016 +0200 Fix (next-frame nil t) crash (Bug#24281) * src/frame.c (candidate_frame): Check minibuf argument before comparing it to zero (Bug#24281). This was backported from master (cherry picked from commit dc491c3df305a73908fe8de20b7c428a5b38c846) diff --git a/src/frame.c b/src/frame.c index 00f25f7..cfa5f7d 100644 --- a/src/frame.c +++ b/src/frame.c @@ -1308,7 +1308,7 @@ candidate_frame (Lisp_Object candidate, Lisp_Object frame, Lisp_Object minibuf) FRAME_FOCUS_FRAME (c))) return candidate; } - else if (XFASTINT (minibuf) == 0) + else if (INTEGERP (minibuf) && XINT (minibuf) == 0) { if (FRAME_VISIBLE_P (c) || FRAME_ICONIFIED_P (c)) return candidate; commit 3f539c0013cf0f64b71e58d288ff1e53211fba2d Author: Noam Postavsky Date: Fri Aug 5 22:11:00 2016 -0400 Fix debugging of string-match-p errors * src/eval.c (call_debugger): Bind inhibit-changing-match-data to nil so that debugger code that needs to do regexp match won't break (Bug #23949, Bug #24166, Bug#16294). This was backported from master (cherry picked from commit 7fb75680b38fe0805c2ff7e9cca3bec8121ba984) diff --git a/src/eval.c b/src/eval.c index fe6460d..13a41a2 100644 --- a/src/eval.c +++ b/src/eval.c @@ -299,6 +299,11 @@ call_debugger (Lisp_Object arg) specbind (Qinhibit_redisplay, Qnil); specbind (Qinhibit_debugger, Qt); + /* If we are debugging an error while `inhibit-changing-match-data' + is bound to non-nil (e.g., within a call to `string-match-p'), + then make sure debugger code can still use match data. */ + specbind (Qinhibit_changing_match_data, Qnil); + #if 0 /* Binding this prevents execution of Lisp code during redisplay, which necessarily leads to display problems. */ specbind (Qinhibit_eval_during_redisplay, Qt); diff --git a/src/search.c b/src/search.c index b70f020..dc7e2d8 100644 --- a/src/search.c +++ b/src/search.c @@ -3396,6 +3396,7 @@ or other such regexp constructs are not replaced with this. A value of nil (which is the normal value) means treat spaces literally. */); Vsearch_spaces_regexp = Qnil; + DEFSYM (Qinhibit_changing_match_data, "inhibit-changing-match-data"); DEFVAR_LISP ("inhibit-changing-match-data", Vinhibit_changing_match_data, doc: /* Internal use only. If non-nil, the primitive searching and matching functions commit f746a92c3c6d12c09ae07ec24a4a1199aa7a0364 Author: Eli Zaretskii Date: Sat Jul 30 11:32:02 2016 +0300 Fix region display while dragging mouse * lisp/mouse.el (mouse-drag-track): Reset deactivate-mark in the buffer of the drag event, to allow mark to be set and the region be shown as we drag the mouse. (Bug#24030) This was backported from master (cherry picked from commit 7d58b02f363ab02961faa950d1ba727df96f2f19) diff --git a/lisp/mouse.el b/lisp/mouse.el index d069400..6992252 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -808,14 +808,16 @@ The region will be defined with mark and point." (setq mouse-selection-click-count-buffer (current-buffer)) (deactivate-mark) (let* ((scroll-margin 0) ; Avoid margin scrolling (Bug#9541). + (start-posn (event-start start-event)) + (start-point (posn-point start-posn)) + (start-window (posn-window start-posn)) + (_ (with-current-buffer (window-buffer start-window) + (setq deactivate-mark nil))) ;; We've recorded what we needed from the current buffer and ;; window, now let's jump to the place of the event, where things ;; are happening. (_ (mouse-set-point start-event)) (echo-keystrokes 0) - (start-posn (event-start start-event)) - (start-point (posn-point start-posn)) - (start-window (posn-window start-posn)) (bounds (window-edges start-window)) (make-cursor-line-fully-visible nil) (top (nth 1 bounds)) commit df4f8125342bafe1d70130f84acfa67cc0c4a7f4 Author: Eli Zaretskii Date: Sat May 21 12:35:08 2016 +0300 Fix 'vertical-motion' and 'posn-at-point' under 'visual-line-mode' * src/xdisp.c (move_it_in_display_line_to): Don't assume we can wrap on a whitespace character if it's followed by another whitespace character. When returning under WORD_WRAP for a screen line that is continued, restore to wrap point when atpos/atx position would be displayed on the next screen line due to line-wrap. (Bug#23570) This is backported from master (cherry picked from commit 99848b37d2c3e14c0af45fc6da437a806aa58a80) diff --git a/src/xdisp.c b/src/xdisp.c index 24daa0c..adbb6e5 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -8805,6 +8805,8 @@ move_it_in_display_line_to (struct it *it, ? WINDOW_LEFT_FRINGE_WIDTH (it->w) : WINDOW_RIGHT_FRINGE_WIDTH (it->w))))) { + bool moved_forward = false; + if (/* IT->hpos == 0 means the very first glyph doesn't fit on the line, e.g. a wide image. */ it->hpos == 0 @@ -8823,16 +8825,37 @@ move_it_in_display_line_to (struct it *it, now that we know it fits in this row. */ if (BUFFER_POS_REACHED_P ()) { + bool can_wrap = true; + + /* If we are at a whitespace character + that barely fits on this screen line, + but the next character is also + whitespace, we cannot wrap here. */ + if (it->line_wrap == WORD_WRAP + && wrap_it.sp >= 0 + && may_wrap + && IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) + { + struct it tem_it; + void *tem_data = NULL; + + SAVE_IT (tem_it, *it, tem_data); + set_iterator_to_next (it, true); + if (get_next_display_element (it) + && IT_DISPLAYING_WHITESPACE (it)) + can_wrap = false; + RESTORE_IT (it, &tem_it, tem_data); + } if (it->line_wrap != WORD_WRAP || wrap_it.sp < 0 - /* If we've just found whitespace to - wrap, effectively ignore the - previous wrap point -- it is no - longer relevant, but we won't - have an opportunity to update it, - since we've reached the edge of - this screen line. */ - || (may_wrap + /* If we've just found whitespace + where we can wrap, effectively + ignore the previous wrap point -- + it is no longer relevant, but we + won't have an opportunity to + update it, since we've reached + the edge of this screen line. */ + || (may_wrap && can_wrap && IT_OVERFLOW_NEWLINE_INTO_FRINGE (it))) { it->hpos = hpos_before_this_char; @@ -8875,6 +8898,7 @@ move_it_in_display_line_to (struct it *it, result = MOVE_POS_MATCH_OR_ZV; break; } + moved_forward = true; if (BUFFER_POS_REACHED_P ()) { if (ITERATOR_AT_END_OF_LINE_P (it)) @@ -8902,7 +8926,14 @@ move_it_in_display_line_to (struct it *it, longer relevant, but we won't have an opportunity to update it, since we are done with this screen line. */ - if (may_wrap && IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) + if (may_wrap && IT_OVERFLOW_NEWLINE_INTO_FRINGE (it) + /* If the character after the one which set the + may_wrap flag is also whitespace, we can't + wrap here, since the screen line cannot be + wrapped in the middle of whitespace. + Therefore, wrap_it _is_ relevant in that + case. */ + && !(moved_forward && IT_DISPLAYING_WHITESPACE (it))) { /* If we've found TO_X, go back there, as we now know the last word fits on this screen line. */ @@ -9083,9 +9114,18 @@ move_it_in_display_line_to (struct it *it, #undef BUFFER_POS_REACHED_P - /* If we scanned beyond to_pos and didn't find a point to wrap at, - restore the saved iterator. */ - if (atpos_it.sp >= 0) + /* If we scanned beyond TO_POS, restore the saved iterator either to + the wrap point (if found), or to atpos/atx location. We decide which + data to use to restore the saved iterator state by their X coordinates, + since buffer positions might increase non-monotonically with screen + coordinates due to bidi reordering. */ + if (result == MOVE_LINE_CONTINUED + && it->line_wrap == WORD_WRAP + && wrap_it.sp >= 0 + && ((atpos_it.sp >= 0 && wrap_it.current_x < atpos_it.current_x) + || (atx_it.sp >= 0 && wrap_it.current_x < atx_it.current_x))) + RESTORE_IT (it, &wrap_it, wrap_data); + else if (atpos_it.sp >= 0) RESTORE_IT (it, &atpos_it, atpos_data); else if (atx_it.sp >= 0) RESTORE_IT (it, &atx_it, atx_data); commit 9135bd7af7bdf9f805b185a77fe4e6d33dec4009 Author: Paul Eggert Date: Fri May 13 13:30:33 2016 -0700 Improve display of tex-verbatim and Info quoted Problem reported by Glenn Morris (Bug#19889). * doc/emacs/display.texi (Standard Faces): * doc/lispref/display.texi (Basic Faces): * etc/NEWS: Mention fixed-pitch-serif. * lisp/faces.el (face-font-family-alternatives): New family alias Monospace Serif. (fixed-pitch-serif): New face, which uses the new family. * lisp/info.el (Info-quoted): * lisp/textmodes/tex-mode.el (tex-verbatim): Use the new face. * test/lisp/legacy/font-parse-tests.el (font-parse-tests--data): Add test case for Monospace Serif. This is backport from master (cherry picked from commit 36906806ccfc0e53f1d8c365ab0d7151288b7833) diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index 56b643b..391e1a0 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi @@ -613,6 +613,9 @@ This face underlines text. This face forces use of a fixed-width font. It's reasonable to customize this face to use a different fixed-width font, if you like, but you should not make it a variable-width font. +@item fixed-pitch-serif +This face is like @code{fixed-pitch}, except the font has serifs and +looks more like traditional typewriting. @cindex variable-pitch face @item variable-pitch This face forces use of a variable-width font. diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 68b48e0..2e316f8 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -3027,6 +3027,7 @@ attribute on this face (@pxref{Face Attributes}). @itemx bold-italic @itemx underline @itemx fixed-pitch +@itemx fixed-pitch-serif @itemx variable-pitch These have the attributes indicated by their names (e.g., @code{bold} has a bold @code{:weight} attribute), with all other attributes diff --git a/etc/NEWS b/etc/NEWS index a61370b..274226b 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -19,9 +19,14 @@ with a prefix argument or by typing C-u C-h C-n. * Changes in Emacs 25.2 This is a bug-fix release with (almost) no new features. +--- ** `find-library', `help-function-def' and `help-variable-def' now run `find-function-after-hook'. ++++ +*** New basic face 'fixed-pitch-serif', for a fixed-width font with serifs. +The Info-quoted and tex-verbatim faces now default to inheriting from it. + * Installation Changes in Emacs 25.1 diff --git a/lisp/faces.el b/lisp/faces.el index fddc036..b1ea0f0 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -98,7 +98,31 @@ a font height that isn't optimal." (defcustom face-font-family-alternatives (mapcar (lambda (arg) (mapcar 'purecopy arg)) '(("Monospace" "courier" "fixed") + + ;; Monospace Serif is an Emacs invention, intended to work around + ;; portability problems when using Courier. It should work well + ;; when combined with Monospaced and with other standard fonts. + ("Monospace Serif" + + ;; This looks good on GNU/Linux. + "Courier 10 Pitch" + ;; This looks good on MS-Windows and OS X. + "Consolas" + ;; This looks good on OS X. "Courier" looks good too, but is + ;; jagged on GNU/Linux and so is listed later as "courier". + "Courier Std" + ;; Although these are anti-aliased, they are a bit faint compared + ;; to the above. + "FreeMono" "Nimbus Mono L" + ;; These are aliased and look jagged. + "courier" "fixed" + ;; Omit Courier New, as it is the default MS-Windows font and so + ;; would look no different, and is pretty faint on other platforms. + ) + + ;; This is present for backward compatibility. ("courier" "CMU Typewriter Text" "fixed") + ("Sans Serif" "helv" "helvetica" "arial" "fixed") ("helv" "helvetica" "arial" "fixed"))) "Alist of alternative font family names. @@ -2280,6 +2304,11 @@ If you set `term-file-prefix' to nil, this function does nothing." "The basic fixed-pitch face." :group 'basic-faces) +(defface fixed-pitch-serif + '((t :family "Monospace Serif")) + "The basic fixed-pitch face with serifs." + :group 'basic-faces) + (defface variable-pitch '((((type w32)) ;; This is a kludgy workaround for an issue discussed in diff --git a/lisp/info.el b/lisp/info.el index 6426cfc..ae46fba 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -4236,7 +4236,7 @@ With a zero prefix arg, put the name inside a function call to `info'." "Syntax table used in `Info-mode'.") (defface Info-quoted - '((t :family "courier")) + '((t :inherit fixed-pitch-serif)) "Face used for quoted elements.") (defvar Info-mode-font-lock-keywords diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index 3ac68bd..8545a09 100644 --- a/lisp/textmodes/tex-mode.el +++ b/lisp/textmodes/tex-mode.el @@ -801,8 +801,7 @@ Not smaller than the value set by `tex-suscript-height-minimum'." (defvar tex-math-face 'tex-math) (defface tex-verbatim - ;; '((t :inherit font-lock-string-face)) - '((t :family "courier")) + '((t :inherit fixed-pitch-serif)) "Face used to highlight TeX verbatim environments." :group 'tex) (define-obsolete-face-alias 'tex-verbatim-face 'tex-verbatim "22.1") diff --git a/test/automated/font-parse-tests.el b/test/automated/font-parse-tests.el index 6274253..9f730d3 100644 --- a/test/automated/font-parse-tests.el +++ b/test/automated/font-parse-tests.el @@ -32,6 +32,7 @@ (defvar font-parse-tests--data `((" " ,(intern " ") nil nil nil nil) ("Monospace" Monospace nil nil nil nil) + ("Monospace Serif" ,(intern "Monospace Serif") nil nil nil nil) ("Foo1" Foo1 nil nil nil nil) ("12" nil 12.0 nil nil nil) ("12 " ,(intern "12 ") nil nil nil nil) commit e0dd65cd444fd9e5ee6b5921936c6c829df75e50 Author: Lars Ingebrigtsen Date: Sat Apr 30 21:39:21 2016 +0200 Document how to check for ImageMagick support * doc/lispref/display.texi (ImageMagick Images): Say how to check for ImageMagick support, which isn't quite obvious (bug#20702). This is backport from master (cherry picked from commit faf07d646575c78d6d956ce91820ebbf38308553) diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index d3e4248..68b48e0 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -5157,6 +5157,12 @@ Conveniences,,, emacs, The GNU Emacs Manual}). The image type symbol for images loaded via ImageMagick is @code{imagemagick}, regardless of the actual underlying image format. +To check for ImageMagick support, use the following: + +@lisp +(image-type-available-p 'imagemagick) +@end lisp + @defun imagemagick-types This function returns a list of image file extensions supported by the current ImageMagick installation. Each list element is a symbol commit dc1e0ac761725931f23de13df4ef5020372a52a0 Author: Tino Calancha Date: Mon Apr 25 19:27:06 2016 +0200 Run find-function-after-hook after finding a symbol * lisp/emacs-lisp/find-func.el (find-library): * lisp/help-mode.el (help-function-def, help-variable-def): Run `find-function-after-hook' inside the help-function of the buttons (bug#22583). * etc/NEWS: Mention the change. This is a backport from master. (cherry picked from commit f069d854508946bcc03e4c77ceb430748e3ab6d7) diff --git a/etc/NEWS b/etc/NEWS index e86aec2..a61370b 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -17,7 +17,10 @@ with a prefix argument or by typing C-u C-h C-n. * Changes in Emacs 25.2 -This is a bug-fix release with no new features. +This is a bug-fix release with (almost) no new features. + +** `find-library', `help-function-def' and `help-variable-def' now run +`find-function-after-hook'. * Installation Changes in Emacs 25.1 diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el index 43bcb42..6f224ed 100644 --- a/lisp/emacs-lisp/find-func.el +++ b/lisp/emacs-lisp/find-func.el @@ -283,7 +283,11 @@ LIBRARY should be a string (the name of the library)." "Library name: ") table nil nil nil nil def)))) (let ((buf (find-file-noselect (find-library-name library)))) - (condition-case nil (switch-to-buffer buf) (error (pop-to-buffer buf))))) + (condition-case nil + (prog1 + (switch-to-buffer buf) + (run-hooks 'find-function-after-hook)) + (error (pop-to-buffer buf))))) ;;;###autoload (defun find-function-search-for-symbol (symbol type library) diff --git a/lisp/help-mode.el b/lisp/help-mode.el index 7b95e5f..e008698 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el @@ -202,6 +202,7 @@ The format is (FUNCTION ARGS...).") (let ((location (find-function-search-for-symbol fun type file))) (pop-to-buffer (car location)) + (run-hooks 'find-function-after-hook) (if (cdr location) (goto-char (cdr location)) (message "Unable to find location in file")))) @@ -231,6 +232,7 @@ The format is (FUNCTION ARGS...).") (setq file (help-C-file-name var 'var))) (let ((location (find-variable-noselect var file))) (pop-to-buffer (car location)) + (run-hooks 'find-function-after-hook) (if (cdr location) (goto-char (cdr location)) (message "Unable to find location in file")))) commit 0ae9a816b9f68bd3f50fc287a342237c8b4fe78d Author: Eli Zaretskii Date: Fri Sep 23 11:43:25 2016 +0300 Document 'timerp' * doc/lispref/os.texi (Timers): Document 'timerp'. (Bug#24511) Improve indexing. diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index ec14b01..0d999ae 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -1727,10 +1727,17 @@ This function returns @code{t} if @var{year} is a leap year. @node Timers @section Timers for Delayed Execution -@cindex timer +@cindex timers You can set up a @dfn{timer} to call a function at a specified -future time or after a certain length of idleness. +future time or after a certain length of idleness. A timer is a +special object that stores the information about the next invocation +times and the function to invoke. + +@defun timerp object +This predicate function returns non-@code{nil} of @code{object} is a +timer. +@end defun Emacs cannot run timers at any arbitrary point in a Lisp program; it can run them only when Emacs could accept output from a subprocess: commit 2c72c46af18b586137c3cebde56f451c1b0b7a9b Author: Eli Zaretskii Date: Fri Sep 23 11:27:18 2016 +0300 Improve documentation of overlay priorities * doc/lispref/display.texi (Overlay Properties): Minor copyedits. By popular demand, mention the '(PRIMNARY . SECONDARY)' form of overlay properties used for the region. (Bug#20253) diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 0d0ec67..d3e4248 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -1553,10 +1553,8 @@ the buffer's undo list. Since more than one overlay can specify a property value for the same character, Emacs lets you specify a priority value of each -overlay. In case two overlays have the same priority value, and one -is nested in the other, then the inner one will have priority over the -outer one. If neither is nested in the other then you should not make -assumptions about which overlay will prevail. +overlay. The priority value is used to decide which of the +overlapping overlays will ``win''. These functions read and set the properties of an overlay: @@ -1593,17 +1591,26 @@ If you want to specify a priority value, use either @code{nil} The priority matters when two or more overlays cover the same character and both specify the same property; the one whose -@code{priority} value is larger overrides the other. For the +@code{priority} value is larger overrides the other. (For the @code{face} property, the higher priority overlay's value does not completely override the other value; instead, its face attributes override the face attributes of the lower priority @code{face} -property. +property.) If two overlays have the same priority value, and one is +nested in the other, then the inner one will prevail over the outer +one. If neither is nested in the other then you should not make +assumptions about which overlay will prevail. Currently, all overlays take priority over text properties. Note that Emacs sometimes uses non-numeric priority values for some of -its internal overlays, so do not try to do arithmetic on the -priority of an overlay (unless it is one that you created). If you +its internal overlays, so do not try to do arithmetic on the priority +of an overlay (unless it is one that you created). In particular, the +overlay used for showing the region uses a priority value of the form +@w{@code{(@var{primary} . @var{secondary})}}, where the @var{primary} +value is used as described above, and @var{secondary} is the fallback +value used when @var{primary} and the nesting considerations fail to +resolve the precedence between overlays. However, you are advised not +to design Lisp programs based on this implementation detail; if you need to put overlays in priority order, use the @var{sorted} argument of @code{overlays-at}. @xref{Finding Overlays}. diff --git a/lisp/dired.el b/lisp/dired.el index 92aa65a..a4cb505 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -3919,7 +3919,7 @@ Ask means pop up a menu for the user to select one of copy, move or link." ;;; Start of automatically extracted autoloads. -;;;### (autoloads nil "dired-aux" "dired-aux.el" "c1ea036dd5d740f00b18a76bfb32f887") +;;;### (autoloads nil "dired-aux" "dired-aux.el" "daa0a32a5bdfcf4de80c31cf7833b26d") ;;; Generated autoloads from dired-aux.el (autoload 'dired-diff "dired-aux" "\ @@ -4113,9 +4113,9 @@ command with a prefix argument (the value does not matter). (autoload 'dired-do-compress-to "dired-aux" "\ Compress selected files and directories to an archive. -You are prompted for the archive name. -The archiving command is chosen based on the archive name extension and -`dired-compress-files-alist'. +Prompt for the archive file name. +Choose the archiving command based on the archive file-name extension +and `dired-compress-files-alist'. \(fn)" t nil) commit f6fa160e91e264f0a3f797b56e8605dbdb32cb76 Author: Eli Zaretskii Date: Fri Sep 23 11:08:34 2016 +0300 Fix 'dired-compress-files' * lisp/dired-aux.el (dired-do-compress-to): Make sure the archive file name is fully expanded by running it through 'expand-file-name'. Suggested by Drew Adams . (Bug#24486) Doc fix. * lisp/dired.el: Regenerated changes in autoloads. diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index b9111a8..204ee13 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el @@ -937,12 +937,12 @@ output file. %i path(s) are relative, while %o is absolute.") ;;;###autoload (defun dired-do-compress-to () "Compress selected files and directories to an archive. -You are prompted for the archive name. -The archiving command is chosen based on the archive name extension and -`dired-compress-files-alist'." +Prompt for the archive file name. +Choose the archiving command based on the archive file-name extension +and `dired-compress-files-alist'." (interactive) (let* ((in-files (dired-get-marked-files)) - (out-file (read-file-name "Compress to: ")) + (out-file (expand-file-name (read-file-name "Compress to: "))) (rule (cl-find-if (lambda (x) (string-match (car x) out-file)) diff --git a/lisp/dired.el b/lisp/dired.el index b838e64..92aa65a 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -3919,7 +3919,7 @@ Ask means pop up a menu for the user to select one of copy, move or link." ;;; Start of automatically extracted autoloads. -;;;### (autoloads nil "dired-aux" "dired-aux.el" "8346506b9ef7167fd55b5eac7e6617a1") +;;;### (autoloads nil "dired-aux" "dired-aux.el" "c1ea036dd5d740f00b18a76bfb32f887") ;;; Generated autoloads from dired-aux.el (autoload 'dired-diff "dired-aux" "\ commit 2b8c5f0bffd329616f26721325da57f4ac06cabb Author: Eli Zaretskii Date: Fri Sep 23 10:52:07 2016 +0300 Update commentary of STRING_CHAR and FETCH_MULTIBYTE_CHAR * src/character.h (STRING_CHAR): * src/buffer.h (FETCH_MULTIBYTE_CHAR): Update commentary: these two macros no longer do any character unification, so the caveats in those comments are no longer pertinent. diff --git a/src/buffer.h b/src/buffer.h index 87b7cee..a53ef12 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -1182,17 +1182,7 @@ buffer_has_overlays (void) /* Return character code of multi-byte form at byte position POS. If POS doesn't point the head of valid multi-byte form, only the byte at - POS is returned. No range checking. - - WARNING: The character returned by this macro could be "unified" - inside STRING_CHAR, if the original character in the buffer belongs - to one of the Private Use Areas (PUAs) of codepoints that Emacs - uses to support non-unified CJK characters. If that happens, - CHAR_BYTES will return a value that is different from the length of - the original multibyte sequence stored in the buffer. Therefore, - do _not_ use FETCH_MULTIBYTE_CHAR if you need to advance through - the buffer to the next character after fetching this one. Instead, - use either FETCH_CHAR_ADVANCE or STRING_CHAR_AND_LENGTH. */ + POS is returned. No range checking. */ INLINE int FETCH_MULTIBYTE_CHAR (ptrdiff_t pos) diff --git a/src/character.h b/src/character.h index d4b6c73..a94ec6d 100644 --- a/src/character.h +++ b/src/character.h @@ -308,10 +308,7 @@ enum } \ } while (false) -/* Return the character code of character whose multibyte form is at - P. Note that this macro unifies CJK characters whose codepoints - are in the Private Use Areas (PUAs), so it might return a different - codepoint from the one actually stored at P. */ +/* Return the character code of character whose multibyte form is at P. */ #define STRING_CHAR(p) \ (!((p)[0] & 0x80) \ commit 0d016ca1164463320a77482df88ef81cc34056d1 Author: Eli Zaretskii Date: Fri Sep 23 10:46:26 2016 +0300 Increment Emacs version to 25.1.50 * README: * configure.ac: * etc/NEWS: * msdos/sed2v2.inp: Bump the version to 25.1.50. diff --git a/README b/README index bdd9bde..35a31db 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ Copyright (C) 2001-2016 Free Software Foundation, Inc. See the end of the file for license conditions. -This directory tree holds version 25.1 of GNU Emacs, the extensible, +This directory tree holds version 25.1.50 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. The file INSTALL in this directory says how to build and install GNU diff --git a/configure.ac b/configure.ac index cd4d1c0..7a697ec 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ dnl along with GNU Emacs. If not, see . AC_PREREQ(2.65) dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el. -AC_INIT(GNU Emacs, 25.1, bug-gnu-emacs@gnu.org) +AC_INIT(GNU Emacs, 25.1.50, bug-gnu-emacs@gnu.org) dnl Set emacs_config_options to the options of 'configure', quoted for the shell, dnl and then quoted again for a C string. Separate options with spaces. diff --git a/etc/NEWS b/etc/NEWS index 7cd1c5e..e86aec2 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -16,6 +16,10 @@ You can narrow news to a specific version by calling 'view-emacs-news' with a prefix argument or by typing C-u C-h C-n. +* Changes in Emacs 25.2 +This is a bug-fix release with no new features. + + * Installation Changes in Emacs 25.1 ** Building Emacs now requires C99 or later. diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp index 118e634..d1a6eab 100644 --- a/msdos/sed2v2.inp +++ b/msdos/sed2v2.inp @@ -66,7 +66,7 @@ /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/ /^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION VERSION/ /^#undef PENDING_OUTPUT_COUNT/s/^.*$/#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)/ -/^#undef VERSION/s/^.*$/#define VERSION "25.1"/ +/^#undef VERSION/s/^.*$/#define VERSION "25.1.50"/ /^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/ /^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/ /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/ commit cf9e174ae1d3b1428982204b0786a7db13d94ab7 Author: Eli Zaretskii Date: Wed Sep 21 18:28:30 2016 +0300 Document the optional zlib library in MS-Windows builds * nt/README.W32: * nt/INSTALL.W64: * nt/INSTALL: Mention the optional text decompression support and the zlib library. diff --git a/nt/INSTALL b/nt/INSTALL index 99a2f39..fff0eb6 100644 --- a/nt/INSTALL +++ b/nt/INSTALL @@ -784,6 +784,15 @@ build will run on Windows 9X and newer systems). You need the libiconv-X.Y.Z-N-mingw32-dev.tar.lzma tarball from that site. +* Optional support for decompressing text + + Emacs can decompress text if compiled with the zlib library. + Prebuilt binaries of zlib DLL (for 32-bit builds of Emacs) are + available from the ezwinports site; see above for the URL. + + (This library is also a prerequisite for several image libraries, so + you may already have it; look for zlib1.dll or libz-1.dll.) + This file is part of GNU Emacs. diff --git a/nt/INSTALL.W64 b/nt/INSTALL.W64 index e109c6f..40670a6 100644 --- a/nt/INSTALL.W64 +++ b/nt/INSTALL.W64 @@ -64,13 +64,15 @@ packages (you can copy and paste it into the shell with Shift + Insert): mingw-w64-x86_64-libjpeg-turbo \ mingw-w64-x86_64-librsvg \ mingw-w64-x86_64-libxml2 \ - mingw-w64-x86_64-gnutls + mingw-w64-x86_64-gnutls \ + mingw-w64-x86_64-zlib The packages include the base developer tools (autoconf, automake, grep, make, etc.), the compiler toolchain (gcc, gdb, etc.), several image libraries, an -XML library, and the GnuTLS (transport layer security) library. Only the -first three packages are required (base-devel, toolchain, xpm-nox); the rest -are optional. +XML library, the GnuTLS (transport layer security) library, and zlib for +decompressing text. Only the first three packages are required (base-devel, +toolchain, xpm-nox); the rest are optional. You can select only part of the +libraries if you don't need them all. You now have a complete build environment for Emacs. diff --git a/nt/README.W32 b/nt/README.W32 index d16ec8e..a061596 100644 --- a/nt/README.W32 +++ b/nt/README.W32 @@ -212,6 +212,20 @@ See the end of the file for license conditions. You can get pre-built binaries (including any required DLL and the header files) at http://sourceforge.net/projects/ezwinports/files/. + +* zlib support + + zlib provides support for decompressing text, which is necessary for + the zlib-decompress-region primitive. + + Prebuilt binaries of zlib DLL (for 32-bit builds of Emacs) are + available from the ezwinports site; see above for the URL. For the + 64-bit DLL, see the instructions below for installing from MSYS2 + site. + + (This library is also a prerequisite for several image libraries, so + you may already have it; look for zlib1.dll or libz-1.dll.) + * Installing 64-bit optional libraries from the MSYS2 site We recommend that you use the 'pacman' utility to download the commit 84eb144ccb5fe80adc2d7e9d60c5a8cc794425a6 Author: Eli Zaretskii Date: Wed Sep 21 18:14:50 2016 +0300 ; * admin/notes/unicode: Mention BidiCharacterTest.txt. diff --git a/admin/notes/unicode b/admin/notes/unicode index b30bf50..76479d4 100644 --- a/admin/notes/unicode +++ b/admin/notes/unicode @@ -14,11 +14,12 @@ Emacs uses the following files from the Unicode Character Database . BidiMirroring.txt . BidiBrackets.txt . IVD_Sequences.txt + . BidiCharacterTest.txt -First, these files need to be copied into admin/unidata/, and then -Emacs should be rebuilt for them to take effect. Rebuilding Emacs -updates several derived files elsewhere in the Emacs source tree, -mainly in lisp/international/. +First, the first 5 files need to be copied into admin/unidata/, and +then Emacs should be rebuilt for them to take effect. Rebuilding +Emacs updates several derived files elsewhere in the Emacs source +tree, mainly in lisp/international/. When Emacs is rebuilt for the first time after importing the new files, pay attention to any warning or error messages. In particular, @@ -48,6 +49,10 @@ might need to be updated because it knows about used and unused ranges of Unicode codepoints, which a new release of the Unicode Standard could change. +The file BidiCharacterTest.txt should be copied to the test suite, and +if its format has changed, the file biditest.el there should be +modified to follow suit. + Problems, fixmes and other unicode-related issues ------------------------------------------------------------- commit 73c67dda4f22a4a9736f5dc5086d086f5eb567b3 Author: Eli Zaretskii Date: Wed Sep 21 18:10:29 2016 +0300 Fix tagging of DEFUN by etags * lib-src/etags.c (C_entries): Tag DEFUN twice: once with its C name, and then again with its Lisp name. This restores the ability to find Lisp primitives by their C name, which was lost when the etags back-end was switched to a more strict search criteria. * test/etags/ETAGS.good_1: * test/etags/ETAGS.good_2: * test/etags/ETAGS.good_3: * test/etags/ETAGS.good_4: * test/etags/ETAGS.good_5: * test/etags/ETAGS.good_6: * test/etags/CTAGS.good: Adapt to the changes in etags.c wrt tagging DEFUN. diff --git a/lib-src/etags.c b/lib-src/etags.c index 01e2302..1457700 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -3436,13 +3436,27 @@ C_entries (int c_ext, FILE *inf) int off = tokoff; int len = toklen; - /* Rewrite the tag so that emacs lisp DEFUNs - can be found by their elisp name */ if (defun) { off += 1; len -= 1; + + /* First, tag it as its C name */ + linebuffer_setlen (&token_name, toklen); + memcpy (token_name.buffer, + newlb.buffer + tokoff, toklen); + token_name.buffer[toklen] = '\0'; + token.named = true; + token.lineno = lineno; + token.offset = tokoff; + token.length = toklen; + token.line = newlb.buffer; + token.linepos = newlinepos; + token.valid = true; + make_C_tag (funorvar); } + /* Rewrite the tag so that emacs lisp DEFUNs + can be found also by their elisp name */ linebuffer_setlen (&token_name, len); memcpy (token_name.buffer, newlb.buffer + off, len); diff --git a/test/etags/CTAGS.good b/test/etags/CTAGS.good index 19bc0be..d392b69 100644 --- a/test/etags/CTAGS.good +++ b/test/etags/CTAGS.good @@ -602,22 +602,67 @@ FUNCTION_KEY_OFFSET c-src/emacs/src/keyboard.c 4766 FUNCTION_KEY_OFFSET c-src/emacs/src/keyboard.c 5061 F_getit c-src/etags.c /^F_getit (FILE *inf)$/ F_takeprec c-src/etags.c /^F_takeprec (void)$/ +Fabbrev_expansion c-src/abbrev.c /^DEFUN ("abbrev-expansion", Fabbrev_expansion, Sabb/ +Fabbrev_symbol c-src/abbrev.c /^DEFUN ("abbrev-symbol", Fabbrev_symbol, Sabbrev_sy/ +Fabort_recursive_edit c-src/emacs/src/keyboard.c /^DEFUN ("abort-recursive-edit", Fabort_recursive_ed/ Fails_t c-src/h.h 5 +Fclear_abbrev_table c-src/abbrev.c /^DEFUN ("clear-abbrev-table", Fclear_abbrev_table, / +Fclear_this_command_keys c-src/emacs/src/keyboard.c /^DEFUN ("clear-this-command-keys", Fclear_this_comm/ +Fcommand_error_default_function c-src/emacs/src/keyboard.c /^DEFUN ("command-error-default-function", Fcommand_/ +Fcurrent_idle_time c-src/emacs/src/keyboard.c /^DEFUN ("current-idle-time", Fcurrent_idle_time, Sc/ +Fcurrent_input_mode c-src/emacs/src/keyboard.c /^DEFUN ("current-input-mode", Fcurrent_input_mode, / +Fdefine_abbrev c-src/abbrev.c /^DEFUN ("define-abbrev", Fdefine_abbrev, Sdefine_ab/ +Fdefine_abbrev_table c-src/abbrev.c /^DEFUN ("define-abbrev-table", Fdefine_abbrev_table/ +Fdefine_global_abbrev c-src/abbrev.c /^DEFUN ("define-global-abbrev", Fdefine_global_abbr/ +Fdefine_mode_abbrev c-src/abbrev.c /^DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev, / +Fdiscard_input c-src/emacs/src/keyboard.c /^DEFUN ("discard-input", Fdiscard_input, Sdiscard_i/ +Fevent_convert_list c-src/emacs/src/keyboard.c /^DEFUN ("event-convert-list", Fevent_convert_list, / +Fevent_symbol_parse_modifiers c-src/emacs/src/keyboard.c /^DEFUN ("internal-event-symbol-parse-modifiers", Fe/ +Fexit_recursive_edit c-src/emacs/src/keyboard.c /^DEFUN ("exit-recursive-edit", Fexit_recursive_edit/ +Fexpand_abbrev c-src/abbrev.c /^DEFUN ("expand-abbrev", Fexpand_abbrev, Sexpand_ab/ Finalize_Cond/p ada-src/2ataspri.adb /^ procedure Finalize_Cond (Cond : in out Conditio/ Finalize_Cond/p ada-src/2ataspri.ads /^ procedure Finalize_Cond (Cond : in out Conditio/ Finalize_Lock/p ada-src/2ataspri.adb /^ procedure Finalize_Lock (L : in out Lock) is$/ Finalize_Lock/p ada-src/2ataspri.ads /^ procedure Finalize_Lock (L : in out Lock);$/ Finalize_TAS_Cell/p ada-src/2ataspri.adb /^ procedure Finalize_TAS_Cell (Cell : in out TAS_/ Finalize_TAS_Cell/p ada-src/2ataspri.ads /^ procedure Finalize_TAS_Cell (Cell : in out TA/ +Finput_pending_p c-src/emacs/src/keyboard.c /^DEFUN ("input-pending-p", Finput_pending_p, Sinput/ +Finsert_abbrev_table_description c-src/abbrev.c /^DEFUN ("insert-abbrev-table-description", Finsert_/ First100Chars pas-src/common.pas /^procedure First100Chars; (*($/ +Fmake_abbrev_table c-src/abbrev.c /^DEFUN ("make-abbrev-table", Fmake_abbrev_table, Sm/ Foo perl-src/kai-test.pl /^package Foo;$/ Foo::Bar perl-src/kai-test.pl /^package Foo::Bar;$/ +Fopen_dribble_file c-src/emacs/src/keyboard.c /^DEFUN ("open-dribble-file", Fopen_dribble_file, So/ Forth_help c-src/etags.c 573 Forth_suffixes c-src/etags.c 571 Forth_words c-src/etags.c /^Forth_words (FILE *inf)$/ Fortran_functions c-src/etags.c /^Fortran_functions (FILE *inf)$/ Fortran_help c-src/etags.c 579 Fortran_suffixes c-src/etags.c 577 +Fposn_at_point c-src/emacs/src/keyboard.c /^DEFUN ("posn-at-point", Fposn_at_point, Sposn_at_p/ +Fposn_at_x_y c-src/emacs/src/keyboard.c /^DEFUN ("posn-at-x-y", Fposn_at_x_y, Sposn_at_x_y, / +Fread_key_sequence c-src/emacs/src/keyboard.c /^DEFUN ("read-key-sequence", Fread_key_sequence, Sr/ +Fread_key_sequence_vector c-src/emacs/src/keyboard.c /^DEFUN ("read-key-sequence-vector", Fread_key_seque/ +Frecent_keys c-src/emacs/src/keyboard.c /^DEFUN ("recent-keys", Frecent_keys, Srecent_keys, / +Frecursion_depth c-src/emacs/src/keyboard.c /^DEFUN ("recursion-depth", Frecursion_depth, Srecur/ +Frecursive_edit c-src/emacs/src/keyboard.c /^DEFUN ("recursive-edit", Frecursive_edit, Srecursi/ +Freset_this_command_lengths c-src/emacs/src/keyboard.c /^DEFUN ("reset-this-command-lengths", Freset_this_c/ +Fset_input_interrupt_mode c-src/emacs/src/keyboard.c /^DEFUN ("set-input-interrupt-mode", Fset_input_inte/ +Fset_input_meta_mode c-src/emacs/src/keyboard.c /^DEFUN ("set-input-meta-mode", Fset_input_meta_mode/ +Fset_input_mode c-src/emacs/src/keyboard.c /^DEFUN ("set-input-mode", Fset_input_mode, Sset_inp/ +Fset_output_flow_control c-src/emacs/src/keyboard.c /^DEFUN ("set-output-flow-control", Fset_output_flow/ +Fset_quit_char c-src/emacs/src/keyboard.c /^DEFUN ("set-quit-char", Fset_quit_char, Sset_quit_/ +Fsuspend_emacs c-src/emacs/src/keyboard.c /^DEFUN ("suspend-emacs", Fsuspend_emacs, Ssuspend_e/ +Fthis_command_keys c-src/emacs/src/keyboard.c /^DEFUN ("this-command-keys", Fthis_command_keys, St/ +Fthis_command_keys_vector c-src/emacs/src/keyboard.c /^DEFUN ("this-command-keys-vector", Fthis_command_k/ +Fthis_single_command_keys c-src/emacs/src/keyboard.c /^DEFUN ("this-single-command-keys", Fthis_single_co/ +Fthis_single_command_raw_keys c-src/emacs/src/keyboard.c /^DEFUN ("this-single-command-raw-keys", Fthis_singl/ +Ftop_level c-src/emacs/src/keyboard.c /^DEFUN ("top-level", Ftop_level, Stop_level, 0, 0, / +Ftrack_mouse c-src/emacs/src/keyboard.c /^DEFUN ("internal--track-mouse", Ftrack_mouse, Stra/ +Funexpand_abbrev c-src/abbrev.c /^DEFUN ("unexpand-abbrev", Funexpand_abbrev, Sunexp/ +Fx_get_selection_internal c.c /^DEFUN ("x-get-selection-internal", Fx_get_selectio/ +Fx_get_selection_internal c.c /^ Fx_get_selection_internal, Sx_get_selection/ +Fy_get_selection_internal c.c /^ Fy_get_selection_internal, Sy_get_selection_/ GCALIGNED c-src/emacs/src/lisp.h 288 GCALIGNED c-src/emacs/src/lisp.h 290 GCALIGNMENT c-src/emacs/src/lisp.h 243 diff --git a/test/etags/ETAGS.good_1 b/test/etags/ETAGS.good_1 index 58661bb..8739144 100644 --- a/test/etags/ETAGS.good_1 +++ b/test/etags/ETAGS.good_1 @@ -175,7 +175,7 @@ package body Truc.Bidule Truc.Bidule/b138,2153 protected body Bidule Bidule/b139,2181 protected body Machin_T Machin_T/b146,2281 -c-src/abbrev.c,1432 +c-src/abbrev.c,2072 Lisp_Object Vabbrev_table_name_list;43,1424 Lisp_Object Vglobal_abbrev_table;48,1569 Lisp_Object Vfundamental_mode_abbrev_table;52,1680 @@ -188,18 +188,29 @@ Lisp_Object Vlast_abbrev_text;75,2319 int last_abbrev_point;79,2409 Lisp_Object Vpre_abbrev_expand_hook,83,2482 Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;83,2482 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,85,2546 DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table85,2546 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,92,2738 DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table92,2738 +DEFUN ("define-abbrev", Fdefine_abbrev,107,3119 DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev107,3119 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,149,4438 DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev149,4438 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,160,4809 DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev160,4809 +DEFUN ("abbrev-symbol", Fabbrev_symbol,174,5277 DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol174,5277 +DEFUN ("abbrev-expansion", Fabbrev_expansion,202,6241 DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion202,6241 +DEFUN ("expand-abbrev", Fexpand_abbrev,218,6756 DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev218,6756 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,389,11677 DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev389,11677 write_abbrev 426,12884 describe_abbrev 445,13319 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,466,13834 DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description466,13834 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,506,14990 DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table506,14990 syms_of_abbrev 540,16067 @@ -828,7 +839,7 @@ typedef enum { RECC_ERROR 609,22953 } re_wctype_t;618,23260 typedef int re_wchar_t;623,23387 -c-src/emacs/src/keyboard.c,13565 +c-src/emacs/src/keyboard.c,15539 volatile int interrupt_input_blocked;76,1808 volatile bool pending_signals;80,1944 #define KBD_BUFFER_SIZE 82,1976 @@ -904,6 +915,7 @@ add_command_key 672,21582 recursive_edit_1 697,22406 record_auto_save 742,23848 force_auto_save_soon 751,24016 +DEFUN ("recursive-edit", Frecursive_edit,759,24137 DEFUN ("recursive-edit", Frecursive_edit,recursive-edit759,24137 recursive_edit_unwind 804,25747 any_kboard_state 817,26013 @@ -918,16 +930,21 @@ record_single_kboard_state 943,29437 restore_kboard_configuration 952,29621 cmd_error 970,30077 cmd_error_internal 1024,31510 +DEFUN ("command-error-default-function", Fcommand_error_default_function,1043,32030 DEFUN ("command-error-default-function", Fcommand_error_default_function,command-error-default-function1043,32030 command_loop 1094,33916 command_loop_2 1134,35135 top_level_2 1146,35339 top_level_1 1152,35417 +DEFUN ("top-level", Ftop_level,1164,35787 DEFUN ("top-level", Ftop_level,top-level1164,35787 user_error 1183,36288 +DEFUN ("exit-recursive-edit", Fexit_recursive_edit,1189,36429 DEFUN ("exit-recursive-edit", Fexit_recursive_edit,exit-recursive-edit1189,36429 +DEFUN ("abort-recursive-edit", Fabort_recursive_edit,1201,36819 DEFUN ("abort-recursive-edit", Fabort_recursive_edit,abort-recursive-edit1201,36819 tracking_off 1216,37281 +DEFUN ("internal--track-mouse", Ftrack_mouse,1234,37816 DEFUN ("internal--track-mouse", Ftrack_mouse,track-mouse1234,37816 bool ignore_mouse_drag_p;1256,38392 some_mouse_moved 1259,38441 @@ -991,6 +1008,7 @@ Lisp_Object pending_funcalls;4377,131172 decode_timer 4381,131293 timer_check_2 4414,132246 timer_check 4572,136817 +DEFUN ("current-idle-time", Fcurrent_idle_time,4607,137662 DEFUN ("current-idle-time", Fcurrent_idle_time,current-idle-time4607,137662 static Lisp_Object accent_key_syms;4625,138239 static Lisp_Object func_key_syms;4626,138275 @@ -1037,10 +1055,12 @@ static Lisp_Object modifier_symbols;6327,189449 lispy_modifier_list 6331,189586 #define KEY_TO_CHAR(6353,190252 parse_modifiers 6356,190328 +DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,6399,191517 DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,event-symbol-parse-modifiers6399,191517 apply_modifiers 6422,192391 reorder_modifiers 6491,194720 modify_event_symbol 6536,196528 +DEFUN ("event-convert-list", Fevent_convert_list,6628,199244 DEFUN ("event-convert-list", Fevent_convert_list,event-convert-list6628,199244 parse_solitary_modifier 6695,201135 #define SINGLE_LETTER_MOD(6701,201258 @@ -1101,24 +1121,38 @@ keyremap_step 8811,261450 test_undefined 8867,262934 read_key_sequence 8916,264861 read_key_sequence_vs 9826,295821 +DEFUN ("read-key-sequence", Fread_key_sequence,9885,297294 DEFUN ("read-key-sequence", Fread_key_sequence,read-key-sequence9885,297294 +DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,9938,299982 DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,read-key-sequence-vector9938,299982 detect_input_pending 9950,300488 detect_input_pending_ignore_squeezables 9959,300654 detect_input_pending_run_timers 9967,300870 clear_input_pending 9985,301362 requeued_events_pending_p 9997,301732 +DEFUN ("input-pending-p", Finput_pending_p,10002,301813 DEFUN ("input-pending-p", Finput_pending_p,input-pending-p10002,301813 +DEFUN ("recent-keys", Frecent_keys,10024,302596 DEFUN ("recent-keys", Frecent_keys,recent-keys10024,302596 +DEFUN ("this-command-keys", Fthis_command_keys,10055,303517 DEFUN ("this-command-keys", Fthis_command_keys,this-command-keys10055,303517 +DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,10068,303958 DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,this-command-keys-vector10068,303958 +DEFUN ("this-single-command-keys", Fthis_single_command_keys,10080,304380 DEFUN ("this-single-command-keys", Fthis_single_command_keys,this-single-command-keys10080,304380 +DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,10096,304955 DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,this-single-command-raw-keys10096,304955 +DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,10109,305495 DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,reset-this-command-lengths10109,305495 +DEFUN ("clear-this-command-keys", Fclear_this_command_keys,10136,306510 DEFUN ("clear-this-command-keys", Fclear_this_command_keys,clear-this-command-keys10136,306510 +DEFUN ("recursion-depth", Frecursion_depth,10158,307069 DEFUN ("recursion-depth", Frecursion_depth,recursion-depth10158,307069 +DEFUN ("open-dribble-file", Fopen_dribble_file,10169,307406 DEFUN ("open-dribble-file", Fopen_dribble_file,open-dribble-file10169,307406 +DEFUN ("discard-input", Fdiscard_input,10203,308447 DEFUN ("discard-input", Fdiscard_input,discard-input10203,308447 +DEFUN ("suspend-emacs", Fsuspend_emacs,10225,308949 DEFUN ("suspend-emacs", Fsuspend_emacs,suspend-emacs10225,308949 stuff_buffered_input 10285,311045 set_waiting_for_input 10323,312016 @@ -1128,13 +1162,21 @@ deliver_interrupt_signal 10378,313642 static int volatile force_quit_count;10387,313932 handle_interrupt 10401,314414 quit_throw_to_read_char 10541,318711 +DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,10562,319288 DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,set-input-interrupt-mode10562,319288 +DEFUN ("set-output-flow-control", Fset_output_flow_control,10609,320516 DEFUN ("set-output-flow-control", Fset_output_flow_control,set-output-flow-control10609,320516 +DEFUN ("set-input-meta-mode", Fset_input_meta_mode,10643,321432 DEFUN ("set-input-meta-mode", Fset_input_meta_mode,set-input-meta-mode10643,321432 +DEFUN ("set-quit-char", Fset_quit_char,10694,322706 DEFUN ("set-quit-char", Fset_quit_char,set-quit-char10694,322706 +DEFUN ("set-input-mode", Fset_input_mode,10729,323570 DEFUN ("set-input-mode", Fset_input_mode,set-input-mode10729,323570 +DEFUN ("current-input-mode", Fcurrent_input_mode,10750,324459 DEFUN ("current-input-mode", Fcurrent_input_mode,current-input-mode10750,324459 +DEFUN ("posn-at-x-y", Fposn_at_x_y,10787,325837 DEFUN ("posn-at-x-y", Fposn_at_x_y,posn-at-x-y10787,325837 +DEFUN ("posn-at-point", Fposn_at_point,10824,327060 DEFUN ("posn-at-point", Fposn_at_point,posn-at-point10824,327060 init_kboard 10861,328214 allocate_kboard 10893,329284 @@ -3832,7 +3874,7 @@ void bar(5,69 int foobar(6,94 interface_locate(9,131 -c.c,1663 +c.c,1807 my_printf 135, void fatala 138, max 141, @@ -3862,8 +3904,11 @@ short array[array190, int f193, DEAFUN 196, XDEFUN 203, +DEFUN ("x-get-selection-internal", Fx_get_selection_internal,206, DEFUN ("x-get-selection-internal", Fx_get_selection_internal,x-get-selection-internal206, + Fx_get_selection_internal,212, Fx_get_selection_internal,x-get-selection-internal212, + Fy_get_selection_internal,216, Fy_get_selection_internal,y-get-selection-internal216, defun_func1(218, DEFUN_func2(220, diff --git a/test/etags/ETAGS.good_2 b/test/etags/ETAGS.good_2 index ecfa7d1..7f24d06 100644 --- a/test/etags/ETAGS.good_2 +++ b/test/etags/ETAGS.good_2 @@ -175,7 +175,7 @@ package body Truc.Bidule Truc.Bidule/b138,2153 protected body Bidule Bidule/b139,2181 protected body Machin_T Machin_T/b146,2281 -c-src/abbrev.c,1432 +c-src/abbrev.c,2072 Lisp_Object Vabbrev_table_name_list;43,1424 Lisp_Object Vglobal_abbrev_table;48,1569 Lisp_Object Vfundamental_mode_abbrev_table;52,1680 @@ -188,18 +188,29 @@ Lisp_Object Vlast_abbrev_text;75,2319 int last_abbrev_point;79,2409 Lisp_Object Vpre_abbrev_expand_hook,83,2482 Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;83,2482 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,85,2546 DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table85,2546 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,92,2738 DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table92,2738 +DEFUN ("define-abbrev", Fdefine_abbrev,107,3119 DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev107,3119 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,149,4438 DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev149,4438 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,160,4809 DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev160,4809 +DEFUN ("abbrev-symbol", Fabbrev_symbol,174,5277 DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol174,5277 +DEFUN ("abbrev-expansion", Fabbrev_expansion,202,6241 DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion202,6241 +DEFUN ("expand-abbrev", Fexpand_abbrev,218,6756 DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev218,6756 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,389,11677 DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev389,11677 write_abbrev 426,12884 describe_abbrev 445,13319 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,466,13834 DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description466,13834 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,506,14990 DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table506,14990 syms_of_abbrev 540,16067 @@ -980,7 +991,7 @@ extern re_wctype_t re_wctype 621,23329 typedef int re_wchar_t;623,23387 extern void re_set_whitespace_regexp 625,23412 -c-src/emacs/src/keyboard.c,15493 +c-src/emacs/src/keyboard.c,17467 volatile int interrupt_input_blocked;76,1808 volatile bool pending_signals;80,1944 #define KBD_BUFFER_SIZE 82,1976 @@ -1087,6 +1098,7 @@ add_command_key 672,21582 recursive_edit_1 697,22406 record_auto_save 742,23848 force_auto_save_soon 751,24016 +DEFUN ("recursive-edit", Frecursive_edit,759,24137 DEFUN ("recursive-edit", Frecursive_edit,recursive-edit759,24137 recursive_edit_unwind 804,25747 any_kboard_state 817,26013 @@ -1101,6 +1113,7 @@ record_single_kboard_state 943,29437 restore_kboard_configuration 952,29621 cmd_error 970,30077 cmd_error_internal 1024,31510 +DEFUN ("command-error-default-function", Fcommand_error_default_function,1043,32030 DEFUN ("command-error-default-function", Fcommand_error_default_function,command-error-default-function1043,32030 static Lisp_Object command_loop_2 1086,33637 static Lisp_Object top_level_1 1087,33686 @@ -1108,11 +1121,15 @@ command_loop 1094,33916 command_loop_2 1134,35135 top_level_2 1146,35339 top_level_1 1152,35417 +DEFUN ("top-level", Ftop_level,1164,35787 DEFUN ("top-level", Ftop_level,top-level1164,35787 user_error 1183,36288 +DEFUN ("exit-recursive-edit", Fexit_recursive_edit,1189,36429 DEFUN ("exit-recursive-edit", Fexit_recursive_edit,exit-recursive-edit1189,36429 +DEFUN ("abort-recursive-edit", Fabort_recursive_edit,1201,36819 DEFUN ("abort-recursive-edit", Fabort_recursive_edit,abort-recursive-edit1201,36819 tracking_off 1216,37281 +DEFUN ("internal--track-mouse", Ftrack_mouse,1234,37816 DEFUN ("internal--track-mouse", Ftrack_mouse,track-mouse1234,37816 bool ignore_mouse_drag_p;1256,38392 some_mouse_moved 1259,38441 @@ -1180,6 +1197,7 @@ Lisp_Object pending_funcalls;4377,131172 decode_timer 4381,131293 timer_check_2 4414,132246 timer_check 4572,136817 +DEFUN ("current-idle-time", Fcurrent_idle_time,4607,137662 DEFUN ("current-idle-time", Fcurrent_idle_time,current-idle-time4607,137662 static Lisp_Object accent_key_syms;4625,138239 static Lisp_Object func_key_syms;4626,138275 @@ -1226,10 +1244,12 @@ static Lisp_Object modifier_symbols;6327,189449 lispy_modifier_list 6331,189586 #define KEY_TO_CHAR(6353,190252 parse_modifiers 6356,190328 +DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,6399,191517 DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,event-symbol-parse-modifiers6399,191517 apply_modifiers 6422,192391 reorder_modifiers 6491,194720 modify_event_symbol 6536,196528 +DEFUN ("event-convert-list", Fevent_convert_list,6628,199244 DEFUN ("event-convert-list", Fevent_convert_list,event-convert-list6628,199244 parse_solitary_modifier 6695,201135 #define SINGLE_LETTER_MOD(6701,201258 @@ -1295,24 +1315,38 @@ keyremap_step 8811,261450 test_undefined 8867,262934 read_key_sequence 8916,264861 read_key_sequence_vs 9826,295821 +DEFUN ("read-key-sequence", Fread_key_sequence,9885,297294 DEFUN ("read-key-sequence", Fread_key_sequence,read-key-sequence9885,297294 +DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,9938,299982 DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,read-key-sequence-vector9938,299982 detect_input_pending 9950,300488 detect_input_pending_ignore_squeezables 9959,300654 detect_input_pending_run_timers 9967,300870 clear_input_pending 9985,301362 requeued_events_pending_p 9997,301732 +DEFUN ("input-pending-p", Finput_pending_p,10002,301813 DEFUN ("input-pending-p", Finput_pending_p,input-pending-p10002,301813 +DEFUN ("recent-keys", Frecent_keys,10024,302596 DEFUN ("recent-keys", Frecent_keys,recent-keys10024,302596 +DEFUN ("this-command-keys", Fthis_command_keys,10055,303517 DEFUN ("this-command-keys", Fthis_command_keys,this-command-keys10055,303517 +DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,10068,303958 DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,this-command-keys-vector10068,303958 +DEFUN ("this-single-command-keys", Fthis_single_command_keys,10080,304380 DEFUN ("this-single-command-keys", Fthis_single_command_keys,this-single-command-keys10080,304380 +DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,10096,304955 DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,this-single-command-raw-keys10096,304955 +DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,10109,305495 DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,reset-this-command-lengths10109,305495 +DEFUN ("clear-this-command-keys", Fclear_this_command_keys,10136,306510 DEFUN ("clear-this-command-keys", Fclear_this_command_keys,clear-this-command-keys10136,306510 +DEFUN ("recursion-depth", Frecursion_depth,10158,307069 DEFUN ("recursion-depth", Frecursion_depth,recursion-depth10158,307069 +DEFUN ("open-dribble-file", Fopen_dribble_file,10169,307406 DEFUN ("open-dribble-file", Fopen_dribble_file,open-dribble-file10169,307406 +DEFUN ("discard-input", Fdiscard_input,10203,308447 DEFUN ("discard-input", Fdiscard_input,discard-input10203,308447 +DEFUN ("suspend-emacs", Fsuspend_emacs,10225,308949 DEFUN ("suspend-emacs", Fsuspend_emacs,suspend-emacs10225,308949 stuff_buffered_input 10285,311045 set_waiting_for_input 10323,312016 @@ -1322,13 +1356,21 @@ deliver_interrupt_signal 10378,313642 static int volatile force_quit_count;10387,313932 handle_interrupt 10401,314414 quit_throw_to_read_char 10541,318711 +DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,10562,319288 DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,set-input-interrupt-mode10562,319288 +DEFUN ("set-output-flow-control", Fset_output_flow_control,10609,320516 DEFUN ("set-output-flow-control", Fset_output_flow_control,set-output-flow-control10609,320516 +DEFUN ("set-input-meta-mode", Fset_input_meta_mode,10643,321432 DEFUN ("set-input-meta-mode", Fset_input_meta_mode,set-input-meta-mode10643,321432 +DEFUN ("set-quit-char", Fset_quit_char,10694,322706 DEFUN ("set-quit-char", Fset_quit_char,set-quit-char10694,322706 +DEFUN ("set-input-mode", Fset_input_mode,10729,323570 DEFUN ("set-input-mode", Fset_input_mode,set-input-mode10729,323570 +DEFUN ("current-input-mode", Fcurrent_input_mode,10750,324459 DEFUN ("current-input-mode", Fcurrent_input_mode,current-input-mode10750,324459 +DEFUN ("posn-at-x-y", Fposn_at_x_y,10787,325837 DEFUN ("posn-at-x-y", Fposn_at_x_y,posn-at-x-y10787,325837 +DEFUN ("posn-at-point", Fposn_at_point,10824,327060 DEFUN ("posn-at-point", Fposn_at_point,posn-at-point10824,327060 init_kboard 10861,328214 allocate_kboard 10893,329284 @@ -4402,7 +4444,7 @@ void bar(5,69 int foobar(6,94 interface_locate(9,131 -c.c,1836 +c.c,1980 void (*fa)fa131, void 132, my_printf 135, @@ -4439,8 +4481,11 @@ short array[array190, int f193, DEAFUN 196, XDEFUN 203, +DEFUN ("x-get-selection-internal", Fx_get_selection_internal,206, DEFUN ("x-get-selection-internal", Fx_get_selection_internal,x-get-selection-internal206, + Fx_get_selection_internal,212, Fx_get_selection_internal,x-get-selection-internal212, + Fy_get_selection_internal,216, Fy_get_selection_internal,y-get-selection-internal216, defun_func1(218, DEFUN_func2(220, diff --git a/test/etags/ETAGS.good_3 b/test/etags/ETAGS.good_3 index 5f84aa9..f8bd933 100644 --- a/test/etags/ETAGS.good_3 +++ b/test/etags/ETAGS.good_3 @@ -175,7 +175,7 @@ package body Truc.Bidule Truc.Bidule/b138,2153 protected body Bidule Bidule/b139,2181 protected body Machin_T Machin_T/b146,2281 -c-src/abbrev.c,1432 +c-src/abbrev.c,2072 Lisp_Object Vabbrev_table_name_list;43,1424 Lisp_Object Vglobal_abbrev_table;48,1569 Lisp_Object Vfundamental_mode_abbrev_table;52,1680 @@ -188,18 +188,29 @@ Lisp_Object Vlast_abbrev_text;75,2319 int last_abbrev_point;79,2409 Lisp_Object Vpre_abbrev_expand_hook,83,2482 Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;83,2482 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,85,2546 DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table85,2546 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,92,2738 DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table92,2738 +DEFUN ("define-abbrev", Fdefine_abbrev,107,3119 DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev107,3119 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,149,4438 DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev149,4438 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,160,4809 DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev160,4809 +DEFUN ("abbrev-symbol", Fabbrev_symbol,174,5277 DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol174,5277 +DEFUN ("abbrev-expansion", Fabbrev_expansion,202,6241 DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion202,6241 +DEFUN ("expand-abbrev", Fexpand_abbrev,218,6756 DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev218,6756 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,389,11677 DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev389,11677 write_abbrev 426,12884 describe_abbrev 445,13319 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,466,13834 DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description466,13834 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,506,14990 DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table506,14990 syms_of_abbrev 540,16067 @@ -942,7 +953,7 @@ typedef enum { RECC_ERROR 609,22953 } re_wctype_t;618,23260 typedef int re_wchar_t;623,23387 -c-src/emacs/src/keyboard.c,13949 +c-src/emacs/src/keyboard.c,15923 volatile int interrupt_input_blocked;76,1808 volatile bool pending_signals;80,1944 #define KBD_BUFFER_SIZE 82,1976 @@ -1018,6 +1029,7 @@ add_command_key 672,21582 recursive_edit_1 697,22406 record_auto_save 742,23848 force_auto_save_soon 751,24016 +DEFUN ("recursive-edit", Frecursive_edit,759,24137 DEFUN ("recursive-edit", Frecursive_edit,recursive-edit759,24137 recursive_edit_unwind 804,25747 any_kboard_state 817,26013 @@ -1034,16 +1046,21 @@ record_single_kboard_state 943,29437 restore_kboard_configuration 952,29621 cmd_error 970,30077 cmd_error_internal 1024,31510 +DEFUN ("command-error-default-function", Fcommand_error_default_function,1043,32030 DEFUN ("command-error-default-function", Fcommand_error_default_function,command-error-default-function1043,32030 command_loop 1094,33916 command_loop_2 1134,35135 top_level_2 1146,35339 top_level_1 1152,35417 +DEFUN ("top-level", Ftop_level,1164,35787 DEFUN ("top-level", Ftop_level,top-level1164,35787 user_error 1183,36288 +DEFUN ("exit-recursive-edit", Fexit_recursive_edit,1189,36429 DEFUN ("exit-recursive-edit", Fexit_recursive_edit,exit-recursive-edit1189,36429 +DEFUN ("abort-recursive-edit", Fabort_recursive_edit,1201,36819 DEFUN ("abort-recursive-edit", Fabort_recursive_edit,abort-recursive-edit1201,36819 tracking_off 1216,37281 +DEFUN ("internal--track-mouse", Ftrack_mouse,1234,37816 DEFUN ("internal--track-mouse", Ftrack_mouse,track-mouse1234,37816 bool ignore_mouse_drag_p;1256,38392 some_mouse_moved 1259,38441 @@ -1107,6 +1124,7 @@ Lisp_Object pending_funcalls;4377,131172 decode_timer 4381,131293 timer_check_2 4414,132246 timer_check 4572,136817 +DEFUN ("current-idle-time", Fcurrent_idle_time,4607,137662 DEFUN ("current-idle-time", Fcurrent_idle_time,current-idle-time4607,137662 static Lisp_Object accent_key_syms;4625,138239 static Lisp_Object func_key_syms;4626,138275 @@ -1153,10 +1171,12 @@ static Lisp_Object modifier_symbols;6327,189449 lispy_modifier_list 6331,189586 #define KEY_TO_CHAR(6353,190252 parse_modifiers 6356,190328 +DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,6399,191517 DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,event-symbol-parse-modifiers6399,191517 apply_modifiers 6422,192391 reorder_modifiers 6491,194720 modify_event_symbol 6536,196528 +DEFUN ("event-convert-list", Fevent_convert_list,6628,199244 DEFUN ("event-convert-list", Fevent_convert_list,event-convert-list6628,199244 parse_solitary_modifier 6695,201135 #define SINGLE_LETTER_MOD(6701,201258 @@ -1225,24 +1245,38 @@ keyremap_step 8811,261450 test_undefined 8867,262934 read_key_sequence 8916,264861 read_key_sequence_vs 9826,295821 +DEFUN ("read-key-sequence", Fread_key_sequence,9885,297294 DEFUN ("read-key-sequence", Fread_key_sequence,read-key-sequence9885,297294 +DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,9938,299982 DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,read-key-sequence-vector9938,299982 detect_input_pending 9950,300488 detect_input_pending_ignore_squeezables 9959,300654 detect_input_pending_run_timers 9967,300870 clear_input_pending 9985,301362 requeued_events_pending_p 9997,301732 +DEFUN ("input-pending-p", Finput_pending_p,10002,301813 DEFUN ("input-pending-p", Finput_pending_p,input-pending-p10002,301813 +DEFUN ("recent-keys", Frecent_keys,10024,302596 DEFUN ("recent-keys", Frecent_keys,recent-keys10024,302596 +DEFUN ("this-command-keys", Fthis_command_keys,10055,303517 DEFUN ("this-command-keys", Fthis_command_keys,this-command-keys10055,303517 +DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,10068,303958 DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,this-command-keys-vector10068,303958 +DEFUN ("this-single-command-keys", Fthis_single_command_keys,10080,304380 DEFUN ("this-single-command-keys", Fthis_single_command_keys,this-single-command-keys10080,304380 +DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,10096,304955 DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,this-single-command-raw-keys10096,304955 +DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,10109,305495 DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,reset-this-command-lengths10109,305495 +DEFUN ("clear-this-command-keys", Fclear_this_command_keys,10136,306510 DEFUN ("clear-this-command-keys", Fclear_this_command_keys,clear-this-command-keys10136,306510 +DEFUN ("recursion-depth", Frecursion_depth,10158,307069 DEFUN ("recursion-depth", Frecursion_depth,recursion-depth10158,307069 +DEFUN ("open-dribble-file", Fopen_dribble_file,10169,307406 DEFUN ("open-dribble-file", Fopen_dribble_file,open-dribble-file10169,307406 +DEFUN ("discard-input", Fdiscard_input,10203,308447 DEFUN ("discard-input", Fdiscard_input,discard-input10203,308447 +DEFUN ("suspend-emacs", Fsuspend_emacs,10225,308949 DEFUN ("suspend-emacs", Fsuspend_emacs,suspend-emacs10225,308949 stuff_buffered_input 10285,311045 set_waiting_for_input 10323,312016 @@ -1252,13 +1286,21 @@ deliver_interrupt_signal 10378,313642 static int volatile force_quit_count;10387,313932 handle_interrupt 10401,314414 quit_throw_to_read_char 10541,318711 +DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,10562,319288 DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,set-input-interrupt-mode10562,319288 +DEFUN ("set-output-flow-control", Fset_output_flow_control,10609,320516 DEFUN ("set-output-flow-control", Fset_output_flow_control,set-output-flow-control10609,320516 +DEFUN ("set-input-meta-mode", Fset_input_meta_mode,10643,321432 DEFUN ("set-input-meta-mode", Fset_input_meta_mode,set-input-meta-mode10643,321432 +DEFUN ("set-quit-char", Fset_quit_char,10694,322706 DEFUN ("set-quit-char", Fset_quit_char,set-quit-char10694,322706 +DEFUN ("set-input-mode", Fset_input_mode,10729,323570 DEFUN ("set-input-mode", Fset_input_mode,set-input-mode10729,323570 +DEFUN ("current-input-mode", Fcurrent_input_mode,10750,324459 DEFUN ("current-input-mode", Fcurrent_input_mode,current-input-mode10750,324459 +DEFUN ("posn-at-x-y", Fposn_at_x_y,10787,325837 DEFUN ("posn-at-x-y", Fposn_at_x_y,posn-at-x-y10787,325837 +DEFUN ("posn-at-point", Fposn_at_point,10824,327060 DEFUN ("posn-at-point", Fposn_at_point,posn-at-point10824,327060 init_kboard 10861,328214 allocate_kboard 10893,329284 @@ -4179,7 +4221,7 @@ void bar(5,69 int foobar(6,94 interface_locate(9,131 -c.c,1963 +c.c,2107 my_printf 135, void fatala 138, max 141, @@ -4224,8 +4266,11 @@ short array[array190, int f193, DEAFUN 196, XDEFUN 203, +DEFUN ("x-get-selection-internal", Fx_get_selection_internal,206, DEFUN ("x-get-selection-internal", Fx_get_selection_internal,x-get-selection-internal206, + Fx_get_selection_internal,212, Fx_get_selection_internal,x-get-selection-internal212, + Fy_get_selection_internal,216, Fy_get_selection_internal,y-get-selection-internal216, defun_func1(218, DEFUN_func2(220, diff --git a/test/etags/ETAGS.good_4 b/test/etags/ETAGS.good_4 index 12e2a65..9db5e38 100644 --- a/test/etags/ETAGS.good_4 +++ b/test/etags/ETAGS.good_4 @@ -175,7 +175,7 @@ package body Truc.Bidule Truc.Bidule/b138,2153 protected body Bidule Bidule/b139,2181 protected body Machin_T Machin_T/b146,2281 -c-src/abbrev.c,2634 +c-src/abbrev.c,3274 Lisp_Object Vabbrev_table_name_list;43,1424 Lisp_Object Vglobal_abbrev_table;48,1569 Lisp_Object Vfundamental_mode_abbrev_table;52,1680 @@ -188,18 +188,29 @@ Lisp_Object Vlast_abbrev_text;75,2319 int last_abbrev_point;79,2409 Lisp_Object Vpre_abbrev_expand_hook,83,2482 Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;83,2482 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,85,2546 DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table85,2546 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,92,2738 DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table92,2738 +DEFUN ("define-abbrev", Fdefine_abbrev,107,3119 DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev107,3119 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,149,4438 DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev149,4438 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,160,4809 DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev160,4809 +DEFUN ("abbrev-symbol", Fabbrev_symbol,174,5277 DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol174,5277 +DEFUN ("abbrev-expansion", Fabbrev_expansion,202,6241 DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion202,6241 +DEFUN ("expand-abbrev", Fexpand_abbrev,218,6756 DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev218,6756 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,389,11677 DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev389,11677 write_abbrev 426,12884 describe_abbrev 445,13319 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,466,13834 DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description466,13834 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,506,14990 DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table506,14990 syms_of_abbrev 540,16067 DEFVAR_LISP ("abbrev-table-name-list"542,16087 @@ -852,7 +863,7 @@ typedef enum { RECC_ERROR 609,22953 } re_wctype_t;618,23260 typedef int re_wchar_t;623,23387 -c-src/emacs/src/keyboard.c,20957 +c-src/emacs/src/keyboard.c,22931 volatile int interrupt_input_blocked;76,1808 volatile bool pending_signals;80,1944 #define KBD_BUFFER_SIZE 82,1976 @@ -928,6 +939,7 @@ add_command_key 672,21582 recursive_edit_1 697,22406 record_auto_save 742,23848 force_auto_save_soon 751,24016 +DEFUN ("recursive-edit", Frecursive_edit,759,24137 DEFUN ("recursive-edit", Frecursive_edit,recursive-edit759,24137 recursive_edit_unwind 804,25747 any_kboard_state 817,26013 @@ -942,16 +954,21 @@ record_single_kboard_state 943,29437 restore_kboard_configuration 952,29621 cmd_error 970,30077 cmd_error_internal 1024,31510 +DEFUN ("command-error-default-function", Fcommand_error_default_function,1043,32030 DEFUN ("command-error-default-function", Fcommand_error_default_function,command-error-default-function1043,32030 command_loop 1094,33916 command_loop_2 1134,35135 top_level_2 1146,35339 top_level_1 1152,35417 +DEFUN ("top-level", Ftop_level,1164,35787 DEFUN ("top-level", Ftop_level,top-level1164,35787 user_error 1183,36288 +DEFUN ("exit-recursive-edit", Fexit_recursive_edit,1189,36429 DEFUN ("exit-recursive-edit", Fexit_recursive_edit,exit-recursive-edit1189,36429 +DEFUN ("abort-recursive-edit", Fabort_recursive_edit,1201,36819 DEFUN ("abort-recursive-edit", Fabort_recursive_edit,abort-recursive-edit1201,36819 tracking_off 1216,37281 +DEFUN ("internal--track-mouse", Ftrack_mouse,1234,37816 DEFUN ("internal--track-mouse", Ftrack_mouse,track-mouse1234,37816 bool ignore_mouse_drag_p;1256,38392 some_mouse_moved 1259,38441 @@ -1015,6 +1032,7 @@ Lisp_Object pending_funcalls;4377,131172 decode_timer 4381,131293 timer_check_2 4414,132246 timer_check 4572,136817 +DEFUN ("current-idle-time", Fcurrent_idle_time,4607,137662 DEFUN ("current-idle-time", Fcurrent_idle_time,current-idle-time4607,137662 static Lisp_Object accent_key_syms;4625,138239 static Lisp_Object func_key_syms;4626,138275 @@ -1061,10 +1079,12 @@ static Lisp_Object modifier_symbols;6327,189449 lispy_modifier_list 6331,189586 #define KEY_TO_CHAR(6353,190252 parse_modifiers 6356,190328 +DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,6399,191517 DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,event-symbol-parse-modifiers6399,191517 apply_modifiers 6422,192391 reorder_modifiers 6491,194720 modify_event_symbol 6536,196528 +DEFUN ("event-convert-list", Fevent_convert_list,6628,199244 DEFUN ("event-convert-list", Fevent_convert_list,event-convert-list6628,199244 parse_solitary_modifier 6695,201135 #define SINGLE_LETTER_MOD(6701,201258 @@ -1125,24 +1145,38 @@ keyremap_step 8811,261450 test_undefined 8867,262934 read_key_sequence 8916,264861 read_key_sequence_vs 9826,295821 +DEFUN ("read-key-sequence", Fread_key_sequence,9885,297294 DEFUN ("read-key-sequence", Fread_key_sequence,read-key-sequence9885,297294 +DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,9938,299982 DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,read-key-sequence-vector9938,299982 detect_input_pending 9950,300488 detect_input_pending_ignore_squeezables 9959,300654 detect_input_pending_run_timers 9967,300870 clear_input_pending 9985,301362 requeued_events_pending_p 9997,301732 +DEFUN ("input-pending-p", Finput_pending_p,10002,301813 DEFUN ("input-pending-p", Finput_pending_p,input-pending-p10002,301813 +DEFUN ("recent-keys", Frecent_keys,10024,302596 DEFUN ("recent-keys", Frecent_keys,recent-keys10024,302596 +DEFUN ("this-command-keys", Fthis_command_keys,10055,303517 DEFUN ("this-command-keys", Fthis_command_keys,this-command-keys10055,303517 +DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,10068,303958 DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,this-command-keys-vector10068,303958 +DEFUN ("this-single-command-keys", Fthis_single_command_keys,10080,304380 DEFUN ("this-single-command-keys", Fthis_single_command_keys,this-single-command-keys10080,304380 +DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,10096,304955 DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,this-single-command-raw-keys10096,304955 +DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,10109,305495 DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,reset-this-command-lengths10109,305495 +DEFUN ("clear-this-command-keys", Fclear_this_command_keys,10136,306510 DEFUN ("clear-this-command-keys", Fclear_this_command_keys,clear-this-command-keys10136,306510 +DEFUN ("recursion-depth", Frecursion_depth,10158,307069 DEFUN ("recursion-depth", Frecursion_depth,recursion-depth10158,307069 +DEFUN ("open-dribble-file", Fopen_dribble_file,10169,307406 DEFUN ("open-dribble-file", Fopen_dribble_file,open-dribble-file10169,307406 +DEFUN ("discard-input", Fdiscard_input,10203,308447 DEFUN ("discard-input", Fdiscard_input,discard-input10203,308447 +DEFUN ("suspend-emacs", Fsuspend_emacs,10225,308949 DEFUN ("suspend-emacs", Fsuspend_emacs,suspend-emacs10225,308949 stuff_buffered_input 10285,311045 set_waiting_for_input 10323,312016 @@ -1152,13 +1186,21 @@ deliver_interrupt_signal 10378,313642 static int volatile force_quit_count;10387,313932 handle_interrupt 10401,314414 quit_throw_to_read_char 10541,318711 +DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,10562,319288 DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,set-input-interrupt-mode10562,319288 +DEFUN ("set-output-flow-control", Fset_output_flow_control,10609,320516 DEFUN ("set-output-flow-control", Fset_output_flow_control,set-output-flow-control10609,320516 +DEFUN ("set-input-meta-mode", Fset_input_meta_mode,10643,321432 DEFUN ("set-input-meta-mode", Fset_input_meta_mode,set-input-meta-mode10643,321432 +DEFUN ("set-quit-char", Fset_quit_char,10694,322706 DEFUN ("set-quit-char", Fset_quit_char,set-quit-char10694,322706 +DEFUN ("set-input-mode", Fset_input_mode,10729,323570 DEFUN ("set-input-mode", Fset_input_mode,set-input-mode10729,323570 +DEFUN ("current-input-mode", Fcurrent_input_mode,10750,324459 DEFUN ("current-input-mode", Fcurrent_input_mode,current-input-mode10750,324459 +DEFUN ("posn-at-x-y", Fposn_at_x_y,10787,325837 DEFUN ("posn-at-x-y", Fposn_at_x_y,posn-at-x-y10787,325837 +DEFUN ("posn-at-point", Fposn_at_point,10824,327060 DEFUN ("posn-at-point", Fposn_at_point,posn-at-point10824,327060 init_kboard 10861,328214 allocate_kboard 10893,329284 @@ -3996,7 +4038,7 @@ void bar(5,69 int foobar(6,94 interface_locate(9,131 -c.c,1663 +c.c,1807 my_printf 135, void fatala 138, max 141, @@ -4026,8 +4068,11 @@ short array[array190, int f193, DEAFUN 196, XDEFUN 203, +DEFUN ("x-get-selection-internal", Fx_get_selection_internal,206, DEFUN ("x-get-selection-internal", Fx_get_selection_internal,x-get-selection-internal206, + Fx_get_selection_internal,212, Fx_get_selection_internal,x-get-selection-internal212, + Fy_get_selection_internal,216, Fy_get_selection_internal,y-get-selection-internal216, defun_func1(218, DEFUN_func2(220, diff --git a/test/etags/ETAGS.good_5 b/test/etags/ETAGS.good_5 index 98de4f2..982682d 100644 --- a/test/etags/ETAGS.good_5 +++ b/test/etags/ETAGS.good_5 @@ -175,7 +175,7 @@ package body Truc.Bidule Truc.Bidule/b138,2153 protected body Bidule Bidule/b139,2181 protected body Machin_T Machin_T/b146,2281 -c-src/abbrev.c,2634 +c-src/abbrev.c,3274 Lisp_Object Vabbrev_table_name_list;43,1424 Lisp_Object Vglobal_abbrev_table;48,1569 Lisp_Object Vfundamental_mode_abbrev_table;52,1680 @@ -188,18 +188,29 @@ Lisp_Object Vlast_abbrev_text;75,2319 int last_abbrev_point;79,2409 Lisp_Object Vpre_abbrev_expand_hook,83,2482 Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;83,2482 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,85,2546 DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table85,2546 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,92,2738 DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table92,2738 +DEFUN ("define-abbrev", Fdefine_abbrev,107,3119 DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev107,3119 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,149,4438 DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev149,4438 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,160,4809 DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev160,4809 +DEFUN ("abbrev-symbol", Fabbrev_symbol,174,5277 DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol174,5277 +DEFUN ("abbrev-expansion", Fabbrev_expansion,202,6241 DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion202,6241 +DEFUN ("expand-abbrev", Fexpand_abbrev,218,6756 DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev218,6756 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,389,11677 DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev389,11677 write_abbrev 426,12884 describe_abbrev 445,13319 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,466,13834 DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description466,13834 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,506,14990 DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table506,14990 syms_of_abbrev 540,16067 DEFVAR_LISP ("abbrev-table-name-list"542,16087 @@ -1118,7 +1129,7 @@ extern re_wctype_t re_wctype 621,23329 typedef int re_wchar_t;623,23387 extern void re_set_whitespace_regexp 625,23412 -c-src/emacs/src/keyboard.c,23269 +c-src/emacs/src/keyboard.c,25243 volatile int interrupt_input_blocked;76,1808 volatile bool pending_signals;80,1944 #define KBD_BUFFER_SIZE 82,1976 @@ -1225,6 +1236,7 @@ add_command_key 672,21582 recursive_edit_1 697,22406 record_auto_save 742,23848 force_auto_save_soon 751,24016 +DEFUN ("recursive-edit", Frecursive_edit,759,24137 DEFUN ("recursive-edit", Frecursive_edit,recursive-edit759,24137 recursive_edit_unwind 804,25747 any_kboard_state 817,26013 @@ -1241,6 +1253,7 @@ record_single_kboard_state 943,29437 restore_kboard_configuration 952,29621 cmd_error 970,30077 cmd_error_internal 1024,31510 +DEFUN ("command-error-default-function", Fcommand_error_default_function,1043,32030 DEFUN ("command-error-default-function", Fcommand_error_default_function,command-error-default-function1043,32030 static Lisp_Object command_loop_2 1086,33637 static Lisp_Object top_level_1 1087,33686 @@ -1248,11 +1261,15 @@ command_loop 1094,33916 command_loop_2 1134,35135 top_level_2 1146,35339 top_level_1 1152,35417 +DEFUN ("top-level", Ftop_level,1164,35787 DEFUN ("top-level", Ftop_level,top-level1164,35787 user_error 1183,36288 +DEFUN ("exit-recursive-edit", Fexit_recursive_edit,1189,36429 DEFUN ("exit-recursive-edit", Fexit_recursive_edit,exit-recursive-edit1189,36429 +DEFUN ("abort-recursive-edit", Fabort_recursive_edit,1201,36819 DEFUN ("abort-recursive-edit", Fabort_recursive_edit,abort-recursive-edit1201,36819 tracking_off 1216,37281 +DEFUN ("internal--track-mouse", Ftrack_mouse,1234,37816 DEFUN ("internal--track-mouse", Ftrack_mouse,track-mouse1234,37816 bool ignore_mouse_drag_p;1256,38392 some_mouse_moved 1259,38441 @@ -1320,6 +1337,7 @@ Lisp_Object pending_funcalls;4377,131172 decode_timer 4381,131293 timer_check_2 4414,132246 timer_check 4572,136817 +DEFUN ("current-idle-time", Fcurrent_idle_time,4607,137662 DEFUN ("current-idle-time", Fcurrent_idle_time,current-idle-time4607,137662 static Lisp_Object accent_key_syms;4625,138239 static Lisp_Object func_key_syms;4626,138275 @@ -1366,10 +1384,12 @@ static Lisp_Object modifier_symbols;6327,189449 lispy_modifier_list 6331,189586 #define KEY_TO_CHAR(6353,190252 parse_modifiers 6356,190328 +DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,6399,191517 DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,event-symbol-parse-modifiers6399,191517 apply_modifiers 6422,192391 reorder_modifiers 6491,194720 modify_event_symbol 6536,196528 +DEFUN ("event-convert-list", Fevent_convert_list,6628,199244 DEFUN ("event-convert-list", Fevent_convert_list,event-convert-list6628,199244 parse_solitary_modifier 6695,201135 #define SINGLE_LETTER_MOD(6701,201258 @@ -1443,24 +1463,38 @@ keyremap_step 8811,261450 test_undefined 8867,262934 read_key_sequence 8916,264861 read_key_sequence_vs 9826,295821 +DEFUN ("read-key-sequence", Fread_key_sequence,9885,297294 DEFUN ("read-key-sequence", Fread_key_sequence,read-key-sequence9885,297294 +DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,9938,299982 DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,read-key-sequence-vector9938,299982 detect_input_pending 9950,300488 detect_input_pending_ignore_squeezables 9959,300654 detect_input_pending_run_timers 9967,300870 clear_input_pending 9985,301362 requeued_events_pending_p 9997,301732 +DEFUN ("input-pending-p", Finput_pending_p,10002,301813 DEFUN ("input-pending-p", Finput_pending_p,input-pending-p10002,301813 +DEFUN ("recent-keys", Frecent_keys,10024,302596 DEFUN ("recent-keys", Frecent_keys,recent-keys10024,302596 +DEFUN ("this-command-keys", Fthis_command_keys,10055,303517 DEFUN ("this-command-keys", Fthis_command_keys,this-command-keys10055,303517 +DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,10068,303958 DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,this-command-keys-vector10068,303958 +DEFUN ("this-single-command-keys", Fthis_single_command_keys,10080,304380 DEFUN ("this-single-command-keys", Fthis_single_command_keys,this-single-command-keys10080,304380 +DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,10096,304955 DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,this-single-command-raw-keys10096,304955 +DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,10109,305495 DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,reset-this-command-lengths10109,305495 +DEFUN ("clear-this-command-keys", Fclear_this_command_keys,10136,306510 DEFUN ("clear-this-command-keys", Fclear_this_command_keys,clear-this-command-keys10136,306510 +DEFUN ("recursion-depth", Frecursion_depth,10158,307069 DEFUN ("recursion-depth", Frecursion_depth,recursion-depth10158,307069 +DEFUN ("open-dribble-file", Fopen_dribble_file,10169,307406 DEFUN ("open-dribble-file", Fopen_dribble_file,open-dribble-file10169,307406 +DEFUN ("discard-input", Fdiscard_input,10203,308447 DEFUN ("discard-input", Fdiscard_input,discard-input10203,308447 +DEFUN ("suspend-emacs", Fsuspend_emacs,10225,308949 DEFUN ("suspend-emacs", Fsuspend_emacs,suspend-emacs10225,308949 stuff_buffered_input 10285,311045 set_waiting_for_input 10323,312016 @@ -1470,13 +1504,21 @@ deliver_interrupt_signal 10378,313642 static int volatile force_quit_count;10387,313932 handle_interrupt 10401,314414 quit_throw_to_read_char 10541,318711 +DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,10562,319288 DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,set-input-interrupt-mode10562,319288 +DEFUN ("set-output-flow-control", Fset_output_flow_control,10609,320516 DEFUN ("set-output-flow-control", Fset_output_flow_control,set-output-flow-control10609,320516 +DEFUN ("set-input-meta-mode", Fset_input_meta_mode,10643,321432 DEFUN ("set-input-meta-mode", Fset_input_meta_mode,set-input-meta-mode10643,321432 +DEFUN ("set-quit-char", Fset_quit_char,10694,322706 DEFUN ("set-quit-char", Fset_quit_char,set-quit-char10694,322706 +DEFUN ("set-input-mode", Fset_input_mode,10729,323570 DEFUN ("set-input-mode", Fset_input_mode,set-input-mode10729,323570 +DEFUN ("current-input-mode", Fcurrent_input_mode,10750,324459 DEFUN ("current-input-mode", Fcurrent_input_mode,current-input-mode10750,324459 +DEFUN ("posn-at-x-y", Fposn_at_x_y,10787,325837 DEFUN ("posn-at-x-y", Fposn_at_x_y,posn-at-x-y10787,325837 +DEFUN ("posn-at-point", Fposn_at_point,10824,327060 DEFUN ("posn-at-point", Fposn_at_point,posn-at-point10824,327060 init_kboard 10861,328214 allocate_kboard 10893,329284 @@ -4913,7 +4955,7 @@ void bar(5,69 int foobar(6,94 interface_locate(9,131 -c.c,2136 +c.c,2280 void (*fa)fa131, void 132, my_printf 135, @@ -4965,8 +5007,11 @@ short array[array190, int f193, DEAFUN 196, XDEFUN 203, +DEFUN ("x-get-selection-internal", Fx_get_selection_internal,206, DEFUN ("x-get-selection-internal", Fx_get_selection_internal,x-get-selection-internal206, + Fx_get_selection_internal,212, Fx_get_selection_internal,x-get-selection-internal212, + Fy_get_selection_internal,216, Fy_get_selection_internal,y-get-selection-internal216, defun_func1(218, DEFUN_func2(220, diff --git a/test/etags/ETAGS.good_6 b/test/etags/ETAGS.good_6 index f5e0ad4..cf402ae 100644 --- a/test/etags/ETAGS.good_6 +++ b/test/etags/ETAGS.good_6 @@ -175,7 +175,7 @@ package body Truc.Bidule Truc.Bidule/b138,2153 protected body Bidule Bidule/b139,2181 protected body Machin_T Machin_T/b146,2281 -c-src/abbrev.c,2634 +c-src/abbrev.c,3274 Lisp_Object Vabbrev_table_name_list;43,1424 Lisp_Object Vglobal_abbrev_table;48,1569 Lisp_Object Vfundamental_mode_abbrev_table;52,1680 @@ -188,18 +188,29 @@ Lisp_Object Vlast_abbrev_text;75,2319 int last_abbrev_point;79,2409 Lisp_Object Vpre_abbrev_expand_hook,83,2482 Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;83,2482 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,85,2546 DEFUN ("make-abbrev-table", Fmake_abbrev_table,make-abbrev-table85,2546 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,92,2738 DEFUN ("clear-abbrev-table", Fclear_abbrev_table,clear-abbrev-table92,2738 +DEFUN ("define-abbrev", Fdefine_abbrev,107,3119 DEFUN ("define-abbrev", Fdefine_abbrev,define-abbrev107,3119 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,149,4438 DEFUN ("define-global-abbrev", Fdefine_global_abbrev,define-global-abbrev149,4438 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,160,4809 DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,define-mode-abbrev160,4809 +DEFUN ("abbrev-symbol", Fabbrev_symbol,174,5277 DEFUN ("abbrev-symbol", Fabbrev_symbol,abbrev-symbol174,5277 +DEFUN ("abbrev-expansion", Fabbrev_expansion,202,6241 DEFUN ("abbrev-expansion", Fabbrev_expansion,abbrev-expansion202,6241 +DEFUN ("expand-abbrev", Fexpand_abbrev,218,6756 DEFUN ("expand-abbrev", Fexpand_abbrev,expand-abbrev218,6756 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,389,11677 DEFUN ("unexpand-abbrev", Funexpand_abbrev,unexpand-abbrev389,11677 write_abbrev 426,12884 describe_abbrev 445,13319 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,466,13834 DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,insert-abbrev-table-description466,13834 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,506,14990 DEFUN ("define-abbrev-table", Fdefine_abbrev_table,define-abbrev-table506,14990 syms_of_abbrev 540,16067 DEFVAR_LISP ("abbrev-table-name-list"542,16087 @@ -1118,7 +1129,7 @@ extern re_wctype_t re_wctype 621,23329 typedef int re_wchar_t;623,23387 extern void re_set_whitespace_regexp 625,23412 -c-src/emacs/src/keyboard.c,23269 +c-src/emacs/src/keyboard.c,25243 volatile int interrupt_input_blocked;76,1808 volatile bool pending_signals;80,1944 #define KBD_BUFFER_SIZE 82,1976 @@ -1225,6 +1236,7 @@ add_command_key 672,21582 recursive_edit_1 697,22406 record_auto_save 742,23848 force_auto_save_soon 751,24016 +DEFUN ("recursive-edit", Frecursive_edit,759,24137 DEFUN ("recursive-edit", Frecursive_edit,recursive-edit759,24137 recursive_edit_unwind 804,25747 any_kboard_state 817,26013 @@ -1241,6 +1253,7 @@ record_single_kboard_state 943,29437 restore_kboard_configuration 952,29621 cmd_error 970,30077 cmd_error_internal 1024,31510 +DEFUN ("command-error-default-function", Fcommand_error_default_function,1043,32030 DEFUN ("command-error-default-function", Fcommand_error_default_function,command-error-default-function1043,32030 static Lisp_Object command_loop_2 1086,33637 static Lisp_Object top_level_1 1087,33686 @@ -1248,11 +1261,15 @@ command_loop 1094,33916 command_loop_2 1134,35135 top_level_2 1146,35339 top_level_1 1152,35417 +DEFUN ("top-level", Ftop_level,1164,35787 DEFUN ("top-level", Ftop_level,top-level1164,35787 user_error 1183,36288 +DEFUN ("exit-recursive-edit", Fexit_recursive_edit,1189,36429 DEFUN ("exit-recursive-edit", Fexit_recursive_edit,exit-recursive-edit1189,36429 +DEFUN ("abort-recursive-edit", Fabort_recursive_edit,1201,36819 DEFUN ("abort-recursive-edit", Fabort_recursive_edit,abort-recursive-edit1201,36819 tracking_off 1216,37281 +DEFUN ("internal--track-mouse", Ftrack_mouse,1234,37816 DEFUN ("internal--track-mouse", Ftrack_mouse,track-mouse1234,37816 bool ignore_mouse_drag_p;1256,38392 some_mouse_moved 1259,38441 @@ -1320,6 +1337,7 @@ Lisp_Object pending_funcalls;4377,131172 decode_timer 4381,131293 timer_check_2 4414,132246 timer_check 4572,136817 +DEFUN ("current-idle-time", Fcurrent_idle_time,4607,137662 DEFUN ("current-idle-time", Fcurrent_idle_time,current-idle-time4607,137662 static Lisp_Object accent_key_syms;4625,138239 static Lisp_Object func_key_syms;4626,138275 @@ -1366,10 +1384,12 @@ static Lisp_Object modifier_symbols;6327,189449 lispy_modifier_list 6331,189586 #define KEY_TO_CHAR(6353,190252 parse_modifiers 6356,190328 +DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,6399,191517 DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,event-symbol-parse-modifiers6399,191517 apply_modifiers 6422,192391 reorder_modifiers 6491,194720 modify_event_symbol 6536,196528 +DEFUN ("event-convert-list", Fevent_convert_list,6628,199244 DEFUN ("event-convert-list", Fevent_convert_list,event-convert-list6628,199244 parse_solitary_modifier 6695,201135 #define SINGLE_LETTER_MOD(6701,201258 @@ -1443,24 +1463,38 @@ keyremap_step 8811,261450 test_undefined 8867,262934 read_key_sequence 8916,264861 read_key_sequence_vs 9826,295821 +DEFUN ("read-key-sequence", Fread_key_sequence,9885,297294 DEFUN ("read-key-sequence", Fread_key_sequence,read-key-sequence9885,297294 +DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,9938,299982 DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,read-key-sequence-vector9938,299982 detect_input_pending 9950,300488 detect_input_pending_ignore_squeezables 9959,300654 detect_input_pending_run_timers 9967,300870 clear_input_pending 9985,301362 requeued_events_pending_p 9997,301732 +DEFUN ("input-pending-p", Finput_pending_p,10002,301813 DEFUN ("input-pending-p", Finput_pending_p,input-pending-p10002,301813 +DEFUN ("recent-keys", Frecent_keys,10024,302596 DEFUN ("recent-keys", Frecent_keys,recent-keys10024,302596 +DEFUN ("this-command-keys", Fthis_command_keys,10055,303517 DEFUN ("this-command-keys", Fthis_command_keys,this-command-keys10055,303517 +DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,10068,303958 DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,this-command-keys-vector10068,303958 +DEFUN ("this-single-command-keys", Fthis_single_command_keys,10080,304380 DEFUN ("this-single-command-keys", Fthis_single_command_keys,this-single-command-keys10080,304380 +DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,10096,304955 DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,this-single-command-raw-keys10096,304955 +DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,10109,305495 DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,reset-this-command-lengths10109,305495 +DEFUN ("clear-this-command-keys", Fclear_this_command_keys,10136,306510 DEFUN ("clear-this-command-keys", Fclear_this_command_keys,clear-this-command-keys10136,306510 +DEFUN ("recursion-depth", Frecursion_depth,10158,307069 DEFUN ("recursion-depth", Frecursion_depth,recursion-depth10158,307069 +DEFUN ("open-dribble-file", Fopen_dribble_file,10169,307406 DEFUN ("open-dribble-file", Fopen_dribble_file,open-dribble-file10169,307406 +DEFUN ("discard-input", Fdiscard_input,10203,308447 DEFUN ("discard-input", Fdiscard_input,discard-input10203,308447 +DEFUN ("suspend-emacs", Fsuspend_emacs,10225,308949 DEFUN ("suspend-emacs", Fsuspend_emacs,suspend-emacs10225,308949 stuff_buffered_input 10285,311045 set_waiting_for_input 10323,312016 @@ -1470,13 +1504,21 @@ deliver_interrupt_signal 10378,313642 static int volatile force_quit_count;10387,313932 handle_interrupt 10401,314414 quit_throw_to_read_char 10541,318711 +DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,10562,319288 DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,set-input-interrupt-mode10562,319288 +DEFUN ("set-output-flow-control", Fset_output_flow_control,10609,320516 DEFUN ("set-output-flow-control", Fset_output_flow_control,set-output-flow-control10609,320516 +DEFUN ("set-input-meta-mode", Fset_input_meta_mode,10643,321432 DEFUN ("set-input-meta-mode", Fset_input_meta_mode,set-input-meta-mode10643,321432 +DEFUN ("set-quit-char", Fset_quit_char,10694,322706 DEFUN ("set-quit-char", Fset_quit_char,set-quit-char10694,322706 +DEFUN ("set-input-mode", Fset_input_mode,10729,323570 DEFUN ("set-input-mode", Fset_input_mode,set-input-mode10729,323570 +DEFUN ("current-input-mode", Fcurrent_input_mode,10750,324459 DEFUN ("current-input-mode", Fcurrent_input_mode,current-input-mode10750,324459 +DEFUN ("posn-at-x-y", Fposn_at_x_y,10787,325837 DEFUN ("posn-at-x-y", Fposn_at_x_y,posn-at-x-y10787,325837 +DEFUN ("posn-at-point", Fposn_at_point,10824,327060 DEFUN ("posn-at-point", Fposn_at_point,posn-at-point10824,327060 init_kboard 10861,328214 allocate_kboard 10893,329284 @@ -4913,7 +4955,7 @@ void bar(5,69 int foobar(6,94 interface_locate(9,131 -c.c,2136 +c.c,2280 void (*fa)fa131, void 132, my_printf 135, @@ -4965,8 +5007,11 @@ short array[array190, int f193, DEAFUN 196, XDEFUN 203, +DEFUN ("x-get-selection-internal", Fx_get_selection_internal,206, DEFUN ("x-get-selection-internal", Fx_get_selection_internal,x-get-selection-internal206, + Fx_get_selection_internal,212, Fx_get_selection_internal,x-get-selection-internal212, + Fy_get_selection_internal,216, Fy_get_selection_internal,y-get-selection-internal216, defun_func1(218, DEFUN_func2(220, commit ea1960bf3ccbceb955002837f17b67071789e863 Author: Eli Zaretskii Date: Wed Sep 21 18:00:18 2016 +0300 Avoid resetting track-mouse by mouse clicks * lisp/mouse.el (mouse-drag-line, mouse-drag-track): Don't assume the previous value of track-mouse is nil; instead, save and restore the previous value. (Bug#24480) diff --git a/lisp/mouse.el b/lisp/mouse.el index 27f2acb..d069400 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -481,7 +481,8 @@ must be one of the symbols `header', `mode', or `vertical'." (window-pixel-height window))))) (setq dragged t) (adjust-window-trailing-edge window growth nil t)) - (setq last-position position)))))) + (setq last-position position))))) + (old-track-mouse track-mouse)) ;; Start tracking. The special value 'dragging' signals the ;; display engine to freeze the mouse pointer shape for as long ;; as we drag. @@ -514,7 +515,7 @@ must be one of the symbols `header', `mode', or `vertical'." (define-key map [right-divider] map) (define-key map [bottom-divider] map) map) - t (lambda () (setq track-mouse nil))))))) + t (lambda () (setq track-mouse old-track-mouse))))))) (defun mouse-drag-mode-line (start-event) "Change the height of a window by dragging on the mode line." @@ -825,7 +826,8 @@ The region will be defined with mark and point." (click-count (1- (event-click-count start-event))) ;; Suppress automatic hscrolling, because that is a nuisance ;; when setting point near the right fringe (but see below). - (auto-hscroll-mode-saved auto-hscroll-mode)) + (auto-hscroll-mode-saved auto-hscroll-mode) + (old-track-mouse track-mouse)) (setq mouse-selection-click-count click-count) ;; In case the down click is in the middle of some intangible text, @@ -877,7 +879,7 @@ The region will be defined with mark and point." nil start-point)))))))) map) t (lambda () - (setq track-mouse nil) + (setq track-mouse old-track-mouse) (setq auto-hscroll-mode auto-hscroll-mode-saved) (deactivate-mark) (pop-mark))))) commit 505fef3ede4e242dee30a256f50e4f665a42c3d1 Author: Eli Zaretskii Date: Tue Sep 20 18:25:41 2016 +0300 Improve nt/README.W32 instructions * nt/README.W32: Add instructions for installing 64-bit builds of optional libraries. (Bug#24470) diff --git a/nt/README.W32 b/nt/README.W32 index 71a0738..d16ec8e 100644 --- a/nt/README.W32 +++ b/nt/README.W32 @@ -139,19 +139,21 @@ See the end of the file for license conditions. libraries. These libraries are all available on the following sites: 1. http://sourceforge.net/projects/ezwinports/files/ - -- leaner, more up-to-date builds, only for 32-bit Emacs - 2. http://www.gtk.org/download/win32.php - http://www.gtk.org/download/win64.php - -- the GTK project site; offers much fatter builds, but includes - 64-bit DLLs (from the 2nd URL) - 3. GnuWin32 project -- very old builds, not recommended + -- up-to-date builds, self-contained archives, only for 32-bit Emacs + 2. The MSYS2 project -- for 64-bit Emacs: + http://msys2.github.io/ + https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/ + 3. GnuWin32 project -- very old 32-bit builds, not recommended The libraries to download are mentioned below. Some libraries depend on others that need to be downloaded separately from the same site; please consult the download instructions on each site for the details. In general, the ezwinports site mentioned above has all the dependencies bundled in the same zip archive, so installing from - there is the easiest. + there is the easiest. For MSYS2 builds, we recommend that you + install and use the 'pacman' utility (available from the MSYS2 + site), see the instructions below -- it will automatically install + all the dependencies. Emacs will find these libraries if the directory they are installed in is on the PATH or in the same directory where you have emacs.exe. @@ -210,6 +212,55 @@ See the end of the file for license conditions. You can get pre-built binaries (including any required DLL and the header files) at http://sourceforge.net/projects/ezwinports/files/. +* Installing 64-bit optional libraries from the MSYS2 site + + We recommend that you use the 'pacman' utility to download the + libraries you need and all of their dependencies. If you don't have + 'pacman' installed, proceed as follows: + + . Install the MSYS2 64-bit (x86_64) installer, named + msys2-x86_64-YYYYMMDD.exe (where "YYYYMMDD" is the release date, + like 20160205) from http://msys2.github.io/. + + . Run the installer, select the installation directory, make sure + "Run MSYS2 now" checkbox is checked, and click "Finish". A Bash + window will open. + + . Type into the Bash window the following command: + + pacman -Sy pacman + + When asked whether to proceed with installation, type Y. + + To install the optional libraries, start the MSYS2 Bash window and + type the following command: + + pacman -S PACKAGES + + where PACKAGES is the list of packages you want to install. The + full list is as follows: + + mingw-w64-x86_64-xpm-nox mingw-w64-x86_64-libtiff mingw-w64-x86_64-giflib + mingw-w64-x86_64-libpng mingw-w64-x86_64-libjpeg-turbo + mingw-w64-x86_64-librsvg mingw-w64-x86_64-libxml2 mingw-w64-x86_64-gnutls + mingw-w64-x86_64-zlib + + You can type any subset of this list. Once again, when asked + whether to proceed with installation, answer Y. + + Alternatively, you could install the packages manually from this + page: + + https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/ + + However, the packages there are not self-contained, so you will need + to download all their dependencies as well. + + After the installation, if you will be installing Emacs in a + directory different from where the DLLs were installed, we recommend + to add the directory with DLLs to your PATH, so that Emacs will be + able to find those DLLs. + * Uninstalling Emacs If you should need to uninstall Emacs, simply delete all the files commit 1229cc4ae640ea1fd9fafbb0bd64e72fc07994f8 Author: Eli Zaretskii Date: Sat Sep 17 12:20:09 2016 +0300 Document that desktop file overrides frame parameters * doc/emacs/misc.texi (Saving Emacs Sessions): * doc/emacs/frames.texi (Frame Parameters): Document that frame parameters restored by desktop.el take precedence over the customizations in the init file, and explain how to countermand that. For the details of the issue, see http://lists.gnu.org/archive/html/emacs-devel/2016-09/msg00318.html. diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi index 7e60062..99926dc 100644 --- a/doc/emacs/frames.texi +++ b/doc/emacs/frames.texi @@ -913,6 +913,14 @@ the initial frame, by customizing the variable specify colors and fonts don't affect menus and the menu bar, since those are drawn by the toolkit and not directly by Emacs. + Note that if you are using the desktop library to save and restore +your sessions, the frames to be restored are recorded in the desktop +file, together with their parameters. When these frames are restored, +the recorded parameters take precedence over the frame parameters +specified by @code{default-frame-alist} and @code{initial-frame-alist} +in your init file. @xref{Saving Emacs Sessions}, for how to avoid +that. + @node Scroll Bars @section Scroll Bars @cindex Scroll Bar mode diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index 853b978..a1f611c 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -2325,6 +2325,17 @@ To disable this, set @code{desktop-restore-frames} to @code{nil}. (See that variable's documentation for some related options that you can customize to fine-tune this behavior.) +@vindex frameset-filter-alist + When the desktop restores the frame and window configuration, it +uses the recorded values of frame parameters, disregarding any +settings for those parameters you have in your init file (@pxref{Init +File}). This means that frame parameters such as fonts and faces for +the restored frames will come from the desktop file, where they were +saved when you exited your previous Emacs session; any settings for +those parameters in your init file will be ignored. To disable this, +customize the value of @code{frameset-filter-alist} to filter out the +frame parameters you don't want to be restored. + @findex desktop-save @vindex desktop-save-mode You can save the desktop manually with the command @kbd{M-x commit f0eb70d8935be90f7c03e187c12d9b60e7214cc6 (tag: refs/tags/emacs-25.1) Author: Nicolas Petton Date: Thu Sep 15 23:30:09 2016 +0200 ; Update ChangeLog.2 and ldef-boot.el for Emacs 25.1 release diff --git a/ChangeLog.2 b/ChangeLog.2 index bff2a0d..79f44fd 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -1,3 +1,109 @@ +2016-09-16 Nicolas Petton + + * Version 25.1 released. + +2016-09-15 Nicolas Petton + + * etc/AUTHORS: Regenerate the AUTHORS file + +2016-09-15 Eli Zaretskii + + Update admin/authors.el + + * admin/authors.el (authors-fixed-entries): Add an entry for Bob + Weiner. + +2016-09-14 Eli Zaretskii + + Update Antinews in ELisp manual + + * doc/lispref/anti.texi (Antinews): Update for Emacs 25.1. + * doc/lispref/elisp.texi (Top): Update the main menu entry for + Antinews. + +2016-09-11 Noam Postavsky + + Fix comments on window height macros + + * src/window.h (WINDOW_MODE_LINE_HEIGHT, WINDOW_HEADER_LINE_HEIGHT): Fix + confusing claim that "height is in pixels and in lines"; in fact it's in + pixels. + +2016-09-10 Toke Høiland-Jørgensen (tiny change) + + Fix 'url-http-create-request' when cookies are used + + * lisp/url/url-http.el (url-http-create-request): Make sure the + cookie headers are a unibyte string. For the details, see + http://lists.gnu.org/archive/html/emacs-devel/2016-09/msg00202.html. + +2016-09-08 Martin Rudalics + + Fix cross reference in frames.texi + + * doc/lispref/frames.texi (Minibuffers and Frames): Fix cross + reference. + +2016-09-04 immerrr + + Fix regexp-opt documentation (bug #17862) + + * lisp/emacs-lisp/regexp-opt.el (regexp-opt): + * doc/lispref/searching.texi (Regexp Functions): Update PAREN doc. + +2016-08-31 Nicolas Richard + + * lisp/emacs-lisp/gv.el (gv-ref): Fix example of PLACE in docstring. + +2016-08-27 Noam Postavsky + + Fix tags-query-replace docstring + + * lisp/progmodes/etags.el (tags-query-replace): Remove incorrect info + regarding non-existent parameters. + +2016-08-26 Eli Zaretskii + + Clarify documentation of precision in format specs + + * doc/lispref/strings.texi (Formatting Strings): Be less + definitive wrt what precision means in format specs other than + floating-point, %s and %S. (Bug#24314) + +2016-08-24 Eli Zaretskii + + Improve and clarify documentation of subprocesses + + * doc/lispref/processes.texi (Subprocess Creation, Shell Arguments): + Mention 'make-process' rather than 'start-process'. Update wrt + standard destinations of standard output/error streams and due to + different formats of arguments accepted by 'make-process'. + (Processes): Mention process objects that represent connections. + (Synchronous Processes): Minor clarifications. + (Asynchronous Processes): Describe 'make-process' and + 'make-pipe-process' before 'start-process'. Update and expand the + documentation. + (Deleting Processes, Process Information, Input to Processes) + (Signals to Processes, Query Before Exit, Network): Update and + expand the documentation, especially wrt process objects that + represent connections. + (Output from Processes): Mention the possibility of separating + stderr via 'make-process'. + (Filter Functions): Mention that stderr by default arrives at the + filter function together with stdout. (Bug#24287) + + * src/process.c (Fprocess_id, Fprocess_command) + (Fprocess_contact, Fprocess_type, Fstop_process): Doc fixes for + process objects that represent connections. + +2016-08-23 Paul Eggert + + * etc/PROBLEMS: Mention gnutls-cli 3.5.3 (Bug#24247). + +2016-08-21 Nicolas Petton + + * etc/AUTHORS: Update the AUTHORS file + 2016-08-20 Philipp Stephani Some assorted documentation clarifications @@ -33363,7 +33469,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit 73cbb813cfea53e4162409f2adc0a793ab301894 (inclusive). +commit 0ffc9cef49b0fceb3c5e904837ea5675fe4306ac (inclusive). See ChangeLog.1 for earlier changes. ;; Local Variables: diff --git a/etc/HISTORY b/etc/HISTORY index 8107026..43790bb 100644 --- a/etc/HISTORY +++ b/etc/HISTORY @@ -207,6 +207,8 @@ GNU Emacs 24.4 (2014-10-20) emacs-24.4 GNU Emacs 24.5 (2015-04-10) emacs-24.5 +GNU Emacs 25.1 (2016-09-16) emacs-25.1 + ---------------------------------------------------------------------- This file is part of GNU Emacs. diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 494b754..73163aa 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -3049,8 +3049,8 @@ See the documentation for `calculator-mode' for more information. ;;;*** -;;;### (autoloads nil "calendar" "calendar/calendar.el" (22388 6368 -;;;;;; 10105 200000)) +;;;### (autoloads nil "calendar" "calendar/calendar.el" (22489 43024 +;;;;;; 125096 768000)) ;;; Generated autoloads from calendar/calendar.el (autoload 'calendar "calendar" "\ @@ -9480,8 +9480,8 @@ corresponding to a successful execution. ;;;*** -;;;### (autoloads nil "etags" "progmodes/etags.el" (22388 6386 65282 -;;;;;; 759000)) +;;;### (autoloads nil "etags" "progmodes/etags.el" (22489 43024 128096 +;;;;;; 697000)) ;;; Generated autoloads from progmodes/etags.el (defvar tags-file-name nil "\ @@ -9749,8 +9749,6 @@ Third arg DELIMITED (prefix arg) means replace only word-delimited matches. If you exit (\\[keyboard-quit], RET or q), you can resume the query replace with the command \\[tags-loop-continue]. Fourth arg FILE-LIST-FORM non-nil means initialize the replacement loop. -Fifth and sixth arguments START and END are accepted, for compatibility -with `query-replace-regexp', and ignored. If FILE-LIST-FORM is non-nil, it is a form to evaluate to produce the list of files to search. @@ -13162,8 +13160,8 @@ it if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (22388 6369 428119 -;;;;;; 144000)) +;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (22489 43024 126096 +;;;;;; 745000)) ;;; Generated autoloads from emacs-lisp/gv.el (autoload 'gv-get "gv" "\ @@ -13258,7 +13256,7 @@ The return value is the last VAL in the list. Return a reference to PLACE. This is like the `&' operator of the C language. Note: this only works reliably with lexical binding mode, except for very -simple PLACEs such as (function-symbol \\='foo) which will also work in dynamic +simple PLACEs such as (symbol-function \\='foo) which will also work in dynamic binding mode. \(fn PLACE)" nil t) @@ -23079,24 +23077,50 @@ This enforces rescanning the buffer on next use. ;;;*** -;;;### (autoloads nil "regexp-opt" "emacs-lisp/regexp-opt.el" (22388 -;;;;;; 6369 632121 150000)) +;;;### (autoloads nil "regexp-opt" "emacs-lisp/regexp-opt.el" (22489 +;;;;;; 43024 126096 745000)) ;;; Generated autoloads from emacs-lisp/regexp-opt.el (autoload 'regexp-opt "regexp-opt" "\ Return a regexp to match a string in the list STRINGS. -Each string should be unique in STRINGS and should not contain any regexps, -quoted or not. If optional PAREN is non-nil, ensure that the returned regexp -is enclosed by at least one regexp grouping construct. -The returned regexp is typically more efficient than the equivalent regexp: +Each string should be unique in STRINGS and should not contain +any regexps, quoted or not. Optional PAREN specifies how the +returned regexp is surrounded by grouping constructs. + +The optional argument PAREN can be any of the following: + +a string + the resulting regexp is preceded by PAREN and followed by + \\), e.g. use \"\\\\(?1:\" to produce an explicitly numbered + group. + +`words' + the resulting regexp is surrounded by \\=\\<\\( and \\)\\>. + +`symbols' + the resulting regexp is surrounded by \\_<\\( and \\)\\_>. + +non-nil + the resulting regexp is surrounded by \\( and \\). + +nil + the resulting regexp is surrounded by \\(?: and \\), if it is + necessary to ensure that a postfix operator appended to it will + apply to the whole expression. - (let ((open (if PAREN \"\\\\(\" \"\")) (close (if PAREN \"\\\\)\" \"\"))) - (concat open (mapconcat \\='regexp-quote STRINGS \"\\\\|\") close)) +The resulting regexp is equivalent to but usually more efficient +than that of a simplified version: -If PAREN is `words', then the resulting regexp is additionally surrounded -by \\=\\< and \\>. -If PAREN is `symbols', then the resulting regexp is additionally surrounded -by \\=\\_< and \\_>. + (defun simplified-regexp-opt (strings &optional paren) + (let ((parens + (cond ((stringp paren) (cons paren \"\\\\)\")) + ((eq paren 'words) '(\"\\\\\\=<\\\\(\" . \"\\\\)\\\\>\")) + ((eq paren 'symbols) '(\"\\\\_<\\\\(\" . \"\\\\)\\\\_>\")) + ((null paren) '(\"\\\\(?:\" . \"\\\\)\")) + (t '(\"\\\\(\" . \"\\\\)\"))))) + (concat (car paren) + (mapconcat 'regexp-quote strings \"\\\\|\") + (cdr paren)))) \(fn STRINGS &optional PAREN)" nil nil) @@ -24696,8 +24720,8 @@ Like `mail' command, but display mail buffer in another frame. ;;;*** -;;;### (autoloads nil "seq" "emacs-lisp/seq.el" (22388 6369 666121 -;;;;;; 485000)) +;;;### (autoloads nil "seq" "emacs-lisp/seq.el" (22489 43024 126096 +;;;;;; 745000)) ;;; Generated autoloads from emacs-lisp/seq.el (push (purecopy '(seq 2 3)) package--builtin-versions) @@ -29426,8 +29450,8 @@ if it had been inserted from a file named URL. ;;;*** -;;;### (autoloads nil "url-http" "url/url-http.el" (22457 44247 409108 -;;;;;; 239000)) +;;;### (autoloads nil "url-http" "url/url-http.el" (22489 43024 129096 +;;;;;; 674000)) ;;; Generated autoloads from url/url-http.el (autoload 'url-default-expander "url-expand") @@ -32513,14 +32537,16 @@ Zone out, completely. ;;;;;; "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" -;;;;;; "cedet/semantic/bovine/el.el" "cedet/semantic/bovine/gcc.el" -;;;;;; "cedet/semantic/bovine/make.el" "cedet/semantic/bovine/scm.el" -;;;;;; "cedet/semantic/chart.el" "cedet/semantic/complete.el" "cedet/semantic/ctxt.el" -;;;;;; "cedet/semantic/db-debug.el" "cedet/semantic/db-ebrowse.el" -;;;;;; "cedet/semantic/db-el.el" "cedet/semantic/db-file.el" "cedet/semantic/db-find.el" -;;;;;; "cedet/semantic/db-global.el" "cedet/semantic/db-javascript.el" -;;;;;; "cedet/semantic/db-mode.el" "cedet/semantic/db-ref.el" "cedet/semantic/db-typecache.el" +;;;;;; "cedet/semantic/bovine/c-by.el" "cedet/semantic/bovine/c.el" +;;;;;; "cedet/semantic/bovine/debug.el" "cedet/semantic/bovine/el.el" +;;;;;; "cedet/semantic/bovine/gcc.el" "cedet/semantic/bovine/make-by.el" +;;;;;; "cedet/semantic/bovine/make.el" "cedet/semantic/bovine/scm-by.el" +;;;;;; "cedet/semantic/bovine/scm.el" "cedet/semantic/chart.el" +;;;;;; "cedet/semantic/complete.el" "cedet/semantic/ctxt.el" "cedet/semantic/db-debug.el" +;;;;;; "cedet/semantic/db-ebrowse.el" "cedet/semantic/db-el.el" +;;;;;; "cedet/semantic/db-file.el" "cedet/semantic/db-find.el" "cedet/semantic/db-global.el" +;;;;;; "cedet/semantic/db-javascript.el" "cedet/semantic/db-mode.el" +;;;;;; "cedet/semantic/db-ref.el" "cedet/semantic/db-typecache.el" ;;;;;; "cedet/semantic/db.el" "cedet/semantic/debug.el" "cedet/semantic/decorate.el" ;;;;;; "cedet/semantic/decorate/include.el" "cedet/semantic/decorate/mode.el" ;;;;;; "cedet/semantic/dep.el" "cedet/semantic/doc.el" "cedet/semantic/ede-grammar.el" @@ -32538,20 +32564,22 @@ Zone out, completely. ;;;;;; "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" -;;;;;; "cedet/semantic/wisent/python.el" "cedet/semantic/wisent/wisent.el" -;;;;;; "cedet/srecode/args.el" "cedet/srecode/compile.el" "cedet/srecode/cpp.el" -;;;;;; "cedet/srecode/ctxt.el" "cedet/srecode/dictionary.el" "cedet/srecode/document.el" +;;;;;; "cedet/semantic/wisent/javat-wy.el" "cedet/semantic/wisent/js-wy.el" +;;;;;; "cedet/semantic/wisent/python-wy.el" "cedet/semantic/wisent/python.el" +;;;;;; "cedet/semantic/wisent/wisent.el" "cedet/srecode/args.el" +;;;;;; "cedet/srecode/compile.el" "cedet/srecode/cpp.el" "cedet/srecode/ctxt.el" +;;;;;; "cedet/srecode/dictionary.el" "cedet/srecode/document.el" ;;;;;; "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" "dom.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-macs.el" -;;;;;; "emacs-lisp/cl-seq.el" "emacs-lisp/cl.el" "emacs-lisp/eieio-base.el" -;;;;;; "emacs-lisp/eieio-compat.el" "emacs-lisp/eieio-custom.el" +;;;;;; "cedet/srecode/srt-wy.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" "dom.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-macs.el" "emacs-lisp/cl-seq.el" "emacs-lisp/cl.el" +;;;;;; "emacs-lisp/eieio-base.el" "emacs-lisp/eieio-compat.el" "emacs-lisp/eieio-custom.el" ;;;;;; "emacs-lisp/eieio-datadebug.el" "emacs-lisp/eieio-opt.el" ;;;;;; "emacs-lisp/eieio-speedbar.el" "emacs-lisp/generator.el" ;;;;;; "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el" "emacs-lisp/smie.el" @@ -32591,18 +32619,26 @@ Zone out, completely. ;;;;;; "gnus/nnweb.el" "gnus/registry.el" "gnus/rfc1843.el" "gnus/rfc2045.el" ;;;;;; "gnus/rfc2047.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/charscript.el" +;;;;;; "hfy-cmap.el" "ibuf-ext.el" "international/charprop.el" "international/charscript.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" -;;;;;; "leim/quail/cyrillic.el" "leim/quail/czech.el" "leim/quail/ethiopic.el" -;;;;;; "leim/quail/georgian.el" "leim/quail/greek.el" "leim/quail/hanja-jis.el" -;;;;;; "leim/quail/hanja.el" "leim/quail/hanja3.el" "leim/quail/hebrew.el" -;;;;;; "leim/quail/indian.el" "leim/quail/ipa-praat.el" "leim/quail/ipa.el" -;;;;;; "leim/quail/japanese.el" "leim/quail/lao.el" "leim/quail/latin-alt.el" -;;;;;; "leim/quail/latin-ltx.el" "leim/quail/latin-post.el" "leim/quail/latin-pre.el" -;;;;;; "leim/quail/lrt.el" "leim/quail/persian.el" "leim/quail/programmer-dvorak.el" +;;;;;; "international/ja-dic-utl.el" "international/ogonek.el" "international/uni-bidi.el" +;;;;;; "international/uni-brackets.el" "international/uni-category.el" +;;;;;; "international/uni-combining.el" "international/uni-comment.el" +;;;;;; "international/uni-decimal.el" "international/uni-decomposition.el" +;;;;;; "international/uni-digit.el" "international/uni-lowercase.el" +;;;;;; "international/uni-mirrored.el" "international/uni-name.el" +;;;;;; "international/uni-numeric.el" "international/uni-old-name.el" +;;;;;; "international/uni-titlecase.el" "international/uni-uppercase.el" +;;;;;; "kermit.el" "language/hanja-util.el" "language/thai-word.el" +;;;;;; "ldefs-boot.el" "leim/ja-dic/ja-dic.el" "leim/quail/arabic.el" +;;;;;; "leim/quail/croatian.el" "leim/quail/cyril-jis.el" "leim/quail/cyrillic.el" +;;;;;; "leim/quail/czech.el" "leim/quail/ethiopic.el" "leim/quail/georgian.el" +;;;;;; "leim/quail/greek.el" "leim/quail/hanja-jis.el" "leim/quail/hanja.el" +;;;;;; "leim/quail/hanja3.el" "leim/quail/hebrew.el" "leim/quail/indian.el" +;;;;;; "leim/quail/ipa-praat.el" "leim/quail/ipa.el" "leim/quail/japanese.el" +;;;;;; "leim/quail/lao.el" "leim/quail/latin-alt.el" "leim/quail/latin-ltx.el" +;;;;;; "leim/quail/latin-post.el" "leim/quail/latin-pre.el" "leim/quail/lrt.el" +;;;;;; "leim/quail/persian.el" "leim/quail/programmer-dvorak.el" ;;;;;; "leim/quail/py-punct.el" "leim/quail/pypunct-b5.el" "leim/quail/rfc1345.el" ;;;;;; "leim/quail/sgml-input.el" "leim/quail/sisheng.el" "leim/quail/slovak.el" ;;;;;; "leim/quail/symbol-ksc.el" "leim/quail/tamil-dvorak.el" "leim/quail/thai.el" @@ -32683,7 +32719,7 @@ Zone out, completely. ;;;;;; "vc/ediff-vers.el" "vc/ediff-wind.el" "vc/pcvs-info.el" "vc/pcvs-parse.el" ;;;;;; "vc/pcvs-util.el" "vc/vc-dav.el" "vc/vc-filewise.el" "vcursor.el" ;;;;;; "vt-control.el" "vt100-led.el" "w32-fns.el" "w32-vars.el" -;;;;;; "x-dnd.el") (22458 6108 204266 576000)) +;;;;;; "x-dnd.el") (22491 3984 174622 61000)) ;;;*** commit 8d0ff839a5e3d1fbb25b16ad86bf37ccd2f6b291 Author: Nicolas Petton Date: Thu Sep 15 23:08:14 2016 +0200 * etc/AUTHORS: Regenerate the AUTHORS file diff --git a/etc/AUTHORS b/etc/AUTHORS index 0b300d0..215f22a 100644 --- a/etc/AUTHORS +++ b/etc/AUTHORS @@ -241,7 +241,7 @@ Andreas Rottmann: changed emacsclient.1 emacsclient.c misc.texi server.el Andreas Schwab: changed configure.ac lisp.h process.c xdisp.c alloc.c coding.c Makefile.in files.el fileio.c keyboard.c xterm.c lread.c editfns.c emacs.c fns.c src/Makefile.in print.c eval.c font.c xfns.c - sysdep.c and 636 other files + sysdep.c and 637 other files Andreas Seltenreich: changed nnweb.el gnus.texi message.el gnus-sum.el gnus.el nnslashdot.el gnus-srvr.el gnus-util.el mm-url.el mm-uu.el @@ -486,7 +486,8 @@ Bob Rogers: changed vc-dir.el vc-svn.el cperl-mode.el diff.el ewoc.el ffap.el files.el maintaining.texi sql.el thingatpt.el vc.el vc1-xtra.texi -Bob Weiner: changed info.el quail.el +Bob Weiner: changed info.el quail.el dframe.el etags.c rmail.el + rmailsum.el speedbar.el Bojan Petrovic: changed pop3.el @@ -626,7 +627,7 @@ and co-wrote longlines.el tango-dark-theme.el tango-theme.el and changed simple.el display.texi xdisp.c files.el frames.texi cus-edit.el files.texi custom.el subr.el text.texi faces.el keyboard.c startup.el package.el misc.texi emacs.texi modes.texi mouse.el - custom.texi image.c window.el and 945 other files + custom.texi image.c window.el and 947 other files Chris Chase: co-wrote idlw-shell.el idlwave.el @@ -1244,7 +1245,7 @@ Eli Zaretskii: wrote [bidirectional display in xdisp.c] and changed xdisp.c msdos.c w32.c w32fns.c display.texi files.el fileio.c simple.el w32proc.c keyboard.c w32term.c dispnew.c emacs.c dispextern.h config.bat sed1v2.inp src/Makefile.in term.c window.c INSTALL - frames.texi and 993 other files + frames.texi and 995 other files Emanuele Giaquinta: changed configure.ac rxvt.el charset.c etags.c fontset.c frame.el gnus-faq.texi loadup.el lread.c sh-script.el @@ -1327,7 +1328,7 @@ and changed c.srt ede.texi info.el rmail.el speedbspec.el cedet.el ede-autoconf.srt ede-make.srt eieio.texi gud.el sb-dir-minus.xpm sb-dir-plus.xpm sb-dir.xpm sb-mail.xpm sb-pg-minus.xpm sb-pg-plus.xpm sb-pg.xpm sb-tag-gt.xpm sb-tag-minus.xpm sb-tag-plus.xpm - sb-tag-type.xpm and 33 other files + sb-tag-type.xpm and 34 other files Eric Schulte: wrote ob-C.el ob-asymptote.el ob-awk.el ob-calc.el ob-comint.el ob-css.el ob-ditaa.el ob-dot.el ob-emacs-lisp.el @@ -1607,7 +1608,7 @@ and changed configure.ac Makefile.in src/Makefile.in calendar.el diary-lib.el lisp/Makefile.in files.el rmail.el progmodes/f90.el make-dist simple.el bytecomp.el emacs.texi misc/Makefile.in ack.texi authors.el lib-src/Makefile.in startup.el admin.el cal-menu.el - calendar.texi and 1600 other files + calendar.texi and 1602 other files Glynn Clements: wrote gamegrid.el snake.el tetris.el @@ -2354,7 +2355,7 @@ Juri Linkov: wrote files-x.el misearch.el occur-tests.el and changed isearch.el info.el replace.el simple.el progmodes/grep.el dired-aux.el dired.el progmodes/compile.el startup.el faces.el files.el menu-bar.el bindings.el display.texi descr-text.el desktop.el comint.el - image-mode.el ispell.el man.el cus-edit.el and 355 other files + image-mode.el ispell.el man.el cus-edit.el and 356 other files Jussi Lahdenniemi: changed ms-w32.h w32.c w32.h w32fns.c w32heap.c @@ -2373,7 +2374,7 @@ and co-wrote longlines.el tramp-sh.el tramp.el and changed message.el gnus-agent.el gnus-sum.el files.el nnmail.el tramp.texi nntp.el gnus.el simple.el ange-ftp.el dired.el paragraphs.el bindings.el files.texi gnus-art.el gnus-group.el man.el INSTALL - Makefile.in crisp.el fileio.c and 44 other files + Makefile.in crisp.el fileio.c and 45 other files Kailash C. Chowksey: changed HELLO ind-util.el kannada.el knd-util.el lisp/Makefile.in loadup.el @@ -2746,7 +2747,7 @@ Luc Teirlinck: wrote help-at-pt.el and changed files.el autorevert.el cus-edit.el subr.el simple.el frames.texi startup.el display.texi files.texi dired.el comint.el modes.texi custom.texi emacs.texi fns.c frame.el ielm.el minibuf.texi - variables.texi buffers.texi commands.texi and 212 other files + variables.texi buffers.texi commands.texi and 213 other files Ludovic Courtès: wrote nnregistry.el and changed configure.ac gnus.texi loadup.el @@ -3122,7 +3123,7 @@ Michael Olson: changed erc.el erc-backend.el Makefile erc-track.el erc-log.el erc-stamp.el erc-autoaway.el erc-dcc.el erc-goodies.el erc-list.el erc-compat.el erc-identd.el erc.texi ERC-NEWS erc-bbdb.el erc-match.el erc-notify.el erc-ibuffer.el erc-services.el remember.el - erc-button.el and 55 other files + erc-button.el and 56 other files Michael Piotrowski: changed gnus-art.el gnus-sum.el ps-print.el @@ -3350,8 +3351,8 @@ and changed sequences.texi emacs.png README configure.ac sed2v2.inp Nicolas Richard: wrote cl-seq-tests.el cmds-tests.el and changed ffap.el package.el help.el keyboard.c landmark.el org.el simple.el DEBUG align.el battery.el byte-run.el cl-seq.el eieio-opt.el - elisp-mode.el ido.el isearch.el ispell.el minibuffer.el ob.el - pcmpl-unix.el replace-tests.el and 6 other files + elisp-mode.el gv.el ido.el isearch.el ispell.el minibuffer.el ob.el + pcmpl-unix.el and 7 other files Niels Giesen: changed icalendar.el org-agenda.el org-clock.el org-docbook.el org-table.el ox-icalendar.el ox-latex.el @@ -3382,9 +3383,9 @@ Noah Lavine: changed tramp.el Noam Postavsky: changed w32.c buffer-tests.el buffer.c buffers.texi category.c cl-macs.el cmdproxy.c cus-edit.el debugging.texi - elisp-mode.el em-term.el emacs-lisp-intro.texi files.el find-func.el - insdel.c keymaps.texi minibuf.texi modes.texi os.texi package.texi - positions.texi and 12 other files + elisp-mode.el em-term.el emacs-lisp-intro.texi etags.el files.el + find-func.el insdel.c keymaps.texi minibuf.texi modes.texi os.texi + package.texi and 14 other files Nobuyoshi Nakada: co-wrote ruby-mode.el @@ -4183,7 +4184,7 @@ and co-wrote font-lock.el gitmerge.el and changed subr.el simple.el keyboard.c lisp.h files.el bytecomp.el vc.el cl-macs.el xdisp.c alloc.c eval.c sh-script.el progmodes/compile.el keymap.c pcvs.el newcomment.el tex-mode.el - buffer.c window.c vc-hooks.el info.el and 1267 other files + buffer.c window.c vc-hooks.el info.el and 1268 other files Stefano Facchini: changed gtkutil.c @@ -4214,8 +4215,8 @@ Stephen A. Wood: changed fortran.el Stephen Berman: co-wrote todo-mode.el and changed todo-mode.texi diary-lib.el doc-view.el minibuffer.el files.el info.el otodo-mode.el subr.el allout.el compile.texi dframe.el - dired-aux.el dired.el elpa files.texi find-dired.el floatfns.c frame.c - frames.texi gamegrid.el gnus-group.el and 27 other files + dir dired-aux.el dired.el elpa files.texi find-dired.el floatfns.c + frame.c frames.texi gamegrid.el and 28 other files Stephen C. Gilardi: changed configure.ac @@ -4366,7 +4367,7 @@ Teodor Zlatanov: wrote auth-source.el gnus-registry.el gnus-sync.el and changed spam.el gnus.el nnimap.el gnus.texi gnus-sum.el gnutls.c auth.texi cfengine.el gnus-util.el gnus-start.el netrc.el message.el spam-stat.el encrypt.el gnutls.h nnir.el nnmail.el imap.el - mail-source.el nnmairix.el nntp.el and 109 other files + mail-source.el nnmairix.el nntp.el and 110 other files Terje Rosten: changed xfns.c version.el xterm.c xterm.h @@ -4494,6 +4495,7 @@ and changed org-capture.el org.el org-agenda.el org-clock.el Toby Speight: changed generic-x.el window.el Toke Høiland-Jørgensen: changed gnutls.c nnmaildir.el smime.el + url-http.el Tokuya Kameshima: changed org-mew.el org-agenda.el commit 0ffc9cef49b0fceb3c5e904837ea5675fe4306ac Author: Eli Zaretskii Date: Thu Sep 15 22:21:19 2016 +0300 Update admin/authors.el * admin/authors.el (authors-fixed-entries): Add an entry for Bob Weiner. diff --git a/admin/authors.el b/admin/authors.el index 3e9e005..198a8e4 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -621,6 +621,8 @@ Changes to files in this list are not listed.") ;; windowsnt.h to ms-w32.h. ("Geoff Voelker" :wrote "w32-fns.el" "w32.c" "w32.h" "w32heap.c" "w32heap.h" "w32inevt.c" "w32proc.c" "w32term.c" "ms-w32.h") + ("Bob Weiner" :changed "dframe.el" "etags.c" "info.el" "quail.el" + "rmail.el" "rmailsum.el" "speedbar.el") ("Morten Welinder" :wrote "dosfns.c" "[many MS-DOS files]" "msdos.h") ("Eli Zaretskii" :wrote "bidi.c" "[bidirectional display in xdisp.c]" "[tty menus in term.c]") commit 0ad74106faefa656a03b51fd58a8413857eb483e Author: Eli Zaretskii Date: Wed Sep 14 17:20:24 2016 +0300 Update Antinews in ELisp manual * doc/lispref/anti.texi (Antinews): Update for Emacs 25.1. * doc/lispref/elisp.texi (Top): Update the main menu entry for Antinews. diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi index 4b08401..17d765d 100644 --- a/doc/lispref/anti.texi +++ b/doc/lispref/anti.texi @@ -6,132 +6,110 @@ @c This node must have no pointers. @node Antinews -@appendix Emacs 23 Antinews +@appendix Emacs 24 Antinews @c Update the elisp.texi Antinews menu entry with the above version number. For those users who live backwards in time, here is information about -downgrading to Emacs version 23.4. We hope you will enjoy the greater +downgrading to Emacs version 24.5. We hope you will enjoy the greater simplicity that results from the absence of many Emacs @value{EMACSVER} features. -@section Old Lisp Features in Emacs 23 +@section Old Lisp Features in Emacs 24 @itemize @bullet @item -Support for lexical scoping has been removed; all variables are -dynamically scoped. The @code{lexical-binding} variable has been -removed, and so has the @var{lexical} argument to @code{eval}. The -@code{defvar} and @code{defconst} forms no longer mark variables as -dynamic, since all variables are dynamic. - -Having only dynamic binding follows the spirit of Emacs extensibility, -for it allows any Emacs code to access any defined variable with a -minimum of fuss. But @xref{Dynamic Binding Tips}, for tips to avoid -making your programs hard to understand. +The requirement that @code{setq} and @code{setf} must be called with +an even number of arguments has been removed. You can now call them +with an odd number of arguments, and Emacs will helpfully supply a +@code{nil} for the missing one. Simplicity rules! @item -Calling a minor mode function from Lisp with a @code{nil} or omitted argument -does not enable the minor mode unconditionally; instead, it toggles -the minor mode---which is the straightforward thing to do, since that -is the behavior when invoked interactively. One downside is that it -is more troublesome to enable minor modes from hooks; you have to do -something like - -@example -(add-hook 'foo-hook (lambda () (bar-mode 1))) -@end example - -@noindent -or define @code{turn-on-bar-mode} and call that from the hook. +@kbd{M-x shell} and @kbd{M-x compile} set the @env{EMACS} environment +variable, as they should, to indicate that the subprocess is run by +Emacs. This is so packages that took years to learn how to work +around that setting could continue using their code to that effect. @item -The @code{prog-mode} dummy major mode has been removed. Instead of -using it as a crutch to meet programming mode conventions, you should -explicitly ensure that your mode follows those conventions. -@xref{Major Mode Conventions}. +The @code{save-excursion} form saves and restores the mark, as +expected. No more need for the new @code{save-mark-and-excursion}, +which has been deleted. @item -Emacs no longer supports bidirectional display and editing. Since -there is no need to worry about the insertion of right-to-left text -messing up how lines and paragraphs are displayed, the function -@code{bidi-string-mark-left-to-right} has been removed; so have many -other functions and variables related to bidirectional display. -Unicode directionality characters like @code{U+200E} LEFT-TO-RIGHT -MARK have no special effect on display. +We have removed the @code{text-quoting-style} variable and the +associated functionality that translates quote characters in messages +displayed to the user and in help buffers. Emacs now shows exactly +the same quote characters as you wrote in your code! Likewise, +@code{substitute-command-keys} leaves the quote characters alone. As +you move back in time, Unicode support becomes less and less +important, so no need to display those fancy new quotes the Unicode +Standard invented. @item -Emacs windows now have most of their internal state hidden from Lisp. -Internal windows are no longer visible to Lisp; functions such as -@code{window-parent}, window parameters related to window arrangement, -and window-local buffer lists have all been removed. Functions for -resizing windows can delete windows if they become too small. - -The action-function feature for controlling buffer display has -been removed, including @code{display-buffer-overriding-action} and -related variables, as well as the @var{action} argument to -@code{display-buffer} and other functions. The way to -programmatically control how Emacs chooses a window to display a -buffer is to bind the right combination of @code{pop-up-frames} and -other variables. +Regular expressions have been simplified by removing support for +Unicode character properties in regexp classes. As result, +@code{[:alpha:]} and @code{[:alnum:]} will match any character with a +word syntax, and @code{[:graph:]} and @code{[:print:]} will match any +multibyte character, including surrogates and unassigned codepoints. +Once again, this is in line with diminishing importance of Unicode as +you move back in time. @item -The standard completion interface has been simplified, eliminating the -@code{completion-extra-properties} variable, the @code{metadata} -action flag for completion functions, and the concept of -completion categories. Lisp programmers may now find the choice -of methods for tuning completion less bewildering, but if a package -finds the streamlined interface insufficient for its needs, it must -implement its own specialized completion feature. +Evaluating @samp{(/ @var{n})} will now yield @var{n}. We have +realized that interpreting that as in Common Lisp was a bad mistake +that needed to be corrected. @item -@code{copy-directory} now behaves the same whether or not the -destination is an existing directory: if the destination exists, the -@emph{contents} of the first directory are copied into it (with -subdirectories handled recursively), rather than copying the first -directory into a subdirectory. +The @code{pcase} form was significantly simplified by removing the +UPatterns @code{quote} and @code{app}. To further simplify this +facility, we've removed @code{pcase-defmacro}, since we found no need +for letting Lisp programs define new UPatterns. @item -The @var{trash} arguments for @code{delete-file} and -@code{delete-directory} have been removed. The variable -@code{delete-by-moving-to-trash} must now be used with care; whenever -it is non-@code{nil}, all calls to @code{delete-file} or -@code{delete-directory} use the trash. +We've removed the text properties @code{cursor-intangible} and +@code{cursor-sensor-functions}, replacing them by the much simpler +@code{intangible}, @code{point-entered}, and @code{point-left} +properties. The latter are implemented on a much lower level, and +therefore are better integrated with user expectations. For similar +reasons, @code{cursor-intangible-mode} and @code{cursor-sensor-mode} +were removed; use the hook variable @code{inhibit-point-motion-hooks} +which is no longer obsolete. @item -Because Emacs no longer supports SELinux file contexts, the -@var{preserve-selinux-context} argument to @code{copy-file} has been -removed. The return value of @code{backup-buffer} no longer has an -entry for the SELinux file context. +Process creation and management functions were significantly improved +and simplified by removing @code{make-process} and the @code{pipe} +connection type. Redirecting @code{stderr} of a subprocess should be +done with shell facilities, not by Emacs. @item -For mouse click input events in the text area, the Y pixel coordinate -in the @var{position} list (@pxref{Click Events}) now counts from the -top of the header line, if there is one, rather than the top of the -text area. +We decided that shutting up informative messages is bad for user +interaction, so we've removed the @code{inhibit-message} variable +which could be used to that effect. @item -Bindings in menu keymaps (@pxref{Format of Keymaps}) now sometimes get -an additional @var{cache} entry in their definitions, like this: +Support for generators and for finalizers has been removed, as we +found no real need for these facilities. -@example -(@var{type} @var{item-name} @var{cache} . @var{binding}) -@end example - -@noindent -The @var{cache} entry is used internally by Emacs to record equivalent -keyboard key sequences for invoking the same command; Lisp programs -should never use it. -@c Not really NEWS-worthy then... +@item +Due to excessive complexity and the diminishing need for Unicode +support, the functions @code{string-collate-lessp} and +@code{string-collate-equalp} were removed. Their locale-independent +counterparts @code{string-lessp} and @code{string-equal} are so much +more simple and yield predictable results that we don't see any +situation where the locale-dependent collation could be useful in +Emacs. As result, the @file{ls-lisp.el} package sorts files in a +locale-independent manner. @item -The @code{gnutls} library has been removed, and the function -@code{open-network-stream} correspondingly simplified. -Lisp programs that want an encrypted network connection must now call -external utilities such as @command{starttls} or @command{gnutls-cli}. +In preparation for removal in some past version of Emacs of the +bidirectional editing support, we started by deleting two functions +@code{bidi-find-overridden-directionality} and +@code{buffer-substring-with-bidi-context}. @item -Tool bars can no longer display separators, which frees up several -pixels of space on each graphical frame. +Time conversion functions, such as @code{current-time-string}, no +longer accept an optional @var{zone} argument. If you need to change +the current time zone (why?), do that explicitly with +@code{set-time-zone-rule}. @item As part of the ongoing quest for simplicity, many other functions and diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index a3bff0b..3297e53 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -228,7 +228,7 @@ To view this manual in other formats, click Appendices -* Antinews:: Info for users downgrading to Emacs 23. +* Antinews:: Info for users downgrading to Emacs 24. * GNU Free Documentation License:: The license for this documentation. * GPL:: Conditions for copying and changing GNU Emacs. * Tips:: Advice and coding conventions for Emacs Lisp. commit ea0f750e5c1baa21c3ae1b22364662915c2b038f Author: Noam Postavsky Date: Sun Sep 11 16:25:13 2016 -0400 Fix comments on window height macros * src/window.h (WINDOW_MODE_LINE_HEIGHT, WINDOW_HEADER_LINE_HEIGHT): Fix confusing claim that "height is in pixels and in lines"; in fact it's in pixels. diff --git a/src/window.h b/src/window.h index 0cfff88..4845f75 100644 --- a/src/window.h +++ b/src/window.h @@ -913,7 +913,7 @@ wset_next_buffers (struct window *w, Lisp_Object val) ? WINDOW_CONFIG_SCROLL_BAR_HEIGHT (W) \ : 0) -/* Height in pixels, and in lines, of the mode line. +/* Height in pixels of the mode line. May be zero if W doesn't have a mode line. */ #define WINDOW_MODE_LINE_HEIGHT(W) \ (WINDOW_WANTS_MODELINE_P ((W)) \ @@ -923,7 +923,7 @@ wset_next_buffers (struct window *w, Lisp_Object val) #define WINDOW_MODE_LINE_LINES(W) \ WINDOW_WANTS_MODELINE_P (W) -/* Height in pixels, and in lines, of the header line. +/* Height in pixels of the header line. Zero if W doesn't have a header line. */ #define WINDOW_HEADER_LINE_HEIGHT(W) \ (WINDOW_WANTS_HEADER_LINE_P (W) \ commit 0bbdeed10f37d4ce203e1f5feb0cd7c4b5eeec72 Author: Toke Høiland-Jørgensen Date: Sat Sep 10 22:09:33 2016 +0300 Fix 'url-http-create-request' when cookies are used * lisp/url/url-http.el (url-http-create-request): Make sure the cookie headers are a unibyte string. For the details, see http://lists.gnu.org/archive/html/emacs-devel/2016-09/msg00202.html. Copyright-paperwork-exempt: yes diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index bbe5268..8f36dde 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -332,9 +332,10 @@ request.") auth ;; Cookies (when (url-use-cookies url-http-target-url) - (url-cookie-generate-header-lines - host real-fname - (equal "https" (url-type url-http-target-url)))) + (url-http--encode-string + (url-cookie-generate-header-lines + host real-fname + (equal "https" (url-type url-http-target-url))))) ;; If-modified-since (if (and (not no-cache) (member url-http-method '("GET" nil))) commit 0045998ac65e917bc35c6b4cc790b2f62d0243d1 Author: Martin Rudalics Date: Thu Sep 8 10:56:17 2016 +0200 Fix cross reference in frames.texi * doc/lispref/frames.texi (Minibuffers and Frames): Fix cross reference. diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index 15a9bd9..08f8594 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi @@ -1982,8 +1982,7 @@ Window Ordering}. Normally, each frame has its own minibuffer window at the bottom, which is used whenever that frame is selected. If the frame has a minibuffer, -you can get it with @code{minibuffer-window} (@pxref{Definition of -minibuffer-window}). +you can get it with @code{minibuffer-window} (@pxref{Minibuffer Windows}). @cindex frame without a minibuffer @cindex surrogate minibuffer frame commit 139289426d1b2c90335cec86c5ac19c51bf08bfc Author: Eli Zaretskii Date: Wed Sep 7 20:37:31 2016 +0300 ; * etc/DEBUG: Minor copyedits. diff --git a/etc/DEBUG b/etc/DEBUG index 17c4109..8a803e0 100644 --- a/etc/DEBUG +++ b/etc/DEBUG @@ -208,10 +208,14 @@ is Fredraw_display, which you can invoke at will interactively with It is also useful to have a guaranteed way to return to the debugger at any arbitrary time. When using X, this is easy: type C-z at the window where you are interacting with GDB, and it will stop Emacs just -as it would stop any ordinary program. When Emacs is displaying on a -text terminal, things are not so easy, so we describe the various -alternatives below (however, those of them that use signals only work -on Posix systems). +as it would stop any ordinary program. (This doesn't work if GDB was +attached to a running Emacs process; in that case, you will need to +type C-z to the shell window from which Emacs was started, or use the +"kill -TSTP" method described below.) + +When Emacs is displaying on a text terminal, things are not so easy, +so we describe the various alternatives below (however, those of them +that use signals only work on Posix systems). The src/.gdbinit file in the Emacs distribution arranges for SIGINT (C-g in Emacs on a text-mode frame) to be passed to Emacs and not give commit 304a5c8ef9a7ff86b85ee2b32834f72eb86e17f4 Author: Eli Zaretskii Date: Mon Sep 5 19:32:21 2016 +0300 ; * etc/DEBUG: Improve documentation of getting control to GDB. Suggested by Alain Schneble . diff --git a/etc/DEBUG b/etc/DEBUG index eef67da..17c4109 100644 --- a/etc/DEBUG +++ b/etc/DEBUG @@ -190,24 +190,40 @@ kick in, provided that you run under GDB. ** Getting control to the debugger +Setting a breakpoint in a strategic place, after loading Emacs into +the debugger, but before running it, is the most efficient way of +making sure control will be returned to the debugger when you need +that. + 'Fsignal' is a very useful place to put a breakpoint in. All Lisp errors go through there. If you are only interested in errors that -would fire the debugger, breaking at 'maybe_call_debugger' is useful. +would fire the Lisp debugger, breaking at 'maybe_call_debugger' is +useful. -It is useful, when debugging, to have a guaranteed way to return to -the debugger at any time. When using X, this is easy: type C-z at the -window where Emacs is running under GDB, and it will stop Emacs just -as it would stop any ordinary program. When Emacs is running in a -terminal, things are not so easy. +Another technique for get control to the debugger is to put a +breakpoint in some rarely used function. One such convenient function +is Fredraw_display, which you can invoke at will interactively with +"M-x redraw-display RET". + +It is also useful to have a guaranteed way to return to the debugger +at any arbitrary time. When using X, this is easy: type C-z at the +window where you are interacting with GDB, and it will stop Emacs just +as it would stop any ordinary program. When Emacs is displaying on a +text terminal, things are not so easy, so we describe the various +alternatives below (however, those of them that use signals only work +on Posix systems). The src/.gdbinit file in the Emacs distribution arranges for SIGINT -(C-g in Emacs) to be passed to Emacs and not give control back to GDB. -On modern POSIX systems, you can override that with this command: +(C-g in Emacs on a text-mode frame) to be passed to Emacs and not give +control back to GDB. On modern systems, you can override that with +this command: handle SIGINT stop nopass After this 'handle' command, SIGINT will return control to GDB. If you want the C-g to cause a QUIT within Emacs as well, omit the 'nopass'. +See the GDB manual for more details about signal handling and the +'handle' command. A technique that can work when 'handle SIGINT' does not is to store the code for some character into the variable stop_character. Thus, @@ -216,26 +232,37 @@ the code for some character into the variable stop_character. Thus, makes Control-] (decimal code 29) the stop character. Typing Control-] will cause immediate stop. You cannot -use the set command until the inferior process has been started. -Put a breakpoint early in 'main', or suspend the Emacs, -to get an opportunity to do the set command. +use the set command until the inferior process has been started, so +start Emacs with the 'start' command, to get an opportunity to do the +above 'set' command. -Another technique for get control to the debugger is to put a -breakpoint in some rarely used function. One such convenient function -is Fredraw_display, which you can invoke at will interactively with -"M-x redraw-display RET". +On a Posix host, you can also send a signal using the 'kill' command +from a shell prompt, like this: -When Emacs is running in a terminal, it is sometimes useful to use a separate -terminal for the debug session. This can be done by starting Emacs as usual, -then attaching to it from gdb with the 'attach' command which is explained in -the node "Attach" of the GDB manual. + kill -TSTP Emacs-PID -On MS-Windows, you can start Emacs in its own separate terminal by -setting the new-console option before running Emacs under GDB: +where Emacs-PID is the process ID of Emacs being debugged. Other +useful signals to send are SIGUSR1 and SIGUSR2; see "Error Debugging" +in the ELisp manual for how to use those. + +When Emacs is displaying on a text terminal, it is useful to have a +separate terminal for the debug session. This can be done by starting +Emacs as usual, then attaching to it from gdb with the 'attach' +command which is explained in the node "Attach" of the GDB manual. + +On MS-Windows, you can alternatively start Emacs from its own separate +console by setting the new-console option before running Emacs under +GDB: (gdb) set new-console 1 (gdb) run +If you do this, then typing C-c or C-BREAK into the console window +through which you interact with GDB will stop Emacs and return control +to the debugger, no matter if Emacs displays GUI or text-mode frames. +This is the only reliable alternative on MS-Windows to get control to +the debugger, besides setting breakpoints in advance. + ** Examining Lisp object values. When you have a live process to debug, and it has not encountered a @@ -848,7 +875,7 @@ directed to the xterm window you opened above. Similar arrangement is possible on a character terminal by using the 'screen' package. -On MS-Windows, you can start Emacs in its own separate terminal by +On MS-Windows, you can start Emacs in its own separate console by setting the new-console option before running Emacs under GDB: (gdb) set new-console 1 commit 56bf7d7e274e1ab68c28516026d0510173c41904 Author: immerrr Date: Sun Feb 7 12:46:37 2016 +0300 Fix regexp-opt documentation (bug #17862) * lisp/emacs-lisp/regexp-opt.el (regexp-opt): * doc/lispref/searching.texi (Regexp Functions): Update PAREN doc. diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi index acf3d0e..a335e89 100644 --- a/doc/lispref/searching.texi +++ b/doc/lispref/searching.texi @@ -948,26 +948,42 @@ possible. A hand-tuned regular expression can sometimes be slightly more efficient, but is almost never worth the effort.}. @c E.g., see http://debbugs.gnu.org/2816 -If the optional argument @var{paren} is non-@code{nil}, then the -returned regular expression is always enclosed by at least one -parentheses-grouping construct. If @var{paren} is @code{words}, then -that construct is additionally surrounded by @samp{\<} and @samp{\>}; -alternatively, if @var{paren} is @code{symbols}, then that construct -is additionally surrounded by @samp{\_<} and @samp{\_>} -(@code{symbols} is often appropriate when matching -programming-language keywords and the like). - -This simplified definition of @code{regexp-opt} produces a -regular expression which is equivalent to the actual value -(but not as efficient): +The optional argument @var{paren} can be any of the following: + +a string + the resulting regexp is preceded by @var{paren} and followed by + @samp{\)}, e.g. use @samp{"\\(?1:"} to produce an explicitly + numbered group. + +@code{words} + the resulting regexp is surrounded by @samp{\<\(} and @samp{\)\>}. + +@code{symbols} + the resulting regexp is surrounded by @samp{\_<\(} and @samp{\)\_>} + (this is often appropriate when maching programming-language + keywords and the like). + +non-@code{nil} + the resulting regexp is surrounded by @samp{\(} and @samp{\)}. + +@code{nil} + the resulting regexp is surrounded by @samp{\(?:} and @samp{\)}, + if it is necessary to ensure that a postfix operator appended to + it will apply to the whole expression. + +The resulting regexp of @code{regexp-opt} is equivalent to but usually +more efficient than that of a simplified version: @example -(defun regexp-opt (strings &optional paren) - (let ((open-paren (if paren "\\(" "")) - (close-paren (if paren "\\)" ""))) - (concat open-paren - (mapconcat 'regexp-quote strings "\\|") - close-paren))) +(defun simplified-regexp-opt (strings &optional paren) + (let ((parens (cond ((stringp paren) (cons paren "\\)")) + ((eq paren 'words) '("\\<\\(" . "\\)\\>")) + ((eq paren 'symbols) '("\\_<\\(" . "\\)\\_>")) + ((null paren) '("\\(?:" . "\\)")) + (t '("\\(" . "\\)"))))) + (concat (car paren) + (mapconcat 'regexp-quote strings "\\|") + (cdr paren)))) @end example @end defun diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el index b1e132a..27db477 100644 --- a/lisp/emacs-lisp/regexp-opt.el +++ b/lisp/emacs-lisp/regexp-opt.el @@ -86,18 +86,44 @@ ;;;###autoload (defun regexp-opt (strings &optional paren) "Return a regexp to match a string in the list STRINGS. -Each string should be unique in STRINGS and should not contain any regexps, -quoted or not. If optional PAREN is non-nil, ensure that the returned regexp -is enclosed by at least one regexp grouping construct. -The returned regexp is typically more efficient than the equivalent regexp: +Each string should be unique in STRINGS and should not contain +any regexps, quoted or not. Optional PAREN specifies how the +returned regexp is surrounded by grouping constructs. - (let ((open (if PAREN \"\\\\(\" \"\")) (close (if PAREN \"\\\\)\" \"\"))) - (concat open (mapconcat \\='regexp-quote STRINGS \"\\\\|\") close)) +The optional argument PAREN can be any of the following: -If PAREN is `words', then the resulting regexp is additionally surrounded -by \\=\\< and \\>. -If PAREN is `symbols', then the resulting regexp is additionally surrounded -by \\=\\_< and \\_>." +a string + the resulting regexp is preceded by PAREN and followed by + \\), e.g. use \"\\\\(?1:\" to produce an explicitly numbered + group. + +`words' + the resulting regexp is surrounded by \\=\\<\\( and \\)\\>. + +`symbols' + the resulting regexp is surrounded by \\_<\\( and \\)\\_>. + +non-nil + the resulting regexp is surrounded by \\( and \\). + +nil + the resulting regexp is surrounded by \\(?: and \\), if it is + necessary to ensure that a postfix operator appended to it will + apply to the whole expression. + +The resulting regexp is equivalent to but usually more efficient +than that of a simplified version: + + (defun simplified-regexp-opt (strings &optional paren) + (let ((parens + (cond ((stringp paren) (cons paren \"\\\\)\")) + ((eq paren 'words) '(\"\\\\\\=<\\\\(\" . \"\\\\)\\\\>\")) + ((eq paren 'symbols) '(\"\\\\_<\\\\(\" . \"\\\\)\\\\_>\")) + ((null paren) '(\"\\\\(?:\" . \"\\\\)\")) + (t '(\"\\\\(\" . \"\\\\)\"))))) + (concat (car paren) + (mapconcat 'regexp-quote strings \"\\\\|\") + (cdr paren))))" (save-match-data ;; Recurse on the sorted list. (let* ((max-lisp-eval-depth 10000) commit 803ad6f7e7a9c6bcf8a6cbf8eaad17501b114a33 Author: Clément Pit--Claudel Date: Thu Sep 1 10:46:14 2016 -0400 ; Fix documentation of seq-subseq diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el index 8362dda..904aad0 100644 --- a/lisp/emacs-lisp/seq.el +++ b/lisp/emacs-lisp/seq.el @@ -127,7 +127,7 @@ Return SEQUENCE." (cl-defgeneric seq-subseq (sequence start &optional end) "Return the sequence of elements of SEQUENCE from START to END. -END is inclusive. +END is exclusive. If END is omitted, it defaults to the length of the sequence. If START or END is negative, it counts from the end. Signal an commit ed4530dbc9c1ececa2b6f9c490f213746f336690 Author: Nicolas Richard Date: Tue Aug 23 11:50:52 2016 +0200 * lisp/emacs-lisp/gv.el (gv-ref): Fix example of PLACE in docstring. diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el index 93572e5..fa7ac64 100644 --- a/lisp/emacs-lisp/gv.el +++ b/lisp/emacs-lisp/gv.el @@ -536,7 +536,7 @@ This macro only makes sense when used in a place." "Return a reference to PLACE. This is like the `&' operator of the C language. Note: this only works reliably with lexical binding mode, except for very -simple PLACEs such as (function-symbol \\='foo) which will also work in dynamic +simple PLACEs such as (symbol-function \\='foo) which will also work in dynamic binding mode." (let ((code (gv-letplace (getter setter) place commit 88ea396c42beae9c60db4de351796fc529c40d64 Author: Paul Eggert Date: Tue Aug 30 20:32:30 2016 -0700 ; Spelling fixes diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index ccdae48..7a2b3fe 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el @@ -905,7 +905,7 @@ styles." '(propertize (format "%s %d" (calendar-month-name month) year) 'font-lock-face 'calendar-month-header) "Default format for calendar month headings with the American date style. -Normally you should not customize this, but `calender-month-header'." +Normally you should not customize this, but `calendar-month-header'." :group 'calendar :risky t :type 'sexp @@ -915,7 +915,7 @@ Normally you should not customize this, but `calender-month-header'." '(propertize (format "%s %d" (calendar-month-name month) year) 'font-lock-face 'calendar-month-header) "Default format for calendar month headings with the European date style. -Normally you should not customize this, but `calender-month-header'." +Normally you should not customize this, but `calendar-month-header'." :group 'calendar :risky t :type 'sexp @@ -925,7 +925,7 @@ Normally you should not customize this, but `calender-month-header'." '(propertize (format "%d %s" year (calendar-month-name month)) 'font-lock-face 'calendar-month-header) "Default format for calendar month headings with the ISO date style. -Normally you should not customize this, but `calender-month-header'." +Normally you should not customize this, but `calendar-month-header'." :group 'calendar :risky t :type 'sexp commit 17197d0ae9eac100b56078b2a48964b29710b76e Author: Noam Postavsky Date: Fri Aug 26 22:32:43 2016 -0400 Fix tags-query-replace docstring * lisp/progmodes/etags.el (tags-query-replace): Remove incorrect info regarding non-existent parameters. diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 890d552..d37ab8a 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -1880,8 +1880,6 @@ Third arg DELIMITED (prefix arg) means replace only word-delimited matches. If you exit (\\[keyboard-quit], RET or q), you can resume the query replace with the command \\[tags-loop-continue]. Fourth arg FILE-LIST-FORM non-nil means initialize the replacement loop. -Fifth and sixth arguments START and END are accepted, for compatibility -with `query-replace-regexp', and ignored. If FILE-LIST-FORM is non-nil, it is a form to evaluate to produce the list of files to search. commit 80a7f8be7bca1ca488887eedd7f0022d088e124a Author: Eli Zaretskii Date: Fri Aug 26 22:13:34 2016 +0300 Clarify documentation of precision in format specs * doc/lispref/strings.texi (Formatting Strings): Be less definitive wrt what precision means in format specs other than floating-point, %s and %S. (Bug#24314) diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi index febe321..5fee373 100644 --- a/doc/lispref/strings.texi +++ b/doc/lispref/strings.texi @@ -1052,8 +1052,9 @@ precision specifies how many decimal places to show; if zero, the decimal-point itself is also omitted. For @samp{%s} and @samp{%S}, the precision truncates the string to the given width, so @samp{%.3s} shows only the first three characters of the representation for -@var{object}. Precision has no effect for other specification -characters. +@var{object}. For other specification characters, the effect of +precision is what the local library functions of the @code{printf} +family produce. @node Case Conversion @section Case Conversion in Lisp commit 88a5052579069be93a0af556c9a43a8ed75d3efb Author: Eli Zaretskii Date: Wed Aug 24 17:36:28 2016 +0300 Improve and clarify documentation of subprocesses * doc/lispref/processes.texi (Subprocess Creation, Shell Arguments): Mention 'make-process' rather than 'start-process'. Update wrt standard destinations of standard output/error streams and due to different formats of arguments accepted by 'make-process'. (Processes): Mention process objects that represent connections. (Synchronous Processes): Minor clarifications. (Asynchronous Processes): Describe 'make-process' and 'make-pipe-process' before 'start-process'. Update and expand the documentation. (Deleting Processes, Process Information, Input to Processes) (Signals to Processes, Query Before Exit, Network): Update and expand the documentation, especially wrt process objects that represent connections. (Output from Processes): Mention the possibility of separating stderr via 'make-process'. (Filter Functions): Mention that stderr by default arrives at the filter function together with stdout. (Bug#24287) * src/process.c (Fprocess_id, Fprocess_command) (Fprocess_contact, Fprocess_type, Fstop_process): Doc fixes for process objects that represent connections. diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi index b4542f6..9c4f8ca 100644 --- a/doc/lispref/processes.texi +++ b/doc/lispref/processes.texi @@ -27,9 +27,18 @@ with the subprocess or to control it. For example, you can send signals, obtain status information, receive output from the process, or send input to it. + In addition to processes that run programs, Lisp programs can open +connections of several types to devices or processes running on the +same machine or on other machines. The supported connection types +are: TCP and UDP network connections, serial port connections, and +pipe connections. Each such connection is also represented by a +process object. + @defun processp object This function returns @code{t} if @var{object} represents an Emacs -subprocess, @code{nil} otherwise. +process object, @code{nil} otherwise. The process object can +represent a subprocess running a program or a connection of any +supported type. @end defun In addition to subprocesses of the current Emacs session, you can @@ -67,7 +76,7 @@ Processes}. @cindex process creation There are three primitives that create a new subprocess in which to run -a program. One of them, @code{start-process}, creates an asynchronous +a program. One of them, @code{make-process}, creates an asynchronous process and returns a process object (@pxref{Asynchronous Processes}). The other two, @code{call-process} and @code{call-process-region}, create a synchronous process and do not return a process object @@ -82,15 +91,14 @@ fashion, their common arguments are described here. @cindex execute program @cindex @env{PATH} environment variable @cindex @env{HOME} environment variable - In all cases, the function's @var{program} argument specifies the -program to be run. An error is signaled if the file is not found or -cannot be executed. If the file name is relative, the variable -@code{exec-path} contains a list of directories to search. Emacs -initializes @code{exec-path} when it starts up, based on the value of -the environment variable @env{PATH}. The standard file name -constructs, @samp{~}, @samp{.}, and @samp{..}, are interpreted as -usual in @code{exec-path}, but environment variable substitutions -(@samp{$HOME}, etc.)@: are not recognized; use + In all cases, the functions specify the program to be run. An error +is signaled if the file is not found or cannot be executed. If the +file name is relative, the variable @code{exec-path} contains a list +of directories to search. Emacs initializes @code{exec-path} when it +starts up, based on the value of the environment variable @env{PATH}. +The standard file name constructs, @samp{~}, @samp{.}, and @samp{..}, +are interpreted as usual in @code{exec-path}, but environment variable +substitutions (@samp{$HOME}, etc.)@: are not recognized; use @code{substitute-in-file-name} to perform them (@pxref{File Name Expansion}). @code{nil} in this list refers to @code{default-directory}. @@ -106,27 +114,36 @@ system-dependent. @end defopt @strong{Please note:} The argument @var{program} contains only the -name of the program; it may not contain any command-line arguments. You -must use a separate argument, @var{args}, to provide those, as -described below. +name of the program file; it may not contain any command-line +arguments. You must use a separate argument, @var{args}, to provide +those, as described below. Each of the subprocess-creating functions has a @var{buffer-or-name} -argument that specifies where the standard output from the program will -go. It should be a buffer or a buffer name; if it is a buffer name, -that will create the buffer if it does not already exist. It can also -be @code{nil}, which says to discard the output, unless a custom filter function -handles it. (@xref{Filter Functions}, and @ref{Read and Print}.) -Normally, you should avoid having multiple processes send output to the -same buffer because their output would be intermixed randomly. -For synchronous processes, you can send the output to a file instead -of a buffer. +argument that specifies where the output from the program will go. It +should be a buffer or a buffer name; if it is a buffer name, that will +create the buffer if it does not already exist. It can also be +@code{nil}, which says to discard the output, unless a custom filter +function handles it. (@xref{Filter Functions}, and @ref{Read and +Print}.) Normally, you should avoid having multiple processes send +output to the same buffer because their output would be intermixed +randomly. For synchronous processes, you can send the output to a +file instead of a buffer (and the corresponding argument is therefore +more appropriately called @var{destination}). By default, both +standard output and standard error streams go to the same destination, +but all the 3 primitives allow optionally to direct the standard error +stream to a different destination. @cindex program arguments - All three of the subprocess-creating functions have a @code{&rest} -argument, @var{args}. The @var{args} must all be strings, and they are -supplied to @var{program} as separate command line arguments. Wildcard -characters and other shell constructs have no special meanings in these -strings, since the strings are passed directly to the specified program. + All three of the subprocess-creating functions allow to specify +command-line arguments for the process to run. For @code{call-process} +and @code{call-process-region}, these come in the form of a +@code{&rest} argument, @var{args}. For @code{make-process}, both the +program to run and its command-line arguments are specified as a list +of strings. The command-line arguments must all be strings, and they +are supplied to the program as separate argument strings. Wildcard +characters and other shell constructs have no special meanings in +these strings, since the strings are passed directly to the specified +program. @cindex environment variables, subprocesses The subprocess inherits its environment from Emacs, but you can @@ -147,6 +164,7 @@ The value of this variable is a list of directories to search for programs to run in subprocesses. Each element is either the name of a directory (i.e., a string), or @code{nil}, which stands for the default directory (which is the value of @code{default-directory}). +@xref{Locating Files, executable-find}, for the details of this search. @cindex program directories The value of @code{exec-path} is used by @code{call-process} and @@ -210,11 +228,11 @@ a shell command: The following two functions are useful for combining a list of individual command-line argument strings into a single string, and taking a string apart into a list of individual command-line -arguments. These functions are mainly intended for -converting user input in the minibuffer, a Lisp string, into a list of -string arguments to be passed to @code{call-process} or -@code{start-process}, or for converting such lists of arguments into -a single Lisp string to be presented in the minibuffer or echo area. +arguments. These functions are mainly intended for converting user +input in the minibuffer, a Lisp string, into a list of string +arguments to be passed to @code{make-process}, @code{call-process} or +@code{start-process}, or for converting such lists of arguments into a +single Lisp string to be presented in the minibuffer or echo area. Note that if a shell is involved (e.g., if using @code{call-process-shell-command}), arguments should still be protected by @code{shell-quote-argument}; @@ -331,7 +349,7 @@ string specifies a file name to redirect error output into. You can't directly specify a buffer to put the error output in; that is too difficult to implement. But you can achieve this result by sending the error output to a temporary file and then inserting the file into a -buffer. +buffer when the subprocess finishes. @end table If @var{display} is non-@code{nil}, then @code{call-process} redisplays @@ -346,13 +364,15 @@ results become visible on the screen only when Emacs redisplays that buffer in the normal course of events. The remaining arguments, @var{args}, are strings that specify command -line arguments for the program. +line arguments for the program. Each string is passed to +@var{program} as a separate argument. The value returned by @code{call-process} (unless you told it not to wait) indicates the reason for process termination. A number gives the exit status of the subprocess; 0 means success, and any other value means failure. If the process terminated with a signal, -@code{call-process} returns a string describing the signal. +@code{call-process} returns a string describing the signal. If you +told @code{call-process} not to wait, it returns @code{nil}. In the examples below, the buffer @samp{foo} is current. @@ -510,10 +530,10 @@ inputinput@point{} @defun call-process-shell-command command &optional infile destination display This function executes the shell command @var{command} synchronously. -The arguments are handled as in @code{call-process}. An old calling -convention allowed passing any number of additional arguments after -@var{display}, which were concatenated to @var{command}; this is still -supported, but strongly discouraged. +The other arguments are handled as in @code{call-process}. An old +calling convention allowed passing any number of additional arguments +after @var{display}, which were concatenated to @var{command}; this is +still supported, but strongly discouraged. @end defun @defun process-file-shell-command command &optional infile destination display @@ -565,33 +585,169 @@ from the process only while waiting for input or for a time delay. @cindex pipe An asynchronous process is controlled either via a @dfn{pty} (pseudo-terminal) or a @dfn{pipe}. The choice of pty or pipe is made -when creating the process, based on the value of the variable -@code{process-connection-type} (see below). Ptys are usually -preferable for processes visible to the user, as in Shell mode, -because they allow for job control (@kbd{C-c}, @kbd{C-z}, etc.)@: -between the process and its children, whereas pipes do not. For -subprocesses used for internal purposes by programs, it is often -better to use a pipe, because they are more efficient, and because -they are immune to stray character injections that ptys introduce for -large (around 500 byte) messages. Also, the total number of ptys is -limited on many systems and it is good not to waste them. +when creating the process, by default based on the value of the +variable @code{process-connection-type} (see below). If available, +ptys are usually preferable for processes visible to the user, as in +Shell mode, because they allow for job control (@kbd{C-c}, @kbd{C-z}, +etc.)@: between the process and its children, and because interactive +programs treat ptys as terminal devices, whereas pipes don't support +these features. However, for subprocesses used by Lisp programs for +internal purposes, it is often better to use a pipe, because pipes are +more efficient, and because they are immune to stray character +injections that ptys introduce for large (around 500 byte) messages. +Also, the total number of ptys is limited on many systems and it is +good not to waste them. + +@defun make-process &rest args +This function is the basic low-level primitive for starting +asynchronous subprocesses. It returns a process object representing +the subprocess. Compared to the more high-level @code{start-process}, +described below, it takes keyword arguments, is more flexible, and +allows to specify process filters and sentinels in a single call. + +The arguments @var{args} are a list of keyword/argument pairs. +Omitting a keyword is always equivalent to specifying it with value +@code{nil}. Here are the meaningful keywords: + +@table @asis +@item :name @var{name} +Use the string @var{name} as the process name; if a process with this +name already exists, then @var{name} is modified (by appending +@samp{<1>}, etc.)@: to be unique. + +@item :buffer @var{buffer} +Use @var{buffer} as the process buffer. If the value is @code{nil}, +the subprocess is not associated with any buffer. + +@item :command @var{command} +Use @var{command} as the command line of the process. The value +should be a list starting with the program's executable file name, +followed by strings to give to the program as its arguments. If +the first element of the list is @code{nil}, Emacs opens a new +pseudoterminal (pty) and associates its input and output with +@var{buffer}, without actually running any program; the rest of the +list elements are ignored in that case. + +@item :coding @var{coding} +If @var{coding} is a symbol, it specifies the coding system to be +used for both reading and writing of data from and to the +connection. If @var{coding} is a cons cell +@w{@code{(@var{decoding} . @var{encoding})}}, then @var{decoding} +will be used for reading and @var{encoding} for writing. The coding +system used for encoding the data written to the program is also used +for encoding the command-line arguments (but not the program itself, +whose file name is encoded as any other file name; @pxref{Encoding and +I/O, file-name-coding-system}). + +If @var{coding} is @code{nil}, the default rules for finding the +coding system will apply. @xref{Default Coding Systems}. + +@item :connection-type @var{TYPE} +Initialize the type of device used to communicate with the subprocess. +Possible values are @code{pty} to use a pty, @code{pipe} to use a +pipe, or @code{nil} to use the default derived from the value of the +@code{process-connection-type} variable. This parameter and the value +of @code{process-connection-type} are ignored if a non-@code{nil} +value is specified for the @code{:stderr} parameter; in that case, the +type will always be @code{pipe}. + +@item :noquery @var{query-flag} +Initialize the process query flag to @var{query-flag}. +@xref{Query Before Exit}. + +@item :stop @var{stopped} +If @var{stopped} is non-@code{nil}, start the process in the +stopped state. + +@item :filter @var{filter} +Initialize the process filter to @var{filter}. If not specified, a +default filter will be provided, which can be overridden later. +@xref{Filter Functions}. + +@item :sentinel @var{sentinel} +Initialize the process sentinel to @var{sentinel}. If not specified, +a default sentinel will be used, which can be overridden later. +@xref{Sentinels}. + +@item :stderr @var{stderr} +Associate @var{stderr} with the standard error of the process. A +non-@code{nil} value should be either a buffer or a pipe process +created with @code{make-pipe-process}, described below. +@end table + +The original argument list, modified with the actual connection +information, is available via the @code{process-contact} function. +@end defun + +@defun make-pipe-process &rest args +This function creates a bidirectional pipe which can be attached to a +child process. This is useful with the @code{:stderr} keyword of +@code{make-process}. The function returns a process object. + +The arguments @var{args} are a list of keyword/argument pairs. +Omitting a keyword is always equivalent to specifying it with value +@code{nil}. + +Here are the meaningful keywords: + +@table @asis +@item :name @var{name} +Use the string @var{name} as the process name. As with +@code{make-process}, it is modified if necessary to make it unique. + +@item :buffer @var{buffer} +Use @var{buffer} as the process buffer. + +@item :coding @var{coding} +If @var{coding} is a symbol, it specifies the coding system to be +used for both reading and writing of data from and to the +connection. If @var{coding} is a cons cell +@w{@code{(@var{decoding} . @var{encoding})}}, then @var{decoding} +will be used for reading and @var{encoding} for writing. + +If @var{coding} is @code{nil}, the default rules for finding the +coding system will apply. @xref{Default Coding Systems}. + +@item :noquery @var{query-flag} +Initialize the process query flag to @var{query-flag}. +@xref{Query Before Exit}. + +@item :stop @var{stopped} +If @var{stopped} is non-@code{nil}, start the process in the +stopped state. + +@item :filter @var{filter} +Initialize the process filter to @var{filter}. If not specified, a +default filter will be provided, which can be changed later. +@xref{Filter Functions}. + +@item :sentinel @var{sentinel} +Initialize the process sentinel to @var{sentinel}. If not specified, +a default sentinel will be used, which can be changed later. +@xref{Sentinels}. +@end table + +The original argument list, modified with the actual connection +information, is available via the @code{process-contact} function. +@end defun @defun start-process name buffer-or-name program &rest args -This function creates a new asynchronous subprocess and starts the -program @var{program} running in it. It returns a process object that -stands for the new subprocess in Lisp. The argument @var{name} -specifies the name for the process object; if a process with this name -already exists, then @var{name} is modified (by appending @samp{<1>}, -etc.)@: to be unique. The buffer @var{buffer-or-name} is the buffer to -associate with the process. +This function is a higher-level wrapper around @code{make-process}, +exposing an interface that is similar to @code{call-process}. It +creates a new asynchronous subprocess and starts the specified +@var{program} running in it. It returns a process object that stands +for the new subprocess in Lisp. The argument @var{name} specifies the +name for the process object; as with @code{make-process}, it is +modified if necessary to make it unique. The buffer +@var{buffer-or-name} is the buffer to associate with the process. If @var{program} is @code{nil}, Emacs opens a new pseudoterminal (pty) and associates its input and output with @var{buffer-or-name}, without creating a subprocess. In that case, the remaining arguments @var{args} are ignored. -The remaining arguments, @var{args}, are strings that specify command -line arguments for the subprocess. +The rest of @var{args} are strings that specify command line arguments +for the subprocess. In the example below, the first process is started and runs (rather, sleeps) for 100 seconds (the output buffer @samp{foo} is created @@ -633,14 +789,14 @@ subprocess running @var{program} in it, and returns its process object. The difference from @code{start-process} is that this function may -invoked a file handler based on the value of @code{default-directory}. +invoke a file handler based on the value of @code{default-directory}. This handler ought to run @var{program}, perhaps on the local host, perhaps on a remote host that corresponds to @code{default-directory}. In the latter case, the local part of @code{default-directory} becomes the working directory of the process. This function does not try to invoke file name handlers for -@var{program} or for the @var{program-args}. +@var{program} or for the rest of @var{args}. Depending on the implementation of the file handler, it might not be possible to apply @code{process-filter} or @code{process-sentinel} to @@ -654,19 +810,20 @@ this function does nothing and returns @code{nil}. @end defun @defun start-process-shell-command name buffer-or-name command -This function is like @code{start-process}, except that it uses a shell -to execute the specified command. The argument @var{command} is a shell -command name. The variable @code{shell-file-name} specifies which shell to -use. +This function is like @code{start-process}, except that it uses a +shell to execute the specified @var{command}. The argument +@var{command} is a shell command string. The variable +@code{shell-file-name} specifies which shell to use. The point of running a program through the shell, rather than directly -with @code{start-process}, is so that you can employ shell features such -as wildcards in the arguments. It follows that if you include any -arbitrary user-specified arguments in the command, you should quote them -with @code{shell-quote-argument} first, so that any special shell -characters do @emph{not} have their special shell meanings. @xref{Shell -Arguments}. Of course, when executing commands based on user input -you should also consider the security implications. +with @code{make-process} or @code{start-process}, is so that you can +employ shell features such as wildcards in the arguments. It follows +that if you include any arbitrary user-specified arguments in the +command, you should quote them with @code{shell-quote-argument} first, +so that any special shell characters do @emph{not} have their special +shell meanings. @xref{Shell Arguments}. Of course, when executing +commands based on user input you should also consider the security +implications. @end defun @defun start-file-process-shell-command name buffer-or-name command @@ -681,9 +838,14 @@ asynchronous subprocesses. If it is non-@code{nil}, then ptys are used, when available. Otherwise, pipes are used. The value of @code{process-connection-type} takes effect when -@code{start-process} is called. So you can specify how to communicate -with one subprocess by binding the variable around the call to -@code{start-process}. +@code{make-process} or @code{start-process} is called. So you can +specify how to communicate with one subprocess by binding the variable +around the call to these functions. + +Note that the value of this variable is ignored when +@code{make-process} is called with a non-@code{nil} value of the +@code{:stderr} parameter; in that case, Emacs will communicate with +the process using pipes. @smallexample @group @@ -697,117 +859,6 @@ use the function @code{process-tty-name} (@pxref{Process Information}). @end defvar -@defun make-process &rest args -This function is like @code{start-process}, but takes keyword arguments. - -The arguments @var{args} are a list of keyword/argument pairs. -Omitting a keyword is always equivalent to specifying it with value -@code{nil}. Here are the meaningful keywords: - -@table @asis -@item :name @var{name} -Use the string @var{name} as the process name. It is modified if -necessary to make it unique. - -@item :buffer @var{buffer} -Use @var{buffer} as the process buffer. - -@item :command @var{command} -Use @var{command} as the command line of the process. @var{command} -is a list starting with the program's executable file name, followed -by strings to give to program as arguments. - -@item :coding @var{coding} -If @var{coding} is a symbol, it specifies the coding system to be -used for both reading and writing of data from and to the -connection. If @var{coding} is a cons cell -@w{@code{(@var{decoding} . @var{encoding})}}, then @var{decoding} -will be used for reading and @var{encoding} for writing. - -If @var{coding} is @code{nil}, the default rules for finding the -coding system will apply. @xref{Default Coding Systems}. - -@item :connection-type @var{TYPE} -Initialize the type of device used to communicate with the subprocess. -Possible values are @code{pty} to use a pty, @code{pipe} to use a -pipe, or @code{nil} to use the default derived from the value of -the @code{process-connection-type} variable. - -@item :noquery @var{query-flag} -Initialize the process query flag to @var{query-flag}. -@xref{Query Before Exit}. - -@item :stop @var{stopped} -If @var{stopped} is non-@code{nil}, start the process in the -stopped state. - -@item :filter @var{filter} -Initialize the process filter to @var{filter}. If not specified, a -default filter will be provided. @xref{Filter Functions}. - -@item :sentinel @var{sentinel} -Initialize the process sentinel to @var{sentinel}. If not specified, -a default sentinel will be used. @xref{Sentinels}. - -@item :stderr @var{stderr} -Associate @var{stderr} with the standard error of the process. -@var{stderr} is either a buffer or a pipe process created with -@code{make-pipe-process}. -@end table - -The original argument list, modified with the actual connection -information, is available via the @code{process-contact} function. -@end defun - -@defun make-pipe-process &rest args -This function creates a bidirectional pipe which can be attached to a -child process (currently only useful with the @code{:stderr} keyword -of @code{make-process}). - -The arguments @var{args} are a list of keyword/argument pairs. -Omitting a keyword is always equivalent to specifying it with value -@code{nil}, except for @code{:coding}. -Here are the meaningful keywords: - -@table @asis -@item :name @var{name} -Use the string @var{name} as the process name. It is modified if -necessary to make it unique. - -@item :buffer @var{buffer} -Use @var{buffer} as the process buffer. - -@item :coding @var{coding} -If @var{coding} is a symbol, it specifies the coding system to be -used for both reading and writing of data from and to the -connection. If @var{coding} is a cons cell -@w{@code{(@var{decoding} . @var{encoding})}}, then @var{decoding} -will be used for reading and @var{encoding} for writing. - -If @var{coding} is @code{nil}, the default rules for finding the -coding system will apply. @xref{Default Coding Systems}. - -@item :noquery @var{query-flag} -Initialize the process query flag to @var{query-flag}. -@xref{Query Before Exit}. - -@item :stop @var{stopped} -If @var{stopped} is non-@code{nil}, start the process in the -stopped state. - -@item :filter @var{filter} -Initialize the process filter to @var{filter}. If not specified, a -default filter will be provided. @xref{Filter Functions}. - -@item :sentinel @var{sentinel} -Initialize the process sentinel to @var{sentinel}. If not specified, -a default sentinel will be used. @xref{Sentinels}. -@end table - -The original argument list, modified with the actual connection -information, is available via the @code{process-contact} function. -@end defun - @node Deleting Processes @section Deleting Processes @cindex deleting processes @@ -837,14 +888,19 @@ they exit. @defun delete-process process This function deletes a process, killing it with a @code{SIGKILL} -signal. The argument may be a process, the name of a process, a -buffer, or the name of a buffer. (A buffer or buffer-name stands for -the process that @code{get-buffer-process} returns.) Calling -@code{delete-process} on a running process terminates it, updates the -process status, and runs the sentinel immediately. If the -process has already terminated, calling @code{delete-process} has no -effect on its status, or on the running of its sentinel (which will -happen sooner or later). +signal if the process was running a program. The argument may be a +process, the name of a process, a buffer, or the name of a buffer. (A +buffer or buffer-name stands for the process that +@code{get-buffer-process} returns.) Calling @code{delete-process} on +a running process terminates it, updates the process status, and runs +the sentinel immediately. If the process has already terminated, +calling @code{delete-process} has no effect on its status, or on the +running of its sentinel (which will happen sooner or later). + +If the process object represents a network, serial, or pipe +connection, its status changes to @code{closed}; otherwise, it changes +to @code{signal}, unless the process already exited. @xref{Process +Information, process-status}. @smallexample @group @@ -886,7 +942,8 @@ This function returns a list of all processes that have not been deleted. @defun get-process name This function returns the process named @var{name} (a string), or -@code{nil} if there is none. +@code{nil} if there is none. The argument @var{name} can also be a +process object, in which case it is returned. @smallexample @group @@ -900,7 +957,9 @@ This function returns the process named @var{name} (a string), or This function returns the command that was executed to start @var{process}. This is a list of strings, the first string being the program executed and the rest of the strings being the arguments that -were given to the program. +were given to the program. For a network, serial, or pipe connection, +this is either @code{nil}, which means the process is running or +@code{t} (process is stopped). @smallexample @group @@ -911,18 +970,19 @@ were given to the program. @end defun @defun process-contact process &optional key - -This function returns information about how a network or serial -process was set up. When @var{key} is @code{nil}, it returns -@code{(@var{hostname} @var{service})} for a network process, and -@code{(@var{port} @var{speed})} for a serial process. -For an ordinary child process, this function always returns @code{t}. +This function returns information about how a network, a serial, or a +pipe connection was set up. When @var{key} is @code{nil}, it returns +@code{(@var{hostname} @var{service})} for a network connection, +@code{(@var{port} @var{speed})} for a serial connection, and @code{t} +for a pipe connection. For an ordinary child process, this function +always returns @code{t} when called with a @code{nil} @var{key}. If @var{key} is @code{t}, the value is the complete status information -for the connection, server, or serial port; that is, the list of -keywords and values specified in @code{make-network-process} or -@code{make-serial-process}, except that some of the values represent -the current status instead of what you specified. +for the connection, server, serial port, or pipe; that is, the list of +keywords and values specified in @code{make-network-process}, +@code{make-serial-process}, or @code{make-pipe-process}, except that +some of the values represent the current status instead of what you +specified. For a network process, the values include (see @code{make-network-process} for a complete list): @@ -947,8 +1007,9 @@ this value is the actual port number. @code{:local} and @code{:remote} are included even if they were not specified explicitly in @code{make-network-process}. -For a serial process, see @code{make-serial-process} and -@code{serial-process-configure} for a list of keys. +For a serial connection, see @code{make-serial-process} and +@code{serial-process-configure} for the list of keys. For a pipe +connection, see @code{make-pipe-process} for the list of keys. If @var{key} is a keyword, the function returns the value corresponding to that keyword. @@ -956,10 +1017,12 @@ to that keyword. @defun process-id process This function returns the @acronym{PID} of @var{process}. This is an -integer that distinguishes the process @var{process} from all other -processes running on the same computer at the current time. The -@acronym{PID} of a process is chosen by the operating system kernel when the -process is started and remains constant as long as the process exists. +integral number that distinguishes the process @var{process} from all +other processes running on the same computer at the current time. The +@acronym{PID} of a process is chosen by the operating system kernel +when the process is started and remains constant as long as the +process exists. For network, serial, and pipe connections, this +function returns @code{nil}. @end defun @defun process-name process @@ -983,11 +1046,11 @@ for a process that has exited. @item signal for a process that has received a fatal signal. @item open -for a network connection that is open. +for a network, serial, or pipe connection that is open. @item closed -for a network connection that is closed. Once a connection -is closed, you cannot reopen it, though you might be able to open -a new connection to the same place. +for a network, serial, or pipe connection that is closed. Once a +connection is closed, you cannot reopen it, though you might be able +to open a new connection to the same place. @item connect for a non-blocking connection that is waiting to complete. @item failed @@ -1005,9 +1068,11 @@ if @var{process-name} is not the name of an existing process. @end group @end smallexample -For a network connection, @code{process-status} returns one of the symbols -@code{open} or @code{closed}. The latter means that the other side -closed the connection, or Emacs did @code{delete-process}. +For a network, serial, or pipe connection, @code{process-status} +returns one of the symbols @code{open}, @code{stop}, or @code{closed}. +The latter means that the other side closed the connection, or Emacs +did @code{delete-process}. The value @code{stop} means that +@code{stop-process} was called on the connection. @end defun @defun process-live-p process @@ -1018,24 +1083,29 @@ process is considered alive if its status is @code{run}, @code{open}, @defun process-type process This function returns the symbol @code{network} for a network -connection or server, @code{serial} for a serial port connection, or -@code{real} for a real subprocess. +connection or server, @code{serial} for a serial port connection, +@code{pipe} for a pipe connection, or @code{real} for a subprocess +created for running a program. @end defun @defun process-exit-status process This function returns the exit status of @var{process} or the signal number that killed it. (Use the result of @code{process-status} to determine which of those it is.) If @var{process} has not yet -terminated, the value is 0. +terminated, the value is 0. For network, serial, and pipe connections +that are already closed, the value is either 0 or 256, depending on +whether the connection was closed normally or abnormally. @end defun @defun process-tty-name process This function returns the terminal name that @var{process} is using for its communication with Emacs---or @code{nil} if it is using pipes -instead of a terminal (see @code{process-connection-type} in +instead of a pty (see @code{process-connection-type} in @ref{Asynchronous Processes}). If @var{process} represents a program running on a remote host, the terminal name used by that program on -the remote host is provided as process property @code{remote-tty}. +the remote host is provided as process property @code{remote-tty}. If +@var{process} represents a network, serial, or pipe connection, the +value is @code{nil}. @end defun @defun process-coding-system process @@ -1079,8 +1149,10 @@ This function sets the process plist of @var{process} to @var{plist}. Asynchronous subprocesses receive input when it is sent to them by Emacs, which is done with the functions in this section. You must -specify the process to send input to, and the input data to send. The -data appears on the standard input of the subprocess. +specify the process to send input to, and the input data to send. If +the subprocess runs a program, the data appears on the standard input +of that program; for connections, the data is sent to the connected +device or program. @c FIXME which? Some operating systems have limited space for buffered input in a @@ -1143,12 +1215,14 @@ The function returns @var{process}. @end defun @defun process-running-child-p &optional process -This function will tell you whether a @var{process} has given control -of its terminal to its own child process. If this is true, the -function returns the numeric ID of the foreground process group of -@var{process}; it returns @code{nil} if Emacs can be certain that this -is not so. The value is @code{t} if Emacs cannot tell whether this is -true. +This function will tell you whether a @var{process}, which must not be +a connection but a real subprocess, has given control of its terminal +to a child process of its own. If this is true, the function returns +the numeric ID of the foreground process group of @var{process}; it +returns @code{nil} if Emacs can be certain that this is not so. The +value is @code{t} if Emacs cannot tell whether this is true. This +function signals an error if @var{process} is a network, serial, or +pipe connection, or is the subprocess is not active. @end defun @node Signals to Processes @@ -1181,17 +1255,22 @@ user ``hung up the phone'', i.e., disconnected.) The argument @var{process} must be either a process, a process name, a buffer, a buffer name, or @code{nil}. A buffer or buffer name stands for a process through @code{get-buffer-process}. @code{nil} -stands for the process associated with the current buffer. An error -is signaled if @var{process} does not identify a process. +stands for the process associated with the current buffer. Except +with @code{stop-process} and @code{continue-process}, an error is +signaled if @var{process} does not identify an active process, or if +it represents a network, serial, or pipe connection. The argument @var{current-group} is a flag that makes a difference when you are running a job-control shell as an Emacs subprocess. If it is non-@code{nil}, then the signal is sent to the current process-group of the terminal that Emacs uses to communicate with the subprocess. If the process is a job-control shell, this means the shell's current -subjob. If it is @code{nil}, the signal is sent to the process group of -the immediate subprocess of Emacs. If the subprocess is a job-control -shell, this is the shell itself. +subjob. If @var{current-group} is @code{nil}, the signal is +sent to the process group of the immediate subprocess of Emacs. If +the subprocess is a job-control shell, this is the shell itself. If +@var{current-group} is @code{lambda}, the signal is sent to the +process-group that owns the terminal, but only if it is not the shell +itself. The flag @var{current-group} has no effect when a pipe is used to communicate with the subprocess, because the operating system does not @@ -1222,21 +1301,29 @@ Emacs. @end defun @defun stop-process &optional process current-group -This function stops the process @var{process} by sending the -signal @code{SIGTSTP}. Use @code{continue-process} to resume its +This function stops the specified @var{process}. If it is a real +subprocess running a program, it sends the signal @code{SIGTSTP} to +that subprocess. If @var{process} represents a network, serial, or +pipe connection, this function inhibits handling of the incoming data +from the connection; for a network server, this means not accepting +new connections. Use @code{continue-process} to resume normal execution. Outside of Emacs, on systems with job control, the stop character -(usually @kbd{C-z}) normally sends this signal. When -@var{current-group} is non-@code{nil}, you can think of this function as -typing @kbd{C-z} on the terminal Emacs uses to communicate with the -subprocess. +(usually @kbd{C-z}) normally sends the @code{SIGTSTP} signal to a +subprocess. When @var{current-group} is non-@code{nil}, you can think +of this function as typing @kbd{C-z} on the terminal Emacs uses to +communicate with the subprocess. @end defun @defun continue-process &optional process current-group -This function resumes execution of the process @var{process} by sending -it the signal @code{SIGCONT}. This presumes that @var{process} was -stopped previously. +This function resumes execution of the process @var{process}. If it +is a real subprocess running a program, it sends the signal +@code{SIGCONT} to that subprocess; this presumes that @var{process} +was stopped previously. If @var{process} represents a network, +serial, or pipe connection, this function resumes handling of the +incoming data from the connection. For serial connections, data that +arrived during the time the process was stopped might be lost. @end defun @deffn Command signal-process process signal @@ -1254,12 +1341,28 @@ children of Emacs. @xref{System Processes}. @cindex process output @cindex output from processes - The output that a subprocess writes to its standard output stream -is passed to a function called the @dfn{filter function}. The default -filter function simply inserts the output into a buffer, which is -called the associated buffer of the process (@pxref{Process -Buffers}). If the process has no buffer then the default filter -discards the output. + The output that an asynchronous subprocess writes to its standard +output stream is passed to a function called the @dfn{filter +function}. The default filter function simply inserts the output into +a buffer, which is called the associated buffer of the process +(@pxref{Process Buffers}). If the process has no buffer then the +default filter discards the output. + + If the subprocess writes to its standard error stream, by default +the error output is also passed to the process filter function. If +Emacs uses a pseudo-TTY (pty) for communication with the subprocess, +then it is impossible to separate the standard output and standard +error streams of the subprocess, because a pseudo-TTY has only one +output channel. In that case, if you want to keep the output to those +streams separate, you should redirect one of them to a file---for +example, by using an appropriate shell command via +@code{start-process-shell-command} or a similar function. + + Alternatively, you could use the @code{:stderr} parameter with a +non-@code{nil} value in a call to @code{make-process} +(@pxref{Asynchronous Processes, make-process}) to make the destination +of the error output separate from the standard output; in that case, +Emacs will use pipes for communicating with the subprocess. When a subprocess terminates, Emacs reads any pending output, then stops reading output from that subprocess. Therefore, if the @@ -1286,13 +1389,6 @@ from such processes, thus allowing them to produce more output before Emacs tries to read it. @end defvar - It is impossible to separate the standard output and standard error -streams of the subprocess, because Emacs normally spawns the subprocess -inside a pseudo-TTY, and a pseudo-TTY has only one output channel. If -you want to keep the output to those streams separate, you should -redirect one of them to a file---for example, by using an appropriate -shell command. - @menu * Process Buffers:: By default, output is put in a buffer. * Filter Functions:: Filter functions accept output from the process. @@ -1327,7 +1423,7 @@ Before Exit}). This confirmation is done by the function @code{kill-buffer-query-functions} (@pxref{Killing Buffers}). @defun process-buffer process -This function returns the associated buffer of the process +This function returns the associated buffer of the specified @var{process}. @smallexample @@ -1449,6 +1545,11 @@ standard output from the associated process. @emph{All} output from that process is passed to the filter. The default filter simply outputs directly to the process buffer. + By default, the error output from the process, if any, is also +passed to the filter function, unless the destination for the standard +error stream of the process was separated from the standard output +when the process was created (@pxref{Output from Processes}). + The filter function can only be called when Emacs is waiting for something, because process output arrives only at such times. Emacs waits when reading terminal input (see the function @@ -1472,8 +1573,8 @@ cases, the right way to do this is with the macro caught automatically, so that it doesn't stop the execution of whatever program was running when the filter function was started. However, if @code{debug-on-error} is non-@code{nil}, errors are not caught. -This makes it possible to use the Lisp debugger to debug the -filter function. @xref{Debugger}. +This makes it possible to use the Lisp debugger to debug filter +functions. @xref{Debugger}. Many filter functions sometimes (or always) insert the output in the process's buffer, mimicking the actions of the default filter. @@ -1511,8 +1612,8 @@ text arrives, you could insert a line like the following just before the @end smallexample To force point to the end of the new output, no matter where it was -previously, eliminate the variable @code{moving} and call -@code{goto-char} unconditionally. +previously, eliminate the variable @code{moving} from the example and +call @code{goto-char} unconditionally. @ignore In earlier Emacs versions, every filter function that did regular @@ -1835,10 +1936,11 @@ was not. @node Query Before Exit @section Querying Before Exit - When Emacs exits, it terminates all its subprocesses by sending them -the @code{SIGHUP} signal. Because subprocesses may be doing -valuable work, Emacs normally asks the user to confirm that it is ok -to terminate them. Each process has a query flag, which, if + When Emacs exits, it terminates all its subprocesses. For +subprocesses that run a program, it sends them the @code{SIGHUP} +signal; connections are simply closed. Because subprocesses may be +doing valuable work, Emacs normally asks the user to confirm that it +is ok to terminate them. Each process has a query flag, which, if non-@code{nil}, says that Emacs should ask for confirmation before exiting and thus killing that process. The default for the query flag is @code{t}, meaning @emph{do} query. @@ -2132,13 +2234,14 @@ the @code{open-network-stream} function described below. To distinguish the different types of processes, the @code{process-type} function returns the symbol @code{network} for a network connection or server, @code{serial} for a serial port -connection, or @code{real} for a real subprocess. +connection, @code{pipe} for a pipe connection, or @code{real} for a +real subprocess. The @code{process-status} function returns @code{open}, -@code{closed}, @code{connect}, or @code{failed} for network -connections. For a network server, the status is always -@code{listen}. None of those values is possible for a real -subprocess. @xref{Process Information}. +@code{closed}, @code{connect}, @code{stop}, or @code{failed} for +network connections. For a network server, the status is always +@code{listen}. Except for @code{stop}, none of those values is +possible for a real subprocess. @xref{Process Information}. You can stop and resume operation of a network process by calling @code{stop-process} and @code{continue-process}. For a server diff --git a/src/process.c b/src/process.c index 0593429..7ab92b0 100644 --- a/src/process.c +++ b/src/process.c @@ -928,7 +928,7 @@ If PROCESS has not yet exited or died, return 0. */) DEFUN ("process-id", Fprocess_id, Sprocess_id, 1, 1, 0, doc: /* Return the process id of PROCESS. This is the pid of the external process which PROCESS uses or talks to. -For a network connection, this value is nil. */) +For a network, serial, and pipe connections, this value is nil. */) (register Lisp_Object process) { pid_t pid; @@ -952,8 +952,8 @@ DEFUN ("process-command", Fprocess_command, Sprocess_command, 1, 1, 0, doc: /* Return the command that was executed to start PROCESS. This is a list of strings, the first string being the program executed and the rest of the strings being the arguments given to it. -For a network or serial process, this is nil (process is running) or t -\(process is stopped). */) +For a network or serial or pipe connection, this is nil (process is running) +or t (process is stopped). */) (register Lisp_Object process) { CHECK_PROCESS (process); @@ -1181,13 +1181,13 @@ DEFUN ("process-query-on-exit-flag", DEFUN ("process-contact", Fprocess_contact, Sprocess_contact, 1, 2, 0, doc: /* Return the contact info of PROCESS; t for a real child. -For a network or serial connection, the value depends on the optional -KEY arg. If KEY is nil, value is a cons cell of the form (HOST -SERVICE) for a network connection or (PORT SPEED) for a serial -connection. If KEY is t, the complete contact information for the -connection is returned, else the specific value for the keyword KEY is -returned. See `make-network-process' or `make-serial-process' for a -list of keywords. */) +For a network or serial or pipe connection, the value depends on the +optional KEY arg. If KEY is nil, value is a cons cell of the form +\(HOST SERVICE) for a network connection or (PORT SPEED) for a serial +connection; it is t for a pipe connection. If KEY is t, the complete +contact information for the connection is returned, else the specific +value for the keyword KEY is returned. See `make-network-process', +\`make-serial-process', or `make-pipe-process' for the list of keywords. */) (register Lisp_Object process, Lisp_Object key) { Lisp_Object contact; @@ -1254,7 +1254,7 @@ a socket connection. */) DEFUN ("process-type", Fprocess_type, Sprocess_type, 1, 1, 0, doc: /* Return the connection type of PROCESS. -The value is either the symbol `real', `network', or `serial'. +The value is either the symbol `real', `network', `serial', or `pipe'. PROCESS may be a process, a buffer, the name of a process or buffer, or nil, indicating the current buffer's process. */) (Lisp_Object process) @@ -6156,8 +6156,8 @@ See function `interrupt-process' for more details on usage. */) DEFUN ("stop-process", Fstop_process, Sstop_process, 0, 2, 0, doc: /* Stop process PROCESS. May be process or name of one. See function `interrupt-process' for more details on usage. -If PROCESS is a network or serial process, inhibit handling of incoming -traffic. */) +If PROCESS is a network or serial or pipe connection, inhibit handling +of incoming traffic. */) (Lisp_Object process, Lisp_Object current_group) { if (PROCESSP (process) && (NETCONN_P (process) || SERIALCONN_P (process) commit 89eb09f6a1df176fbaa3cbb996f60948efc5f463 Author: Paul Eggert Date: Tue Aug 23 12:27:54 2016 -0700 * etc/PROBLEMS: Mention gnutls-cli 3.5.3 (Bug#24247). diff --git a/etc/PROBLEMS b/etc/PROBLEMS index 496c7df..008f5a1 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -609,6 +609,14 @@ could run out of file descriptors. You won't be able to open new files. auto-revert-use-notify is set to nil in global-auto-revert-mode, therefore. +*** TLS problems, e.g., Gnus hangs when fetching via imaps +http://debbugs.gnu.org/24247 + +gnutls-cli 3.5.3 (2016-08-09) does not generate a "- Handshake was +completed" message that tls.el relies upon, causing affected Emacs +functions to hang. To work around the problem, use older or newer +versions of gnutls-cli, or use Emacs's built-in gnutls support. + * Runtime problems related to font handling ** Characters are displayed as empty boxes or with wrong font under X.