diff --git a/CONTRIBUTE b/CONTRIBUTE index 5102b4fe4f14..c12f0cc08dbb 100644 --- a/CONTRIBUTE +++ b/CONTRIBUTE @@ -183,13 +183,19 @@ intended for more-conservative changes such as bug fixes. Typically, collective development is active on the master branch and possibly on the current release branch. Periodically, the current release branch is merged into the master, using the gitmerge function described in -admin/notes-git-workflow. +admin/notes/git-workflow. If you are fixing a bug that exists in the current release, be sure to commit it to the release branch; it will be merged to the master branch later by the gitmerge function. -However, if you know that the change will be difficult to merge to the +Documentation fixes (in doc strings, in manuals, and in comments) +should always go to the release branch, if the documentation to be +fixed exists and is relevant to the release-branch codebase. Doc +fixes are always considered "safe" -- even when a release branch is in +feature freeze, it can still receive doc fixes. + +When you know that the change will be difficult to merge to the master (e.g., because the code on master has changed a lot), you can apply the change to both master and branch yourself. It could also happen that a change is cherry-picked from master to the release diff --git a/ChangeLog.2 b/ChangeLog.2 index eb336c767e95..0b73dc2f8414 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -1,3 +1,6348 @@ +2016-11-28 Eli Zaretskii + + Fix 'expand-file-name' during startup on MS-Windows + + * src/w32.c (w32_init_file_name_codepage): New function, resets + file_name_codepage and w32_ansi_code_page to undo the values + recorded during dumping. + (codepage_for_filenames): Fix an embarrassing typo. Ignore the + cached value of file-name encoding if it is nil, i.e. not + initialized yet. Actually cache the last used file-name encoding + to avoid calling APIs when not necessary. + + * src/w32.h (w32_init_file_name_codepage): Add prototype. + + * src/w32term.c (syms_of_w32term): Set the value of + w32_unicode_filenames according to the OS version. This avoids + resetting it during startup, which then causes temacs to run with + the incorrect value. + + * src/emacs.c (main): Call w32_init_file_name_codepage early + during the startup. + + * src/fileio.c (Fexpand_file_name) [WINDOWSNT]: Update 'newdir' + after converting $HOME to a UTF-8 string, so that 'newdirlim' is + consistent with it. (Bug#25038) + + * lisp/international/mule-cmds.el (set-locale-environment): Set + 'default-file-name-coding-system' to the ANSI codepage even in + non-interactive sessions. + + * lisp/files.el (directory-abbrev-alist, abbreviated-home-dir): + Doc fix. + (abbreviate-file-name): Decode 'abbreviated-home-dir' if it is a + unibyte string. + + * doc/lispref/files.texi (Directory Names): Index + 'directory-abbrev-alist'. + +2016-11-28 Nicolas Petton + + * admin/authors.el (authors-renamed-files-alist): Addition. + +2016-11-28 Glenn Morris + + Tweak refcard note about documentation location + + * etc/refcards/calccard.tex, etc/refcards/cs-dired-ref.tex: + * etc/refcards/cs-refcard.tex, etc/refcards/cs-survival.tex: + * etc/refcards/de-refcard.tex, etc/refcards/dired-ref.tex: + * etc/refcards/fr-dired-ref.tex, etc/refcards/fr-refcard.tex: + * etc/refcards/fr-survival.tex, etc/refcards/gnus-refcard.tex: + * etc/refcards/orgcard.tex, etc/refcards/pl-refcard.tex: + * etc/refcards/pt-br-refcard.tex, etc/refcards/refcard.tex: + * etc/refcards/ru-refcard.tex, etc/refcards/sk-dired-ref.tex: + * etc/refcards/sk-refcard.tex, etc/refcards/sk-survival.tex: + * etc/refcards/survival.tex, etc/refcards/vipcard.tex: + * etc/refcards/viperCard.tex: Tweak documentation url. + +2016-11-28 Glenn Morris + + Improve treatment of Fortran's "class is" + + * lisp/progmodes/f90.el (f90-start-block-re, f90-no-block-limit): + Handle "class is". (Bug#25039) + * test/automated/f90.el (f90-test-bug25039): New test. + +2016-11-28 Nicolas Petton + + Bump Emacs version to 25.1.90 + + * README: + * configure.ac: + * msdos/sed2v2.inp: + * nt/README.W32: Bump Emacs version to 25.1.90 + +2016-11-27 Nicolas Petton + + Bump Emacs version + + * README: + * configure.ac: + * etc/NEWS: + * msdos/sed2v2.inp: + * nt/README.W32: Bump Emacs version to 25.2.90 + +2016-11-26 Karl Fogel + + Handle TeX comments when making new paragraph + + * lisp/textmodes/tex-mode.el (tex-handle-newline): New function. + Handle comment case directly, and dispatch to `tex-terminate-paragraph' + for original behavior in non-comment case. + (tex-mode-map): Bind above to C-j, replacing `tex-terminate-paragraph'. + +2016-11-25 Eli Zaretskii + + Restore keystroke echo in 'C-q' + + * lisp/simple.el (read-quoted-char): Use 'read-event' instead of + 'read-key', to avoid losing the keystroke echo in 'C-q'. (Bug#24635) + +2016-11-25 Eli Zaretskii + + Improve documentation of 'current-word' + + * lisp/simple.el (current-word): Clarify and improve the doc + string. (Bug#24979) + +2016-11-25 Chunyang Xu + + Fix a typo in an Eshell defcustom + + * lisp/eshell/esh-mode.el (eshell-scroll-to-bottom-on-output): Fix + a typo in the 'others' standard value. (Bug#24983) + +2016-11-24 Hong Xu (tiny change) + + Minor copyedits of electric-pair-mode + + * doc/emacs/programs.texi (Matching): Add index entries. Fix + typos. (Bug#25012) + +2016-11-24 Eli Zaretskii + + Fix documentation of 'invocation-directory' + + * doc/lispref/os.texi (System Environment): Fix wording of the + description of 'invocation-directory'. (Bug#24999) + +2016-11-23 Glenn Morris + + * admin/authors.el (authors-aliases): Add an entry. + +2016-11-22 Philipp Stephani + + Guard terminal parameter in XTerm mouse mode + + It has been observed (in the HTerm terminal emulator) that the + event stored in the 'xterm-mouse-last-down' terminal parameter gets + overwritten during a mouse drag operation, causing Emacs to attempt to + synthesize the non-existing event. Copy the event into + the terminal parameter to protect against such modifications. + + * lisp/xt-mouse.el (xterm-mouse-translate-1): Guard against modification + of input event list. + +2016-11-21 Nicolas Petton + + * etc/AUTHORS: Regenerate the AUTHORS file + +2016-11-21 Nicolas Petton + + Update ChangeLog files and authors.el + + * admin/authors.el (authors-renamed-files-alist): Add entries for + obsolete files. + * ChangeLog.2: Update. + +2016-11-21 Eli Zaretskii + + Fix menu bindings of Dired 'A' and 'Q' commands + + * lisp/dired.el (dired-mode-map): Rebind "Search Files" and "Query + Replace in Files" menu items to 'dired-do-find-regexp' and + 'dired-do-find-regexp-and-replace', respectively. (Bug#24977) + +2016-11-20 Eli Zaretskii + + Avoid errors in shr-pixel-column due to dedicated windows + + * lisp/net/shr.el (shr-pixel-column): If we are switching to + another buffer in the selected window, make that window + temporarily non-dedicated. (Bug#24950) + +2016-11-20 Tino Calancha + + Update format-time-string documentation + + * doc/lispref/os.texi (Time Parsing): + Document %F, %g, %G, %u and %V. + +2016-11-19 Eli Zaretskii + + * admin/release-process: Update versions and blocking bug numbers. + +2016-11-18 Eli Zaretskii + + Improve documentation of functions that accept time values + + * doc/lispref/os.texi (Time Calculations): Mention the meaning of + 'nil' or a scalar number as the time-value argument. Add a + cross-reference to 'float-time' for computing a time difference as + a scalar number of seconds. + + * src/editfns.c (Fformat_time_string, Ftime_less_p) + (Ftime_subtract, Ftime_add, Fdecode_time, Fcurrent_time_string) + (Fcurrent_time_zone): Mention in the doc strings the meaning of + nil argument and the fact that a time value can be a scalar number + of seconds since the epoch. + (Ftime_subtract): Mention 'float-time'. + +2016-11-18 Daniel Colascione + + Speed up initialization by preferring /dev/urandom to GnuTLS + + * src/sysdep.c (init_random): Try /dev/urandom before GnuTLS. + + (cherry picked from commit a37eba849eddc41375ad73974f6fcb1258aa8eba) + +2016-11-18 Glenn Morris + + Add a comment in generated refcards about the source + + * etc/refcards/calccard.tex, etc/refcards/cs-dired-ref.tex: + * etc/refcards/cs-refcard.tex, etc/refcards/cs-survival.tex: + * etc/refcards/de-refcard.tex, etc/refcards/dired-ref.tex: + * etc/refcards/fr-dired-ref.tex, etc/refcards/fr-refcard.tex: + * etc/refcards/fr-survival.tex, etc/refcards/gnus-refcard.tex: + * etc/refcards/orgcard.tex, etc/refcards/pl-refcard.tex: + * etc/refcards/pt-br-refcard.tex, etc/refcards/refcard.tex: + * etc/refcards/ru-refcard.tex, etc/refcards/sk-dired-ref.tex: + * etc/refcards/sk-refcard.tex, etc/refcards/sk-survival.tex: + * etc/refcards/survival.tex, etc/refcards/vipcard.tex: + * etc/refcards/viperCard.tex: Add comment about the source. + +2016-11-17 Dmitry Gutov + + js-mode: Fix indent problem after a regexp + + * lisp/progmodes/js.el (js--looking-at-operator-p): Check that the + slash is not ending a regexp (bug#24854). + +2016-11-16 Eli Zaretskii + + Fix sluggish display of symbols in UTF-8 language environment + + * lisp/international/fontset.el (setup-default-fontset): Make sure + Symbola and FreeMono are set up in the default fontset as belonging + to the "iso10646-1" registry. In the UTF-8 locale, this avoids a + long and futile search for a suitable font, whose side effect is a + lot of consing, which then hits the font-cache compacting issue, + and causes very sluggish redisplay of characters displayed by + these fonts. All this happens because the default for the + registry is "iso8859-1". (Bug#24953) + +2016-11-16 Glenn Morris + + Don't confuse how Texinfo outputs @var with the input + + * doc/emacs/rmail.texi (Movemail): + * doc/lispref/control.texi (Pattern matching case statement): + * doc/lispref/frames.texi (Size and Position): + * doc/lispref/processes.texi (Asynchronous Processes): + * doc/lispref/text.texi (Document Object Model): + * doc/lispref/windows.texi (Coordinates and Windows): + Do not upper-case the argument of @var. + +2016-11-16 Glenn Morris + + * doc/lispref/display.texi (Scroll Bars): + * doc/lispref/frames.texi (Size and Position): + * doc/lispref/windows.texi (Window Sizes): Fix arglist typos. + + * doc/emacs/cmdargs.texi (Initial Options): Copyedit for --daemon. + +2016-11-15 Eli Zaretskii + + More fixes in copyright notices in etc/refcards/ + + * etc/refcards/calccard.tex: + * etc/refcards/cs-dired-ref.tex: + * etc/refcards/cs-refcard.tex: + * etc/refcards/cs-survival.tex: + * etc/refcards/de-refcard.tex: + * etc/refcards/dired-ref.tex: + * etc/refcards/fr-dired-ref.tex: + * etc/refcards/fr-refcard.tex: + * etc/refcards/fr-survival.tex: + * etc/refcards/orgcard.tex: + * etc/refcards/pl-refcard.tex: + * etc/refcards/pt-br-refcard.tex: + * etc/refcards/refcard.tex: + * etc/refcards/ru-refcard.tex: + * etc/refcards/sk-dired-ref.tex: + * etc/refcards/sk-refcard.tex: + * etc/refcards/sk-survival.tex: + * etc/refcards/survival.tex: + * etc/refcards/vipcard.tex: + * etc/refcards/viperCard.tex: Change "GNU Emacs" to "this + document" in copyright notices. (Bug#24520) + +2016-11-13 Eli Zaretskii + + Update copyright text in refcards + + * etc/refcards/viperCard.tex: + * etc/refcards/vipcard.tex: + * etc/refcards/survival.tex: + * etc/refcards/sk-survival.tex: + * etc/refcards/sk-dired-ref.tex: + * etc/refcards/sk-refcard.tex: + * etc/refcards/ru-refcard.tex: + * etc/refcards/refcard.tex: + * etc/refcards/pt-br-refcard.tex: + * etc/refcards/pl-refcard.tex: + * etc/refcards/orgcard.tex: + * etc/refcards/gnus-refcard.tex: + * etc/refcards/fr-survival.tex: + * etc/refcards/fr-refcard.tex: + * etc/refcards/fr-dired-ref.tex: + * etc/refcards/dired-ref.tex: + * etc/refcards/de-refcard.tex: + * etc/refcards/cs-survival.tex: + * etc/refcards/cs-refcard.tex: + * etc/refcards/cs-dired-ref.tex: + * etc/refcards/calccard.tex: Update the copyright blurb. (Bug#24520) + +2016-11-12 Eli Zaretskii + + Fix Outline command names + + * doc/emacs/text.texi (Foldout): Use the outline-* names instead + of the obsolete aliases. (Bug#24890) + +2016-11-10 Philipp Stephani + + Send text received by bracketed paste to process + + See Bug#24639. + + * lisp/term.el (term--xterm-paste): New function. + (term-raw-map): Use it. + (xterm--pasted-text): Declare function from xterm.el. + +2016-11-10 Alan Mackenzie + + Correct the statement about programming modes always running prog-mode-hook. + + * doc/emacs/modes.texi (Major Modes): Amend the statement about programming + modes running prog-mode-hook to say that it applies to many (not all) such + modes, and specifying exactly which modes. + +2016-11-10 Eli Zaretskii + + Improve documentation of 'occur' + + * doc/emacs/search.texi (Other Repeating Search): Clarify how to + use Occur with search strings from last Isearch. (Bug#24890) + +2016-11-09 Noam Postavsky + + Do call debugger on failed cl-assert + + "Don't call debug on failed cl-assert..." removed the call to `debug' in + cl--assertion-failed because `debug' calls `kill-emacs' in batch mode, + thus messing up ert test runs. However, calling the debugger is useful + because it allows catching failed assertions even inside + `condition-case' calls. The problem with ert can be avoided by calling + `debugger' instead of `debug' directly, since ert installs its own + debugger while running tests. + + * lisp/emacs-lisp/cl-preloaded.el (cl--assertion-failed): Call + `debugger' if `debug-on-error' is non-nil. + +2016-11-09 Daniel Colascione + + Avoid infloop in python + + Fix bug#24905 + + * lisp/progmodes/python.el (python-info-docstring-p): Improve + infloop avoidance: replace (bobp) with generic test for + forward progress. + * test/automated/python-tests.el (python-bob-infloop-avoid): Add + test for bug#24905 + +2016-11-07 Eli Zaretskii + + Don't refer to obsolete FEATURE-unload-hook + + * doc/lispref/tips.texi (Coding Conventions): Refer to + FEATURE-unload-function rather than its obsolete variant + FEATURE-unload-hook. (Bug#24890) + +2016-11-07 Eli Zaretskii + + Improve documentation of dabbrevs + + * lisp/dabbrev.el (dabbrev-expand): Doc fix. (Bug#24890) + + * doc/emacs/abbrevs.texi (Dynamic Abbrevs): Mention + 'dabbrev-check-all-buffers', 'dabbrev-check-other-buffers', and + 'dabbrev-ignored-buffer-names' and their purpose. (Bug#24890) + +2016-11-07 Eli Zaretskii + + * lisp/chistory.el (list-command-history): Doc fix. (Bug#24890) + + * lisp/simple.el (set-mark-command): Doc fix. (Bug#24890) + +2016-11-07 Eli Zaretskii + + Improve documentation of some Help commands + + * doc/emacs/help.texi (Help Mode): Fix mistake in key sequences. + Mention the 'l' and 'r' keys. + (Misc Help): Mention that 'C-h m' describes key bindings. + (Bug#24890) + +2016-11-07 Eli Zaretskii + + Fix documentation of yes-or-no prompts + + * doc/emacs/mini.texi (Yes or No Prompts): Fix mistakes in key + sequences. (Bug#24890) + +2016-11-07 Eli Zaretskii + + Fix documentation of partial completion style + + * doc/emacs/mini.texi (Completion Styles): Fix the description of + the wildcard '*'. (Bug#24890) + +2016-11-07 Eli Zaretskii + + Fix documentation of the mode line on emacsclient frames + + * doc/emacs/screen.texi (Mode Line): Document the '@' indicator on + emacsclient frames. + +2016-11-07 Eli Zaretskii + + Fix description of 'C-z' in User manual + + * doc/emacs/entering.texi (Exiting): 'C-z' is bound to + 'suspend-frame'. (Bug#24890) + +2016-11-07 Eli Zaretskii + + Improve and clarify documentation of Outline Mode + + * doc/emacs/text.texi (Outline Visibility): Use the outline-* + names instead of the obsolete aliases. (Bug#24890) + + * lisp/outline.el (outline-hide-sublevels, outline-hide-other) + (outline-hide-body): Doc fixes. (Bug#24890) + +2016-11-06 Eli Zaretskii + + Add Emacs version number to nt/README.W32 + + * nt/README.W32: Include the version number of the latest Emacs + release. + + * admin/admin.el (set-version): Update the version in nt/README.W32. + +2016-11-06 Noam Postavsky + + Fix python-mode hideshow regexp + + 2015-02-07 "Fix hideshow integration[...]" changed the regexp added to + `hs-special-modes-alist' so that it worked when not searching from the + beginning of the line. However, this allows matching tokens ending in + "def" or "class", not just those keywords. This results in an infinite + loop in hs-hide-all (Bug #24815). + + * lisp/progmodes/python.el (python-mode): Add symbol boundaries around + the def|class matching part of the regexp added to + hs-special-modes-alist. + +2016-11-06 Paul Eggert + + Modernize usage of 'macOS' in doc and comments + + Apple changed the spelling of its operating system again, to "macOS", + effective with macOS 10.12 Sierra (2016-09-20). Change Emacs + documentation and comments to match this. Stick with older OS + spellings ("OS X", "Mac OS X") when talking about older releases where + the older names are more correct. + +2016-11-06 Paul Eggert + + Prefer comments /* like this */ in C code + + Emacs C code assumes C99 features, but has long used traditional + comments /* like this */ instead of C99-style comments // like this. + Stick with traditional comments for now, partly for style, partly as + it may be safer with compilers that are not fully in C99 mode. + +2016-11-05 Noam Postavsky + + * doc/lispref/loading.texi (Autoload): Better link (Bug#24845). + +2016-11-05 Eli Zaretskii + + Clarify documentation of face attribute functions + + * doc/lispref/display.texi (Attribute Functions): Make sure to + document that an omitted FRAME argument means the same as nil. + (Bug#24879) + +2016-11-05 Noam Postavsky + + Don't call debug on failed cl-assert + + Doing this causes problems when running ert tests, for + instance (Bug#24778). The call to `debug` when `debug-on-error' is + non-nil was introduced in 2015-02-14 "* lisp/emacs-lisp/cl*.el: Use + define-inline and move some code...". + + * lisp/emacs-lisp/cl-preloaded.el (cl--assertion-failed): Don't call + `debug' directly. + +2016-11-04 Phillip Lord + + Update README for precompiled windows Emacs. + + * nt/README.W32: Describe 64 and 32-bit downloads, optional + dependencies bundle. Remove old material on sourcing dependencies. + Remove references to Windows 95. Update GUI references to recent + Windows. Remove references to Usenet. + +2016-11-04 Hong Xu + + Clarify documentation of 'vc-responsible-backend' wrt symlinks + + * lisp/vc/vc.el (vc-responsible-backend): Clarify that symlinks + are not resolved when the VC backend is reported. + + * doc/lispref/files.texi (Truenames): Document + 'vc-responsible-backend'. (Bug#23436) + * doc/emacs/maintaining.texi (Version Control Systems): Fix a + typo. + +2016-11-04 Eli Zaretskii + + Clarify doc string of 'transpose-sexps' + + * lisp/simple.el (transpose-sexps): Clarify the conditions for + transposing sexps that are lists or strings. Mention the effect + of the prefix argument. (Bug#24860) + +2016-11-04 Tibor Csögör (tiny change) + + Fix docstring of 'browse-url-firefox-new-window-is-tab' + + * lisp/net/browse-url.el (browse-url-firefox-new-window-is-tab): + Remove obsolete note from docstring (obsoleted by previous commits). + (Bug#24843) + +2016-11-04 Eli Zaretskii + + Improve documentation of 'font-lock-remove-keywords' + + * doc/lispref/modes.texi (Customizing Keywords): Clarify the + 'keywords' argument of 'font-lock-remove-keywords'. Suggested by + Hong Xu . (Bug#24830) + +2016-11-04 Eli Zaretskii + + Fix documentation of the command summary key + + * doc/misc/info.texi (Help-^L, Help-Xref, Top): Emacs Info uses + '?' for the summary of commands, whereas the stand-alone reader + uses 'H'. (Bug#24825) + +2016-11-04 Eli Zaretskii + + Mark relocation workarounds with REL_ALLOC + + * src/search.c (boyer_moore): Mark workarounds for ralloc.c + relocation of buffer text with "#ifdef REL_ALLOC". + +2016-11-02 Thomas Fitzsimmons + + Fix documentation for 'eudc-options-file' + + * doc/misc/eudc.texi (The Server Hotlist): Update the default + value of 'eudc-options-file'. + + Backport: + + (cherry picked from commit 0575fd95d0b92a9a0ebff8df183a449190f74dbc) + +2016-11-02 Tibor Csögör + + Fix documentation of 'eudc-inline-expansion-format' + + * doc/misc/eudc.texi (Inline Query Expansion): Fix the default value of + 'eudc-inline-expansion-format'. (Bug#24840) + + Backport: + + (cherry picked from commit 1fef1387c387d80f8ece326621539b89a6965702) + +2016-10-31 Clément Pit--Claudel + + python.el: Fix detection of native completion in Python 3 (bug #24401) + + With Python 3.5, (python-shell-completion-native-get-completions ... "") + would return an empty list, causing python.el to think that native + completion was unavailable (the difference between Python 2 and Python 3 + is due to https://bugs.python.org/issue25660). + + * lisp/progmodes/python.el (python-shell-completion-native-try): Use "_" + to check whether native completion is available instead of "". + +2016-10-26 Glenn Morris + + * Makefile.in (install-arch-indep): Skip etc/refcards/emacsver.tex.in. + +2016-10-26 Stefan Monnier + + * lisp/subr.el (set-transient-map): Exit for unbound events (bug#24755). + +2016-10-26 Eli Zaretskii + + Update category-table for Chinese characters + + * lisp/international/characters.el (standard-category-table): + Update the ranges of Han and Chinese characters. (Bug#24798) + +2016-10-26 Noam Postavsky + + Inhibit buffer relocation during regex searches + + * src/search.c (looking_at_1, fast_looking_at, search_buffer): Prevent + relocation of buffer contents during calls to re_search_2. This ensures + the pointers into buffer text won't be invalidated by + r_alloc_sbrk (called from malloc with configurations where + REL_ALLOC=yes). + +2016-10-26 Noam Postavsky + + Revert fixes to allocation of regex matching + + The fix was not complete, and completing it was proving too complicated. + + - Revert "* src/regex.c (re_search_2): Make new code safe for + -Wjump-misses-init." + This reverts commit c2a17924a57483d14692c8913edbe8ad24b5ffbb. + - Revert "Port to GCC 6.2.1 + --enable-gcc-warnings" + This reverts commit f6134bbda259c115c06d4a9a3ab5c39340a15949. + - Revert "Fix handling of allocation in regex matching" + This reverts commit ad66b3fadb7ae22a4cbb82bb1507c39ceadf3897. + - Revert "Fix handling of buffer relocation in regex.c functions" + This reverts commit ee04aedc723b035eedaf975422d4eb242894121b. + +2016-10-25 Eli Zaretskii + + Comment for bug#24793 + + * lisp/info.el (Info-mode-font-lock-keywords): Add a comment + explaining why `..' quoting is not fontified using the + 'Info-quoted' face. (Bug#24793) + +2016-10-25 Paul Eggert + + Default REL_ALLOC to 'no' + + This should make ralloc-related bugs less likely on GNU/Linux + systems with bleeding-edge glibc. See the email thread containing: + http://lists.gnu.org/archive/html/emacs-devel/2016-10/msg00801.html + Do not merge to master. + * configure.ac (REL_ALLOC): Default to 'no' on all platforms, not + merely on platforms with Doug Lea malloc. Although bleeding-edge + glibc no longer exports __malloc_initialize_hook and so longer + passes the configure-time test for Doug Lea malloc, ralloc tickles + longstanding bugs like Bug#24358 and Bug#24764 and Emacs is likely + to be more reliable without it. This patch is not needed on + master, which uses hybrid malloc in this situation. + +2016-10-24 Eli Zaretskii + + Yet another fix for using pointers into buffer text + + * src/search.c (boyer_moore): Update pointers to buffer text + after call to set_search_regs. (Bug#24358) + +2016-10-24 Eli Zaretskii + + Another fix for using pointer to buffer text + + * src/search.c (Freplace_match): Move the call to BYTE_POS_ADDR + after the call to xpalloc, to avoid the danger of buffer text + relocation after its address was taken. (Bug#24358) + +2016-10-24 Michael Albinus + + Fix Bug#24478 + + * lisp/net/tramp-sh.el (tramp-histfile-override): Change default value + to "~/.tramp_history". + (tramp-open-shell): Check proper HISTFILE setting. + (tramp-maybe-open-connection): Cleanup also for errors. (Bug#24478) + +2016-10-24 Paul Eggert + + Port --enable-gcc-warnings to bleeding-edge glibc + + Bleeding-edge glibc sets emacs_cv_var_doug_lea_malloc to 'no'. + Do not merge to master. + * configure.ac: Check for valloc decl when compiling gmalloc.c. + * src/gmalloc.c (emacs_abort) [emacs]: Adjust decl to match + what is in lisp.h. Remove duplicate decl. + (aligned_alloc): #undef before defining. + (aligned_alloc, memalign) [!MSDOS]: Declare. + (valloc) [HAVE_DECL_VALLOC]: Remove duplicate decl. + +2016-10-23 Eli Zaretskii + + Fix handling of buffer relocation in regex.c functions + + * src/search.c (search_buffer): Updated the base pointer to buffer + text after the call to re_search_2. (Bug#24358) + +2016-10-23 Eli Zaretskii + + Avoid relocating buffers while libxml2 reads its text + + * src/xml.c (parse_region) [REL_ALLOC]: Freeze the ralloc arena + while libxml2 reads the current buffer's text. (Bug#24764) + +2016-10-23 Eli Zaretskii + + Attempt to catch reads from a buffer that is relocated + + * src/xml.c (parse_region): Add assertion to ensure buffer text is + not relocated while libxml2 is reading it. (Bug#24764) + +2016-10-23 Eli Zaretskii + + Revert "* lisp/simple.el (process-menu-mode, list-processes--refresh):" + + This reverts commit a4285bcb1114e29200001f33af9b4802167d6140. + Do not merge to master! + +2016-10-23 Eli Zaretskii + + Revert "* lisp/ibuf-ext.el (ibuffer-do-shell-command-file):" + + This reverts commit b0c447e4668116cecfda91d0203cb7cac2486d92. + Do not merge to master! + +2016-10-23 Eli Zaretskii + + Revert "* lisp/ibuffer.el (ibuffer): Improve 'other-window' case. (Bug#23617)" + + This reverts commit cf3c19b0298236293d9c56d5ba425af4f42c1f8e. + Do not merge to master! + +2016-10-23 Eli Zaretskii + + ;* src/w32heap.c: Fix typo and wording of the comments. + +2016-10-23 Paul Eggert + + electric-quote mode no longer worries about coding + + * doc/emacs/text.texi (Quotation Marks), etc/NEWS: Document this. + * lisp/electric.el (electric--insertable-p): Remove. + All uses removed (Bug#24759). + +2016-10-23 Paul Eggert + + * src/regex.c (re_search_2): Make new code safe for -Wjump-misses-init. + +2016-10-23 Paul Eggert + + Port to GCC 6.2.1 + --enable-gcc-warnings + + * src/regex.c (ENSURE_FAIL_STACK, re_search_2): + Redo recent regex changes to avoid complaints from GCC 6.2.1 when + Emacs is configured with --enable-gcc-warnings. Also, work around + GCC bug 78081, which was uncovered by this new code. + +2016-10-22 Noam Postavsky + + Explain how to debug emacsclient lisp errors + + * doc/lispref/debugging.texi (Error Debugging): Mention that + debug-on-signal is useful for getting backtraces from + emacsclient (Bug#24616). + +2016-10-22 Noam Postavsky + + Let describe-function work for lambda again + + Since commit "* lisp/help-fns.el (describe-function): More type + checking[...]", `describe-function' throws a user-error when given a + non-symbol. This prevents the [back] button in a *Help* buffer from + working when the page it goes back to describes an anonymous + function (e.g., the result of `describe-key' on a key which is bound to + a lambda form). + + * lisp/help-fns.el (describe-function): Move the checks on FUNCTION + being an fbound symbol into the `interactive' form. This allows + non-interactive calls to pass an anonymous function (Bug #24221). Note + that passing a non-bound symbol non-interactively will still trigger a + `void-function' error from `describe-function-1'. + +2016-10-22 Noam Postavsky + + Fix kill-line's docstring + + * lisp/simple.el (kill-line): The effect of show-trailing-whitespace is + important lines with *no* nonblanks (Bug #16654). + +2016-10-22 Noam Postavsky + + Fix handling of allocation in regex matching + + `re_match_2_internal' uses pointers to the lisp objects that it + searches. Since it may call malloc when growing the "fail stack", these + pointers may be invalidated while searching, resulting in memory + curruption (Bug #24358). + + To fix this, we check the pointer that the lisp object (as specified by + re_match_object) points to before and after growing the stack, and + update existing pointers accordingly. + + * src/regex.c (STR_BASE_PTR): New macro. + (ENSURE_FAIL_STACK, re_search_2): Use it to convert pointers into + offsets before possible malloc call, and back into pointers again + afterwards. + (POS_AS_IN_BUFFER): Add explanatory comment about punning trick. + * src/search.c (search_buffer): Instead of storing search location as + pointers, store them as pointers and recompute the corresponding address + for each call to `re_search_2'. + (string_match_1, fast_string_match_internal, fast_looking_at): + * src/dired.c (directory_files_internal): Set `re_match_object' to Qnil + after calling `re_search' or `re_match_2'. + * src/regex.h (re_match_object): Mention new usage in commentary. + +2016-10-21 Paul Eggert + + * lisp/electric.el (electric-quote-mode): Improve doc (Bug#24759). + +2016-10-20 Tino Calancha + + vc-region-history: Search just on lines intersecting the region + + * lisp/vc/vc.el (vc-region-history): If region ends in the beginning + of a line, then exclude that line from the search (Bug#24725). + +2016-10-19 Eli Zaretskii + + Fix documentation of 'alist-get' + + * doc/lispref/lists.texi (Association Lists): Fix the signature of + 'alist-get'. Fix the markup, the wording, and the punctuation in + the description. (Bug#24740) + +2016-10-19 Eli Zaretskii + + * src/regex.h (re_match_object): Improve commentary. + +2016-10-19 Alan Third + + Fix cursor at bottom left of rectangle (bug#24364) + + * lisp/rect.el (rectangle--col-pos): Don't assume point at EOL doesn't + require rectangle--point-crutches to be set. + +2016-10-19 Michael Albinus + + Change Tramp version to "2.2.13.25.2" + + * doc/misc/trampver.texi: + * lisp/net/trampver.el: Change version to "2.2.13.25.2". + +2016-10-19 Eli Zaretskii + + * lisp/emacs-lisp/autoload.el (update-directory-autoloads): Fix last change. + +2016-10-19 Eli Zaretskii + + Don't scan compiled module files for autoloads + + * lisp/emacs-lisp/autoload.el (update-directory-autoloads): Ignore + compiled module files. Make sure the extension really ends the + file name. + +2016-10-18 Michael Albinus + + Fix Bug#24698 + + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Don't send "stty tab0" to *BSD and Darwin machines. (Bug#24698) + +2016-10-18 Eli Zaretskii + + * lisp/subr.el (start-process): Doc fix. (Bug#24693) + +2016-10-18 Göktuğ Kayaalp + + Fix display of vc-dir CVS file statuses in subdirectories + + * lisp/vc/vc-cvs.el (vc-cvs-dir-status-files): Use 'cvs update' + instead of 'cvs status'. It's faster, easier to parse, and + relieves us of the need to use vc-expand-dirs. (Bug#24082) + (vc-cvs-after-dir-status): Parse its output. + +2016-10-17 Eli Zaretskii + + Update URL of MS-Windows optional DLLs + + * nt/README.W32: + * nt/INSTALL: Update the URL of the MS-Windows binaries of the + optional libraries built with MSYS2/MinGW64 project tools. + +2016-10-17 Eli Zaretskii + + Fix time-related data types in 2 editfns.c functions + + * src/editfns.c (format_time_string, Fcurrent_time_zone): Pass a + pointer to time_t value to emacs_localtime_rz and gmtime_r, + instead of relying on struct timespec's tv_sec member to be of + compatible type. + +2016-10-17 Tino Calancha + + * lisp/simple.el (process-menu-mode, list-processes--refresh): + Include PID. (Bug#21725) + + (cherry picked from commit b7adc2f23787eb72015cd705b873e229db6a5049) + +2016-10-17 Tino Calancha + + * lisp/ibuf-ext.el (ibuffer-do-shell-command-file): + Fix non-file-visiting-buffer case. (Bug#22678) + + (cherry picked from commit 738738259ba77fe17e433c64e0758ea59ab5bc75) + +2016-10-17 Tino Calancha + + * lisp/ibuffer.el (ibuffer): Improve 'other-window' case. (Bug#23617) + + (cherry picked from commit f4ef1a1fea15aa58fbb5e7a59bff260720658e49) + +2016-10-17 Paul Eggert + + Port to Ubuntu 16.10, which needs gcc -nopie + + * configure.ac (emacs_cv_prog_cc_no_pie): Rename from + emacs_cv_prog_cc_nopie. All usages changed. Check for -no-pie in + preference to -nopie (Bug#24682). Backport from master. + +2016-10-17 Glenn Morris + + * lisp/cus-start.el (exec-path): Handle nil elements. (Bug#24471) + +2016-10-16 Andreas Politz + + Catch the imenu-unavailable error in sh-mode completion table + + * lisp/progmodes/sh-script.el (sh--cmd-completion-table): + Catch the imenu-unavailable error (bug#24238). + +2016-10-16 Eli Zaretskii + + More char-width fixes + + * lisp/international/characters.el (char-width-table): More fixes + according to the latest EastAsianWidth.txt. (Bug#24705) + +2016-10-15 Eli Zaretskii + + Fix char-width-table values for some Emoji + + * lisp/international/characters.el (char-width-table): Add missing + range U+1F400..U+1F43E. (Bug#24699) + + * admin/notes/unicode: Mention the need to verify char-width-table + setting against data in EastAsianWidth.txt. + +2016-10-15 Eli Zaretskii + + Keep point when switching from and to *terminal* buffer + + * lisp/term.el (term-reset-size): Don't reset the size if it + didn't change. If the size did change, restore point after + adjusting the size. (Bug#24465) + +2016-10-15 Michael Albinus + + * INSTALL: Use correct Emacs release number 25. + +2016-10-14 Eli Zaretskii + + Avoid crashes due to objects read with the #n=object form + + * src/lread.c (read1): Use Fcons for 'placeholder', not AUTO_CONS, + because elements of the list in 'read_objects' cannot be allocated + off the stack. (Bug#24640) + +2016-10-13 Eli Zaretskii + + Improve doc string of 'completion-at-point-functions' + + * lisp/minibuffer.el (completion-at-point-functions): Doc fix. + (Bug#24663) + +2016-10-13 Philipp Stephani + + Fix crash in evaluating functions + + See Bug#24673 + + * src/eval.c (funcall_lambda): Fix crash for bogus functions such + as (closure). + +2016-10-13 Paul Eggert + + * src/filelock.c (current_lock_owner): Update comment. + +2016-10-12 Paul Eggert + + Port --enable-gcc-warnings to GCC 6.2.1 + + Backport from master. + * src/conf_post.h (GNUC_PREREQ): New macro. + * src/keyboard.c: Use it to work around GCC bug 54561. + * src/process.c (would_block): New function. + (server_accept_connection, wait_reading_process_output, send_process): + Use it. + +2016-10-12 Paul Eggert + + Work around Samba bug with ':' in symlink contents + + * src/filelock.c (current_lock_owner): When reading the contents + of a lock, treat the UTF-8 for U+F022 as if it were ':' (Bug#24656). + Backport from master. + +2016-10-12 Paul Eggert + + Port last_marked change to full-program optimizers + + * src/alloc.c (last_marked): Now EXTERNALLY_VISIBLE. + +2016-10-12 Eli Zaretskii + + Adapt GDB scripts to '--enable-check-lisp-object-type' builds + + * etc/emacs-buffer.gdb <$qnil>: New variable. + (ybuffer-list, yset-buffer): Use $qnil for comparing against + 'nil', as direct comparison with Qnil doesn't work in a build with + '--enable-check-lisp-object-type'. + + * src/.gdbinit: Adapt commands of the temporary breakpoint in + init_sys_modes to a build with '--enable-check-lisp-object-type'. + +2016-10-11 Eli Zaretskii + + Avoid optimizing out the last_marked[] array + + * src/alloc.c : No longer 'static', to avoid having + it optimized out in optimized builds, which then makes debugging + GC problems harder. + +2016-10-09 Alan Mackenzie + + CC Mode manual: remove reference to former Emacs variable last-command-char + + * doc/misc/cc-mode.texi (Hanging Semicolons and Commas): Replace reference to + variable last-command-char by one to macro c-last-command-char. + +2016-10-08 Eli Zaretskii + + Allow to disable compaction of font caches + + * src/font.c (syms_of_font) : New + boolean variable. + * src/alloc.c (compact_font_caches): Use it to bypass the call to + compact_font_cache_entry. (Bug#24634) (Bug#24565) + + * etc/NEWS: Mention the new variable. + +2016-10-08 Eli Zaretskii + + Allow selection of font for symbols as in Emacs 24.x + + * src/fontset.c (syms_of_fontset) : + New boolean variable. + (face_for_char): Use it to fall back to pre-Emacs 25.1 behavior + when selecting fonts for displaying symbol and punctuation + characters. (Bug#24644) + + * etc/NEWS: Mention the new variable. + +2016-10-08 Eli Zaretskii + + Fix horizontal scrolling during Isearch + + * lisp/isearch.el (isearch-update): Compute the window's body + width in a way that is correct when there are no fringes. + (Bug#24584) + +2016-10-08 Eli Zaretskii + + Fix infloop in redisplay due to truncated lines and invisible text + + * src/xdisp.c (forward_to_next_line_start): Don't call + 'get_next_display_element' after finding the end of line. This + avoids setting the row's end position to the wrong value when the + next screen line begins with invisible text; that wrong value + caused set_cursor_from_row position the cursor in the wrong screen + line, and eventually triggered bug#24109. + +2016-10-07 David Engster + + gitmerge: Add cherry pick to gitmerge-skip-regexp + + * admin/gitmerge.el (gitmerge-skip-regexp): Add "cherry picked + from commit", which is the string appended by 'git cherry-pick + -x'. + + (cherry picked from commit f648e4866981b142fca788372e1fd9013a0bb16a) + +2016-10-06 Eli Zaretskii + + Improve documentation of 'menu-bar-open' + + * lisp/term/w32-win.el (w32-menu-bar-open): Clarify that sometimes + two ESC keypresses are needed to exit the menu. + + * doc/emacs/screen.texi (Menu Bar): Qualify the description of how + to exit menus. (Bug#24596) + +2016-10-06 Eli Zaretskii + + Fix compilation with MinGW runtime 3.22.2 and w32api 3.18.2 + + * nt/inc/ms-w32.h (_WIN32_WINNT) [!MINGW_W64]: Undefine before + defining to avoid redefinition warnings. + + * nt/inc/sys/stat.h (_SYS_STAT_H, _INC_STAT_H): Define, to avoid + inclusion of sys/stat.h from the system headers, which could then + lead to compilation errors due to redefinition of 'struct stat' + etc. This is needed because latest versions of MinGW runtime + include sys/stat.h from wchar.h. + + * src/image.c (__MINGW_MAJOR_VERSION) [WINDOWSNT]: Temporarily + redefine to 4 to avoid conflict between 2 definitions of + MemoryBarrier. (Bug#24613) + + Do not merge to master! + +2016-10-05 John Wiegley + + Add documentation note from Alex + +2016-10-05 Aurelien Aptel + + * src/alloc.c: call only non-null finalizers + +2016-10-04 Karl Fogel + + Clarify that doc fixes are okay in feature freeze + + * CONTRIBUTE (branches): Explain that doc fixes are always safe, even + on a release branch in feature freeze. Tweak wording of paragraph + after that to avoid a misleading contrast. + +2016-10-04 Eli Zaretskii + + Avoid crashes when setting the cursor + + * src/xdisp.c (display_and_set_cursor): Don't index glyphs of a + glyph row if hpos is out of valid bounds. This avoids crashes in + some rare cases. (Bug#24614) + +2016-10-04 Philippe Vaucher + + Restore 'command-debug-status' functionality + + * src/callint.c (Fcall_interactively): Bind command-debug-status + to nil. This restores functionality inadvertently removed in + Emacs 25.1. (Bug#24555) + + * lisp/subr.el (command-debug-status): Declare obsolete. + + * doc/lispref/debugging.texi (Internals of Debugger): Document + that 'command-debug-status' is obsolete. + +2016-10-03 Karl Fogel + + Document yank behavior in the right place + + * lisp/simple.el (yank): Document the handling of the + `yank-handled-properties' and `yank-excluded-properties' variables, + and the `yank-handler' text property. + (yank-pop): Refer to `yank' now (bug#286) + + * lisp/subr.el (insert-for-yank): Refer to `yank' now. + (insert-for-yank-1): Refer to `insert-for-yank' now. + + See this thread for discussion: + + https://lists.gnu.org/archive/html/emacs-devel/2016-09/threads.html#00329 + From: Karl Fogel + To: Emacs Devel + Subject: Question about intended behavior of 'insert-for-yank-1'. + Date: Mon, 12 Sep 2016 00:17:14 -0500 + Message-ID: <874m5lr92d.fsf@red-bean.com> + +2016-10-03 Philipp Stephani + + Document nil args of compare-buffer-substrings + + * src/editfns.c (Fcompare_buffer_substrings): Document behavior when + the arguments are nil. + +2016-10-03 Katsumi Yamaoka + + * doc/misc/message.texi (Bcc Warning): Fix markup. + + * doc/misc/message.texi (Bcc Warning): + Document mml-secure-safe-bcc-list. + +2016-10-02 Noam Postavsky + + Don't require isearch-update before isearch-done + + It is useful to be able to call `isearch-done' unconditionally to + ensure a non-isearching state. + + * lisp/isearch.el (isearch-done): Check that `isearch--current-buffer' + is a live buffer before using it (Bug #21091). + * test/automated/isearch-tests.el (isearch--test-done): Test it. + + (cherry picked from commit 68f4b5292781bc331b040105c4079902b993835c) + +2016-10-02 Peder O. Klingenberg + + Avoid error in icalendar--read-element + + * lisp/calendar/icalendar.el (icalendar--read-element): Avoid a regex + stack overflow by not using regex to extract values from calendar + events. (Bug#24315) + + (cherry picked from commit 55dde6c1a21a792d3d75c19e612c74dd054aaf1e) + +2016-10-02 Lars Ingebrigtsen + + Make a menu less ambiguous + + * doc/emacs/custom.texi (Key Bindings): The Modifier Keys node + is about using modifier keys, not binding them (bug#10942). + + (cherry picked from commit 214f85a0a68b96a552ca605d601b33f6eef5c4ca) + +2016-10-02 Devon Sean McCullough + + Doc fix for url-http + + * lisp/url/url-http.el (url-http): Document better return values + (bug#13187) (tiny change) + + (cherry picked from commit 344303c8d9cb03d4778a73940e80e966280aa694) + +2016-10-01 Eli Zaretskii + + * lisp/frame.el (blink-cursor-delay): Doc fix. (Bug#24372) + +2016-09-30 Katsumi Yamaoka + + * lisp/gnus/gnus-art.el (gnus-button-handle-library): Fix typo. + +2016-09-27 Paul Eggert + + Regexp Functions doc minor fixes + + * doc/lispref/searching.texi (Regexp Functions): + Fix misspelling of “matching”. Use @table for table. + Reformat code example to fit into info file width (Bug#17862). + +2016-09-27 Katsumi Yamaoka + + 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). + +2016-09-26 Eli Zaretskii + + 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. + +2016-09-25 Eli Zaretskii + + Minor copyedits of MS-Windows installation instructions + + * nt/INSTALL: + * nt/README.W32: Add URL of Emacs dependencies on alpha.gnu.org. + +2016-09-23 Eli Zaretskii + + 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) + +2016-09-23 Eli Zaretskii + + 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) + +2016-09-23 Eli Zaretskii + + 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) + +2016-09-23 Eli Zaretskii + + 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) + +2016-09-23 Martin Rudalics + + 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) + +2016-09-23 Noam Postavsky + + 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) + +2016-09-23 Eli Zaretskii + + 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) + +2016-09-23 Eli Zaretskii + + 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) + +2016-09-23 Paul Eggert + + 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/automated/font-parse-tests.el (font-parse-tests--data): + Add test case for Monospace Serif. + + This is backport from master + (cherry picked from commit 36906806ccfc0e53f1d8c365ab0d7151288b7833) + +2016-09-23 Lars Ingebrigtsen + + 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) + +2016-09-23 Tino Calancha + + 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) + +2016-09-23 Eli Zaretskii + + Document 'timerp' + + * doc/lispref/os.texi (Timers): Document 'timerp'. (Bug#24511) + Improve indexing. + +2016-09-23 Eli Zaretskii + + 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) + +2016-09-23 Eli Zaretskii + + 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. + +2016-09-23 Eli Zaretskii + + 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. + +2016-09-23 Eli Zaretskii + + Increment Emacs version to 25.1.50 + + * README: + * configure.ac: + * etc/NEWS: + * msdos/sed2v2.inp: Bump the version to 25.1.50. + +2016-09-21 Eli Zaretskii + + 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. + +2016-09-21 Eli Zaretskii + + 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. + +2016-09-21 Eli Zaretskii + + 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) + +2016-09-20 Eli Zaretskii + + Improve nt/README.W32 instructions + + * nt/README.W32: Add instructions for installing 64-bit builds of + optional libraries. (Bug#24470) + +2016-09-17 Eli Zaretskii + + 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. + +2016-09-15 Nicolas Petton + + * etc/AUTHORS: Regenerate the AUTHORS file + +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 + + * src/fileio.c (Fwrite_region): Clarify that END is ignored if + START is nil. + * src/editfns.c (Fbuffer_size): Add short discussion about + narrowing. + * src/callproc.c (Fcall_process_region): Discuss behavior when + START and END are not buffer positions. + +2016-08-18 Eli Zaretskii + + Improve commentary in src/character.h + + * src/character.h (BYTES_BY_CHAR_HEAD, MULTIBYTE_LENGTH) + (MULTIBYTE_LENGTH_NO_CHECK, STRING_CHAR_AND_LENGTH): Remove stale + info from commentary and improve it. + +2016-08-17 Dmitry Gutov + + * etc/NEWS: Mention the change in json-encode-string. + + The change was made to fix bug#20154, and came up again in bug#24239. + +2016-08-16 Eli Zaretskii + + * src/doc.c (Fsubstitute_command_keys): Another fix for smart quotes. + + (Bug#24206) + +2016-08-16 Eli Zaretskii + + Avoid segfaults due to quoting in 'substitute-command-keys' + + * src/doc.c (Fsubstitute_command_keys): Correct character counts + when the input string is unibyte. (Bug#24206) + +2016-08-16 Martin Rudalics + + In NEWS describe new handling of window margins (Bug#24193) + + * etc/NEWS: Describe new handling of margins when splitting or + resizing windows (Bug#24193). + +2016-08-16 Martin Rudalics + + Facultatively ignore margins when splitting and resizing windows (Bug#24193) + + Provide a new window parameter 'min-margins' which allows to + ignore the actual widths of a window's margins when splitting or + resizing that window horizontally. This should serve as a + workaround for handling the problems raised by Bug#24193. + + * lisp/window.el (window--min-size-1): Handle new window + parameter 'min-margins'. + (split-window): Fix text of error messages. + * doc/lispref/windows.texi (Window Parameters): Describe new + parameter 'min-margins'. + +2016-08-14 Noam Postavsky + + Document CATEGORY arg to modify-category-entry + + * src/category.c (Fmodify_category_entry): Document CATEGORY argument. + +2016-08-13 Noam Postavsky + + Document char-script-table's effect on word motion + + * doc/lispref/positions.texi (Word Motion): Talk about + char-script-table (Bug #10494). + +2016-08-13 Eli Zaretskii + + Further fix for 'url-http-create-request' and multibyte strings + + * lisp/url/url-http.el (url-http-create-request): Run + url-mime-charset-string through url-http--encode-string. + (Bug#24117) + +2016-08-13 Noam Postavsky + + Fix docstring of eval-expression + + * lisp/simple.el (eval-expression): Fix the docstring to reflect the + fact that the prefix argument does not affect formatting for + integers (Bug #20691). + +2016-08-11 Eli Zaretskii + + Clarify when 'cursor' property is in effect + + * doc/lispref/text.texi (Special Properties): Minor copyedits. + (Bug#24179) + +2016-08-11 Dmitry Gutov + + Convert the remaining strings to unibyte before concatenating + + * lisp/url/url-http.el (url-http--encode-string): New function. + (url-http-create-request): Use it to convert ASCII to unibyte. + (Bug#24117) + +2016-08-11 Eli Zaretskii + + Fix bug with handling the bidi cache + + * src/xdisp.c (redisplay_window): Save and restore the state of + the bidi cache before reusing the iterator after calls to + try_window and try_window_reusing_current_matrix. + +2016-08-10 Eli Zaretskii + + * doc/lispref/text.texi (Change Hooks): Minor copyedits. + +2016-08-09 Eli Zaretskii + + Clarify documentation of before/after-change-functions + + * doc/lispref/text.texi (Change Hooks): Clarify that the hooks are + not called in balanced pairs. + +2016-08-06 Noam Postavsky + + Document use of vectors in keymaps + + * doc/lispref/keymaps.texi (Format of Keymaps): Mention vector + format (Bug #14797). + +2016-08-03 Alan Third + + Post AppDefined events from the main thread ONLY (bug#23934) + + * src/nsterm.h: Make nextappdefined var not just GNUStep. + * src/nsterm.m (ns_send_appdefined, sendFromMainThread): Remove GNUStep + +2016-08-03 John Wiegley + + Update to the AUTHORS file for Bob Weiner + + * etc/AUTHORS: Update the packages attributed to Bob Weiner + +2016-08-02 John Wiegley + + Revert "Fix local printer set to left aligned string formatter." + + This reverts commit 8a38e948b039516e70176ebe20c5349e2ade6ac5. + +2016-08-02 John Wiegley + + Revert "Fix ses-delete-blanks to delete only blanks + documentation." + + This reverts commit 3c97b0f7589e06aeb1ab0147f0ee32974c32926d. + +2016-08-02 John Wiegley + + Revert "Fix English." + + This reverts commit b275cc76f0c5ab49e81445fcc3420c8772aefd42. + +2016-08-01 Eli Zaretskii + + Improve doc strings of 'gud-gdb' and 'gdb' + + * lisp/progmodes/gdb-mi.el (gdb): + * lisp/progmodes/gud.el (gud-gdb): Doc fix. (Bug#24125) + +2016-08-01 Eli Zaretskii + + Fix doc string of 'minibuffer-message-timeout' + + * src/keyboard.c (syms_of_keyboard) : + Doc fix. (Bug#24123) + +2016-07-29 Vincent Belaïche + + Fix English. + + * doc/misc/ses.texi (Nonrelocatable references): Fix grammatically + incorrect English. + +2016-07-29 Vincent Belaïche + + Fix ses-delete-blanks to delete only blanks + documentation. + + * doc/misc/ses.texi (Quick Tutorial): Mention the '!' + 'ses-range' modifier as an alternative to 'ses+'. + (Advanced Features): Add a refernce to node 'Nonrelocatable + references' concerning function 'ses-rename-cell'. + (Standard formula functions): Mention the '!' 'ses-range' + modifier as an alternative to 'ses-delete-blanks'. + (More on cell printing): Fix fallback printer + definition. Minor editorial formatting changes. + (Nonrelocatable references): Document the use of + 'ses-rename-cell' as a better way to make cell reference + non-relocatable. + (The data area): Document the presence of local printer + definitions in the data area. + + * lisp/ses.el (ses-delete-blanks): Do not remove + *error*. Any error in an argument should propagate into the + using formula rather than being silently hidden ! + +2016-07-29 Noam Postavsky + + profiler: document prefix arg for tree expansion + + * doc/lispref/debugging.texi (Profiling): + * lisp/profiler.el (profiler-report-toggle-entry): Document use of + prefix argument to expand whole call trees. + +2016-07-29 Noam Postavsky + + Clarify usage of eshell-visual-options + + * lisp/eshell/em-term.el (eshell-visual-options): Add second option to + example usage (Bug #19627). + +2016-07-29 Noam Postavsky + + Fix comment in files-in-below-directory + + * doc/lispintro/emacs-lisp-intro.texi (Files List): Comment should not + say append, since the code is adding to front of list (Bug #21589). + +2016-07-28 Vincent Belaïche + + Fix local printer set to left aligned string formatter. + + * lisp/ses.el (ses-local-printer-compile): Add missing case + for left-aligned string formatter. + +2016-07-24 Nicolas Petton + + Bump Emacs version to 25.1 for the first RC + + * README: + * configure.ac: + * lisp/ldefs-boot.el: + * msdos/sed2v2.inp: Bump Emacs version to 25.1. + +2016-07-24 Nicolas Petton + + * etc/AUTHORS: Update the AUTHORS file + + ;; * ChangeLog.2: ChangeLog update. + +2016-07-24 Nicolas Petton + + * admin/authors.el (authors-valid-file-names): Addition. + +2016-07-23 Eli Zaretskii + + Warn about Cairo-related problems + + * etc/NEWS: Warn about known problems in the Cairo build. + (Bug#23925) + +2016-07-23 Paul Pogonyshev + + Don't let completion break `declare' handling + + * lisp/progmodes/elisp-mode.el (elisp-completion-at-point): Fix to not alter + `defun-declarations-alist' by side effect (Bug #23648). + +2016-07-23 Noam Postavsky + + Adjust match data before calling after-change-funs + + It's important to adjust the match data in between calling + before-change-functions and after-change-functions, so that buffer + change hooks will always see match-data consistent with buffer content. + (Bug #23917) + + * src/insdel.c (replace_range): Add new parameter ADJUST_MATCH_DATA, if + true call update_search_regs. Update all callers (except + Freplace_match) to pass 0 for the new parameter. + * src/search.c (update_search_regs): New function, extracted from + Freplace_match. + (Freplace_match): Remove match data adjustment code, pass 1 for + ADJUST_MATCH_DATA to replace_range instead. + +2016-07-21 Mark Oteiza + + Do not show string-rectangle preview if minibuffer is empty + + * lisp/rect.el (rectangle--string-preview): Remove condition that sets + preview string to the default replacement string. + +2016-07-21 Achim Gratz + + * etc/PROBLEMS: Add entry about selection problems under Plasma 5. + + Bug#24013 + +2016-07-21 Paul Eggert + + Port to glibc 2.24 (pre-release) + ppc64 + + Backport from master (Bug#24033). + Inspired by a suggestion by Florian Weimer in: + https://sourceware.org/ml/libc-alpha/2016-07/msg00425.html + * src/emacs.c (main) [__PPC64__]: + Special case for __PPC64__, which needs ASLR disabled in + dumped Emacs too. + +2016-07-21 Katsumi Yamaoka + + * lisp/net/shr.el (shr-fill-line): Withdraw the last commit (4157159). + + * lisp/net/shr.el (shr-fill-line): + Preserve text properties in folded lines (bug#24034). + +2016-07-17 Robert Cochran (tiny change) + + Expand FIXME near definition of fboundp + + This expansion of the FIXME is so that future developers are aware of + the potential problems of aliasing fboundp to symbol-function without + taking backwards compatibility into account. + + * src/data.c (fboundp): Note potential backwards compatibility issues in + FIXME. + +2016-07-17 Noam Postavsky + + kill-rectangle should mention killed-rectangle + + * lisp/rect.el (kill-rectangle): Mention `killed-rectangle' in docstring + and warning message, rather than kill ring (Bug#19773). + +2016-07-16 Eli Zaretskii + + Avoid assertion violations in nhexl-mode + + * src/bidi.c (bidi_resolve_neutral): Convert an assertion to real + code executed in all builds. (Bug#24001) + +2016-07-15 Fredrik Bergroth (tiny change) + + Use memmove instead of memcpy on overlapping regions + + * src/editfns.c (Ftranspose_regions): Regions may overlap, so + use memmove instead of memcpy (bug#19213). + + + This is a backport from trunk. + (cherry picked from commit 354f9f0fc6cc05ed98883447f9b2f37943d79160) + +2016-07-15 Noam Postavsky + + Document buffer-swap-text+save-excursion interaction + + * doc/lispref/buffers.texi (Swapping Text): + * src/buffer.c (Fbuffer_swap_text): Add warning about interaction of + `buffer-swap-text' and `save-excursion' (Bug #4655). + +2016-07-14 Stefan Monnier + + Fix eieio vs cl-generic incompatibilities found in Rudel (bug#23947) + + * lisp/emacs-lisp/cl-generic.el (cl-generic-apply): New function. + * lisp/emacs-lisp/eieio-compat.el (eieio--defmethod): Fix incorrect + mapping between cl-no-applicable-method and EIEIO's no-applicable-method. + * lisp/emacs-lisp/eieio-core.el (eieio--class-precedence-c3): + `class' is not a symbol but a class object. + +2016-07-14 Stefan Monnier + + Include cl-generic in package--builtin-versions (bug#22817) + + * lisp/emacs-lisp/cl-generic.el (package--builtin-versions): + Add ourselves manually. Don't merge since there's a better fix on master. + +2016-07-14 Michael Albinus + + Improve timing in `tramp-test29-environment-variables' + + * test/automated/tramp-tests.el + (tramp-test--shell-command-to-string-asynchronously): + Add additional `accept-process-output' call. + (tramp-test29-environment-variables): Remove additional sleep calls. + +2016-07-14 Michael Albinus + + Add test for handling environment variables in Tramp + + * test/automated/tramp-tests.el + (tramp-test--shell-command-to-string-asynchronously): New defun. + (tramp-test29-environment-variables): New test. + (tramp-test30-vc-registered) + (tramp-test31-make-auto-save-file-name) + (tramp-test32-special-characters) + (tramp-test32-special-characters-with-stat) + (tramp-test32-special-characters-with-perl) + (tramp-test32-special-characters-with-ls, tramp-test33-utf8) + (tramp-test33-utf8-with-stat, tramp-test33-utf8-with-perl) + (tramp-test33-utf8-with-ls) + (tramp-test34-asynchronous-requests) + (tramp-test35-recursive-load, tramp-test36-unload): Rename. + +2016-07-13 Glenn Morris + + * lisp/emacs-lisp/package.el (describe-package-1) + (package-status-external): Fix face references. (Bug#23927) + +2016-07-12 Stephen Berman + + Improve documentation of search functions + + Make the documentation of the search functions more accurate, + complete, and uniform; in particular, extend the description of + the effect when the 'count' parameter is a negative number to all + of these functions. + + * src/search.c (Fsearch_backward, Fsearch_forward) + (Fre_search_backward, Fre_search_forward) + (Fposix_search_backward, Fposix_search_forward): + * lisp/isearch.el (word-search-backward, word-search-forward) + (word-search-backward-lax, word-search-forward-lax): Improve doc + strings as described above. + + * doc/lispref/searching.texi (String Search, Regexp Search) + (POSIX Regexps): Use 'count' instead of 'repeat' as the name of + the fourth parameter of the *-search-{forward,backward} functions + and improve documentation as described above. + +2016-07-12 Michael Albinus + + Delete environment variables in Tramp when needed + + * lisp/net/tramp-sh.el (tramp-get-env-with-u-option): New defun. + (tramp-sh-handle-start-file-process) + (tramp-sh-handle-process-file, ): Use it. (Bug#23952) + +2016-07-12 Eli Zaretskii + + Add "New in Emacs 25" section to the FAQ + + * doc/misc/efaq.texi (Latest version of Emacs): Update for later + versions. + (New in Emacs 25): New node. + (Status of Emacs): Add it to the menu. + +2016-07-10 Eli Zaretskii + + Fix 'vertical-motion' in non-interactive sessions + + * src/indent.c (Fvertical_motion): Don't return uninitialized + value in non-interactive session. This fixes random errors in + batch mode, see + http://lists.gnu.org/archive/html/emacs-devel/2016-06/msg00609.html + and + http://lists.gnu.org/archive/html/emacs-devel/2016-07/msg00500.html + for the details. + +2016-07-10 Andreas Schwab + + Fix memory leak in imagemagick-types + + * src/image.c (Fimagemagick_types): Use AcquireExceptionInfo to + avoid memory leak. + +2016-07-10 Eli Zaretskii + + Update ELisp manual to match 'string-collate-equalp' doc string + + * doc/lispref/strings.texi (Text Comparison): Remove reference to + sorting from the description of 'string-collate-equalp'. (Bug#23902) + +2016-07-09 Noam Postavsky + + Clarify docstring of find-feature-regexp + + * lisp/emacs-lisp/find-func.el (find-feature-regexp): Explain that `%s' + is optional (Bug #23520). + +2016-07-09 Noam Postavsky + + Add details to cl-lib defining macros' docstrings + + * lisp/emacs-lisp/cl-macs.el (cl-defun, cl-defmacro): Add terse summary + of supported arglist forms (Bug #22462). + +2016-07-09 Eli Zaretskii + + Clarify doc string of 'save-buffer' + + * lisp/files.el (save-buffer): Clarify that backups might not be + made even if this command is invoked with 2 or 3 "C-u"s. + (Bug#3702) + +2016-07-08 Eli Zaretskii + + Un-confuse doc string of 'string-collate-equalp' + + * src/fns.c (Fstring_collate_equalp): Remove confusing text from + doc string. (Bug#23902) + +2016-07-07 Eli Zaretskii + + Clarify documentation of 'mouse-on-link-p' + + * lisp/mouse.el (mouse-on-link-p): Clarify the form of the POS + argument. (Bug#23899) + +2016-07-06 Phillip Lord + + Fix missing undo-boundary on revert-buffer. + + * lisp/simple.el (undo-auto--undoable-change-no-timer): New function. + * src/fileio.c (insert-buffer-contents): Call + undo-auto--undoably-changed-buffers before changes. + + Addresses Bug#23785. + + Do not merge to master as c98bc98 also addresses the same bug. + +2016-07-06 Martin Rudalics + + Amend last addition to etc/PROBLEMS + + * etc/PROBLEMS: Mention GTK+ problem with unexpected frame widenings + +2016-07-06 Paul Eggert + + Fix open-network-stream responsiveness + + Problem reported by Christer Ekholm (Bug#23864). + Backport from master. + * src/process.c (wait_reading_process_output): + Fix typo introduced in 2015-07-06T02:19:13Z!eggert@cs.ucla.edu + when wait == INFINITY and got_output_end_time is invalid. + In this case the code should break, not continue. + +2016-07-05 Phillip Lord + + Fix missing point information in undo + + * src/undo.c (record_insert): Use record_point instead of + prepare_record, and do so unconditionally. + (prepare_record): Do not record first change. + (record_point): Now conditional on state before the last command. + (record_delete): Call record_point unconditionally. + (record_property_change): Use prepare_record. + (record_marker_adjustments): Use prepare_record. + + Addresses Bug# 21722 + +2016-07-04 Eli Zaretskii + + Avoid crashes when buffer modification hooks clobber match data + + * src/search.c (Freplace_match): Error out if buffer modification + hooks triggered by buffer changes in replace_range, upcase-region, + and upcase-initials-region clobber the match data needed to be + adjusted for the replacement. (Bug#23869) + +2016-07-03 Noam Postavsky + + Note combine-and-quote-strings doesn't shell quote + + * doc/lispref/processes.texi (Shell Arguments): + * lisp/subr.el (combine-and-quote-strings): Add a note that + combine-and-quote-strings doesn't protect arguments against shell + evaluation (Bug #20333). + +2016-07-03 Noam Postavsky + + Explain when package-initialize isn't called + + * doc/lispref/os.texi (Startup Summary): Explain that package-initialize + is not called when options -q, -Q, or --batch were passed (Bug #19151). + +2016-07-03 Noam Postavsky + + Fix escaping in sh-indent-after-continuation docstr + + * lisp/progmodes/sh-script.el (sh-indent-after-continuation): Properly + escape backslashes in docstring (Bug#23046). + +2016-07-02 Eli Zaretskii + + Clarify the documentation of back-references in replacements + + * doc/emacs/search.texi (Regexp Replace): Clarify that \D starts + with \1, not \0. + + * lisp/replace.el (query-replace-regexp) + (query-replace-regexp-eval, replace-regexp): Doc fix (Bug#23884) + +2016-07-01 Noam Postavsky + + Clarify lexical binding with symbol args behavior + + * doc/lispref/variables.texi (Lexical Binding): Clarify that symbol + arguments always refer to dynamic values (Bug #23781). Remove mention + of obsolete restriction regarding lexical binding for defun and + defmacro, this no longer applies since 61b108cc 2012-05-29 "* + lisp/emacs-lisp/byte-run.el (defmacro, defun): Move from C...". + +2016-06-30 Michael Albinus + + * lisp/net/tramp-sh.el (tramp-remote-path): Doc fix. + +2016-06-29 Eli Zaretskii + + * lisp/net/tramp-sh.el (tramp-remote-path): Doc fix. (Bug#23865) + +2016-06-29 Eli Zaretskii + + Avoid assertion violations when rendering some fonts + + * src/dispextern.h (FONT_TOO_HIGH): Don't consider a font "too + high" if its pixel_size value is zero. This avoids assertion + violations at the end of x_produce_glyphs. + +2016-06-28 Noam Postavsky + + Document more details of package activation + + * doc/emacs/package.texi (Package Installation): Explain that package + activation adds to load-path (Bug #21704). + +2016-06-28 Noam Postavsky + + Fixup warning message regarding HOME a bit more + + * src/w32.c (init_environment): The manual section title is "Windows + HOME" (Bug #11612). Move newline so warning fits in 80 character lines. + +2016-06-27 Eli Zaretskii + + * lisp/leim/quail/indian.el ("bengali-probhat"): Change indicator to BngPB. + +2016-06-27 Michael Albinus + + Fix input method "probhat" for Bengali + + Author: উৎসব রায় + + * lisp/leim/quail/indian.el ("bengali-probhat"): Fix entry. + +2016-06-27 Noam Postavsky + + Add to elisp-completion-at-point's docstring + + * lisp/progmodes/elisp-mode.el (elisp-completion-at-point): Document + position dependent behavior (Bug #19854). + +2016-06-27 Noam Postavsky + Eli Zaretskii + + Give more helpful warning about setting HOME + + * src/w32.c (init_environment): Improve warning message that pops when + Emacs sets HOME according to existence of C:\.emacs (Bug #11612). + +2016-06-26 Eli Zaretskii + + Fix slow redisplay in term-mode + + * lisp/term.el (term-mode): Move the setting of + bidi-paragraph-direction from 'ansi-term' to here, since term-mode + is also affected. Do not merge to master, since there the problem + is solved in bidi.c by changing the regexps that delimit a + paragraph. (Bug#23801) + +2016-06-26 উৎসব রায় + + New input method "probhat" for Bengali + + * lisp/leim/quail/indian.el ("probhat"): New input method. + (Bug#23822) + + * etc/NEWS: Mention the new input method. + +2016-06-25 Noam Postavsky + Drew Adams + + Update docs for `customize-mode' + + * lisp/cus-edit.el (customize-mode): This function works with both major + and minor modes, make docstring and prompt reflect that (Bug #23649). + + * doc/lispref/modes.texi (Derived Modes): Remove note about + customize-mode being experimental; it has been around since Emacs + 22 (Bug #11299). + +2016-06-23 Eli Zaretskii + + Fix documentation of 'assoc-string' and 'compare-strings' + + * src/minibuf.c (Fassoc_string): Clarify how CASE-FOLD affects the + string comparison. (Bug#23833) + * src/fns.c (Fcompare_strings): Fix the description of how + IGNORE-CASE affects the comparison. + + * doc/lispref/strings.texi (Text Comparison): Clarify how + CASE-FOLD affects the string comparison in 'assoc-string'. Fix + the description of how IGNORE-CASE affects the comparison in + 'compare-strings'. + +2016-06-22 Dmitry Gutov + + Error on multibyte characters in HTTP request + + * lisp/url/url-http.el (url-http-create-request): Check the + constructed request in the end to verify that it does not contain + multibyte characters (bug#23750). + +2016-06-22 Katsumi Yamaoka + + * lisp/gnus/mm-decode.el (mm-convert-shr-links): + Mask keys that launch `widget-button-click' (bug#22157). + +2016-06-22 Dmitry Gutov + + Unset GIT_DIR when calling Git commands + + * lisp/vc/vc-git.el (vc-git--call, vc-git-command): + Unset GIT_DIR (bug#23769). + +2016-06-21 Phillip Lord + + Ensure undo-boundary after insert-file-contents. + + * src/fileio.c: Record undoable change during insert-file-contents. + + Addresses Bug #23785. + +2016-06-21 Eli Zaretskii + + Clarify documentation of 'line-spacing' and 'line-height' + + * doc/lispref/display.texi (Line Height): Clarify how the line + height is determined via variables and text properties. (Bug#23806) + +2016-06-20 Eli Zaretskii + + Fix removal of variables from process-environment + + * src/callproc.c (add_env): Fix comparison of a variable with a + value against the same variable without a value. (Bug#23779) + +2016-06-20 Glenn Morris + + * admin/authors.el (authors-ignored-files, authors-valid-file-names) + (authors-renamed-files-alist): Additions. + + * admin/authors.el (authors-aliases, authors-fixed-case): Additions. + +2016-06-18 Noam Postavsky + + Fix documentation of completion functions + + So that the described behavior matches the code (and docstrings). + + * doc/lispref/minibuf.texi (Basic Completion): Symbol keys of hash table + collections are used like string keys, not ignored (Bug #10416). + +2016-06-18 Eli Zaretskii + + Clarify documentation of 'font-lock-maximum-decoration' + + * doc/emacs/display.texi (Font Lock): Explain how to make the + customization of 'font-lock-maximum-decoration' effective for an + existing buffer. (Bug#23783) + +2016-06-17 Glenn Morris + + * doc/misc/cl.texi (Usage): Add some more details. + +2016-06-17 Noam Postavsky + + Fbackward_prefix_chars: stay within buffer bounds + + The commit 1fd3172d "(Fbackward_prefix_chars): Set point properly while + scanning" (1998-03-18), moved the check against of the position against the + buffer beginning out the loop condition so that we might end up checking + the syntax of characters before the beginning of the buffer. This can + cause segfaults or trigger a "Point before start of properties" error in + `update_interval' (called indirectly from `char_quoted'). + + * src/syntax.c (Fbackward_prefix_chars): Stop the loop when beginning of + buffer is reached (Bug #3552, Bug #17132, Bug #19379). + +2016-06-16 Paul Eggert + + Fix ifdef-vs-if typo with RANDR13_LIBRARY + + * src/xfns.c (x_get_monitor_attributes_xrandr): Use #if, not #ifdef. + This ports to systems that predate xrandr 1.3. See Christian Lynbech in: + http://lists.gnu.org/archive/html/emacs-devel/2016-06/msg00198.html + + (cherry picked from commit dce99f222f1ca33265cd56ddb157817be1dc078e) + +2016-06-16 Stephen Berman + + Fix last todo-mode change + + * lisp/calendar/todo-mode.el (todo-read-category): Return the + keymap in order to use its defined key bindings. + +2016-06-15 Stephen Berman + + Improve last todo-mode fix + + * lisp/calendar/todo-mode.el (todo-read-category): Use + set-keymap-parent instead of copy-keymap, and default (as + previously) to the global binding (for rationale, see + http://lists.gnu.org/archive/html/emacs-devel/2016-06/msg00217.html). + +2016-06-14 Stephen Berman + + Fix todo-mode use of minibuffer completion keymap (bug#23695). + + * lisp/calendar/todo-mode.el (todo-read-category): Don't + override minibuffer-local-completion-map globally (bug#23695). + Bind key to self-insert-command. + +2016-06-14 Glenn Morris + + * src/alloc.c (ALIGN): Avoid error on DragonFly BSD. (Bug#23764) + + * lisp/emacs-lisp/nadvice.el (advice--make-docstring): + Avoid mangling autoloads with unspecified arguments. (Bug#21299) + +2016-06-13 Glenn Morris + + * lisp/help-fns.el (describe-function-1): Avoid reporting advised + autoloads as aliases. (Bug#21299) + +2016-06-13 Stephen Berman + + Minor grammar fix (bug#23746) + + * doc/lispref/processes.texi (Synchronous Processes): + Another minor grammar fix (bug#23746). + +2016-06-13 Stephen Berman + + Doc fixes for grammar and typos (bug#23746) + + * doc/emacs/files.texi (Customize Save): + * doc/emacs/frames.texi (Window Dividers): + * doc/emacs/misc.texi (Printing): + * doc/lispref/compile.texi (Compiler Errors): + * doc/lispref/keymaps.texi (Changing Key Bindings): + * doc/lispref/loading.texi (Named Features): + * doc/lispref/markers.texi (Marker Insertion Types): + * doc/lispref/modes.texi (Mode Hooks): + * doc/lispref/text.texi (Undo): + * src/floatfns.c (Fldexp): + * src/xfaces.c (syms_of_xfaces): + Minor doc fixes for grammar and typos (bug#23746). + +2016-06-13 Eli Zaretskii + + * doc/lispref/processes.texi (Process Buffers): Minor rewording. (Bug#23446) + +2016-06-13 Eli Zaretskii + + Add cross-reference to ELisp manual + + * doc/lispref/commands.texi (Classifying Events): Add + cross-reference to "Motion Events". (Bug#23756) + +2016-06-11 Stefan Monnier + + * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Fix (bug#19704) + + Don't rewrite (funcall 'f ...) to (f ...). + +2016-06-11 Phillip Lord + + Restore initial undo boundary with viper + + * lisp/emulation/viper-cmd.el (viper-adjust-undo): Add back last undo + boundary if it has been removed. + + Addresses Bug#22295. + +2016-06-11 Phillip Lord + + Revert "Fix viper undo breakage from undo-boundary changes" + + This reverts commit c0139e32f1f3bb287b04e02a69a7848d6a040003. + +2016-06-11 Ken Brown + + Fix dbus crash on 32-bit Cygwin + + * src/dbusbind.c (Fdbus__init_bus): Use make_save_pointer to store + connection address. (Bug#23741) + (xd_lisp_dbus_to_dbus): Use XSAVE_POINTER to retrieve connection + address. + +2016-06-10 Nicolas Petton + + Bump version to 25.0.95 + + * README: + * configure.ac: + * lisp/ldefs-boot.el: + * msdos/sed2v2.inp: Bump Emacs version to 25.0.95. + +2016-06-10 Nicolas Petton + + * etc/AUTHORS: Update the AUTHORS file + +2016-06-10 Nicolas Petton + + add entries to authors.el + + * admin/authors.el (authors-renamed-files-alist): Add char-fold files. + +2016-06-10 Jules Tamagnan + + Fix eldoc-related freezes in python mode + + * lisp/progmodes/python.el (python-eldoc-get-doc): New defvar. + (python-eldoc-function-timeout) + (python-eldoc-function-timeout-permanent): New defcustoms. + (python-eldoc-function): If python-eldoc--get-doc-at-point times + out, effectively turn off ElDoc in current buffer. (Bug#23609) + +2016-06-09 Martin Rudalics + + Handle mouse leaving initial window in `mouse-set-region' (Bug#23707) + + * lisp/mouse.el (mouse-set-region): If the mouse ends up in + another window or on the menu bar, use `window-point' of + selected window instead of `posn-point' of the event end + (Bug#23707). + +2016-06-08 Marco Wahl + + org.el: Fix bindings of < and > for calendar scrolling + + [This patch taken from upstream Org repo with 8b63dc9 dated + 2014-10-20 (Bug#23725).] + * lisp/org/org.el (org-read-date-minibuffer-local-map): + Switch to the current calendar API for scrolling the calendar. + +2016-06-08 Phillip Lord + + Fix undo boundary in recursive edit (Bug#23632) + + * src/keyboard.c (recursive_edit_1): specbind + undo-auto--undoably-changed-buffers. + * lisp/simple.el (undo-auto--undoably-changed-buffers): + fix docstring. + +2016-06-07 Glenn Morris + + Doc fixes re alist-get. (Bug#23548) + + * lisp/subr.el (alist-get): Doc fix. + * doc/lispref/lists.texi (Association Lists): Improve alist-get. + +2016-06-07 Glenn Morris + + * lisp/progmodes/python.el (inferior-python-mode): + Avoid tabs. (Bug#23616) + + * src/syntax.c (syms_of_syntax) : Doc fix. + +2016-06-07 Tino Calancha + + * lisp/help-fns.el (describe-function-1): + Fix handling of file name for aliases. (Bug#21950) + + * lisp/emacs-lisp/cl-macs.el (cl-loop): Doc fix re "by". + + * doc/misc/cl.texi (Mapping over Sequences): Fix cl-notevery. + +2016-06-07 Paul Eggert + + Fix crash in syntax.c after GC + + Problem reported by Vincent Belaïche (Bug#23704). + * src/syntax.c (skip_chars): Recompute pointers into the + buffer after every call to update_syntax_table_forward, + as it can GC. + +2016-06-06 Dmitry Gutov + + Improve squiggly heredoc support in non-SMIE Ruby mode + + * lisp/progmodes/ruby-mode.el (ruby-parse-partial): Support + squiggly heredocs here, too (port from upstream). + +2016-06-06 Stephen Berman + + Fix doc string quoting + + * lisp/files.el (shell-quote-wildcard-pattern): + * lisp/progmodes/vhdl-mode.el (vhdl-mode): + * lisp/subr.el (replace-regexp-in-string): + * lisp/view.el (view-mode): + * src/nsfns.m (syms_of_nsfns): + * src/syntax.c (Fbackward_prefix_chars): + Fix quoting problems in doc strings (Bug#23696). + +2016-06-05 Martin Rudalics + + Fix mouse dragging of vertical dividers with scroll bars on left (Bug#23690) + + * lisp/mouse.el (mouse-drag-line): With scroll bars on the left + adjust trailing edge of window on the left when dragging the + vertical divider of the mode line. (Bug#23690) + +2016-06-04 Eli Zaretskii + + * etc/PROBLEMS: Mention the link-time problems on FreeBSD 11. + + (Bug#23641) + +2016-05-31 Glenn Morris + + * test/automated/viper-tests.el (viper-test-undo-kmacro): + Delete temp-file at end. + + * lisp/mail/footnote.el (footnote-mode): Fix doc typo. + + * doc/misc/smtpmail.texi (Encryption): Fix 2012-12-22 typo. + + * lisp/emacs-lisp/lisp-mode.el (lisp--mode-syntax-table): + Fix typo. (Bug#23654) + +2016-05-30 Stefan Monnier + + * lisp/recentf.el (recentf-dialog-mode-map): Remove follow-link (bug#22434) + +2016-05-30 Bill Wohler + + Correct cl-flet usage (Bug#22317) + + * lisp/mh-e/mh-compat.el: Rename mh-cl-flet to mh-flet and convert alias to + macro using patch from Katsumi Yamaoka . + * lisp/mh-e/mh-thread.el (mh-thread-set-tables): + * lisp/mh-e/mh-show.el (mh-gnus-article-highlight-citation): + * lisp/mh-e/mh-mime.el (mh-display-with-external-viewer): + (mh-mime-display, mh-press-button, mh-push-button): + (mh-display-emphasis): Call mh-flet instead of mh-cl-flet. + +2016-05-30 Bill Wohler + + Release MH-E manual version 8.6 + + * doc/misc/mh-e.texi (VERSION, EDITION, UPDATED, UPDATE-MONTH): + Update for release 8.6. + +2016-05-30 Mike Kupfer + + Update MH-E's documentation about HTML renderers + + * doc/misc/mh-e.texi (HTML): Remove the footnote with the minimum Gnus + version (we are no longer trying to support multiple Emacs + releases). Sort the table of HTML renderers by name (the previous + ordering was based on a 10-year-old survey). Add shr and gnus-w3m to + the table. Remove the entry for w3 (no longer available). Update + existing entries so that they are more consistent about what features + are discussed, and to reflect recent testing (Debian 8). Small tweaks + to existing text. + +2016-05-30 Dmitry Gutov + + Fx the we->the typo + + * doc/emacs/trouble.texi (Sending Patches): + Fix the typo (bug#23657). + +2016-05-30 Paul Eggert + + Restore frames into the current display by default + + * lisp/desktop.el (desktop-restore-in-current-display): + Default to t, not nil (Bug#23604). + * etc/NEWS: Mention the change. + +2016-05-29 Stefan Monnier + + * lisp/recentf.el (recentf-open-files-item): Quick fix for (bug#22434). + + etc/TODO: Remove out-of-place issue + +2016-05-29 Eli Zaretskii + + Clarify doc string of 'file-name-sans-extension' + + * lisp/files.el (file-name-sans-extension, file-name-extension): + Clarify in the doc strings what is the extension, and which + leading period doesn't count. (Bug#23643) + +2016-05-28 Eli Zaretskii + + Fix the MSDOS build + + * msdos/sed1v2.inp (PAXCTL_dumped, PAXCTL_notdumped): Define to + empty, and remove the lines which use them in recipes, as that + causes weird error message from Make and breaks the MSDOS build. + +2016-05-28 Andreas Schwab + + * lisp/progmodes/elisp-mode.el (elisp-function-argstring): Call + substitute-command-keys to undo help--docstring-quote. (Bug#23634) + +2016-05-27 Eli Zaretskii + + * src/dired.c (Ffile_name_all_completions): Doc fix. (Bug#23631) + +2016-05-27 Eli Zaretskii + + Fix infloop in 'number-sequence' + + * lisp/subr.el (number-sequence): Avoid overflow leading to an + infloop. (Bug#23627) + + * test/automated/subr-tests.el (number-sequence-test): New test. + +2016-05-26 Glenn Morris + + * lisp/emacs-lisp/find-func.el (find-function-library): + + Update for symbol-function no longer erroring. (Bug#23626) + +2016-05-26 Glenn Morris + + * lisp/w32-fns.el (set-message-beep, w32-get-locale-info) + (w32-get-valid-locale-ids): Improve declarations. + +2016-05-26 Vincent Belaïche + + Correct old cell name unbinding when renaming cell. + + Bug is to unbind old cell names when renaming a cell with + 'makunbound'. when the old cell name is of A1 type, then + 'kill-local-variable' must be used instead, so that only the current + spreadsheet is affected. When the old cell name is a renamed cell, + then 'ses--unbind-cell-name' must be used in order to remove the old + name from the name hashmap. + + * lisp/ses.el (ses-rename-cell): check consistency of cell symbol from + text-property and from array object. Instead of 'makunbound', use + either 'ses--unbind-cell-name' or 'kill-local-variable' depending on + whether the cell old name is a named cell or an A1 type cell + +2016-05-25 Vincent Belaïche + + Document problem: slow screen refresh on missing font. + + See discussion of bug#22519 for more on this. + +2016-05-25 Glenn Morris + + * admin/admin.el (add-release-logs): Basic check of existing ChangeLog. + +2016-05-25 Glenn Morris + + * build-aux/gitlog-to-emacslog: Handle empty generated ChangeLog. + + This is relevant for M-x add-release-logs right after M-x authors. + +2016-05-25 Glenn Morris + + * admin/admin.el (add-release-logs): Generate ChangeLog if needed. + +2016-05-25 Paul Eggert + + * doc/misc/texinfo.tex: Revert previous change (Bug#23611). + +2016-05-25 Glenn Morris + + * admin/authors.el (authors): First update the ChangeLog. + + * admin/make-tarball.txt: Related updates. + +2016-05-24 Dmitry Gutov + + Rename vc-stay-local back to vc-cvs-stay-local + + * lisp/vc/vc-cvs.el (vc-cvs-stay-local): Rename back from + vc-stay-local (bug#19548). Improve the docstring. + (vc-cvs-stay-local-p): Update accordingly. + +2016-05-24 Glenn Morris + + * doc/emacs/files.texi (Comparing Files): + * doc/emacs/trouble.texi (Sending Patches): Fix external xrefs. + + * doc/misc/eww.texi (Advanced): Fix xref. + +2016-05-24 Eli Zaretskii + + Fix cross-references between manuals + + * doc/misc/viper.texi (Viper Specials): + * doc/misc/url.texi (Tramp): + * doc/misc/sem-user.texi (Smart Jump): + * doc/lispintro/emacs-lisp-intro.texi (Finding More): + * doc/misc/efaq.texi (Replacing text across multiple files): Fix + cross-references between manuals. (Bug#23612) + * doc/lispintro/emacs-lisp-intro.texi (etags): Node deleted: no + longer relevant to Emacs Lisp programming. + +2016-05-24 Glenn Morris + + * doc/misc/vhdl-mode.texi (Sample Init File): Rename node to avoid ".". + + * admin/admin.el (add-release-logs): Also update etc/HISTORY. + +2016-05-24 Eli Zaretskii + + Avoid aborting due to errors in arguments of 'set-face-attribute' + + * src/xfaces.c (Finternal_set_lisp_face_attribute): Check the + FRAME argument before using it. This avoids gratuitous aborts in + Emacs built with --enable-checking when the luser was unlucky + enough to get the argument list in wrong order. + +2016-05-23 Phillip Lord + + Add automated test for viper-tests.el + +2016-05-23 Phillip Lord + + Fix viper undo breakage from undo-boundary changes + + * lisp/simple.el (undo-auto-disable-boundaries): New variable + * lisp/emulation/viper-init.el (viper-undo-in-complex-command, + viper-undo-needs-adjustment): Rename + variable to reflect new purpose, + (viper-buffer-undo-list-mark): Remove + * lisp/emulation/viper-cmd.el (viper-set-complex-command-for-undo): + Add undo using `undo-boundary', disable default undo-boundary + addition. + * lisp/emulation/viper-cmd.el + (viper-complete-complex-command-for-undo,viper-adjust-undo): + Change function name, remove old undo list manipulation. + * lisp/emulation/viper-cmd.el (viper-undo,viper-repeat, + viper-change-state-to-vi,viper-change-state): + Update for function name change. + + Addresses Bug #22295 + +2016-05-22 Kaushal Modi + + Fix reference to obsolete fn ps-eval-switch + + lpr-eval-switch is functionally the same as ps-eval-switch, + which was obsoleted in 2cdeb903c57126d3ad5f0cbd72e182584b76ee29. + So use that instead (Bug#19717). + * lisp/printing.el (pr-switches): Use lpr-eval-switch instead of + ps-eval-switch. + +2016-05-22 Paul Eggert + + Do not trash symlinks to init file + + If the user’s init file is a symbolic link, do not break the link + when initializing the package system. Problem reported by Jackson + Hamilton (Bug#23050). + * lisp/emacs-lisp/package.el (package--ensure-init-file): + Bind find-file-visit-truename when visiting the init file, and + save and restore the buffer name the way cus-edit does in a + similar situation (Bug#454). + +2016-05-22 Alan Mackenzie + + Don't print the "decomposition" line for control chars in what-cursor-position + + This is a temporary workaround for bug #23594, where the decomposition line + for linefeed corrupted the display on a Linux virtual terminal. + + * lisp/descr-text.el (describe-char): Remove `decomposition' from the list of + character code properties printed for control characters. + +2016-05-22 Paul Eggert + + Bring back xterm pasting with middle mouse + + Problem reported by Jan Synáček. + Solution suggested by Stefan Monnier (Bug#23519). + * lisp/isearch.el (isearch-mode-map): Add a binding for xterm-paste. + (xterm--pasted-text): New decl. + (isearch-xterm-paste): New function. + * lisp/term/xterm.el (xterm--pasted-text): New function, + taken from xterm-paste internals. + (xterm-paste): Use it. + +2016-05-22 Eli Zaretskii + + Provide workaround for xftfont rendering problem + + * src/xftfont.c (syms_of_xftfont) : + New variable. + (xftfont_open): Use it to work around problems with rendering some + fonts. (Bug#23360) + +2016-05-21 Jun Hao + + * lisp/desktop.el: Disable restore frameset if in non-graphic display. + + (Bug#17693) + +2016-05-21 Eli Zaretskii + + Mention GTK+ problems in etc/PROBLEMS + + * etc/PROBLEMS (GDK_SCALE, GDK_DPI_SCALE): Mention the possible + problems this could create and the workaround. (Bug#23587) + +2016-05-20 Artur Malabarba + + * lisp/emacs-lisp/package.el (package-refresh-contents): + + Don't change the value of `package-check-signature'. + (package-check-signature): Use `epg-find-configuration' + instead of `executable-find'. + +2016-05-20 Daiki Ueno + + Revert "epg: Add a way to detect gpg1 executable for tests" + + This reverts commit d4ae6d7033b34e8b75c59aaf1584131e439ef2d5. + +2016-05-19 Eli Zaretskii + + Avoid errors with Czech and Slovak input methods + + * lisp/leim/quail/slovak.el (slovak, slovak-prog-1, slovak-prog-2) + (slovak-prog-3): Remove the kp-* key bindings, they are not needed + and cause errors in "C-u C-x =". + * lisp/leim/quail/czech.el (czech, czech-qwerty, czech-prog-1) + (czech-prog-2, czech-prog-3): Remove the kp-* key bindings. + (Bug#23559) + +2016-05-19 Daiki Ueno + + epg: Add a way to detect gpg1 executable for tests + + Fixes bug#23561. + + * test/automated/epg-tests.el + (epg-tests-program-alist-for-passphrase-callback): New + constant. + (epg-tests-find-usable-gpg-configuration): New function, + renamed from `epg-tests-gpg-usable'. All callers changed. + (epg-tests-gpg-usable): Remove. + + * lisp/epg-config.el (epg-config--program-alist): Factor out + constructor element to... + (epg-config--configuration-constructor-alist): ...here. + (epg-find-configuration): Rename FORCE argument to NO-CACHE, + and add PROGRAM-ALIST argument. + +2016-05-18 Artur Malabarba + + * lisp/emacs-lisp/package.el: Fix free variable warnings. + + (package--with-response-buffer): Replace two usages of + `macroexp-let2*' with `let'. + +2016-05-18 Artur Malabarba + + * lisp/emacs-lisp/package.el (package--with-response-buffer): + + Fix some macro locals leaking into body. (Bug#22440) + + * test/automated/package-test.el (package-test-signed): + Manually check all possible values of `package-check-signature'. + +2016-05-18 Eli Zaretskii + + Improve documentation of 'server-name' + + * doc/emacs/misc.texi (Emacs Server): Fix example of setting + 'server-name'. Mention how to do that with daemon sessions. + (Bug#23576) + +2016-05-18 Paul Eggert + + Modernize ASLR advice in etc/PROBLEMS + + * etc/PROBLEMS (Segfault during 'make'): Modernize advice for + seccomp, Docker, and NetBSD (Bug#23529). + +2016-05-17 Juri Linkov + + * lisp/char-fold.el: Rename from character-fold.el. + + * lisp/replace.el (replace-char-fold): Rename from replace-character-fold. + * test/automated/char-fold-tests.el: Rename from character-fold-tests.el. + http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00529.html + +2016-05-17 Nicolas Petton + + Bump version to 25.0.94 + + * README: + * configure.ac: + * msdos/sed2v2.inp: Bump Emacs version to 25.0.94. + +2016-05-17 Nicolas Petton + + etc/AUTHORS: Update the AUTHORS file + +2016-05-16 Alan Third + + Fix bug#23462: Crash when iconifying frame on OS X. + + * src/nsterm.m (x_iconify_frame): Block input while miniaturize is + running. + +2016-05-16 Paul Eggert + + Avoid shrinking windows with Gtk+ 3.20.3 + + Problem reported by Matthias Clasen (Bug#23144). + This was fixed in a different way in master. + Do not merge to master. + * src/xterm.c (handle_one_xevent) [GTK_CHECK_VERSION (3, 20, 3)]: + Do not call xg_frame_resized in the MapNotify case. + +2016-05-16 Eli Zaretskii + + Fix bug in default setting of 'ps-paper-type' + + * lisp/international/mule-cmds.el (set-locale-environment): Don't + inherit the value of locale from previous examination of different + environment variables, which didn't look at LC_PAPER, and so using + that value would effectively ignore the setting of LC_PAPER. + (Bug#23544) + +2016-05-13 Paul Eggert (tiny change) + + Properly reject malformed or empty package sigs + + Problem report and fix by Lizzie Dixon (Bug#23513). + * lisp/emacs-lisp/package.el (package--check-signature-content): + Report an error if no good signatures OR if a fatal error. Not AND. + +2016-05-13 Paul Eggert + + Remove buggy non-native image scrolling + + This never worked, and could cause infinite recursion. + Problem reported by Glenn Morris (Bug#22465). + * lisp/xwidget.el (xwidget-webkit-scroll-behavior): Remove. + All uses removed. + +2016-05-13 Paul Eggert + + * doc/misc/texinfo.tex: Sync from gnulib. + +2016-05-12 Glenn Morris + + * lisp/emacs-lisp/find-func.el (find-feature-regexp) + (find-alias-regexp): Fix :version. + +2016-05-11 Dmitry Gutov + + Do not mistake colon at the end of regexp for slash symbol + + * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): + Check the parse state in the "Symbols with special characters" + rule (bug#23515). + +2016-05-11 Dmitry Gutov + + Make package-install-from-buffer not move point + + * lisp/emacs-lisp/package.el (package-install-from-buffer): + Use save-excursion here (bug#22616). + +2016-05-11 Dmitry Gutov + + Redo the fix for bug#21839 + + * lisp/help.el (help-add-fundoc-usage): Undo the previous change. + (help--make-usage-docstring): Escape newlines when printing. + + * lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): + Ditto (bug#21839). + +2016-05-10 Dmitry Gutov + + Don't treat JS spread as contination method call + + * lisp/progmodes/js.el (js--indent-operator-re): + Allow only one dot (bug#23492). + + * test/indent/js.js (default): Add a corresponding example. + +2016-05-09 Dmitry Gutov + + Allow newlines inside cl function arglists + + * lisp/help.el (help-add-fundoc-usage): Allow newlines inside + ARGLIST (bug#21839). + +2016-05-09 Dmitry Gutov + + Publicize cl--generic-all-functions + + * lisp/emacs-lisp/cl-generic.el (cl-generic-all-functions): + Rename from cl--generic-all-functions. Update both callers. + + * lisp/cedet/semantic/db-el.el + (semanticdb-find-tags-external-children-of-type-method): + And use it here (bug#23042). + +2016-05-09 Alan Mackenzie + + Add some "safe-local-variable" declarations for compatibility with master. + + These enable C files from the master repository to be visited in Emacs 25 + without generating irritating questions about configuration variable safety. + + * lisp/progmodes/cc-vars.el: (c-string-list-p, c-string-or-string-list-p): New + functions. + (c-noise-macro-names, c-noise-macro-with-parens-names): give the + safe-local-variable property c-string-list-p. + (c-macro-names-with-semicolon): give the safe-local-variable property + c-string-or-string-list-p. + +2016-05-09 Lars Ingebrigtsen + + Fix doc string in `insert' + + * src/editfns.c (Finsert_and_inherit): The before-insertion + markers do not move. + (Finsert): Ditto. + +2016-05-08 Paul Eggert + + * doc/misc/emacs-mime.texi (time-date): Document now-builtins better. + +2016-05-07 Dmitry Gutov + + Say 'All results processed' at the end + + * lisp/progmodes/xref.el (xref--query-replace-1): + Say 'All results processed' at the end if the user hadn't + cancelled the process (bug#23284). + +2016-05-07 Eli Zaretskii + + Document automatic adjustment of process' logical window dimensions + + * doc/lispref/processes.texi (Process Buffers): Document + 'set-process-window-size' and + 'window-adjust-process-window-size-function'. + + * etc/NEWS: Mention the new functionality and variable. + + * src/process.c (Fset_process_window_size): Improve the doc string. + +2016-05-06 Michael Albinus + + tramp-sh.el: Work around a stat bug (backport from master) + + * lisp/net/tramp-sh.el (tramp-get-remote-stat): Do not use + stat versions which produce shell quoted output. See also + coreutils Bug#23422. + + (cherry picked from commit 6aad36ace9953b9672b13be68416d205532d5e59) + +2016-05-05 Paul Eggert + + Doc fixes for fclist and grep + + A newline is needed between two fc-list calls. + egrep and fgrep have been withdrawn from POSIX, + so document grep -E and grep -F instead. + +2016-05-05 Paul Eggert + + Minor doc fixes for quoting + + * doc/lispref/control.texi (Signaling Errors): + * doc/lispref/display.texi (Displaying Messages): + Don’t say that formats “generate”. Try to word more clearly. + * etc/NEWS: Coalesce near-duplicate entries. + +2016-05-05 Dmitry Gutov + + `nreverse' the marker pairs list + + * lisp/progmodes/xref.el (xref--buf-pairs-iterator): `nreverse' + the marker pairs list for each buffer before returning. + +2016-05-04 Dmitry Gutov + + Use save-excursion in xref-location-marker more + + * lisp/progmodes/elisp-mode.el (xref-location-marker): Use + save-excursion, in order not to alter the value of point if the + buffer is currently open in the background (problem reported by + Robert Weiner). + + * lisp/progmodes/etags.el (xref-location-marker): Same. + +2016-05-04 Dmitry Gutov + + shell-quote-argument DIR when appropriate + + * lisp/progmodes/project.el (project-file-completion-table): + `shell-quote-argument' DIR as well. + + * lisp/progmodes/xref.el (xref--rgrep-command): Pass DIR through + `shell-quote-argument' (bug#23453). Thanks for Kaushal Modi for + pointing out the problem. Assert that DIR doesn't start with `~'. + +2016-05-04 Dmitry Gutov + + Rework xref-query-replace-in-results + + * lisp/progmodes/xref.el (xref-query-replace-in-results): Collect + all xrefs from the buffer first, then delegate most of the + processing to the value returned by xref--buf-pairs-iterator. + (xref--buf-pairs-iterator): New function. Return an "iterator" + which partitions returned markers into buffers, and only processes + markers from one buffer at a time. When an xref is out of date, + skip it with a message instead of signaling error (bug#23284). + (xref--outdated-p): Extract from xref--buf-pairs-iterator. Trim + CR from both strings before comparing. + (xref--query-replace-1): Remove the variable current-buf, no need + to track it anymore. Simplify the filter-predicate and search + functions accordingly. Iterate over buffer-markers pairs returned + by the iterator, and call `perform-replace' for each of them. Use + multi-query-replace-map (bug#23284). Use `switch-to-buffer' every + time after the first, in order not to jump between windows. + + * test/automated/xref-tests.el + (xref--buf-pairs-iterator-groups-markers-by-buffers-1) + (xref--buf-pairs-iterator-groups-markers-by-buffers-2) + (xref--buf-pairs-iterator-cleans-up-markers): New tests. + +2016-05-04 Juri Linkov + + * lisp/replace.el (query-replace-read-from): Use minibuffer-with-setup-hook + + to set minibuffer-local value of text-property-default-nonsticky. + (Bug#23418, bug#23127) + +2016-05-04 Stephen Berman + + Fix todo-mode bug involving archived items (bug#23447) + + * lisp/calendar/todo-mode.el (todo-jump-to-category): When jumping + from Todo Categories mode to a category with only archived items + and todo-skip-archived-categories is non-nil, make sure the + archive file buffer is in Todo Archive mode to prevent + todo-category-select from raising an error, and don't set + todo-current-todo-file, since that makes todo-show display the + archived category. Remove a no-op call to kill-buffer, which is + already called in todo-insert-category-line. + +2016-05-03 Dmitry Gutov + + Handle "empty line" regexp in xref searches + + * lisp/progmodes/xref.el (xref--collect-matches-1): Stop after one + match if re-search-forward doesn't move point (bug#23426). + + * test/automated/xref-tests.el + (xref-collect-matches-finds-an-empty-line-regexp-match): + Uncomment test. + +2016-05-03 Dmitry Gutov + + Add tests for xref-collect-matches + + * test/automated/xref-tests.el: New file. Add tests for + xref-collect-matches. + +2016-05-03 Dmitry Gutov + + Use grep-find-ignored-directories instead of vc-directory-exclusion-list + + * lisp/dired-aux.el (dired-do-find-regexp): + Use grep-find-ignored-directories instead of + vc-directory-exclusion-list. The result should be functionally + similar (the former uses the latter as the default value), but it + should be more consistent and appropriate WRT user + customizations. + (dired-do-find-regexp-and-replace): Update the docstring. + + * lisp/dired.el: Update the corresponding autoloads. + + * doc/emacs/dired.texi (Operating on Files): Update the + documentation accordingly. + +2016-05-03 Dmitry Gutov + + Clear buffer-undo-list when showing xrefs + + * lisp/progmodes/xref.el (xref--show-xref-buffer): Clear + buffer-undo-list and temporarily bind it to t while rendering the + buffer contents. + +2016-05-03 Alan Mackenzie + + Note the quote translation in `message' in section "incompatible changes". + + * etc/NEWS: Note that `message' translates quotes, that the translation + cannot be disabled, and that `format' can be used to get the old + behavior back. + +2016-05-03 Paul Eggert + + * etc/NEWS: Mention (message "%s" (format ...)). + +2016-05-03 Lars Ingebrigtsen + + (Common Keywords): Correct what missing :group means + + * doc/lispref/customize.texi (Common Keywords): Correct what + missing :group means. + +2016-05-03 Eli Zaretskii + + Improve documentation of Dired's 'A' and 'Q' commands + + * lisp/dired-aux.el (dired-do-find-regexp) + (dired-do-find-regexp-and-replace): Mention + 'grep-find-ignored-files' and 'vc-directory-exclusion-list', and + also the fact that REGEXP should be palatable by Grep. (Bug#23426) + * lisp/dired.el: Update the corresponding autoload forms. + + * doc/emacs/dired.texi (Operating on Files): Mention + 'grep-find-ignored-files' and 'vc-directory-exclusion-list'. + (Bug#23429) + +2016-05-03 Paul Eggert + + Doc fixes for quoting + + * doc/emacs/text.texi, doc/lispintro/emacs-lisp-intro.texi: + * doc/lispref/control.texi, doc/lispref/display.texi: + * doc/lispref/help.texi, doc/lispref/strings.texi, lisp/subr.el: + * src/callint.c, src/doprnt.c, src/editfns.c: + Document quoting a bit more systematically. + Problem reported by Alan Mackenzie (Bug#23425). + +2016-05-02 Lars Ingebrigtsen + + posnp doc clarification + + * lisp/subr.el (posnp): Mention that a posn object is returned + from `event-start' (bug#18211). + +2016-05-02 Lars Ingebrigtsen + + Mention what a missing :group does + + * doc/lispref/customize.texi (Common Keywords): Document that + a missing :group reuses the group from the preceding item (bug#21601). + +2016-05-02 Eli Zaretskii + + Fix documentation of dired-aux search/replace commands + + * lisp/dired-aux.el (dired-do-find-regexp) + (dired-do-find-regexp-and-replace): Doc fixes. (Bug#23429) + * lisp/dired.el: Update the corresponding autoload forms. + +2016-05-02 Paul Eggert + + Fix quoting problem in cc-engine debug message + + * lisp/progmodes/cc-engine.el (c-replay-parse-state-state): + Use "%s" format to pass through ‘'’ unscathed (Bug#23425), and + likewise for ‘`’, and ‘%’. + +2016-05-02 Philipp Stephani + + Add electric-quote-string unit test + + * test/automated/electric-tests.el (electric-quote-string): New test. + +2016-05-02 Paul Eggert + + Don’t electrically quote ‘'’ in Python + + Problem reported by Philipp Stephani (Bug#23387). + * lisp/electric.el (electric-quote-post-self-insert-function): + Do not requote a string starter or ender. + +2016-05-02 Dmitry Gutov + + `nreverse' Grep hits before passing them to xref--convert-hits + + * lisp/progmodes/xref.el (xref-collect-matches): `nreverse' hits + before passing them to xref--convert-hits. Fixes a regression + from cc0b7132. + +2016-05-01 Paul Eggert + + * doc/misc/texinfo.tex: Sync from gnulib. + +2016-05-01 Juri Linkov + + * lisp/isearch.el (isearch-forward-symbol-at-point): Add isearch-push-state. + + (Bug#23410) + +2016-05-01 Michael Albinus + + tramp.texi: Revert last change due to backward compatibility + + (cherry picked from commit 910f9a0a936aacbffe9b9b790d7f698dfd287aac) + +2016-05-01 Lars Ingebrigtsen + + cua-prefix-override-inhibit-delay doc fix + + * lisp/emulation/cua-base.el + (cua-prefix-override-inhibit-delay): Typo fix in doc string + (bug#23401). + + (cherry picked from commit 2b4c099822811ede787fc6e575bfbb17b3cc0681) + +2016-05-01 Lars Ingebrigtsen + + global-eldoc-mode doc fix + + * lisp/emacs-lisp/eldoc.el (global-eldoc-mode): Be more + specific about what "applicable" means (bug#23071). + + (cherry picked from commit 25e95b5dd8cd92e03788e589bf99a4b399f03114) + +2016-05-01 Lars Ingebrigtsen + + normal-top-level-add-subdirs-to-load-path doc fix + + * lisp/startup.el (normal-top-level-add-subdirs-to-load-path): + Doc fix (bug#21962). + + (cherry picked from commit 28aaa6d20586e3330a23b017a65e56dd6461c003) + +2016-05-01 Lars Ingebrigtsen + + isearch-search-fun-function doc tweak + + * lisp/isearch.el (isearch-search-fun-function): Mention what + the STRING parameter is (bug#21552). + + (cherry picked from commit cafc2a5940cdc523cfea6dcf1cf540f48367c62a) + +2016-05-01 Lars Ingebrigtsen + + Fill some imenu--index-alist doc lines + + * lisp/imenu.el (imenu--index-alist): Fill some doc lines (bug#21269). + + (cherry picked from commit 4b7bb8f596550628eaa83b82c0f7eabe59a84964) + +2016-05-01 Lars Ingebrigtsen + + Fmarker_position doc string clarification + + * src/marker.c (Fmarker_position): Clarify the doc string + (bug#21231). + + (cherry picked from commit eeac7c57273cec3f9408b18392dd2bafe3be4450) + +2016-05-01 Lars Ingebrigtsen + + Further define-obsolete-* doc fixups + + * lisp/emacs-lisp/byte-run.el (define-obsolete-face-alias): + Fix up last change. + (define-obsolete-variable-alias): Ditto. + + (cherry picked from commit 28e9f4390d8391c2c36be4ef515cf3a2c679a5a5) + +2016-05-01 Lars Ingebrigtsen + + Describe WHEN in all the define-obsolete- macros + + * lisp/emacs-lisp/byte-run.el (define-obsolete-face-alias): + Say more verbosely what WHEN is (bug#21225). + (define-obsolete-function-alias): Describe the WHEN parameter. + (define-obsolete-variable-alias): Ditto. + + (cherry picked from commit 247c388f160581d207e41ca5926990bbf69d4a0f) + +2016-05-01 Lars Ingebrigtsen + + Mention with-silent-modifications in the lispref manual + + * doc/lispref/text.texi (Changing Properties): Document + with-silent-modifications (bug#21171). + + (cherry picked from commit fcd0d854eef6e439d51e8f07cf734d5e34e502b3) + +2016-05-01 Lars Ingebrigtsen + + with-silent-modifications doc clarification + + * lisp/subr.el (with-silent-modifications): Rearrange the doc + string a bit so that the most pertinent information is at the + top (bug#21171). + + (cherry picked from commit e0e70f030e69d9696a963a86f5f7caaff4df06eb) + +2016-05-01 Lars Ingebrigtsen + + clear-visited-file-modtime doc string fix + + * lisp/files.el (clear-visited-file-modtime): Fix possibly + confusing doc string wording (bug#21169). + + (cherry picked from commit 1aaeaf1450756a71c9254a2a5b174c72084ca67a) + +2016-05-01 Lars Ingebrigtsen + + Document mode mode line variables + + * doc/lispref/modes.texi (Mode Line Variables): Document + `mode-line-front-space, `mode-line-misc-info', + `mode-line-end-spaces' (bug#21014). + + (cherry picked from commit bf7a630b0a5d3900f2afb0e7a881ce62e2b9f935) + +2016-05-01 Lars Ingebrigtsen + + Add a cross ref to Optional Mode Line + + * doc/lispref/modes.texi (Mode Line Variables): Add a cross + reference to the Emacs mode line node that explains things + like `display-time-string' (bug#21002). + + (cherry picked from commit a3151a28789f413af73b14fbba557b2a587fca53) + +2016-05-01 Lars Ingebrigtsen + + Add a doc string to display-time-string + + * lisp/time.el: Add a doc string to `display-time-string', + because it's referred to in the manual, and is too mysterious + otherwise (bug#21002). + + (cherry picked from commit 45559c584e5a4ddeed1539b028b50b95baa372f8) + +2016-05-01 Lars Ingebrigtsen + + custom-buffer-style doc fix + + * lisp/cus-edit.el (custom-buffer-style): Document the `tree' + value (bug#20724). + + (cherry picked from commit bcf0291d0cd02095b0809b1eb91f1e5c5c2ac5e3) + +2016-05-01 Lars Ingebrigtsen + + Rearrange the doc of query-replace slightly + + * lisp/replace.el (query-replace): Move the mention of the + interactive prefix arg earlier so that users can find it + (bug#20654). + + (cherry picked from commit bcc10761c3b968fa4534718116a0a601ed7da389) + +2016-05-01 Lars Ingebrigtsen + + apropos-print doc fix + + * lisp/apropos.el (apropos-print): Document the undocumented + parameters (bug#20520). + + (cherry picked from commit 0714d7387812a151f59993ac77c7321724ef79b1) + +2016-05-01 Lars Ingebrigtsen + + completion-table-with-predicate doc string fix + + * lisp/minibuffer.el (completion-table-with-predicate): t -> + non-nil in the doc string (bug#20460). + + (cherry picked from commit b6a4d162208f239bc7804696d611ae52c686f138) + +2016-05-01 Lars Ingebrigtsen + + Fill the completion-table-with-predicate doc string + + * lisp/minibuffer.el (completion-table-with-predicate): Fill + the doc string (bug#20460). + + (cherry picked from commit 207a31432c1ed8b548003a3e4af32c49aa3441e9) + +2016-05-01 Lars Ingebrigtsen + + replace-match-maybe-edit doc clarification + + * lisp/replace.el (replace-match-maybe-edit): Say what + MATCH-DATA is (bug#20304). + + (cherry picked from commit 139874ba53c2e2de9868f8e5234d6ea2bcb97af8) + +2016-05-01 Lars Ingebrigtsen + + add-timeout doc fix + + * lisp/emacs-lisp/timer.el (add-timeout): Mention the return + value (bug#20181). + + (cherry picked from commit 921b40476f597c84d7c34aa289cd43caeb389c4a) + +2016-05-01 Lars Ingebrigtsen + + Extremely minor doc fix in Choosing Window + + * doc/lispref/windows.texi (Choosing Window): There's only one + action alist, I think (bug#20158). + + (cherry picked from commit 6c7e7f421d02d9290d6d1d85320737371160aef7) + +2016-05-01 Lars Ingebrigtsen + + Transform mentions of `eval-after-load' to `with-eval-after-load' + + * doc/lispref/loading.texi (Hooks for Loading): Update text to + not mention `eval-after-load' (bug#20038). + + (cherry picked from commit 9392193be56eebdfac702a0bbb5e954088371c7a) + +2016-05-01 Lars Ingebrigtsen + + cursor-type doc fix + + * src/buffer.c (syms_of_buffer): Mention that cursor-type's + WIDHT/HEIGHT can't exceed the frame char size (bug#19215). + + (cherry picked from commit 77c5f4554ebb3b7c7d49bc881e45a550f6c93987) + +2016-05-01 Lars Ingebrigtsen + + Add a link from Tool Bar to Images + + * doc/lispref/keymaps.texi (Tool Bar): Add a link to the + Images node (bug#19722). + + (cherry picked from commit da5d0786163a91400eced4fddba4a92b652458d1) + +2016-05-01 Lars Ingebrigtsen + + (default-mode-line-format): More explicit obsolete info + + * lisp/subr.el (default-mode-line-format): Be more explicit in + how default values are now handled (bug#19424). + + (cherry picked from commit 9dc5f6d830e72420dc4d41c8f6ca1ca6b28609c0) + +2016-05-01 Lars Ingebrigtsen + + Fcompare_buffer_substrings doc string clarification + + * src/editfns.c (Fcompare_buffer_substrings): Extremely minor + doc string clarification (bug#19255). + + (cherry picked from commit aa692acbb598a1cc8219ed7a87dde25fd7626ba5) + +2016-05-01 Lars Ingebrigtsen + + insert-file-contents-literally doc fix + + * lisp/files.el (insert-file-contents-literally): Say that the + parameters are explained in the other function (bug#18317). + + (cherry picked from commit b6481b19bc9592492b1f70dfecb4de6256f537fe) + +2016-05-01 Lars Ingebrigtsen + + Fix custom types for cursor-in-non-selected-windows + + * lisp/cus-start.el (standard): Use the same custom types for + cursor-in-non-selected-windows as for cursor-type (bug#19214). + + (cherry picked from commit b66bc0cced786e0320e1c3b0758bd3c434d4e8b5) + +2016-05-01 Lars Ingebrigtsen + + Doc clarification to mwheel-scroll + + * lisp/mwheel.el (mwheel-scroll): Mention that the restriction + does not apply to Windows (bug#19209). + + (cherry picked from commit 696052b5fdfbc5c25dff3c6b081aebe70f6d06c7) + +2016-05-01 Lars Ingebrigtsen + + Clarify the doc of eval-expression-print-format + + * lisp/simple.el (eval-expression-print-format): Doc + clarification (bug#19114). + + (cherry picked from commit cd193a871f5a8e1c81ba86fc398ac382fa814383) + +2016-05-01 Lars Ingebrigtsen + + Explictly explain that package-initialize loads the packages + + * lisp/emacs-lisp/package.el (package-initialize): Be explicit + in saying that `package-initialize' obviates adjusting the + path or requiring the packages, as this is a question that + apparently comes up now and then (bug#18829). + + (cherry picked from commit 619e0aedb2f3dbfe6821ac34e2d25b4e5c181117) + +2016-05-01 Lars Ingebrigtsen + + Have the doc strings of `load-path' and `require' mention each other + + * src/fns.c (Frequire): Mention `load-path' and fill the doc + string (bug#18829). + + * src/lread.c (syms_of_lread): Mention that `require' uses + `load-path'. + + (cherry picked from commit 3eca9a03816f95da0030665223c0b5262f223ba7) + +2016-05-01 Lars Ingebrigtsen + + Doc fix for insert-pair-alist + + * lisp/emacs-lisp/lisp.el (insert-pair-alist): Say what + COMMAND-CHAR is (bug#18809). + + (cherry picked from commit 2824c587e9749a8f350f1d3dddd65176b4561dcb) + +2016-05-01 Lars Ingebrigtsen + + Move doc of backup-directory-alist to the Backup node + + * doc/emacs/files.texi (Backup): Move the documentation of + `backup-directory-alist' here from the "Single or Numbered + Backups" node, because it doesn't seem to have much to do with + numbering (bug#18692). + + (cherry picked from commit e77b8d84b4161f2cf8720dec2bf44a3e50134398) + +2016-05-01 Lars Ingebrigtsen + + Tiny doc clarification for create-fontset-from-fontset-spec + + * lisp/international/fontset.el (create-fontset-from-fontset-spec): + Clarify what the optional part is (bug#18686). + + (cherry picked from commit c05d186455ce9907eeb6b21ea4227e453996c681) + +2016-05-01 Lars Ingebrigtsen + + Fill the doc string of font-lock-keywords + + * lisp/font-lock.el (font-lock-keywords): Fill the lines and + reorganise some explanations (bug#21427). + + (cherry picked from commit c05716d3a26ea7518b89eacfccaf70c9d0731df7) + +2016-05-01 Lars Ingebrigtsen + + Doc fix for font-lock-remove-keywords + + * lisp/font-lock.el (font-lock-remove-keywords): Add a link to + `font-lock-add-keywords' to describe KEYWORDS (bug#18634). + + (cherry picked from commit bc00dcf12983cd399127d0eea39647f29778eb02) + +2016-05-01 Lars Ingebrigtsen + + Clarify whitespace-style doc string + + * lisp/whitespace.el (whitespace-style): Doc clarification + (bug#18296). + + (cherry picked from commit d96c720d0cca7c9ffbb4c712ad315bb707d6625c) + +2016-05-01 Lars Ingebrigtsen + + Doc fixed for next-error-buffer-p + + * lisp/simple.el (next-error-buffer-p): Clarify doc string + (bug#18202). + + (cherry picked from commit a10eb168cc96db9f0dab2d75550cbd8f08be2363) + +2016-05-01 Lars Ingebrigtsen + + Tiny doc fix + + * src/fileio.c (Ffile_accessible_directory_p): Tiny doc fix + (and fill) (bug#18201). + + (cherry picked from commit 2ef0040e2363a669d9b93df935d31c98fa130132) + +2016-05-01 Lars Ingebrigtsen + + Doc fix + + * src/keymap.c (Fdefine_prefix_command): Clarify doc string + slightly (bug#18092). + + (cherry picked from commit 6b769c81d024f7eeb90b167e7df6f87d859614d4) + +2016-05-01 Lars Ingebrigtsen + + delsel doc touch ups + + * lisp/delsel.el (delete-selection-helper): Use non-nil + instead of t and clarify function return values (bug#18089). + + (cherry picked from commit d7a5b5be9a5869bcd233434ec3103dd1976d7df7) + +2016-05-01 Lars Ingebrigtsen + + Doc fixes for menu-bar.el + + * lisp/menu-bar.el (clipboard-kill-ring-save): Describe the + REGION parameter (bug#18028). + (clipboard-kill-region): Ditto. + + (cherry picked from commit 33d2c67bff0992ecbc0fe38556683242b9d1a4ae) + +2016-05-01 Lars Ingebrigtsen + + Doc fix + + * lisp/rect.el (delete-whitespace-rectangle): Doc fix (bug#18026). + + (cherry picked from commit 6baca4911ec901579749dbf7596011d90fea3781) + +2016-05-01 Lars Ingebrigtsen + + Minor doc clarification + + * lisp/subr.el (y-or-n-p): Document the return value from "n" + (bug#18024). + + (cherry picked from commit 5d1f3192d484edee92caa46cd7d699da3e920259) + +2016-05-01 Lars Ingebrigtsen + + Fill font-lock-mode doc string + + * lisp/font-core.el (font-lock-mode): Fill the text to make it + narrower (bug#18008). + + (cherry picked from commit 27abf372836532c57be2e9e3ed23413729cc07fc) + +2016-05-01 Lars Ingebrigtsen + + Wrap the auto-generated doc string + + * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Wrap a + string to make it less likely that we get overlong lines + (bug#17999). + + (cherry picked from commit 323b69664914d687fd4b48593479cea223dfbcb4) + +2016-05-01 Lars Ingebrigtsen + + Clarify hi-lock-find-patterns + + * lisp/hi-lock.el (hi-lock-find-patterns): Doc clarification + (bug#17989). + + (cherry picked from commit 552e90ce7dff3a7107243fdf71c4de3af443e13a) + +2016-05-01 Lars Ingebrigtsen + + Add a doc string to `winner-mode' + + * lisp/winner.el (winner-mode): Add a doc string based on the + comments in the file (bug#17716). + + (cherry picked from commit 2c3ab9b6e39a3d600e7d82deacc24effaec051bb) + +2016-05-01 Lars Ingebrigtsen + + Doc fix for align-newline-and-indent + + * lisp/align.el (align-newline-and-indent): Mention that + alignment is done by `align' (bug#17707). + + (cherry picked from commit 340a224ec3e01706112a07164da9a9f3f369a5aa) + +2016-05-01 Lars Ingebrigtsen + + Doc fix for `kbd' + + * lisp/subr.el (kbd): Describe more fully the format of the + parameter (bug#17039). + + (cherry picked from commit 3a33afe25d8518f194fa4706eaccdb2a786a0348) + +2016-05-01 Lars Ingebrigtsen + + Doc tweak + + * lisp/simple.el (use-empty-active-region): Doc tweak. + There's only one region (bug#16513). + + (cherry picked from commit 35fb7897f161d5e5a87e039dc1e427094640b0c8) + +2016-05-01 Lars Ingebrigtsen + + Link from (emacs)Exiting to (lisp)Killing Emacs + + * doc/emacs/entering.texi (Exiting): Link to the lispref + manual for further customisations (bug#15445). + + (cherry picked from commit bc5f27aa099cdde02ca66e71501b89300685ab28) + +2016-05-01 Lars Ingebrigtsen + + find-lisp doc touchups + + * lisp/find-lisp.el (find-lisp-format): Copy over the doc + string (bug#15047). + (find-lisp-find-files): Clarify doc. + + (cherry picked from commit e4c7657b0d1a31d64ca24bc64b5480cd7687e332) + +2016-05-01 Lars Ingebrigtsen + + Don't have the manual claim that it lists all CL incompatibilities + + * doc/misc/cl.texi (Common Lisp Compatibility): The list of + incompatibilities isn't exhaustive, so don't say that it is + (bug#15171). + + (cherry picked from commit fb685bc91a72508c97ce7e30f970d4157677f371) + +2016-05-01 Lars Ingebrigtsen + + Change all occurrences of "Mouse-[0-9]" to "mouse-[0-9]" + + * doc/emacs/*.texi: Change all occurrences of "Mouse-[0-9]" to + "mouse-[0-9]". These are case sensitive, and the keys are lower case + (bug#14554). + + (cherry picked from commit e4c26271f2c2fe08f8490e25c63a436ab2a804ca) + +2016-05-01 Lars Ingebrigtsen + + Doc string change to enable-recursive-minibuffers + + * src/minibuf.c (syms_of_minibuf): Mention + minibuffer-depth-indicator-mode in the doc string to + enable-recursive-minibuffers (bug#14147). + + (cherry picked from commit 23ba488a5e8290c4de91e0ff4161641efa364c0d) + +2016-05-01 Lars Ingebrigtsen + + Clarify the `interactive' doc string slightly + + * src/callint.c (Finteractive): Clarify the doc string slightly + (bug#14577). + + (cherry picked from commit cd993be60da2d12db0d390001373d486c1091c47) + +2016-05-01 Lars Ingebrigtsen + + Clarify some doc strings + + * lisp/emacs-lisp/syntax.el (syntax-propertize-via-font-lock): + Clarify doc string (bug#8693). + (syntax-propertize): Clarify doc string. + + (cherry picked from commit ad3ef417f3c40f086de9c547d6272e5685595e42) + +2016-05-01 Lars Ingebrigtsen + + Add some concept index entries for custom types + + * doc/lispref/customize.texi (Composite Types): Add concept + index entries for restricted-sexp, radio and choice (bug#7385). + + (cherry picked from commit 388bb723fa078158d3148de05e942f9c01e95dd8) + +2016-05-01 Lars Ingebrigtsen + + Mention `lisp-indent-function' in the lispref manual + + * doc/lispref/macros.texi (Indenting Macros): Mention + `lisp-indent-function' (bug#3393). + + (cherry picked from commit a1627691a896b2afaa264f93534178bc763564c9) + +2016-05-01 Lars Ingebrigtsen + + Clarify doc string of internal compilation function + + * lisp/progmodes/compile.el (compilation-get-file-structure): + Clarify doc string (bug#3137). + + (cherry picked from commit 123191decb7428db3b32a6c01631fa755088393a) + +2016-05-01 Paul Eggert + + Use ‘T *restrict’ proto, not ‘T[restrict]’ + + * src/fns.c (sort_vector_copy): Use a different way to attempt to + work around GCC 3.0-and-earlier incompatibility with C99, one that + does not have problems with modern non-GCC compilers. + +2016-05-01 Eli Zaretskii + + Fix documentation of 'url-retrieve-synchronously' + + * doc/misc/url.texi (Retrieving URLs): Update argument list of + 'url-retrieve-synchronously'. (Bug#23411) + +2016-05-01 Eli Zaretskii + + * lisp/url/url.el (url-retrieve-synchronously): Doc fix. (Bug#23411) + +2016-04-30 Leo Liu + + Fix last change to isearch-update (bug#23406) + + * lisp/isearch.el (isearch-update): Remove (setq cursor-sensor-inhibit + nil) ie remove the original (unless (boundp 'cursor-sensor-inhibit) + ...) form. + +2016-04-30 Leo Liu + + Autoload cursor-sensor-inhibit (bug#23406) + + * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor-inhibit): Autoload. + * lisp/isearch.el (isearch-update): Remove boundp check. + +2016-04-30 Phillip Lord + + org-map-entries: Fix org-agenda-prepare-buffers call + + * lisp/org/org.el (org-map-entries): Check that buffer-file-name is non-nil + before passing to org-agenda-prepare-buffers. + + This is a backport of commit 44c8cd7136e3fcd1e6bfa08895cac437b7a691fa + from upstream org-mode. Addresses bug #23365. + +2016-04-30 Eli Zaretskii + + Followup for last commit in the user manual + + * doc/emacs/basic.texi (Moving Point): Clarify that + set-goal-column has buffer-local effect. (Bug#23405) + +2016-04-30 Eli Zaretskii + + Improve doc string of 'set-goal-column' + + * lisp/simple.el (set-goal-column): Doc fix. (Bug#23405) + +2016-04-30 Eli Zaretskii + + Fix the MSDOS build + + * config.bat: + * msdos/sedlisp.inp: + * msdos/sedlibmk.inp: + * msdos/sedleim.inp: + * msdos/sedadmin.inp: + * msdos/sed6.inp: + * msdos/sed3v2.inp: + * msdos/sed2v2.inp: + * msdos/sed1v2.inp: Adapt to Emacs 25. + + * src/process.c (remove_slash_colon): Move out of "#ifdef + subprocesses" block, as it its called unconditionally. Move + ADD_SUBFEATURE calls into "#ifdef subprocesses" block, as they + reference variables only defined in that block. + * src/msdos.h: Provide prototypes for IT_set_frame_parameters, + faccessat, msdos_fatal_signal, syms_of_msdos, pthread_sigmask, + dos_keysns, dos_keyread, run_msdos_command, and + syms_of_win16select, to avoid compiler warnings. + * src/msdos.c (SYS_ENVIRON): Define to either '_environ' or + 'environ', depending on the DJGPP version. + Remove declarations of externally-visible Lisp objects, like + Qbackground_color and Qreverse. + (run_msdos_command): First argument is not signed, not unsigned. + Use SYS_ENVIRON. + (sys_select): Use 'timespec_cmp' instead of 'timespec_sign', as + the latter doesn't work when 'time_t' is an unsigned data type. + This caused idle timers to behave incorrectly: they only fired + after a keyboard input event. + * src/frame.c (adjust_frame_size) [MSDOS]: Account for + FRAME_TOP_MARGIN that isn't counted in the frame's number of + lines, but dos_set_window_size needs it to be added. + * src/lread.c (INFINITY, NAN) [DJGPP < 2.05]: Provide definitions. + * src/fns.c (sort_vector_copy) [__GNUC__ < 4]: Provide a prototype + that works around compilation errors with older GCC versions. + * src/w16select.c: Don't declare QCLIPBOARD and QPRIMARY as Lisp + Objects. + * src/filelock.c [MSDOS]: Ifdef away most of the code. Provide + no-op implementations for 'lock_file' and 'unlock_file'. + (Ffile_locked_p) [MSDOS]: Always return nil. This avoids multiple + ifdefs in all users of filelock.c functionality. + * src/conf_post.h (EOVERFLOW, SIZE_MAX) [DJGPP < 2.04]: Define. + * src/emacs.c [MSDOS]: Include dosfns.h, to avoid compiler + warnings. + * src/dosfns.h: Provide prototypes for dos_cleanup, + syms_of_dosfns, and init_dosfns. + * src/deps.mk (atimer.o): Depend on msdos.h. + (emacs.o): Depend on dosfns.h. + * src/atimer.c [MSDOS]: Include msdos.h, to avoid compiler + warnings. + + * lisp/window.el (window--adjust-process-windows): Skip the body + if 'process-list' is not available. This avoids failure to start + up on MS-DOS. + * lisp/vc/diff.el (diff-no-select): Test 'make-process', not + 'start-process', as the latter is now available on all platforms. + * lisp/textmodes/ispell.el (ispell-async-processp): Replace + 'start-process' with 'make-process' in a comment. + * lisp/term/internal.el (IT-unicode-translations): Modify and add + a few translations to display Info files with Unicode markup. Fix + an ancient off-by-one mismatch error with Unicode codepoints. + * lisp/progmodes/compile.el (compilation-start): Test + 'make-process', not 'start-process', as the latter is now + available on all platforms. + * lisp/man.el (Man-build-man-command, Man-getpage-in-background): + Test 'make-process', not 'start-process', as the latter is now + available on all platforms. + * lisp/international/mule-cmds.el (set-coding-system-map): Test + 'make-process', not 'start-process', as the latter is now + available on all platforms. + * lisp/eshell/esh-cmd.el (eshell-do-pipelines-synchronously): Doc + fix. + (eshell-execute-pipeline): Test 'make-process', not + 'start-process', as the latter is now available on all platforms. + +2016-04-30 Andreas Schwab + + Remove \= from format string (bug#18190) + + * lisp/emacs-lisp/eieio.el (defclass): Remove \= from format + string. + +2016-04-30 Eli Zaretskii + + Fix variable-pitch font on MS-Windows + + * lisp/faces.el (variable-pitch) [w32]: Name a variable-pitch font + explicitly, to avoid Emacs picking up a bold-italic variant on + some MS-Windows systems. See this thread for details: + http://lists.gnu.org/archive/html/emacs-devel/2016-04/msg00746.html. + +2016-04-29 Alan Mackenzie + + Restore follow-scroll-up/down to scrolling by the combined size of all windows + + Also rename the current follow-scroll-up/down functions to + follow-scroll-up-window and follow-scroll-down-window. These scroll by the + height of the current window. + + This fixes bug #23347. + + * lisp/follow.el (follow-mode): Tweak the doc string. + (follow-scroll-up-arg, follow-scroll-down-arg): new functions, extracted from + follow-scroll-up/down. + (follow-scroll-up-window, follow-scroll-down-window): Functions renamed from + follow-scroll-up/down. + (follow-scroll-up, follow-scroll-down): Restore the historic functionality. + +2016-04-29 Alan Mackenzie + + Revert unneeded change which harms syntactic parsing. This fixes bug #23308. + + * lisp/progmodes/cc-engine.el (c-invalidate-state-cache): User + c-state-old-cpp-end as an argument to c-with-all-but-one-cpps-commented-out + regardless of the value of `here'. + +2016-04-29 Alan Mackenzie + + Correct indentation of ids in a C++ enum after a protection keyword. + + Also correct the misfontification of the last enum identifier. + + * lisp/progmodes/cc-engine.el (c-forward-keyword-prefixed-id): setq + c-last-identifier-range to nil to ensure that only types recognized by this + macro are set for fontification as types. + (c-backward-typed-enum-colon): Function renamed from + c-backward-colon-prefixed-type. On finding a colon in the backward search, + check it is preceded by an identifier rather than a keyword. + +2016-04-27 Glenn Morris + + * lisp/window.el (window--process-window-list): No-op if no processes. + + This avoids an issue with save-selected-window (from walk-windows) + failing if frame.el is not loaded, eg if the terminal is resized + during startup of a -nw CANNOT_DUMP build. (Bug#23369). + +2016-04-27 Paul Eggert + + Port dumping to NetBSD with PaX + + Problem reported by Thomas Klausner (Bug#23371). + * configure.ac (PAXCTL_dumped, PAXCTL_notdumped): New vars. + Set them to setfattr and/or paxctl commands appropriate for + GNU/Linux and/or NetBSD; the latter prefers paxctl +a. Search + for paxctl only if setfattr is not found. + * src/Makefile.in (PAXCTL_dumped, PAXCTL_notdumped): + New vars, replacing PAXCTL_if_present and SETFATTR_if_present. + All uses changed. + +2016-04-27 Dmitry Gutov + + Don't mistake `for' inside a function for a part of array comprehension + + * lisp/progmodes/js.el (js--indent-in-array-comp): Also check the + depth in parens between the bracket and `for' (bug#23391). + + * test/indent/js.js: Add a corresponding example. + +2016-04-27 Anders Lindgren + + Fix bug#22891: wrong terminal width when a fringe width is zero. + + When either fringe width is zero, Emacs reserved one column for a + continuation glyph. Terminal windows does not take this into + account when the frame is resized. + + * lisp/window.el (window-adjust-process-window-size): Use + `window-max-chars-per-line' instead of `window-body-width'. + * lisp/term.el (term-window-width): Remove function. (It does the + same as `window-max-chars-per-line' but without recent bug fixes.) + (term-mode): Use `window-max-chars-per-line' instead of + `term-window-width'. + + Backport + + (cherry picked from commit 5b5403289888efe8783ae6a405845b925f544ec1) + +2016-04-27 Leo Liu + + Improve last change to vc-git-mode-line-string + + * lisp/vc/vc-git.el (vc-git-mode-line-string): Better fix that caches + the result. + +2016-04-27 Stephen Berman + + Todo mode doc bug fix + + * lisp/calendar/todo-mode.el (todo-show): Correct obsolete and no + longer correct information in doc string. + +2016-04-27 Leo Liu + + Fix revision calculation in vc-git-mode-line-string + + * lisp/vc/vc-git.el (vc-git-mode-line-string): Use + vc-git-working-revision because vc-working-revision needs to decide + the backend and may return nil. + +2016-04-26 Jorgen Schaefer + + Add Python 3.5 keyword "await" + + * lisp/progmodes/python.el (python-font-lock-keywords): Add await as + keyword. + +2016-04-26 Lele Gaifax + + Add new keywords of Python 3.5 + + Python 3.5, released in mid September 2015, introduced a few new + keywords to better support asynchronous code, "async" and "await" + in particular. See https://www.python.org/dev/peps/pep-0492/ for + details. (Bug#21783) + * lisp/progmodes/python.el (python-rx-constituents): Add async + def/for/with as block-start and async def as defun. + * lisp/progmodes/python.el (python-font-lock-keywords): Add async + def/for/with as keyword. + * test/automated/python-tests.el (python-indent-after-async-block-1, + python-indent-after-async-block-2, python-indent-after-async-block-3, + python-nav-beginning-of-defun-3): New tests to test indentation and + navigation for the async keyword. + +2016-04-26 Mark Oteiza + + Partially revert previous change. + + This commit partially reverts 0f332848cdb2ed6d46771914a911cbca194cd51a. + * lisp/rect.el (rectangle--highlight-for-redisplay): Use region face. + This function is for rectangle-mark-mode, not string-rectangle. + +2016-04-25 Paul Eggert + + Say why text-quoting-style is not a user option + + * doc/lispref/help.texi (Keys in Documentation): + * etc/NEWS: Document why text-quoting-style is not a + customizable variable (Bug#23372). + +2016-04-25 Glenn Morris + + * lisp/emacs-lisp/autoload.el (update-directory-autoloads): + Future-proof against non-time-values. + +2016-04-25 Eli Zaretskii + + Don't mention ~/.emacs.bmk literally in doc strings + + * lisp/bookmark.el (bookmark-save-flag, bookmark-load): Don't + mention "~/.emacs.bmk" explicitly as the default bookmark file in + the doc strings. (Bug#23350) + +2016-04-25 YAMAMOTO Mitsuharu + + * etc/NEWS: Explain why multicolor font display is disabled on OS X Cocoa. + +2016-04-24 Paul Eggert + + Port to Ubuntu 16.04 --enable-gcc-warnings + + * src/image.c (gif_load) [HAVE_GIF]: Fix pointer signedness problem. + +2016-04-24 Paul Eggert + + * etc/NEWS: Improve wording of vc-git-log-output-coding-system etc. + +2016-04-24 Tino Calancha + + Don't kill ~/ if it's the top level directory + + * lisp/dired-aux.el (dired-kill-subdir): Don't kill ~/ if it's + the top level directory (bug#23017). + +2016-04-23 Tino Calancha (tiny change) + + describe-char: fix insert char documentation + + * lisp/descr-text.el (describe-char): + Only 'ucs-names' entries can be inserted by unicode name (Bug#23325). + +2016-04-23 Dmitry Gutov + + (vc-git-mode-line-string): Don't use `replace-regexp-in-string' + + * lisp/vc/vc-git.el (vc-git-mode-line-string): Use `substring' + instead of `replace-regexp-in-string', because REV can be nil + (e.g. when FILE is a directory, bug#23344), and we actually know + we only need the first 4 characters. + +2016-04-22 Nicolas Petton + + Bump version to 25.0.93 + + * README: + * configure.ac: + * msdos/sed2v2.inp: Bump Emacs version to 25.0.93. + +2016-04-22 Nicolas Petton + + * etc/AUTHORS: Update the AUTHORS file + + * admin/update_autogen: Use #!/usr/bin/env bash + + * admin/authors.el (authors-ignored-files): Additions. + +2016-04-22 Martin Rudalics + + In x_set_window_size restore do_pending_window_change calls + + * src/xterm.c (x_set_window_size): + * src/w32term.c (x_set_window_size): Restore + do_pending_window_change calls after their stupid removal on + 2015-08-31. + +2016-04-21 Ilya Zakharevich + + Fix Alt-modified keys on some European MS-Windows keyboards + + * src/w32fns.c (deliver_wm_chars): If the reported character is + ASCII, AND Meta modifier is a candidate, behave as if Meta is + present, i.e. fall back to the legacy code. (Bug#23251) + +2016-04-20 Eli Zaretskii + + Document 'help-go-forward' + + * doc/emacs/help.texi (Help Mode): Document and index + 'help-go-forward'. (Bug#23323) + +2016-04-20 Eli Zaretskii + + Revert "Allow to customize names of executables used by grep.el" + + This reverts commit c93ae7a1e5a94541189a8f36984014344d561ffc. + +2016-04-20 Eli Zaretskii + + Revert "Don't use 'find-program'" + + This reverts commit 10597c977d55cbf9304b51c3b364ce58199384a0. + +2016-04-20 Eli Zaretskii + + Revert "Use 'grep-find-program' in check-declare.el" + + This reverts commit 33bef6e90bfd20609d044b8a076c1570c627684a. + +2016-04-20 Eli Zaretskii + + Clarify documentation of 'dired-mark-files-containing-regexp' + + * doc/emacs/dired.texi (Marks vs Flags): Clarify that for files + visited in buffers, 'dired-mark-files-containing-regexp' searches + the buffer rather than the file on disk. (Bug#22694) + + * lisp/dired.el (dired-mark-files-containing-regexp): Clarify that + for files visited in buffers, 'dired-mark-files-containing-regexp' + searches the buffer rather than the file on disk. (Bug#22694) + +2016-04-19 Eli Zaretskii + + Make tmm-menubar work in correct order again + + * lisp/tmm.el (tmm-prompt): Don't reverse 'tmm-km-list' right at the + beginning; instead, pass a reversed copy to 'tmm--completion-table'. + (Bug#23309) + (tmm-menubar): Fix an off-by-one error in determining the menu + item when the function is called with a non-nil 'x-position' + argument. + +2016-04-18 Dmitry Gutov + + Remove the Meta-CVS VC backend + + * lisp/obsolete/vc-mcvs.el: Remove the file (bug#20475). + + * lisp/vc/log-view.el (log-view-extract-comment): Remove the MCVS + reference. + + * doc/misc/efaq-w32.texi (Version control): Same. + +2016-04-18 Michael Albinus + + Fix Bug#23276 + + * lisp/autorevert.el (auto-revert-handler): Ignore errors + coming from `revert-buffer'. (Bug#23276) + +2016-04-17 Reto Zimmermann + + Sync with upstream vhdl mode v3.38.1. + + * lisp/progmodes/vhdl-mode.el (vhdl-version, vhdl-time-stamp): Update. + (vhdl-mode): No longer set comment-padding. + (vhdl-begin-p): Handle missing space between keyword and parenthesis. + (vhdl-beginning-of-statement-1): Fix indentation for "else generate". + (vhdl-template-else, vhdl-template-elsif): Support generate statement. + (vhdl-re-search-forward, vhdl-re-search-backward): Save match data. + +2016-04-16 Paul Eggert + + Tweak configure.ac syntax in recent module patch + + * configure.ac: Use proper Autoconf parenthesization in + recent HAVE_MODULES patch. Although this doesn’t fix any bugs, + the previous syntax was confusing. + +2016-04-16 Paul Eggert + + Port to GCC 5.3.1 20160406 (Red Hat 5.3.1-6) + + * src/indent.c (Fvertical_motion): Pacify --enable-gcc-warnings + when using the April 6 Fedora patch to GCC. + +2016-04-16 Mark Oteiza + + Make sh-electric-here-document-mode accessible in sh-mode-hook. (Bug#3226) + + * lisp/progmodes/sh-script.el (sh-mode-hook): Add + sh-electric-here-document-mode as an option and the default value. + (sh-mode): Mention sh-mode-hook in docstring. + (sh-mode): Remove sh-electric-here-document-mode invocation. + +2016-04-16 Glenn Morris + + * configure.ac (HAVE_MODULES): Exclude gnu-kfreebsd from previous. + +2016-04-16 Mark Oteiza + + Make use of rectangle-preview custom variable. + + lisp/rect.el (rectangle--string-preview): Only create a preview if + rectangle-preview is non-nil (Bug#23248). + +2016-04-16 Mark Oteiza + + Make use of rectangle-preview face. + + * lisp/rect.el (rectangle--string-preview): + (rectangle--highlight-for-redisplay): Replace 'region with + 'rectangle-preview (Bug#23248). + +2016-04-16 Eli Zaretskii + + Use 'grep-find-program' in check-declare.el + + * lisp/emacs-lisp/check-declare.el (check-declare-directory): Use + 'grep-find-program', not 'find-program'. + +2016-04-16 Eli Zaretskii + + Improve "C-h S" for cl-lib symbols + + * lisp/info-look.el: Add cl.info lookup to emacs-lisp-mode related + manuals. (Bug#23289) + +2016-04-16 Eli Zaretskii + + Fix minor issues with removing left or right fringes + + * lisp/window.el (window-max-chars-per-line): Account for + 'left-fringe-width' and 'right-fringe-width' variables. + + * doc/lispref/windows.texi (Window Sizes): Document the effect on + window text width when setting the width of one or both fringes to + zero. + * doc/emacs/display.texi (Fringes): Document the effect on window + text width when setting the width of one or both fringes to zero. + (Bug#22891) + +2016-04-16 Eli Zaretskii + + Speed up redisplay in ansi-term mode + + * lisp/term.el (ansi-term): Force L2R 'bidi-paragraph-direction'. + (Bug#20611) + +2016-04-16 Philipp Stephani + + Simplify 8-bit character handling by terminal for 'raw-text' + + * lisp/international/mule.el (set-keyboard-coding-system): Treat + 'raw-text' as another coding type that requires 8-bit characters. + * lisp/xt-mouse.el (xterm-mouse--read-coordinate): Use 'no-conversion' + instead of 'latin-1'. + +2016-04-15 Glenn Morris + + * configure.ac (HAVE_MODULES): Treat gnu like gnu-linux. (Bug#22722) + +2016-04-15 Eli Zaretskii + + Fix w32 memory-management problem when extending buffer text + + * src/w32heap.c (mmap_realloc): Only attempt extending a region if + the following region has the same allocation base. Also, use the + original allocation base and enlarged size to commit reserved + memory, to ensure that the allocation base stays at its original + value. This fixes several hard-to-debug problems whereby part of + buffer text was overwritten with binary nulls, because + mmap_realloc copied only part of buffer text when extending it. + See + http://lists.gnu.org/archive/html/emacs-devel/2016-04/msg00325.html + and http://debbugs.gnu.org/cgi/bugreport.cgi?bug=23223#55 for two + examples of the related problems. + +2016-04-14 Michael Albinus + + Fix Bug#20637. Do not merge to master + + * lisp/vc/vc-hooks.el (vc-state, vc-working-revision): + Use `vc-backend' instead of `vc-responsible-backend'. (Bug#20637) + + * test/automated/vc-tests.el (vc-test--state) + (vc-test--working-revision): Deactivate now failing checks. + +2016-04-14 Paul Eggert + + substitute-command-keys keeps quotes’ text props + + Problem reported by Clément Pit--Claudel (Bug#23254). + * src/doc.c: Include intervals.h. + (Fsubstitute_command_keys): If the only substitutions are for + quotes, copy the source string’s text properties too, since no + substring lengths have changed. + +2016-04-13 YAMAMOTO Mitsuharu + + * src/xwidget.c (x_draw_xwidget_glyph_string): More clipping fixes. + +2016-04-12 Dmitry Gutov + + Add semantic-symref-filepattern-alist entry for lisp-interaction-mode + + * lisp/cedet/semantic/symref/grep.el + (semantic-symref-filepattern-alist): + Add entry for lisp-interaction-mode + (http://debbugs.gnu.org/cgi/bugreport.cgi?bug=23223#47) + +2016-04-12 Dmitry Gutov + + Perform xref searches without visiting unopened files + + * lisp/progmodes/xref.el (xref-collect-references): Instead of + calling `semantic-symref-find-references-by-name', use + `semantic-symref-instantiate' and `semantic-symref-perform-search' + directly. Ask for `line-and-text' results (bug#23223). + (xref-collect-matches): Include the line text in the "hit" + structure. + (xref--convert-hits): New function, split off from + `xref-collect-references' and `xref-collect-matches', to convert + "hits" to xref instance list. Create a temporary buffer here, to + use it for post-processing all hit lines. + (xref--collect-matches): Use a different approach for non-visited + files. Insert the line text into the temp buffer, apply the + file's major mode the best we can without reading its whole + contents, syntax-propertize, and search in the result. + (xref--collect-matches-1): Extract, to handle the common logic + between two cases. + (xref--find-buffer-visiting): New function, a wrapper around + `find-buffer-visiting' to amortize its cost. + + * lisp/cedet/semantic/symref/idutils.el + (semantic-symref-idutils--line-re): New constant. + (semantic-symref-parse-tool-output-one-line): Support result type + `line-and-text'. + + * lisp/cedet/semantic/symref/grep.el + (semantic-symref-grep--line-re) + (semantic-symref-parse-tool-output-one-line): Same. + + * lisp/cedet/semantic/symref/cscope.el + (semantic-symref-cscope--line-re) + (semantic-symref-parse-tool-output-one-line): Same. + + * lisp/cedet/semantic/symref/global.el + (semantic-symref-global--line-re) + (semantic-symref-parse-tool-output-one-line): Same. + +2016-04-12 Phillip Lord + + Revert "Prevent bootstrap autoload backup files" + + This reverts commit c23c965bb9d0a4bcc1b6158833ff99aa20fd53e9. + +2016-04-12 Paul Eggert + + Improve time zone documentation + + * doc/lispref/os.texi (Time Zone Rules): + New section, mostly with material moved here from other sections. + * doc/emacs/cmdargs.texi (General Variables): + * doc/lispref/os.texi (Time Conversion, Time Parsing): + Xref new section. + * etc/NEWS, etc/PROBLEMS: + * lisp/org/org.el (org-timestamp-format): + * src/editfns.c (Fformat_time_string, Fdecode_time) + (Fencode_time, Fcurrent_time_string, Fcurrent_time_zone) + (Fset_time_zone_rule): + When documenting time zone rule strings, mention the TZ + environment variable in preference to mentioning the + sort-of-internal function set-time-zone-rule. + +2016-04-12 Phillip Lord + + Prevent bootstrap autoload backup files + + * lisp/emacs-lisp/autoload.el (autoload-find-generated-file): Suppress + backups in newly created file. + + (autoload-ensure-default-file): Function split into two. + (autoload-ensure-file-writeable): New function from split. + + (Bug#23203) + +2016-04-11 YAMAMOTO Mitsuharu + + Disable multicolor fonts on OS X since they are not supported on free systems + + * src/macfont.m (macfont_list): Don't use color bitmap fonts. + +2016-04-11 Paul Eggert + + Capitalize “Universal Time” in documentation + + It’s a proper noun. + * lisp/vc/add-log.el (add-log-time-zone-rule): Also, fix typo by + mentioning ‘format-time-string’ instead of ‘set-time-zone-rule’. + +2016-04-11 Eli Zaretskii + + Don't use 'find-program' + + * lisp/progmodes/project.el (project-file-completion-table): Use + 'grep-find-program', rather than the obsolete 'find-program'. + +2016-04-11 Paul Eggert + + Sync with gnulib + + This is for picky compilers whose stdint.h fails our C11 tests. + Problem reported for clang by Philipp Stephani (Bug#23261). + This incorporates: + 2016-04-11 stdint: port to strict C11 left shift + * doc/misc/texinfo.tex, lib/stdint.in.h: Copy from gnulib. + +2016-04-11 Leo Liu + + Fix last change on 2016-01-02 + + * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): Move + `cl-errs-re' before `lisp--el-match-keyword'; don't use `prepend' + which highlights `cl-errs-re' even in comments or strings. + +2016-04-11 Paul Eggert + + Port run-prolog EMACS to SWI-Prolog 7.2.3 + + * lisp/progmodes/prolog.el (prolog-ensure-process): + Work around incompatibility of SWI-Prolog 7.2.3 and earlier + with the new way of dealing with the EMACS and INSIDE_EMACS + environment variables. + +2016-04-10 Eli Zaretskii + + Avoid crashes due to unreasonably large or small text scaling + + * lisp/face-remap.el (text-scale-min-amount) + (text-scale-max-amount): New functions. + (text-scale-set, text-scale-increase): Use them to limit the text + scaling to a reasonable range of values. (Bug#23259) + +2016-04-10 Eli Zaretskii + + Improve documentation of 'with-eval-after-load' + + * lisp/subr.el (with-eval-after-load): Doc fix. (Bug#23258) + +2016-04-10 Eli Zaretskii + + Improve handling of non-ASCII characters in Git log messages + + * lisp/vc/vc-git.el (vc-git-commits-coding-system): Now a defcustom. + (vc-git-log-output-coding-system): New defcustom. + (vc-git-print-log, vc-git-command, vc-git--call): Use + 'vc-git-log-output-coding-system' for reading stuff from Git. + Don't override values of 'coding-system-for-read/write' if they + are bound by caller -- this allows the user to force an encoding + via "C-x RET c". + (vc-git-checkin): On MS-Windows, pass the log message via a + temporary file, to work around the limitations on passing + non-ASCII characters via command-line arguments. Force using the + 'locale-coding-system' for Git command-line arguments. This fixes + problems with non-ASCII commit log messages on MS-Windows. + (Bug#23076) + + * etc/NEWS: Mention the new vc-git related defcustoms. + +2016-04-09 Philipp Stephani + + Remove undefined behavior in OS X dumper. + + Found by Address Sanitizer. + + * src/unexmacosx.c (unexec_write): Use Mach virtual memory API to + avoid undefined behavior when reading arbitrary memory. + +2016-04-09 Joakim Verona + + Fix clipping of xwidgets + + * src/xwidget.c (x_draw_xwidget_glyph_string): Use window_box + instead of calculating the clipping borders manually. Suggested + by YAMAMOTO Mitsuharu . + +2016-04-09 Eli Zaretskii + + Improve Lisp-level documentation of tooltips + + * doc/lispref/display.texi (Tooltips): New section. (Bug#23246) + (Display): Update the chapter menu. + * doc/lispref/text.texi (Special Properties): Make the "tooltip" + index entry more concrete. Change the cross-reference to point to + "Tooltips" in the ELisp manual. + * doc/lispref/elisp.texi (Top): Update the master menu. + * doc/emacs/frames.texi (Tooltips): Include more customization + variables. Add a cross-reference to the ELisp manual. + +2016-04-08 Glenn Morris + + Faces names should not end in "-face". + + * lisp/rect.el (rectangle-preview): Rename from rectangle-preview-face. + * lisp/vc/vc-hooks.el (vc-state-base): Rename from vc-state-base-face. + +2016-04-08 Paul Eggert + + * src/xsmfns.c (syms_of_xsmfns): Remove stray "s in doc strings. + +2016-04-08 Paul Eggert + + Comint and compile no longer set EMACS + + This mostly restores the change that I reverted on March 23, + fixing most of Bug#20202. The only part of the change that is + still reverted is the change to M-x term, where compatibility with + current Bash constrains us from moving too quickly (Bug#20484). + Problem reported by Phillip Lord in: http://bugs.gnu.org/20484#108 + * etc/NEWS: Document this. + * lisp/comint.el (comint-exec-1): + * lisp/net/tramp-sh.el (tramp-remote-process-environment): + * lisp/progmodes/compile.el (compilation-start): + Don’t set EMACS=t in the subsidiary process. + +2016-04-08 Stefan Monnier + + * lisp/subr.el (read-key): Don't let the prompt linger (bug#22714) + +2016-04-08 Eli Zaretskii + + Allow to customize names of executables used by grep.el + + * lisp/progmodes/grep.el (grep-find-program): Renamed from + 'find-program', which was a variable. All uses changed. + (grep-xargs-program): Renamed from 'xargs-program', which was a + variable. All uses changed. + (grep-program): Now a defcustom rather than a simple variable. + (Bug#23219) + +2016-04-08 Alan Third + + Set locale encoding to UTF-8 when run from OS X GUI. + + * src/nsterm.m (ns_init_locale): Append .UTF-8 when setting LANG. + +2016-04-08 Eli Zaretskii + + Avoid signaling errors in 'M-n' at the 'C-x C-f' prompt + + * lisp/ffap.el (ffap-guess-file-name-at-point): Ignore errors + while 'ffap-guesser' runs. (Bug#23218) + +2016-04-08 Marcin Borkowski + + Avoid infinite loop in 'studlify-word' + + * lisp/play/studly.el (studlify-region): Call + 'forward-word-strictly' and 'backward-word-strictly' instead of + 'forward-word' and 'backward-word'. (Bug#19940) + +2016-04-07 Paul Eggert + + Don’t recommend obsolete EMACS env var + + * doc/misc/efaq.texi (Escape sequences in shell output): + Remove long-obsolete (and now-confusing) notes about + the EMACS environment variable in Emacs 21.1 and earlier. + * doc/misc/efaq.texi (^M in the shell buffer): + * etc/PROBLEMS: + Remove obsolescent recommendation to consult the EMACS environment + variable. + +2016-04-07 Glenn Morris + + * lisp/emacs-lisp/package.el: Change from a few days ago needs seq. + + * lisp/emacs-lisp/seq.el: Load cl-lib, not cl-extra. + +2016-04-07 Leo Liu + + Fix "Beginning of buffer" error in forward-page + + * lisp/textmodes/page.el (forward-page): Check before move to prevent + "Beginning of buffer" error. + +2016-04-06 Dmitry Gutov + + Add a `transient' project type + + * lisp/progmodes/project.el (project-roots): Implement for the + `transient' project type (bug#23224). + (project-current): Instead of signaling an error, return a + transient project instance rooted in the chosen directory. + +2016-04-06 Lars Magne Ingebrigtsen + + Revert "Backport HTTPS proxy fix" + + This reverts commit 2d1a6054b161bd1055d4feb11c8c5ac95543f5db. + + It's too late in the Emacs 25 release cycle to add things like this to + Emacs 25.1. It's border line new feature. + +2016-04-06 Tao Fang + + Backport HTTPS proxy fix + + Cherry-picked from 3c623c26ae7d695746e05d8a2e16a67a6256b024 + + Backport: + +2016-04-06 Paul Eggert + + Fix stability confusion in sort-tests + + Problem reported by Philipp Stephani (Bug#23205). + * test/automated/sort-tests.el: + (sort-tests--insert-words-sort-and-compare): + Don’t assume that reversing a sorted list is the same + as sorting with the reverse predicate. This is not true + for stable sorts when items compare equal. + +2016-04-05 Paul Eggert + + Avoid describe-key error with lambdas + + Problem reported by Sho Takemori (Bug#22716). + * lisp/cedet/mode-local.el (describe-mode-local-overload) + (xref-mode-local-overload): Use function-overload-p instead + of assuming the argument is a symbol. + +2016-04-04 Artur Malabarba + + * lisp/emacs-lisp/package.el (package-install-selected-packages): + + Skip unavailable packages. + +2016-04-04 Paul Eggert + + Sync with gnulib + + This incorporates: + 2016-04-03 stdint: detect good enough pre-C++11 stdint.h in C++ mode + 2016-04-01 stddef: support configuring with g++ + * doc/misc/texinfo.tex, lib/stddef.in.h, m4/stdint.m4: + Copy from gnulib. + +2016-04-03 Paul Eggert + + Fix doc for Universal Time + + * doc/lispref/os.texi (Time of Day, Time Conversion): + Be more careful about distinguishing UTC (which is not valid for + pre-1961 time stamps) and UT (which is). + (Time Parsing): Remove stray obsolete paragraph about a + UNIVERSAL argument for ‘format-time-string’. + +2016-04-03 Michael Albinus + + Handle Bug#23186 + + * lisp/net/tramp.el (tramp-encoding-command-switch) + (tramp-encoding-command-interactive): + * lisp/net/tramp-sh.el (tramp-maybe-open-connection): + `tramp-encoding-shell' could be nil. (Bug#23186) + +2016-04-03 Paul Eggert + + More format-time-string change fixups + + * lisp/net/tramp-sh.el (tramp-sh-handle-set-file-times): + * lisp/org/org.el (org-timestamp-format): + Fix doc to match new format-time-string behavior. + * lisp/org/ox-icalendar.el (org-icalendar-convert-timestamp): + Use (not (not X)) to treat non-nil values of utc arg as UTC. + +2016-04-02 Paul Eggert + + make-xwidget unused arg cleanup + + * doc/lispref/display.texi (Xwidgets): Remove stray refs. + * src/xwidget.c (syms_of_xwidget): Qwebkit, not Qwebkit_osr. + +2016-04-02 Joakim Verona + + Remove unused arguments from make-xwidget + + The arguments BEG and END were unused, and are now removed. + + * doc/emacs/display.texi (Xwidgets): Document the change + * lisp/xwidget.el (make-xwidget, xwidget-insert) + (xwidget-webkit-new-session): Reflect changed arguments + * src/xwidget.c (Fmake_xwidget, syms_of_xwidget): Reflect changed arguments + +2016-04-02 Eli Zaretskii + + Document incompatible changes in 'format-time-string' + + * etc/NEWS: Mention the incompatible change in the interpretation + of the 3rd argument to 'format-time-string'. (Bug#21943) + +2016-04-02 Eli Zaretskii + + Improve documentation of byte-code objects + + * doc/lispref/compile.texi (Byte-Code Objects): Document the + integer format of the argument descriptor. (Bug#23061) + +2016-04-02 Eli Zaretskii + + Adapt calls to 'format-time-string' to changes in Emacs 25 + + * lisp/vc/pcvs-info.el (cvs-fileinfo-from-entries): Use t as the + last argument to format-time-string. (Bug#23128) + * lisp/gnus/gmm-utils.el (gmm-format-time-string): Use t as the + last argument to format-time-string, when the TZ argument is not a + number, per the doc string. + +2016-04-02 Eli Zaretskii + + Improve vc-diff with Git backend + + * lisp/vc/vc-git.el (vc-git-command): Don't override + coding-system-for-read/write if they are already bound. + Suggested by joaotavora@gmail.com (João Távora). (Bug#20892) + (vc-git-print-log): Don't override coding-system-for-read if it's + already bound. + +2016-04-01 Dmitry Gutov + + (js--continued-expression-p): Special-case unary plus and minus + + * lisp/progmodes/js.el (js--continued-expression-p): Make an + effort to recognize unary plus and minus, in the contexts where + they make sense (https://github.com/mooz/js2-mode/issues/322). + +2016-04-01 Alan Mackenzie + + Prevent C++ Mode wrongly fontifying some identifiers near templates as types + + This fixes debbugs #7917. + + * lisp/progmodes/cc-engine.el (c-forward-keyword-prefixed-id): Accept 'maybe + (from c-forward-type) as sufficient to record an id. Record type id as well + as ref ids. + (c-forward-name): Bind c-last-identifier-range around the call to + c-forward-<>-arglist to prevent it getting corrupted. Don't automatically + assume an identifier is a type when a template ">" is followed by a "(". + (c-forward-type): Don't automatically assume an identifier is a type when a + template ">" is followed by a "(". + + * lisp/progmodes/cc-fonts.el (c-font-lock-<>-arglists): Don't fontify an + identifier as a type when its associated ">" is followed by a "(". + +2016-04-01 Eli Zaretskii + + Avoid crashes due to insanely large columns in tabulated-list-format + + * src/xdisp.c (append_stretch_glyph, produce_xwidget_glyph) + (produce_image_glyph): Limit the pixel width of the produced glyph + to SHRT_MAX. (Bug#23178) + (append_composite_glyph, append_glyph, append_glyphless_glyph): + Add assertions to verify that the pixel width of the glyph will + never overflow a 'short'. + * src/term.c (append_composite_glyph): Add assertion to verify + that the pixel width of the glyph will never overflow a 'short'. + +2016-03-31 Mark Oteiza + + Teach M-x disassemble a default argument. + + Adopts default argument in the same way as `describe-function'. + * lisp/emacs-lisp/disass.el (disassemble): Default to function at point, + if any. + +2016-03-31 Eli Zaretskii + + Fix EOL decoding in vc-annotate with SVN back-end on MS-Windows + + * lisp/vc/vc-annotate.el (vc-annotate): Force DOS EOL decoding on + MS-Windows and MS-DOS, when processing the output of "svn annotate". + +2016-03-31 Michael Albinus + + Fix OS X specific settings in tramp-tests + + * lisp/net/tramp-sh.el (tramp-maybe-open-connection): Use it. + + * lisp/net/tramp.el (tramp-get-local-locale): New defun. + + * test/automated/tramp-tests.el (tramp--test-darwin-p): Remove. + (tramp--test-utf8): Improve settings of coding systems. + Do not use `tramp--test-darwin-p' anymore. (Bug#22145) + +2016-03-30 Alan Mackenzie + + Finish fixing a cacheing bug in CC Mode (see 2016-03-09) + + * lisp/progmodes/cc-cmds.el: (c-beginning-of-defun, c-end-of-defun): Remove + superfluous invocations of c-self-bind-state-cache. + + * lisp/progmodes/cc-defs.el: (c-self-bind-state-cache): Copy and terminate + markers correctly. + + * lisp/progmodes/cc-engine.el (c-record-parse-state-state): Terminate stale + markers. + +2016-03-30 Alan Mackenzie + + Merge branch 'emacs-25' of /home/acm/emacs/emacs.git/emacs-25 into emacs-25 + +2016-03-29 Xue Fuqiao + + * doc/lispref/text.texi (Columns): Remove a nonexistent reference. + + The example was removed by Chong Yidong on Mar 5, 2012. + +2016-03-29 Paul Eggert + + * doc/man/emacsclient.1: Document +line:column option. + +2016-03-29 Eli Zaretskii + + Fix rare problems with echo-area display and multiple frames + + * src/xdisp.c (redisplay_window): Bind inhibit-redisplay non-nil + around the call to x_consider_frame_title, to prevent + resize_mini_window from undoing echo-area display. (Bug#23124) + +2016-03-29 Alan Mackenzie + + In M-%, avoid making buffer-local binding of text-property-default-nonsticky + + This would happen when that variable already has a buffer local binding. Such + a binding would not be seen by read-from-minibuffer. This fixes bug #23127. + + * lisp/replace.el (query-replace-read-from): Move the binding of + text-property-default-nonsticky to inside of a new with-current-buffer buffer + form with the minibuffer as argument. + +2016-03-27 Dmitry Gutov + + Remove prog-indentation-context + + * lisp/progmodes/prog-mode.el: (prog-indentation-context) + (prog-first-column, prog-widen): Remove, as discussed in + http://lists.gnu.org/archive/html/emacs-devel/2016-03/msg01425.html. + + * doc/lispref/text.texi (Mode-Specific Indent): Remove references + to them. + + * etc/NEWS: Ditto. + + * lisp/progmodes/python.el: (prog-widen, prog-first-column): + Remove the compatibility aliases and all uses. + + Do not merge to master. + +2016-03-27 Paul Eggert + + * src/font.c (QCuser_spec): Add missing colon to :user-spec. + +2016-03-27 Eli Zaretskii + + Don't start the 'midnight' timer twice + + * lisp/midnight.el (midnight-mode): Avoid starting the midnight + timer twice when activating the mode the first time. (Bug#23123) + +2016-03-27 YAMAMOTO Mitsuharu + + * src/xwidget.c (Fxwidget_resize): Fix inappropriate use of XFASTINT. + +2016-03-26 Stephen Berman + + Fix todo-mode category movement + + * lisp/calendar/todo-mode.el (todo-move-category): Use moved + category's existing categories sexp instead of invoking + todo-update-categories-sexp in file moved to, in order to take + archived items into account. If the moved category has archived + items, handle the source archive buffer properly. Remove + superfluous code. + +2016-03-26 Glenn Morris + + * lisp/xt-mouse.el (xterm-mouse-utf-8): Add :version. + +2016-03-26 Eli Zaretskii + + Ignore non-nil. non-cons values of unread-command-events + + * src/keyboard.c (requeued_events_pending_p, read_char) + (Finput_pending_p): Use CONSP instead of !NILP to see if there are + unread command events to be processed. (Bug#22976) + +2016-03-26 Eli Zaretskii + + Improve documentatuon of 'truncate-partial-width-windows' + + * src/xdisp.c (syms_of_xdisp) : + Clarify in the doc string how the width of partial-width windows + is computed for the purposes of truncation decision. (Bug#4338) + + * doc/emacs/windows.texi (Split Window): Clarify how the width of + windows is calculated for the purposes of truncation decision. + * doc/emacs/display.texi (Line Truncation): Remove a redundant + index entry. + +2016-03-25 Paul Eggert + + * src/ftfont.c (ftfont_shape_by_flt): Parenthesize as per GNU style. + +2016-03-25 Eli Zaretskii + + Fix 'dired-goto-file' in Dired buffers produced by find-dired + + * lisp/dired.el (dired-goto-file): Try looking for the file as a + relative name with leading sub-directories, before looking for the + basename alone. (Bug#23089) + +2016-03-25 Nicolas Petton + + Fix map-put and map-delete for alists (Bug#23105) + + * lisp/emacs-lisp/map.el (map-put): Do not bind the evaluated place + expression to a new symbol. + * test/automated/map-tests.el: Add a regression test. + +2016-03-25 Eli Zaretskii + + Minor copyedits of documentation for temporary displays + + * doc/emacs/windows.texi (Temporary Displays): Improve indexing. + Minor changes in wording. + (Window Choice, Displaying Buffers, Pop Up Window): Disambiguate + index entries for 'display-buffer'. + + * etc/NEWS: Minor rewording of the entry about temporary displays. + +2016-03-25 Philipp Stephani + + Add customization option for using UTF-8 coordinates in xt-mouse + + * lisp/xt-mouse.el (xterm-mouse-utf-8): New customization option. + (xterm-mouse--read-coordinate): New function to replace + `xterm-mouse--read-utf8-char'; uses UTF-8 only if enabled. + (xterm-mouse--read-number-from-terminal): Adapt to new name. + (xterm-mouse-tracking-enable-sequence) + (xterm-mouse-tracking-disable-sequence): Replace constants with + functions, mark constants as obsolete. + (xterm-mouse--tracking-sequence): New helper function. + (turn-on-xterm-mouse-tracking-on-terminal): Use new functions; + enable UTF-8 only if customization option says so; store UTF-8 + flag in terminal parameter. (Bug#23009) + + * test/automated/xt-mouse-tests.el: Add tests for xt-mouse.el. + +2016-03-25 Eli Zaretskii + + Minor doc string fixes in replace.el + + * lisp/replace.el (query-replace, query-replace-regexp) + (query-replace-regexp-eval, map-query-replace-regexp) + (replace-string, replace-regexp): Clarify in doc strings that + these commands operate from point to the end of the buffer's + accessible portion. (Bug#23067) + +2016-03-25 Eli Zaretskii + + Fix scrolling upwards with 'xwidget-webkit-browse-url' + + * src/xwidget.c (Fxwidget_set_adjustment): Use CHECK_NUMBER instead + of CHECK_NATNUM. Suggested by Shayan Pirani . + (Bug#22918) + +2016-03-25 K. Handa + + Fix display of Indic scripts + + * src/ftfont.c (ftfont_shape_by_flt): For combining characters out + of the range U+300...U+36F, use the "combining" FLT only with + non-OTF fonts. + +2016-03-25 Eli Zaretskii + + Fix splash screen display at startup + + * src/frame.c (DEFAULT_ROWS): Enlarge to 36, so that the initial + window displayed by "emacs -q" has enough space to show the whole + text even if it includes 2 lines talking about recovering crashes + sessions. (Bug#23074) + + * lisp/startup.el (use-fancy-splash-screens-p): Fix off-by-one + error when computing the window-height from frame-height. + + * etc/NEWS: Mention the change. + +2016-03-25 Martin Rudalics + + Describe temporary displays in Emacs manual + + * doc/emacs/emacs.texi (Temporary Displays): New subsubsection. + * doc/emacs/windows.texi (Window Choice): Minor fixes. + (Temporary Displays): New subsubsection describing display of + temporary buffers and `temp-buffer-resize-mode'. + +2016-03-24 Paul Eggert + + Avoid stray As next to IDLW icons + + * lisp/progmodes/idlw-toolbar.el (idlwave-toolbar-add-everywhere): + Use "" for empty labels, not "a", as the latter now displays stray + "A"s (Bug#18997). + +2016-03-24 Paul Eggert + + Avoid GTK 3 crash with icons and masks + + Problem reported by Mosè Giordano (Bug#18997). + * src/gtkutil.c (xg_get_pixbuf_from_pixmap): Remove. + (xg_get_pixbuf_from_pix_and_mask): Do not use + xg_get_pixbuf_from_pixmap, as it is poorly documented. Instead, + invoke XGetPixel directly. This is slow but speed is not + important here. Also, fail for unusual situations (not TrueColor, + or images that are not 8 bits per sample) instead of displaying + junk or crashing. + +2016-03-24 Juri Linkov + + * lisp/minibuffer.el (minibuffer-completion-help): Use fit-window-to-buffer + + instead of shrink-window-if-larger-than-buffer. (Bug#23092) + +2016-03-24 Eli Zaretskii + + Define make_save_ptr_ptr unconditionally + + * src/alloc.c (make_save_ptr_ptr): Remove the !(defined + USE_X_TOOLKIT || defined USE_GTK) conditional. Reported by + Philipp Stephani . (Bug#23101) + +2016-03-24 Eli Zaretskii + + Preserve current buffer when popping up TTY menus + + * src/term.c (tty_menu_show): Be sure to save and restore the + current buffer around TTY menu pop-ups. (Bug#23101) + +2016-03-24 Eli Zaretskii + + Improve font selection by family on MS-Windows + + * src/w32font.c (w32font_list_internal): Allow 'ascii-0' charset, + in addition to 'iso10646-1', 'unicode-bmp', and 'unicode-sip'. + This avoids rejecting many font families whose members are shown + by 'font-family-list', in particular 'courier' requested by + info.el. Without this change, many values of ':family' attribute + of a face have no effect on MS-Windows, because they are rejected + due to bogus mismatch of the charset. + +2016-03-23 Paul Eggert + + Comint, term, and compile now set EMACS + + This fixes directory tracking in ansi-term, at the expense of + breaking some usages of 'configure'. Setting EMACS is meant to be + a somewhat temporary measure, until Bash 4.4 comes out and is + common. (Bug#20484). + * etc/NEWS: Document this. + * lisp/comint.el (comint-exec-1): + * lisp/net/tramp-sh.el (tramp-remote-process-environment): + * lisp/progmodes/compile.el (compilation-start): + * lisp/term.el (term-exec-1): + Go back to setting the EMACS environment variable, for backward + compatibility to Bash 4.3 and earlier. + +2016-03-23 Paul Eggert + + Ignore more merges when generating ChangeLog + + * build-aux/gitlog-to-emacslog: Ignore all merges from gnu.org, + not merely those from master and emacs-NN. The ChangeLog entries + they generate are not that useful. + +2016-03-23 Paul Eggert + + Sync with gnulib + + This incorporates: + 2016-03-22 gitlog-to-changelog: suppress ignored chatter + 2016-03-21 sys_select: port to new Cygwin + * build-aux/gitlog-to-changelog, doc/misc/texinfo.tex: + * lib/sys_select.in.h: Copy from gnulib. + +2016-03-23 Paul Eggert + + Resurrect GNUS-NEWS autogeneration + + * doc/misc/gnus-coding.texi (Gnus Maintenance Guide): Update + GNUS-NEWS section to match current file locations and procedure. + * etc/GNUS-NEWS: Regenerate by using new procedure. + * lisp/Makefile.in (update-gnus-news): New rule, containing a + procedure for building GNUS-NEWS. The old procedure got lost + somehow when Gnus was merged into Emacs. + +2016-03-22 Anders Lindgren + + Make `toggle-frame-maximized' respect the dock on OS X (bug#22988). + + * src/nsterm.m (ns_screen_margins): New function. + (ns_screen_margins_ignoring_hidden_dock): New function. + (ns_menu_bar_height): Reimplement in terms of `ns_screen_margins'. + ([EmacsWindow zoom:]): Take all screen margins (except those + originating from a hidden dock) into account. + +2016-03-22 Eli Zaretskii + + Fix bug in displaying header line with a box face + + * src/xdisp.c (get_next_display_element): Handle the case when a + display string acquires the box face from an underlying string, + not from the buffer. (Bug#23091) + +2016-03-21 Kaushal Modi + + Fix an Isearch var to be a string (Bug#23038) + + * lisp/isearch.el (isearch--describe-regexp-mode): The `description' var + needs to always be a string. Add the missing default case for the + cond form that ensures that. + + Before this bug fix, for the events when `regexp-function' and + `search-default-mode' both were nil, `description' also stayed nil. So + when `space-before' was non-nil, the "non-string" `description' + (with a value of nil) got passed as an argument to + `replace-regexp-in-string' (where a string was expected). That caused + the error described in Bug#23038. + +2016-03-21 Leo Liu + + Fix (args-out-of-range 1) error in cursor-sensor--detect + + * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor--detect): Don't + hard-code (point-min) as 1 which fails in narrowed buffers. + +2016-03-20 Lars Magne Ingebrigtsen + + Render empty
    • correctly + + * lisp/net/shr.el (shr-tag-ul): Render empty
        • + correctly (bug#22964). + (cherry picked from commit 4f6ea3988b66cf132c67fd0cc26d12eb9a300ba1) + + Backport: + +2016-03-20 Lars Magne Ingebrigtsen + + Ignore invalid base64 encoded embedded images + + * lisp/net/shr.el (shr-image-from-data): Ignore invalid base64 + encoded embedded images (bug#22928). + (cherry picked from commit f2da80d0e1ccd121c4891e869a45aeb9c6b1795d) + + Backport: + +2016-03-20 Lars Magne Ingebrigtsen + + Fix

          and

          newlines with or without
        • in shr + + * lisp/net/shr.el (shr-ensure-newline): Respect that we're in + a
        • , if we are, and don't insert newlines there. + (shr-ensure-paragraph): When mixing newlines and paragraph + ensurements, don't insert too many blank lines. + (shr-tag-div): A
          shouldn't introduce a paragraph, but a + new line. + (cherry picked from commit 292921facaff2f02ac4e8602c1f7ecbdcfe7ef45) + + Backport: + +2016-03-19 Eli Zaretskii + + Avoid errors in 'newline' + + * lisp/simple.el (newline): Don't barf if invoked with + non-positive argument in the middle of a line. (Bug#22490) + +2016-03-19 Michael Albinus + + Fix Bug#23032 + + * doc/misc/eshell.texi (Arguments): Mention the pipe symbol in + remote file names. (Bug#23032) + +2016-03-19 Eli Zaretskii + + Adjudicate review comments in abbrevs.texi + + * doc/lispref/abbrevs.texi (Abbrev Files, Abbrev Expansion): + * doc/emacs/abbrevs.texi (Dabbrev Customization): State the + default values of variables. Suggested by Steve Byrne + . (Bug#23016) + + * admin/release-process (Check manuals): Mark files reviewed by + Steve Byrne. + +2016-03-18 Dmitry Gutov + + Fixup the "normal" matcher; highlight global var symbols, too + + * lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Highlight + operator name symbols with the "normal" matcher (it actually + needed updating). Highlight global variable symbols, too. + +2016-03-18 Marcin Borkowski + + Honor prefix arg in doc-view-next-line-or-next-page + + * lisp/doc-view.el (doc-view-next-line-or-next-page): Take the + prefix argument into consideration when continuous scrolling is + not in effect (i.e., by default) (bug#19559). + +2016-03-18 Paul Eggert + + Port to strict C99 offsetof + + * src/bidi.c (bidi_copy_it): + * src/lisp.h (CHAR_TABLE_EXTRA_SLOTS): + Use only a single identifier as the second argument of offsetof. + Found by using clang -pedantic. + +2016-03-18 Paul Eggert + + Port to GTK with strict C11 compiler + + * src/gtkutil.c (xg_create_frame_widgets, xg_toggle_notify_cb): + Cast from function type to void * where the C standard requires this. + This works around a problem in the prototypes for + g_signal_handler_find and g_signal_handlers_block_by_func, which + use gpointer instead of GCallback. Found by using gcc -pedantic. + +2016-03-18 Paul Eggert + + Port to GTK with strict C99 compiler + + * src/emacsgtkfixed.c: Use workaround for GNOME bug 683906 only + in glib 2.35.6 and earlier, since the bug is fixed in 2.35.7. + * src/emacsgtkfixed.c (EmacsFixedPrivate): + * src/emacsgtkfixed.h (EmacsFixedClass): + Remove duplicate typedef, which strict C99 does not allow (Bug#23003). + +2016-03-17 Anders Lindgren + + Avoid screen artifacts with new OS X visible bell after scrolling + + * src/nsterm.m (EmacsBell): Save NSView when displaying the + visible bell and set `needsDisplay' when removed. + (hide_bell): Trace. + (ns_copy_bits): Trace. + +2016-03-17 Michael Albinus + + Suppress some Tramp tests for OSX, do not merge with master + + * test/automated/tramp-tests.el (tramp--test-darwin-p): New defun. + (tramp--test-utf8): Use it. (Bug#22145) + +2016-03-17 Glenn Morris + + * lisp/progmodes/xref.el (xref-buffer-name, xref--window): + Move definitions before use. + + * lisp/gnus/mm-decode.el (gnus-format-message): Autoload it. + + * lisp/mail/rmail.el (rmail-mime-entity-truncated): Declare. + +2016-03-17 Glenn Morris + + Address compilation warnings due to 2016-01-03 mml refactoring. + + * lisp/gnus/mml-sec.el (password-cache, mm-encode): Require. + (message-options-get): Autoload. + (message-options-set): Declare. + (mml-secure-cache-passphrase, mml-secure-passphrase-cache-expiry): + Simplify default value. + * lisp/gnus/mml-smime.el (message-options-set): Remove declaration. + * lisp/gnus/mml1991.el, lisp/gnus/mml2015.el: + No longer a need for password-cache. + +2016-03-16 Stefan Monnier + + * lisp/emacs-lisp/smie.el (smie-indent-keyword): Don't burp in strings + + (bug#22960). + +2016-03-16 Glenn Morris + + * lisp/dired-x.el (dired-omit-here-always): Correct error message + for 2016-01-25 change. + + * lisp/dired-x.el (dired-omit-here-always): Replace undefined function + removed 2016-01-30. + + * lisp/xml.el (xml-parse-tag-1): Replace undefined function. + +2016-03-16 Eli Zaretskii + + Avoid segfaults due to frame image cache being absent + + * src/image.c (cache_image): If the frame doesn't have an image + cache, create it. (Bug#23028) + +2016-03-16 Eli Zaretskii + + Improve documentation of glyphless-character display + + * doc/emacs/display.texi (Text Display): Document and index the + 'glyphless-char' face. + +2016-03-16 Dmitry Gutov + + Support safe navigation operator in non-SMIE indentation code + + * lisp/progmodes/ruby-mode.el (ruby-calculate-indent): + Support safe navigation operator in non-SMIE indentation code. + Cherry-picked from + https://github.com/ruby/ruby/commit/68e16ddd7961b86e5013e62ae2954e88638de058. + +2016-03-16 Thomas Fitzsimmons + + Move xsd:base64Binary decoding fix to debbugs.el 0.9.1 + + * lisp/net/soap-client.el (soap-encode-xs-basic-type): Do not + assume xsd:base64Binary values are UTF-8 strings. + (soap-decode-xs-basic-type): Likewise. + (soap-invoke): Document xsd:base64Binary handling. + +2016-03-15 Dmitry Gutov + + Fix Ruby's operator precedence + + * lisp/progmodes/ruby-mode.el (ruby-smie-grammar): + Rearrange the smie-precs->prec2 form. + +2016-03-15 Dmitry Gutov + + (ruby-interpolation-inside-another-interpolation): New failing test + + * test/automated/ruby-mode-tests.el + (ruby-interpolation-inside-another-interpolation): + New failing test. + +2016-03-15 Paul Eggert + + Port to clang 3.7.0 on x86-64 + + * configure.ac: Use AS_IF so that gl_WARN_ADD’s prerequisites are + not done conditionally. This helps clang, which needs + -Wunknown-warning-option later when configured with warnings. + * src/editfns.c (invalid_time): Now _Noreturn, since clang isn’t + smart enough to figure this out on its own if warnings are enabled. + (lisp_time_struct): Redo for clarity, and to pacify clang. + * src/xfns.c (x_real_pos_and_offsets) [USE_XCB]: Don’t use + uninitialized locals. This avoids undefined behavior and pacifies + clang. + +2016-03-15 Glenn Morris + + * test/automated/package-test.el (package-test-signed): Tweak skip + condition, for hydra. + +2016-03-15 Paul Eggert + + Sync with gnulib + + This incorporates: + 2016-03-15 time_rz: port to clang -Wunused-const-variable + 2016-03-15 select: port more to Intel 2016.1.150 compiler + * lib/sys_select.in.h, lib/time_rz.c: Copy from gnulib. + +2016-03-15 Eli Zaretskii + + Fix startup of "emacs -nw" on systems that CANNOT_DUMP + + * src/xdisp.c (syms_of_xdisp) : Initialize to + nil. + + * lisp/loadup.el : Set to 'grow-only' after + loading window.el. (Bug#22975) + +2016-03-14 Dmitry Gutov + + Do not tokenize a comment before continuation as ';' + + * lisp/progmodes/ruby-mode.el (ruby-smie--implicit-semi-p): + Account for a comment right after point. + +2016-03-14 Dmitry Gutov + + Don't misindent arguments of a method call inside continuation + + * lisp/progmodes/ruby-mode.el (ruby-smie-rules): + Use smie-indent-virtual instead of smie-rule-parent (bug#23015). + Simplify the traversal loop. + +2016-03-14 Stefan Monnier + + * src/keyboard.c (echo_keystrokes_p): Don't test cursor_in_echo_area + + (read_key_sequence): Test it here, as before. + (bug#22825). + +2016-03-14 Paul Eggert + + ASCII-only etc/NEWS etc. + + * etc/NEWS, nextstep/README: Revert the recently-added curved + quotes, and stick to ASCII. This typically involves replacing + curved with straight quotes. Since etc/NEWS is viewed so often by + UTF-8-ignorant tools, rewrite its non-ASCII text to spell out + Unicode, e.g., replace ‘‒’ with ‘U+2012 (FIGURE DASH)’. + +2016-03-14 Alan Mackenzie + + Fix a cacheing bug, which led to inordinately slow c-beginning-of-defun. + + * lisp/progmodes/cc-defs.el (c-self-bind-state-cache): New macro. + + * lisp/progmodes/cc-engine.el (c-ssb-lit-begin): Always call c-parse-state + rather than just using the cache variable c-state-cache. + (c-syntactic-skip-backward): Invoke c-self-bind-state-cache to isolate calls + to c-parse-state from other uses of the parse state cache. + + * lisp/progmodes/cc-cmds.el (c-beginning-of-defun, c-end-of-defun): Invoke + c-self-bind-state-cache around the processing, replacing flawed bindings of + c-state-cache. + +2016-03-14 Alan Mackenzie + + Fix a cacheing bug, which led to inordinately slow c-beginning-of-defun. + + * lisp/progmodes/cc-defs.el (c-self-bind-state-cache): New macro. + + * lisp/progmodes/cc-engine.el (c-ssb-lit-begin): Always call c-parse-state + rather than just using the cache variable c-state-cache. + (c-syntactic-skip-backward): Invoke c-self-bind-state-cache to isolate calls + to c-parse-state from other uses of the parse state cache. + + * lisp/progmodes/cc-cmds.el (c-beginning-of-defun, c-end-of-defun): Invoke + c-self-bind-state-cache around the processing, replacing flawed bindings of + c-state-cache. + +2016-03-14 Kaushal Modi + + Fix Isearch prompt when invoked with an argument + + * lisp/isearch.el (isearch--describe-regexp-mode): With + `search-default-mode' set to nil, if user does C-u C-s, the minibuffer + now displays "Regexp I-search: " again. But if the user has set + `search-default-mode' to t, and then does C-s, the minibuffer now + displays "I-search: " because the default search mode is now regexp + mode. Comments have been added to explain the priority of conditions + in the `cond' form. (Bug#22991) + +2016-03-14 Cesar Quiroz (tiny change) + + Fix a typo in the Emacs manual + + * doc/emacs/maintaining.texi (VC Directory Commands): Fix a typo + in a command name. + +2016-03-14 Paul Eggert + + Curved quotes in etc/NEWS etc. + + * etc/NEWS, nextstep/README: Prefer curved quotes in the + recently-changed text documentation. See: + http://lists.gnu.org/archive/html/emacs-devel/2016-03/msg00860.html + +2016-03-14 Paul Eggert + + Fix some single quotes in documentation + + * doc/emacs/anti.texi (Antinews): Avoid confusion in info and PDF + when documenting quoting styles. + * etc/NEWS, nextstep/README: In these plain text files, quote + 'like this' consistently, rather than also (sometimes) ‘like this’ + or (more often) `like this'. + +2016-03-13 Dmitry Gutov + + Make lisp-completion-at-point's argument optional + + * lisp/progmodes/elisp-mode.el (lisp-completion-at-point): Make + the argument optional, like it was before the rename. + +2016-03-13 Dmitry Gutov + + Tweak the left precedence of '=>' + + * lisp/progmodes/ruby-mode.el (ruby-smie-grammar): Tweak the left + precedence of '=>', to improve indentation and sexp navigation. + +2016-03-13 Dmitry Gutov + + Indent '.' relative to the first sibling expression + + * lisp/progmodes/ruby-mode.el (ruby-smie-rules): + Indent '.' relative to the first sibling expression, instead of the + parent token (bug#17213). + +2016-03-13 Dmitry Gutov + + Make '.' associative, for easier sexp navigation + + * lisp/progmodes/ruby-mode.el (ruby-smie-grammar): + Make '.' associative, for easier sexp navigation. + +2016-03-13 Phillip Lord + + Revert "Simplify "Visit New File" to "New File"" + + This reverts commit d457fd9dc782465e1547f74021390c9d5951d6af. + +2016-03-12 Phillip Lord + + Simplify "Visit New File" to "New File" + + * doc/emacs/files.texi, lisp/menu-bar.el (menu-bar-file-menu), + lisp/startup.el(normal-mouse-start-screen, + normal-no-mouse-startup-screen): Change label "Visit New File" to "New + File". + +2016-03-12 Eli Zaretskii + + Update Unicode notes for importing a new Unicode version + + * admin/notes/unicode: Mention the need to update otf-script-alist + in fontset.el when importing data files from a new Unicode + version. + +2016-03-12 Eli Zaretskii + + Import new data files from Unicode 9.0.0beta + + * admin/unidata/UnicodeData.txt: + * admin/unidata/Blocks.txt: + * admin/unidata/BidiMirroring.txt: + * admin/unidata/BidiBrackets.txt: Update from Unicode 9.0.0beta. + * admin/unidata/unidata-gen.el (unidata-gen-files): Bind + 'coding-system-for-read' to 'utf-8, as various Unicode data files + now actually use non-ASCII characters. + (unidata-setup-list, unidata-get-name): Support the new Tangut + Ideographs block. + + * lisp/international/characters.el (standard-case-table): Add new + characters from Unicode 9.0.0. + (standard-category-table): Add Arabic block u+08A0..u+08FF. Add + Cyrillic Extended-C block. + (char-width-table): Update ranges per Unicode 9.0.0. + * lisp/international/fontset.el (script-representative-chars): Add + new scripts defined by Unicode 9.0.0. + (otf-script-alist): Add new OTF script tags. + * lisp/international/mule-cmds.el (ucs-names): Update ranges per + Unicode 9.0.0 additions. + +2016-03-12 Eli Zaretskii + + Avoid errors in forms-mode when default major mode is text + + * lisp/forms.el (forms-mode): Bind + change-major-mode-with-file-name to nil when calling + set-visited-file-name. (Bug#22982) + +2016-03-12 Eli Zaretskii + + Avoid crashes at startup on systems that CANNOT_DUMP + + * src/xdisp.c (syms_of_xdisp) : New + boolean variable. + (init_iterator, reseat_to_string) + (Fcurrent_bidi_paragraph_direction) + (Fbidi_find_overridden_directionality): Use + redisplay--inhibit-bidi instead of purify-flag, to determine when + it's safe to reorder bidirectional text. + + * lisp/loadup.el (redisplay--inhibit-bidi): Set to t at the + beginning of the file. Reset to nil when charprop.el is + successfully loaded, or when we are going to dump, whichever + happens last. (Bug#22975) + +2016-03-12 Eli Zaretskii + + Fix documentation of seq.el functions + + * doc/lispref/sequences.texi (Sequence Functions): Fix typos. Add + cross-references. Fix formatting. (Bug#22992) + +2016-03-11 Dmitry Gutov + + Support Ruby 2.3.0's safe navigation operator + + * lisp/progmodes/ruby-mode.el (ruby-smie--forward-token) + (ruby-smie--backward-token): Tokenize '&.' as '.'. + (ruby-smie--implicit-semi-p): Check for possible '&' before '.'. + + * test/indent/ruby.rb: Add an example using safe navigation + operator. Fix a syntax error in existing example. + +2016-03-11 John Wiegley + + Update Emacs manual section related to character folding + + * doc/emacs/search.texi: Character folding is not on by default. + +2016-03-11 Eli Zaretskii + + Update admin/notes/unicode + + * admin/notes/unicode: Update the list of files from the UCD we + are using. Mention the possible need to change 'ucs-names' when + importing a new version of the Unicode Standard. + +2016-03-10 Dmitry Gutov + + Add symref-filepattern entries for c?perl-mode + + * lisp/cedet/semantic/symref/grep.el + (semantic-symref-filepattern-alist): Add entries for perl-mode and + cperl-mode. + +2016-03-10 Ken Raeburn + + Don't use XRANDR 1.3 extensions if the server doesn't support them. + + * src/xterm.h (struct x_display_info): Add fields to save XRANDR + version number. + * src/xfns.c (x_get_monitor_attributes): Save the version numbers + after querying the X server. + (x_get_monitor_attributes_xrandr): Don't use XRRGetOutputPrimary or + XRRGetScreenResourcesCurrent if the server doesn't support at least + RANDR version 1.3. Conditionalize the code blocks on compiling + against library version 1.3 or better, rather than feature tests for + each function. + * configure.ac: Stop testing for those two functions. + +2016-03-10 Paul Eggert + + Sync with gnulib + + This incorporates: + 2016-03-08 intprops: make .h file license match module + 2016-03-08 acl: fix missing return on Cygwin + 2016-03-05 extern-inline: port to PGI CC + * doc/misc/texinfo.tex, lib/intprops.h, lib/set-permissions.c: + * m4/extern-inline.m4: + Copy from gnulib. + +2016-03-10 Paul Eggert + + Rework C source files to avoid ^( + + Work around Bug#22884 by rewording comments and strings to avoid ‘(’ + at the start of a line unless it starts a function. This change + is a short-term hack; in the longer run we plan to fix cc-mode’s + performance for C files that have ‘(’ at the start of a line in a + comment or string. + +2016-03-10 Eli Zaretskii + + By default, etags produces unqualified Perl tag names + + * lib-src/etags.c (Perl_functions): Produce unqualified names, + unless -Q was specified. + (print_help): Update the description of -Q. + + * doc/man/etags.1: Update the documentation of -Q. + + * 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/CTAGS.good: Adapt the expected test results to the + changed Perl functionality. + +2016-03-10 Dmitry Gutov + + Indent methods with keyword names correctly + + * lisp/progmodes/ruby-mode.el (ruby-smie--at-dot-call): + Rename to ruby-smie--before-method-name. Now also check if we're + after a 'def' keyword. Update both callers. + +2016-03-10 Dmitry Gutov + + Propertize character literals and special global variables differently + + * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): Propertize + character literals and global variables with special names with + prefix and symbol syntax classes, for SMIE to tokenize them + together automatically. + (ruby-font-lock-keywords): Fix an old regression in highlighting + character literals. + +2016-03-09 John Wiegley + + Change how /etc/NEWS presents character folding + + * NEWS: Note that character folding is no longer the default. + +2016-03-09 John Wiegley + + Revert "Revert "Backport: * lisp/isearch.el: Turn char-folding off by default"" + + This reverts commit a91b4b51ddf2575d821adb8b84fdf32cff83886e. + +2016-03-09 Andreas Schwab + + Properly handle lambda as read function (bug 22961) + + * src/lread.c (readchar): Be more strict about checking for + string in cons for read_vector. + (unreadchar): Likewise. + +2016-03-09 Dmitry Gutov + + Propertize operator symbol names with symbol syntax class + + * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): + Do it here. + (ruby-font-lock-keywords): Instead of handling them here. Leave + highlighting them to the "normal" matcher, because now we can. + (ruby-smie--forward-token, ruby-smie--backward-token): + Likewise, don't special-case operator symbols anymore. + (ruby-smie--args-separator-p): Simplify the regexp, match operator + names with \s_. + (ruby-smie--implicit-semi-p): Handle the special cases of ? and = + at EOL the same way: check if the character has been assigned the + symbol syntax class by syntax-propertize. + +2016-03-09 Dmitry Gutov + + Stop recognizing :#{} as symbol in ruby-mode + + * lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Remove + the weird part that recognized colon followed by interpolation + construct without quotes (e.g. ':#{abc}') as symbol, which is just a + syntax error in any modern version of Ruby. Fix nearby bug reference. + +2016-03-09 Dmitry Gutov + + Allow using the left shift operator without spaces on both sides + + * lisp/progmodes/ruby-mode.el (ruby-singleton-class-p): Rename to + ruby-verify-heredoc, reverse the meaning of the return value, and + short-circuit if preceded by a symbol not separated by whitespace. + + * test/automated/ruby-mode-tests.el (ruby-no-heredoc-left-shift) + (ruby-no-heredoc-class-self): New tests. + +2016-03-08 Andreas Schwab + + Properly handle unquoting in wdired (bug 22938) + + The recorded old names are not quoted, don't unquote them. + + * lisp/wdired.el (wdired-normalize-filename): Add argument + unquotep, only unquote if non-nil. + (wdired-get-filename): Don't unquote the old file name. + (wdired-get-previous-link): Always unquote. + +2016-03-06 Dmitry Gutov + + Allow splat operator before percent literal + + * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): + Allow splat operator before percent literal. + +2016-03-06 Dmitry Gutov + + Don't apply the return value of goto-char as syntax class + + * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): Don't + apply the return value of goto-char as syntax class. + +2016-03-06 Dmitry Gutov + + Guard against nested percent literals + + * lisp/progmodes/ruby-mode.el + (ruby-syntax-propertize-percent-literal): + Don't check the syntax status. + (ruby-syntax-propertize): Check it here. And also guard against + being in a larger percent literal. + + * test/automated/ruby-mode-tests.el + (ruby-no-nested-percent-literals): New test. + +2016-03-06 Dmitry Gutov + + Recognize iuwu-mod after an escaped newline + + * lisp/progmodes/ruby-mode.el (ruby-smie--bosp): Check if the + newline is escaped. + (ruby-smie-rules): Indent iuwu-mod after an escaped newline + correctly. + +2016-03-06 Andreas Schwab + + Fix symbolic mode string conversion for s and t + + * lisp/files.el (file-modes-char-to-right): Fix values for ?s and + ?t. + (file-modes-symbolic-to-number): Default to a for ts permissions. + +2016-03-06 Eli Zaretskii + + Update 'ucs-names' database + + * lisp/international/mule-cmds.el (ucs-names): Update used and + unused ranges from the latest UnicodeData.txt. + +2016-03-06 Eli Zaretskii + + Improve doc string of 'shell-command' + + * lisp/simple.el (shell-command): Mention that COMMAND is prompted + for. (Bug#22926) + +2016-03-06 Eli Zaretskii + + Make the code in movemail_strftime more general + + * lib-src/movemail.c (movemail_strftime): Transform the format + string passed by the caller instead of using a separate format + string. + +2016-03-06 Eli Zaretskii + + Speed up redisplay of binary files with long series of nulls + + * src/bidi.c (bidi_resolve_weak): Avoid entering a loop searching + for a character needed for resolving the type of a series of BN + and ET characters, as required by rule W5 of UAX#9, if the results + of the resolution are known in advance, because we are at level + zero, and the previous strong character was L. + (bidi_resolve_neutral): Partially resurrect the optimization for a + long series of control characters in an otherwise strictly L2R + text. + (bidi_level_of_next_char): Don't enter the loop that searches for + a paragraph separator if the current character is already at base + embedding level. (Bug#22739) + +2016-03-05 Dmitry Gutov + + Remove the highlighting support for quoting 'like this' inside Lisp docstrings + + Remove the highlighting support for quoting 'like this' inside + Lisp docstrings. This part of + c4151ebe15479de4c2e511b068cdf9af6a4576cf seems to have been + unintentional, considering substitute-command-keys gives wrong + output for such usage. + * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2) + (lisp-cl-font-lock-keywords-2): Do not highlight text between two + straight quotes as symbol. + +2016-03-05 Paul Eggert + + Restore leading space in movemail pop output + + * lib-src/movemail.c (movemail_strftime) [WINDOWSNT]: New function. + (strftime) [WINDOWSNT]: New macro. + (mbx_delimit_begin): Go back to previous version of this code, + now that there’s a special-purpose WINDOWSNT implementation + that should do the right thing. That way, the output continues + to use leading space rather than leading zero for day of month. + +2016-03-05 Eli Zaretskii + + Fix bidi-paragraph-direction in Rmail view buffer + + * lisp/mail/rmail.el (rmail-show-message-1): Reset + bidi-paragraph-direction to nil before formatting the message for + display. + +2016-03-05 Dmitry Gutov + + Don't misindent computed property generator methods + + * lisp/progmodes/js.el (js--looking-at-operator-p): + Don't misindent computed property generator methods + (https://github.com/mooz/js2-mode/issues/317). + +2016-03-05 Eli Zaretskii + + Fix mbox files produced by movemail on MS-Windows + + * lib-src/movemail.c (mbx_delimit_begin): Use portable strftime + format specifiers, as at least the MS-Windows version of strftime + doesn't support %e and %T. + +2016-03-04 Paul Eggert + + doc string file descriptor exhaustion fix + + * src/doc.c (get_doc_string): Move newly-added check to a better + location (Bug#22814). + +2016-03-04 Michael Albinus + + Fix Bug#22814 + + * src/doc.c (get_doc_string): Raise an error in case too many + files are open. (Bug#22814) + +2016-03-04 Lars Ingebrigtsen + + Fix insertion of edited servers in the dribble file + + * lisp/gnus/gnus-srvr.el (gnus-server-update-server): Don't + insert explicit newlines, because they're quoted (bug#22903). + + Backport: + + (cherry picked from commit ca4e30058eba0531f38fff75f14734acffab84ea) + +2016-03-04 Martin Rudalics + + Fix previous fix of enlarge-/shrink-window + + * lisp/window.el (enlarge-window, shrink-window): Consistently + signal user-error instead of error. Resize minibuffer window by + delta lines instead of pixels. When a window cannot be resized, + signal an error only when this function was invoked by a command + in the enlarge-/shrink-window group (this restores the behavior + before the fix of bug#22723 for the non-interactive case). + +2016-03-03 Artur Malabarba + + * lisp/isearch.el (isearch-define-mode-toggle): Fix toggling logic + +2016-03-03 Mark Oteiza + + Complete temperature units in calc-convert-temperature + + * lisp/calc/calc-units.el (calc-convert-temperature): Complete with + temperature units in math-standard-units. + +2016-03-02 Dmitry Gutov + + Make sure to use case-sensitive search + + * lisp/progmodes/xref.el (xref-collect-references): Make sure to + use case-sensitive search. + +2016-03-02 Ulf Jasper + + Prevent infinite loop on not-well-formed xml. (Bug#16344) + + * lisp/xml.el (xml-parse-tag-1): Prevent inifinite loop. (Bug#16344) + * test/automated/xml-parse-tests.el (xml-parse-tests--bad-data): Add + test cases for Bug#16344. + +2016-03-02 Alan Third + + Add the missing test case for the previous patch + + lisp/dabbrev.el (dabbrev--substitute-expansion): Return EXPANSION after + any processing. + lisp/dabbrev.el (dabbrev-expand): Set EXPANSION to the return value of + DABBREV--SUBSTITUTE-EXPANSION. + test/automated/dabbrev-tests.el (dabbrev-expand-test): Test for bug#1948. + +2016-03-02 Alan Third + + Use the correct dabbrev expansion + + lisp/dabbrev.el (dabbrev--substitute-expansion): Return EXPANSION after + any processing. + lisp/dabbrev.el (dabbrev-expand): Set EXPANSION to the return value of + DABBREV--SUBSTITUTE-EXPANSION. + test/automated/dabbrev-tests.el (dabbrev-expand-test): Test for bug#1948. + +2016-03-02 Nicolas Petton + + Bump version to 25.0.92 + + * README: + * configure.ac: + * msdos/sed2v2.inp: Bump version to 25.0.92. + +2016-03-02 Nicolas Petton + + * etc/AUTHORS: Update the AUTHORS file + +2016-03-02 Nicolas Petton + + authors.el updates + + * admin/authors.el (authors-ignored-files): Addition. + 2016-03-02 Michael Albinus Fix Bug#22859 @@ -10294,7 +16639,7 @@ * lisp/files.el: Don't allow customization of dir-locals sorting. In retrospect, this is not a good idea for the same reason that `dir-locals-file' is a defconst, because it is important that this - behaviour be "uniform across different environments and users". + behavior be "uniform across different environments and users". Sure, the user can still change the sorting with a hack, but we shouldn't encourage them to change it. (dir-locals--all-files): Return list in the order returned by @@ -28665,7 +35010,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit 06da00c6cfb5f3cafbad92bd4584a0f50343a568 (inclusive). +commit 5878abf87b6b3ead1367cbae5cc6b0743349f611 (inclusive). See ChangeLog.1 for earlier changes. ;; Local Variables: diff --git a/INSTALL b/INSTALL index 6f516bd1dde7..ade9bcbf4634 100644 --- a/INSTALL +++ b/INSTALL @@ -5,7 +5,7 @@ See the end of the file for license conditions. This file contains general information on building GNU Emacs. -For more information specific to the MS-Windows, GNUstep/Mac OS X, and +For more information specific to the MS-Windows, GNUstep/macOS, and MS-DOS ports, also read the files nt/INSTALL, nextstep/INSTALL, and msdos/INSTALL. For information about building from a repository checkout (rather than a release), also read the file INSTALL.REPO. @@ -34,7 +34,7 @@ some of the steps manually. The more detailed description in the other sections of this guide will help you do that, so please refer to those sections if you need to. - 1. Unpacking the Emacs 24 release requires about 200 MB of free + 1. Unpacking the Emacs 25 release requires about 200 MB of free disk space. Building Emacs uses about another 200 MB of space. The final installed Emacs uses about 150 MB of disk space. This includes the space-saving that comes from automatically @@ -208,7 +208,7 @@ corresponding command is 'yum-builddep emacs'. DETAILED BUILDING AND INSTALLATION: -(This is for a Unix or Unix-like system. For GNUstep and Mac OS X, +(This is for a Unix or Unix-like system. For GNUstep and macOS, see nextstep/INSTALL. For non-ancient versions of MS Windows, see the file nt/INSTALL. For MS-DOS and MS Windows 3.X, see msdos/INSTALL.) diff --git a/Makefile.in b/Makefile.in index b212c914e566..9600c1199ab4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -113,7 +113,7 @@ am__v_at_1 = # ==================== Where To Install Things ==================== -# Location to install Emacs.app under GNUstep / Mac OS X. +# Location to install Emacs.app under GNUstep / macOS. # Later values may use these. ns_appbindir=@ns_appbindir@ ns_appresdir=@ns_appresdir@ @@ -584,7 +584,7 @@ install-arch-indep: lisp install-info install-man ${INSTALL_ARCH_INDEP_EXTRA} if [ "$${dir}" = "${srcdir}/etc" ]; then \ rm -f "$${dest}/DOC"* ; \ rm -f "$${dest}/refcards"/*.aux "$${dest}/refcards"/*.dvi; \ - rm -f "$${dest}/refcards"/*.log; \ + rm -f "$${dest}/refcards"/*.log "$${dest}/refcards"/*.in; \ else true; \ fi; \ (cd "$${dest}" || exit 1; \ diff --git a/README b/README index 915d29039f4c..10cd60b934f5 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.0.93 of GNU Emacs, the extensible, +This directory tree holds version 25.1.90 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 @@ -86,9 +86,8 @@ There are several subdirectories: in Emacs Lisp manual. 'msdos' holds configuration files for compiling Emacs under MS-DOS. 'nextstep' holds instructions and some other files for compiling the - Nextstep port of Emacs, for GNUstep and Mac OS X Cocoa. -'nt' holds various command files and documentation files that pertain - to building and running Emacs on Windows 9X/ME/NT/2000/XP. + Nextstep port of Emacs, for GNUstep and macOS Cocoa. +'nt' holds code and documentation for building Emacs on MS-Windows. 'test' holds tests for various aspects of Emacs's functionality. Building Emacs on non-Posix platforms requires tools that aren't part diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES index 796b57db3d86..cf8360316c2a 100644 --- a/admin/CPP-DEFINES +++ b/admin/CPP-DEFINES @@ -22,7 +22,7 @@ WINDOWSNT Compiling the native MS-Windows (W32) port. __MINGW32__ Compiling the W32 port with the MinGW or MinGW-w64 ports of GCC. _MSC_VER Compiling the W32 port with the Microsoft C compiler. MINGW_W64 Compiling the W32 port with the MinGW-w64 port of GCC. -DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h). +DARWIN_OS Compiling on macOS or pure Darwin (and using s/darwin.h). SOLARIS2 USG USG5_4 @@ -30,7 +30,7 @@ USG5_4 ** Distinguishing GUIs ** HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars. -HAVE_NS Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep. +HAVE_NS Use the NeXT/OpenStep/Cocoa UI under macOS or GNUstep. NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API. NS_IMPL_COCOA Compile support for Cocoa (Apple) implementation of NS GUI API. HAVE_X11 Compile support for the X11 GUI. diff --git a/admin/admin.el b/admin/admin.el index fe807ff96fe8..9f3b68e0bb98 100644 --- a/admin/admin.el +++ b/admin/admin.el @@ -30,6 +30,7 @@ (defun add-release-logs (root version &optional date) "Add \"Version VERSION released.\" change log entries in ROOT. +Also update the etc/HISTORY file. Root must be the root of an Emacs source tree. Optional argument DATE is the release date, default today." (interactive (list (read-directory-name "Emacs root directory: ") @@ -42,6 +43,19 @@ Optional argument DATE is the release date, default today." (setq root (expand-file-name root)) (unless (file-exists-p (expand-file-name "src/emacs.c" root)) (user-error "%s doesn't seem to be the root of an Emacs source tree" root)) + (let ((clog (expand-file-name "ChangeLog" root))) + (if (file-exists-p clog) + ;; Basic check that a ChangeLog that exists is not your personal one. + ;; TODO Perhaps we should move any existing file and unconditionally + ;; call make ChangeLog? Or make ChangeLog CHANGELOG=temp and compare + ;; with the existing? + (with-temp-buffer + (insert-file-contents clog) + (or (re-search-forward "^[ \t]*Copyright.*Free Software" nil t) + (user-error "ChangeLog looks like a personal one - remove it?"))) + (or + (zerop (call-process "make" nil nil nil "-C" root "ChangeLog")) + (error "Problem generating ChangeLog")))) (require 'add-log) (or date (setq date (funcall add-log-time-format nil t))) (let* ((logs (process-lines "find" root "-name" "ChangeLog")) @@ -53,7 +67,14 @@ Optional argument DATE is the release date, default today." (dolist (log logs) (find-file log) (goto-char (point-min)) - (insert entry)))) + (insert entry))) + (let ((histfile (expand-file-name "etc/HISTORY" root))) + (unless (file-exists-p histfile) + (error "%s not present" histfile)) + (find-file histfile) + (goto-char (point-max)) + (search-backward " ") + (insert (format "GNU Emacs %s (%s) emacs-%s\n\n" version date version)))) (defun set-version-in-file (root file version rx) "Subroutine of `set-version' and `set-copyright'." @@ -88,6 +109,9 @@ Root must be the root of an Emacs source tree." (rx (and "AC_INIT" (1+ (not (in ?,))) ?, (0+ space) (submatch (1+ (in "0-9.")))))) + (set-version-in-file root "nt/README.W32" version + (rx (and "version" (1+ space) + (submatch (1+ (in "0-9.")))))) ;; TODO: msdos could easily extract the version number from ;; configure.ac with sed, rather than duplicating the information. (set-version-in-file root "msdos/sed2v2.inp" version diff --git a/admin/authors.el b/admin/authors.el index f1aa2fa44282..5a97c854a622 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -45,9 +45,12 @@ files.") '( (nil "A\\. N\\. Other") ; unknown author 2014-12-03, later removed ("Aaron S. Hawley" "Aaron Hawley") + ("Alan Third" "Alan J Third") ("Alexandru Harsanyi" "Alex Harsanyi") + ("Álvar Jesús Ibeas Martín" "Álvar Ibeas") ("Andrew Csillag" "Drew Csillag") ("Anna M. Bigatti" "Anna Bigatti") + ("Aurélien Aptel" "Aurelien Aptel") ("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc." "Barry A. Warsaw, ITB" "Barry Warsaw") ("Bill Carpenter" "WJ Carpenter") @@ -61,6 +64,7 @@ files.") ("David J. Biesack" "David Biesack") ("David De La Harpe Golden" "David Golden") ("David Gillespie" "Dave Gillespie") + ("David S. Goldberg" "Dave Goldberg") ("David Kågedal" "David K..edal") ("David M. Koppelman" "David Koppelman") ("David M. Smith" "David Smith" "David M Smith") @@ -72,6 +76,7 @@ files.") ("Eric M. Ludlam" "Eric Ludlam") ("Eric S. Raymond" "Eric Raymond") ("Fabián Ezequiel Gallina" "Fabian Ezequiel Gallina" "Fabi.n E\\. Gallina") + ("Francis Litterio" "Fran Litterio") ("Francis J. Wright" "Dr Francis J. Wright" "Francis Wright") ("François Pinard" "Francois Pinard") ("Francesco Potortì" "Francesco Potorti" "Francesco Potorti`") @@ -122,11 +127,12 @@ files.") ("Michaël Cadilhac" "Michael Cadilhac") ("Michael I. Bushnell" "Michael I Bushnell" "Michael I. Bushnell, p/BSG") ("Michael R. Cook" "Michael Cook") - ("Michael Sperber" "Michael Sperber \\[Mr. Preprocessor\\]") + ("Michael Sperber" "Mike Sperber" "Michael Sperber \\[Mr. Preprocessor\\]") ("Mikio Nakajima" "Nakajima Mikio") ("Nelson Jose dos Santos Ferreira" "Nelson Ferreira") ("Noorul Islam" "Noorul Islam K M") ;;; ("Tetsurou Okazaki" "OKAZAKI Tetsurou") ; FIXME? + ("Óscar Fuentes" "Oscar Fuentes") ("Paul Eggert" "Paul R\\. Eggert") ("Pavel Janík" "Pavel Janík Ml." "Pavel Janik Ml." "Pavel Janik") ("Pavel Kobiakov" "Pavel Kobyakov") @@ -136,6 +142,7 @@ files.") ("Peter S. Galbraith" "Peter S Galbraith" "Peter Galbraith") ("Peter Runestig" "Peter 'luna' Runestig") ("Piotr Zieliński" "Piotr Zielinski") + ("Przemysław Wojnowski" "Przemyslaw Wojnowski") ("Rainer Schöpf" "Rainer Schoepf") ("Raja R. Harinath" "Raja R Harinath") ("Richard G. Bielawski" "Richard G Bielawski" "Richard Bielawski") @@ -143,13 +150,16 @@ files.") ("Richard M. Stallman" "Richard Stallman" "rms@gnu.org") ("Robert J. Chassell" "Bob Chassell") ("Roberto Huelga Díaz" "Roberto Huelga") + ("Rodney J. Whitby" "Rod Whitby") ("Roland B. Roberts" "Roland B Roberts" "Roland Roberts") + ("Ron Schnell" "Ronnie Schnell") ("Rui-Tao Dong" "Rui-Tao Dong ~{6-HpLN~}") ("Sacha Chua" "Sandra Jean Chua") ("Sam Steingold" "Sam Shteingold") ("Satyaki Das" "Indexed search by Satyaki Das") ("Sébastien Vauban" "Sebastien Vauban") ("Sergey Litvinov" "Litvinov Sergey") + ("Shun-ichi Goto" "Shun-ichi GOTO") ;; There are other Stefans. ;;; ("Stefan Monnier" "Stefan") ("Steven L. Baur" "SL Baur" "Steven L Baur") @@ -186,12 +196,14 @@ If REALNAME is nil, ignore that author.") ;; FIXME seems it would be less fragile to check for O', Mc, etc. (defconst authors-fixed-case '("Barry O'Reilly" + "Brian McKenna" "Brian van den Broek" "Bryan O'Sullivan" "Christian von Roques" "Christophe de Dinechin" "Craig McDaniel" "Daniel LaLiberte" + "Daniel McClanahan" "David J. MacKenzie" "David McCabe" "David O'Toole" @@ -222,6 +234,7 @@ If REALNAME is nil, ignore that author.") "Shun-ichi Goto" "Thomas DeWeese" "Tijs van Bakel" + "Titus von der Malsburg" "Yu-ji Hosokawa") "List of authors whose names cannot be simply capitalized.") @@ -280,6 +293,7 @@ Changes to files matching one of the regexps in this list are not listed.") "gfdl.1" "texi/Makefile.in" "autodeps.mk" + "lwlib/autodeps.mk" "oldXMenu/autodeps.mk" "src/autodeps.mk" "Imakefile" "icons/sink.ico" "aixcc.lex" @@ -371,9 +385,11 @@ Changes to files matching one of the regexps in this list are not listed.") "lib/qset-acl.c" "lib/qcopy-acl.c" "lib/file-has-acl.c" ;; files from old MS Windows build procedures "makefile.w32-in" + "admin/unidata/makefile.w32-in" "unidata/makefile.w32-in" "lib/makefile.w32-in" "leim/makefile.w32-in" + "lisp/makefile.w32-in" "src/makefile.w32-in" "nt/emacs-src.tags" "doc/emacs/makefile.w32-in" @@ -606,6 +622,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]") @@ -637,6 +655,7 @@ Changes to files in this list are not listed.") "ebuild.bat" "install.bat" "fast-install.bat" "debug.bat.in" "emacs.bat.in" "addsection.c" "inc/sys/dir.h" "inc/gettext.h" + "time.h" ".gdbinit-union" "alloca.s" "make-delta" @@ -692,8 +711,9 @@ Changes to files in this list are not listed.") "net/zone-mode.el" "xesam.el" "term/mac-win.el" "sup-mouse.el" "term/apollo.el" - "term/vt102.el" "term/vt125.el" "term/vt201.el" "term/vt220.el" "term/vt300.el" - "term/vt320.el" "term/vt400.el" "term/vt420.el" + "term/vt102.el" "term/vt125.el" "term/vt201.el" "term/vt220.el" + "term/vt240.el" "term/vt300.el" "term/vt320.el" "term/vt400.el" + "term/vt420.el" "url-https.el" "org-mac-message.el" "org-mew.el" "org-w3m.el" "org-vm.el" "org-wl.el" "org-mks.el" "org-remember.el" "org-xoxo.el" "org-docbook.el" @@ -734,10 +754,20 @@ Changes to files in this list are not listed.") "getopt_.h" "getopt_int.h" "gettext.h" "leditcfns.c" "loadst.c" "make-path.c" "qsort.c" "sorted-doc.c" "tcp.c" "timer.c" "wakeup.c" "yow.c" "grep-changelog" "grep-changelog.1" + ;; semantic files now removed from the repository + "semantic/bovine/c-by.el" "semantic/bovine/make-by.el" + "semantic/bovine/scm-by.el" "semantic/wisent/javat-wy.el" + "semantic/wisent/js-wy.el" "semantic/wisent/python-wy.el" + "srecode/srt-wy.el" ;; etc/ "emacsclient.c" "etags.c" "hexl.c" "make-docfile.c" "movemail.c" "test-distrib.c" "testfile" "tpu-edt.doc" ; see below + "obsolete/vc-mcvs.el" + "nnwarchive.el" + "nnultimate.el" + "nnslashdot.el" + "webmail.el" ) "File names which are valid, but no longer exist (or cannot be found) in the repository.") @@ -826,14 +856,19 @@ in the repository.") ("emacs-lisp/assoc.el" . "assoc.el") ("emacs-lisp/cust-print.el" . "cust-print.el") ("emacs-lisp/gulp.el" . "gulp.el") + ("abbrevlist.el" . "abbrevlist.el") ("emulation/crisp.el" . "crisp.el") ("emulation/tpu-edt.el" . "tpu-edt.el") ("emulation/tpu-extras.el" . "tpu-extras.el") + ("emulation/tpu-mapper.el" . "tpu-mapper.el") ("emulation/vi.el" . "vi.el") ("emulation/vip.el" . "vip.el") ("emulation/ws-mode.el" . "ws-mode.el") ("mail/mailpost.el" . "mailpost.el") + ("net/eudcb-ph.el" . "eudcb-ph.el") ("play/bruce.el" . "bruce.el") + ("play/landmark.el" . "landmark.el") + ("lisp/play/landmark.el" . "landmark.el") ("play/yow.el" . "yow.el") ("patcomp.el" . "patcomp.el") ("emulation/ws-mode.el" . "ws-mode.el") @@ -872,6 +907,14 @@ in the repository.") ("major.texi" . "modes.texi") ("msdog-xtra.texi" . "msdos-xtra.texi") ("msdog.texi" . "msdos.texi") + ;; Moved from lisp/gnus/ to lisp/calendar/ + ("time-date.el" . "calendar/time-date.el") + ;; Moved from lisp/gnus/ to lisp/mail/ + ("binhex.el" . "mail/binhex.el") + ("uudecode.el" . "mail/uudecode.el") + ;; Moved from lisp/gnus/ to lisp/net/ + ("imap.el" . "net/imap.el") + ("rfc2104.el" . "net/rfc2104.el") ;; And from emacs/ to misc/ and back again. ("ns-emacs.texi" . "macos.texi") ("overrides.texi" . "gnus-overrides.texi") @@ -886,8 +929,9 @@ in the repository.") ("ED.WORSHIP" . "JOKES") ("GNU.JOKES" . "JOKES") ("CHARACTERS" . "TODO") + ("lisp/character-fold.el" . "lisp/char-fold.el") + ("test/automated/character-fold-tests.el" . "test/automated/char-fold-tests.el") ("images/gnus/mail_send.xpm" . "mail-send.xpm") ; still in images/gnus - ;; Renamed within same directory. ("schema/xhtml-basic-form.rnc" . "xhtml-bform.rnc" ) ("schema/xhtml-basic-table.rnc" . "xhtml-btable.rnc") ("schema/xhtml-list.rnc" . "xhtml-lst.rnc") @@ -912,6 +956,7 @@ in the repository.") ("grammars" . "grammars") ;; Moved from lisp/emacs-lisp/ to admin/. ("emacs-lisp/authors.el" . "authors.el") + ("emacs-lisp/find-gc.el" . "admin/find-gc.el") ;; From etc to lisp/cedet/semantic/. ("grammars/bovine-grammar.el" . "bovine/grammar.el") ("grammars/wisent-grammar.el" . "wisent/grammar.el") @@ -1361,24 +1406,36 @@ and changed by AUTHOR." (cons (list author wrote-list cowrote-list changed-list) authors-author-list))))) -(defun authors (root) +(defun authors (root &optional nologupdate) "Extract author information from change logs and Lisp source files. -ROOT is the root directory under which to find the files. If called -interactively, ROOT is read from the minibuffer. -Result is a buffer *Authors* containing authorship information, and a -buffer *Authors Errors* containing references to unknown files." - (interactive "DEmacs source directory: ") +ROOT is the root directory under which to find the files. +Interactively, read ROOT from the minibuffer. +Accurate author information requires up-to-date change logs, so this +first updates them, unless optional prefix argument NOLOGUPDATE is non-nil. +The result is a buffer *Authors* containing authorship information, +and a buffer *Authors Errors* containing references to unknown files." + (interactive "DEmacs source directory: \nP") (setq root (expand-file-name root)) + (unless (file-exists-p (expand-file-name "src/emacs.c" root)) + (unless (y-or-n-p + (format "Not the root directory of Emacs: %s, continue? " root)) + (user-error "Not the root directory"))) + ;; May contain your personal entries. + (or (not (file-exists-p (expand-file-name "ChangeLog" root))) + (y-or-n-p "Unversioned ChangeLog present, continue?") + (user-error "Unversioned ChangeLog may have irrelevant entries")) + (or nologupdate + ;; There are likely to be things that need fixing, so we update + ;; the versioned ChangeLog.N rather than the unversioned ChangeLog. + (zerop (call-process "make" nil nil nil + "-C" root "change-history-nocommit")) + (error "Problem updating ChangeLog")) (let ((logs (process-lines find-program root "-name" "ChangeLog*")) (table (make-hash-table :test 'equal)) (buffer-name "*Authors*") authors-checked-files-alist authors-invalid-file-names) (authors-add-fixed-entries table) - (unless (file-exists-p (expand-file-name "src/emacs.c" root)) - (unless (y-or-n-p - (format "Not the root directory of Emacs: %s, continue? " root)) - (error "Not the root directory"))) (dolist (log logs) (when (string-match "ChangeLog\\(.[0-9]+\\)?$" log) (message "Scanning %s..." log) diff --git a/admin/gitmerge.el b/admin/gitmerge.el index a08a36937b17..b74c128ae572 100644 --- a/admin/gitmerge.el +++ b/admin/gitmerge.el @@ -48,8 +48,10 @@ (require 'smerge-mode) (defvar gitmerge-skip-regexp - "back[- ]?port\\|merge\\|sync\\|re-?generate\\|bump version\\|from trunk\\|\ -Auto-commit" + ;; We used to include "sync" in there, but in my experience it only + ;; caused false positives. --Stef + "back[- ]?port\\|cherry picked from commit\\|\\(do not\\|no need to\\) merge\\|\ +re-?generate\\|bump version\\|from trunk\\|Auto-commit" "Regexp matching logs of revisions that might be skipped. `gitmerge-missing' will ask you if it should skip any matches.") diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index 030ad4cee687..77486cc6399c 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt @@ -37,38 +37,38 @@ General steps (for each step, check for possible errors): M-: (require 'authors) RET M-x authors RET + (This first updates the current versioned ChangeLog.N) + If there is an "*Authors Errors*" buffer, address the issues. - If there was a ChangeLog typo, run "make change-history" and then - fix the newest ChangeLog history file. If a file was deleted or - renamed, consider adding an appropriate entry to - authors-ignored-files, authors-valid-file-names, or + If there was a ChangeLog typo, fix the relevant entry. + If a file was deleted or renamed, consider adding an appropriate + entry to authors-ignored-files, authors-valid-file-names, or authors-renamed-files-alist. - If necessary, repeat M-x authors after making those changes. + If necessary, repeat 'C-u M-x authors' after making those changes. Save the "*Authors*" buffer as etc/AUTHORS. Check the diff looks reasonable. Maybe add entries to authors-ambiguous-files or authors-aliases, and repeat. Commit any fixes to authors.el. 3. Set the version number (M-x load-file RET admin/admin.el RET, then - M-x set-version RET). For a release, add released ChangeLog - entries (create a ChangeLog symlink a la vc-dwim, then run M-x - add-release-logs RET, then run the shell command 'vc-dwim --commit'). - - For a pretest, start at version .90. After .99, use .990 (so that - it sorts). + M-x set-version RET). For a pretest, start at version .90. After + .99, use .990 (so that it sorts). The final pretest should be a release candidate. Set the version number to that of the actual release. Pick a date about a week - from now when you intend to make the release. Use vc-dwim and - M-x add-release-logs as described above to add commit messages - that will appear in the tarball's automatically-generated ChangeLog - file as entries for that date. + from now when you intend to make the release. Use M-x + add-release-logs to add entries to etc/HISTORY and the ChangeLog + file. It's best not to commit these files until the release is + actually made. Merge the entries from (unversioned) ChangeLog + into the top of the current versioned ChangeLog.N and commit that + along with etc/HISTORY. Then you can tag that commit as the + release. Name the tar file as emacs-XX.Y-rc1.tar. If all goes well in the following week, you can simply rename the file and use it for the actual release. If you need another release candidate, remember - to adjust the ChangeLog entries. + to adjust the ChangeLog and etc/HISTORY entries. If you need to change only a file(s) that cannot possibly affect the build (README, ChangeLog, NEWS, etc.) then rather than doing @@ -86,8 +86,8 @@ General steps (for each step, check for possible errors): 5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. - Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed - by M-x set-version. + Commit ChangeLog.N, etc/AUTHORS, lisp/ldefs-boot.el, and the + files changed by M-x set-version. If someone else made a commit between step 1 and now, you need to repeat from step 4 onwards. (You can commit the files diff --git a/admin/notes/unicode b/admin/notes/unicode index b30bf50ccf0f..d149459a9d46 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, @@ -35,6 +36,10 @@ and char-width-table. The additional scripts should cause automatic updates in charscript.el, but it is a good idea to look at the results and see if any changes in admin/unidata/blocks.awk are required. +The setting of char-width-table around line 1200 of characters.el +should be checked against the latest version of the Unicode file +EastAsianWidth.txt, and any discrepancies fixed. + Any new scripts added by UnicodeData.txt will also need updates to script-representative-chars defined in fontset.el, and also the list of OTF script tags in otf-script-alist, whose source is on this page: @@ -48,6 +53,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 ------------------------------------------------------------- diff --git a/admin/release-process b/admin/release-process index 3f75ff52ca49..6aa004014b8e 100644 --- a/admin/release-process +++ b/admin/release-process @@ -7,7 +7,7 @@ Each release cycle will be split into two periods. ** Phase one: development The first phase of the release schedule is the "heads-down" working -period for new features, on the 'master' branch and several feature +period for new features, on the 'master' branch and any needed feature branches. ** Phase two: fixing and stabilizing the release branch @@ -29,46 +29,59 @@ command to do that, then commit the changes it made and push to 'master'. For major releases, also update the value of 'customize-changed-options-previous-release'. -The 2 main manuals, the User Manual and the Emacs Lisp Manual, need to -be proofread, preferably by at least 2 different persons, and any -uncovered problems fixed. This is a lot of work, so it is advisable -to divide the job between several people (see the checklist near the -end of this file). +Each chapter of the two main manuals, the User Manual and the Emacs +Lisp Manual, should be proofread, preferably by at least two people. +This job is so big that it should be considered a collective +responsibility, not fobbed off on just a few people. After each +chapter is checked, mark off the name(s) of those who checked it in +the checklist near the end of this file. In parallel to this phase, 'master' can receive new features, to be released in the next release cycle. From time to time, the master branches merges bugfix commits from the "emacs-NN" branch. +See admin/gitmerge.el. * RELEASE-CRITICAL BUGS -Emacs uses the "blocking bug(s)" feature of Debbugs for bugs need to -be addressed in the next release. +Emacs uses the "blocking" feature of Debbugs for bugs that need to be +addressed in the next release. -Currently, bug#19759 is the tracking bug for release of 25.1. Say -bug#123 needs to be fixed for Emacs 25.1. Send a message to -control@debbugs.gnu.org that says: +Currently, bug#21966 is the tracking bug for release of 25.2 and +bug#24655 is the tracking bug for release 26.1. Say bug#123 needs +to be fixed for Emacs 26.1. Send a message to control@debbugs.gnu.org +that says: - block 19759 by 123 + block 24655 by 123 + +Change "block" to "unblock" to remove a bug from the list. Closed +bugs are not listed as blockers, so you do not need to explicitly +unblock one that has been closed. You may need to force an update of +the tracking bug with ctrl-f5/shift-reload to see the latest version. -Change "block" to "unblock" to unblock the bug. * TO BE DONE SHORTLY BEFORE RELEASE -** Make sure the Copyright date reflects the current year in the source -files. See 'admin/notes/years' for information about maintaining -copyright years for GNU Emacs. +See 'admin/make-tarball.txt' for the details of making a release or pretest. + +** Make sure the Copyright date reflects the current year in all source files. +(This should be done each January anyway, regardless of releases.) +See admin/update-copyright and admin.el's set-copyright. +For more details, see 'admin/notes/years'. ** Make sure the necessary sources and scripts for any generated files are included in the source tarball. (They don't need to be installed, -so e.g. admin/ is fine.) - -** Regenerate AUTHORS by using admin/authors.el -(The instructions are at the beginning of that file.) +so e.g. admin/ is fine.) This is important for legal compliance. ** Remove temporary +++/--- lines in NEWS. But first make sure there are no unmarked entries, and update the -documentation (or decide no updates are necessary) for those that -aren't. +documentation (or decide no updates are necessary) for those that aren't. + +** Try to reorder NEWS: most important things first, related items together. + +** For a major release, add a "New in Emacs XX" section to faq.texi. + +** cusver-check from admin.el can help find new defcustoms missing +:version tags. ** Manuals Check for node names using problematic characters: @@ -84,8 +97,7 @@ For major releases, rewrite the "Antinews" appendix of the User Manual previous version. The way to do that is read NEWS, pick up the more significant changes and new features in the upcoming release, then describe the "benefits" from losing those features. Be funny, use -humor. The text written for the previous major release can serve as -good example. +humor. The text written for the previous releases can serve as an example. Check cross-references between the manuals (e.g. from emacs to elisp) are correct. You can use something like the following in the info @@ -146,10 +158,6 @@ size that the GNU Press are going to use when they print the manuals. I think this is different to what you get if you just use e.g. 'make emacs.pdf' (e.g., enable "smallbook"). -** Try to reorder NEWS: most important things first, related items together. - -** For a major release, add a "New in Emacs XX" section to faq.texi. - ** Check the keybindings in the refcards are correct, and add any new ones. What paper size are the English versions supposed to be on? On Debian testing, the packages texlive-lang-czechslovak and @@ -171,11 +179,6 @@ pt-br Rodrigo Real ru Alex Ott sk Miroslav Vaško -** cusver-check from admin.el can help find new defcustoms missing -:version tags. - -** Add a line to etc/HISTORY for the release version number and date. - * BUGS ** Check for modes which bind M-s that conflicts with a new global binding M-s diff --git a/build-aux/gitlog-to-emacslog b/build-aux/gitlog-to-emacslog index 5c187f5eae01..345c37f63daf 100755 --- a/build-aux/gitlog-to-emacslog +++ b/build-aux/gitlog-to-emacslog @@ -81,7 +81,7 @@ test -d .git || { --ignore-line='^; ' --format='%B' \ "$gen_origin..$new_origin" >"ChangeLog.tmp" || exit -if test -s "ChangeLog.tmp"; then +if test -e "ChangeLog.tmp"; then # Fix up bug references. # This would be better as eg a --transform option to gitlog-to-changelog, @@ -99,7 +99,7 @@ if test -s "ChangeLog.tmp"; then ` start_year= end_year= - for year in $years; do + for year in ${years:-`date +%Y`}; do : ${start_year:=$year} end_year=$year done @@ -110,13 +110,19 @@ if test -s "ChangeLog.tmp"; then year_range=$start_year-$end_year fi - # Update gen_origin and append a proper copyright notice. - sed -n ' - 1i\ + # Update gen_origin + if test "$gen_origin" != "$new_origin"; then + sed -n ' + 1i\ + + /^This file records repository revisions/p + s/^commit [0-9a-f]* (exclusive)/commit '"$gen_origin"' (exclusive)/p + s/^commit [0-9a-f]* (inclusive)/commit '"$new_origin"' (inclusive)/p + ' >"ChangeLog.tmp" || exit + fi - /^This file records repository revisions/p - s/^commit [0-9a-f]* (exclusive)/commit '"$gen_origin"' (exclusive)/p - s/^commit [0-9a-f]* (inclusive)/commit '"$new_origin"' (inclusive)/p + # Append a proper copyright notice. + sed -n ' /^See ChangeLog.[0-9]* for earlier/,${ s/ChangeLog\.[0-9]*/ChangeLog.'$nmax'/ s/\(Copyright[ (C)]*\)[0-9]*-[0-9]*/\1'"$year_range"'/ diff --git a/config.bat b/config.bat index 04fce0f29881..a5bea7135aea 100644 --- a/config.bat +++ b/config.bat @@ -174,7 +174,7 @@ junk If ErrorLevel 1 Goto xmlDone Echo Configuring with libxml2 ... sed -e "/#undef HAVE_LIBXML2/s/^.*$/#define HAVE_LIBXML2 1/" config.h3 -mv config.h3 config.h2 +sed -e "/#define EMACS_CONFIG_FEATURES/s/^.*$/#define EMACS_CONFIG_FEATURES \"LIBXML2\"/" config.h2 set libxml=1 :xmlDone rm -f junk.c junk junk.exe @@ -194,7 +194,7 @@ if exist dir.h ren dir.h vmsdir.h rem Create "makefile" from "makefile.in". rm -f Makefile makefile.tmp -copy Makefile.in+lisp.mk+deps.mk makefile.tmp +copy Makefile.in+deps.mk makefile.tmp sed -f ../msdos/sed1v2.inp Makefile rm -f makefile.tmp @@ -227,6 +227,10 @@ rem ---------------------------------------------------------------------- Echo Configuring the library source directory... cd lib-src sed -f ../msdos/sed3v2.inp Makefile +mv Makefile makefile.tmp +sed -n -e "/^AC_INIT/s/[^,]*, \([^,]*\).*/@set emver=\1/p" ../configure.ac > emver.bat +call emver.bat +sed -e "s/@version@/%emver%/g" Makefile if "%X11%" == "" goto libsrc2a mv Makefile makefile.tmp sed -f ../msdos/sed3x.inp Makefile @@ -252,16 +256,23 @@ cd .. rem ---------------------------------------------------------------------- Echo Configuring the doc directory, expect one "File not found" message... cd doc +Rem Rename files like djtar on plain DOS filesystem would. +If Exist emacs\emacsver.texi.in update emacs/emacsver.texi.in emacs/emacsver.in +If Exist man\emacs.1.in update man/emacs.1.in man/emacs.in +If Exist ..\etc\refcards\emacsver.tex.in update ../etc/refcards/emacsver.tex.in ../etc/refcards/emacsver.in Rem The two variants for lispintro below is for when the shell Rem supports long file names but DJGPP does not -for %%d in (emacs lispref lispintro lispintr misc) do sed -f ../msdos/sed6.inp < %%d\Makefile.in > %%d\Makefile +for %%d in (emacs lispref lispintro lispintr misc) do sed -e "s/@version@/%emver%/g" -f ../msdos/sed6.inp < %%d\Makefile.in > %%d\Makefile +Rem produce emacs.1 from emacs.in +If Exist man\emacs.1 goto manOk +sed -e "s/@version@/%emver%/g" -e "s/@PACKAGE_BUGREPORT@/bug-gnu-emacs@gnu.org/g" < man\emacs.in > man\emacs.1 +:manOk cd .. rem ---------------------------------------------------------------------- Echo Configuring the lib directory... If Exist build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h build-aux/snippet/cxxdefs.h cd lib Rem Rename files like djtar on plain DOS filesystem would. -If Exist build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h build-aux/snippet/cxxdefs.h If Exist alloca.in.h update alloca.in.h alloca.in-h If Exist byteswap.in.h update byteswap.in.h byteswap.in-h If Exist dirent.in.h update dirent.in.h dirent.in-h @@ -286,6 +297,7 @@ If Exist sys_types.in.h update sys_types.in.h sys_types.in-h If Exist sys_time.in.h update sys_time.in.h sys_time.in-h If Exist time.in.h update time.in.h time.in-h If Exist unistd.in.h update unistd.in.h unistd.in-h +Rem Only repository has the msdos/autogen directory If Exist Makefile.in sed -f ../msdos/sedlibcf.inp < Makefile.in > makefile.tmp If Exist ..\msdos\autogen\Makefile.in sed -f ../msdos/sedlibcf.inp < ..\msdos\autogen\Makefile.in > makefile.tmp sed -f ../msdos/sedlibmk.inp < makefile.tmp > Makefile @@ -311,6 +323,12 @@ If Not Exist admin\unidata goto noadmin Echo Configuring the admin/unidata directory... cd admin\unidata sed -f ../../msdos/sedadmin.inp < Makefile.in > Makefile +Echo Configuring the admin/charsets directory... +cd ..\charsets +sed -f ../../msdos/sedadmin.inp < Makefile.in > Makefile +Echo Configuring the admin/grammars directory... +cd ..\grammars +sed -f ../../msdos/sedadmin.inp < Makefile.in > Makefile cd ..\.. :noadmin rem ---------------------------------------------------------------------- @@ -345,3 +363,4 @@ set nodebug= set djgpp_ver= set sys_malloc= set libxml= +set emver= diff --git a/configure.ac b/configure.ac index 4f169b67dc31..d12b12b61aa5 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.0.93, bug-gnu-emacs@gnu.org) +AC_INIT(GNU Emacs, 25.1.90, 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. @@ -342,8 +342,8 @@ OPTION_DEFAULT_ON([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars]) OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d]) OPTION_DEFAULT_ON([xim],[don't use X11 XIM]) AC_ARG_WITH([ns],[AS_HELP_STRING([--with-ns], -[use Nextstep (OS X Cocoa or GNUstep) windowing system. -On by default on Mac OS X.])],[],[with_ns=maybe]) +[use Nextstep (macOS Cocoa or GNUstep) windowing system. +On by default on macOS.])],[],[with_ns=maybe]) OPTION_DEFAULT_OFF([w32], [use native MS Windows GUI in a Cygwin build]) OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console]) @@ -599,7 +599,7 @@ case "${canonical}" in opsys=openbsd ;; - ## Apple Darwin / Mac OS X + ## Apple Darwin / macOS *-apple-darwin* ) case "${canonical}" in *-apple-darwin[0-9].*) unported=yes ;; @@ -1140,16 +1140,9 @@ AC_PATH_PROG(GZIP_PROG, gzip) test $with_compress_install != yes && test -n "$GZIP_PROG" && \ GZIP_PROG=" # $GZIP_PROG # (disabled by configure --without-compress-install)" +PAXCTL_dumped= +PAXCTL_notdumped= if test $opsys = gnu-linux; then - AC_PATH_PROG(PAXCTL, paxctl,, - [$PATH$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/sbin]) - if test "X$PAXCTL" != X; then - AC_MSG_CHECKING([whether binaries have a PT_PAX_FLAGS header]) - AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], - [if $PAXCTL -v conftest$EXEEXT >/dev/null 2>&1; then AC_MSG_RESULT(yes) - else AC_MSG_RESULT(no); PAXCTL=""; fi]) - fi - if test "${SETFATTR+set}" != set; then AC_CACHE_CHECK([for setfattr], [emacs_cv_prog_setfattr], @@ -1160,6 +1153,7 @@ if test $opsys = gnu-linux; then emacs_cv_prog_setfattr=no fi]) if test "$emacs_cv_prog_setfattr" = yes; then + PAXCTL_notdumped='$(SETFATTR) -n user.pax.flags -v er' SETFATTR=setfattr else SETFATTR= @@ -1168,6 +1162,32 @@ if test $opsys = gnu-linux; then AC_SUBST([SETFATTR]) fi fi +case $opsys,$PAXCTL_notdumped in + gnu-linux, | netbsd,) + AC_PATH_PROG([PAXCTL], [paxctl], [], + [$PATH$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/sbin]) + if test -n "$PAXCTL"; then + if test "$opsys" = netbsd; then + PAXCTL_dumped='$(PAXCTL) +a' + PAXCTL_notdumped=$PAXCTL_dumped + else + AC_MSG_CHECKING([whether binaries have a PT_PAX_FLAGS header]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], + [if $PAXCTL -v conftest$EXEEXT >/dev/null 2>&1; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PAXCTL= + fi]) + if test -n "$PAXCTL"; then + PAXCTL_dumped='$(PAXCTL) -zex' + PAXCTL_notdumped='$(PAXCTL) -r' + fi + fi + fi;; +esac +AC_SUBST([PAXCTL_dumped]) +AC_SUBST([PAXCTL_notdumped]) ## Need makeinfo >= 4.7 (?) to build the manuals. if test "$MAKEINFO" != "no"; then @@ -1844,14 +1864,14 @@ Either fix this, or re-configure with the option '--without-ns'.])]) macfont_file="" if test "${NS_IMPL_COCOA}" = "yes"; then - AC_MSG_CHECKING([for OSX 10.6 or newer]) + AC_MSG_CHECKING([for Mac OS X 10.6 or newer]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], [ #ifdef MAC_OS_X_VERSION_MAX_ALLOWED #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 ; /* OK */ #else - error "OSX 10.6 or newer required"; + error "Mac OS X 10.6 or newer required"; #endif #endif ])], @@ -1860,7 +1880,7 @@ Either fix this, or re-configure with the option '--without-ns'.])]) AC_MSG_RESULT([$ns_osx_have_106]) if test $ns_osx_have_106 = no; then - AC_MSG_ERROR([OSX 10.6 or newer is required]); + AC_MSG_ERROR([Mac OS X 10.6 or newer is required]); fi fi fi @@ -2138,7 +2158,10 @@ elif test "$hybrid_malloc" = yes; then GMALLOC_OBJ=gmalloc.o VMLIMIT_OBJ= else - test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o + if test "$doug_lea_malloc" != "yes"; then + GMALLOC_OBJ=gmalloc.o + AC_CHECK_DECLS([valloc]) + fi VMLIMIT_OBJ=vm-limit.o AC_CHECK_HEADERS([sys/vlimit.h]) @@ -2166,18 +2189,10 @@ if test "$doug_lea_malloc" = "yes" ; then AC_DEFINE(DOUG_LEA_MALLOC, 1, [Define to 1 if the system memory allocator is Doug Lea style, with malloc hooks and malloc_set_state.]) - - ## Use mmap directly for allocating larger buffers. - ## FIXME this comes from src/s/{gnu,gnu-linux}.h: - ## #ifdef DOUG_LEA_MALLOC; #undef REL_ALLOC; #endif - ## Does the AC_FUNC_MMAP test below make this check unnecessary? - case "$opsys" in - mingw32|gnu*) REL_ALLOC=no ;; - esac fi if test x"${REL_ALLOC}" = x; then - REL_ALLOC=${GNU_MALLOC} + REL_ALLOC=no fi use_mmap_for_buffers=no @@ -3547,9 +3562,9 @@ AC_CHECK_HEADERS_ONCE(malloc/malloc.h) GNUSTEP_CFLAGS= ### Use NeXTstep API to implement GUI. if test "${HAVE_NS}" = "yes"; then - AC_DEFINE(HAVE_NS, 1, [Define to 1 if you are using the NeXTstep API, either GNUstep or Cocoa on Mac OS X.]) + AC_DEFINE(HAVE_NS, 1, [Define to 1 if you are using the NeXTstep API, either GNUstep or Cocoa on macOS.]) if test "${NS_IMPL_COCOA}" = "yes"; then - AC_DEFINE(NS_IMPL_COCOA, 1, [Define to 1 if you are using NS windowing under MacOS X.]) + AC_DEFINE(NS_IMPL_COCOA, 1, [Define to 1 if you are using NS windowing under macOS.]) fi if test "${NS_IMPL_GNUSTEP}" = "yes"; then AC_DEFINE(NS_IMPL_GNUSTEP, 1, [Define to 1 if you are using NS windowing under GNUstep.]) @@ -4710,9 +4725,9 @@ case $opsys in ;; darwin) - dnl Not __APPLE__, as this may not be defined on non-OSX Darwin. + dnl Not __APPLE__, as this may not be defined on non-macOS Darwin. dnl Not DARWIN, because Panther and lower CoreFoundation.h use DARWIN to - dnl distinguish OS X from pure Darwin. + dnl distinguish macOS from pure Darwin. AC_DEFINE(DARWIN_OS, [], [Define if the system is Darwin.]) ;; @@ -5139,25 +5154,29 @@ case "$opsys" in *) LD_SWITCH_SYSTEM_TEMACS= ;; esac -# -nopie fixes a temacs segfault on Gentoo, OpenBSD, and other systems -# with "hardened" GCC configurations for some reason (Bug#18784). -# We don't know why -nopie works, but not segfaulting is better than -# segfaulting. Use ac_c_werror_flag=yes when trying -nopie, otherwise -# clang keeps warning that it does not understand -nopie, and pre-4.6 -# GCC has a similar problem (Bug#20338). -AC_CACHE_CHECK([whether $CC accepts -nopie], - [emacs_cv_prog_cc_nopie], +# -no-pie or -nopie fixes a temacs segfault on Gentoo, OpenBSD, +# Ubuntu, and other systems with "hardened" GCC configurations for +# some reason (Bug#18784). We don't know why this works, but not +# segfaulting is better than segfaulting. Use ac_c_werror_flag=yes +# when trying the option, otherwise clang keeps warning that it does +# not understand it, and pre-4.6 GCC has a similar problem +# (Bug#20338). Prefer -no-pie to -nopie, as -no-pie is the +# spelling used by GCC 6.1.0 and later (Bug#24682). +AC_CACHE_CHECK( + [for $CC option to disable position independent executables], + [emacs_cv_prog_cc_no_pie], [emacs_save_c_werror_flag=$ac_c_werror_flag emacs_save_LDFLAGS=$LDFLAGS ac_c_werror_flag=yes - LDFLAGS="$LDFLAGS -nopie" - AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], - [emacs_cv_prog_cc_nopie=yes], - [emacs_cv_prog_cc_nopie=no]) + for emacs_cv_prog_cc_no_pie in -no-pie -nopie no; do + test $emacs_cv_prog_cc_no_pie = no && break + LDFLAGS="$emacs_save_LDFLAGS $emacs_cv_prog_cc_no_pie" + AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [break]) + done ac_c_werror_flag=$emacs_save_c_werror_flag LDFLAGS=$emacs_save_LDFLAGS]) -if test "$emacs_cv_prog_cc_nopie" = yes; then - LD_SWITCH_SYSTEM_TEMACS="$LD_SWITCH_SYSTEM_TEMACS -nopie" +if test "$emacs_cv_prog_cc_no_pie" != no; then + LD_SWITCH_SYSTEM_TEMACS="$LD_SWITCH_SYSTEM_TEMACS $emacs_cv_prog_cc_no_pie" fi if test x$ac_enable_profiling != x ; then diff --git a/doc/emacs/abbrevs.texi b/doc/emacs/abbrevs.texi index a1db34cf0eeb..227fe6f7ee20 100644 --- a/doc/emacs/abbrevs.texi +++ b/doc/emacs/abbrevs.texi @@ -341,7 +341,7 @@ abbrev expansion happens only when you request it explicitly. @table @kbd @item M-/ Expand the word in the buffer before point as a @dfn{dynamic abbrev}, -by searching in the buffer for words starting with that abbreviation +by searching for words starting with that abbreviation (@code{dabbrev-expand}). @item C-M-/ @@ -361,14 +361,19 @@ The variable @code{dabbrev-limit}, if non-@code{nil}, specifies how far away in the buffer to search for an expansion. @vindex dabbrev-check-all-buffers +@vindex dabbrev-check-other-buffers After scanning the current buffer, @kbd{M-/} normally searches other -buffers, unless you have set @code{dabbrev-check-all-buffers} to -@code{nil}. +buffers. The variables @code{dabbrev-check-all-buffers} and +@code{dabbrev-check-other-buffers} can be used to determine which +other buffers, if any, are searched. +@vindex dabbrev-ignored-buffer-names @vindex dabbrev-ignored-buffer-regexps - For finer control over which buffers to scan, customize the variable -@code{dabbrev-ignored-buffer-regexps}. Its value is a list of regular -expressions. If a buffer's name matches any of these regular + For finer control over which buffers to scan, customize the +variables @code{dabbrev-ignored-buffer-names} and +@code{dabbrev-ignored-buffer-regexps}. The value of the former is a +list of buffer names to skip. The value of the latter is a list of +regular expressions; if a buffer's name matches any of these regular expressions, dynamic abbrev expansion skips that buffer. A negative argument to @kbd{M-/}, as in @kbd{C-u - M-/}, says to diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi index 68581d03a85d..b6939be49058 100644 --- a/doc/emacs/basic.texi +++ b/doc/emacs/basic.texi @@ -337,10 +337,11 @@ move to the column number specified by the argument's numeric value. @kindex C-x C-n @findex set-goal-column Use the current column of point as the @dfn{semipermanent goal column} -for @kbd{C-n} and @kbd{C-p} (@code{set-goal-column}). When a -semipermanent goal column is in effect, those commands always try to -move to this column, or as close as possible to it, after moving -vertically. The goal column remains in effect until canceled. +for @kbd{C-n} and @kbd{C-p} (@code{set-goal-column}) in the current +buffer. When a semipermanent goal column is in effect, those commands +always try to move to this column, or as close as possible to it, +after moving vertically. The goal column remains in effect until +canceled. @item C-u C-x C-n Cancel the goal column. Henceforth, @kbd{C-n} and @kbd{C-p} try to diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi index 1efd1d98d7bd..2eb837f15102 100644 --- a/doc/emacs/buffers.texi +++ b/doc/emacs/buffers.texi @@ -699,10 +699,10 @@ C-b}. To customize this buffer list, use the @code{bs} Custom group @cindex mode, MSB @cindex MSB mode @findex mouse-buffer-menu -@kindex C-Down-Mouse-1 +@kindex C-Down-mouse-1 MSB global minor mode (``MSB'' stands for ``mouse select buffer'') provides a different and customizable mouse buffer menu which you may prefer. It replaces the bindings of @code{mouse-buffer-menu}, -normally on @kbd{C-Down-Mouse-1} and @kbd{C-@key{F10}}, and the menu +normally on @kbd{C-Down-mouse-1} and @kbd{C-@key{F10}}, and the menu bar buffer menu. You can customize the menu in the @code{msb} Custom group. diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi index 3fa89d9062db..df0764ee6b77 100644 --- a/doc/emacs/building.texi +++ b/doc/emacs/building.texi @@ -921,23 +921,23 @@ still in the right places. @cindex fringes, for debugging @table @asis -@item @kbd{Mouse-1} (in fringe) +@item @kbd{mouse-1} (in fringe) Set or clear a breakpoint on that line. -@item @kbd{C-Mouse-1} (in fringe) +@item @kbd{C-mouse-1} (in fringe) Enable or disable a breakpoint on that line. -@item @kbd{Mouse-3} (in fringe) +@item @kbd{mouse-3} (in fringe) Continue execution to that line. -@item @kbd{C-Mouse-3} (in fringe) +@item @kbd{C-mouse-3} (in fringe) Jump to that line. @end table - On a graphical display, you can click @kbd{Mouse-1} in the fringe of + On a graphical display, you can click @kbd{mouse-1} in the fringe of a source buffer, to set a breakpoint on that line (@pxref{Fringes}). A red dot appears in the fringe, where you clicked. If a breakpoint -already exists there, the click removes it. A @kbd{C-Mouse-1} click +already exists there, the click removes it. A @kbd{C-mouse-1} click enables or disables an existing breakpoint; a breakpoint that is disabled, but not unset, is indicated by a gray dot. @@ -949,10 +949,10 @@ of the window. Disabled breakpoints are indicated with @samp{b}. A solid arrow in the left fringe of a source buffer indicates the line of the innermost frame where the debugged program has stopped. A hollow arrow indicates the current execution line of a higher-level -frame. If you drag the arrow in the fringe with @kbd{Mouse-1}, that +frame. If you drag the arrow in the fringe with @kbd{mouse-1}, that causes execution to advance to the line where you release the button. -Alternatively, you can click @kbd{Mouse-3} in the fringe to advance to -that line. You can click @kbd{C-Mouse-3} in the fringe to jump to +Alternatively, you can click @kbd{mouse-3} in the fringe to advance to +that line. You can click @kbd{C-mouse-3} in the fringe to jump to that line without executing the intermediate lines. This command allows you to go backwards, which can be useful for running through code that has already executed, in order to examine its execution in @@ -986,15 +986,15 @@ Delete the current breakpoint (@code{gdb-delete-breakpoint}). Visit the source line for the current breakpoint (@code{gdb-goto-breakpoint}). -@item Mouse-2 -@kindex Mouse-2 @r{(GDB Breakpoints buffer)} +@item mouse-2 +@kindex mouse-2 @r{(GDB Breakpoints buffer)} Visit the source line for the breakpoint you click on. @end table @vindex gdb-show-threads-by-default When @code{gdb-many-windows} is non-@code{nil}, the GDB Breakpoints buffer shares its window with the GDB Threads buffer. To switch from -one to the other click with @kbd{Mouse-1} on the relevant button in +one to the other click with @kbd{mouse-1} on the relevant button in the header line. If @code{gdb-show-threads-by-default} is non-@code{nil}, the GDB Threads buffer is the one shown by default. @@ -1006,7 +1006,7 @@ non-@code{nil}, the GDB Threads buffer is the one shown by default. debugged program. @xref{Threads, Threads, Debugging programs with multiple threads, gdb, The GNU debugger}. To select a thread, move point there and press @key{RET} (@code{gdb-select-thread}), or click on -it with @kbd{Mouse-2}. This also displays the associated source +it with @kbd{mouse-2}. This also displays the associated source buffer, and updates the contents of the other GDB buffers. You can customize variables under @code{gdb-buffers} group to select @@ -1087,7 +1087,7 @@ debugger}. arrow in the fringe. On text terminals, or when fringes are disabled, the selected stack frame is displayed in reverse contrast. To select a stack frame, move point in its line and type @key{RET} -(@code{gdb-frames-select}), or click @kbd{Mouse-2} on it. Doing so +(@code{gdb-frames-select}), or click @kbd{mouse-2} on it. Doing so also updates the Locals buffer @ifnottex (@pxref{Other GDB Buffers}). @@ -1104,19 +1104,19 @@ also updates the Locals buffer This buffer displays the values of local variables of the current frame for simple data types (@pxref{Frame Info, Frame Info, Information on a frame, gdb, The GNU debugger}). Press @key{RET} or -click @kbd{Mouse-2} on the value if you want to edit it. +click @kbd{mouse-2} on the value if you want to edit it. Arrays and structures display their type only. With GDB 6.4 or later, you can examine the value of the local variable at point by typing -@key{RET}, or with a @kbd{Mouse-2} click. With earlier versions of -GDB, use @key{RET} or @kbd{Mouse-2} on the type description +@key{RET}, or with a @kbd{mouse-2} click. With earlier versions of +GDB, use @key{RET} or @kbd{mouse-2} on the type description (@samp{[struct/union]} or @samp{[array]}). @xref{Watch Expressions}. @item Registers Buffer @findex toggle-gdb-all-registers This buffer displays the values held by the registers (@pxref{Registers,,, gdb, The GNU debugger}). Press @key{RET} or -click @kbd{Mouse-2} on a register if you want to edit its value. With +click @kbd{mouse-2} on a register if you want to edit its value. With GDB 6.4 or later, recently changed register values display with @code{font-lock-warning-face}. @@ -1129,17 +1129,17 @@ the fringe or margin. @item Memory Buffer The memory buffer lets you examine sections of program memory (@pxref{Memory, Memory, Examining memory, gdb, The GNU debugger}). -Click @kbd{Mouse-1} on the appropriate part of the header line to +Click @kbd{mouse-1} on the appropriate part of the header line to change the starting address or number of data items that the buffer displays. Alternatively, use @kbd{S} or @kbd{N} respectively. Click -@kbd{Mouse-3} on the header line to select the display format or unit +@kbd{mouse-3} on the header line to select the display format or unit size for these data items. @end table When @code{gdb-many-windows} is non-@code{nil}, the locals buffer shares its window with the registers buffer, just like breakpoints and threads buffers. To switch from one to the other, click with -@kbd{Mouse-1} on the relevant button in the header line. +@kbd{mouse-1} on the relevant button in the header line. @node Watch Expressions @subsubsection Watch Expressions @@ -1163,7 +1163,7 @@ name and type otherwise. Root expressions also display the frame address as a tooltip to help identify the frame in which they were defined. - To expand or contract a complex data type, click @kbd{Mouse-2} or + To expand or contract a complex data type, click @kbd{mouse-2} or press @key{SPC} on the tag to the left of the expression. Emacs asks for confirmation before expanding the expression if its number of immediate children exceeds the value of the variable @@ -1178,7 +1178,7 @@ expression in the speedbar and type @kbd{D} (@code{gdb-var-delete}). @findex gdb-edit-value To edit a variable with a simple data type, or a simple element of a complex data type, move point there in the speedbar and type @key{RET} -(@code{gdb-edit-value}). Or you can click @kbd{Mouse-2} on a value to +(@code{gdb-edit-value}). Or you can click @kbd{mouse-2} on a value to edit it. Either way, this reads the new value using the minibuffer. @vindex gdb-show-changed-values diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi index 0fc18fcbbcfb..60d323be840d 100644 --- a/doc/emacs/calendar.texi +++ b/doc/emacs/calendar.texi @@ -19,8 +19,8 @@ prompts you for the month and year to be the center of the three-month calendar. The calendar uses its own buffer, whose major mode is Calendar mode. - @kbd{Mouse-3} in the calendar brings up a menu of operations on a -particular date; @kbd{Mouse-2} brings up a menu of commonly used + @kbd{mouse-3} in the calendar brings up a menu of operations on a +particular date; @kbd{mouse-2} brings up a menu of commonly used calendar features that are independent of any particular date. To exit the calendar, type @kbd{q}. @@ -460,7 +460,7 @@ to. and can display them. You can add your own holidays to the default list. @table @kbd -@item Mouse-3 Holidays +@item mouse-3 Holidays @itemx h Display holidays for the selected date (@code{calendar-cursor-holidays}). @@ -483,7 +483,7 @@ List holidays in another window for a specified range of years. @vindex calendar-view-holidays-initially-flag To see if any holidays fall on a given date, position point on that date in the calendar window and use the @kbd{h} command. Alternatively, -click on that date with @kbd{Mouse-3} and then choose @kbd{Holidays} +click on that date with @kbd{mouse-3} and then choose @kbd{Holidays} from the menu that appears. Either way, this displays the holidays for that date, in the echo area if they fit there, otherwise in a separate window. @@ -548,7 +548,7 @@ practice}, not historical fact. For example Veteran's Day began in times of sunrise and sunset for any date. @table @kbd -@item Mouse-3 Sunrise/sunset +@item mouse-3 Sunrise/sunset @itemx S Display times of sunrise and sunset for the selected date (@code{calendar-sunrise-sunset}). @@ -565,7 +565,7 @@ Display times of sunrise and sunset for the selected month. @findex sunrise-sunset Within the calendar, to display the @emph{local times} of sunrise and sunset in the echo area, move point to the date you want, and type -@kbd{S}. Alternatively, click @kbd{Mouse-3} on the date, then choose +@kbd{S}. Alternatively, click @kbd{mouse-3} on the date, then choose @samp{Sunrise/sunset} from the menu that appears. The command @kbd{M-x sunrise-sunset} is available outside the calendar to display this information for today's date or a specified date. To specify a date @@ -777,7 +777,7 @@ in various other calendar systems: @table @kbd @kindex p @r{(Calendar mode)} @findex calendar-print-other-dates -@item Mouse-3 Other calendars +@item mouse-3 Other calendars @itemx p o Display the selected date in various other calendars. (@code{calendar-print-other-dates}). @@ -831,7 +831,7 @@ Display Mayan date for selected day (@code{calendar-mayan-print-date}). appropriate command starting with @kbd{p} from the table above. The prefix @kbd{p} is a mnemonic for ``print'', since Emacs ``prints'' the equivalent date in the echo area. @kbd{p o} displays the -date in all forms known to Emacs. You can also use @kbd{Mouse-3} and +date in all forms known to Emacs. You can also use @kbd{mouse-3} and then choose @kbd{Other calendars} from the menu that appears. This displays the equivalent forms of the date in all the calendars Emacs understands, in the form of a menu. (Choosing an alternative from @@ -1020,7 +1020,7 @@ it. You can also view today's events outside of Calendar mode. In the following, key bindings refer to the Calendar buffer. @table @kbd -@item Mouse-3 Diary +@item mouse-3 Diary @itemx d Display all diary entries for the selected date (@code{diary-view-entries}). @@ -1058,7 +1058,7 @@ entries for that many successive days. Thus, @kbd{2 d} displays all the entries for the selected date and for the following day. Another way to display the diary entries for a date is to click -@kbd{Mouse-3} on the date, and then choose @kbd{Diary entries} from +@kbd{mouse-3} on the date, and then choose @kbd{Diary entries} from the menu that appears. If the variable @code{calendar-view-diary-initially-flag} is non-@code{nil}, creating the calendar lists the diary entries for the current date (provided the diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi index f0f686f855c1..8db2ea12c898 100644 --- a/doc/emacs/cmdargs.texi +++ b/doc/emacs/cmdargs.texi @@ -327,18 +327,15 @@ setting @code{inhibit-x-resources} to @code{t} (@pxref{Resources}). @item -daemon @opindex -daemon -@itemx --daemon +@itemx --daemon[=@var{name}] @opindex --daemon Start Emacs as a daemon---after Emacs starts up, it starts the Emacs server and disconnects from the terminal without opening any frames. +(Optionally, you can specify an explicit @var{name} for the server.) You can then use the @command{emacsclient} command to connect to Emacs for editing. @xref{Emacs Server}, for information about using Emacs as a daemon. -@item -daemon=@var{SERVER-NAME} -Start emacs in background as a daemon, and use @var{SERVER-NAME} as -the server name. - @item --no-desktop @opindex --no-desktop Do not reload any saved desktop. @xref{Saving Emacs Sessions}. @@ -550,11 +547,11 @@ variables is not set, the category defaults to the value of the @env{LANG} is not set. But if @env{LC_ALL} is specified, it overrides the settings of all the other locale environment variables. -On MS-Windows and OS X, if @env{LANG} is not already set in the +On MS-Windows and macOS, if @env{LANG} is not already set in the environment, Emacs sets it based on the system-wide default. You can set this in the ``Regional Settings'' Control Panel on some versions of MS-Windows, and in the ``Language and Region'' System Preference on -OS X. +macOS. The value of the @env{LC_CTYPE} category is matched against entries in @code{locale-language-names}, diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index c1093353757c..771633623f56 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -1396,7 +1396,7 @@ init file (@pxref{Init Rebinding}). * Minibuffer Maps:: The minibuffer uses its own local keymaps. * Rebinding:: How to redefine one key's meaning conveniently. * Init Rebinding:: Rebinding keys with your initialization file. -* Modifier Keys:: Using modifier keys in key bindings. +* Modifier Keys:: Using modifier keys. * Function Keys:: Rebinding terminal function keys. * Named ASCII Chars:: Distinguishing @key{TAB} from @kbd{C-i}, and so on. * Mouse Buttons:: Rebinding mouse buttons in Emacs. diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi index ea48a26500c3..1b10ebc87583 100644 --- a/doc/emacs/dired.texi +++ b/doc/emacs/dired.texi @@ -353,8 +353,8 @@ file. @xref{Windows}. Visit the file described on the current line, and display the buffer in another window, but do not select that window (@code{dired-display-file}). -@item Mouse-1 -@itemx Mouse-2 +@item mouse-1 +@itemx mouse-2 @findex dired-mouse-find-file-other-window Visit the file whose name you clicked on (@code{dired-mouse-find-file-other-window}). This uses another window @@ -795,6 +795,14 @@ This command is a variant of @code{xref-find-references} where you can navigate between matches and display them as needed using the commands described in @ref{Xref Commands}. +@vindex grep-find-ignored-files @r{(Dired)} +@vindex grep-find-ignored-directories @r{(Dired)} +If any of the marked files are directories, then this command searches +all of the files in those directories, and any of their +subdirectories, recursively, except files whose names match +@code{grep-find-ignored-files} and subdirectories whose names match +@code{grep-find-ignored-directories}. + @kindex Q @r{(Dired)} @findex dired-do-find-regexp-and-replace @cindex search and replace in multiple files (in Dired) @@ -809,6 +817,12 @@ and you can use the special commands in that buffer (@pxref{Xref Commands}). In particular, if you exit the query replace loop, you can use @kbd{r} in that buffer to replace more matches. @xref{Identifier Search}. + +Like with @code{dired-do-find-regexp}, if any of the marked files are +directories, this command performs replacements in all of the files in +those directories, and in any of their subdirectories, recursively, +except for files whose names match @code{grep-find-ignored-files} and +subdirectories whose names match @code{grep-find-ignored-directories}. @end table @node Shell Commands in Dired diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index 8039291298c0..391e1a0ed58a 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. @@ -847,9 +850,15 @@ to alter the amount of fontification applied by Font Lock mode, for major modes that support this feature. The value should be a number (with 1 representing a minimal amount of fontification; some modes support levels as high as 3); or @code{t}, meaning ``as high as -possible'' (the default). You can also specify different numbers for -particular major modes; for example, to use level 1 for C/C++ modes, -and the default level otherwise, use the value +possible'' (the default). To be effective for a given file buffer, +the customization of @code{font-lock-maximum-decoration} should be +done @emph{before} the file is visited; if you already have the file +visited in a buffer when you customize this variable, kill the buffer +and visit the file again after the customization. + +You can also specify different numbers for particular major modes; for +example, to use level 1 for C/C++ modes, and the default level +otherwise, use the value @example '((c-mode . 1) (c++-mode . 1))) diff --git a/doc/emacs/entering.texi b/doc/emacs/entering.texi index 3e936e73944f..d6cb3cb8b09e 100644 --- a/doc/emacs/entering.texi +++ b/doc/emacs/entering.texi @@ -100,7 +100,7 @@ display them initially. Kill Emacs (@code{save-buffers-kill-terminal}). @item C-z On a text terminal, suspend Emacs; on a graphical display, -iconify (or ``minimize'') the selected frame (@code{suspend-emacs}). +iconify (or ``minimize'') the selected frame (@code{suspend-frame}). @end table @kindex C-x C-c @@ -133,6 +133,9 @@ run. One convenient function to use as the value of @code{confirm-kill-emacs} is the function @code{yes-or-no-p}. The default value of @code{confirm-kill-emacs} is @code{nil}. + To further customize what happens when Emacs is exiting, see +@ref{Killing Emacs,,, elisp, The GNU Emacs Lisp Reference Manual}. + @findex kill-emacs To kill Emacs without being prompted about saving, type @kbd{M-x kill-emacs}. diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index ab20d4a18f92..fc46ef7879a6 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi @@ -522,6 +522,18 @@ a new backup file. @kbd{C-u C-u C-u C-x C-s} does both things: it makes a backup from the previous contents, and arranges to make another from the newly saved contents if you save again. +@vindex backup-directory-alist + You can customize the variable @code{backup-directory-alist} to +specify that files matching certain patterns should be backed up in +specific directories. A typical use is to add an element @code{("." +. @var{dir})} to make all backups in the directory with absolute name +@var{dir}. Emacs modifies the backup file names to avoid clashes +between files with the same names originating in different +directories. Alternatively, adding, @code{("." . ".~")} would make +backups in the invisible subdirectory @file{.~} of the original file's +directory. Emacs creates the directory, if necessary, to make the +backup. + @menu * Names: Backup Names. How backup files are named. * Deletion: Backup Deletion. Emacs deletes excess numbered backups. @@ -585,19 +597,6 @@ value is @samp{nil} or @samp{existing}, then @code{version-control} becomes @code{nil}; if it is @samp{never} or @samp{simple}, then @code{version-control} becomes @code{never}. -@vindex backup-directory-alist - You can customize the variable @code{backup-directory-alist} to -specify that files matching certain patterns should be backed up in -specific directories. This variable applies to both single and -numbered backups. A typical use is to add an element @code{("." -. @var{dir})} to make all backups in the directory with absolute name -@var{dir}; Emacs modifies the backup file names to avoid clashes -between files with the same names originating in different -directories. Alternatively, adding, @code{("." . ".~")} would make -backups in the invisible subdirectory @file{.~} of the original file's -directory. Emacs creates the directory, if necessary, to make the -backup. - @vindex make-backup-file-name-function If you set the variable @code{make-backup-file-name-function} to a suitable Lisp function, you can override the usual way Emacs @@ -702,7 +701,7 @@ after it visits the file. (This marks the buffer as modified, and you can undo it.) If the value is @code{visit-save}, Emacs adds such newlines both on visiting and on saving. If the value is @code{nil}, Emacs leaves the end of the file unchanged; any other non-@code{nil} -value means to asks you whether to add a newline. The default is +value means Emacs asks you whether to add a newline. The default is @code{nil}. @vindex mode-require-final-newline @@ -1282,7 +1281,7 @@ The value of @code{diff-switches} should be a string; the default is @c Note that the actual name of the info file is diffutils.info, @c but it adds a dir entry for diff too. @c On older systems, only "info diff" works, not "info diffutils". -@xref{Top,, Diff, diff, Comparing and Merging Files}, for more +@xref{Top,, Diff, diffutils, Comparing and Merging Files}, for more information about the @command{diff} program. The output of the @code{diff} command is shown using a major mode diff --git a/doc/emacs/fixit.texi b/doc/emacs/fixit.texi index b398a7dbfb86..584efc68116d 100644 --- a/doc/emacs/fixit.texi +++ b/doc/emacs/fixit.texi @@ -408,7 +408,7 @@ buffers, add @code{flyspell-mode} to @code{text-mode-hook}. @findex flyspell-auto-correct-word @findex flyspell-correct-word-before-point When Flyspell mode highlights a word as misspelled, you can click on -it with @kbd{Mouse-2} (@code{flyspell-correct-word}) to display a menu +it with @kbd{mouse-2} (@code{flyspell-correct-word}) to display a menu of possible corrections and actions. In addition, @kbd{C-.} or @kbd{@key{ESC}-@key{TAB}} (@code{flyspell-auto-correct-word}) will propose various successive corrections for the word at point, and diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi index 383ae7fd6ee4..99926dc47be0 100644 --- a/doc/emacs/frames.texi +++ b/doc/emacs/frames.texi @@ -70,22 +70,22 @@ for doing so on MS-DOS). Menus are supported on all text terminals. @cindex mouse buttons (what they do) @cindex mouse, selecting text using -@kindex Mouse-1 -@kindex Mouse-2 -@kindex Mouse-3 +@kindex mouse-1 +@kindex mouse-2 +@kindex mouse-3 @table @kbd -@item Mouse-1 +@item mouse-1 Move point to where you click (@code{mouse-set-point}). -@item Drag-Mouse-1 +@item Drag-mouse-1 Activate the region around the text selected by dragging, and put the text in the primary selection (@code{mouse-set-region}). -@item Mouse-2 +@item mouse-2 Move point to where you click, and insert the contents of the primary selection there (@code{mouse-yank-primary}). -@item Mouse-3 +@item mouse-3 If the region is active, move the nearer end of the region to the click position; otherwise, set mark at the current value of point and point at the click position. Save the resulting region in the kill @@ -94,7 +94,7 @@ ring; on a second click, kill it (@code{mouse-save-then-kill}). @findex mouse-set-point The most basic mouse command is @code{mouse-set-point}, which is -invoked by clicking with the left mouse button, @kbd{Mouse-1}, in the +invoked by clicking with the left mouse button, @kbd{mouse-1}, in the text area of a window. This moves point to the position where you clicked. If that window was not the selected window, it becomes the selected window. @@ -110,7 +110,7 @@ the window and sets the cursor position. @cindex mouse, dragging @findex mouse-set-region - Holding down @kbd{Mouse-1} and dragging the mouse over a stretch + Holding down @kbd{mouse-1} and dragging the mouse over a stretch of text activates the region around that text (@code{mouse-set-region}), placing the mark where you started holding down the mouse button, and point where you release it (@pxref{Mark}). @@ -132,49 +132,49 @@ on how far away from the window edge the mouse has gone; the variable @findex mouse-yank-primary @findex mouse-yank-at-click - Clicking with the middle mouse button, @kbd{Mouse-2}, moves point to + Clicking with the middle mouse button, @kbd{mouse-2}, moves point to the position where you clicked and inserts the contents of the primary selection (@code{mouse-yank-primary}). @xref{Primary Selection}. This behavior is consistent with other X applications. Alternatively, -you can rebind @kbd{Mouse-2} to @code{mouse-yank-at-click}, which +you can rebind @kbd{mouse-2} to @code{mouse-yank-at-click}, which performs a yank at the position you click. @vindex mouse-yank-at-point If you change the variable @code{mouse-yank-at-point} to a -non-@code{nil} value, @kbd{Mouse-2} does not move point; it inserts +non-@code{nil} value, @kbd{mouse-2} does not move point; it inserts the text at point, regardless of where you clicked or even which of the frame's windows you clicked on. This variable affects both @code{mouse-yank-primary} and @code{mouse-yank-at-click}. @findex mouse-save-then-kill - Clicking with the right mouse button, @kbd{Mouse-3}, runs the + Clicking with the right mouse button, @kbd{mouse-3}, runs the command @code{mouse-save-then-kill}. This performs several actions depending on where you click and the status of the region: @itemize @bullet @item -If no region is active, clicking @kbd{Mouse-3} activates the region, +If no region is active, clicking @kbd{mouse-3} activates the region, placing the mark where point was and point at the clicked position. @item -If a region is active, clicking @kbd{Mouse-3} adjusts the nearer end +If a region is active, clicking @kbd{mouse-3} adjusts the nearer end of the region by moving it to the clicked position. The adjusted region's text is copied to the kill ring; if the text in the original region was already on the kill ring, it replaces it there. @item If you originally specified the region using a double or triple -@kbd{Mouse-1}, so that the region is defined to consist of entire +@kbd{mouse-1}, so that the region is defined to consist of entire words or lines (@pxref{Word and Line Mouse}), then adjusting the -region with @kbd{Mouse-3} also proceeds by entire words or lines. +region with @kbd{mouse-3} also proceeds by entire words or lines. @item -If you use @kbd{Mouse-3} a second time consecutively, at the same +If you use @kbd{mouse-3} a second time consecutively, at the same place, that kills the region already selected. Thus, the simplest way -to kill text with the mouse is to click @kbd{Mouse-1} at one end, then -click @kbd{Mouse-3} twice at the other end. To copy the text into the -kill ring without deleting it from the buffer, press @kbd{Mouse-3} -just once---or just drag across the text with @kbd{Mouse-1}. Then you +to kill text with the mouse is to click @kbd{mouse-1} at one end, then +click @kbd{mouse-3} twice at the other end. To copy the text into the +kill ring without deleting it from the buffer, press @kbd{mouse-3} +just once---or just drag across the text with @kbd{mouse-1}. Then you can copy it elsewhere by yanking it. @end itemize @@ -209,12 +209,12 @@ speed is linked to how fast you move the wheel. @node Word and Line Mouse @section Mouse Commands for Words and Lines - These variants of @kbd{Mouse-1} select entire words or lines at a + These variants of @kbd{mouse-1} select entire words or lines at a time. Emacs activates the region around the selected text, which is also copied to the kill ring. @table @kbd -@item Double-Mouse-1 +@item Double-mouse-1 Select the text around the word which you click on. Double-clicking on a character with symbol syntax (such as @@ -226,20 +226,20 @@ ends. Double-clicking on a character with string-delimiter syntax constant (Emacs uses heuristics to figure out whether that character is the beginning or the end of it). -@item Double-Drag-Mouse-1 +@item Double-Drag-mouse-1 Select the text you drag across, in the form of whole words. -@item Triple-Mouse-1 +@item Triple-mouse-1 Select the line you click on. -@item Triple-Drag-Mouse-1 +@item Triple-Drag-mouse-1 Select the text you drag across, in the form of whole lines. @end table @node Mouse References @section Following References with the Mouse -@kindex Mouse-1 @r{(on buttons)} -@kindex Mouse-2 @r{(on buttons)} +@kindex mouse-1 @r{(on buttons)} +@kindex mouse-2 @r{(on buttons)} @cindex hyperlinks @cindex links @cindex text buttons @@ -256,14 +256,14 @@ cursor changes and the button lights up. If you change the variable highlighting. You can activate a button by moving point to it and typing -@key{RET}, or by clicking either @kbd{Mouse-1} or @kbd{Mouse-2} on the +@key{RET}, or by clicking either @kbd{mouse-1} or @kbd{mouse-2} on the button. For example, in a Dired buffer, each file name is a button; activating it causes Emacs to visit that file (@pxref{Dired}). In a @file{*Compilation*} buffer, each error message is a button, and activating it visits the source code for that error (@pxref{Compilation}). - Although clicking @kbd{Mouse-1} on a button usually activates the + Although clicking @kbd{mouse-1} on a button usually activates the button, if you hold the mouse button down for a period of time before releasing it (specifically, for more than 450 milliseconds), then Emacs moves point where you clicked, without activating the button. @@ -271,20 +271,20 @@ In this way, you can use the mouse to move point over a button without activating it. Dragging the mouse over or onto a button has its usual behavior of setting the region, and does not activate the button. - You can change how @kbd{Mouse-1} applies to buttons by customizing + You can change how @kbd{mouse-1} applies to buttons by customizing the variable @code{mouse-1-click-follows-link}. If the value is a positive integer, that determines how long you need to hold the mouse button down for, in milliseconds, to cancel button activation; the default is 450, as described in the previous paragraph. If the value -is @code{nil}, @kbd{Mouse-1} just sets point where you clicked, and +is @code{nil}, @kbd{mouse-1} just sets point where you clicked, and does not activate buttons. If the value is @code{double}, double clicks activate buttons but single clicks just set point. @vindex mouse-1-click-in-non-selected-windows - Normally, @kbd{Mouse-1} on a button activates the button even if it + Normally, @kbd{mouse-1} on a button activates the button even if it is in a non-selected window. If you change the variable @code{mouse-1-click-in-non-selected-windows} to @code{nil}, -@kbd{Mouse-1} on a button in an unselected window moves point to the +@kbd{mouse-1} on a button in an unselected window moves point to the clicked position and selects that window, without activating the button. @@ -295,21 +295,21 @@ button. bring up menus. @table @kbd -@item C-Mouse-1 -@kindex C-Mouse-1 +@item C-mouse-1 +@kindex C-mouse-1 This menu is for selecting a buffer. The MSB (``mouse select buffer'') global minor mode makes this menu smarter and more customizable. @xref{Buffer Menus}. -@item C-Mouse-2 -@kindex C-Mouse-2 +@item C-mouse-2 +@kindex C-mouse-2 This menu contains entries for examining faces and other text properties, and well as for setting them (the latter is mainly useful when editing enriched text; @pxref{Enriched Text}). -@item C-Mouse-3 -@kindex C-Mouse-3 +@item C-mouse-3 +@kindex C-mouse-3 This menu is mode-specific. For most modes if Menu-bar mode is on, this menu has the same items as all the mode-specific menu-bar menus put together. Some modes may specify a different menu for this @@ -318,15 +318,15 @@ which would be present in the menu bar---not just the mode-specific ones---so that you can access them without having to display the menu bar. -@item S-Mouse-1 +@item S-mouse-1 This menu is for changing the default face within the window's buffer. @xref{Text Scale}. @end table - Some graphical applications use @kbd{Mouse-3} for a mode-specific -menu. If you prefer @kbd{Mouse-3} in Emacs to bring up such a menu + Some graphical applications use @kbd{mouse-3} for a mode-specific +menu. If you prefer @kbd{mouse-3} in Emacs to bring up such a menu instead of running the @code{mouse-save-then-kill} command, rebind -@kbd{Mouse-3} by adding the following line to your init file +@kbd{mouse-3} by adding the following line to your init file (@pxref{Init Rebinding}): @c FIXME: `mouse-popup-menubar-stuff' is obsolete since 23.1. @@ -349,32 +349,32 @@ the special bindings will be displayed (@pxref{Tooltips}). This section's commands do not apply in those areas. @table @kbd -@item Mouse-1 -@kindex Mouse-1 @r{(mode line)} -@kbd{Mouse-1} on a mode line selects the window it belongs to. By -dragging @kbd{Mouse-1} on the mode line, you can move it, thus +@item mouse-1 +@kindex mouse-1 @r{(mode line)} +@kbd{mouse-1} on a mode line selects the window it belongs to. By +dragging @kbd{mouse-1} on the mode line, you can move it, thus changing the height of the windows above and below. Changing heights with the mouse in this way never deletes windows, it just refuses to make any window smaller than the minimum height. -@item Mouse-2 -@kindex Mouse-2 @r{(mode line)} -@kbd{Mouse-2} on a mode line expands that window to fill its frame. +@item mouse-2 +@kindex mouse-2 @r{(mode line)} +@kbd{mouse-2} on a mode line expands that window to fill its frame. -@item Mouse-3 -@kindex Mouse-3 @r{(mode line)} -@kbd{Mouse-3} on a mode line deletes the window it belongs to. If the +@item mouse-3 +@kindex mouse-3 @r{(mode line)} +@kbd{mouse-3} on a mode line deletes the window it belongs to. If the frame has only one window, it does nothing. -@item C-Mouse-2 +@item C-mouse-2 @kindex C-mouse-2 @r{(mode line)} -@kbd{C-Mouse-2} on a mode line splits that window, producing two +@kbd{C-mouse-2} on a mode line splits that window, producing two side-by-side windows with the boundary running through the click position (@pxref{Split Window}). @end table -@kindex Mouse-1 @r{(scroll bar)} - Furthermore, by clicking and dragging @kbd{Mouse-1} on the divider +@kindex mouse-1 @r{(scroll bar)} + Furthermore, by clicking and dragging @kbd{mouse-1} on the divider between two side-by-side mode lines, you can move the vertical boundary to the left or right. @@ -764,7 +764,8 @@ Fontconfig fonts, you can use the @command{fc-list} command to list the available fixed-width fonts, like this: @example -fc-list :spacing=mono fc-list :spacing=charcell +fc-list :spacing=mono +fc-list :spacing=charcell @end example @noindent @@ -772,7 +773,7 @@ For server-side X fonts, you can use the @command{xlsfonts} program to list the available fixed-width fonts, like this: @example -xlsfonts -fn '*x*' | egrep "^[0-9]+x[0-9]+" +xlsfonts -fn '*x*' | grep -E '^[0-9]+x[0-9]+' xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-m*' xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-c*' @end example @@ -912,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 @@ -919,17 +928,17 @@ those are drawn by the toolkit and not directly by Emacs. @cindex Vertical Scroll Bar On graphical displays, there is a @dfn{vertical scroll bar} on the -side of each Emacs window. Clicking @kbd{Mouse-1} on the scroll bar's +side of each Emacs window. Clicking @kbd{mouse-1} on the scroll bar's up and down buttons scrolls the window by one line at a time. Clicking -@kbd{Mouse-1} above or below the scroll bar's inner box scrolls the +@kbd{mouse-1} above or below the scroll bar's inner box scrolls the window by nearly the entire height of the window, like @kbd{M-v} and @kbd{C-v} respectively (@pxref{Moving Point}). Dragging the inner box scrolls continuously. If Emacs is compiled on the X Window System without X toolkit -support, the scroll bar behaves differently. Clicking @kbd{Mouse-1} +support, the scroll bar behaves differently. Clicking @kbd{mouse-1} anywhere on the scroll bar scrolls forward like @kbd{C-v}, while -@kbd{Mouse-3} scrolls backward like @kbd{M-v}. Clicking @kbd{Mouse-2} +@kbd{mouse-3} scrolls backward like @kbd{M-v}. Clicking @kbd{mouse-2} in the scroll bar lets you drag the inner box up and down. @findex scroll-bar-mode @@ -975,8 +984,8 @@ when the entire buffer is visible. @cindex Horizontal Scroll Bar mode On graphical displays with toolkit support, Emacs may also supply a @dfn{horizontal scroll bar} on the bottom of each window. Clicking -@kbd{Mouse-1} on the that scroll bar's left and right buttons scrolls -the window horizontally by one column at a time. Clicking @kbd{Mouse-1} +@kbd{mouse-1} on the that scroll bar's left and right buttons scrolls +the window horizontally by one column at a time. Clicking @kbd{mouse-1} on the left or right of the scroll bar's inner box scrolls the window by four columns. Dragging the inner box scrolls the window continuously. @@ -1010,7 +1019,7 @@ scroll bar height, change the @code{scroll-bar-height} frame parameter On graphical displays, you can use @dfn{window dividers} in order to separate windows visually. Window dividers are bars that can be dragged -with the mouse, thus allowing to easily resize adjacent windows. +with the mouse, thus allowing you to easily resize adjacent windows. @findex window-divider-mode To toggle the display of window dividers, use the command @kbd{M-x @@ -1066,11 +1075,11 @@ argument is positive, off if the argument is not positive. To control the use of menu bars at startup, customize the variable @code{menu-bar-mode}. -@kindex C-Mouse-3 @r{(when menu bar is disabled)} +@kindex C-mouse-3 @r{(when menu bar is disabled)} Expert users often turn off the menu bar, especially on text terminals, where this makes one additional line available for text. If the menu bar is off, you can still pop up a menu of its contents -with @kbd{C-Mouse-3} on a display which supports pop-up menus. +with @kbd{C-mouse-3} on a display which supports pop-up menus. @xref{Menu Mouse Clicks}. @xref{Menu Bar}, for information on how to invoke commands with the diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index 172d058f857d..64da89071725 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi @@ -343,7 +343,7 @@ invoke it with. In our example, it would say that you can invoke For more information about a function definition, variable or symbol property listed in an apropos buffer, you can click on it with -@kbd{Mouse-1} or @kbd{Mouse-2}, or move there and type @key{RET}. +@kbd{mouse-1} or @kbd{mouse-2}, or move there and type @key{RET}. When you specify more than one word in the apropos pattern, a name must contain at least two of the words in order to match. Thus, if @@ -404,15 +404,17 @@ Follow a cross reference at point (@code{help-follow}). Move point forward to the next hyperlink (@code{forward-button}). @item S-@key{TAB} Move point back to the previous hyperlink (@code{backward-button}). -@item Mouse-1 -@itemx Mouse-2 +@item mouse-1 +@itemx mouse-2 Follow a hyperlink that you click on. @item C-c C-c Show all documentation about the symbol at point (@code{help-follow-symbol}). @item C-c C-f +@itemx r Go forward to the next help topic (@code{help-go-forward}). @item C-c C-b +@itemx l Go back to the previous help topic (@code{help-go-back}). @end table @@ -422,15 +424,18 @@ Go back to the previous help topic (@code{help-go-back}). @findex help-go-forward @kindex RET @r{(Help mode)} @kindex C-c C-b @r{(Help mode)} +@kindex l @r{(Help mode)} @kindex C-c C-f @r{(Help mode)} +@kindex r @r{(Help mode)} When a function name, variable name, or face name (@pxref{Faces}) appears in the documentation in the help buffer, it is normally an underlined @dfn{hyperlink}. To view the associated documentation, move point there and type @key{RET} (@code{help-follow}), or click on -the hyperlink with @kbd{Mouse-1} or @kbd{Mouse-2}. Doing so replaces +the hyperlink with @kbd{mouse-1} or @kbd{mouse-2}. Doing so replaces the contents of the help buffer; to retrace your steps, type @kbd{C-c -C-b} (@code{help-go-back}). While retracing your steps, you can go -forward by using @kbd{C-c C-b} (@code{help-go-forward}). +C-b} or @kbd{l} (@code{help-go-back}). While retracing your steps, +you can go forward by using @kbd{C-c C-f} or @kbd{r} +(@code{help-go-forward}). @cindex URL, viewing in help @cindex help, viewing web pages @@ -556,7 +561,8 @@ commands that you are not familiar with, you can use @kbd{C-h k} or Each Emacs major mode typically redefines a few keys and makes other changes in how editing works. @kbd{C-h m} (@code{describe-mode}) displays documentation on the current major mode, which normally -describes the commands and features that are changed in this mode. +describes the commands and features that are changed in this mode, and +also its key bindings. @kindex C-h b @findex describe-bindings diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi index dd3671c95f1c..107adb99ec45 100644 --- a/doc/emacs/killing.texi +++ b/doc/emacs/killing.texi @@ -587,9 +587,9 @@ you can access it using the following Emacs commands: @table @kbd @findex mouse-set-secondary -@kindex M-Drag-Mouse-1 +@kindex M-Drag-mouse-1 @cindex secondary-selection face -@item M-Drag-Mouse-1 +@item M-Drag-mouse-1 Set the secondary selection, with one end at the place where you press down the button, and the other end at the place where you release it (@code{mouse-set-secondary}). The selected text is highlighted, using @@ -600,31 +600,31 @@ window, just like @code{mouse-set-region} (@pxref{Mouse Commands}). This command does not alter the kill ring. @findex mouse-start-secondary -@kindex M-Mouse-1 -@item M-Mouse-1 +@kindex M-mouse-1 +@item M-mouse-1 Set one endpoint for the @dfn{secondary selection} (@code{mouse-start-secondary}). @findex mouse-secondary-save-then-kill -@kindex M-Mouse-3 -@item M-Mouse-3 +@kindex M-mouse-3 +@item M-mouse-3 Set the secondary selection, with one end at the position clicked and -the other at the position specified with @kbd{M-Mouse-1} +the other at the position specified with @kbd{M-mouse-1} (@code{mouse-secondary-save-then-kill}). This also puts the selected -text in the kill ring. A second @kbd{M-Mouse-3} at the same place +text in the kill ring. A second @kbd{M-mouse-3} at the same place kills the secondary selection just made. @findex mouse-yank-secondary -@kindex M-Mouse-2 -@item M-Mouse-2 +@kindex M-mouse-2 +@item M-mouse-2 Insert the secondary selection where you click, placing point at the end of the yanked text (@code{mouse-yank-secondary}). @end table -Double or triple clicking of @kbd{M-Mouse-1} operates on words and -lines, much like @kbd{Mouse-1}. +Double or triple clicking of @kbd{M-mouse-1} operates on words and +lines, much like @kbd{mouse-1}. -If @code{mouse-yank-at-point} is non-@code{nil}, @kbd{M-Mouse-2} yanks +If @code{mouse-yank-at-point} is non-@code{nil}, @kbd{M-mouse-2} yanks at point. Then it does not matter precisely where you click, or even which of the frame's windows you click on. @xref{Mouse Commands}. diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi index 71d2e99950c6..6e6520b60bcf 100644 --- a/doc/emacs/macos.texi +++ b/doc/emacs/macos.texi @@ -3,19 +3,19 @@ @c See file emacs.texi for copying conditions. @node Mac OS / GNUstep @appendix Emacs and Mac OS / GNUstep -@cindex Mac OS X +@cindex macOS @cindex Macintosh @cindex GNUstep This section describes the peculiarities of using Emacs built with the GNUstep libraries on GNU/Linux or other operating systems, or on -Mac OS X with native window system support. On Mac OS X, Emacs can be +macOS with native window system support. On macOS, Emacs can be built either without window system support, with X11, or with the Cocoa interface; this section only applies to the Cocoa build. This -does not support versions of Mac OS X earlier than 10.6. +does not support versions before Mac OS X 10.6. For various historical and technical reasons, Emacs uses the term -@samp{Nextstep} internally, instead of ``Cocoa'' or ``Mac OS X''; for +@samp{Nextstep} internally, instead of ``Cocoa'' or ``macOS''; for instance, most of the commands and variables described in this section begin with @samp{ns-}, which is short for @samp{Nextstep}. NeXTstep was an application interface released by NeXT Inc during the 1980s, of @@ -51,9 +51,9 @@ modifier keys; a value to @code{left} means be the same key as @code{ns-alternate-modifier}; a value of @code{none} tells Emacs to ignore them. - @kbd{S-Mouse-1} adjusts the region to the click position, -just like @kbd{Mouse-3} (@code{mouse-save-then-kill}); it does not pop -up a menu for changing the default face, as @kbd{S-Mouse-1} normally + @kbd{S-mouse-1} adjusts the region to the click position, +just like @kbd{mouse-3} (@code{mouse-save-then-kill}); it does not pop +up a menu for changing the default face, as @kbd{S-mouse-1} normally does (@pxref{Text Scale}). This change makes Emacs behave more like other Mac / GNUstep applications. @@ -84,7 +84,7 @@ set, which often causes the subprocesses it launches to behave differently than they would when launched from the shell. For the PATH and MANPATH variables, a system-wide method -of setting PATH is recommended on Mac OS X, using the +of setting PATH is recommended on macOS, using the @file{/etc/paths} files and the @file{/etc/paths.d} directory. @node Mac / GNUstep Customization @@ -117,8 +117,8 @@ close the altered one. Useful in this context is the listing of all faces obtained by @kbd{M-x list-faces-display}. -@cindex Core Text, on Mac OS X -In Mac OS X, Emacs uses a Core Text based font backend +@cindex Core Text, on macOS +In macOS, Emacs uses a Core Text based font backend by default. If you prefer the older font style, enter the following at the command-line before starting Emacs: diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index 797b53f16e82..acb6b8c8039d 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -223,7 +223,7 @@ basic editing operations under Bazaar. @cindex SRC @cindex src @item -SRC (src) is RCS, reloaded - a specialized version-control system +SRC (src) is RCS, reloaded---a specialized version-control system designed for single-file projects worked on by only one person. It allows multiple files with independent version-control histories to exist in one directory, and is thus particularly well suited for @@ -432,7 +432,7 @@ to the master repository. On a graphical display, you can move the mouse over this mode line indicator to pop up a tool-tip, which displays a more verbose -description of the version control status. Pressing @kbd{Mouse-1} +description of the version control status. Pressing @kbd{mouse-1} over the indicator pops up a menu of VC commands, identical to @samp{Tools / Version Control} on the menu bar. @@ -1335,7 +1335,7 @@ their single-buffer counterparts (@pxref{Search}). @cindex stashes in version control @cindex shelves in version control The above commands are also available via the menu bar, and via a -context menu invoked by @kbd{Mouse-2}. Furthermore, some VC backends +context menu invoked by @kbd{mouse-2}. Furthermore, some VC backends use the menu to provide extra backend-specific commands. For example, Git and Bazaar allow you to manipulate @dfn{stashes} and @dfn{shelves} (where are a way to temporarily put aside uncommitted changes, and @@ -1806,7 +1806,7 @@ object-oriented language, or if there's a function and a variable by the same name), the command shows the candidate definitions in a @file{*xref*} buffer, together with the files in which these definitions are found. Selecting one of these candidates by typing -@kbd{@key{RET}} or clicking @kbd{Mouse-2} will pop a buffer showing +@kbd{@key{RET}} or clicking @kbd{mouse-2} will pop a buffer showing the corresponding definition. When entering the identifier argument to @kbd{M-.}, the usual @@ -1858,7 +1858,7 @@ the special XREF mode: @table @kbd @item @key{RET} -@itemx Mouse-2 +@itemx mouse-2 Display the reference on the current line and bury the @file{*xref*} buffer. @item n @@ -2573,7 +2573,7 @@ current list, it is used @emph{as well as} the others. This tells the tags commands to look at the @file{TAGS} files in your @file{~/emacs} directory and in the @file{/usr/local/lib/emacs/src} directory. The order depends on which file you are in and which tags -table mentions that file, as explained above. +table mentions that file. Do not set both @code{tags-file-name} and @code{tags-table-list}. diff --git a/doc/emacs/mark.texi b/doc/emacs/mark.texi index dd47532e7ed7..fdba0a47461c 100644 --- a/doc/emacs/mark.texi +++ b/doc/emacs/mark.texi @@ -69,9 +69,9 @@ The same. @item C-x C-x Set the mark at point, and activate it; then move point where the mark used to be (@code{exchange-point-and-mark}). -@item Drag-Mouse-1 +@item Drag-mouse-1 Set point and the mark around the text you drag across. -@item Mouse-3 +@item mouse-3 Set the mark at point, then move point to where you click (@code{mouse-save-then-kill}). @item @samp{Shifted cursor motion keys} diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index 6ab716d909ad..7c97e4257139 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi @@ -219,7 +219,7 @@ set the variable @code{enable-recursive-minibuffers} to @code{t}. @findex minibuffer-inactive-mode When not active, the minibuffer is in @code{minibuffer-inactive-mode}, -and clicking @kbd{Mouse-1} there shows the @file{*Messages*} buffer. +and clicking @kbd{mouse-1} there shows the @file{*Messages*} buffer. If you use a dedicated frame for minibuffers, Emacs also recognizes certain keys there, for example @kbd{n} to make a new frame. @@ -337,8 +337,8 @@ used with the completion list: @table @kbd @findex mouse-choose-completion -@item Mouse-1 -@itemx Mouse-2 +@item mouse-1 +@itemx mouse-2 Clicking mouse button 1 or 2 on a completion alternative chooses it (@code{mouse-choose-completion}). @@ -469,8 +469,8 @@ separately. (For example, when completing command names, @samp{em-l-m} completes to @samp{emacs-lisp-mode}.) Furthermore, a @samp{*} in the minibuffer text is treated as a -@dfn{wildcard}---it matches any character at the corresponding -position in the completion alternative. +@dfn{wildcard}---it matches any string of characters at the +corresponding position in the completion alternative. @item emacs22 This completion style is similar to @code{basic}, except that it @@ -788,8 +788,8 @@ File ‘foo.el’ exists; overwrite? (y or n) Because this query does not actually use the minibuffer, the usual minibuffer editing commands cannot be used. However, you can perform some window scrolling operations while the query is active: @kbd{C-l} -recenters the selected window; @kbd{M-v} (or @key{PageDown} or -@key{next}) scrolls forward; @kbd{C-v} (or @key{PageUp}, or +recenters the selected window; @kbd{C-v} (or @key{PageDown} or +@key{next}) scrolls forward; @kbd{M-v} (or @key{PageUp}, or @key{prior}) scrolls backward; @kbd{C-M-v} scrolls forward in the next window; and @kbd{C-M-S-v} scrolls backward in the next window. Typing @kbd{C-g} dismisses the query, and quits the command that issued it @@ -811,5 +811,5 @@ Buffer foo.el modified; kill anyway? (yes or no) To answer, you must type @samp{yes} or @samp{no} into the minibuffer, followed by @key{RET}. The minibuffer behaves as described in the previous sections; you can switch to another window with @kbd{C-x o}, -use the history commands @kbd{M-p} and @kbd{M-f}, etc. Type @kbd{C-g} +use the history commands @kbd{M-p} and @kbd{M-n}, etc. Type @kbd{C-g} to quit the minibuffer and the querying command. diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index b5a21500fcbf..a1f611cfb234 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -1217,7 +1217,7 @@ submit the copy as input with @key{RET}. If you wish, you can edit the copy before resubmitting it. If you use this command on an output line, it copies that line to the end of the buffer. -@item Mouse-2 +@item mouse-2 If @code{comint-use-prompt-regexp} is @code{nil} (the default), copy the old input command that you click on, inserting the copy at the end of the buffer (@code{comint-insert-input}). If @@ -1226,7 +1226,7 @@ not over old input, just yank as usual. @end table Moving to a previous input and then copying it with @kbd{C-c -@key{RET}} or @kbd{Mouse-2} produces the same results---the same +@key{RET}} or @kbd{mouse-2} produces the same results---the same buffer contents---that you would get by using @kbd{M-p} enough times to fetch that previous input from the history list. However, @kbd{C-c @key{RET}} copies the text from the buffer, which can be different @@ -1596,10 +1596,17 @@ variable to @samp{emacsclient +%d %s}.} You can run multiple Emacs servers on the same machine by giving each one a unique @dfn{server name}, using the variable @code{server-name}. For example, @kbd{M-x set-variable @key{RET} -server-name @key{RET} foo @key{RET}} sets the server name to +server-name @key{RET} "foo" @key{RET}} sets the server name to @samp{foo}. The @code{emacsclient} program can specify a server by name, using the @samp{-s} option (@pxref{emacsclient Options}). + If you want to run multiple Emacs daemons (@pxref{Initial Options}), +you can give each daemon its own server name like this: + +@example + emacs --eval "(setq server-name \"foo\")" --daemon +@end example + @findex server-eval-at If you have defined a server by a unique server name, it is possible to connect to the server from another Emacs instance and evaluate Lisp @@ -1878,7 +1885,7 @@ Like @code{lpr-buffer} but print only the current region. @findex lpr-region @vindex lpr-switches @vindex lpr-commands - On most operating system, the above hardcopy commands submit files + On most operating systems, the above hardcopy commands submit files for printing by calling the @command{lpr} program. To change the printer program, customize the variable @code{lpr-command}. To specify extra switches to give the printer program, customize the list @@ -2097,7 +2104,7 @@ You can also type @kbd{M-x pr-interface @key{RET}}; this creates a @file{*Printing Interface*} buffer, similar to a customization buffer, where you can set the printing options. After selecting what and how to print, you start the print job using the @samp{Print} button (click -@kbd{Mouse-2} on it, or move point over it and type @key{RET}). For +@kbd{mouse-2} on it, or move point over it and type @key{RET}). For further information on the various options, use the @samp{Interface Help} button. @@ -2318,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 @@ -2606,8 +2624,8 @@ typing @kbd{M-x goto-address-mode}. When this buffer-local minor mode is enabled, it finds all the URLs in the buffer, highlights them, and turns them into clickable buttons. You can follow the URL by typing @kbd{C-c @key{RET}} (@code{goto-address-at-point}) while point is on -its text; or by clicking with @kbd{Mouse-2}, or by clicking -@kbd{Mouse-1} quickly (@pxref{Mouse References}). Following a URL is +its text; or by clicking with @kbd{mouse-2}, or by clicking +@kbd{mouse-1} quickly (@pxref{Mouse References}). Following a URL is done by calling @code{browse-url} as a subroutine (@pxref{Browse-URL}). @@ -2680,12 +2698,12 @@ point (@code{dired-at-point}). @code{ffap-dired-other-frame}, analogous to @code{dired-other-frame}. @item M-x ffap-next Search buffer for next file name or URL, then find that file or URL. -@item S-Mouse-3 -@kindex S-Mouse-3 @r{(FFAP)} +@item S-mouse-3 +@kindex S-mouse-3 @r{(FFAP)} @code{ffap-at-mouse} finds the file guessed from text around the position of a mouse click. -@item C-S-Mouse-3 -@kindex C-S-Mouse-3 @r{(FFAP)} +@item C-S-mouse-3 +@kindex C-S-mouse-3 @r{(FFAP)} Display a menu of files and URLs mentioned in current buffer, then find the one you select (@code{ffap-menu}). @end table diff --git a/doc/emacs/modes.texi b/doc/emacs/modes.texi index c1564e9299b4..63e31ab568c1 100644 --- a/doc/emacs/modes.texi +++ b/doc/emacs/modes.texi @@ -113,10 +113,13 @@ hook}, a customizable list of Lisp functions to run each time the mode is enabled in a buffer. @xref{Hooks}, for more information about hooks. Each mode hook is named after its major mode, e.g., Fortran mode has @code{fortran-mode-hook}. Furthermore, all text-based major -modes run @code{text-mode-hook}, and all programming language modes -run @code{prog-mode-hook}, prior to running their own mode hooks. -Hook functions can look at the value of the variable @code{major-mode} -to see which mode is actually being entered. +modes run @code{text-mode-hook}, and many programming language modes +@footnote{More specifically, the modes which are ''derived'' from +@code{prog-mode} (@pxref{Derived Modes,,, elisp, The Emacs Lisp +Reference Manual}).} (including all those distributed with Emacs) run +@code{prog-mode-hook}, prior to running their own mode hooks. Hook +functions can look at the value of the variable @code{major-mode} to +see which mode is actually being entered. Mode hooks are commonly used to enable minor modes (@pxref{Minor Modes}). For example, you can put the following lines in your init diff --git a/doc/emacs/msdos-xtra.texi b/doc/emacs/msdos-xtra.texi index 45edd6cb7f98..89c14d239140 100644 --- a/doc/emacs/msdos-xtra.texi +++ b/doc/emacs/msdos-xtra.texi @@ -122,8 +122,8 @@ and the menu bar (@pxref{Menu Bar}). @end ifnottex Scroll bars don't work in MS-DOS Emacs. PC mice usually have only -two buttons; these act as @kbd{Mouse-1} and @kbd{Mouse-2}, but if you -press both of them together, that has the effect of @kbd{Mouse-3}. If +two buttons; these act as @kbd{mouse-1} and @kbd{mouse-2}, but if you +press both of them together, that has the effect of @kbd{mouse-3}. If the mouse does have 3 buttons, Emacs detects that at startup, and all the 3 buttons function normally, as on X. diff --git a/doc/emacs/msdos.texi b/doc/emacs/msdos.texi index 6ad12d646a1c..47ba23b95aa9 100644 --- a/doc/emacs/msdos.texi +++ b/doc/emacs/msdos.texi @@ -366,7 +366,7 @@ Emulate @sc{gnu} systems; this is the default. This sets Emulate Unix systems. Like @code{GNU}, but sets @code{ls-lisp-verbosity} to @code{(links uid)}. @item MacOS -Emulate MacOS@. Sets @code{ls-lisp-ignore-case} to @code{t}, and +Emulate macOS@. Sets @code{ls-lisp-ignore-case} to @code{t}, and @code{ls-lisp-dirs-first} and @code{ls-lisp-verbosity} to @code{nil}. @item MS-Windows Emulate MS-Windows. Sets @code{ls-lisp-ignore-case} and diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index a0b1d626a7b0..882d75f5e611 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -499,7 +499,7 @@ the alternative. Typing a number selects the associated alternative of the current row and uses it as input. @key{TAB} in these Chinese input methods displays a buffer showing -all the possible characters at once; then clicking @kbd{Mouse-2} on +all the possible characters at once; then clicking @kbd{mouse-2} on one of them selects that alternative. The keys @kbd{C-f}, @kbd{C-b}, @kbd{C-n}, @kbd{C-p}, and digits continue to work as usual, but they do the highlighting in the buffer showing the possible characters, @@ -745,7 +745,7 @@ exactly what to do for end-of-line conversion: @item @dots{}-unix Don't do any end-of-line conversion; assume the file uses newline to separate lines. (This is the convention normally used -on Unix and GNU systems, and Mac OS X.) +on Unix and GNU systems, and macOS.) @item @dots{}-dos Assume the file uses carriage-return linefeed to separate lines, and do @@ -757,8 +757,8 @@ Emacs doesn't support directly.}) @item @dots{}-mac Assume the file uses carriage-return to separate lines, and do the -appropriate conversion. (This was the convention used on the -Macintosh system prior to OS X.) +appropriate conversion. (This was the convention used in Classic Mac +OS.) @end table These variant coding systems are omitted from the @@ -1036,7 +1036,7 @@ decoding it using coding system @var{right} instead. the current buffer (i.e., the coding system to use when saving or reverting the file). You specify which coding system using the minibuffer. You can also invoke this command by clicking with -@kbd{Mouse-3} on the coding system indicator in the mode line +@kbd{mouse-3} on the coding system indicator in the mode line (@pxref{Mode Line}). If you specify a coding system that cannot handle all the characters @@ -1393,7 +1393,7 @@ of @code{standard-fontset-spec}. This fontset's name is @noindent or just @samp{fontset-standard} for short. - On GNUstep and Mac OS X, the standard fontset is created using the value of + On GNUstep and macOS, the standard fontset is created using the value of @code{ns-standard-fontset-spec}, and on MS Windows it is created using the value of @code{w32-standard-fontset-spec}. diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi index 3c099838059d..5662c857de91 100644 --- a/doc/emacs/package.texi +++ b/doc/emacs/package.texi @@ -238,10 +238,12 @@ controlled by the value of @code{package-menu-hide-low-priority}.) Once a package is downloaded and installed, it is @dfn{loaded} into the current Emacs session. Loading a package is not quite the same as -loading a Lisp library (@pxref{Lisp Libraries}); its effect varies -from package to package. Most packages just make some new commands -available, while others have more wide-ranging effects on the Emacs -session. For such information, consult the package's help buffer. +loading a Lisp library (@pxref{Lisp Libraries}); loading a package +adds its directory to @code{load-path} and loads its autoloads. The +effect of a package's autoloads varies from package to package. Most +packages just make some new commands available, while others have more +wide-ranging effects on the Emacs session. For such information, +consult the package's help buffer. By default, Emacs also automatically loads all installed packages in subsequent Emacs sessions. This happens at startup, after processing diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi index 780e00ca681d..3c802281207c 100644 --- a/doc/emacs/programs.texi +++ b/doc/emacs/programs.texi @@ -877,21 +877,25 @@ features of Electric Pair mode: @itemize @bullet @item +@vindex electric-pair-preserve-balance @code{electric-pair-preserve-balance}, when non-@code{nil}, makes the default pairing logic balance out the number of opening and closing delimiters. @item +@vindex electric-pair-delete-adjacent-pairs @code{electric-pair-delete-adjacent-pairs}, when non-@code{nil}, makes backspacing between two adjacent delimiters also automatically delete the closing delimiter. @item +@vindex electric-pair-open-newline-between-pairs @code{electric-pair-open-newline-between-pairs}, when non-@code{nil}, -makes inserting inserting a newline between two adjacent pairs also -automatically open and extra newline after point. +makes inserting a newline between two adjacent pairs also +automatically open an extra newline after point. @item +@vindex electric-pair-skip-whitespace @code{electric-pair-skip-whitespace}, when non-@code{nil}, causes the minor mode to skip whitespace forward before deciding whether to skip over the closing delimiter. @@ -1189,7 +1193,7 @@ replace man pages with better-organized manuals that you can browse with Info (@pxref{Misc Help}). This process is not finished, so it is still useful to read manual pages. -@findex manual-entry +@findex man You can read the man page for an operating system command, library function, or system call, with the @kbd{M-x man} command. This prompts for a topic, with completion (@pxref{Completion}), and runs @@ -1206,11 +1210,11 @@ mode buffer. named by a digit or by a digit and a letter. Sometimes there are man pages with the same name in different sections. To read a man page from a specific section, type @samp{@var{topic}(@var{section})} or -@samp{@var{section} @var{topic}} when @kbd{M-x manual-entry} prompts -for the topic. For example, the man page for the C library function +@samp{@var{section} @var{topic}} when @kbd{M-x man} prompts for the +topic. For example, the man page for the C library function @code{chmod} is in section 2, but there is a shell command of the same name, whose man page is in section 1; to view the former, type -@kbd{M-x manual-entry @key{RET} chmod(2) @key{RET}}. +@w{@kbd{M-x man @key{RET} chmod(2) @key{RET}}}. @vindex Man-switches @kindex M-n @r{(Man mode)} @@ -1305,7 +1309,7 @@ count as blocks. @kindex C-c @@ C-M-s @kindex C-c @@ C-r @kindex C-c @@ C-l -@kindex S-Mouse-2 +@kindex S-mouse-2 @table @kbd @item C-c @@ C-h Hide the current block (@code{hs-hide-block}). @@ -1313,7 +1317,7 @@ Hide the current block (@code{hs-hide-block}). Show the current block (@code{hs-show-block}). @item C-c @@ C-c Either hide or show the current block (@code{hs-toggle-hiding}). -@item S-Mouse-2 +@item S-mouse-2 Toggle hiding for the block you click on (@code{hs-mouse-toggle-hiding}). @item C-c @@ C-M-h Hide all top-level blocks (@code{hs-hide-all}). diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi index ef9894d6f260..84f1296484ae 100644 --- a/doc/emacs/rmail.texi +++ b/doc/emacs/rmail.texi @@ -1252,8 +1252,8 @@ Address mode: @end example @noindent -Then you can browse these URLs by clicking on them with @kbd{Mouse-2} -(or @kbd{Mouse-1} quickly) or by moving to one and typing @kbd{C-c +Then you can browse these URLs by clicking on them with @kbd{mouse-2} +(or @kbd{mouse-1} quickly) or by moving to one and typing @kbd{C-c @key{RET}}. @xref{Goto Address mode, Activating URLs, Activating URLs}. @node Rmail Coding @@ -1425,7 +1425,7 @@ local mailbox. @end table @noindent -@var{Proto} can be one of: +@var{proto} can be one of: @table @code @item mbox @@ -1434,12 +1434,12 @@ Usual Unix mailbox format. In this case, neither @var{user} nor of the mailbox file, e.g., @code{mbox://var/spool/mail/smith}. @item mh -A local mailbox in the @acronym{MH} format. @var{User} and -@var{pass} are not used. @var{Host-or-file-name} denotes the name of +A local mailbox in the @acronym{MH} format. @var{user} and +@var{pass} are not used. @var{host-or-file-name} denotes the name of @acronym{MH} folder, e.g., @code{mh://Mail/inbox}. @item maildir -A local mailbox in the @acronym{maildir} format. @var{User} and +A local mailbox in the @acronym{maildir} format. @var{user} and @var{pass} are not used, and @var{host-or-file-name} denotes the name of @code{maildir} mailbox, e.g., @code{maildir://mail/inbox}. @@ -1448,14 +1448,14 @@ Any local mailbox format. Its actual format is detected automatically by @code{movemail}. @item pop -A remote mailbox to be accessed via POP3 protocol. @var{User} +A remote mailbox to be accessed via POP3 protocol. @var{user} specifies the remote user name to use, @var{pass} may be used to specify the user password, @var{host-or-file-name} is the name or IP address of the remote mail server to connect to; e.g., @code{pop://smith:guessme@@remote.server.net}. @item imap -A remote mailbox to be accessed via IMAP4 protocol. @var{User} +A remote mailbox to be accessed via IMAP4 protocol. @var{user} specifies the remote user name to use, @var{pass} may be used to specify the user password, @var{host-or-file-name} is the name or IP address of the remote mail server to connect to; diff --git a/doc/emacs/screen.texi b/doc/emacs/screen.texi index 580df5fe8ff9..46ccca52aa8d 100644 --- a/doc/emacs/screen.texi +++ b/doc/emacs/screen.texi @@ -216,6 +216,11 @@ changes to either a forward slash (@samp{/}) or @samp{(Mac)}. On some systems, Emacs displays @samp{(Unix)} instead of the colon for files that use newline as the line separator. + On frames created for @command{emacsclient} (@pxref{Invoking +emacsclient}), the next character is @samp{@@}. This indication is +typical for frames of an Emacs process running as a daemon +(@pxref{Emacs Server}). + The next element on the mode line is the string indicated by @var{ch}. This shows two dashes (@samp{--}) if the buffer displayed in the window has the same contents as the corresponding file on the @@ -225,7 +230,7 @@ shows @samp{%*} if the buffer is modified, and @samp{%%} otherwise. The character after @var{ch} is normally a dash (@samp{-}). However, if the default-directory for the current buffer is on a -remote machine, @samp{@@} is displayed instead (@pxref{File Names}). +remote machine (@pxref{File Names}), @samp{@@} is displayed instead. @var{fr} gives the selected frame name (@pxref{Frames}). It appears only on text terminals. The initial frame's name is @samp{F1}. @@ -304,7 +309,10 @@ the usual way (@pxref{Key Help}). item by pressing @key{F10} (to run the command @code{menu-bar-open}). You can then navigate the menus with the arrow keys. To activate a selected menu item, press @key{RET}; to cancel menu navigation, press -@kbd{C-g} or @kbd{@key{ESC} @key{ESC} @key{ESC}}. +@kbd{C-g} or @kbd{@key{ESC} @key{ESC} @key{ESC}}. (However, note that +when Emacs was built with a GUI toolkit, the menus are drawn and +controlled by the toolkit, and the key sequences to cancel menu +navigation might be different from the above description.) @kindex M-` @findex tmm-menubar diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi index 459e84469379..543d54700468 100644 --- a/doc/emacs/search.texi +++ b/doc/emacs/search.texi @@ -203,10 +203,10 @@ saved in the search ring is specified by the variable @cindex incremental search, edit search string @cindex interactively edit search string @kindex M-e @r{(Incremental search)} -@kindex Mouse-1 @r{in the minibuffer (Incremental Search)} +@kindex mouse-1 @r{in the minibuffer (Incremental Search)} To edit the current search string in the minibuffer without replacing it with items from the search ring, type @kbd{M-e} or click -@kbd{Mouse-1} in the minibuffer. Type @key{RET}, @kbd{C-s} or +@kbd{mouse-1} in the minibuffer. Type @key{RET}, @kbd{C-s} or @kbd{C-r} to finish editing the string and search for it. Type @kbd{C-f} or @kbd{@key{RIGHT}} to add to the search string characters following point from the buffer from which you started the search. @@ -234,7 +234,7 @@ end of a line, it appends the next line. With a prefix argument @kindex C-y @r{(Incremental search)} @kindex M-y @r{(Incremental search)} -@kindex Mouse-2 @r{in the minibuffer (Incremental search)} +@kindex mouse-2 @r{in the minibuffer (Incremental search)} @findex isearch-yank-kill @findex isearch-yank-pop @findex isearch-yank-x-selection @@ -242,7 +242,7 @@ end of a line, it appends the next line. With a prefix argument appends the current kill to the search string. @kbd{M-y} (@code{isearch-yank-pop}), if called after @kbd{C-y}, replaces that appended text with an earlier kill, similar to the usual @kbd{M-y} -(@code{yank-pop}) command (@pxref{Yanking}). Clicking @kbd{Mouse-2} +(@code{yank-pop}) command (@pxref{Yanking}). Clicking @kbd{mouse-2} in the echo area appends the current X selection (@pxref{Primary Selection}) to the search string (@code{isearch-yank-x-selection}). @@ -1264,13 +1264,13 @@ but match under character folding are known as @dfn{equivalent character sequences}. @kindex M-s ' @r{(Incremental Search)} -@findex isearch-toggle-character-fold +@findex isearch-toggle-char-fold Generally, search commands in Emacs do not by default perform character folding in order to match equivalent character sequences. You can enable this behavior by customizing the variable -@code{search-default-mode} to @code{character-fold-to-regexp}. +@code{search-default-mode} to @code{char-fold-to-regexp}. @xref{Search Customizations}. Within an incremental search, typing -@kbd{M-s '} (@code{isearch-toggle-character-fold}) toggles character +@kbd{M-s '} (@code{isearch-toggle-char-fold}) toggles character folding, but only for that search. (Replace commands have a different default, controlled by a separate option; see @ref{Replacement and Lax Matches}.) @@ -1356,12 +1356,12 @@ Replace every match for @var{regexp} with @var{newstring}. it can refer to all or part of what is matched by the @var{regexp}. @samp{\&} in @var{newstring} stands for the entire match being replaced. @samp{\@var{d}} in @var{newstring}, where @var{d} is a -digit, stands for whatever matched the @var{d}th parenthesized -grouping in @var{regexp}. (This is called a ``back reference''.) -@samp{\#} refers to the count of replacements already made in this -command, as a decimal number. In the first replacement, @samp{\#} -stands for @samp{0}; in the second, for @samp{1}; and so on. For -example, +digit starting from 1, stands for whatever matched the @var{d}th +parenthesized grouping in @var{regexp}. (This is called a ``back +reference''.) @samp{\#} refers to the count of replacements already +made in this command, as a decimal number. In the first replacement, +@samp{\#} stands for @samp{0}; in the second, for @samp{1}; and so on. +For example, @example M-x replace-regexp @key{RET} c[ad]+r @key{RET} \&-safe @key{RET} @@ -1481,7 +1481,7 @@ replacement is done without case conversion. (@pxref{Lax Search, character folding}) when looking for the text to replace. To enable character folding for matching in @code{query-replace} and @code{replace-string}, set the variable -@code{replace-character-fold} to a non-@code{nil} value. (This +@code{replace-char-fold} to a non-@code{nil} value. (This setting does not affect the replacement text, only how Emacs finds the text to replace. It also doesn't affect @code{replace-regexp}.) @@ -1714,15 +1714,21 @@ a multi-file incremental search is activated automatically. @cindex mode, Occur @cindex match (face name) @vindex list-matching-lines-default-context-lines +@kindex M-s o @item M-x occur +@itemx M-s o Prompt for a regexp, and display a list showing each line in the -buffer that contains a match for it. The text that matched is -highlighted using the @code{match} face. To limit the search to part -of the buffer, narrow to that part (@pxref{Narrowing}). A numeric -argument @var{n} specifies that @var{n} lines of context are to be -displayed before and after each matching line. The default number of -context lines is specified by the variable -@code{list-matching-lines-default-context-lines}. +buffer that contains a match for it. If you type @kbd{M-n} at the +prompt, you can reuse search strings from previous incremental +searches. The text that matched is highlighted using the @code{match} +face. To limit the search to part of the buffer, narrow to that part +(@pxref{Narrowing}). A numeric argument @var{n} specifies that +@var{n} lines of context are to be displayed before and after each +matching line. The default number of context lines is specified by +the variable @code{list-matching-lines-default-context-lines}. + +You can also run @kbd{M-s o} when an incremental search is active; +this uses the current search string. @kindex RET @r{(Occur mode)} @kindex o @r{(Occur mode)} @@ -1744,12 +1750,6 @@ mode. The command @kbd{M-x list-matching-lines} is a synonym for @kbd{M-x occur}. -@kindex M-s o -@item M-s o -Run @code{occur} using the search string of the last incremental -string search. You can also run @kbd{M-s o} when an incremental -search is active; this uses the current search string. - @item M-x multi-occur This command is just like @code{occur}, except it is able to search through multiple buffers. It asks you to specify the buffer names one diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi index 41abb42fb5d0..f28488e4545b 100644 --- a/doc/emacs/text.texi +++ b/doc/emacs/text.texi @@ -422,9 +422,7 @@ portable; curved quotes are less ambiguous and typically look nicer. Electric Quote mode makes it easier to type curved quotes. As you type characters it optionally converts @t{`} to @t{‘}, @t{'} to @t{’}, -@t{``} to @t{“}, and @t{''} to @t{”}. These conversions are -suppressed in buffers whose coding systems cannot represent curved -quote characters. +@t{``} to @t{“}, and @t{''} to @t{”}. @vindex electric-quote-paragraph @vindex electric-quote-comment @@ -862,8 +860,8 @@ indenting the current line. @xref{Indentation}, for details. Text mode turns off the features concerned with comments except when you explicitly invoke them. It changes the syntax table so that -single-quotes are considered part of words (e.g., @samp{don't} is -considered one word). However, if a word starts with a single-quote, +apostrophes are considered part of words (e.g., @samp{don't} is +considered one word). However, if a word starts with an apostrophe, it is treated as a prefix for the purposes of capitalization (e.g., @kbd{M-c} converts @samp{'hello'} into @samp{'Hello'}, as expected). @@ -1080,92 +1078,101 @@ header line. @table @kbd @item C-c C-c -Make the current heading line's body invisible (@code{hide-entry}). +Make the current heading line's body invisible +(@code{outline-hide-entry}). @item C-c C-e -Make the current heading line's body visible (@code{show-entry}). +Make the current heading line's body visible +(@code{outline-show-entry}). @item C-c C-d Make everything under the current heading invisible, not including the -heading itself (@code{hide-subtree}). +heading itself (@code{outline-hide-subtree}). @item C-c C-s Make everything under the current heading visible, including body, -subheadings, and their bodies (@code{show-subtree}). +subheadings, and their bodies (@code{outline-show-subtree}). @item C-c C-l Make the body of the current heading line, and of all its subheadings, -invisible (@code{hide-leaves}). +invisible (@code{outline-hide-leaves}). @item C-c C-k Make all subheadings of the current heading line, at all levels, -visible (@code{show-branches}). +visible (@code{outline-show-branches}). @item C-c C-i Make immediate subheadings (one level down) of the current heading -line visible (@code{show-children}). +line visible (@code{outline-show-children}). @item C-c C-t -Make all body lines in the buffer invisible (@code{hide-body}). +Make all body lines in the buffer invisible +(@code{outline-hide-body}). @item C-c C-a -Make all lines in the buffer visible (@code{show-all}). +Make all lines in the buffer visible (@code{outline-show-all}). @item C-c C-q Hide everything except the top @var{n} levels of heading lines -(@code{hide-sublevels}). +(@code{outline-hide-sublevels}). @item C-c C-o Hide everything except for the heading or body that point is in, plus the headings leading up from there to the top level of the outline -(@code{hide-other}). +(@code{outline-hide-other}). @end table -@findex hide-entry -@findex show-entry +@findex outline-hide-entry +@findex outline-show-entry @kindex C-c C-c @r{(Outline mode)} @kindex C-c C-e @r{(Outline mode)} The simplest of these commands are @kbd{C-c C-c} -(@code{hide-entry}), which hides the body lines directly following the -current heading line, and @kbd{C-c C-e} (@code{show-entry}), which -reveals them. Subheadings and their bodies are not affected. +(@code{outline-hide-entry}), which hides the body lines directly +following the current heading line, and @kbd{C-c C-e} +(@code{outline-show-entry}), which reveals them. Subheadings and +their bodies are not affected. -@findex hide-subtree -@findex show-subtree +@findex outline-hide-subtree +@findex outline-show-subtree @kindex C-c C-s @r{(Outline mode)} @kindex C-c C-d @r{(Outline mode)} @cindex subtree (Outline mode) - The commands @kbd{C-c C-d} (@code{hide-subtree}) and @kbd{C-c C-s} -(@code{show-subtree}) are more powerful. They apply to the current -heading line's @dfn{subtree}: its body, all of its subheadings, both -direct and indirect, and all of their bodies. - -@findex hide-leaves -@findex show-branches -@findex show-children + The commands @kbd{C-c C-d} (@code{outline-hide-subtree}) and +@kbd{C-c C-s} (@code{outline-show-subtree}) are more powerful. They +apply to the current heading line's @dfn{subtree}: its body, all of +its subheadings, both direct and indirect, and all of their bodies. + +@findex outline-hide-leaves +@findex outline-show-branches +@findex outline-show-children @kindex C-c C-l @r{(Outline mode)} @kindex C-c C-k @r{(Outline mode)} @kindex C-c C-i @r{(Outline mode)} - The command @kbd{C-c C-l} (@code{hide-leaves}) hides the body of the -current heading line as well as all the bodies in its subtree; the -subheadings themselves are left visible. The command @kbd{C-c C-k} -(@code{show-branches}) reveals the subheadings, if they had previously -been hidden (e.g., by @kbd{C-c C-d}). The command @kbd{C-c C-i} -(@code{show-children}) is a weaker version of this; it reveals just -the direct subheadings, i.e., those one level down. - -@findex hide-other + The command @kbd{C-c C-l} (@code{outline-hide-leaves}) hides the +body of the current heading line as well as all the bodies in its +subtree; the subheadings themselves are left visible. The command +@kbd{C-c C-k} (@code{outline-show-branches}) reveals the subheadings, +if they had previously been hidden (e.g., by @kbd{C-c C-d}). The +command @kbd{C-c C-i} (@code{outline-show-children}) is a weaker +version of this; it reveals just the direct subheadings, i.e., those +one level down. + +@findex outline-hide-other @kindex C-c C-o @r{(Outline mode)} - The command @kbd{C-c C-o} (@code{hide-other}) hides everything -except the entry that point is in, plus its parents (the headers -leading up from there to top level in the outline) and the top level -headings. - -@findex hide-body -@findex show-all + The command @kbd{C-c C-o} (@code{outline-hide-other}) hides +everything except the entry that point is in, plus its parents (the +headers leading up from there to top level in the outline) and the top +level headings. It also reveals body lines preceding the first +heading in the buffer. + +@findex outline-hide-body +@findex outline-show-all @kindex C-c C-t @r{(Outline mode)} @kindex C-c C-a @r{(Outline mode)} @findex hide-sublevels @kindex C-c C-q @r{(Outline mode)} The remaining commands affect the whole buffer. @kbd{C-c C-t} -(@code{hide-body}) makes all body lines invisible, so that you see -just the outline structure (as a special exception, it will not hide -lines at the top of the file, preceding the first header line, even -though these are technically body lines). @kbd{C-c C-a} -(@code{show-all}) makes all lines visible. @kbd{C-c C-q} -(@code{hide-sublevels}) hides all but the top level headings; with a -numeric argument @var{n}, it hides everything except the top @var{n} -levels of heading lines. +(@code{outline-hide-body}) makes all body lines invisible, so that you +see just the outline structure (as a special exception, it will not +hide lines at the top of the file, preceding the first header line, +even though these are technically body lines). @kbd{C-c C-a} +(@code{outline-show-all}) makes all lines visible. @kbd{C-c C-q} +(@code{outline-hide-sublevels}) hides all but the top level headings +at and above the level of the current heading line (defaulting to 1 if +point is not on a heading); with a numeric argument @var{n}, it hides +everything except the top @var{n} levels of heading lines. Note that +it completely reveals all the @var{n} top levels and the body lines +before the first heading. @anchor{Outline Search} @findex reveal-mode @@ -1211,8 +1218,9 @@ levels. Consider an Outline mode buffer with all the text and subheadings under level-1 headings hidden. To look at what is hidden under one of these -headings, you could use @kbd{C-c C-e} (@kbd{M-x show-entry}) to expose -the body, or @kbd{C-c C-i} to expose the child (level-2) headings. +headings, you could use @kbd{C-c C-e} (@kbd{M-x outline-show-entry}) +to expose the body, or @kbd{C-c C-i} to expose the child (level-2) +headings. @kindex C-c C-z @findex foldout-zoom-subtree @@ -1227,11 +1235,12 @@ in the mode line shows how deep you've gone. When zooming in on a heading, to see only the child subheadings specify a numeric argument: @kbd{C-u C-c C-z}. The number of levels of children -can be specified too (compare @kbd{M-x show-children}), e.g., @kbd{M-2 -C-c C-z} exposes two levels of child subheadings. Alternatively, the -body can be specified with a negative argument: @kbd{M-- C-c C-z}. The -whole subtree can be expanded, similarly to @kbd{C-c C-s} (@kbd{M-x -show-subtree}), by specifying a zero argument: @kbd{M-0 C-c C-z}. +can be specified too (compare @kbd{M-x outline-show-children}), e.g., +@w{@kbd{M-2 C-c C-z}} exposes two levels of child subheadings. +Alternatively, the body can be specified with a negative argument: +@w{@kbd{M-- C-c C-z}}. The whole subtree can be expanded, similarly to +@kbd{C-c C-s} (@kbd{M-x outline-show-subtree}), by specifying a zero +argument: @w{@kbd{M-0 C-c C-z}}. While you're zoomed in, you can still use Outline mode's exposure and hiding functions without disturbing Foldout. Also, since the buffer is @@ -1248,14 +1257,14 @@ argument exits that many levels of folds. Specifying a zero argument exits all folds. To cancel the narrowing of a fold without hiding the text and -subheadings, specify a negative argument. For example, @kbd{M--2 C-c -C-x} exits two folds and leaves the text and subheadings exposed. +subheadings, specify a negative argument. For example, @w{@kbd{M--2 C-c +C-x}} exits two folds and leaves the text and subheadings exposed. Foldout mode also provides mouse commands for entering and exiting folds, and for showing and hiding text: @table @asis -@item @kbd{C-M-Mouse-1} zooms in on the heading clicked on +@item @kbd{C-M-mouse-1} zooms in on the heading clicked on @itemize @w{} @item single click: expose body. @@ -1266,7 +1275,7 @@ triple click: expose body and subheadings. @item quad click: expose entire subtree. @end itemize -@item @kbd{C-M-Mouse-2} exposes text under the heading clicked on +@item @kbd{C-M-mouse-2} exposes text under the heading clicked on @itemize @w{} @item single click: expose body. @@ -1277,7 +1286,7 @@ triple click: expose body and subheadings. @item quad click: expose entire subtree. @end itemize -@item @kbd{C-M-Mouse-3} hides text under the heading clicked on or exits fold +@item @kbd{C-M-mouse-3} hides text under the heading clicked on or exits fold @itemize @w{} @item single click: hide subtree. @@ -1302,7 +1311,8 @@ it in order for this to take effect. automatically by putting the following in your init file: @example -(eval-after-load "outline" '(require 'foldout)) +(with-eval-after-load "outline" + (require 'foldout)) @end example @node Org Mode @@ -2156,7 +2166,7 @@ want to set the justification style to @code{unfilled} The easiest way to alter properties is with the @samp{Text Properties} menu. You can get to this menu from the @samp{Edit} menu -in the menu bar (@pxref{Menu Bar}), or with @kbd{C-Mouse-2} +in the menu bar (@pxref{Menu Bar}), or with @kbd{C-mouse-2} (@pxref{Menu Mouse Clicks}). Some of the commands in the @samp{Text Properties} menu are listed below (you can also invoke them with @kbd{M-x}): diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi index 326806337694..7a5defabf093 100644 --- a/doc/emacs/trouble.texi +++ b/doc/emacs/trouble.texi @@ -1130,7 +1130,8 @@ The patch itself. Use @samp{diff -u} to make your diffs. Diffs without context are hard to install reliably. More than that, they are hard to study; we must always study a patch to decide whether we want to install it. Context -format is better than contextless diffs, but we prefer we unified format. +format is better than contextless diffs, but we prefer the unified +format. If you have GNU diff, use @samp{diff -u -F'^[_a-zA-Z0-9$]\+ *('} when making diffs of C code. This shows the name of the function that each @@ -1175,7 +1176,7 @@ see @url{http://www.gnu.org/prep/standards/html_node/Change-Log-Concepts.html}, @end ifset @xref{Change Log Concepts, Change Log Concepts, -Change Log Concepts, gnu-coding-standards, GNU Coding Standards}. +Change Log Concepts, standards, GNU Coding Standards}. @item When you write the fix, keep in mind that we can't install a change that @@ -1359,7 +1360,7 @@ Appendix, elisp, Emacs Lisp Reference}. @end ifclear @item -Avoid using @code{defadvice} or @code{eval-after-load} for Lisp code +Avoid using @code{defadvice} or @code{with-eval-after-load} for Lisp code to be included in Emacs. @item diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi index 702963f75c58..bb8b68bf5f48 100644 --- a/doc/emacs/windows.texi +++ b/doc/emacs/windows.texi @@ -71,7 +71,7 @@ Split the selected window into two windows, one above the other @item C-x 3 Split the selected window into two windows, positioned side by side (@code{split-window-right}). -@item C-Mouse-2 +@item C-mouse-2 In the mode line of a window, split that window. @end table @@ -129,12 +129,12 @@ truncation glyphs, the margins, and the scroll bar. On text terminals, side-by-side windows are separated by a vertical divider which is drawn using the @code{vertical-border} face. -@kindex C-Mouse-2 @r{(mode line)} -@kindex C-Mouse-2 @r{(scroll bar)} - If you click @kbd{C-Mouse-2} in the mode line of a window, that +@kindex C-mouse-2 @r{(mode line)} +@kindex C-mouse-2 @r{(scroll bar)} + If you click @kbd{C-mouse-2} in the mode line of a window, that splits the window, putting a vertical divider where you click. Depending on how Emacs is compiled, you can also split a window by -clicking @kbd{C-Mouse-2} in the scroll bar, which puts a horizontal +clicking @kbd{C-mouse-2} in the scroll bar, which puts a horizontal divider where you click (this feature does not work when Emacs uses GTK+ scroll bars). @@ -158,8 +158,8 @@ this option is @code{nil}. Select another window (@code{other-window}). @item C-M-v Scroll the next window (@code{scroll-other-window}). -@item Mouse-1 -@kbd{Mouse-1}, in the text area of a window, selects the window and +@item mouse-1 +@kbd{mouse-1}, in the text area of a window, selects the window and moves point to the position clicked. Clicking in the mode line selects the window without moving point in it. @end table diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index 78c1865703e0..86c8da0e4612 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi @@ -584,7 +584,6 @@ Regular Expression Searches * re-search-forward:: Very similar to @code{search-forward}. * forward-sentence:: A straightforward example of regexp search. * forward-paragraph:: A somewhat complex example. -* etags:: How to create your own @file{TAGS} table. * Regexp Review:: * re-search Exercises:: @@ -1004,11 +1003,11 @@ the name stands for ``Lots of Isolated Silly Parentheses''. But the claim is unwarranted. Lisp stands for LISt Processing, and the programming language handles @emph{lists} (and lists of lists) by putting them between parentheses. The parentheses mark the boundaries -of the list. Sometimes a list is preceded by a single apostrophe or -quotation mark, @samp{'}@footnote{The single apostrophe or quotation -mark is an abbreviation for the function @code{quote}; you need not -think about functions now; functions are defined in @ref{Making -Errors, , Generate an Error Message}.} Lists are the basis of Lisp. +of the list. Sometimes a list is preceded by an apostrophe @samp{'}, +called a @dfn{single-quote} in Lisp.@footnote{A single-quote is an +abbreviation for the special form @code{quote}; you need not think +about special forms now. @xref{Complications}.} Lists are the basis +of Lisp. @menu * Lisp Lists:: What are lists? @@ -2490,14 +2489,7 @@ in the list and then at the function definition bound to that symbol. Then the instructions in the function definition are carried out. @item -A single quotation mark, -@ifinfo -' -@end ifinfo -@ifnotinfo -@code{'} -@end ifnotinfo -, tells the Lisp interpreter that it should +A single-quote @samp{'} tells the Lisp interpreter that it should return the following expression as written, and not evaluate it as it would if the quote were not there. @@ -4590,54 +4582,21 @@ definition. @end ignore More generally, if you want to see a function in its original source -file, you can use the @code{find-tag} function to jump to it. -@code{find-tag} works with a wide variety of languages, not just -Lisp, and C, and it works with non-programming text as well. For -example, @code{find-tag} will jump to the various nodes in the -Texinfo source file of this document. -The @code{find-tag} function depends on @dfn{tags tables} that record -the locations of the functions, variables, and other items to which -@code{find-tag} jumps. - -To use the @code{find-tag} command, type @kbd{M-.} (i.e., press the -period key while holding down the @key{META} key, or else type the -@key{ESC} key and then type the period key), and then, at the prompt, -type in the name of the function whose source code you want to see, -such as @code{mark-whole-buffer}, and then type @key{RET}. Emacs will -switch buffers and display the source code for the function on your -screen. To switch back to your current buffer, type @kbd{C-x b -@key{RET}}. (On some keyboards, the @key{META} key is labeled -@key{ALT}.) - -@c !!! 22.1.1 tags table location in this paragraph -@cindex TAGS table, specifying -@findex find-tag -Depending on how the initial default values of your copy of Emacs are -set, you may also need to specify the location of your tags table, -which is a file called @file{TAGS}. For example, if you are -interested in Emacs sources, the tags table you will most likely want, -if it has already been created for you, will be in a subdirectory of -the @file{/usr/local/share/emacs/} directory; thus you would use the -@code{M-x visit-tags-table} command and specify a pathname such as -@file{/usr/local/share/emacs/22.1.1/lisp/TAGS}. If the tags table -has not already been created, you will have to create it yourself. It -will be in a file such as @file{/usr/local/src/emacs/src/TAGS}. - -@need 1250 -To create a @file{TAGS} file in a specific directory, switch to that -directory in Emacs using @kbd{M-x cd} command, or list the directory -with @kbd{C-x d} (@code{dired}). Then run the compile command, with -@w{@code{etags *.el}} as the command to execute: - -@smallexample -M-x compile RET etags *.el RET -@end smallexample - -For more information, see @ref{etags, , Create Your Own @file{TAGS} File}. - -After you become more familiar with Emacs Lisp, you will find that you will -frequently use @code{find-tag} to navigate your way around source code; -and you will create your own @file{TAGS} tables. +file, you can use the @code{xref-find-definitions} function to jump to +it. @code{xref-find-definitions} works with a wide variety of +languages, not just Lisp, and C, and it works with non-programming +text as well. For example, @code{xref-find-definitions} will jump to +the various nodes in the Texinfo source file of this document. + +To use the @code{xref-find-definitions} command, type @kbd{M-.} +(i.e., press the period key while holding down the @key{META} key, or +else type the @key{ESC} key and then type the period key), and then, +at the prompt, type in the name of the function whose source code you +want to see, such as @code{mark-whole-buffer}, and then type +@key{RET}. Emacs will switch buffers and display the source code for +the function on your screen. To switch back to your current buffer, +type @kbd{C-x b @key{RET}}. (On some keyboards, the @key{META} key is +labeled @key{ALT}.) @cindex Library, as term for ``file'' Incidentally, the files that contain Lisp code are conventionally @@ -7610,7 +7569,8 @@ displays in which grave accent and apostrophe were often mirror images suitable for use as quotes. On most modern displays this is no longer true, and when these two ASCII characters appear in documentation strings or diagnostic message formats, Emacs typically transliterates -them to curved single quotes, so that the abovequoted symbol appears +them to @dfn{curved quotes} (left and right single quotation marks), +so that the abovequoted symbol appears as @t{‘case-fold-search’}. Source-code strings can also simply use curved quotes directly. @@ -12148,7 +12108,6 @@ introduces several new features. * re-search-forward:: Very similar to @code{search-forward}. * forward-sentence:: A straightforward example of regexp search. * forward-paragraph:: A somewhat complex example. -* etags:: How to create your own @file{TAGS} table. * Regexp Review:: * re-search Exercises:: @end menu @@ -13300,130 +13259,6 @@ key; you will be taken directly to the source. (Be sure to install your sources! Without them, you are like a person who tries to drive a car with his eyes shut!) -@node etags -@section Create Your Own @file{TAGS} File -@findex etags -@cindex @file{TAGS} file, create own - -Besides @kbd{C-h f} (@code{describe-function}), another way to see the -source of a function is to type @kbd{M-.} (@code{find-tag}) and the -name of the function when prompted for it. This is a good habit to -get into. The @kbd{M-.} (@code{find-tag}) command takes you directly -to the source for a function, variable, or node. The function depends -on tags tables to tell it where to go. - -If the @code{find-tag} function first asks you for the name of a -@file{TAGS} table, give it the name of a @file{TAGS} file such as -@file{/usr/local/src/emacs/src/TAGS}. (The exact path to your -@file{TAGS} file depends on how your copy of Emacs was installed. I -just told you the location that provides both my C and my Emacs Lisp -sources.) - -You can also create your own @file{TAGS} file for directories that -lack one. - -You often need to build and install tags tables yourself. They are -not built automatically. A tags table is called a @file{TAGS} file; -the name is in upper case letters. - -You can create a @file{TAGS} file by calling the @code{etags} program -that comes as a part of the Emacs distribution. Usually, @code{etags} -is compiled and installed when Emacs is built. (@code{etags} is not -an Emacs Lisp function or a part of Emacs; it is a C program.) - -@need 1250 -To create a @file{TAGS} file, first switch to the directory in which -you want to create the file. In Emacs you can do this with the -@kbd{M-x cd} command, or by visiting a file in the directory, or by -listing the directory with @kbd{C-x d} (@code{dired}). Then run the -compile command, with @w{@code{etags *.el}} as the command to execute - -@smallexample -M-x compile RET etags *.el RET -@end smallexample - -@noindent -to create a @file{TAGS} file for Emacs Lisp. - -For example, if you have a large number of files in your -@file{~/emacs} directory, as I do---I have 137 @file{.el} files in it, -of which I load 12---you can create a @file{TAGS} file for the Emacs -Lisp files in that directory. - -@need 1250 -The @code{etags} program takes all the usual shell wildcards. For -example, if you have two directories for which you want a single -@file{TAGS} file, type @w{@code{etags *.el ../elisp/*.el}}, where -@file{../elisp/} is the second directory: - -@smallexample -M-x compile RET etags *.el ../elisp/*.el RET -@end smallexample - -@need 1250 -Type - -@smallexample -M-x compile RET etags --help RET -@end smallexample - -@noindent -to see a list of the options accepted by @code{etags} as well as a -list of supported languages. - -The @code{etags} program handles more than 20 languages, including -Emacs Lisp, Common Lisp, Scheme, C, C++, Ada, Fortran, HTML, Java, -LaTeX, Pascal, Perl, PostScript, Python, TeX, Texinfo, makefiles, and -most assemblers. The program has no switches for specifying the -language; it recognizes the language in an input file according to its -file name and contents. - -@file{etags} is very helpful when you are writing code yourself and -want to refer back to functions you have already written. Just run -@code{etags} again at intervals as you write new functions, so they -become part of the @file{TAGS} file. - -If you think an appropriate @file{TAGS} file already exists for what -you want, but do not know where it is, you can use the @code{locate} -program to attempt to find it. - -Type @w{@kbd{M-x locate @key{RET} TAGS @key{RET}}} and Emacs will list -for you the full path names of all your @file{TAGS} files. On my -system, this command lists 34 @file{TAGS} files. On the other hand, a -plain vanilla system I recently installed did not contain any -@file{TAGS} files. - -If the tags table you want has been created, you can use the @code{M-x -visit-tags-table} command to specify it. Otherwise, you will need to -create the tag table yourself and then use @code{M-x -visit-tags-table}. - -@subsubheading Building Tags in the Emacs sources -@cindex Building Tags in the Emacs sources -@cindex Tags in the Emacs sources -@findex make tags - -The GNU Emacs sources come with a @file{Makefile} that contains a -sophisticated @code{etags} command that creates, collects, and merges -tags tables from all over the Emacs sources and puts the information -into one @file{TAGS} file in the @file{src/} directory. (The -@file{src/} directory is below the top level of your Emacs directory.) - -@need 1250 -To build this @file{TAGS} file, go to the top level of your Emacs -source directory and run the compile command @code{make tags}: - -@smallexample -M-x compile RET make tags RET -@end smallexample - -@noindent -(The @code{make tags} command works well with the GNU Emacs sources, -as well as with some other source packages.) - -For more information, see @ref{Tags, , Tag Tables, emacs, The GNU Emacs -Manual}. - @node Regexp Review @section Review @@ -15630,7 +15465,7 @@ Here is the function: @group (cond ;; check to see whether filename ends in '.el' - ;; and if so, append its name to a list. + ;; and if so, add its name to a list. ((equal ".el" (substring (car (car current-directory-list)) -3)) (setq el-files-list (cons (car (car current-directory-list)) el-files-list))) @@ -17117,7 +16952,7 @@ This line is a short, but complete Emacs Lisp expression. We are already familiar with @code{setq}. It sets the following variable, @code{major-mode}, to the subsequent value, which is @code{text-mode}. -The single quote mark before @code{text-mode} tells Emacs to deal directly +The single-quote before @code{text-mode} tells Emacs to deal directly with the @code{text-mode} symbol, not with whatever it might stand for. @xref{set & setq, , Setting the Value of a Variable}, for a reminder of how @code{setq} works. @@ -17284,11 +17119,11 @@ Rebinding Keys in Your Init File, emacs, The GNU Emacs Manual}, for details.) The command invoked by the keys is @code{compare-windows}. Note that -@code{compare-windows} is preceded by a single quote; otherwise, Emacs +@code{compare-windows} is preceded by a single-quote; otherwise, Emacs would first try to evaluate the symbol to determine its value. These three things, the double quotation marks, the backslash before -the @samp{C}, and the single quote mark are necessary parts of +the @samp{C}, and the single-quote are necessary parts of keybinding that I tend to forget. Fortunately, I have come to remember that I should look at my existing @file{.emacs} file, and adapt what is there. diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi index 4b0840149940..17d765de142f 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/buffers.texi b/doc/lispref/buffers.texi index 1f7f263fb211..740d7cfd8a15 100644 --- a/doc/lispref/buffers.texi +++ b/doc/lispref/buffers.texi @@ -1211,6 +1211,12 @@ swapped as well: the positions of point and mark, all the markers, the overlays, the text properties, the undo list, the value of the @code{enable-multibyte-characters} flag (@pxref{Text Representations, enable-multibyte-characters}), etc. + +@strong{Warning:} If this function is called from within a +@code{save-excursion} form, the current buffer will be set to +@var{buffer} upon leaving the form, since the marker used by +@code{save-excursion} to save the position and buffer will be swapped +as well. @end defun If you use @code{buffer-swap-text} on a file-visiting buffer, you diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi index a94d46e16849..6e83659f6350 100644 --- a/doc/lispref/commands.texi +++ b/doc/lispref/commands.texi @@ -1977,7 +1977,7 @@ in @code{event-modifiers}. For example: @defun mouse-movement-p object This function returns non-@code{nil} if @var{object} is a mouse movement -event. +event. @xref{Motion Events}. @end defun @defun event-convert-list list diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi index c943a6a29c19..f6cd0229c4d4 100644 --- a/doc/lispref/compile.texi +++ b/doc/lispref/compile.texi @@ -438,7 +438,7 @@ Emacs commands for operating on compiler output can be used on these messages. When an error is due to invalid syntax in the program, the byte -compiler might get confused about the errors' exact location. One way +compiler might get confused about the error's exact location. One way to investigate is to switch to the buffer @w{@file{ *Compiler Input*}}. (This buffer name starts with a space, so it does not show up in the Buffer Menu.) This buffer contains the program being diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index 3f48c458c023..947c54f9c35d 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi @@ -368,7 +368,7 @@ UPattern. For example: @item (app @var{function} @var{upattern}) Matches if @var{function} applied to the value being matched returns a value that matches @var{upattern}. This is like the @code{pred} -UPattern, except that it tests the result against @var{UPattern}, +UPattern, except that it tests the result against @var{upattern}, rather than against a boolean truth value. The @var{function} call can use one of the forms described below. @item (or @var{upattern1} @var{upattern2}@dots{}) @@ -805,6 +805,7 @@ The following piece of code demonstrates some important principles of working with iterators. @example +(require 'generator) (iter-defun my-iter (x) (iter-yield (1+ (iter-yield (1+ x)))) ;; Return normally @@ -1100,10 +1101,13 @@ These examples show typical uses of @code{error}: error symbol @code{error}, and a list containing the string returned by @code{format-message}. -In a format string containing single quotes, curved quotes @t{‘like -this’} and grave quotes @t{`like this'} work better than straight -quotes @t{'like this'}, as @code{error} typically formats every -straight quote as a curved closing quote. +The @code{text-quoting-style} variable controls what quotes are +generated; @xref{Keys in Documentation}. A call using a format like +@t{"Missing `%s'"} with grave accents and apostrophes typically +generates a message like @t{"Missing ‘foo’"} with matching curved +quotes. In contrast, a call using a format like @t{"Missing '%s'"} +with only apostrophes typically generates a message like @t{"Missing +’foo’"} with only closing curved quotes, an unusual style in English. @strong{Warning:} If you want to use your own string as an error message verbatim, don't just write @code{(error @var{string})}. If @var{string} diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi index 994c346331f9..4a6f7f2162bb 100644 --- a/doc/lispref/customize.texi +++ b/doc/lispref/customize.texi @@ -66,9 +66,12 @@ cause confusion.} @kindex group@r{, customization keyword} @item :group @var{group} -Put this customization item in group @var{group}. When you use -@code{:group} in a @code{defgroup}, it makes the new group a subgroup of -@var{group}. +Put this customization item in group @var{group}. If this keyword is +missing from a customization item, it'll be placed in the same group +that was last defined (in the current file). + +When you use @code{:group} in a @code{defgroup}, it makes the new +group a subgroup of @var{group}. If you use this keyword more than once, you can put a single item into more than one group. Displaying any of those groups will show this @@ -841,6 +844,7 @@ most general last. Here's an example of proper usage: This way, the special value @code{nil} is not treated like other symbols, and symbols are not treated like other Lisp expressions. +@cindex radio, customization types @item (radio @var{element-types}@dots{}) This is similar to @code{choice}, except that the choices are displayed using radio buttons rather than a menu. This has the advantage of @@ -936,6 +940,7 @@ The value must be a list and each element of the list must fit the type list of elements, with @samp{[INS]} and @samp{[DEL]} buttons for adding more elements or removing elements. +@cindex restricted-sexp, customization types @item (restricted-sexp :match-alternatives @var{criteria}) This is the most general composite type construct. The value may be any Lisp object that satisfies one of @var{criteria}. @var{criteria} @@ -1020,6 +1025,7 @@ and whose remaining arguments should be zero or more of @code{foo} and This matches values such as @code{(baz)}, @code{(baz foo)}, @code{(baz bar)} and @code{(baz foo bar)}. +@cindex choice, customization types When the element-type is a @code{choice}, you use @code{:inline} not in the @code{choice} itself, but in (some of) the alternatives of the @code{choice}. For example, to match a list which must start with a diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi index 98c47052cb0a..371934377a89 100644 --- a/doc/lispref/debugging.texi +++ b/doc/lispref/debugging.texi @@ -152,6 +152,13 @@ presence of @code{condition-case}. (To invoke the debugger, the error must still fulfill the criteria specified by @code{debug-on-error} and @code{debug-ignored-errors}.) +@cindex emacsclient, getting a backtrace +@cindex backtrace from emacsclient's @option{--eval} +For example, setting this variable is useful to get a backtrace from +code evaluated by emacsclient's @option{--eval} option. If Lisp code +evaluated by emacsclient signals an error while this variable is +non-@code{nil}, the backtrace will popup in the running Emacs. + @strong{Warning:} Setting this variable to non-@code{nil} may have annoying effects. Various parts of Emacs catch errors in the normal course of affairs, and you may not even realize that errors happen @@ -654,6 +661,8 @@ invocation. The advantage of using this variable rather than an ordinary global variable is that the data will never carry over to a subsequent command invocation. + +This variable is obsolete and will be removed in future versions. @end defvar @defun backtrace-frame frame-number @@ -840,8 +849,9 @@ called, followed by how much resource (processor or memory) it used in absolute and percentage times since profiling started. If a given line has a @samp{+} symbol at the left-hand side, you can expand that line by typing @key{RET}, in order to see the function(s) called by -the higher-level function. Pressing @key{RET} again will collapse -back to the original state. +the higher-level function. Use a prefix argument (@key{C-u RET}) to +see the whole call tree below a function. Pressing @key{RET} again +will collapse back to the original state. Press @kbd{j} or @kbd{mouse-2} to jump to the definition of a function. Press @kbd{d} to view a function's documentation. diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 010dcb2fd1f7..fbdc574c6585 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -265,10 +265,13 @@ properties, it is displayed with the specified faces (@pxref{Faces}). The string is also added to the @file{*Messages*} buffer, but without text properties (@pxref{Logging Messages}). -In a format string containing single quotes, curved quotes @t{‘like -this’} and grave quotes @t{`like this'} work better than straight -quotes @t{'like this'}, as @code{message} typically formats every -straight quote as a curved closing quote. +The @code{text-quoting-style} variable controls what quotes are +generated; @xref{Keys in Documentation}. A call using a format like +@t{"Missing `%s'"} with grave accents and apostrophes typically +generates a message like @t{"Missing ‘foo’"} with matching curved +quotes. In contrast, a call using a format like @t{"Missing '%s'"} +with only apostrophes typically generates a message like @t{"Missing +’foo’"} with only closing curved quotes, an unusual style in English. In batch mode, the message is printed to the standard error stream, followed by a newline. @@ -1550,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: @@ -1590,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}. @@ -1993,15 +2003,17 @@ newline. If the property value is @code{t}, the newline character has no effect on the displayed height of the line---the visible contents -alone determine the height. This is useful for tiling small images -(or image slices) without adding blank areas between the images. +alone determine the height. The @code{line-spacing} property, +described below, is also ignored in this case. This is useful for +tiling small images (or image slices) without adding blank areas +between the images. If the property value is a list of the form @code{(@var{height} @var{total})}, that adds extra space @emph{below} the display line. First Emacs uses @var{height} as a height spec to control extra space @emph{above} the line; then it adds enough space @emph{below} the line -to bring the total line height up to @var{total}. In this case, the -other ways to specify the line spacing are ignored. +to bring the total line height up to @var{total}. In this case, any +value of @code{line-spacing} property for the newline is ignored. @cindex height spec Any other kind of property value is a height spec, which translates @@ -2051,9 +2063,10 @@ overrides line spacings specified for the frame. @kindex line-spacing @r{(text property)} Finally, a newline can have a @code{line-spacing} text or overlay -property that overrides the default frame line spacing and the buffer -local @code{line-spacing} variable, for the display line ending in -that newline. +property that can enlarge the default frame line spacing and the +buffer local @code{line-spacing} variable: if its value is larger than +the buffer or frame defaults, that larger value is used instead, for +the display line ending in that newline. One way or another, these mechanisms specify a Lisp value for the spacing of each line. The value is a height spec, and it translates @@ -2535,7 +2548,7 @@ modifying the attributes of a named face. This function returns the value of the @var{attribute} attribute for @var{face} on @var{frame}. -If @var{frame} is @code{nil}, that means the selected frame +If @var{frame} is omitted or @code{nil}, that means the selected frame (@pxref{Input Focus}). If @var{frame} is @code{t}, this function returns the value of the specified attribute for newly-created frames (this is normally @code{unspecified}, unless you have specified some @@ -2631,8 +2644,8 @@ created frames. The following commands and functions mostly provide compatibility with old versions of Emacs. They work by calling -@code{set-face-attribute}. Values of @code{t} and @code{nil} for -their @var{frame} argument are handled just like +@code{set-face-attribute}. Values of @code{t} and @code{nil} (or +omitted) for their @var{frame} argument are handled just like @code{set-face-attribute} and @code{face-attribute}. The commands read their arguments using the minibuffer, if called interactively. @@ -2701,7 +2714,8 @@ name used for @var{character}. @defun face-foreground face &optional frame inherit @defunx face-background face &optional frame inherit These functions return the foreground color (or background color, -respectively) of face @var{face}, as a string. +respectively) of face @var{face}, as a string. If the color is +unspecified, they return @code{nil}. @end defun @defun face-stipple face &optional frame inherit @@ -3014,6 +3028,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 @@ -4164,12 +4179,12 @@ bar.) @var{horizontal-type} is either @code{bottom} or @code{nil} (which means no horizontal scroll bar). @end defun -@defun frame-scroll-bar-width &optional Lisp_Object &optional frame +@defun frame-scroll-bar-width &optional frame This function returns the width of vertical scroll bars of @var{frame} in pixels. @end defun -@defun frame-scroll-bar-height &optional Lisp_Object &optional frame +@defun frame-scroll-bar-height &optional frame This function returns the height of horizontal scroll bars of @var{frame} in pixels. @end defun @@ -5144,6 +5159,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 @@ -5820,7 +5841,7 @@ A string displayed by the Emacs tool-tip help system; by default, @item follow-link @kindex follow-link @r{(button property)} -The follow-link property, defining how a @key{Mouse-1} click behaves +The follow-link property, defining how a @key{mouse-1} click behaves on this button, @xref{Clickable Text}. @item button @@ -6007,7 +6028,7 @@ additionally available in the keymap stored in @code{button-buffer-map} as a parent keymap for its keymap. If the button has a non-@code{nil} @code{follow-link} property, and -@code{mouse-1-click-follows-link} is set, a quick @key{Mouse-1} click +@code{mouse-1-click-follows-link} is set, a quick @key{mouse-1} click will also activate the @code{push-button} command. @xref{Clickable Text}. @@ -6937,7 +6958,7 @@ Emacs is displaying the frame using X. Emacs is displaying the frame using native MS-Windows GUI. @item ns Emacs is displaying the frame using the Nextstep interface (used on -GNUstep and Mac OS X). +GNUstep and macOS). @item pc Emacs is displaying the frame using MS-DOS direct screen writes. @item nil diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index a3bff0b07acc..3297e5308ae8 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. diff --git a/doc/lispref/errors.texi b/doc/lispref/errors.texi index c2bab019274d..03aea4ef4451 100644 --- a/doc/lispref/errors.texi +++ b/doc/lispref/errors.texi @@ -190,8 +190,7 @@ The message is @samp{Symbol's value as variable is void}. @xref{Accessing Variables}. @item wrong-number-of-arguments -The message is @samp{Wrong number of arguments}. @xref{Classifying -Lists}. +The message is @samp{Wrong number of arguments}. @xref{Argument List}. @item wrong-type-argument The message is @samp{Wrong type argument}. @xref{Type Predicates}. diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi index 6b7ee19d5f39..85c80d76f737 100644 --- a/doc/lispref/files.texi +++ b/doc/lispref/files.texi @@ -1138,6 +1138,21 @@ compares the truenames of the two directories. If @var{dir} does not name an existing directory, the return value is @code{nil}. @end defun +@defun vc-responsible-backend file +This function determines the responsible VC backend of the given +@var{file}. For example, if @file{emacs.c} is a file tracked by Git, +@w{@code{(vc-responsible-backend "emacs.c")}} returns @samp{Git}. +Note that if @var{file} is a symbolic link, +@code{vc-responsible-backend} will not resolve it---the backend of the +symbolic link file itself is reported. To get the backend VC of the +file to which @var{file} refers, wrap @var{file} with a symbolic link +resolving function such as @code{file-chase-links}: + +@smallexample +(vc-responsible-backend (file-chase-links "emacs.c")) +@end smallexample +@end defun + @node File Attributes @subsection File Attributes @cindex file attributes @@ -2136,6 +2151,7 @@ function: @cindex file name abbreviations @cindex abbreviated file names +@vindex directory-abbrev-alist @defun abbreviate-file-name filename @anchor{abbreviate-file-name} This function returns an abbreviated form of @var{filename}. It diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index 15a9bd911ffc..ec344c726ce5 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi @@ -764,7 +764,7 @@ its size using the @code{height} and @code{width} parameters with sizes and positions. For all of these functions the argument @var{frame} must denote a live frame and defaults to the selected frame. -@defun frame-position &optional Lisp_Object &optional frame +@defun frame-position &optional frame This function returns the outer position (@pxref{Frame Layout}) of @var{frame} in pixels. The value is a cons giving the coordinates of the top left corner of the outer frame of @var{frame} relative to an @@ -772,9 +772,9 @@ origin at the position (0, 0) of the frame's display. On a text terminal frame both values are zero. @end defun -@defun set-frame-position frame X Y -This function sets the outer frame position of @var{frame} to @var{X} -and @var{Y}. The latter arguments specify pixels and normally count +@defun set-frame-position frame x y +This function sets the outer frame position of @var{frame} to @var{x} +and @var{y}. The latter arguments specify pixels and normally count from an origin at the position (0, 0) of @var{frame}'s display. A negative parameter value positions the right edge of the outer frame @@ -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 diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index a2e94c34b62e..bc04beeebcaf 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -318,7 +318,8 @@ stored as symbol function definitions to produce named functions Our simple sample function, @code{(lambda (a b c) (+ a b c))}, specifies three argument variables, so it must be called with three arguments: if you try to call it with only two arguments or four -arguments, you get a @code{wrong-number-of-arguments} error. +arguments, you get a @code{wrong-number-of-arguments} error +(@pxref{Errors}). It is often convenient to write a function that allows certain arguments to be omitted. For example, the function @code{substring} diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi index 0b8182c521ab..b945e438f551 100644 --- a/doc/lispref/help.texi +++ b/doc/lispref/help.texi @@ -335,10 +335,14 @@ specifies @var{mapvar}'s value as the keymap for any following @item ‘ @itemx ` (left single quotation mark and grave accent) both stand for a left quote. +This generates a left single quotation mark, an apostrophe, or a grave +accent depending on the value of @code{text-quoting-style}. @item ’ @itemx ' (right single quotation mark and apostrophe) both stand for a right quote. +This generates a right single quotation mark or an apostrophe +depending on the value of @code{text-quoting-style}. @item \= quotes the following character and is discarded; thus, @samp{\=`} puts @@ -362,6 +366,10 @@ this'} with grave accent and apostrophe, the standard style before Emacs version 25. The default value @code{nil} acts like @code{curve} if curved single quotes are displayable, and like @code{grave} otherwise. + +This variable can be used by experts on platforms that have problems +with curved quotes. As it is not intended for casual use, it is not a +user option. @end defvar @defun substitute-command-keys string diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi index 0ea30283d7d1..2641ad0b6aa0 100644 --- a/doc/lispref/keymaps.texi +++ b/doc/lispref/keymaps.texi @@ -194,10 +194,19 @@ explicitly bound to @code{nil} (see below). @item @var{char-table} If an element of a keymap is a char-table, it counts as holding bindings for all character events with no modifier bits -(@pxref{modifier bits}): element @var{n} is the binding for the -character with code @var{n}. This is a compact way to record lots of -bindings. A keymap with such a char-table is called a @dfn{full -keymap}. Other keymaps are called @dfn{sparse keymaps}. +(@pxref{modifier bits}): the element whose index is @var{c} is the +binding for the character @var{c}. This is a compact way to record +lots of bindings. A keymap with such a char-table is called a +@dfn{full keymap}. Other keymaps are called @dfn{sparse keymaps}. + +@item @var{vector} +This kind of element is similar to a char-table: the element whose +index is @var{c} is the binding for the character @var{c}. Since the +range of characters that can be bound this way is limited by the +vector size, and vector creation allocates space for all character +codes from 0 up, this format should not be used except for creating +menu keymaps (@pxref{Menu Keymaps}), where the bindings themselves +don't matter. @item @var{string} @cindex keymap prompt string @@ -1368,7 +1377,7 @@ default global map. The function @code{substitute-key-definition} scans a keymap for keys that have a certain binding and rebinds them with a different binding. Another feature which is cleaner and can often produce the -same results to remap one command into another (@pxref{Remapping +same results is to remap one command into another (@pxref{Remapping Commands}). @defun substitute-key-definition olddef newdef keymap &optional oldmap @@ -2605,8 +2614,8 @@ this is how you specify the image to display in the tool bar: @table @code @item :image @var{image} -@var{images} is either a single image specification or a vector of four -image specifications. If you use a vector of four, +@var{image} is either a single image specification (@pxref{Images}) or +a vector of four image specifications. If you use a vector of four, one of them is used, depending on circumstances: @table @asis diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi index c18c408209a3..dc4075dbab4d 100644 --- a/doc/lispref/lists.texi +++ b/doc/lispref/lists.texi @@ -1556,12 +1556,16 @@ keys may not be symbols: @end smallexample @end defun -@defun alist-get key value &optional default +@defun alist-get key alist &optional default remove This function is like @code{assq}, but instead of returning the entire -association for @var{key}, @code{(@var{key} . @var{value})}, it -returns just the @var{value}. It returns @var{default} if @var{key} -is not found in @var{alist}, defaulting to @code{nil} if @var{default} -is omitted. +association for @var{key} in @var{alist}, +@w{@code{(@var{key} . @var{value})}}, it returns just the @var{value}. +If @var{key} is not found in @var{alist}, it returns @var{default}. + +This is a generalized variable (@pxref{Generalized Variables}) that +can be used to change a value with @code{setf}. When using it to set +a value, optional argument @var{remove} non-@code{nil} means to remove +@var{key} from @var{alist} if the new value is @code{eql} to @var{default}. @end defun @defun rassq value alist diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi index 06900a49477e..1468603e5087 100644 --- a/doc/lispref/loading.texi +++ b/doc/lispref/loading.texi @@ -610,8 +610,8 @@ and @code{define-global-minor-mode}. @item Other definition types: @code{defcustom}, @code{defgroup}, @code{defclass} -(@pxref{Top,EIEIO,,eieio,EIEIO}), and @code{define-skeleton} (see the -commentary in @file{skeleton.el}). +(@pxref{Top,EIEIO,,eieio,EIEIO}), and @code{define-skeleton} +(@pxref{Top,Autotyping,,autotype,Autotyping}). @end table You can also use a magic comment to execute a form at build time @@ -848,8 +848,8 @@ loaded, into the current Emacs session. This means that the facilities associated with @var{feature} are or will be available for other Lisp programs. -The direct effect of calling @code{provide} is if not already in -@var{features} then to add @var{feature} to the front of that list and +The direct effect of calling @code{provide} is to add @var{feature} to +the front of @code{features} if it is not already in that list and call any @code{eval-after-load} code waiting for it (@pxref{Hooks for Loading}). The argument @var{feature} must be a symbol. @code{provide} returns @var{feature}. @@ -1089,11 +1089,12 @@ execution of the rest of @var{body}. @end defmac Normally, well-designed Lisp programs should not use -@code{eval-after-load}. If you need to examine and set the variables -defined in another library (those meant for outside use), you can do -it immediately---there is no need to wait until the library is loaded. -If you need to call functions defined by that library, you should load -the library, preferably with @code{require} (@pxref{Named Features}). +@code{with-eval-after-load}. If you need to examine and set the +variables defined in another library (those meant for outside use), +you can do it immediately---there is no need to wait until the library +is loaded. If you need to call functions defined by that library, you +should load the library, preferably with @code{require} (@pxref{Named +Features}). @node Dynamic Modules @section Emacs Dynamic Modules diff --git a/doc/lispref/macros.texi b/doc/lispref/macros.texi index 3f9db8ce3756..6472bd1b03af 100644 --- a/doc/lispref/macros.texi +++ b/doc/lispref/macros.texi @@ -594,6 +594,11 @@ calls to the macro. An indentation specification is written like this: (declare (indent @var{indent-spec})) @end example +@noindent +@cindex @code{lisp-indent-function} property +This results in the @code{lisp-indent-function} property being set on +the macro name. + @noindent Here are the possibilities for @var{indent-spec}: diff --git a/doc/lispref/markers.texi b/doc/lispref/markers.texi index 1c904666cb45..1b4d74fb2572 100644 --- a/doc/lispref/markers.texi +++ b/doc/lispref/markers.texi @@ -340,10 +340,10 @@ text is inserted at its position. If @var{type} is @code{nil}, This function reports the current insertion type of @var{marker}. @end defun -Most functions that create markers, without an argument allowing to -specify the insertion type, create them with insertion type -@code{nil}. Also, the mark has, by default, insertion type -@code{nil}. +All functions that create markers without accepting an argument that +specifies the insertion type, create them with insertion type +@code{nil} (@pxref{Creating Markers}). Also, the mark has, by +default, insertion type @code{nil}. @node Moving Markers @section Moving Marker Positions diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi index 6f41090ebea2..1fa2536db4ea 100644 --- a/doc/lispref/minibuf.texi +++ b/doc/lispref/minibuf.texi @@ -733,8 +733,8 @@ list contains elements of any other type, those are ignored. If @var{collection} is an obarray (@pxref{Creating Symbols}), the names of all symbols in the obarray form the set of permissible completions. -If @var{collection} is a hash table, then the keys that are strings -are the possible completions. Other keys are ignored. +If @var{collection} is a hash table, then the keys that are strings or +symbols are the possible completions. Other keys are ignored. You can also use a function as @var{collection}. Then the function is solely responsible for performing completion; @code{try-completion} diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index 52cc8f86bcf5..7bbb5e6f5836 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -794,10 +794,9 @@ if @var{parent} is @code{nil}. (Again, a @code{nil} value is @item :group If this is specified, the value should be the customization group for -this mode. (Not all major modes have one.) Only the (still -experimental and unadvertised) command @code{customize-mode} currently -uses this. @code{define-derived-mode} does @emph{not} automatically -define the specified customization group. +this mode. (Not all major modes have one.) The command +@code{customize-mode} uses this. @code{define-derived-mode} does +@emph{not} automatically define the specified customization group. @end table Here is a hypothetical example: @@ -899,7 +898,7 @@ follow these conventions: they may run the parent's mode hook too early, or fail to run @code{after-change-major-mode-hook}. If you encounter such a major mode, please correct it to follow these conventions. - When you defined a major mode using @code{define-derived-mode}, it + When you define a major mode using @code{define-derived-mode}, it automatically makes sure these conventions are followed. If you define a major mode ``by hand'', not using @code{define-derived-mode}, use the following functions to handle these conventions automatically. @@ -1048,7 +1047,7 @@ to invert the sort order. @defun tabulated-list-init-header This function computes and sets @code{header-line-format} for the Tabulated List buffer (@pxref{Header Lines}), and assigns a keymap to -the header line to allow sort entries by clicking on column headers. +the header line to allow sorting entries by clicking on column headers. Modes derived from Tabulated List mode should call this after setting the above variables (in particular, only after setting @@ -1912,7 +1911,8 @@ could have the same effects on the mode line if the value of @code{mode-line-format} is changed to use them. However, various parts of Emacs set these variables on the understanding that they will control parts of the mode line; therefore, practically speaking, it is essential -for the mode line to use them. +for the mode line to use them. Also see +@ref{Optional Mode Line,,, emacs, The GNU Emacs Manual}. @defvar mode-line-mule-info This variable holds the value of the mode line construct that displays @@ -1993,6 +1993,21 @@ with the major mode as: @samp{(Shell:run)}. Normally this variable is @code{nil}. @end defvar +@defvar mode-line-front-space +This variable is displayed at the front of the mode line. By default, +this construct is displayed right at the beginning of the mode line, +except that if there is a memory-full message, it is displayed first. +@end defvar + +@defvar mode-line-end-spaces +This variable is displayed at the end of the mode line. +@end defvar + +@defvar mode-line-misc-info +Mode line construct for miscellaneous information. By default, this +shows the information specified by @code{global-mode-string}. +@end defvar + @defvar minor-mode-alist @anchor{Definition of minor-mode-alist} This variable holds an association list whose elements specify how the @@ -2901,7 +2916,9 @@ This function removes @var{keywords} from @code{font-lock-keywords} for the current buffer or for major mode @var{mode}. As in @code{font-lock-add-keywords}, @var{mode} should be a major mode command name or @code{nil}. All the caveats and requirements for -@code{font-lock-add-keywords} apply here too. +@code{font-lock-add-keywords} apply here too. The argument +@var{keywords} must exactly match the one used by the corresponding +@code{font-lock-add-keywords}. @end defun For example, the following code adds two fontification patterns for C diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi index 9cf3b5750f2a..e4581b3d68e5 100644 --- a/doc/lispref/nonascii.texi +++ b/doc/lispref/nonascii.texi @@ -1034,8 +1034,7 @@ Unix convention, used on GNU and Unix systems, is to use the linefeed character (also called newline). The DOS convention, used on MS-Windows and MS-DOS systems, is to use a carriage-return and a linefeed at the end of a line. The Mac convention is to use just -carriage-return. (This was the convention used on the Macintosh -system prior to OS X.) +carriage-return. (This was the convention used in Classic Mac OS.) @cindex base coding system @cindex variant coding system diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index 5f189b984a32..9fa27113d049 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -155,9 +155,13 @@ It loads your abbrevs from the file specified by option @samp{--batch} was specified. @item -If @code{package-enable-at-startup} is non-@code{nil}, it calls the -function @code{package-initialize} to activate any optional Emacs Lisp -package that has been installed. @xref{Packaging Basics}. +It calls the function @code{package-initialize} to activate any +optional Emacs Lisp package that has been installed. @xref{Packaging +Basics}. However, Emacs doesn't initialize packages when +@code{package-enable-at-startup} is @code{nil} or when it's started +with one of the options @samp{-q}, @samp{-Q}, or @samp{--batch}. To +initialize packages in the latter case, @code{package-initialize} +should be called explicitly (e.g., via the @samp{--funcall} option). @vindex after-init-time @item @@ -884,7 +888,7 @@ Berkeley BSD and its variants. Cygwin, a Posix layer on top of MS-Windows. @item darwin -Darwin (Mac OS X). +Darwin (macOS). @item gnu The GNU system (using the GNU kernel, which consists of the HURD and Mach). @@ -1053,8 +1057,9 @@ value is a string, and does not include a directory name. @end defvar @defvar invocation-directory -This variable holds the directory from which the Emacs executable was -invoked, or @code{nil} if that directory cannot be determined. +This variable holds the directory in which the Emacs executable was +located when it was run, or @code{nil} if that directory cannot be +determined. @end defvar @defvar installation-directory @@ -1468,7 +1473,7 @@ corresponding time value. @defun format-time-string format-string &optional time zone This function converts @var{time} (or the current time, if -@var{time} is omitted) to a string according to +@var{time} is omitted or @code{nil}) to a string according to @var{format-string}. The conversion uses the time zone rule @var{zone}, which defaults to the current time zone rule. @xref{Time Zone Rules}. The argument @var{format-string} may contain @samp{%}-sequences which say to @@ -1495,6 +1500,12 @@ This stands for the day of month, zero-padded. This is a synonym for @samp{%m/%d/%y}. @item %e This stands for the day of month, blank-padded. +@item %F +This stands for the ISO 8601 date format, i.e., @samp{"%Y-%m-%d"}. +@item %g +This stands for the year corresponding to the ISO week within the century. +@item %G +This stands for the year corresponding to the ISO week. @item %h This is a synonym for @samp{%b}. @item %H @@ -1529,9 +1540,13 @@ This stands for the seconds (00--59). This stands for a tab character. @item %T This is a synonym for @samp{%H:%M:%S}. +@item %u +This stands for the numeric day of week (1--7). Monday is day 1. @item %U This stands for the week of the year (01--52), assuming that weeks start on Sunday. +@item %V +This stands for the week of the year according to ISO 8601. @item %w This stands for the numeric day of week (0--6). Sunday is day 0. @item %W @@ -1686,7 +1701,9 @@ interactively, it prints the duration in the echo area. @cindex calendrical computations These functions perform calendrical computations using time values -(@pxref{Time of Day}). +(@pxref{Time of Day}). A value of @code{nil} for any of their +time-value arguments stands for the current system time, and a single +integer number stands for the number of seconds since the epoch. @defun time-less-p t1 t2 This returns @code{t} if time value @var{t1} is less than time value @@ -1695,12 +1712,15 @@ This returns @code{t} if time value @var{t1} is less than time value @defun time-subtract t1 t2 This returns the time difference @var{t1} @minus{} @var{t2} between -two time values, as a time value. +two time values, as a time value. If you need the difference in units +of elapsed seconds, use @code{float-time} (@pxref{Time of Day, +float-time}) to convert the result into seconds. @end defun @defun time-add t1 t2 This returns the sum of two time values, as a time value. -One argument should represent a time difference rather than a point in time. +One argument should represent a time difference rather than a point in time, +either as a list or as a single number of elapsed seconds. Here is how to add a number of seconds to a time value: @example @@ -1723,10 +1743,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: diff --git a/doc/lispref/positions.texi b/doc/lispref/positions.texi index 1d748b87529b..b6133dc7e2d0 100644 --- a/doc/lispref/positions.texi +++ b/doc/lispref/positions.texi @@ -192,8 +192,9 @@ in the opposite direction. @subsection Motion by Words The functions for parsing words described below use the syntax table -to decide whether a given character is part of a word. @xref{Syntax -Tables}. +and @code{char-script-table} to decide whether a given character is +part of a word. @xref{Syntax Tables}, and see @ref{Character +Properties}. @deffn Command forward-word &optional count This function moves point forward @var{count} words (or backward if @@ -207,11 +208,13 @@ and then continue moving until the word ends. By default, characters that begin and end words, known as @dfn{word boundaries}, are defined by the current buffer's syntax table (@pxref{Syntax Class Table}), but modes can override that by setting up a suitable -@code{find-word-boundary-function-table}, described below. In any -case, this function cannot move point past the boundary of the -accessible portion of the buffer, or across a field boundary -(@pxref{Fields}). The most common case of a field boundary is the end -of the prompt in the minibuffer. +@code{find-word-boundary-function-table}, described below. Characters +that belong to different scripts (as defined by +@code{char-syntax-table}), also define a word boundary +(@pxref{Character Properties}). In any case, this function cannot +move point past the boundary of the accessible portion of the buffer, +or across a field boundary (@pxref{Fields}). The most common case of +a field boundary is the end of the prompt in the minibuffer. If it is possible to move @var{count} words, without being stopped prematurely by the buffer boundary or a field boundary, the value is diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi index f660b1593869..950dc9c6d495 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,16 @@ 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}; +@code{combine-and-quote-strings} is @emph{not} intended to protect +special characters from shell evaluation. @defun split-string-and-unquote string &optional separators This function splits @var{string} into substrings at matches for the @@ -326,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 @@ -341,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. @@ -505,17 +530,17 @@ 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 to pass 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 This function is like @code{call-process-shell-command}, but uses @code{process-file} internally. Depending on @code{default-directory}, @var{command} can be executed also on remote hosts. An old calling -convention allowed to pass any number of additional arguments after +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 @@ -560,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 @@ -628,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 @@ -649,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 @@ -676,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 @@ -692,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 @@ -832,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 @@ -881,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 @@ -895,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 @@ -906,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): @@ -942,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. @@ -951,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 @@ -978,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 @@ -1000,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 @@ -1013,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 @@ -1074,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 @@ -1138,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 @@ -1176,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 @@ -1217,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 @@ -1249,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 @@ -1281,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. @@ -1322,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 @@ -1381,6 +1482,58 @@ Killing the process's buffer deletes the process, which kills the subprocess with a @code{SIGHUP} signal (@pxref{Signals to Processes}). @end defun +If the process's buffer is displayed in a window, your Lisp program +may wish to tell the process the dimensions of that window, so that +the process could adapt its output to those dimensions, much as it +adapts to the screen dimensions. The following functions allow +communicating this kind of information to processes; however, not all +systems support the underlying functionality, so it is best to provide +fallbacks, e.g., via command-line arguments or environment variables. + +@defun set-process-window-size process height width +Tell @var{process} that its logical window size has dimensions +@var{width} by @var{height}, in character units. If this function +succeeds in communicating this information to the process, it returns +@code{t}; otherwise it returns @code{nil}. +@end defun + +When windows that display buffers associated with process change their +dimensions, the affected processes should be told about these changes. +By default, when the window configuration changes, Emacs will +automatically call @code{set-process-window-size} on behalf of every +process whose buffer is displayed in a window, passing it the smallest +dimensions of all the windows displaying the process's buffer. This +works via @code{window-configuration-change-hook} (@pxref{Window +Hooks}), which is told to invoke the function that is the value of +the variable @code{window-adjust-process-window-size-function} for +each process whose buffer is displayed in at least one window. You +can customize this behavior by setting the value of that variable. + +@defopt window-adjust-process-window-size-function +The value of this variable should be a function of two arguments: a +process and the list of windows displaying the process's buffer. When +the function is called, the process's buffer is the current buffer. +The function should return a cons cell @w{@code{(@var{width} +. @var{height})}} that describes the dimensions of the logical process +window to be passed via a call to @code{set-process-window-size}. The +function can also return @code{nil}, in which case Emacs will not call +@code{set-process-window-size} for this process. + +Emacs supplies two predefined values for this variable: +@code{window-adjust-process-window-size-smallest}, which returns the +smallest of all the dimensions of the windows that display a process's +buffer; and @code{window-adjust-process-window-size-largest}, which +returns the largest dimensions. For more complex strategies, write +your own function. + +This variable can be buffer-local. +@end defopt + +If the process has the @code{adjust-window-size-function} property +(@pxref{Process Information}), its value overrides the global and +buffer-local values of +@code{window-adjust-process-window-size-function}. + @node Filter Functions @subsection Process Filter Functions @cindex filter function @@ -1392,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 @@ -1415,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. @@ -1454,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 @@ -1778,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. @@ -2075,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/doc/lispref/searching.texi b/doc/lispref/searching.texi index 1243d720bc30..579460f32277 100644 --- a/doc/lispref/searching.texi +++ b/doc/lispref/searching.texi @@ -44,7 +44,7 @@ Searching and Replacement, emacs, The GNU Emacs Manual}. buffer is multibyte; they convert the search string to unibyte if the buffer is unibyte. @xref{Text Representations}. -@deffn Command search-forward string &optional limit noerror repeat +@deffn Command search-forward string &optional limit noerror count This function searches forward from point for an exact match for @var{string}. If successful, it sets point to the end of the occurrence found, and returns the new value of point. If no match is found, the @@ -95,24 +95,24 @@ The argument @var{noerror} only affects valid searches which fail to find a match. Invalid arguments cause errors regardless of @var{noerror}. -If @var{repeat} is a positive number @var{n}, it serves as a repeat -count: the search is repeated @var{n} times, each time starting at the -end of the previous time's match. If these successive searches -succeed, the function succeeds, moving point and returning its new -value. Otherwise the search fails, with results depending on the -value of @var{noerror}, as described above. If @var{repeat} is a -negative number -@var{n}, it serves as a repeat count of @var{n} for a -search in the opposite (backward) direction. +If @var{count} is a positive number @var{n}, the search is done +@var{n} times; each successive search starts at the end of the +previous match. If all these successive searches succeed, the +function call succeeds, moving point and returning its new value. +Otherwise the function call fails, with results depending on the value +of @var{noerror}, as described above. If @var{count} is a negative +number -@var{n}, the search is done @var{n} times in the opposite +(backward) direction. @end deffn -@deffn Command search-backward string &optional limit noerror repeat +@deffn Command search-backward string &optional limit noerror count This function searches backward from point for @var{string}. It is like @code{search-forward}, except that it searches backwards rather than forwards. Backward searches leave point at the beginning of the match. @end deffn -@deffn Command word-search-forward string &optional limit noerror repeat +@deffn Command word-search-forward string &optional limit noerror count This function searches forward from point for a word match for @var{string}. If it finds a match, it sets point to the end of the match found, and returns the new value of point. @@ -156,8 +156,10 @@ returns @code{nil} instead of signaling an error. If @var{noerror} is neither @code{nil} nor @code{t}, it moves point to @var{limit} (or the end of the accessible portion of the buffer) and returns @code{nil}. -If @var{repeat} is non-@code{nil}, then the search is repeated that many -times. Point is positioned at the end of the last match. +If @var{count} is a positive number, it specifies how many successive +occurrences to search for. Point is positioned at the end of the last +match. If @var{count} is a negative number, the search is backward +and point is positioned at the beginning of the last match. @findex word-search-regexp Internally, @code{word-search-forward} and related functions use the @@ -165,7 +167,7 @@ function @code{word-search-regexp} to convert @var{string} to a regular expression that ignores punctuation. @end deffn -@deffn Command word-search-forward-lax string &optional limit noerror repeat +@deffn Command word-search-forward-lax string &optional limit noerror count This command is identical to @code{word-search-forward}, except that the beginning or the end of @var{string} need not match a word boundary, unless @var{string} begins or ends in whitespace. @@ -173,14 +175,14 @@ For instance, searching for @samp{ball boy} matches @samp{ball boyee}, but does not match @samp{balls boy}. @end deffn -@deffn Command word-search-backward string &optional limit noerror repeat +@deffn Command word-search-backward string &optional limit noerror count This function searches backward from point for a word match to @var{string}. This function is just like @code{word-search-forward} except that it searches backward and normally leaves point at the beginning of the match. @end deffn -@deffn Command word-search-backward-lax string &optional limit noerror repeat +@deffn Command word-search-backward-lax string &optional limit noerror count This command is identical to @code{word-search-backward}, except that the beginning or the end of @var{string} need not match a word boundary, unless @var{string} begins or ends in whitespace. @@ -946,26 +948,46 @@ 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). +The optional argument @var{paren} can be any of the following: -This simplified definition of @code{regexp-opt} produces a -regular expression which is equivalent to the actual value -(but not as efficient): +@table @asis +@item 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. + +@item @code{words} +The resulting regexp is surrounded by @samp{\<\(} and @samp{\)\>}. + +@item @code{symbols} +The resulting regexp is surrounded by @samp{\_<\(} and @samp{\)\_>} +(this is often appropriate when matching programming-language +keywords and the like). + +@item non-@code{nil} +The resulting regexp is surrounded by @samp{\(} and @samp{\)}. + +@item @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. +@end table + +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 @@ -1005,7 +1027,7 @@ only the search functions useful in programs. The principal one is the buffer is multibyte; they convert the regular expression to unibyte if the buffer is unibyte. @xref{Text Representations}. -@deffn Command re-search-forward regexp &optional limit noerror repeat +@deffn Command re-search-forward regexp &optional limit noerror count This function searches forward in the current buffer for a string of text that is matched by the regular expression @var{regexp}. The function skips over any amount of text that is not matched by @@ -1014,14 +1036,12 @@ It returns the new value of point. If @var{limit} is non-@code{nil}, it must be a position in the current buffer. It specifies the upper bound to the search. No match -extending after that position is accepted. +extending after that position is accepted. If @var{limit} is omitted +or @code{nil}, it defaults to the end of the accessible portion of the +buffer. -If @var{repeat} is supplied, it must be a positive number; the search -is repeated that many times; each repetition starts at the end of the -previous match. If all these successive searches succeed, the search -succeeds, moving point and returning its new value. Otherwise the -search fails. What @code{re-search-forward} does when the search -fails depends on the value of @var{noerror}: +What @code{re-search-forward} does when the search fails depends on +the value of @var{noerror}: @table @asis @item @code{nil} @@ -1033,6 +1053,19 @@ Move point to @var{limit} (or the end of the accessible portion of the buffer) and return @code{nil}. @end table +The argument @var{noerror} only affects valid searches which fail to +find a match. Invalid arguments cause errors regardless of +@var{noerror}. + +If @var{count} is a positive number @var{n}, the search is done +@var{n} times; each successive search starts at the end of the +previous match. If all these successive searches succeed, the +function call succeeds, moving point and returning its new value. +Otherwise the function call fails, with results depending on the value +of @var{noerror}, as described above. If @var{count} is a negative +number -@var{n}, the search is done @var{n} times in the opposite +(backward) direction. + In the following example, point is initially before the @samp{T}. Evaluating the search call moves point to the end of that line (between the @samp{t} of @samp{hat} and the newline). @@ -1057,7 +1090,7 @@ comes back" twice. @end example @end deffn -@deffn Command re-search-backward regexp &optional limit noerror repeat +@deffn Command re-search-backward regexp &optional limit noerror count This function searches backward in the current buffer for a string of text that is matched by the regular expression @var{regexp}, leaving point at the beginning of the first text found. @@ -1228,13 +1261,13 @@ non-greedy repetition operators (@pxref{Regexp Special, non-greedy}). This is because POSIX backtracking conflicts with the semantics of non-greedy repetition. -@deffn Command posix-search-forward regexp &optional limit noerror repeat +@deffn Command posix-search-forward regexp &optional limit noerror count This is like @code{re-search-forward} except that it performs the full backtracking specified by the POSIX standard for regular expression matching. @end deffn -@deffn Command posix-search-backward regexp &optional limit noerror repeat +@deffn Command posix-search-backward regexp &optional limit noerror count This is like @code{re-search-backward} except that it performs the full backtracking specified by the POSIX standard for regular expression matching. diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi index a54ab104ab55..920399586c54 100644 --- a/doc/lispref/sequences.texi +++ b/doc/lispref/sequences.texi @@ -832,7 +832,7 @@ concatenation of @var{sequences}. @var{type} may be: @code{vector}, @example @group (seq-concatenate 'list '(1 2) '(3 4) [5 6]) -@result{} (1 2 3 5 6) +@result{} (1 2 3 4 5 6) @end group @group (seq-concatenate 'string "Hello " "world") diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi index 9d6613c522cf..3c764da4e2b8 100644 --- a/doc/lispref/strings.texi +++ b/doc/lispref/strings.texi @@ -503,22 +503,9 @@ the codeset part of the locale cannot be @code{"UTF-8"} on MS-Windows. If your system does not support a locale environment, this function behaves like @code{string-equal}. -Do @emph{not} use this function to compare file names for equality, only -for sorting them. -@end defun - -@defun string-prefix-p string1 string2 &optional ignore-case -This function returns non-@code{nil} if @var{string1} is a prefix of -@var{string2}; i.e., if @var{string2} starts with @var{string1}. If -the optional argument @var{ignore-case} is non-@code{nil}, the -comparison ignores case differences. -@end defun - -@defun string-suffix-p suffix string &optional ignore-case -This function returns non-@code{nil} if @var{suffix} is a suffix of -@var{string}; i.e., if @var{string} ends with @var{suffix}. If the -optional argument @var{ignore-case} is non-@code{nil}, the comparison -ignores case differences. +Do @emph{not} use this function to compare file names for equality, as +filesystems generally don't honor linguistic equivalence of strings +that collation implements. @end defun @cindex lexical comparison of strings @@ -660,7 +647,7 @@ The strings are compared by the numeric values of their characters. For instance, @var{str1} is considered less than @var{str2} if its first differing character has a smaller numeric value. If @var{ignore-case} is non-@code{nil}, characters are converted to -lower-case before comparing them. Unibyte strings are converted to +upper-case before comparing them. Unibyte strings are converted to multibyte for comparison (@pxref{Text Representations}), so that a unibyte string and its conversion to multibyte are always regarded as equal. @@ -677,7 +664,8 @@ specified portion) is less. This function works like @code{assoc}, except that @var{key} must be a string or symbol, and comparison is done using @code{compare-strings}. Symbols are converted to strings before testing. -If @var{case-fold} is non-@code{nil}, it ignores case differences. +If @var{case-fold} is non-@code{nil}, @var{key} and the elements of +@var{alist} are converted to upper-case before comparison. Unlike @code{assoc}, this function can also match elements of the alist that are strings or symbols rather than conses. In particular, @var{alist} can be a list of strings or symbols rather than an actual alist. @@ -834,8 +822,14 @@ if any. This function acts like @code{format}, except it also converts any curved single quotes in @var{string} as per the value of @code{text-quoting-style}, and treats grave accent (@t{`}) and -apostrophe (@t{'}) as if they were curved single quotes. @xref{Keys -in Documentation}. +apostrophe (@t{'}) as if they were curved single quotes. + +A format that quotes with grave accents and apostrophes @t{`like +this'} typically generates curved quotes @t{‘like this’}. In +contrast, a format that quotes with only apostrophes @t{'like this'} +typically generates two closing curved quotes @t{’like this’}, an +unusual style in English. @xref{Keys in Documentation}, for how the +@code{text-quoting-style} variable affects generated quotes. @end defun @cindex @samp{%} in format @@ -1044,8 +1038,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 diff --git a/doc/lispref/symbols.texi b/doc/lispref/symbols.texi index 8c1ec3d85e23..36a2795d1dd7 100644 --- a/doc/lispref/symbols.texi +++ b/doc/lispref/symbols.texi @@ -157,7 +157,7 @@ that cell can hold only one Lisp object at any given time. both as a variable (e.g., with @code{defvar}) and as a function or macro (e.g., with @code{defun}). Such definitions do not conflict. - These definition also act as guides for programming tools. For + These definitions also act as guides for programming tools. For example, the @kbd{C-h f} and @kbd{C-h v} commands create help buffers containing links to the relevant variable, function, or macro definitions. @xref{Name Help,,, emacs, The GNU Emacs Manual}. diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 1ad665f0e5b3..b6635ddb0a01 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. @@ -1376,10 +1378,10 @@ before executing each key sequence, so that each undo normally undoes the effects of one command. A few exceptional commands are @dfn{amalgamating}: these commands generally cause small changes to buffers, so with these a boundary is inserted only every 20th command, -allowing to undo them as a group. By default, commands +allowing the changes to be undone as a group. By default, the commands @code{self-insert-command}, which produces self-inserting input -characters (@pxref{Commands for Insertion}), and @code{delete-char} -which deletes characters (@pxref{Deletion}) are amalgamating. +characters (@pxref{Commands for Insertion}), and @code{delete-char}, +which deletes characters (@pxref{Deletion}), are amalgamating. Where a command affects the contents of several buffers, as may happen, for example, when a function on the @code{post-command-hook} affects a buffer other than the @code{current-buffer}, then @code{undo-boundary} @@ -2963,6 +2965,11 @@ construct each part with @code{propertize} and then combine them with @code{buffer-substring-no-properties}, which copies text from the buffer but does not copy its properties. +@findex with-silent-modifications + If you wish to add or remove text properties to a buffer without +marking the buffer as modified, you can wrap the calls above in the +@code{with-silent-modifications} macro. + @node Property Search @subsection Text Property Search Functions @cindex searching text properties @@ -3357,12 +3364,14 @@ the beginning of the @code{display} property or at @cindex cursor position for @code{display} properties and overlays When the buffer has many overlay strings (e.g., @pxref{Overlay -Properties, before-string}) or @code{display} properties that are -strings, it is a good idea to use the @code{cursor} property on these -strings to cue the Emacs display about the places where to put the -cursor while traversing these strings. This directly communicates to -the display engine where the Lisp program wants to put the cursor, or -where the user would expect the cursor. +Properties, before-string}) that conceal some of the buffer text or +@code{display} properties that are strings, it is a good idea to use +the @code{cursor} property on these strings to cue the Emacs display +about the places where to put the cursor while traversing these +strings. This directly communicates to the display engine where the +Lisp program wants to put the cursor, or where the user would expect +the cursor, when point is located on some buffer position that is +``covered'' by the display or overlay string. @item pointer @kindex pointer @r{(text property)} @@ -3707,7 +3716,7 @@ properties. For simplicity, we will refer to the clickable text as a Implementing a link involves three separate steps: (1) indicating clickability when the mouse moves over the link; (2) making @key{RET} -or @kbd{Mouse-2} on that link do something; and (3) setting up a +or @kbd{mouse-2} on that link do something; and (3) setting up a @code{follow-link} condition so that the link obeys @code{mouse-1-click-follows-link}. @@ -3729,10 +3738,10 @@ names are clickable: help-echo "mouse-2: visit this file in other window"))) @end smallexample - To make the link clickable, bind @key{RET} and @kbd{Mouse-2} to + To make the link clickable, bind @key{RET} and @kbd{mouse-2} to commands that perform the desired action. Each command should check to see whether it was called on a link, and act accordingly. For -instance, Dired's major mode keymap binds @kbd{Mouse-2} to the +instance, Dired's major mode keymap binds @kbd{mouse-2} to the following command: @smallexample @@ -3775,12 +3784,12 @@ bind it within the link text, using the @code{keymap} text property @noindent With this method, you can easily define different commands for different links. Furthermore, the global definition of @key{RET} and -@kbd{Mouse-2} remain available for the rest of the text in the buffer. +@kbd{mouse-2} remain available for the rest of the text in the buffer. @vindex mouse-1-click-follows-link - The basic Emacs command for clicking on links is @kbd{Mouse-2}. + The basic Emacs command for clicking on links is @kbd{mouse-2}. However, for compatibility with other graphical applications, Emacs -also recognizes @kbd{Mouse-1} clicks on links, provided the user +also recognizes @kbd{mouse-1} clicks on links, provided the user clicks on the link quickly without moving the mouse. This behavior is controlled by the user option @code{mouse-1-click-follows-link}. @xref{Mouse References,,, emacs, The GNU Emacs Manual}. @@ -3794,9 +3803,9 @@ mode keymap or a local keymap specified via the @code{keymap} text property). The value of the @code{follow-link} property, or the binding for the @code{follow-link} event, acts as a condition for the link action. This condition tells Emacs two things: the -circumstances under which a @kbd{Mouse-1} click should be regarded as +circumstances under which a @kbd{mouse-1} click should be regarded as occurring inside the link, and how to compute an action code -that says what to translate the @kbd{Mouse-1} click into. The link +that says what to translate the @kbd{mouse-1} click into. The link action condition can be one of the following: @table @asis @@ -3805,7 +3814,7 @@ If the condition is the symbol @code{mouse-face}, a position is inside a link if there is a non-@code{nil} @code{mouse-face} property at that position. The action code is always @code{t}. -For example, here is how Info mode handles @key{Mouse-1}: +For example, here is how Info mode handles @key{mouse-1}: @smallexample (define-key Info-mode-map [follow-link] 'mouse-face) @@ -3817,7 +3826,7 @@ is inside a link if @code{(@var{func} @var{pos})} evaluates to non-@code{nil}. The value returned by @var{func} serves as the action code. -For example, here is how pcvs enables @kbd{Mouse-1} to follow links on +For example, here is how pcvs enables @kbd{mouse-1} to follow links on file names only: @smallexample @@ -3835,27 +3844,27 @@ to the entire buffer). @end table @noindent -The action code tells @kbd{Mouse-1} how to follow the link: +The action code tells @kbd{mouse-1} how to follow the link: @table @asis @item a string or vector -If the action code is a string or vector, the @kbd{Mouse-1} event is +If the action code is a string or vector, the @kbd{mouse-1} event is translated into the first element of the string or vector; i.e., the -action of the @kbd{Mouse-1} click is the local or global binding of +action of the @kbd{mouse-1} click is the local or global binding of that character or symbol. Thus, if the action code is @code{"foo"}, -@kbd{Mouse-1} translates into @kbd{f}. If it is @code{[foo]}, -@kbd{Mouse-1} translates into @key{foo}. +@kbd{mouse-1} translates into @kbd{f}. If it is @code{[foo]}, +@kbd{mouse-1} translates into @key{foo}. @item anything else -For any other non-@code{nil} action code, the @kbd{Mouse-1} event is -translated into a @kbd{Mouse-2} event at the same position. +For any other non-@code{nil} action code, the @kbd{mouse-1} event is +translated into a @kbd{mouse-2} event at the same position. @end table - To define @kbd{Mouse-1} to activate a button defined with + To define @kbd{mouse-1} to activate a button defined with @code{define-button-type}, give the button a @code{follow-link} property. The property value should be a link action condition, as described above. @xref{Buttons}. For example, here is how Help mode -handles @kbd{Mouse-1}: +handles @kbd{mouse-1}: @smallexample (define-button-type 'help-xref @@ -3863,11 +3872,11 @@ handles @kbd{Mouse-1}: 'action #'help-button-action) @end smallexample - To define @kbd{Mouse-1} on a widget defined with + To define @kbd{mouse-1} on a widget defined with @code{define-widget}, give the widget a @code{:follow-link} property. The property value should be a link action condition, as described above. For example, here is how the @code{link} widget specifies that -a @key{Mouse-1} click shall be translated to @key{RET}: +a @key{mouse-1} click shall be translated to @key{RET}: @smallexample (define-widget 'link 'item @@ -4563,7 +4572,7 @@ Return all nodes in @var{dom} that have IDs that match @var{match}, which is a regular expression. @item dom-strings @var{dom} -Return all strings in @var{DOM}. +Return all strings in @var{dom}. @end table @@ -4671,10 +4680,10 @@ group you start for any given buffer should be the last one finished. @cindex change hooks @cindex hooks for text changes - These hook variables let you arrange to take notice of all changes in -all buffers (or in a particular buffer, if you make them buffer-local). -See also @ref{Special Properties}, for how to detect changes to specific -parts of the text. + These hook variables let you arrange to take notice of changes in +buffers (or in a particular buffer, if you make them buffer-local). +See also @ref{Special Properties}, for how to detect changes to +specific parts of the text. The functions you use in these hooks should save and restore the match data if they do anything that uses regular expressions; otherwise, they @@ -4682,18 +4691,20 @@ will interfere in bizarre ways with the editing operations that call them. @defvar before-change-functions -This variable holds a list of functions to call before any buffer -modification. Each function gets two arguments, the beginning and end -of the region that is about to change, represented as integers. The -buffer that is about to change is always the current buffer. +This variable holds a list of functions to call when Emacs is about to +modify a buffer. Each function gets two arguments, the beginning and +end of the region that is about to change, represented as integers. +The buffer that is about to change is always the current buffer when +the function is called. @end defvar @defvar after-change-functions -This variable holds a list of functions to call after any buffer -modification. Each function receives three arguments: the beginning -and end of the region just changed, and the length of the text that -existed before the change. All three arguments are integers. The -buffer that has been changed is always the current buffer. +This variable holds a list of functions to call after Emacs modifies a +buffer. Each function receives three arguments: the beginning and end +of the region just changed, and the length of the text that existed +before the change. All three arguments are integers. The buffer that +has been changed is always the current buffer when the function is +called. The length of the old text is the difference between the buffer positions before and after that text as it was before the change. As @@ -4701,8 +4712,19 @@ for the changed text, its length is simply the difference between the first two arguments. @end defvar - Output of messages into the @file{*Messages*} buffer does not -call these functions. + Output of messages into the @file{*Messages*} buffer does not call +these functions, and neither do certain internal buffer changes, such +as changes in buffers created by Emacs internally for certain jobs, +that should not be visible to Lisp programs. + + Do @emph{not} expect the before-change hooks and the after-change +hooks be called in balanced pairs around each buffer change. Also +don't expect the before-change hooks to be called for every chunk of +text Emacs is about to delete. These hooks are provided on the +assumption that Lisp programs will use either before- or the +after-change hooks, but not both, and the boundaries of the region +where the changes happen might include more than just the actual +changed text, or even lump together several changes done piecemeal. @defmac combine-after-change-calls body@dots{} The macro executes @var{body} normally, but arranges to call the diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi index 0a3d244157eb..1ba9ad9701f1 100644 --- a/doc/lispref/tips.texi +++ b/doc/lispref/tips.texi @@ -165,10 +165,10 @@ follow the naming conventions for hooks. @xref{Hooks}. @item @cindex unloading packages, preparing for If loading the file adds functions to hooks, define a function -@code{@var{feature}-unload-hook}, where @var{feature} is the name of -the feature the package provides, and make it undo any such changes. -Using @code{unload-feature} to unload the file will run this function. -@xref{Unloading}. +@code{@var{feature}-unload-function}, where @var{feature} is the name +of the feature the package provides, and make it undo any such +changes. Using @code{unload-feature} to unload the file will run this +function. @xref{Unloading}. @item It is a bad idea to define aliases for the Emacs primitives. Normally @@ -200,12 +200,12 @@ It is likewise a bad idea for one Lisp package to advise a function in another Lisp package (@pxref{Advising Functions}). @item -Avoid using @code{eval-after-load} in libraries and packages -(@pxref{Hooks for Loading}). This feature is meant for personal -customizations; using it in a Lisp program is unclean, because it -modifies the behavior of another Lisp file in a way that's not visible -in that file. This is an obstacle for debugging, much like advising a -function in the other package. +Avoid using @code{eval-after-load} and @code{with-eval-after-load} in +libraries and packages (@pxref{Hooks for Loading}). This feature is +meant for personal customizations; using it in a Lisp program is +unclean, because it modifies the behavior of another Lisp file in a +way that's not visible in that file. This is an obstacle for +debugging, much like advising a function in the other package. @item If a file does replace any of the standard functions or library diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index 6c53e9b6cca1..a2d64815d944 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi @@ -974,7 +974,7 @@ itself. @cindex lexical environment Here is how lexical binding works. Each binding construct defines a -@dfn{lexical environment}, specifying the symbols that are bound +@dfn{lexical environment}, specifying the variables that are bound within the construct and their local values. When the Lisp evaluator wants the current value of a variable, it looks first in the lexical environment; if the variable is not specified in there, it looks in @@ -1032,11 +1032,13 @@ lives on even after the @code{let} binding construct has exited. Each time we evaluate the closure, it increments @code{x}, using the binding of @code{x} in that lexical environment. - Note that functions like @code{symbol-value}, @code{boundp}, and -@code{set} only retrieve or modify a variable's dynamic binding -(i.e., the contents of its symbol's value cell). Also, the code in -the body of a @code{defun} or @code{defmacro} cannot refer to -surrounding lexical variables. + Note that unlike dynamic variables which are tied to the symbol +object itself, the relationship between lexical variables and symbols +is only present in the interpreter (or compiler). Therefore, +functions which take a symbol argument (like @code{symbol-value}, +@code{boundp}, and @code{set}) can only retrieve or modify a +variable's dynamic binding (i.e., the contents of its symbol's value +cell). @node Using Lexical Binding @subsection Using Lexical Binding diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 0665eb9098db..042e0cc35b67 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -549,7 +549,7 @@ children. @cindex pixel width of a window @cindex total pixel width of a window -@defun window-pixel-width &optional Lisp_Object &optional window +@defun window-pixel-width &optional window This function returns the width of window @var{window} in pixels. @var{window} must be a valid window and defaults to the selected one. @@ -1602,9 +1602,9 @@ window or too small to ordinarily split. Furthermore, subsequently resizing or deleting @var{window} may resize all other windows in its combination. -The default is @code{nil}. Other values are reserved for future use. -The value of this variable is ignored when -@code{window-combination-limit} is non-@code{nil}. +The default is @code{nil}. Other values are reserved for future use. A +specific split operation may ignore the value of this variable if it is +affected by a non-@code{nil} value of @code{window-combination-limit}. @end defopt To illustrate the effect of @code{window-combination-resize}, consider @@ -2259,7 +2259,7 @@ display in. These steps are described by means of @dfn{display actions}, which have the form @code{(@var{function} . @var{alist})}. Here, @var{function} is either a function or a list of functions, which we refer to as @dfn{action functions}; @var{alist} is an -association list, which we refer to as @dfn{action alists}. +association list, which we refer to as an @dfn{action alist}. An action function accepts two arguments: the buffer to display and an action alist. It attempts to display the buffer in some window, @@ -3999,14 +3999,14 @@ This function returns the pixel edges of @var{window}'s body. Calling the origin of the display screen rather than that of the frame: @defun window-absolute-pixel-edges &optional window -This function returns the pixel coordinates of @var{WINDOW} relative to +This function returns the pixel coordinates of @var{window} relative to an origin at (0, 0) of the display of @var{window}'s frame. Calling @code{(window-absolute-pixel-edges)} is equivalent to calling @code{(window-edges window nil t t)}, see above. @end defun @defun window-absolute-body-pixel-edges &optional window -This function returns the pixel coordinates of @var{WINDOW}'s body +This function returns the pixel coordinates of @var{window}'s body relative to an origin at (0, 0) of the display of @var{window}'s frame. Calling @code{(window-absolute-body-pixel-edges window)} is equivalent to calling @code{(window-edges window t t t)}, see above. @@ -4349,6 +4349,27 @@ window when it deletes the window passed to it as argument. The fourth element is the buffer whose display caused the creation of this parameter. @code{quit-restore-window} deletes the specified window only if it still shows that buffer. + +@item @code{min-margins} +The value of this parameter is a cons cell whose @sc{car} and @sc{cdr}, +if non-@code{nil}, specify the minimum values (in columns) for the left +and right margin of this window. When present, Emacs will use these +values instead of the actual margin widths for determining whether a +window can be split or shrunk horizontally. + +Emacs never auto-adjusts the margins of any window after splitting or +resizing it. It is the sole responsibility of any application setting +this parameter to adjust the margins of this window as well as those of +any new window that inherits this window's margins due to a split. +Both @code{window-configuration-change-hook} and +@code{window-size-change-functions} (@pxref{Window Hooks}) should be +employed for this purpose. + +This parameter was introduced in Emacs version 25.1 to support +applications that use large margins to center buffer text within a +window and should be used, with due care, exclusively by those +applications. It might be replaced by an improved solution in future +versions of Emacs. @end table There are additional parameters @code{window-atom} and @code{window-side}; diff --git a/doc/misc/ChangeLog.1 b/doc/misc/ChangeLog.1 index eb16d4ac5657..93aacb521a99 100644 --- a/doc/misc/ChangeLog.1 +++ b/doc/misc/ChangeLog.1 @@ -5331,7 +5331,7 @@ 2010-07-09 Michael Albinus - * dbus.texi (Top): Introduce Index. Emphasize "nil" whereever + * dbus.texi (Top): Introduce Index. Emphasize "nil" wherever forgotten. (Type Conversion): Precise conversion of natural numbers. (Errors and Events): Add "debugging" to concept index. Add variable diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index 459369ed9c46..2d95fb824fc3 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -2553,7 +2553,9 @@ for C code in GNU programs. @item k&r @cindex K&R style -The classic Kernighan and Ritchie style for C code. +The classic Kernighan and Ritchie style for C code. If you're looking +for the style used in the 2nd edition of their book ``The C +Programming Language'', then check out the @code{stroustrup} style. @item bsd @cindex BSD style @@ -3541,10 +3543,11 @@ use, add this function to the front of the @example (defun c-semi&comma-no-newlines-before-nonblanks () (save-excursion - (if (and (eq last-command-char ?\;) - (zerop (forward-line 1)) - (not (looking-at "^[ \t]*$"))) - 'stop + (if (and (= (c-last-command-char) ?\;) + (zerop (forward-line 1)) + (bolp) ; forward-line has funny behavior at eob. + (not (looking-at "^[ \t]*$"))) + 'stop nil))) @end example @end defun diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index 572124d452d0..c62fa727c105 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi @@ -148,6 +148,11 @@ the beginning: You may wish to add such a statement to your init file, if you make frequent use of features from this package. +Code that only uses macros from this package can enclose the above in +@code{eval-when-compile}. Internally, this library is divided into +several files, @pxref{Organization}. Your code should only ever load +the main @file{cl-lib} file, which will load the others as needed. + @node Organization @section Organization @@ -3364,7 +3369,7 @@ was @code{nil} for all elements. @defun cl-notevery predicate seq &rest more-seqs This function calls @var{predicate} on each element of the sequence(s) in turn; it returns a non-@code{nil} value as soon as @var{predicate} -returns @code{nil} for any element, or @code{t} if the predicate was +returns @code{nil} for any element, or @code{nil} if the predicate was true for all elements. @end defun @@ -4501,8 +4506,9 @@ referenced by @code{cl-return} or @code{cl-return-from} inside the block. @appendix Common Lisp Compatibility @noindent -The following is a list of all known incompatibilities between this -package and Common Lisp as documented in Steele (2nd edition). +The following is a list of some of the most important +incompatibilities between this package and Common Lisp as documented +in Steele (2nd edition). The word @code{cl-defun} is required instead of @code{defun} in order to use extended Common Lisp argument lists in a function. Likewise, diff --git a/doc/misc/ebrowse.texi b/doc/misc/ebrowse.texi index 28fa42b33ef6..816cb5625553 100644 --- a/doc/misc/ebrowse.texi +++ b/doc/misc/ebrowse.texi @@ -421,9 +421,9 @@ regions in the buffer. Please notice the help strings in the echo area when the mouse moves over a sensitive region. @cindex context menu -A click with @kbd{Mouse-3} on a mouse-sensitive region opens a context +A click with @kbd{mouse-3} on a mouse-sensitive region opens a context menu. In addition to this, each buffer also has a buffer-specific menu -that is opened with a click with @kbd{Mouse-3} somewhere in the buffer +that is opened with a click with @kbd{mouse-3} somewhere in the buffer where no highlight is displayed. @@ -488,7 +488,7 @@ editing. @end table The same functionality is available from the menu opened with -@kbd{Mouse-3} on the class name. +@kbd{mouse-3} on the class name. @@ -551,7 +551,7 @@ Display a list of types. @end table These lists are also available from the class' context menu invoked with -@kbd{Mouse-3} on the class name. +@kbd{mouse-3} on the class name. @@ -898,7 +898,7 @@ You can install a hook function to perform actions after a member or class declaration or definition has been found, or when it is not found. All the commands described above can also be found in the context menu -displayed when clicking @kbd{Mouse-2} on a member name. +displayed when clicking @kbd{mouse-2} on a member name. diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi index 1fa464920804..9efe0e73c5c7 100644 --- a/doc/misc/efaq.texi +++ b/doc/misc/efaq.texi @@ -931,6 +931,7 @@ status of its latest version. @menu * Origin of the term Emacs:: * Latest version of Emacs:: +* New in Emacs 25:: * New in Emacs 24:: * New in Emacs 23:: * New in Emacs 22:: @@ -977,9 +978,9 @@ conventions}). @cindex Bazaar repository, Emacs Emacs @value{EMACSVER} is the current version as of this writing. A version -number with two components (e.g., @samp{22.1}) indicates a released +number with two components (e.g., @samp{24.5}) indicates a released version; three components indicate a development -version (e.g., @samp{23.0.50} is what will eventually become @samp{23.1}). +version (e.g., @samp{26.0.50} is what will eventually become @samp{26.1}). Emacs is under active development, hosted at @uref{http://savannah.gnu.org/projects/emacs/, Savannah}. @@ -998,6 +999,106 @@ Emacs, type @kbd{C-h C-n} (@kbd{M-x view-emacs-news}). As of Emacs 22, you can give this command a prefix argument to read about which features were new in older versions. +@node New in Emacs 25 +@section What is different about Emacs 25? +@cindex Differences between Emacs 24 and Emacs 25 +@cindex Emacs 25, new features in + +@itemize +@cindex xwidgets +@item +Emacs can now embed native widgets inside Emacs buffers, if you have +gtk3 and webkitgtk3 installed. E.g., to access the embedded webkit +browser widget, type @kbd{M-x xwidget-webkit-browse-url}. + +@cindex loadable modules +@item +Emacs can now dynamically load external modules compiled as shared +libraries. + +@cindex Unicode characters, typing easily +@item +@kbd{C-x 8} has new shorthands for several popular characters, type +@kbd{C-x 8 C-h} to list shorthands. + +@cindex automatic display of Lisp APIs +@item +A new minor mode @code{global-eldoc-mode} is enabled by default, and +shows in the echo area or in the mode line the argument list of the +Emacs Lisp form at point. + +@cindex pasting text on text terminals +@cindex bracketed paste mode +@item +On text terminals that support the ``bracketed paste mode'' EMacs now +uses that mode by default. This mode allows Emacs to distinguish +between pasted text and text typed by the user. + +@cindex Unicode 9.0.0 +@item +Emacs 25 comes with data files imported from the latest Unicode +Standard version 9.0.0. + +@cindex bidirectional editing +@item +The support for bidirectional editing was updated to include all the +features mandated by the latest Unicode Standard version 9.0.0. + +@cindex character folding in searches +@item +Search command can now perform character folding in matches. This is +analogous to case folding, but instead of disregarding case variants, +it disregards wider classes of distinctions between similar +characters, such as matching different variants of double quote +characters, ignoring diacritics, etc. + +@cindex eww +@item +The Emacs Web Browser EWW was extended to render text using +variable-pitch fonts, and got other new features. + +@cindex rmail, and HTML mails +@item +Rmail can now render HTML mail messages, if Emacs is built with +libxml2 or if you have the Lynx browser installed. + +@cindex support for push commands in VC +@item +VC now has basic support for @code{push} commands, implemented for +Bzr, Git, and Hg. + +@cindex hide-ifdef, C/C@t{++} expressions in macros +@item +Hide-IfDef mode now support full C/C@t{++} expressions in macros, +macro argument expansion, interactive macro evaluation and automatic +scanning of @code{#define}d symbols. + +@cindex xref +@item +New package Xref replaces Etags's front-end and UI. Xref provides a +generic framework and new commands to find and move to definitions of +functions, macros, data structures etc., as well as go back to the +location where you were before moving to a definition. It supersedes +and obsoletes many Etags commands, while still using the etags.el code +that reads the TAGS tables as one of its back-ends. As result, the +popular key bindings @kbd{M-.} and @kbd{M-,} have been changed to +invoke Xref commands. + +@cindex project +@item +The new package Project provides generic infrastructure for dealing +with projects. + +@cindex horizontal scroll bars +@item +Emacs can now draw horizontal scroll bars on some platforms that +provide toolkit scroll bars, namely Gtk+, Lucid, Motif and Windows. + +@end itemize + +Consult the Emacs @file{NEWS} file (@kbd{C-h n}) for the full list of +changes in Emacs 25. + @node New in Emacs 24 @section What is different about Emacs 24? @cindex Differences between Emacs 23 and Emacs 24 @@ -1105,7 +1206,7 @@ Emacs can be started as a daemon in the background. @cindex NeXTstep port @cindex GNUstep port -@cindex Mac OS X Cocoa +@cindex macOS Cocoa @item There is a new NeXTstep port of Emacs. This supports GNUstep and Mac OS X (via the Cocoa libraries). The Carbon port of Emacs, which supported @@ -2290,7 +2391,7 @@ is actually typical for regexp syntax.) @cindex Recursive search/replace operations Dired mode (@kbd{M-x dired @key{RET}}, or @kbd{C-x d}) supports the -command @code{dired-do-query-replace-regexp} (@kbd{Q}), which allows +command @code{dired-do-find-regexp-and-replace} (@kbd{Q}), which allows users to replace regular expressions in multiple files. You can use this command to perform search/replace operations on @@ -2315,7 +2416,7 @@ To accept all replacements in each file, hit @kbd{!}. Another way to do the same thing is to use the ``tags'' feature of Emacs: it includes the command @code{tags-query-replace} which performs a query-replace across all the files mentioned in the @file{TAGS} file. -@xref{Tags Search,,, emacs, The GNU Emacs Manual}. +@xref{Identifier Search,,, emacs, The GNU Emacs Manual}. @node Documentation for etags @section Where is the documentation for @code{etags}? @@ -2408,7 +2509,7 @@ error messages, inserts them into a special buffer called the source. Type @kbd{C-x `} to step through the offending lines one by one (starting with Emacs 22, you can also use @kbd{M-g M-p} and @kbd{M-g M-n} to go to the previous and next matches directly). Click -@kbd{Mouse-2} or press @key{RET} on a message text in the +@kbd{mouse-2} or press @key{RET} on a message text in the @file{*compilation*} buffer to go to the line whose number is mentioned in that message. @@ -3240,7 +3341,7 @@ problem (@pxref{Reporting bugs}). * Emacs for MS-DOS:: * Emacs for MS-Windows:: * Emacs for GNUstep:: -* Emacs for Mac OS X:: +* Emacs for macOS:: @end menu @node Finding Emacs on the Internet @@ -3460,13 +3561,13 @@ For MS-DOS, @pxref{Emacs for MS-DOS}. Beginning with version 23.1, Emacs supports GNUstep natively. See the file @file{nextstep/INSTALL} in the distribution. -@node Emacs for Mac OS X -@section Where can I get Emacs for Mac OS X? +@node Emacs for macOS +@section Where can I get Emacs for macOS? @cindex Apple computers, Emacs for @cindex Macintosh, Emacs for -@cindex Mac OS X, Emacs for +@cindex macOS, Emacs for -Beginning with version 22.1, Emacs supports Mac OS X natively. +Beginning with version 22.1, Emacs supports macOS natively. See the file @file{nextstep/INSTALL} in the distribution. @c ------------------------------------------------------------ @@ -3888,7 +3989,7 @@ is how to make @kbd{H-M-RIGHT} move forward a word: Not all modifiers are permitted in all situations. @key{Hyper}, @key{Super}, and @key{Alt} are not available on Unix character terminals. Non-@acronym{ASCII} keys and mouse events (e.g., @kbd{C-=} and -@kbd{Mouse-1}) also fall under this category. +@kbd{mouse-1}) also fall under this category. @end itemize diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi index c9c4b7c2a2fa..4d68246bba4b 100644 --- a/doc/misc/emacs-mime.texi +++ b/doc/misc/emacs-mime.texi @@ -1554,7 +1554,7 @@ Here's a bunch of time/date/second/day examples: (time-less-p '(13818 19266) '(13818 19145)) @result{} nil -(subtract-time '(13818 19266) '(13818 19145)) +(time-subtract '(13818 19266) '(13818 19145)) @result{} (0 121) (days-between "Sat Sep 12 12:21:54 1998 +0200" @@ -1632,14 +1632,14 @@ return a ``zero'' time. @item time-less-p Take two times and say whether the first time is less (i.e., earlier) -than the second time. +than the second time. (This is a built-in function.) @item time-since Take a time and return a time saying how long it was since that time. -@item subtract-time +@item time-subtract Take two times and subtract the second from the first. I.e., return -the time between the two times. +the time between the two times. (This is a built-in function.) @item days-between Take two days and return the number of days between those two days. diff --git a/doc/misc/eudc.texi b/doc/misc/eudc.texi index da63975c2e5e..1bbb108b8baf 100644 --- a/doc/misc/eudc.texi +++ b/doc/misc/eudc.texi @@ -177,12 +177,10 @@ initialization file to add a shortcut for email address expansion in email composition buffers (@pxref{Inline Query Expansion}) @lisp -(eval-after-load - "message" - '(define-key message-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) -(eval-after-load - "sendmail" - '(define-key mail-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) +(with-eval-after-load "message" + (define-key message-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) +(with-eval-after-load "sendmail" + (define-key mail-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) @end lisp @menu @@ -271,8 +269,8 @@ LDAP: @vindex eudc-server-hotlist @vindex ldap-host-parameters-alist @lisp -(eval-after-load "message" - '(define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) +(with-eval-after-load "message" + (define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) (customize-set-variable 'eudc-server-hotlist '(("" . bbdb) ("ldaps://ldap.gnu.org" . ldap))) @@ -327,8 +325,8 @@ configure EUDC for LDAP: @vindex eudc-server-hotlist @vindex ldap-host-parameters-alist @lisp -(eval-after-load "message" - '(define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) +(with-eval-after-load "message" + (define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) (customize-set-variable 'eudc-server-hotlist '(("" . bbdb) ("ldaps://ldap.gnu.org" . ldap))) @@ -356,8 +354,8 @@ and the @file{.emacs} expressions become: @vindex eudc-server-hotlist @vindex ldap-host-parameters-alist @lisp -(eval-after-load "message" - '(define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) +(with-eval-after-load "message" + (define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) (customize-set-variable 'eudc-server-hotlist '(("" . bbdb) ("" . ldap))) (customize-set-variable 'ldap-host-parameters-alist @@ -735,8 +733,7 @@ upon an inline expansion request. It is a list whose first element is a string passed to @code{format}. Remaining elements are symbols corresponding to directory attribute names. The corresponding attribute values are passed as additional arguments to @code{format}. Default is -@code{("%s" email)} but you may want to consider a value like @code{("%s -<%s>" name email)} +@code{("%s %s <%s>" firstname name email)}. @end defvar @defvar eudc-multiple-match-handling-method @@ -786,12 +783,11 @@ Add the current server to the hotlist of servers @end deffn @defvar eudc-options-file -The name of a file where EUDC stores its internal variables -(the hotlist and the current server). EUDC will try to load -that file upon initialization so, if you choose a file name -different from the defaults @file{~/.eudc-options}, be sure to set this -variable to the appropriate value @emph{before} EUDC is itself -loaded. +The name of a file where EUDC stores its internal variables (the +hotlist and the current server). EUDC will try to load that file upon +initialization so, if you choose a file name different from the +defaults @file{~/.emacs.d/eudc-options}, be sure to set this variable +to the appropriate value @emph{before} EUDC is itself loaded. @end defvar @menu diff --git a/doc/misc/eww.texi b/doc/misc/eww.texi index 795556b922bc..7726a8d3dc4b 100644 --- a/doc/misc/eww.texi +++ b/doc/misc/eww.texi @@ -251,7 +251,7 @@ variables @code{shr-color-visible-distance-min} and In addition to maintaining the history at run-time, EWW will also save the partial state of its buffers (the URIs and the titles of the pages visited) in the desktop file if one is used. @xref{Saving Emacs -Sessions, , emacs, The GNU Emacs Manual}. +Sessions,,, emacs, The GNU Emacs Manual}. @vindex eww-desktop-remove-duplicates EWW history may sensibly contain multiple entries for the same page diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi index 90bb10f6c356..5a49f4ac3257 100644 --- a/doc/misc/gnus-faq.texi +++ b/doc/misc/gnus-faq.texi @@ -584,10 +584,10 @@ Now we need to tell Gnus, where to get its mail from. If it's a POP3 server, then you need something like this: @example -(eval-after-load "mail-source" - '(add-to-list 'mail-sources '(pop :server "pop.YourProvider.net" - :user "yourUserName" - :password "yourPassword"))) +(with-eval-after-load "mail-source" + (add-to-list 'mail-sources '(pop :server "pop.YourProvider.net" + :user "yourUserName" + :password "yourPassword"))) @end example @noindent @@ -596,8 +596,8 @@ your password there. If you want to read your mail from a traditional spool file on your local machine, it's @example -(eval-after-load "mail-source" - '(add-to-list 'mail-sources '(file :path "/path/to/spool/file")) +(with-eval-after-load "mail-source" + (add-to-list 'mail-sources '(file :path "/path/to/spool/file")) @end example @noindent @@ -605,9 +605,9 @@ If it's a Maildir, with one file per message as used by postfix, Qmail and (optionally) fetchmail it's @example -(eval-after-load "mail-source" - '(add-to-list 'mail-sources '(maildir :path "/path/to/Maildir/" - :subdirs ("cur" "new"))) +(with-eval-after-load "mail-source" + (add-to-list 'mail-sources '(maildir :path "/path/to/Maildir/" + :subdirs ("cur" "new"))) @end example @noindent @@ -616,10 +616,10 @@ in one directory, for example because procmail already split your mail, it's @example -(eval-after-load "mail-source" - '(add-to-list 'mail-sources - '(directory :path "/path/to/procmail-dir/" - :suffix ".prcml"))) +(with-eval-after-load "mail-source" + (add-to-list 'mail-sources + '(directory :path "/path/to/procmail-dir/" + :suffix ".prcml"))) @end example @noindent @@ -850,10 +850,9 @@ text part if it's available. How to do it? Say @example -(eval-after-load "mm-decode" - '(progn - (add-to-list 'mm-discouraged-alternatives "text/html") - (add-to-list 'mm-discouraged-alternatives "text/richtext"))) +(with-eval-after-load "mm-decode" + (add-to-list 'mm-discouraged-alternatives "text/html") + (add-to-list 'mm-discouraged-alternatives "text/richtext")) @end example @noindent @@ -1577,14 +1576,14 @@ if you already use Gnus 5.10, if you still use 5.8.8 or 5.9 try this instead: @example -(eval-after-load "gnus-msg" - '(unless (boundp 'gnus-confirm-mail-reply-to-news) - (defadvice gnus-summary-reply (around reply-in-news activate) - "Request confirmation when replying to news." - (interactive) - (when (or (not (gnus-news-group-p gnus-newsgroup-name)) - (y-or-n-p "Really reply by mail to article author? ")) - ad-do-it)))) +(with-eval-after-load "gnus-msg" + (unless (boundp 'gnus-confirm-mail-reply-to-news) + (defadvice gnus-summary-reply (around reply-in-news activate) + "Request confirmation when replying to news." + (interactive) + (when (or (not (gnus-news-group-p gnus-newsgroup-name)) + (y-or-n-p "Really reply by mail to article author? ")) + ad-do-it)))) @end example @noindent @@ -1599,8 +1598,8 @@ Since 5.10 Gnus doesn't generate a sender header by default. For older Gnus' try this in @file{~/.gnus.el}: @example -(eval-after-load "message" - '(add-to-list 'message-syntax-checks '(sender . disabled))) +(with-eval-after-load "message" + (add-to-list 'message-syntax-checks '(sender . disabled))) @end example @noindent @@ -1665,14 +1664,14 @@ in @file{~/.gnus.el}. If you use Gnus 5.9 or earlier, you can use this instead (works for newer versions as well): @example -(eval-after-load "message" - '(let ((fqdn "yourmachine.yourdomain.tld"));; <-- Edit this! - (if (boundp 'message-user-fqdn) - (setq message-user-fqdn fqdn) - (gnus-message 1 "Redefining `message-make-fqdn'.") - (defun message-make-fqdn () - "Return user's fully qualified domain name." - fqdn)))) +(with-eval-after-load "message" + (let ((fqdn "yourmachine.yourdomain.tld"));; <-- Edit this! + (if (boundp 'message-user-fqdn) + (setq message-user-fqdn fqdn) + (gnus-message 1 "Redefining `message-make-fqdn'.") + (defun message-make-fqdn () + "Return user's fully qualified domain name." + fqdn)))) @end example @noindent @@ -2195,7 +2194,7 @@ An other idea would be to byte compile your @file{~/.gnus.el} (say @samp{M-x byte-compile-file RET ~/.gnus.el RET} to do it). Finally, if you have require statements in your .gnus, you could replace them with -eval-after-load, which loads the stuff not at startup +@code{with-eval-after-load}, which loads the stuff not at startup time, but when it's needed. Say you've got this in your @file{~/.gnus.el}: @@ -2209,8 +2208,8 @@ then as soon as you start Gnus, message.el is loaded. If you replace it with @example -(eval-after-load "message" - '(add-to-list 'message-syntax-checks '(sender . disabled))) +(with-eval-after-load "message" + (add-to-list 'message-syntax-checks '(sender . disabled))) @end example @noindent diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index 2ae2e18ed00d..11f9f35227de 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi @@ -17147,9 +17147,9 @@ summary buffer. (gnus-summary-mark-as-read-forward 1)) (gnus-summary-scroll-up arg)))) -(eval-after-load "gnus" - #'(define-key gnus-summary-mode-map - (kbd "") 'browse-nnrss-url)) +(with-eval-after-load "gnus" + (define-key gnus-summary-mode-map + (kbd "") 'browse-nnrss-url)) (add-to-list 'nnmail-extra-headers nnrss-url-field) @end lisp @@ -17165,11 +17165,11 @@ Parameters}) in order to display @samp{text/html} parts only in @lisp ;; @r{Set the default value of @code{mm-discouraged-alternatives}.} -(eval-after-load "gnus-sum" - '(add-to-list - 'gnus-newsgroup-variables - '(mm-discouraged-alternatives - . '("text/html" "image/.*")))) +(with-eval-after-load "gnus-sum" + (add-to-list + 'gnus-newsgroup-variables + '(mm-discouraged-alternatives + . '("text/html" "image/.*")))) ;; @r{Display @samp{text/html} parts in @code{nnrss} groups.} (add-to-list @@ -21520,7 +21520,7 @@ bound to mairix searches and are automatically updated. Mairix is a tool for indexing and searching words in locally stored mail. It was written by Richard Curnow and is licensed under the GPL@. Mairix comes with most popular GNU/Linux distributions, but it also -runs under Windows (with cygwin), Mac OS X and Solaris. The homepage can +runs under Windows (with cygwin), macOS and Solaris. The homepage can be found at @uref{http://www.rpcurnow.force9.co.uk/mairix/index.html} diff --git a/doc/misc/idlwave.texi b/doc/misc/idlwave.texi index 64b1585c5cec..32b33641656e 100644 --- a/doc/misc/idlwave.texi +++ b/doc/misc/idlwave.texi @@ -75,7 +75,7 @@ Interactive Data Language (IDL), and running IDL as an inferior shell. * Sources of Routine Info:: How does IDLWAVE know about routine XYZ * HTML Help Browser Tips:: * Configuration Examples:: The user is king -* Windows and MacOS:: What still works, and how +* Windows and macOS:: What still works, and how * Troubleshooting:: When good computers turn bad * GNU Free Documentation License:: The license for this documentation. * Index:: Fast access @@ -1281,7 +1281,7 @@ the routine documentation header and/or routine source. @kindex M-? In any IDL program (or, as with most IDLWAVE commands, in the IDL Shell), press @kbd{M-?} (@code{idlwave-context-help}), or click with -@kbd{S-Mouse-3} to access context sensitive online help. The following +@kbd{S-mouse-3} to access context sensitive online help. The following locations are recognized context for help: @cindex Context, for online help @@ -1327,11 +1327,11 @@ which online help can be accessed. @itemize @bullet @item Online help for routines and keywords can be accessed through the -Routine Info display. Click with @kbd{Mouse-3} on an item to see the +Routine Info display. Click with @kbd{mouse-3} on an item to see the corresponding help (@pxref{Routine Info}). @item When using completion and Emacs pops up a @file{*Completions*} buffer -with possible completions, clicking with @kbd{Mouse-3} on a completion +with possible completions, clicking with @kbd{mouse-3} on a completion item invokes help on that item (@pxref{Completion}). Items for which help is available in the online system documentation (vs. just the program source itself) will be emphasized (e.g., colored blue). @@ -1577,7 +1577,7 @@ search for a procedure matching a regexp. If the list of completions is too long to fit in the @file{*Completions*} window, the window can be scrolled by pressing @kbd{M-@key{TAB}} repeatedly. Online help (if installed) for each -possible completion is available by clicking with @kbd{Mouse-3} on the +possible completion is available by clicking with @kbd{mouse-3} on the item. Items for which system online help (from the IDL manual) is available will be emphasized (e.g., colored blue). For other items, the corresponding source code or DocLib header will be used as the help @@ -2372,7 +2372,7 @@ Normal hook. Executed when @file{idlwave.el} is loaded. @cindex Subprocess of Emacs, IDL @cindex Comint, Emacs package @cindex Windows -@cindex MacOS +@cindex macOS The IDLWAVE shell is an Emacs major mode which permits running the IDL program as an inferior process of Emacs, and works closely with the @@ -2382,7 +2382,7 @@ debug these programs. The IDLWAVE shell is built on @file{comint}, an Emacs packages which handles the communication with the IDL program. Unfortunately, IDL for Windows does not have command-prompt versions and thus do not allow the interaction with Emacs, so the IDLWAVE shell -currently only works under Unix and MacOSX. +currently works under only Unix and macOS. @menu * Starting the Shell:: How to launch IDL as a subprocess @@ -2811,7 +2811,7 @@ you add or remove some on the command line) using @kbd{C-c C-d C-l}. In recent IDLWAVE versions, the breakpoint line is highlighted when the mouse is moved over it, and a tooltip pops up describing the break -details. @kbd{Mouse-3} on the breakpoint line pops up a menu of +details. @kbd{mouse-3} on the breakpoint line pops up a menu of breakpoint actions, including clearing, disabling, and adding or changing break conditions or ``after'' break count. @@ -3151,7 +3151,7 @@ print, only an initial portion of long arrays will be printed, up to For added speed and convenience, there are mouse bindings which allow you to click on expressions and examine their values. Use -@kbd{S-Mouse-2} to print an expression and @kbd{C-M-Mouse-2} to invoke +@kbd{S-mouse-2} to print an expression and @kbd{C-M-mouse-2} to invoke help (i.e., you need to hold down @key{META} and @key{CONTROL} while clicking with the middle mouse button). If you simply click, the nearest expression will be selected in the same manner as described @@ -3219,7 +3219,7 @@ mouse examine command, and two macros for generating your own examine key and mouse bindings. The most powerful and flexible mouse examine command of all is -available on @kbd{C-S-Mouse-2}. Just as for all the other mouse +available on @kbd{C-S-mouse-2}. Just as for all the other mouse examine commands, it permits click or drag expression selection, but instead of sending hard-coded commands to the shell, it pops-up a customizable selection list of examine functions to choose among, @@ -3533,14 +3533,14 @@ to locate library catalogs. @end defopt @defopt idlwave-library-path -IDL library path for Windows and MacOS@. Under Unix/MacOSX, will be +IDL library path for Windows and macOS@. Under Unix/macOS, will be obtained from the Shell when run. @end defopt @defopt idlwave-system-directory -The IDL system directory for Windows and MacOS@. Also needed for +The IDL system directory for Windows and macOS@. Also needed for locating HTML help and the IDL Assistant for IDL v6.2 and later. Under -Unix/MacOSX, will be obtained from the Shell and recorded, if run. +Unix/macOS, will be obtained from the Shell and recorded, if run. @end defopt @defopt idlwave-config-directory (@file{~/.emacs.d/idlwave}) @@ -3626,7 +3626,7 @@ performance is a problem and/or the catalogs are not needed. @cindex User catalog @cindex IDL library routine info @cindex Windows -@cindex MacOS +@cindex macOS @cindex IDL variable @code{!DIR} @cindex @code{!DIR}, IDL variable @@ -3651,7 +3651,7 @@ catalog must be rescanned to update it. Creating the user catalog is also much slower than scanning library catalogs. You can scan any of the directories on the currently known path. Under -Windows and MacOS (not OSX), you need to specify the IDL search path in +Windows, you need to specify the IDL search path in the variable @code{idlwave-library-path}, and the location of the IDL directory (the value of the @code{!DIR} system variable) in the variable @code{idlwave-system-directory}, like this@footnote{The initial @samp{+} @@ -3742,10 +3742,9 @@ files. Therefore, such local files should not be installed inside the many other reasons. @cindex Windows -@cindex MacOS @cindex IDL variable @code{!DIR} @cindex @code{!DIR}, IDL variable -Users of Windows and MacOS (not X) also must set the variable +Users of Windows also must set the variable @code{idlwave-system-directory} to the value of the @code{!DIR} system variable in IDL@. IDLWAVE appends @file{lib} to the value of this variable and assumes that all files found on that path are system @@ -3822,7 +3821,7 @@ etc.). @noindent Individual platform recommendations: @itemize @bullet -@item Unix/MacOSX: The @uref{http://www.w3m.org,@code{w3m}} browser +@item Unix/macOS: The @uref{http://www.w3m.org,@code{w3m}} browser and its associated @uref{http://emacs-w3m.namazu.org/,@code{emacs-w3m}} emacs mode provide in-buffer browsing with image display, and excellent speed and @@ -4020,18 +4019,17 @@ user is King! @html @end html -@node Windows and MacOS -@appendix Windows and MacOS +@node Windows and macOS +@appendix Windows and macOS @cindex Windows -@cindex MacOS -@cindex MacOSX +@cindex macOS IDLWAVE was developed on a UNIX system. However, thanks to the portability of Emacs, much of IDLWAVE does also work under different -operating systems like Windows (with NTEmacs or NTXEmacs) or MacOS. +operating systems like Windows (with NTEmacs or NTXEmacs). The only real problem is that there is no command-line version of IDL -for Windows or MacOS(<=9) with which IDLWAVE can interact. As a +for Windows with which IDLWAVE can interact. As a result, the IDLWAVE Shell does not work and you have to rely on IDLDE to run and debug your programs. However, editing IDL source files with Emacs/IDLWAVE works with all bells and whistles, including @@ -4112,10 +4110,10 @@ ensure @samp{idl} is on your @samp{$PATH}, or specify the full pathname to the idl program with the variable @code{idlwave-shell-explicit-file-name}. Note that you may need to set your shell search path in two places when running Emacs as an Aqua -application with MacOSX; see the next topic. +application with macOS; see the next topic. @item @strong{IDLWAVE is disregarding my @samp{IDL_PATH} which I set -under MacOSX} +under macOS} If you run Emacs directly as an Aqua application, rather than from the console shell, the environment is set not from your usual shell diff --git a/doc/misc/info.texi b/doc/misc/info.texi index 135c443c075d..1b964e6b2c48 100644 --- a/doc/misc/info.texi +++ b/doc/misc/info.texi @@ -70,7 +70,8 @@ To read about advanced Info commands, type @kbd{n} twice. This brings you to @cite{Advanced Info Commands}, skipping over the ``Getting Started'' chapter. -Type @kbd{H} to see a summary of all available commands. +If you are using Emacs, type @kbd{?} to see a summary of all available +commands. In the stand-alone Info reader, type @kbd{H} instead. @end ifinfo @end ifnottex @@ -393,16 +394,18 @@ the @key{BACKSPACE} key (or @key{DEL}) many times. You can also type @end format @kindex ? @r{(Info mode)} +@kindex H @r{(stand-alone Info reader)} @findex Info-summary You have just learned a considerable number of commands. If you want to use one but have trouble remembering which, you should type -@kbd{?}, which displays a brief list of commands. When you are -finished looking at the list, make it go away by typing @key{SPC} -repeatedly. +@kbd{?} (@kbd{H} in the stand-alone Info reader), which displays a +brief list of commands. When you are finished looking at the list, +make it go away by typing @key{SPC} repeatedly. @format ->> Type a @key{?} now. Press @key{SPC} to see consecutive screenfuls of - the list until finished. Then type @key{SPC} several times. If +>> Type a @key{?} (or @key{H} in the stand-alone Info reader) now. + Press @key{SPC} to see consecutive screenfuls of the list + until finished. Then type @key{SPC} several times. If you are using Emacs, the help will then go away automatically. If you are using the stand-alone Info reader, type @kbd{x} to return here. @@ -671,7 +674,7 @@ the @key{Shift} key and then press @key{TAB}). that subtopic's node. @cindex mouse support in Info mode -@kindex Mouse-2 @r{(Info mode)} +@kindex mouse-2 @r{(Info mode)} If your terminal supports a mouse, you have yet another way of going to a subtopic. Move your mouse pointer to the subtopic line, somewhere between the beginning @samp{*} and the colon @samp{:} which @@ -679,22 +682,22 @@ ends the subtopic's brief name. You will see the subtopic's name change its appearance (usually, its background color will change), and the shape of the mouse pointer will change if your platform supports that. After a while, if you leave the mouse on that spot, a small -window will pop up, saying ``Mouse-2: go to that node,'' or the same +window will pop up, saying ``mouse-2: go to that node,'' or the same message may appear at the bottom of the screen. - @kbd{Mouse-2} is the second button of your mouse counting from the + @kbd{mouse-2} is the second button of your mouse counting from the left---the middle button on a 3-button mouse. (On a 2-button mouse, you may have to press both buttons together to ``press the middle -button''.) The message tells you pressing @kbd{Mouse-2} with the +button''.) The message tells you pressing @kbd{mouse-2} with the current position of the mouse pointer (on subtopic in the menu) will go to that subtopic. @findex Info-mouse-follow-nearest-node - More generally, @kbd{Mouse-2} in an Info buffer finds the nearest + More generally, @kbd{mouse-2} in an Info buffer finds the nearest link to another node and goes there. For example, near a cross reference it acts like @kbd{f}, in a menu it acts like @kbd{m}, on the node's header line it acts like @kbd{n}, @kbd{p}, or @kbd{u}, etc. At -end of the node's text @kbd{Mouse-2} moves to the next node, or up if +end of the node's text @kbd{mouse-2} moves to the next node, or up if there's no next node. @format @@ -719,7 +722,7 @@ to the subnode that the @kbd{u} command brought you from. (Some Info readers may put you at the @emph{front} of the node instead---to get back to where you were reading, you have to type some @key{SPC}s.) - Another way to go Up is to click @kbd{Mouse-2} on the @samp{Up} + Another way to go Up is to click @kbd{mouse-2} on the @samp{Up} pointer shown in the header line (provided that you have a mouse). @format @@ -740,7 +743,7 @@ in Emacs. Do @kbd{M-x visible-mode} to show or hide it.) @findex Info-follow-reference You can follow a cross reference by moving the cursor to it and press @key{RET}, just as in a menu. In Emacs, you can also click -@kbd{Mouse-1} on a cross reference to follow it; you can see that the +@kbd{mouse-1} on a cross reference to follow it; you can see that the cross reference is mouse-sensitive by moving the mouse pointer to the reference and watching how the underlying text and the mouse pointer change in response. diff --git a/doc/misc/mairix-el.texi b/doc/misc/mairix-el.texi index 8deead52dc61..69d3fc422779 100644 --- a/doc/misc/mairix-el.texi +++ b/doc/misc/mairix-el.texi @@ -68,7 +68,7 @@ database. Mairix is a tool for indexing and searching words in locally stored mail. It was written by Richard Curnow and is licensed under the GPL@. Mairix comes with most popular GNU/Linux distributions, but it also -runs under Windows (with cygwin), Mac OS X and Solaris. The homepage can +runs under Windows (with cygwin), macOS and Solaris. The homepage can be found at @uref{http://www.rpcurnow.force9.co.uk/mairix/index.html} diff --git a/doc/misc/message.texi b/doc/misc/message.texi index 761fb772f464..0b82f343d710 100644 --- a/doc/misc/message.texi +++ b/doc/misc/message.texi @@ -1326,7 +1326,13 @@ OpenPGP) or @code{mml-secure-smime-encrypt-to-self} (for The @code{Bcc} header is meant to hide recipients of messages. However, when encrypted messages are used, the e-mail addresses of all @code{Bcc}-headers are given away to all recipients without -warning, which is a bug, see +warning, which is a bug. +@vindex mml-secure-safe-bcc-list +But now Message got to warn if @code{Bcc} recipients are found in an +encrypted message when you are just about to send it. If you are sure +those @code{Bcc} addresses are safe to expose, set the +@code{mml-secure-safe-bcc-list} variable, that is a list of e-mail +addresses. See @uref{https://debbugs.gnu.org/cgi/bugreport.cgi?bug=18718}. diff --git a/doc/misc/mh-e.texi b/doc/misc/mh-e.texi index d1fd8f761182..2ff0dac35db9 100644 --- a/doc/misc/mh-e.texi +++ b/doc/misc/mh-e.texi @@ -9,12 +9,12 @@ @c %**end of header @c Version of the software and manual. -@set VERSION 8.5 +@set VERSION 8.6 @c Edition of the manual. It is either empty for the first edition or @c has the form ", nth Edition" (without the quotes). @set EDITION -@set UPDATED 2013-03-02 -@set UPDATE-MONTH March, 2013 +@set UPDATED 2016-04-29 +@set UPDATE-MONTH April, 2016 @c Other variables. @set MH-BOOK-HOME http://rand-mh.sourceforge.net/book/mh @@ -1566,7 +1566,7 @@ M-x mh-rmail @key{RET} bob @key{RET}}). @xref{Folders}.}. @findex display-time @vindex read-mail-command -There are some commands that need to read mail, such as @kbd{Mouse-2} +There are some commands that need to read mail, such as @kbd{mouse-2} over the @samp{Mail} button that @code{display-time} adds to the mode line. You can configure Emacs to have these commands use MH-E by setting the option @code{read-mail-command} to @samp{mh-rmail}. @@ -1835,9 +1835,9 @@ minibuffer (@code{mh-prefix-help}). Unpack message created with @command{uudecode} or @command{shar} (@code{mh-store-msg}). @c ------------------------- -@kindex Mouse-2 +@kindex mouse-2 @findex mh-show-mouse -@item Mouse-2 +@item mouse-2 Move point to mouse event and show message (@code{mh-show-mouse}). @end table @@ -1845,12 +1845,12 @@ Within the MH-Show buffer, the following command is defined. @table @kbd @kindex @key{RET} -@kindex Mouse-1 -@kindex Mouse-2 +@kindex mouse-1 +@kindex mouse-2 @findex mh-press-button @item @key{RET} -@itemx Mouse-1 -@itemx Mouse-2 +@itemx mouse-1 +@itemx mouse-2 View contents of button (@code{mh-press-button}). @end table @@ -2022,10 +2022,10 @@ detail in the following sections. @kindex @key{BS} @kindex @key{RET} @kindex @key{SPC} -@kindex Mouse-2 +@kindex mouse-2 The command @key{RET} (@code{mh-show}) displays the message that the -cursor is on while @kbd{Mouse-2} (@code{mh-show-mouse}) displays the +cursor is on while @kbd{mouse-2} (@code{mh-show-mouse}) displays the message that the mouse cursor is on. If the message is already displayed, it scrolls to the beginning of the message. Use @key{SPC} (@code{mh-page-msg}) and @key{BS} (@code{mh-previous-page}) to move @@ -2201,13 +2201,13 @@ highlighting of citations entirely, choose @samp{None}. @cindex links, following @findex goto-address-at-point @kindex C-c @key{RET} -@kindex Mouse-2 +@kindex mouse-2 @vindex goto-address-highlight-p Email addresses and URLs in the message are highlighted if the option @code{goto-address-highlight-p} is on, which it is by default. To view the web page for a highlighted URL or to send a message using a -highlighted email address, use @kbd{Mouse-2} or @kbd{C-c @key{RET}} +highlighted email address, use @kbd{mouse-2} or @kbd{C-c @key{RET}} (@code{goto-address-at-point}). @xref{Sending Mail}, to see how to configure Emacs to send the message using MH-E. @@ -2337,11 +2337,11 @@ Attachments in MH-E are indicated by @dfn{buttons} like this: @kindex @key{RET} @kindex K @key{TAB} @kindex K S-@key{TAB} -@kindex Mouse-1 -@kindex Mouse-2 +@kindex mouse-1 +@kindex mouse-2 -To view the contents of the button, use either @kbd{Mouse-1} or -@kbd{Mouse-2} on the button or @key{RET} (@code{mh-press-button}) when +To view the contents of the button, use either @kbd{mouse-1} or +@kbd{mouse-2} on the button or @key{RET} (@code{mh-press-button}) when the cursor is over the button. This command is a toggle so if you use it again on the same attachment, it is hidden. If Emacs does not know how to display the attachment, then Emacs offers to save the @@ -2527,8 +2527,7 @@ in the @cite{The Gnus Manual}. @cindex HTML @cindex Gnus -MH-E can display messages that have been sent in HTML@footnote{This -feature depends on a version of Gnus that is at least 5.10.}. The +MH-E can display messages that have been sent in HTML. The content of the message will appear in the MH-Show buffer as you would expect if the entire message is HTML, or there is an inline HTML body part. However, if there is an HTML body part that is an attachment, @@ -2549,86 +2548,107 @@ based upon the presence of a known browser on your system. If you wish to use a different browser, then set this option accordingly. See the documentation for the browser you use for additional information on how to use it. In particular, find and disable the option to render -images as this can tip off spammers that the email address they have -used is valid. +images, as displaying remote images can tip off spammers that the +email address they have used is valid. @vindex mm-text-html-renderer If you're confused about which @code{mm-text-html-renderer} to use, -here's a brief description of each, sorted by popularity, that -includes the results of a quick poll of MH-E users from 2005-12-23. +here's a brief description of each, sorted by name. @table @asis +@cindex browser, @samp{gnus-w3m} +@cindex @samp{gnus-w3m} @cindex browser, @samp{w3m} @cindex @samp{w3m} -@kindex Mouse-2 -@item @samp{w3m} 7 -The @samp{w3m} browser requires an external program. It's quick, -produces pretty nice output, and best of all, it's the only browser -that highlights links. These can be clicked with @kbd{Mouse-2} to view -the content of the link in @samp{w3m}. The @samp{w3m} browser handles -tables well and actually respects the table's width parameter (which -can cause text to wrap if the author didn't anticipate that the page -would be viewed in Emacs). +@item @samp{gnus-w3m} +The @samp{gnus-w3m} browser requires an external program. It's quick, +produces pretty nice output, and it highlights links. It renders +@samp{–} and @samp{®} okay. It sometimes fails to wrap lines +properly. It always downloads remote images. @c ------------------------- -@cindex browser, @samp{w3m-standalone} -@cindex @samp{w3m-standalone} -@item @samp{w3m-standalone} 3 -This browser, along with @samp{nil} for the external browser, are the -only choices that work without having to download a separate lisp -package or external program. This browser is quick, but does not show -links. It handles simple tables but some tables get rendered much -wider than the Emacs frame. This browser was the only one not to -handle the escape @samp{–} (it printed a @samp{?}), but it did -render @samp{®}. +@cindex browser, @samp{html2text} +@cindex @samp{html2text} +@item @samp{html2text} +The @samp{html2text} browser requires an external program. Some users +have reported problems with it, such as filling the entire message as +if it were one paragraph, or displaying chunks of raw HTML. @c ------------------------- @cindex browser, @samp{links} @cindex @samp{links} -@item @samp{links} 1 +@item @samp{links} The @samp{links} browser requires an external program. It's quick, and produces nicer output than @samp{lynx} on single column mails in tables. However, it doesn't show links and it doesn't do as nice a job -on multi-column tables as some lines wrap. At least it fits in 80 -columns and thus seems better than @samp{w3} and -@samp{w3m-standalone}. Converts escapes such as @samp{®} to (R). +on multi-column tables as some lines wrap. It does do a good job of +fitting text within 80 columns. It appears to render special +characters using ASCII equivalents. For example, @samp{®} appears +as (R). It does not download images. @c ------------------------- @cindex browser, @samp{lynx} @cindex @samp{lynx} -@item @samp{lynx} 1 +@item @samp{lynx} The @samp{lynx} browser requires an external program. It's quick and produces pretty decent output but it doesn't show links. It doesn't seem to do multi-column tables which makes output much cleaner. It -centers the output and wraps long lines more than most. Handles -@samp{®}. +centers the output and wraps long lines more than most. It does not +always handle special characters like @samp{®} or @samp{–}. +It does not download images. @c ------------------------- -@item @samp{nil} 1 -This choice obviously requires an external browser. Like -@samp{w3m-standalone}, it works out of the box. With this setting, +@item @samp{nil} +This choice obviously requires an external browser. With this setting, HTML messages have a button for the body part which you can view with -@kbd{K v} (@code{mh-folder-toggle-mime-part}). -@c ------------------------- -@cindex browser, @samp{w3} -@cindex @samp{w3} -@item @samp{w3} 0 -This choice does not require an external program as all of the -rendering is done in lisp. You do need to get the package separately. -This browser is @strong{slow}, and doesn't appear to have been updated -since 2001 and the author hasn't responded to my emails. It displays -unknown tags instead of hiding them, so you get to see all the -Microsoft crap in certain messages. Tends to make multi-column tables -wider than even a full-screen Emacs can handle. Like @samp{w3m}, you -can follow links, but you have to find them first as they are not -highlighted. Performs well on single-column tables and handles escapes -such as @samp{®}. +@kbd{K v} (@code{mh-folder-toggle-mime-part}). Rendering of special +characters and handling of remote images depends on your choice of +browser. +@c ------------------------- +@item @samp{shr} +@cindex @samp{shr} +This choice does not require an external program, but it does require +that Emacs be configured at build time to use @samp{libxml2}. It is +fairly quick, it highlights links, and it supports HTML color +declarations. It renders @samp{–} and @samp{®} okay. It +sometimes truncates text, particularly if the message tries to have +fancy text layout. By default it does not download images; this +behavior is controlled by the options @code{mm-html-blocked-images} +and @code{mm-html-inhibit-images} +@ifinfo +(@pxref{Display Customization,,,emacs-mime}). +@end ifinfo +@ifnotinfo +(see section @uref{http://www.gnus.org/manual/emacs-mime_6.html, +Display Customization} in the @cite{The Emacs MIME Manual}). +@end ifnotinfo @c ------------------------- -@cindex browser, @samp{html2text} -@cindex @samp{html2text} -@item @samp{html2text} 0 -The @samp{html2text} browser requires an external program. I noticed -that it can do some nasty things with simple HTML mails (like filling -the entire message as if it were one paragraph, including signature). -On another message, it displayed half of the HTML tags for some -reason. +@cindex browser, @samp{w3m} +@cindex @samp{w3m} +@kindex mouse-2 +@item @samp{w3m} +The @samp{w3m} browser requires an external program. It's quick, +produces pretty nice output, and it highlights links. These can be +clicked with @kbd{mouse-2} to view the content of the link in +@samp{w3m}. The @samp{w3m} browser handles tables well and actually +respects the table's width parameter (which can cause text to wrap if +the author didn't anticipate that the page would be viewed in Emacs). +It does not download images by default; this behavior is controlled by +the option @code{mm-w3m-safe-url-regexp} +@ifinfo +(@pxref{Display Customization,,,emacs-mime}). +@end ifinfo +@ifnotinfo +(see section @uref{http://www.gnus.org/manual/emacs-mime_6.html, +Display Customization} in the @cite{The Emacs MIME Manual}). +@end ifnotinfo +@c ------------------------- +@cindex browser, @samp{w3m-standalone} +@cindex @samp{w3m-standalone} +@cindex browser, @samp{w3m} +@cindex @samp{w3m} +@item @samp{w3m-standalone} +This browser is quick, but does not show links. It handles simple +tables but some tables get rendered much wider than the Emacs frame. +This browser renders @samp{–} and @samp{®} okay. It does not +download images. @end table @vindex mm-text-html-renderer @@ -2637,20 +2657,21 @@ For a couple more sources of information about @code{mm-text-html-renderer}, @ifinfo @xref{Display Customization,,,emacs-mime}, and the documentation for -the Gnus command @kbd{W h} (@pxref{Article Washing,,,gnus},). +the Gnus command @kbd{W h} (@pxref{Article Washing,,,gnus}). @end ifinfo @ifnotinfo see section @uref{http://www.gnus.org/manual/emacs-mime_6.html, Display Customization} in the @cite{The Emacs MIME Manual} and the documentation for the Gnus command @kbd{W h} (see section -@uref{http://www.gnus.org/manual/gnus_99.html, Article Washing} in the +@uref{http://www.gnus.org/manual/gnus_48.html#Article-Washing, Article +Washing} in the @cite{The Gnus Manual}). @end ifnotinfo @cindex @file{.emacs} @cindex files, @file{.emacs} @findex browse-url-at-mouse -@kindex S-Mouse-2 +@kindex S-mouse-2 A useful key binding that you can add to @file{~/.emacs} is the following which displays an HTML link or textual URL in an external @@ -6261,7 +6282,7 @@ containing the value for the field is given. @findex mh-visit-folder @kindex F v @kindex M-x speedbar -@kindex Mouse-2 +@kindex mouse-2 You can also use the speedbar @ifnothtml @@ -6275,7 +6296,7 @@ Speedbar Frames} in @cite{The GNU Emacs Manual}) to view your folders. To bring up the speedbar, run @kbd{M-x speedbar @key{RET}}. You will see a new frame appear with all of your MH folders. Folders with unseen messages appear in boldface. Click on a -folder name with @kbd{Mouse-2} to visit that folder in a similar +folder name with @kbd{mouse-2} to visit that folder in a similar fashion to the command @kbd{F v} (@code{mh-visit-folder}) (@pxref{Folders}). Click on the @samp{+} icon to expand and view the sub-folders of that folder. @@ -6310,9 +6331,9 @@ count before the next automatic update (@code{mh-speed-refresh}). @findex delete-frame @kindex C-x 5 0 -@kindex Mouse-3 +@kindex mouse-3 -You can click on @kbd{Mouse-3} to bring up a context menu that +You can click on @kbd{mouse-3} to bring up a context menu that contains these items. Dismiss the speedbar with @kbd{C-x 5 0} (@code{delete-frame}). diff --git a/doc/misc/org.texi b/doc/misc/org.texi index a5239acb59f1..a6f9dbde7cb8 100644 --- a/doc/misc/org.texi +++ b/doc/misc/org.texi @@ -6616,7 +6616,7 @@ applying it to another one. @vindex org-clock-idle-time By customizing the variable @code{org-clock-idle-time} to some integer, such as 10 or 15, Emacs can alert you when you get back to your computer after -being idle for that many minutes@footnote{On computers using Mac OS X, +being idle for that many minutes@footnote{On computers using macOS, idleness is based on actual user idleness, not just Emacs' idle time. For X11, you can install a utility program @file{x11idle.c}, available in the @code{contrib/scripts} directory of the Org git distribution, or install the diff --git a/doc/misc/rcirc.texi b/doc/misc/rcirc.texi index 0098e2049d85..cdead72c630e 100644 --- a/doc/misc/rcirc.texi +++ b/doc/misc/rcirc.texi @@ -880,11 +880,11 @@ because @code{defun-rcirc-command} is not yet available, and without @code{rcirc} loaded, the command wouldn't do us much good anyway. @smallexample -(eval-after-load 'rcirc - '(defun-rcirc-command sv (arg) - "Boast about rcirc." - (interactive "i") - (rcirc-send-message process target +(with-eval-after-load 'rcirc + (defun-rcirc-command sv (arg) + "Boast about rcirc." + (interactive "i") + (rcirc-send-message process target (concat "I use " rcirc-id-string)))) @end smallexample @@ -904,29 +904,29 @@ copies of every channel buffer, one dead and one live. The real answer, therefore, is a @code{/reconnect} command: @smallexample -(eval-after-load 'rcirc - '(defun-rcirc-command reconnect (arg) - "Reconnect the server process." - (interactive "i") - (unless process - (error "There's no process for this target")) - (let* ((server (car (process-contact process))) - (port (process-contact process :service)) - (nick (rcirc-nick process)) - channels query-buffers) - (dolist (buf (buffer-list)) - (with-current-buffer buf - (when (eq process (rcirc-buffer-process)) - (remove-hook 'change-major-mode-hook - 'rcirc-change-major-mode-hook) - (if (rcirc-channel-p rcirc-target) - (setq channels (cons rcirc-target channels)) - (setq query-buffers (cons buf query-buffers)))))) - (delete-process process) - (rcirc-connect server port nick - rcirc-default-user-name - rcirc-default-full-name - channels)))) +(with-eval-after-load 'rcirc + (defun-rcirc-command reconnect (arg) + "Reconnect the server process." + (interactive "i") + (unless process + (error "There's no process for this target")) + (let* ((server (car (process-contact process))) + (port (process-contact process :service)) + (nick (rcirc-nick process)) + channels query-buffers) + (dolist (buf (buffer-list)) + (with-current-buffer buf + (when (eq process (rcirc-buffer-process)) + (remove-hook 'change-major-mode-hook + 'rcirc-change-major-mode-hook) + (if (rcirc-channel-p rcirc-target) + (setq channels (cons rcirc-target channels)) + (setq query-buffers (cons buf query-buffers)))))) + (delete-process process) + (rcirc-connect server port nick + rcirc-default-user-name + rcirc-default-full-name + channels)))) @end smallexample @node GNU Free Documentation License diff --git a/doc/misc/sem-user.texi b/doc/misc/sem-user.texi index f11e0b83fa1a..fd88c88c7eb0 100644 --- a/doc/misc/sem-user.texi +++ b/doc/misc/sem-user.texi @@ -874,9 +874,9 @@ command, like this: @end example @end defun -These commands are often more accurate than the @code{find-tag} -command (@pxref{Tags,,,emacs,Emacs manual}), because the Semantic -Analyzer is context-sensitive. +These commands are often more accurate than the @code{xref-find-definitions} +command (@pxref{Looking Up Identifiers,,,emacs,Emacs manual}), because +the Semantic Analyzer is context-sensitive. You can also use @kbd{C-c , j} (@code{semantic-complete-jump-local}) and @kbd{C-c , J} (@code{semantic-complete-jump}) to navigate tags. @@ -1173,7 +1173,7 @@ the declaration line of the function or tag on the topmost line in the text area. This allows you to keep that declaration line in view at all times, even if it is scrolls off the ``top'' of the screen. -In addition, clicking @kbd{Mouse-1} on the header line opens a context +In addition, clicking @kbd{mouse-1} on the header line opens a context menu that contains menu items for copying, killing, or narrowing to that tag. @@ -1199,7 +1199,7 @@ Semantic Highlight Function minor mode highlights the declaration line of the current function or tag (that is to say, the first line that describes the rest of the construct). -In addition, clicking @kbd{Mouse-3} on the highlighted declaration +In addition, clicking @kbd{mouse-3} on the highlighted declaration line opens a context menu that contains menu items for copying, killing, or narrowing to that tag. diff --git a/doc/misc/smtpmail.texi b/doc/misc/smtpmail.texi index 264733116785..d9a68c45985e 100644 --- a/doc/misc/smtpmail.texi +++ b/doc/misc/smtpmail.texi @@ -285,7 +285,7 @@ connection the SMTP library uses. The default value is @code{nil}, which means to use a plain connection, but try to switch to a STARTTLS encrypted connection if the server supports it. Other possible values are: @code{starttls} to insist on STARTTLS; @code{ssl} to use TLS/SSL; -and @code{plain} for encryption. +and @code{plain} for no encryption. Use of any form of TLS/SSL requires support in Emacs. You can either use the built-in support (in Emacs 24.1 and later), or the diff --git a/doc/misc/speedbar.texi b/doc/misc/speedbar.texi index 377e412bb301..d43c521f76af 100644 --- a/doc/misc/speedbar.texi +++ b/doc/misc/speedbar.texi @@ -62,7 +62,7 @@ authors of other packages to provide speedbar summaries customized to the needs of that mode. Throughout this manual, activities are defined as ``clicking on'', or -``expanding'' items. Clicking means using @kbd{Mouse-2} on a +``expanding'' items. Clicking means using @kbd{mouse-2} on a button. Expanding refers to clicking on an expansion button to display an expanded summary of the entry the expansion button is on. @xref{Basic Navigation}. @@ -316,29 +316,29 @@ with the mouse, or affected by the menu. The mouse bindings are: @table @kbd -@item Mouse-1 +@item mouse-1 Move cursor to that location. -@item Mouse-2 -@itemx Double-Mouse-1 -Activate the current button. @kbd{Double-Mouse-1} is called a @dfn{double +@item mouse-2 +@itemx Double-mouse-1 +Activate the current button. @kbd{Double-mouse-1} is called a @dfn{double click} on other platforms, and is useful for windows users with two button mice. -@c Isn't it true that with two-button mice, the right button is Mouse-2? -@c On GNU/Linux, the right button is Mouse-3. -@item S-Mouse-2 -@itemx S-Double-Mouse-1 +@c Isn't it true that with two-button mice, the right button is mouse-2? +@c On GNU/Linux, the right button is mouse-3. +@item S-mouse-2 +@itemx S-Double-mouse-1 @cindex power click -This has the same effect as @kbd{Mouse-2}, except it is called a power +This has the same effect as @kbd{mouse-2}, except it is called a power click. This means that if a group with an expansion button @samp{+} is clicked, any caches are flushed, and subitems re-read. If it is a name, it will be opened in a new frame. -@item Mouse-3 +@item mouse-3 Activate the speedbar menu. The item selected affects the line clicked, not the line where the cursor was. -@item Mouse-1 @r{(mode line)} +@item mouse-1 @r{(mode line)} Activate the menu. This affects the item the cursor is on before the click, since the mouse was not clicked on anything. -@item C-Mouse-1 +@item C-mouse-1 Buffers sub-menu. The buffer in the attached frame is switched. @end table @@ -355,7 +355,7 @@ You can display different data by using different display modes. These specialized modes make it easier to navigate the relevant pieces of information, such as files and directories, or buffers. -In the main menu, found by clicking @kbd{Mouse-3}, there is a submenu +In the main menu, found by clicking @kbd{mouse-3}, there is a submenu labeled @samp{Displays}. This submenu lets you easily choose between different display modes. diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex index d164d451b890..37e2de896ece 100644 --- a/doc/misc/texinfo.tex +++ b/doc/misc/texinfo.tex @@ -3,7 +3,7 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2016-03-29.15} +\def\texinfoversion{2016-04-14.07} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, @@ -5371,7 +5371,6 @@ \putwordIndexNonexistent \else \catcode`\\ = 0 - \escapechar = `\\ % % If the index file exists but is empty, then \openin leaves \ifeof % false. We have to make TeX try to read something from the file, so @@ -6943,7 +6942,6 @@ \catcode `\>=\other \catcode `\`=\other \catcode `\'=\other - \escapechar=`\\ % % ' is active in math mode (mathcode"8000). So reset it, and all our % other math active characters (just in case), to plain's definitions. @@ -7921,14 +7919,28 @@ % alias because \c means cedilla in @tex or @math \let\texinfoc=\c +\newcount\savedcatcodeone +\newcount\savedcatcodetwo + % Used at the time of macro expansion. % Argument is macro body with arguments substituted \def\scanmacro#1{% \newlinechar`\^^M \def\xeatspaces{\eatspaces}% % + % Temporarily undo catcode changes of \printindex. Set catcode of @ to + % 0 so that @-commands in macro expansions aren't printed literally when + % formatting an index file, where \ is used as the escape character. + \savedcatcodeone=\catcode`\@ + \savedcatcodetwo=\catcode`\\ + \catcode`\@=0 + \catcode`\\=\active + % % Process the macro body under the current catcode regime. - \scantokens{#1\texinfoc}\aftermacro% + \scantokens{#1@texinfoc}\aftermacro% + % + \catcode`\@=\savedcatcodeone + \catcode`\\=\savedcatcodetwo % % The \texinfoc is to remove the \newlinechar added by \scantokens, and % can be noticed by \parsearg. diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 9320a6e166f1..dae514033f8d 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -977,7 +977,7 @@ active, @pxref{Top, , D-Bus, dbus}. @cindex afp method This method is for connecting to remote hosts with the Apple Filing -Protocol for accessing files on Mac OS X volumes. @value{tramp} access +Protocol for accessing files on macOS volumes. @value{tramp} access syntax requires a leading volume (share) name, for example: @file{@trampfn{afp,user@@host,/volume}}. @@ -3390,6 +3390,8 @@ Since @file{filecache} remembers visited places, add the remote directory to the cache: @lisp +@c `with-eval-after-load' has been introduced with Emacs 24.4. Shall +@c be used when appropriate. (eval-after-load "filecache" '(file-cache-add-directory "@trampfn{ssh,news@@news.my.domain,/opt/news/etc/}")) diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi index 0cdf08daee1d..b12614bae532 100644 --- a/doc/misc/trampver.texi +++ b/doc/misc/trampver.texi @@ -8,7 +8,7 @@ @c In the Tramp GIT, the version number is auto-frobbed from @c configure.ac, so you should edit that file and run @c "autoconf && ./configure" to change the version number. -@set trampver 2.2.13.25.1 +@set trampver 2.2.13.25.2 @c Other flags from configuration @set instprefix /usr/local diff --git a/doc/misc/url.texi b/doc/misc/url.texi index c46859968a2e..91cb6b54a847 100644 --- a/doc/misc/url.texi +++ b/doc/misc/url.texi @@ -289,11 +289,15 @@ string or a parsed URL structure. If it is a string, that string is passed through @code{url-encode-url} before using it, to ensure that it is properly URI-encoded (@pxref{URI Encoding}). -@defun url-retrieve-synchronously url +@defun url-retrieve-synchronously url silent no-cookies This function synchronously retrieves the data specified by @var{url}, and returns a buffer containing the data. The return value is @code{nil} if there is no data associated with the URL (as is the case for @code{dired}, @code{info}, and @code{mailto} URLs). + +If the optional argument @var{silent} is non-@code{nil}, progress +messages are suppressed. If the optional argument @var{no-cookies} is +non-@code{nil}, cookies are not stored or sent. @end defun @defun url-retrieve url callback &optional cbargs silent no-cookies @@ -816,12 +820,12 @@ The file transfer protocol. @xref{file/ftp}. @item ssh @cindex ssh -The secure shell protocol. @xref{Inline Methods,,, tramp, The Tramp +The secure shell protocol. @xref{Inline methods,,, tramp, The Tramp Manual}. @item scp @cindex scp -The secure file copy protocol. @xref{External Methods,,, tramp, The +The secure file copy protocol. @xref{External methods,,, tramp, The Tramp Manual}. @item rsync diff --git a/doc/misc/vhdl-mode.texi b/doc/misc/vhdl-mode.texi index ec83b7e62eea..e26ec5277c01 100644 --- a/doc/misc/vhdl-mode.texi +++ b/doc/misc/vhdl-mode.texi @@ -65,7 +65,7 @@ modify this GNU manual.'' * Syntactic Symbols:: * Frequently Asked Questions:: * Getting the latest VHDL Mode release:: -* Sample .emacs File:: +* Sample Init File:: * Limitations and Known Bugs:: * Mailing Lists and Submitting Bug Reports:: * GNU Free Documentation License:: The license for this documentation. @@ -484,7 +484,7 @@ Here's a simplified example of what you can add to your @file{.emacs} file to make the changes described in the previous section (@ref{Interactive Customization}) more permanent. See the Emacs manuals for more information on customizing Emacs via hooks. -@xref{Sample .emacs File}, for a more complete sample @file{.emacs} file. +@xref{Sample Init File}, for a more complete sample @file{.emacs} file. @example @group @@ -600,7 +600,7 @@ optional third argument, which if non-@code{nil}, automatically institutes the new style in the current buffer. The sample @file{.emacs} file provides a concrete example of how a new -style can be added and automatically set. @xref{Sample .emacs File}. +style can be added and automatically set. @xref{Sample Init File}. @node File Styles @subsection File Styles @@ -874,7 +874,7 @@ simply add the following to the top of your @file{.emacs} file: @end example -See the sample @file{.emacs} file @ref{Sample .emacs File} for +See the sample @file{.emacs} file @ref{Sample Init File} for details. @end quotation @@ -894,9 +894,9 @@ either of these lists. The official Emacs VHDL Mode Home Page can be found at @uref{http://www.iis.ee.ethz.ch/~zimmi/emacs/vhdl-mode.html}. -@node Sample .emacs File -@chapter Sample @file{.emacs} file -@cindex Sample @file{.emacs} file +@node Sample Init File +@chapter Sample Init File +@cindex Sample init file Most customizations can be done using the ``Customize'' entry in the VHDL Mode menu, which requires no editing of the .emacs file. diff --git a/doc/misc/viper.texi b/doc/misc/viper.texi index 3f81f67beb43..6b82653c629a 100644 --- a/doc/misc/viper.texi +++ b/doc/misc/viper.texi @@ -2568,7 +2568,7 @@ above block should be commented out. Even though these commands are sometimes useful, they are no substitute for the powerful @emph{tag table} facility of Emacs. Viper's @kbd{:tag} command -in a primitive interface to Emacs tags. @xref{Tags,Tags,Tags,emacs, +in a primitive interface to Emacs tags. @xref{Tags Tables,,,emacs, The GNU Emacs Manual}, for more information on tags. The following two commands are normally bound to a mouse click and are part @@ -2591,7 +2591,7 @@ occurrence of the pattern to search for. Note: while loading initially, Viper binds this mouse action only if it is not already bound to something else. If you want to use the mouse-search -feature, and the @kbd{Meta-Shift-Mouse-1} mouse action is already bound to +feature, and the @kbd{Meta-Shift-mouse-1} mouse action is already bound to something else, you can rebind the mouse-search feature by setting @code{viper-mouse-search-key} to something else in your Viper customization file: @@ -2669,8 +2669,8 @@ purpose of mouse search and mouse insert. By default, this is set to @code{double-click-time} in Emacs and to @code{mouse-track-multi-click-time} milliseconds in XEmacs. @end table -@kindex @kbd{S-Mouse-1} -@kindex @kbd{S-Mouse-2} +@kindex @kbd{S-mouse-1} +@kindex @kbd{S-mouse-2} @kindex @kbd{meta shift button1up} @kindex @kbd{meta shift button2up} @vindex @code{viper-multiclick-timeout} @@ -4428,7 +4428,7 @@ The following two mouse actions are normally bound to special search and insert commands in of Viper: @table @kbd -@item S-Mouse-1 +@item S-mouse-1 Holding Shift and clicking mouse button 1 will initiate search for a region under the mouse pointer. @@ -4437,7 +4437,7 @@ binding only if this mouse action is not already bound to something else. @xref{Viper Specials}, for more information. -@item S-Mouse-2 +@item S-mouse-2 Holding Shift and clicking button 2 of the mouse will insert a region surrounding the mouse pointer. This command can also take a prefix argument. @@ -4445,8 +4445,8 @@ Note: Viper sets this binding only if this mouse action is not already bound to something else. @xref{Viper Specials}, for more details. @end table -@kindex @kbd{S-Mouse-1} -@kindex @kbd{S-Mouse-2} +@kindex @kbd{S-mouse-1} +@kindex @kbd{S-mouse-2} @kindex @kbd{meta button1up} @kindex @kbd{meta button2up} diff --git a/doc/misc/widget.texi b/doc/misc/widget.texi index 49606ed96928..953bcae3ef27 100644 --- a/doc/misc/widget.texi +++ b/doc/misc/widget.texi @@ -243,8 +243,8 @@ If point is not located on a button, invoke the binding in @code{widget-global-map} (by default the global map). @end deffn -@kindex Mouse-2 @r{(on button widgets}) -@item Mouse-2 +@kindex mouse-2 @r{(on button widgets}) +@item mouse-2 @deffn Command widget-button-click @var{event} Invoke the button at the location of the mouse pointer. If the mouse pointer is located in an editable text field, invoke the binding in @@ -456,7 +456,7 @@ There is a standard widget keymap which you might find useful. @findex widget-button-click @defvr Const widget-keymap @key{TAB} and @kbd{C-@key{TAB}} are bound to @code{widget-forward} and -@code{widget-backward}, respectively. @key{RET} and @kbd{Mouse-2} +@code{widget-backward}, respectively. @key{RET} and @kbd{mouse-2} are bound to @code{widget-button-press} and @code{widget-button-click}. @end defvr diff --git a/doc/misc/woman.texi b/doc/misc/woman.texi index 59320d236849..f1fbba6151b7 100644 --- a/doc/misc/woman.texi +++ b/doc/misc/woman.texi @@ -671,19 +671,19 @@ to other man pages. If these man pages are installed then WoMan can easily be directed to follow the reference, i.e., to find and format the man page. When the mouse is passed over a correctly formatted reference it is highlighted, in which case clicking the middle button -@kbd{Mouse-2} will cause WoMan to follow the reference. Alternatively, +@kbd{mouse-2} will cause WoMan to follow the reference. Alternatively, when point is over such a reference the key @key{RET} will follow the reference. Any word in the buffer can be used as a reference by clicking -@kbd{Mouse-2} over it provided the Meta key is also used (although in +@kbd{mouse-2} over it provided the Meta key is also used (although in general such a ``reference'' will not lead to a man page). Alternatively, the key @kbd{r} allows completion to be used to select a reference to follow, based on the word at point as default. @table @kbd -@item @kbd{Mouse-2} -@kindex Mouse-2 +@item @kbd{mouse-2} +@kindex mouse-2 @findex woman-mouse-2 Run WoMan with word under mouse as topic (@code{woman-mouse-2}). The word must be mouse-highlighted unless @code{woman-mouse-2} is used with diff --git a/etc/AUTHORS b/etc/AUTHORS index 14e4fd39f39f..ccf91349de31 100644 --- a/etc/AUTHORS +++ b/etc/AUTHORS @@ -87,15 +87,14 @@ and changed url-expand.el url-parse.el Alakazam Petrofsky: changed hanoi.el -Alan J Third: changed picture.el - Alan Mackenzie: wrote cc-awk.el and co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-fonts.el cc-langs.el cc-mode.el cc-styles.el cc-vars.el -and changed cc-mode.texi bytecomp.el ispell.el isearch.el follow.el - font-lock.el programs.texi windows.texi cc-bytecomp.el frames.texi - lread.c subr.el cconv.el display.texi functions.texi syntax.c window.c - desktop.el edebug.el font-core.el jit-lock.el and 118 other files +and changed cc-mode.texi bytecomp.el font-lock.el isearch.el + programs.texi follow.el ispell.el lread.c subr.el display.texi + frames.texi modes.texi windows.texi cc-bytecomp.el edebug.el + font-core.el functions.texi jit-lock.el lisp.el search.texi syntax.c + and 119 other files Alan Modra: changed unexelf.c @@ -106,7 +105,7 @@ Alan Shutko: changed diary-lib.el calendar.el bindings.el cal-hebrew.el solar.el Alan Third: wrote dabbrev-tests.el -and changed emacs.c nsterm.h nsterm.m +and changed nsterm.m nsterm.h emacs.c picture.el rect.el Alastair Burt: changed gnus-art.el smiley.el @@ -192,9 +191,7 @@ Alon Albert: wrote rcompile.el Alp Aker: changed nsfont.m nsterm.m buff-menu.el nsfns.m nsmenu.m nsterm.h configure.ac macfont.m mule-cmds.el nsselect.m window.el -Álvar Ibeas: changed TUTORIAL.es - -Álvar Jesús Ibeas Martín: changed emacs-lisp-intro.texi +Álvar Jesús Ibeas Martín: changed TUTORIAL.es emacs-lisp-intro.texi Ami Fischman: changed bindings.el calendar.el diary-lib.el print.c savehist.el vc-git.el @@ -204,9 +201,9 @@ Anand Mitra: changed gnus-sum.el Anders Holst: wrote hippie-exp.el Anders Lindgren: wrote autorevert.el cwarn.el follow.el -and changed nsterm.m nsfns.m nsterm.h nsmenu.m nsimage.m font-lock.el - Info.plist.in README etags.c loadup.el lread.c ns-win.el vc-svn.el - compile.el ert.el nsfont.m +and changed nsterm.m nsfns.m nsmenu.m nsterm.h font-lock.el nsimage.m + README etags.c Info.plist.in compile.el ert.el loadup.el lread.c + ns-win.el nsfont.m term.el vc-svn.el window.el Andrea Rossetti: changed ruler-mode.el @@ -237,14 +234,15 @@ Andreas Leue: changed artist.el Andreas Luik: changed xfns.c xterm.c Andreas Politz: changed editfns.c elp.el frame.c ibuffer.el ido.el - imenu.el modes.texi outline.el sql.el subr.el term.el wid-edit.el + imenu.el modes.texi outline.el sh-script.el sql.el subr.el term.el + wid-edit.el 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 fileio.c files.el keyboard.c xterm.c lread.c - editfns.c emacs.c fns.c src/Makefile.in print.c eval.c font.c sysdep.c - xfns.c and 635 other files + 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 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 @@ -351,14 +349,13 @@ and changed ada-mode.texi frames.texi generic-x.el texinfo.el Artem Chuprina: changed message.el -Artur Malabarba: wrote character-fold-tests.el faces-tests.el - isearch-tests.el let-alist.el simple-test.el sort-tests.el - tabulated-list-test.el -and changed package.el isearch.el character-fold.el files.el - tabulated-list.el package-test.el menu-bar.el faces.el files-x.el - help-fns.el replace.el align.el bytecomp.el custom.texi cl-lib-tests.el - custom.el map.el simple.el subr-tests.el variables.texi bindings.el - and 39 other files +Artur Malabarba: wrote char-fold-tests.el faces-tests.el isearch-tests.el + let-alist.el simple-test.el sort-tests.el tabulated-list-test.el +and changed package.el isearch.el lisp/char-fold.el files.el + tabulated-list.el package-test.el menu-bar.el replace.el bytecomp.el + faces.el files-x.el test/automated/char-fold-tests.el custom.el + custom.texi help-fns.el simple.el subr-tests.el align.el bindings.el + cl-lib-tests.el cl-macs.el and 40 other files Arun Persaud: changed org-agenda.el org-src.el @@ -371,9 +368,9 @@ Atsuo Ohki: changed lread.c Aubrey Jaffer: changed info.el unexelf.c Aurélien Aptel: changed alloc.c emacs-module.h lisp.h Makefile - configure.ac data.c dynlib.c dynlib.h lread.c mod-test.c modhelp.py - print.c src/Makefile.in test.el cus-face.el dispextern.h display.texi - emacs-module.c faces.el nsterm.m ox-html.el and 6 other files + configure.ac cus-face.el data.c dispextern.h display.texi dynlib.c + dynlib.h emacs-module.c faces.el lread.c mod-test.c modhelp.py nsterm.m + ox-html.el print.c src/Makefile.in test.el and 5 other files Axel Boldt: changed ehelp.el electric.el @@ -490,7 +487,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 @@ -501,7 +499,7 @@ and changed fill.el simple.el indent.el paragraphs.el cmds.c intervals.c text-mode.el textprop.c ada.el allout.el awk-mode.el bibtex.el buffer.c buffer.h c-mode.el and 38 other files -Boris Samorodov: changed imap.el +Boris Samorodov: changed net/imap.el Boruch Baum: changed bookmark.el @@ -534,7 +532,7 @@ Brian Jenkins: changed frame.c frames.texi hooks.texi Brian Marick: co-wrote hideif.el -Brian Mckenna: changed eww.el +Brian McKenna: changed eww.el Brian Palmer: changed erc.el erc-list.el @@ -598,6 +596,8 @@ Caveh Jalali: changed configure.ac intel386.h sol2-4.h Cédric Chépied: changed newst-treeview.el +Cesar Quiroz: changed maintaining.texi + Chad Brown: changed aix4-2.h bsd-common.h config.in configure.ac cygwin.h dired.c gnu-linux.h mh-comp.el msdos.h sed2v2.inp sysdep.c usg5-4.h @@ -740,12 +740,16 @@ Chris Zheng: changed gnutls.c calculator.el w32-win.el Chuck Blake: changed term.c +Chunyang Xu: changed esh-mode.el + Chunyu Wang: changed gnus-art.el pcl-cvs.texi Claudio Bley: changed image.c image.el process.c stat.h w32-win.el w32.c Claudio Fontana: changed Makefile.in leim/Makefile.in lib-src/Makefile.in +Clément Pit--Claudel: changed progmodes/python.el + Colin Marquardt: changed gnus.el message.el Colin Rafferty: changed message.el @@ -775,9 +779,8 @@ Daiki Ueno: wrote epa-dired.el epa-file.el epa-hook.el epa-mail.el epa.el and co-wrote sasl-cram.el sasl-digest.el and changed mml2015.el epa.texi mml1991.el auth-source.el mml-smime.el package.el mml.el gnus.texi mm-decode.el mm-uu.el process.c subr.el - auth.texi gnus-sum.el image-mode.el mm-view.el mml-sec.el - processes.texi qp.el archive-contents archive-contents.sig - and 45 other files + auth.texi epg-tests.el gnus-sum.el mm-view.el mml-sec.el processes.texi + archive-contents archive-contents.sig dbus.el and 45 other files Dale Gulledge: changed TUTORIAL.eo @@ -823,7 +826,7 @@ and co-wrote js.el and changed w32fns.c alloc.c emacs.c cl-macs.el image.c keyboard.c lisp.h process.c sh-script.el configure.ac cygw32.c simple.el src/Makefile.in w32term.h automated/cl-lib-tests.el cygw32.h dbusbind.c fns.c unexcw.c - unexw32.c w32.c and 154 other files + unexw32.c w32.c and 155 other files Daniel Dehennin: changed mml2015.el gnus-mlspl.el gnus-msg.el mm-decode.el ox.el @@ -851,7 +854,7 @@ Daniel LaLiberte: wrote cust-print.el edebug.el isearch.el and co-wrote hideif.el and changed mlconvert.el eval-region.el -Daniel Mcclanahan: changed lisp-mode.el +Daniel McClanahan: changed lisp-mode.el Daniel M Coffman: changed arc-mode.el @@ -907,8 +910,6 @@ Dato Simó: changed network-stream.el Dave Detlefs: co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-langs.el cc-menus.el cc-mode.el cc-styles.el cc-vars.el -Dave Goldberg: changed message.el - Dave Lambert: changed sol2-5.h xfns.c xterm.c xterm.h Dave Love: wrote autoarg.el autoconf.el benchmark.el cfengine.el @@ -920,7 +921,7 @@ and co-wrote latin-ltx.el socks.el and changed configure.ac help.el mule-cmds.el fortran.el mule-conf.el xterm.c browse-url.el mule.el coding.c src/Makefile.in european.el fns.c mule-diag.el simple.el wid-edit.el cus-edit.el cus-start.el - files.el keyboard.c byte-opt.el info.el and 772 other files + files.el keyboard.c byte-opt.el info.el and 774 other files Dave Pearson: wrote 5x5.el quickurl.el @@ -952,7 +953,7 @@ David De La Harpe Golden: changed files.el mouse.el simple.el fileio.c cus-start.el nsselect.m select.el w32-fns.el x-win.el xterm.c David Edmondson: changed message.el mml2015.el erc.el gnus-cite.el - imap.el mm-uu.el mm-view.el nnfolder.el nnimap.el nnml.el process.c + mm-uu.el mm-view.el net/imap.el nnfolder.el nnimap.el nnml.el process.c shr.el David Engster: wrote mairix.el nnmairix.el @@ -1066,7 +1067,7 @@ David Robinson: changed menu-bar.el x-win.el David Röthlisberger: changed ido.el -David S. Goldberg: changed gnus-art.el message.el +David S. Goldberg: changed message.el gnus-art.el David Vazquez: changed m4-mode.el @@ -1096,8 +1097,8 @@ and changed complete.el Denis Stünkel: changed ibuf-ext.el -Deniz Dogan: changed rcirc.el simple.el css-mode.el erc-backend.el - TUTORIAL.sv commands.texi erc-log.el erc.el image.el iswitchb.el +Deniz Dogan: changed rcirc.el simple.el css-mode.el TUTORIAL.sv + commands.texi erc-backend.el erc-log.el erc.el image.el iswitchb.el lisp-mode.el process.c progmodes/python.el quickurl.el rcirc.texi vc/vc-bzr.el wdired.el window.el @@ -1105,7 +1106,7 @@ Dennis Gilmore: changed sparc.h Denys Duchier: changed pop3.el -Derek Atkins: changed imap.el pgg-pgp.el +Derek Atkins: changed net/imap.el pgg-pgp.el Derek L. Davies: changed gud.el @@ -1116,7 +1117,7 @@ Derek Upham: changed nxml-mode.el Detlev Zundel: wrote re-builder.el and changed buffer.c -Devon Sean McCullough: changed comint.el url-http.el +Devon Sean McCullough: changed url-http.el comint.el Dhruva Krishnamurthy: changed emacsclient.c fontset.c sound.c w32proc.c @@ -1136,9 +1137,9 @@ and changed nntp.el message.el gnus-group.el gnus-sum.el gnus-msg.el Dieter Schuster: changed etags.c -Dima Kogan: changed erc-backend.el font.c gud.el hideshow.el alloc.c - autorevert.el image.c subword.el erc-button.el lisp.el simple.el - winner.el xfaces.c xgselect.c +Dima Kogan: changed erc-backend.el font.c gud.el hideshow.el + autorevert.el image.c subword.el alloc.c erc-button.el lisp.el + simple.el winner.el xfaces.c xgselect.c Dirk Herrmann: co-wrote bibtex.el @@ -1161,10 +1162,12 @@ Dmitry Dzhus: changed gdb-mi.el gud.el fadr.el all.xpm building.texi Dmitry Gorbik: changed org.el Dmitry Gutov: wrote elisp-mode-tests.el json-tests.el vc-hg.el -and changed ruby-mode.el xref.el elisp-mode.el etags.el project.el - ruby-mode-tests.el vc-git.el ruby.rb package.el vc.el js.el log-edit.el - menu-bar.el vc-svn.el minibuffer.el package-test.el progmodes/grep.el - find-func.el lisp.el pulse.el simple.el and 83 other files + xref-tests.el +and changed ruby-mode.el xref.el elisp-mode.el etags.el + ruby-mode-tests.el vc-git.el project.el ruby.rb js.el package.el vc.el + log-edit.el symref/grep.el menu-bar.el package-test.el + progmodes/grep.el vc-svn.el find-func.el lisp.el minibuffer.el pulse.el + and 93 other files Dmitry Kurochkin: changed isearch.el @@ -1187,11 +1190,11 @@ Drake Wilson: changed emacsclient.c files.el misc.texi Drew Adams: wrote light-blue-theme.el and co-wrote color.el and changed cus-edit.el dired.el faces.el files.el help-mode.el imenu.el - info.el isearch.el menu-bar.el mouse.el ange-ftp.el bindings.el - bookmark.el custom.el descr-text.el dired.texi etags.el finder.el - frame.el help-fns.el help.el and 11 other files + info.el isearch.el menu-bar.el modes.texi mouse.el ange-ftp.el + bindings.el bookmark.el custom.el descr-text.el dired.texi etags.el + finder.el frame.el help-fns.el and 11 other files -Ed L. Cashin: changed gnus-sum.el imap.el +Ed L. Cashin: changed gnus-sum.el net/imap.el Ed Swarthout: changed hexl.el textmodes/table.el @@ -1244,10 +1247,10 @@ Eli Tziperman: wrote rmail-spam-filter.el Eli Zaretskii: wrote [bidirectional display in xdisp.c] [tty menus in term.c] abbrev-tests.el bidi.c biditest.el coding-tests.el rxvt.el tty-colors.el -and changed xdisp.c msdos.c w32.c w32fns.c files.el display.texi fileio.c - simple.el w32proc.c w32term.c keyboard.c dispnew.c emacs.c window.c - dispextern.h frames.texi src/Makefile.in INSTALL config.bat files.texi - sed1v2.inp and 981 other files +and changed xdisp.c msdos.c w32.c w32fns.c display.texi files.el + simple.el fileio.c w32proc.c w32term.c keyboard.c emacs.c dispnew.c + dispextern.h INSTALL config.bat sed1v2.inp src/Makefile.in term.c + frames.texi window.c and 1017 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 @@ -1268,8 +1271,8 @@ and changed ada-stmt.el Era Eriksson: changed bibtex.el dired.el json.el ses.el ses.texi shell.el tramp.el tramp.texi -Eric Abrahamsen: changed registry.el nnimap.el gnus-registry.el - gnus-start.el nnir.el eieio.el gnus-bcklg.el gnus-group.el gnus-sum.el +Eric Abrahamsen: changed registry.el nnimap.el gnus-registry.el nnir.el + eieio.el gnus-bcklg.el gnus-group.el gnus-start.el gnus-sum.el gnus.texi nnmairix.el org.el org.texi ox-html.el ox-latex.el Eric Bélanger: changed image.c @@ -1283,10 +1286,10 @@ and changed mh-utils.el mh-e.el mh-comp.el mh-mime.el Eric Eide: changed gnus-xmas.el -Eric Hanchrow: changed erc.el shr.el vc-git.el TUTORIAL.es abbrev.el +Eric Hanchrow: changed erc.el vc-git.el TUTORIAL.es abbrev.el autorevert.el cperl-mode.el dired.el emacsclient.c env.el frames.texi ibuf-ext.el ispell.el ldap.el make-dist opascal.el progmodes/python.el - tramp.texi window.el + shr.el tramp.texi window.el Éric Jacoboni: changed fr-refcard.tex @@ -1469,7 +1472,7 @@ and changed dired.el comint.el cus-edit.el files.el ps-print.el Francis Litterio: changed erc.el erc-list.el erc-dcc.el erc-notify.el erc-button.el erc-goodies.el erc-nets.el erc-ring.el Makefile - erc-pcomplete.el message.el erc-backend.el erc-ibuffer.el erc-match.el + erc-backend.el erc-pcomplete.el message.el erc-ibuffer.el erc-match.el erc-nickserv.el erc-page.el erc-speedbar.el gnus-util.el keymaps.texi os.texi saveplace.el and 4 other files @@ -1494,8 +1497,6 @@ Frank Schmitt: changed gnus-sum.el cmdargs.texi gnus-faq.texi Frank Weinberg: changed gnus-art.el -Fran Litterio: changed erc.el erc-backend.el - Frédéric Bothamy: changed TUTORIAL.fr Frederic Han: changed iso-cvt.el @@ -1520,6 +1521,8 @@ Fred Oberhauser: changed nnmail.el Fredrik Axelsson: changed cus-start.el window.c +Fredrik Bergroth: changed editfns.c + Friedrich Beckmann: changed vhdl-mode.el Friedrich Delgado Friedrichs: changed org.el @@ -1549,7 +1552,8 @@ Gary Oberbrunner: changed gud.el Gary Wong: changed termcap.c tparam.c -Gaute B Strokkenes: changed imap.el gnus-fun.el mail-source.el process.c +Gaute B Strokkenes: changed net/imap.el gnus-fun.el mail-source.el + process.c G Dinesh Dutt: changed etags.el @@ -1606,12 +1610,14 @@ Giuseppe Scrivano: changed browse-url.el buffer.c configure.ac sysdep.c Glenn Morris: wrote automated/f90.el automated/vc-bzr.el check-declare.el 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 - lib-src/Makefile.in startup.el authors.el admin.el cal-menu.el - holidays.el and 1594 other files + make-dist simple.el bytecomp.el emacs.texi misc/Makefile.in authors.el + ack.texi lib-src/Makefile.in startup.el admin.el cal-menu.el + display.texi and 1603 other files Glynn Clements: wrote gamegrid.el snake.el tetris.el +Göktuğ Kayaalp: changed vc-cvs.el + Göran Uddeborg: changed isc4-1.h Gordon Matzigkeit: changed gnus-uu.el @@ -1625,10 +1631,10 @@ Greg Klanderman: changed messagexmas.el Greg McGary: co-wrote po.el and changed tar-mode.el -Grégoire Jadi: changed emacsgtkfixed.c keyboard.c xwidget.c xwidget.el - org.texi Makefile.in configure.ac dispextern.h dispnew.c emacs.c lisp.h - print.c rcirc.el termhooks.h window.c xdisp.c xterm.c xwidget.h - latin-post.el ob-core.el org-id.el and 4 other files +Grégoire Jadi: changed org.texi emacsgtkfixed.c keyboard.c rcirc.el + xwidget.c xwidget.el Makefile.in configure.ac dispextern.h dispnew.c + emacs.c latin-post.el lisp.h ob-core.el org-id.el org.el print.c + reporter.el sendmail.el termhooks.h window.c and 4 other files Gregorio Gervasio, Jr.: changed gnus-sum.el @@ -1734,6 +1740,8 @@ Hoan Ton-That: changed erc-log.el Holger Schauer: wrote fortune.el and changed message-utils.el +Hong Xu: changed files.texi maintaining.texi programs.texi vc.el + Hosoya Kei: changed TUTORIAL.ja Hovav Shacham: wrote windmove.el @@ -1779,7 +1787,7 @@ Ilya Shlyakhter: changed org.el ob-lilypond.el org-clock.el Ilya Zakharevich: wrote tmm.el and co-wrote cperl-mode.el -and changed syntax.c w32fns.c intervals.c syntax.h textprop.c dired.c +and changed w32fns.c syntax.c intervals.c syntax.h textprop.c dired.c font-lock.el intervals.h regex.c regex.h search.c Ilya Zonov: changed org-mouse.el @@ -1951,7 +1959,7 @@ Jason Dunsmore: changed org.el ox-html.el Jason L. Wright: changed smtpmail.el -Jason Merrill: changed gnus-sum.el add-log.el gnus-salt.el imap.el +Jason Merrill: changed gnus-sum.el add-log.el gnus-salt.el net/imap.el nnfolder.el Jason Riedy: changed org-table.el org.texi @@ -2101,10 +2109,10 @@ Joakim Jalap: wrote programmer-dvorak.el Joakim Verona: wrote db-javascript.el xwidget.el and co-wrote db-ebrowse.el -and changed emacsgtkfixed.c keyboard.c xwidget.c Makefile.in configure.ac - window.c dispextern.h dispnew.c emacs.c lisp.h print.c termhooks.h - xdisp.c xterm.c xwidget.h image-mode.el image.c image.el nnrss.el - progmodes/compile.el thingatpt.el window.h +and changed xwidget.c Makefile.in configure.ac emacsgtkfixed.c keyboard.c + window.c dispextern.h display.texi dispnew.c emacs.c image-mode.el + image.c image.el lisp.h nnrss.el print.c progmodes/compile.el + termhooks.h thingatpt.el window.h xdisp.c and 3 other files Joanna Pluta: changed TUTORIAL.pl @@ -2220,10 +2228,10 @@ John Wiegley: wrote align.el automated/eshell.el cal-bahai.el em-alias.el remember.el timeclock.el and co-wrote org-pcomplete.el and changed org-clock.el org-agenda.el erc-chess.el org.el erc.el - iswitchb.el ido.el alloc.c control.texi pcase.el allout.el - auth-source.el cal-menu.el calendar.el desktop.el diary-lib.el - erc-bbdb.el erc-button.el erc-complete.el erc-fill.el erc-ibuffer.el - and 24 other files + iswitchb.el ido.el alloc.c allout.el auth-source.el cal-menu.el + calendar.el control.texi desktop.el diary-lib.el erc-bbdb.el + erc-button.el erc-complete.el erc-fill.el erc-ibuffer.el erc-list.el + and 25 other files John Williams: changed etags.el @@ -2271,9 +2279,9 @@ and changed erc.el erc-track.el erc-backend.el erc-match.el erc-stamp.el erc-button.el erc-fill.el erc-members.el erc-truncate.el erc-compat.el package-test.el Makefile erc-dcc.el erc-ibuffer.el erc-macs.el erc-page.el erc-pcomplete.el erc-sound.el minibuffer.el package.el - erc-bbdb.el and 12 other files + erc-bbdb.el and 13 other files -Jose A. Ortega Ruiz: changed url-http.el gnus-sum.el +Jose A. Ortega Ruiz: changed gnus-sum.el url-http.el Jose E. Marchesi: changed ada-mode.el gomoku.el simple.el smtpmail.el @@ -2315,10 +2323,12 @@ and changed subr.el desktop.el w32fns.c server.el emacsclient.c simple.el Juan Pechiar: wrote ob-mscgen.el and changed ob-octave.el -Juergen Kreileder: changed imap.el nnimap.el +Juergen Kreileder: changed net/imap.el nnimap.el Juergen Nickelsen: wrote ws-mode.el +Jules Tamagnan: changed progmodes/python.el + Julian Gehring: changed org.texi orgcard.tex Julian Scheid: changed tramp.el color.el @@ -2337,6 +2347,8 @@ and changed shr.el org-agenda.el gnus-art.el nnimap.el gnus-html.el Julien Gilles: wrote gnus-ml.el +Jun Hao: changed desktop.el + Junio Hamano: changed window.el Jure Cuhalev: changed ispell.el @@ -2351,7 +2363,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 - ispell.el image-mode.el man.el cus-edit.el and 354 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 @@ -2403,10 +2415,11 @@ Karl Eichwalder: changed Makefile.in add-log.el bookmark.el dired-aux.el dired.el info.el menu-bar.el midnight.el po.el Karl Fogel: wrote bookmark.el mail-hist.el saveplace.el -and changed simple.el files.el simple-test.el vc-svn.el doc-view.el - image-mode.el info.el CONTRIBUTE INSTALL autogen.sh isearch.el - menu-bar.el thingatpt.el vc-git.el vc-hg.el vc.el vc/vc-bzr.el - INSTALL.REPO comint.el configure configure.ac and 13 other files +and changed simple.el files.el doc-view.el image-mode.el info.el + vc-svn.el CONTRIBUTE INSTALL autogen.sh isearch.el menu-bar.el + simple-test.el thingatpt.el INSTALL.REPO comint.el configure + configure.ac editfns.c git-workflow gnus-bookmark.el gnus-msg.el + and 15 other files Karl Heuer: changed keyboard.c lisp.h xdisp.c buffer.c xfns.c xterm.c alloc.c files.el frame.c configure.ac window.c data.c minibuf.c @@ -2435,11 +2448,12 @@ Katsuhiro Hermit Endo: changed gnus-group.el gnus-spec.el Katsumi Yamaoka: wrote canlock.el and changed gnus-art.el message.el gnus-sum.el gnus.texi mm-decode.el - mm-util.el gnus-util.el mm-view.el gnus-msg.el gnus-group.el mml.el + mm-util.el mm-view.el gnus-util.el gnus-msg.el mml.el gnus-group.el rfc2047.el gnus-start.el gnus.el shr.el nntp.el gnus-agent.el nnrss.el - mm-uu.el nnmail.el emacs-mime.texi and 153 other files + mm-uu.el nnmail.el emacs-mime.texi and 156 other files -Kaushal Modi: changed apropos.el calc-yank.el eww.el woman.el +Kaushal Modi: changed isearch.el apropos.el calc-yank.el eww.el + printing.el woman.el Kaushik Srenevasan: changed gdb-mi.el @@ -2470,9 +2484,9 @@ Kelvin White: changed erc.el erc-pcomplete.el erc.texi NEWS.24 erc-backend.el erc-ring.el erc-stamp.el Ken Brown: changed configure.ac gmalloc.c sheap.c emacs.c cygwin.h - unexcw.c browse-url.el conf_post.h emacs.rc.in server.el w32term.c - alloc.c dispextern.h frame.c lisp.h profiler.c src/Makefile.in sysdep.c - syssignal.h test.el vm-limit.c and 23 other files + unexcw.c browse-url.el conf_post.h emacs.rc.in w32term.c alloc.c + dispextern.h frame.c lisp.h profiler.c server.el src/Makefile.in + sysdep.c syssignal.h vm-limit.c xgselect.c and 24 other files Ken Brush: changed emacsclient.c @@ -2500,10 +2514,10 @@ Kenneth Stailey: changed alpha.h configure.ac ns32000.h openbsd.h pmax.h Ken Olum: changed mail/rmailmm.el message.el rmail.el -Ken Raeburn: changed lisp.h xterm.c xfns.c keyboard.c lread.c alloc.c - buffer.c fns.c minibuf.c coding.c configure.ac editfns.c fileio.c - keymap.c xdisp.c emacs.c src/Makefile.in undo.c charset.h coding.h - fontset.c and 101 other files +Ken Raeburn: changed lisp.h xfns.c xterm.c lread.c alloc.c buffer.c + keyboard.c fns.c minibuf.c coding.c configure.ac editfns.c fileio.c + keymap.c xdisp.c emacs.c undo.c charset.h coding.h fontset.c process.c + and 101 other files Ken Stevens: wrote ispell.el @@ -2562,7 +2576,7 @@ and changed xdisp.c dispextern.h process.c simple.el window.c keyboard.c Kimit Yada: changed copyright.el Kim-Minh Kaplan: changed gnus-picon.el gnus-sum.el gnus-start.el - gnus-win.el gnus-xmas.el gnus.texi imap.el message.el nndraft.el + gnus-win.el gnus-xmas.el gnus.texi message.el net/imap.el nndraft.el nnml.el Kirill A. Korinskiy: changed fortune.el @@ -2660,9 +2674,9 @@ and co-wrote gnus-kill.el gnus-mh.el gnus-msg.el gnus-score.el nnheader.el nnimap.el nnmbox.el nnmh.el nnml.el nnspool.el nnvirtual.el rfc2047.el time-date.el and changed gnus.texi gnus-cite.el smtpmail.el pop3.el gnus-xmas.el - gnutls.c auth-source.el url-http.el files.el proto-stream.el subr.el - dired.el simple.el imap.el image.c nnrss.el text.texi xml.c - display.texi editfns.c gnutls.el and 249 other files + gnutls.c subr.el auth-source.el url-http.el files.el proto-stream.el + simple.el dired.el editfns.c image.c nnrss.el text.texi display.texi + xml.c nnultimate.el gnus-nocem.el and 274 other files Lars Rasmusson: changed ebrowse.c @@ -2688,7 +2702,7 @@ Lee Duhem: changed eval.c Leigh Stoller: changed emacsclient.c server.el -Lele Gaifax: changed TUTORIAL.it +Lele Gaifax: changed progmodes/python.el TUTORIAL.it python-tests.el Lennart Borgman: co-wrote ert-x.el and changed nxml-mode.el tutorial.el window.el ada-xref.el buff-menu.el @@ -2700,11 +2714,11 @@ and changed nxml-mode.el tutorial.el window.el ada-xref.el buff-menu.el Lennart Staflin: changed dired.el diary-ins.el diary-lib.el tq.el xdisp.c Leo Liu: wrote calc-tests.el pcmpl-x.el -and changed octave.el ido.el rcirc.el lisp-mode.el files.el subr.el +and changed octave.el ido.el rcirc.el files.el lisp-mode.el subr.el eldoc.el simple.el flymake.el smie.el abbrev.el progmodes/python.el cfengine.el cl-extra.el cl-macs.el emacs-lisp/cl-lib.el progmodes/compile.el register.el rng-valid.el window.el bindings.el - and 161 other files + and 164 other files Leonard H. Tower Jr.: changed rnews.el rnewspost.el emacsbug.el rmailout.el sendmail.el @@ -2798,13 +2812,13 @@ Marc Fleischeuers: changed files.el Marc Girod: changed informat.el rmail.el rmailsum.el sendmail.el -Marcin Borkowski: changed battery.el +Marcin Borkowski: changed battery.el doc-view.el studly.el Marc Lefranc: changed gnus-art.el Marco Melgazzi: changed term.el -Marco Wahl: changed org-agenda.el +Marco Wahl: changed org-agenda.el org.el Marco Walther: changed mips-siemens.h unexelfsni.c unexsni.c @@ -2871,9 +2885,10 @@ Marko Kohtala: changed info.el Mark Osbourne: changed hexl-mode.el -Mark Oteiza: changed mpc.el calc-units.el emacs-lisp/chart.el eww.el - thingatpt.el dunnet.el tamil-dvorak.el calendar.el custom.el eldoc.el - files.el progmodes/python.el tex-mode.el +Mark Oteiza: changed mpc.el calc-units.el eww.el rect.el + emacs-lisp/chart.el thingatpt.el calendar.el custom.el disass.el + dunnet.el eldoc.el files.el progmodes/python.el sh-script.el + tamil-dvorak.el tex-mode.el Mark Plaksin: changed nnrss.el term.el @@ -2935,9 +2950,9 @@ Martin Neitzel: changed supercite.el Martin Pohlack: changed iimage.el pc-select.el Martin Rudalics: changed window.el window.c windows.texi frame.c w32fns.c - xdisp.c w32term.c frames.texi xterm.c xfns.c frame.el help.el buffer.c - display.texi cus-start.el dispnew.c window.h dired.el nsfns.m frame.h - mouse.el and 177 other files + xdisp.c w32term.c xterm.c frames.texi xfns.c frame.el help.el buffer.c + display.texi cus-start.el dispnew.c mouse.el window.h dired.el nsfns.m + frame.h and 177 other files Martin Stjernholm: wrote cc-bytecomp.el and co-wrote cc-align.el cc-cmds.el cc-compat.el cc-defs.el cc-engine.el @@ -2984,7 +2999,7 @@ Mathias Megyei: changed lisp/Makefile.in Mats Lidell: changed TUTORIAL.sv european.el gnus-art.el org-element.el -Matt Armstrong: changed gnus-topic.el gnus.el imap.el message.el +Matt Armstrong: changed gnus-topic.el gnus.el message.el net/imap.el Matt Curtis: changed pulse.el @@ -3049,9 +3064,9 @@ Michael Albinus: wrote auto-revert-tests.el dbus-tests.el dbus.el and co-wrote tramp-cache.el tramp-sh.el tramp.el and changed tramp.texi dbusbind.c trampver.el trampver.texi tramp-adb.el ange-ftp.el dbus.texi files.el tramp-fish.el autorevert.el files.texi - tramp-imap.el os.texi configure.ac lisp.h notifications.el - gfilenotify.c keyboard.c tramp-vc.el automated/Makefile.in inotify.c - and 123 other files + tramp-imap.el notifications.el os.texi configure.ac lisp.h + gfilenotify.c tramp-vc.el keyboard.c lisp/Makefile.in simple.el + and 125 other files Michael Ben-Gershon: changed acorn.h configure.ac riscix1-1.h riscix1-2.h unexec.c @@ -3133,8 +3148,9 @@ Michael Shields: changed spam.el gnus-art.el gnus-sum.el gnus-cite.el Makefile.in gnus-group.el gnus.el intel386.h nndraft.el pgg-def.el window.c window.el -Michael Sperber: changed gnus-sum.el nnmail.el aix3-1.h aix4-2.h +Michael Sperber: changed org.el nnmail.el aix3-1.h aix4-2.h gnus-sum.el gnus.texi mail-source.el mailcap.el nnml.el org-capture.el + org-footnote.el Michael Staats: wrote pc-select.el @@ -3185,7 +3201,7 @@ Mike Haertel: changed 7300.h Mike Kazantsev: changed erc-dcc.el Mike Kupfer: changed emacs-mime.texi gnus.texi mh-comp.el mh-e.el - mh-utils.el + mh-e.texi mh-utils.el Mike Lamb: changed em-unix.el esh-util.el pcmpl-unix.el @@ -3200,8 +3216,6 @@ Mike Newton: co-wrote bibtex.el Mike Rowan: changed process.c alloc.c dispnew.c keyboard.c process.h sysdep.c xdisp.c -Mike Sperber: changed org.el org-footnote.el - Mike Williams: wrote mouse-sel.el thingatpt.el and changed sgml-mode.el xml-lite.el @@ -3259,7 +3273,7 @@ Myles English: changed org-clock.el Nachum Dershowitz: co-wrote cal-hebrew.el Nagy Andras: co-wrote gnus-sieve.el -and changed imap.el gnus.el +and changed net/imap.el gnus.el Nakagawa Makoto: changed ldap.el @@ -3336,17 +3350,17 @@ Nicolas Graner: changed message.el Nicolas Petton: wrote map-tests.el map.el seq-tests.el seq.el thunk-tests.el thunk.el and co-wrote auth-source-tests.el subr-tests.el -and changed sequences.texi emacs.png emacs23.png README obarray-tests.el - obarray.el arc-mode.el authors.el cl-extra.el configure.ac emacs.svg - sed2v2.inp Emacs.icns Makefile.in auth-source.el emacs.ico data.c - emacs-document.svg emacs-document23.svg emacs.texi emacs23.svg - and 5 other files +and changed sequences.texi README configure.ac emacs.png sed2v2.inp + authors.el emacs23.png arc-mode.el cl-extra.el emacs.svg Emacs.icns + Makefile.in README.W32 auth-source.el emacs.ico obarray-tests.el + obarray.el data.c emacs-document.svg emacs-document23.svg emacs.texi + and 7 other files 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 @@ -3375,8 +3389,11 @@ and changed rsz-mini.el emacs-buffer.gdb comint.el files.el Makefile Noah Lavine: changed tramp.el -Noam Postavsky: changed buffer-tests.el cmdproxy.c files.el - process-tests.el w32proc.c +Noam Postavsky: changed search.c cl-preloaded.el debugging.texi simple.el + w32.c buffer-tests.el buffer.c buffers.texi category.c cl-macs.el + cmdproxy.c cus-edit.el dired.c elisp-mode.el em-term.el + emacs-lisp-intro.texi etags.el eval.c files.el find-func.el help-fns.el + and 24 other files Nobuyoshi Nakada: co-wrote ruby-mode.el @@ -3452,13 +3469,10 @@ and co-wrote eudc-bob.el eudc-export.el eudc-hotlist.el eudc-vars.el eudc.el eudcb-bbdb.el eudcb-ldap.el eudcb-ph.el and changed ph.el -Oscar Fuentes: changed xfns.c CPP-DEFINES addpm.c addsection.c - browse-url.el configure.ac keyboard.c ms-w32.h preprep.c - progmodes/grep.el vc-cvs.el vc-git.el vc-hg.el vc-hooks.el vc-mtn.el - vc-svn.el vc.el vc/vc-bzr.el w32.c w32heap.c w32term.c - -Óscar Fuentes: changed ido.el cmdproxy.c diff-mode.el emacsclient.c - vc-bzr.el +Óscar Fuentes: changed ido.el xfns.c CPP-DEFINES addpm.c addsection.c + browse-url.el cmdproxy.c configure.ac diff-mode.el emacsclient.c + keyboard.c ms-w32.h preprep.c progmodes/grep.el vc-bzr.el vc-cvs.el + vc-git.el vc-hg.el vc-hooks.el vc-mtn.el vc-svn.el and 6 other files Pascal Dupuis: changed octave.el @@ -3478,9 +3492,9 @@ and changed imenu.el make-mode.el Paul Eggert: wrote rcs2log and co-wrote cal-dst.el and changed lisp.h configure.ac alloc.c process.c xdisp.c fileio.c - sysdep.c keyboard.c image.c editfns.c emacs.c xterm.c lread.c data.c - callproc.c fns.c Makefile.in eval.c buffer.c dispnew.c gnulib.mk - and 1472 other files + sysdep.c keyboard.c editfns.c image.c emacs.c xterm.c lread.c data.c + callproc.c fns.c Makefile.in eval.c xfns.c dispnew.c gnulib.mk + and 1480 other files Paul Fisher: changed fns.c @@ -3494,9 +3508,9 @@ and changed message.el gnus-util.el gnus-int.el gnus.el gnus-agent.el Paul Pogonyshev: changed progmodes/python.el subr.el which-func.el align.el byte-opt.el cc-langs.el configure.ac dabbrev.el display.texi - eldoc.el etags.el image-file.el image.c image.el info.el + eldoc.el elisp-mode.el etags.el image-file.el image.c image.el info.el progmodes/compile.el replace.el search.texi searching.texi ses.el - src/Makefile.in and 4 other files + and 5 other files Paul Rankin: changed outline.el @@ -3526,8 +3540,8 @@ and changed keyboard.c xterm.c COPYING xdisp.c process.c emacs.c lisp.h Pavel Kobiakov: wrote flymake.el and changed flymake.texi -Peder O. Klingenberg: changed dunnet.el mm-decode.el emacsbug.el - gnus.texi +Peder O. Klingenberg: changed mm-decode.el dunnet.el emacsbug.el + gnus.texi icalendar.el P. E. Jareth Hein: changed gnus-util.el @@ -3635,6 +3649,8 @@ Philip Jackson: wrote find-cmd.el org-irc.el Philippe Schnoebelen: wrote gomoku.el mpuz.el +Philippe Vaucher: changed callint.c debugging.texi subr.el + Philippe Waroquiers: changed etags.el term.c Philipp Haselwarter: changed gnus-agent.el gnus-sum.el gnus-sync.el @@ -3643,13 +3659,15 @@ Philipp Haselwarter: changed gnus-agent.el gnus-sum.el gnus-sync.el Philipp Rumpf: changed electric.el Philipp Stephani: wrote xt-mouse-tests.el -and changed emacs-module.c lisp.h mod-test.c Makefile alloc.c - configure.ac dynlib.c dynlib.h emacs-module.h eval.c fns.c modhelp.py - src/Makefile.in test.el xterm.el src/emacs-module.c whitespace.el +and changed emacs-module.c lisp.h xt-mouse.el editfns.c eval.c mod-test.c + xterm.el Makefile alloc.c callproc.c configure.ac dynlib.c dynlib.h + electric-tests.el emacs-module.h fileio.c fns.c modhelp.py mule.el + src/Makefile.in term.el and 4 other files -Phillip Lord: changed undo.c simple.el cmds.c keyboard.c - automated/Makefile.in htmlfontify.el insdel.c keyboard.h simple-test.el - text.texi cl-extra.el ert.el seq-tests.el seq.el +Phillip Lord: changed undo.c simple.el viper-cmd.el keyboard.c cmds.c + fileio.c README.W32 autoload.el automated/Makefile.in cl-extra.el + ert.el files.texi htmlfontify.el insdel.c keyboard.h menu-bar.el org.el + seq-tests.el seq.el simple-test.el text.texi viper-init.el Phil Sainty: changed lisp.el package.el progmodes/grep.el simple.el subword.el @@ -3682,10 +3700,8 @@ Prestoo Ten: changed screen.el Primoz Peterlin: changed TUTORIAL.sl -Przemyslaw Wojnowski: changed cl-lib-tests.el - Przemysław Wojnowski: wrote obarray-tests.el sgml-mode-tests.el -and changed obarray.el sgml-mode.el +and changed cl-lib-tests.el obarray.el sgml-mode.el Puneeth Chaganti: changed org.texi ox.el org-agenda.el org-capture.el ox-html.el @@ -3753,7 +3769,7 @@ Reiner Steib: wrote gmm-utils.el gnus-news.el and changed message.el gnus.texi gnus-art.el gnus-sum.el gnus-group.el gnus.el mml.el gnus-faq.texi mm-util.el gnus-score.el message.texi gnus-msg.el gnus-start.el gnus-util.el spam-report.el mm-uu.el spam.el - mm-decode.el files.el gnus-agent.el nnmail.el and 174 other files + mm-decode.el files.el gnus-agent.el nnmail.el and 175 other files Remek Trzaska: changed gnus-ems.el @@ -3812,7 +3828,7 @@ and co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-langs.el and changed files.el keyboard.c simple.el xterm.c xdisp.c rmail.el fileio.c process.c sysdep.c buffer.c xfns.c window.c subr.el configure.ac startup.el sendmail.el emacs.c Makefile.in editfns.c - info.el dired.el and 1338 other files + info.el dired.el and 1339 other files Richard Ryniker: changed sendmail.el @@ -3834,6 +3850,8 @@ Robert Bihlmeyer: changed gnus-score.el gnus-util.el message.el Robert Brown: changed lisp-mode.el +Robert Cochran: changed data.c + Robert Fenk: changed desktop.el Robert Jarzmik: changed ede/linux.el inversion.el @@ -3868,11 +3886,10 @@ Rob Riepel: wrote tpu-edt.doc tpu-edt.el tpu-extras.el tpu-mapper.el Roderick Schertler: changed dgux.h dgux4.h gud.el sysdep.c Rodney J. Whitby: co-wrote vhdl-mode.el +and changed vhdl-mode.texi Rodrigo Real: changed pt-br-refcard.tex -Rod Whitby: changed vhdl-mode.texi - Roger Breitenstein: changed smtpmail.el Roland B. Roberts: changed buffer.h callproc.c dired.c files.el @@ -3906,9 +3923,8 @@ Roman Belenov: changed which-func.el Ronan Waide: changed smtpmail.el -Ronnie Schnell: changed dunnet.el misc.texi - Ron Schnell: wrote dunnet.el +and changed misc.texi Ross Patterson: co-wrote org-protocol.el @@ -3956,9 +3972,9 @@ Saito Takuya: changed mule.el progmodes/compile.el Sam Dooley: changed keyboard.c -Samer Masterson: changed esh-arg.el startup.el url-handlers.el CONTRIBUTE +Samer Masterson: changed esh-arg.el startup.el CONTRIBUTE automated/eshell.el em-hist.el em-pred.el em-term.el esh-io.el eshell - os.texi pcomplete.el + os.texi pcomplete.el url-handlers.el Sam Falkner: changed nntp.el @@ -4093,7 +4109,7 @@ and changed gnus-art.el message.el gnus-sum.el gnus-msg.el gnus.el gnus-agent.el mm-decode.el mm-util.el gnus-group.el mml.el gnus-start.el gnus-util.el mm-view.el nnslashdot.el nnmail.el nntp.el gnus-topic.el gnus-xmas.el rfc2047.el mail-source.el gnus-win.el - and 93 other files + and 95 other files Shigeru Fukaya: wrote bytecomp-tests.el and changed apropos.el byte-opt.el bytecomp.el elint.el rx-new.el ses.el @@ -4108,7 +4124,7 @@ Sho Nakatani: changed doc-view.el Shuhei Kobayashi: wrote hex-util.el hmac-def.el hmac-md5.el and changed gnus-group.el message.el nnmail.el -Shun-Ichi Goto: changed url-http.el +Shun-ichi Goto: changed url-http.el Shyam Karanatt: changed image-mode.el @@ -4124,10 +4140,11 @@ Simon Josefsson: wrote dig.el dns-mode.el flow-fill.el fringe.el imap.el sieve.el smime.el starttls.el tls.el url-imap.el and co-wrote gnus-sieve.el gssapi.el mml1991.el nnfolder.el nnimap.el nnml.el sieve-manage.el -and changed message.el gnus-sum.el gnus-art.el smtpmail.el pgg-gpg.el - pgg.el gnus-agent.el mml2015.el mml.el gnus-group.el mm-decode.el - gnus-msg.el gnus.texi pgg-pgp5.el browse-url.el gnus-int.el gnus.el - hashcash.el mm-view.el password.el gnus-cache.el and 100 other files +and changed message.el gnus-sum.el net/imap.el gnus-art.el smtpmail.el + pgg-gpg.el pgg.el gnus-agent.el mml2015.el mml.el gnus-group.el + mm-decode.el gnus-msg.el gnus.texi pgg-pgp5.el browse-url.el + gnus-int.el gnus.el hashcash.el mm-view.el password.el + and 101 other files Simon Law: changed delsel.el electric.el @@ -4177,7 +4194,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 1266 other files + buffer.c window.c vc-hooks.el info.el and 1268 other files Stefano Facchini: changed gtkutil.c @@ -4193,7 +4210,7 @@ Stefan-W. Hahn: changed org-bibtex.el ps-print.el simple.el Stefan Wiens: changed gnus-sum.el -Steinar Bang: changed gnus-setup.el imap.el +Steinar Bang: changed gnus-setup.el net/imap.el Štěpán Němec: changed INSTALL calc-ext.el cl.texi comint.el edebug.texi font-lock.el loading.texi maps.texi mark.texi message.texi mini.texi @@ -4206,10 +4223,10 @@ Stephan Stahl: changed which-func.el buff-menu.el buffer.c dired-x.texi Stephen A. Wood: changed fortran.el Stephen Berman: co-wrote todo-mode.el -and changed doc-view.el todo-mode.texi diary-lib.el minibuffer.el info.el - otodo-mode.el allout.el dframe.el dir dired-aux.el dired.el elpa - files.el find-dired.el frame.c gamegrid.el gnus-group.el gomoku.el - gtkutil.c misc/Makefile.in newcomment.el and 9 other files +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 + 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 @@ -4230,10 +4247,11 @@ and changed time-stamp.el mh-e.el mh-comp.el mh-utils.el mh-customize.el Stephen J. Turnbull: changed ediff-init.el strings.texi subr.el Stephen Leake: wrote elisp-mode-tests.el -and changed ada-mode.el ada-xref.el elisp-mode.el xref.el mode-local.el - CONTRIBUTE cedet-global.el vc-mtn.el window.el ada-mode.texi ada-prj.el - cl-generic.el ede/generic.el ede/locate.el ada-stmt.el files.texi fns.c - project.el symref.el windows.texi INSTALL.REPO and 19 other files +and changed ada-mode.el ada-xref.el elisp-mode.el mode-local.el xref.el + CONTRIBUTE vc-mtn.el window.el ada-mode.texi ada-prj.el cedet-global.el + ede/generic.el ada-stmt.el cl-generic.el ede/locate.el files.texi + project.el windows.texi INSTALL.REPO align.el auto.el + and 19 other files Stephen Peters: changed icalendar.el @@ -4407,8 +4425,8 @@ Thomas Dorner: changed ange-ftp.el Thomas Dye: changed org.texi org-bibtex.el ob-R.el org.el Thomas Fitzsimmons: wrote soap-client.el -and changed soap-inspect.el eudc-vars.el ldap.el eudc.el eudc.texi - eudc-export.el eudcb-ldap.el eudcb-ph.el ntlm.el eudcb-bbdb.el +and changed soap-inspect.el ldap.el eudc-vars.el eudc.texi eudc.el + eudcb-ldap.el ntlm.el eudc-export.el eudcb-bbdb.el eudcb-ph.el url-http.el Thomas Horsley: changed cxux-crt0.s cxux.h cxux7.h emacs.c nh3000.h @@ -4442,6 +4460,8 @@ Thorsten Ohl: changed lread.c next.h Tiago Saboga: changed files.el +Tibor Csögör: changed browse-url.el eudc.texi + Tibor Šimko: co-wrote language/slovak.el quail/slovak.el Tijs van Bakel: changed erc.el @@ -4468,7 +4488,11 @@ Timo Savola: changed emacs.c gtkutil.c startup.el x-win.el xfns.c xterm.c Tim Van Holder: changed emacsclient.c Makefile.in configure.ac progmodes/compile.el which-func.el -Titus Von Der Malsburg: changed simple.el window.el +Tino Calancha: changed cl-macs.el cl.texi descr-text.el dired-aux.el + find-func.el help-fns.el help-mode.el ibuf-ext.el ibuffer.el os.texi + simple.el vc.el + +Titus von der Malsburg: changed simple.el window.el Tobias C. Rittweiler: changed font-lock.el searching.texi sendmail.el @@ -4483,6 +4507,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 @@ -4581,10 +4606,9 @@ Ulf Jasper: wrote bubbles.el icalendar-tests.el icalendar.el newst-ticker.el newst-treeview.el newsticker-tests.el newsticker.el and changed newsticker.texi calendar.texi image.c newsticker-plainview.el newsticker-treeview.el README newsticker-backend.el - newsticker-reader.el newsticker-ticker.el xml.c Makefile.in + newsticker-reader.el newsticker-ticker.el xml.c xml.el Makefile.in browse-url.xpm get-all.xpm mark-immortal.xpm mark-read.xpm narrow.xpm - newsticker next-feed.xpm next-item.xpm prev-feed.xpm prev-item.xpm - and 8 other files + newsticker next-feed.xpm next-item.xpm prev-feed.xpm and 9 other files Ulf Stegemann: co-wrote org-entities.el and changed org-gnus.el smime.el @@ -4615,9 +4639,9 @@ Valery Alexeev: changed cyril-util.el cyrillic.el Vasilij Schneidermann: changed eww.el ielm.el tetris.el -Vasily Korytov: changed cyrillic.el message.el progmodes/python.el - ruby-mode.el cperl-mode.el gnus-art.el gnus-dired.el gnus-msg.el - gnus-util.el mail-source.el smiley.el +Vasily Korytov: changed cyrillic.el message.el cperl-mode.el gnus-art.el + gnus-dired.el gnus-msg.el gnus-util.el mail-source.el + progmodes/python.el ruby-mode.el smiley.el Vegard Øye: changed viper-init.el @@ -4630,8 +4654,8 @@ Viktor Rosenfeld: changed ob-sql.el org.el Ville Skyttä: changed mh-comp.el pgg.el tcl.el -Vincent Belaïche: changed ses.el 5x5.el calc-alg.el calc-vec.el calc.texi - compilation.txt ses.texi autotype.texi calc-embed.el calc-help.el +Vincent Belaïche: changed ses.el ses.texi 5x5.el calc-alg.el calc-vec.el + calc.texi compilation.txt autotype.texi calc-embed.el calc-help.el calc-misc.el calc.el configure.bat floatfns.c macroexp.el org.el package.el progmodes/compile.el recentf.el reftex-parse.el reftex-toc.el reftex.el @@ -4742,9 +4766,9 @@ Wolfgang Glas: changed unexsgi.c Wolfgang Jenkner: wrote man-tests.el textprop-tests.el and changed gnus-agent.el image-mode.el man.el network-stream.el - ansi-color.el comint.el gmalloc.c gnus-spec.el gnus-sum.el gnus-util.el + ansi-color.el comint.el gnus-spec.el gnus-sum.el gnus-util.el automated/Makefile.in calc-store.el calc-tests.el calc-units.el - conf-mode.el dired-x.el editfns.c font-lock.el functions.texi + conf-mode.el dired-x.el editfns.c font-lock.el functions.texi gmalloc.c gnus-group.el gnus-picon.el and 15 other files Wolfgang Lux: changed nsterm.m keyboard.c @@ -4769,9 +4793,9 @@ Xavier Maillard: changed gnus-faq.texi gnus-score.el mh-utils.el spam.el Xi Lu: changed etags.c Xue Fuqiao: changed display.texi emacs-lisp-intro.texi files.texi - maintaining.texi windows.texi nonascii.texi text.texi frames.texi - os.texi vc-cvs.el vc-dir.el README emacs.texi ido.texi positions.texi - vc-git.el vc-hg.el vc-hooks.el vc-svn.el vc.el vc/vc-bzr.el + maintaining.texi text.texi windows.texi nonascii.texi frames.texi + os.texi vc-cvs.el vc-dir.el emacs.texi ido.texi positions.texi + vc-git.el vc-hg.el vc-hooks.el vc-svn.el vc.el vc/vc-bzr.el INSTALL and 103 other files Yagi Tatsuya: changed gnus-art.el gnus-start.el @@ -4780,9 +4804,9 @@ Yair F: changed hebrew.el Yamamoto Mitsuharu: wrote uvs.el and changed macterm.c macfns.c mac-win.el mac.c macterm.h macmenu.c - xterm.c macgui.h image.c xdisp.c keyboard.c macselect.c w32term.c - xfns.c configure.ac src/Makefile.in unexmacosx.c emacs.c alloc.c - darwin.h dispnew.c and 95 other files + xterm.c macgui.h image.c xdisp.c macselect.c keyboard.c w32term.c + src/Makefile.in unexmacosx.c xfns.c configure.ac emacs.c darwin.h + dispnew.c macfont.m and 96 other files Yann Dirson: changed imenu.el @@ -4852,6 +4876,8 @@ Zoran Milojevic: changed avoid.el Йордан Миладинов: changed cyrillic.el +উৎসব রায়: changed quail/indian.el + Local Variables: coding: utf-8 End: diff --git a/etc/DEBUG b/etc/DEBUG index eef67dad5006..8a803e054551 100644 --- a/etc/DEBUG +++ b/etc/DEBUG @@ -190,24 +190,44 @@ 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. + +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 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. +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. (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) 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 +236,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 +879,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 diff --git a/etc/DISTRIB b/etc/DISTRIB index 7c0cd4cbaca7..237e7f265f92 100644 --- a/etc/DISTRIB +++ b/etc/DISTRIB @@ -31,8 +31,8 @@ manuals, including the Emacs manual, are available from the FSF's online store at http://shop.fsf.org. Emacs has been run on GNU/Linux, FreeBSD, NetBSD, OpenBSD, and on many -Unix systems, on a variety of types of cpu, as well as on MSDOS, -Windows and MacOS. See the file 'etc/MACHINES' in the Emacs +Unix systems, on a variety of types of CPU, as well as on MS-DOS, +MS-Windows and macOS. See the file 'etc/MACHINES' in the Emacs distribution for a full list of machines that GNU Emacs has been tested on, with machine-specific installation notes and warnings. diff --git a/etc/ERC-NEWS b/etc/ERC-NEWS index 13827c677866..69b846884fe4 100644 --- a/etc/ERC-NEWS +++ b/etc/ERC-NEWS @@ -1077,7 +1077,7 @@ major changes for implementers, and module writers: corresponding hook variables. The mapping of server commands to hook variables is no longer - done via `erc-event-to-hook', but through an #'equal hashtable, + done via `erc-event-to-hook', but through an #'equal hash table, `erc-server-responses'. In order to find a hook you do: (erc-get-hook command) diff --git a/etc/HISTORY b/etc/HISTORY index 810702622fab..43790bb92bc8 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/etc/MACHINES b/etc/MACHINES index 085f169e85bd..fcab23c7b537 100644 --- a/etc/MACHINES +++ b/etc/MACHINES @@ -64,9 +64,9 @@ the list at the end of this file. This was tested on a little-endian sh4 system (cpu type SH7751R) running Gentoo Linux 2008.0. -** Mac OS X +** macOS - Version 10.6 or newer. PowerPC is not supported. + Mac OS X 10.6 or newer. PowerPC is not supported. For installation instructions see the file nextstep/INSTALL. ** Microsoft Windows diff --git a/etc/NEWS b/etc/NEWS index 42f54f39eb65..f67924319077 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -15,34 +15,59 @@ and NEWS.1-17 for changes in older Emacs versions. 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. -Temporary note: -+++ indicates that all necessary documentation updates are complete. - (This means all relevant manuals in doc/ AND lisp doc-strings.) ---- means no change in the manuals is needed. -When you add a new item, use the appropriate mark if you are sure it applies, -otherwise leave it unmarked. + +* 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. + +--- +** New variable 'use-default-font-for-symbols' for backward compatibility. +This variable allows to get back pre-Emacs 25 behavior whereby the +font for displaying symbol and punctuation characters was always +selected according to your fontset setup. Emacs 25 by default tries +to use the default face's font for such characters, disregarding the +fontsets if the default font supports these characters. Set this +variable to nil to disable the new behavior and get back the old +behavior. + ++++ +** 'electric-quote-mode' is no longer suppressed in a buffer whose +whose coding system cannot represent curved quote characters. +Instead, users can deal with the unrepresentable characters in the +usual way when they save the buffer. + +--- +** New variable 'inhibit-compacting-font-caches'. +Set this variable to a non-nil value to speed up display of characters +using large fonts, at the price of a larger memory footprint of the +Emacs session. * Installation Changes in Emacs 25.1 -+++ ** Building Emacs now requires C99 or later. -+++ ** Building Emacs now requires GNU make, version 3.81 or later. -+++ ** New configure option --with-cairo. This builds Emacs with Cairo drawing. As a side effect, it provides support for built-in printing, when Emacs was built with GTK+. -Cairo drawing is an experimental feature in Emacs, and subject to -change in future releases. +The Emacs Cairo drawing is experimental and still has some known +display problems. We encourage more testing of this build and +reporting any problems you find, but it is not recommended for +production. -+++ ** New configure option --with-modules. This enables support for loading dynamic modules; see below. ---- ** By default, Emacs no longer works on IRIX. We expect that Emacs users are not affected by this, as SGI stopped supporting IRIX in December 2013. If you are affected, please send a bug report. You @@ -50,60 +75,49 @@ should be able to work around the problem either by porting the Emacs undumping code to GCC under IRIX, or by configuring --with-wide-int, or by sticking with Emacs 24.4. ---- ** The Emacs garbage collector assumes GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS. The GC_MAKE_GCPROS_NOOPS stack-marking variant has been the default since Emacs 24.4, and the other variants were undocumented and were obstacles to maintenance and development. GC_MARK_STACK and its related symbols have been removed from the C internals. ---- ** 'configure' now prefers gnustep-config when configuring GNUstep. If gnustep-config is not available, the old heuristics are used. ---- ** 'configure' now prefers inotify to gfile for file notification, unless gfile is explicitly requested via --with-file-notification='gfile'. ---- ** 'configure' detects the kqueue file notification library on *BSD -and Mac OS X machines. +and macOS machines. ---- ** The configure option '--with-pkg-config-prog' has been removed. Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to. ---- ** The configure option '--with-mmdf' has been removed. It was no longer useful, as it relied on libraries that are no longer supported, and its presence led to confusion during configuration. This affects only the 'movemail' utility; Emacs itself can still process MMDF-format files as before. -+++ ** The configure option '--enable-silent-rules' is now the default, and silent rules are now quieter. To get the old behavior where 'make' chatters a lot, configure with '--disable-silent-rules' or build with 'make V=1'. ---- ** The configure option '--with-gameuser' now allows you to specify a group instead of a user if its argument is prefixed by ':' (a colon). -This will cause the game score files in ${localstatedir}/games/emacs +This will cause the game score files in "${localstatedir}/games/emacs" to be owned by that group, and the helper program for updating them to be installed setgid. The option now defaults to the 'games' group. ---- ** The 'grep-changelog' script (and its manual page) are no longer included. It has no particular connection to Emacs and has not changed in years, so if you want to use it, you can always take a copy from an older Emacs. ---- ** Emacs 25 comes with a new set of icons. Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png. The old Emacs logo icons are available as 'emacs23.png' in the same location. ---- ** New make target 'check-expensive' to run additional tests. This includes all tests which run via "make check", plus additional tests which take more time to perform. @@ -111,19 +125,16 @@ tests which take more time to perform. * Startup Changes in Emacs 25.1 -+++ ** When Emacs is given a file as a command line argument and 'initial-buffer-choice' is non-nil, display both the file and 'initial-buffer-choice'. When Emacs is given more than one file and 'initial-buffer-choice' is non-nil, show 'initial-buffer-choice' -and *Buffer List*. This makes Emacs convenient to use from the +and '*Buffer List*'. This makes Emacs convenient to use from the command line when 'initial-buffer-choice' is non-nil. -+++ ** The value of 'initial-scratch-message' is now treated as a doc string and can contain escape sequences for command keys, quotes, and the like. ---- ** The default height of GUI frames was enlarged. This is so there's enough space in the initial window to display the optional text about recovering crashes sessions, without losing the @@ -132,7 +143,6 @@ splash image display. * Changes in Emacs 25.1 -+++ ** Xwidgets: a new feature for embedding native widgets inside Emacs buffers. If you have gtk3 and webkitgtk3 installed, and Emacs was built with xwidget support, you can access the embedded webkit browser with 'M-x @@ -140,7 +150,6 @@ xwidget-webkit-browse-url'. This opens a new buffer with the embedded browser. The buffer will have a new mode, 'xwidget-webkit-mode' (similar to 'image-mode'), which supports the webkit widget. -+++ *** New functions for xwidget-webkit mode 'xwidget-webkit-insert-string', 'xwidget-webkit-adjust-size-dispatch', 'xwidget-webkit-back', 'xwidget-webkit-browse-url', 'xwidget-webkit-reload', @@ -148,7 +157,6 @@ browser. The buffer will have a new mode, 'xwidget-webkit-mode' 'xwidget-webkit-scroll-forward', 'xwidget-webkit-scroll-down', 'xwidget-webkit-scroll-up'. -+++ ** Emacs can now load shared/dynamic libraries (modules). A dynamic Emacs module is a shared library that provides additional functionality for use in Emacs Lisp programs, just like a package @@ -186,105 +194,85 @@ change in future releases. For that reason, their support is disabled by default, and must be enabled by using the '--with-modules' option at configure time. -+++ ** Network security (TLS/SSL certificate validity and the like) is added via the new Network Security Manager (NSM) and controlled via the 'network-security-level' variable. -+++ -** C-h l now also lists the commands that were run. +** 'C-h l' now also lists the commands that were run. -+++ -** x-select-enable-clipboard is renamed select-enable-clipboard -and x-select-enable-primary is renamed select-enable-primary. -Additionally they both now apply to all systems (OSX, GNUstep, Windows, you -name it), with the proviso that on some systems (e.g. Windows) -select-enable-primary is ineffective since the system doesn't -have the equivalent of a primary selection. +** 'x-select-enable-clipboard' is renamed 'select-enable-clipboard' +and 'x-select-enable-primary' is renamed 'select-enable-primary'. +Additionally they both now apply to all systems (macOS, GNUstep, +MS-Windows, you name it), with the proviso that on some systems (e.g., +MS-Windows) 'select-enable-primary' is ineffective since the system +doesn't have the equivalent of a primary selection. -+++ ** New option 'switch-to-buffer-in-dedicated-window' allows you to customize how 'switch-to-buffer' proceeds interactively when the selected window is strongly dedicated to its buffer. -+++ ** The option 'even-window-heights' has been renamed to 'even-window-sizes' and now handles window widths as well. -+++ -** terpri gets an optional arg ENSURE to conditionally output a newline. +** 'terpri' gets an optional arg ENSURE to conditionally output a newline. -+++ ** 'insert-register' now leaves point after the inserted text when called interactively. A prefix argument toggles this behavior. -+++ ** The new variable 'term-file-aliases' replaces some files from lisp/term. The function 'tty-run-terminal-initialization' consults this variable when deciding what terminal-specific initialization code to run. ---- ** New variable 'system-configuration-features', listing some of the main features that Emacs was compiled with. This is mainly intended for use in Emacs bug reports. -+++ ** A password is now hidden also when typed in batch mode. Another hiding character but the default '.' can be used by let-binding the variable 'read-hide-char'. -+++ ** The Emacs pseudo-random number generator can be securely seeded. -On system where Emacs can access the system entropy or some other +On systems where Emacs can access the system entropy or some other cryptographically secure random stream, it now uses that when 'random' -is called with its argument 't'. This allows cryptographically strong +is called with its argument t. This allows cryptographically strong random values; in particular, the Emacs server now uses this facility to produce its authentication key. ---- -** New input methods: 'tamil-dvorak' and 'programmer-dvorak'. +** New input methods: 'tamil-dvorak', 'programmer-dvorak' and 'probhat'. * Editing Changes in Emacs 25.1 -+++ -** M-x suggests shorthands and ignores obsolete commands for completion. +** 'M-x' suggests shorthands and ignores obsolete commands for completion. ** Changes in undo -+++ *** Successive single-char deletions are collapsed in the undo-log just like successive char insertions. Which commands invoke this behavior is controlled by the new 'undo-auto-amalgamate' function. See the node "Undo" in the ELisp manual for more details. -+++ *** The heuristic used to insert 'undo-boundary' after each command has changed, so that if a command causes changes in more than just the current buffer, Emacs now calls 'undo-boundary' in every buffer affected by the command. -+++ ** New command 'comment-line' bound to 'C-x C-;'. ** New and improved facilities for inserting Unicode characters ---- -*** Unicode names entered via C-x 8 RET now use substring completion by default. +*** Unicode names entered via 'C-x 8 RET' now use substring completion +by default. -+++ -*** C-x 8 now has shorthands for several chars, such as U+2010 +*** 'C-x 8' now has shorthands for several chars, such as U+2010 (HYPHEN), U+2011 (NON-BREAKING HYPHEN), and U+2012 (FIGURE DASH). As -before, you can type C-x 8 C-h to list shorthands. +before, you can type 'C-x 8 C-h' to list shorthands. -+++ -*** New minor mode electric-quote-mode for using curved quotes as you +*** New minor mode 'electric-quote-mode' for using curved quotes as you type. See also the new variable 'text-quoting-style'. ---- -** New minor mode global-eldoc-mode is enabled by default. +** New minor mode 'global-eldoc-mode' is enabled by default. ---- ** Emacs now uses "bracketed paste mode" on text terminals that support it. Bracketed paste mode causes text terminals to wrap pasted text in special escape sequences that allow Emacs to tell the difference between text @@ -297,7 +285,6 @@ pasting large amounts of text. Bracketed paste mode is disabled by default, so Emacs automatically enables it at startup if the terminal supports it. -+++ ** Emacs now supports the latest version of the UBA. The Emacs implementation of the Unicode Bidirectional Algorithm (UBA) was updated to support all the latest additions and changes introduced @@ -306,31 +293,25 @@ This includes full support for directional isolates and the Bidirectional Parentheses Algorithm (BPA) specified by these Unicode standards. -+++ -** You can access 'mouse-buffer-menu' (C-down-mouse-1) using C-f10. +** You can access 'mouse-buffer-menu' ('C-down-mouse-1') using 'C-f10'. -+++ ** New buffer-local 'electric-pair-local-mode'. -+++ ** New variable 'fast-but-imprecise-scrolling' inhibits fontification during full screen scrolling operations, giving less -hesitant operation during auto-repeat of C-v, M-v at the cost of +hesitant operation during auto-repeat of 'C-v', 'M-v' at the cost of possible inaccuracies in the end position. -+++ ** New documentation command 'describe-symbol'. Works for functions, variables, faces, etc. It is bound to 'C-h o' by default. -+++ ** New function 'custom-prompt-customize-unsaved-options' checks for unsaved customizations and prompts user to customize (if found). It is intended for adding to 'kill-emacs-query-functions'. -+++ -** The old 'C-x w' bindings in hi-lock-mode are officially deprecated -in favor of the global 'M-s h' bindings introduced in Emacs-23.1. +** The old 'C-x w' bindings in 'hi-lock-mode' are officially deprecated +in favor of the global 'M-s h' bindings introduced in Emacs 23.1. They'll disappear soon. @@ -338,67 +319,63 @@ They'll disappear soon. ** Checkdoc -+++ *** New command 'checkdoc-package-keywords' checks if the current package keywords are recognized. Set the new option 'checkdoc-package-keywords-flag' to non-nil to make 'checkdoc-current-buffer' call this function automatically. -+++ *** New function 'checkdoc-file' checks for style errors. It's meant for use together with 'compile': emacs -batch --eval "(checkdoc-file \"subr.el\")" ** Desktop ---- *** The desktop format version has been upgraded from 206 to 208. Although Emacs 25.1 can read a version 206 desktop, earlier Emacsen cannot read a version 208 desktop. To upgrade your desktop file, you -must explicitly request the upgrade, by C-u M-x desktop-save. You are +must explicitly request the upgrade, by 'C-u M-x desktop-save'. You are recommended to do this as soon as you have firmly upgraded to Emacs 25.1 (or later). Should you ever need to downgrade your desktop file -to version 206, you can do this with C-u C-u M-x desktop-save. +to version 206, you can do this with 'C-u C-u M-x desktop-save'. -+++ -** New function 'bookmark-set-no-overwrite' bound to C-x r M. +*** 'desktop-restore-in-current-display' now defaults to t, not nil. +That is, Emacs by default now restores frames into the current display. + +** New function 'bookmark-set-no-overwrite' bound to 'C-x r M'. It raises an error if a bookmark of that name already exists, unlike 'bookmark-set' which silently updates an existing bookmark. ** Gnus -+++ *** New user options 'mm-html-inhibit-images' and 'mm-html-blocked-images' now control how mm-* functions fetch and display images in an HTML message. Gnus still uses 'gnus-inhibit-images' and 'gnus-blocked-images' for that purpose, i.e., binds mm-html- variables with those gnus- variables, but other packages do not have to bind gnus- variables now. ---- *** 'mm-inline-text-html-with-images' has been removed. Use 'mm-html-inhibit-images' instead. Note that the value is opposite in meaning. ** IMAP ---- *** 'imap-ssl-program' has been removed, and imap.el uses the internal GnuTLS encryption functions if possible. ** JSON ---- +*** 'json-encode-string' now only escapes the characters it has to. +Which means that the encoded strings can contain non-ASCII characters. + *** 'json-pretty-print' and 'json-pretty-print-buffer' now maintain the ordering of object keys by default. ---- *** New commands 'json-pretty-print-ordered' and 'json-pretty-print-buffer-ordered' pretty prints JSON objects with object keys sorted alphabetically. ** Prettify Symbols mode -+++ *** Prettify Symbols mode supports custom composition predicates. By overriding the default 'prettify-symbols-compose-predicate', modes can specify in which contexts a symbol may be displayed as some Unicode @@ -406,13 +383,11 @@ character. 'prettify-symbols-default-compose-p' is the default which is suitable for most programming languages such as C or Lisp (but not (La)TeX). -+++ *** Symbols can be unprettified while point is inside them. New variable 'prettify-symbols-unprettify-at-point' configures this. ** Enhanced xterm support ---- *** The new variable 'xterm-screen-extra-capabilities' for configuring xterm. This variable tells Emacs which advanced capabilities are available in the xterm terminal emulator used to display Emacs text-mode frames. @@ -420,7 +395,6 @@ The default is to check each capability, and use it if available. (This variable was introduced in Emacs 24.1, but was not announced in its NEWS.) ---- *** Killing text now also sets the CLIPBOARD/PRIMARY selection in the surrounding GUI (using the OSC-52 escape sequence). This only works if your xterm supports it and enables the 'allowWindowOps' options (disabled @@ -430,10 +404,8 @@ Similarly, you can yank the CLIPBOARD/PRIMARY selection (using the OSC-52 escape sequence) if your xterm has the feature enabled but for that you additionally need to add 'getSelection' to 'xterm-extra-capabilities'. -+++ *** 'xterm-mouse-mode' now supports mouse-tracking (if your xterm supports it). ---- ** The way to turn on and off 'save-place' mode has changed. It is no longer sufficient to load the saveplace library and set 'save-place' non-nil. Instead, use the two new minor modes: @@ -445,22 +417,18 @@ obsolete alias for the new 'save-place-local-mode' command. ** ERC -+++ *** ERC can now hide message types by network or channel. 'erc-hide-list' will hide all messages of the specified type, while 'erc-network-hide-list' and 'erc-channel-hide-list' will only hide the specified message types for the respective specified targets. ---- *** Reconnection is now asynchronous. ---- *** Nick completion is now case-insensitive again after inadvertently being made case-sensitive in Emacs 24.2. ** MPC ---- *** New commands, key binds, and menu items. **** '<' and '>' for navigating previous and next tracks in playlist @@ -468,34 +436,28 @@ being made case-sensitive in Emacs 24.2. **** New play/pause command 'mpc-toggle-play' bound to 's' **** 'g' bound to new command 'mpc-seek-current' will navigate current - track. +track. **** New commands 'mpc-toggle-{consume,repeat,single,shuffle}' for - toggling playback modes. +toggling playback modes. ---- *** Now supports connecting to a UNIX domain socket. ---- *** Looks at more image file names to use as album art. Case-insensitively tries for .folder.png (freedesktop) and folder.jpg (XP) in addition to cover.jpg. ---- *** Searches in more locations for MPD configuration files. MPD supports the XDG base directory specification since version 0.17.6. ** Midnight-mode ---- *** 'midnight-mode' is now a proper minor mode. ---- *** clean-buffer-*-regexps can now specify buffers via predicate functions. ** package.el -+++ *** New "external" package status. An external package is any installed package that's not built-in and not from 'package-user-dir', which usually means it's from an entry in @@ -507,12 +469,10 @@ The effect is that a user can manually place a specific version of a package inside 'package-directory-list' and the package menu will always respect that. -+++ *** If a package is available on multiple archives and one has higher priority (as per 'package-archive-priorities') only that one is listed. This can be configured with 'package-menu-hide-low-priority'. -+++ *** 'package-menu-toggle-hiding' now toggles the hiding of packages. This includes the above-mentioned low-priority packages, as well as available packages whose version is lower than the currently installed @@ -520,91 +480,71 @@ version (which were previously impossible to display). This allows users to downgrade a package if a lower version is available. ---- *** When filtering the package menu, keywords starting with "arc:" or "status:" represent package archive or status, respectively, instead of actual keywords. ---- *** Most functions which involve downloading information now take an ASYNC argument. If it is non-nil, package.el performs the download(s) asynchronously. ---- *** New variable 'package-menu-async' controls whether the package-menu uses asynchronous downloads. ---- *** 'package-install-from-buffer' and 'package-install-file' work on directories. This follows the same rules as installing from a .tar file, except the -pkg file is optional. ---- *** Packages which are dependencies of other packages cannot be deleted. The FORCE argument to 'package-delete' overrides this. ---- *** New custom variable 'package-selected-packages' tracks packages which were installed by the user (as opposed to installed as dependencies). This variable can also be manually customized. ---- *** New command 'package-install-selected-packages' installs all packages from 'package-selected-packages' which are currently missing. ---- *** 'package-install' function now takes a DONT-SELECT argument. If this function is called interactively or if DONT-SELECT is nil, add the package being installed to 'package-selected-packages'. ---- *** New command 'package-autoremove' removes all packages which were installed strictly as dependencies but are no longer needed. -+++ ** Shell -When you invoke 'shell' interactively, the *shell* buffer will now +When you invoke 'shell' interactively, the '*shell*' buffer will now display in a new window. However, you can customize this behavior via the 'display-buffer-alist' variable. For example, to get -the old behavior -- *shell* buffer displays in current window -- use +the old behavior -- '*shell*' buffer displays in current window -- use (add-to-list 'display-buffer-alist '("^\\*shell\\*$" . (display-buffer-same-window))). ** EIEIO -+++ *** The ':protection' slot option is not obeyed any more. -+++ *** The 'newname' argument to constructors is optional&deprecated. If you need your objects to be named, do it by inheriting from 'eieio-named'. -+++ *** The -list-p and -child-p functions are declared obsolete. -+++ *** The variables are declared obsolete. -+++ *** The variables are declared obsolete. -+++ *** defgeneric and defmethod are declared obsolete. Use the equivalent facilities from cl-generic.el instead. -+++ *** 'constructor' is now an obsolete alias for 'make-instance'. ---- 'pcase' accepts a new UPattern 'eieio'. +*** 'pcase' accepts a new UPattern 'eieio'. ** ido -+++ -*** New command 'ido-bury-buffer-at-head' bound to C-S-b -Bury the buffer at the head of 'ido-matches', analogous to how C-k +*** New command 'ido-bury-buffer-at-head' bound to 'C-S-b'. +Bury the buffer at the head of 'ido-matches', analogous to how 'C-k' kills the buffer at head. ---- *** A prefix argument to 'ido-restrict-to-matches' will reverse its meaning, and the list is restricted to those elements that do not match the current input. ** Minibuffer -+++ *** You can use and arrow keys to move through history by lines. The new commands 'next-line-or-history-element' and 'previous-line-or-history-element', bound to and in the @@ -616,7 +556,6 @@ item as before. ** Search and Replace -+++ *** 'isearch' and 'query-replace' can now perform character folding in matches. This is analogous to case folding, but instead of disregarding case variants, it disregards wider classes of distinctions between similar @@ -631,32 +570,28 @@ as many other symbols like U+249C (PARENTHESIZED LATIN SMALL LETTER A). Character folding is enabled by customizing 'search-default-mode' to -the value 'character-fold-to-regexp'. You can also toggle character +the value 'char-fold-to-regexp'. You can also toggle character folding in the middle of a search by typing 'M-s ''. 'query-replace' honors character folding if the new variable -'replace-character-fold' is customized to a non-nil value. +'replace-char-fold' is customized to a non-nil value. -+++ *** New user option 'search-default-mode'. This option specifies the default mode for Isearch. The default value, nil specifies that Isearch does literal searches (however, 'case-fold-search' and 'isearch-lax-whitespace' may still be applied, as in previous Emacs versions). -+++ -*** New function 'character-fold-to-regexp' can be used +*** New function 'char-fold-to-regexp' can be used by searching commands to produce a regexp matching anything that -character-folds into STRING. +char-folds into STRING. -+++ -*** The new M-s M-w key binding uses eww to search the web for the +*** The new 'M-s M-w' key binding uses eww to search the web for the text in the region. The search engine to use for this is specified by the customizable variable 'eww-search-prefix'. -+++ -*** Query-replace history is enhanced. -When query-replace reads the FROM string from the minibuffer, typing +*** 'query-replace' history is enhanced. +When 'query-replace' reads the FROM string from the minibuffer, typing 'M-p' will now show previous replacements as "FROM SEP TO", where FROM and TO are the original text and its replacement, and SEP is an arrow string defined by the new variable 'query-replace-from-to-separator'. @@ -665,26 +600,21 @@ replacement appears in the minibuffer, and then exit the minibuffer by typing RET. ** Calc -+++ *** If 'quick-calc' is called with a prefix argument, insert the result of the calculation into the current buffer. -+++ -** In Edebug, you can now set the initial mode with C-x C-a C-m. With -this you can tell Edebug not to stop at the start of the first +** In Edebug, you can now set the initial mode with 'C-x C-a C-m'. +With this you can tell Edebug not to stop at the start of the first instrumented function. ** ElDoc -+++ -*** New minor mode 'global-eldoc-mode' +*** New minor mode 'global-eldoc-mode'. It is turned on by default, and affects '*scratch*' and other buffers whose major mode supports Emacs Lisp. ---- -*** 'eldoc-documentation-function' now defaults to 'ignore' +*** 'eldoc-documentation-function' now defaults to 'ignore'. ---- *** 'describe-char-eldoc' displays information about character at point, and can be used as a default value of 'eldoc-documentation-function'. It is useful when, for example, one needs to distinguish various spaces - e.g., @@ -693,76 +623,60 @@ using mono-spaced font. ** eww ---- *** HTML can now be rendered using variable-width fonts. -+++ *** A new command 'F' ('eww-toggle-fonts') can be used to toggle whether to use variable-pitch fonts or not. The user can also customize the 'shr-use-fonts' variable. -+++ *** A new command 'R' ('eww-readable') will try do identify the main textual parts of a web page and display only that, leaving menus and the like off the page. -+++ *** A new command 'D' ('eww-toggle-paragraph-direction') allows you to toggle the paragraph direction between left-to-right and right-to-left. ---- *** You can now use several eww buffers in parallel by renaming eww buffers you want to keep separate. -+++ *** Partial state of the eww buffers (the URIs and the titles of the pages visited) is now preserved in the desktop file. -+++ *** 'eww-after-render-hook' is now called after eww has rendered the data in the buffer. ---- *** The 'eww-reload' command now takes a prefix to not reload via the net, but just use the local copy of the HTML. -+++ *** The DOM shr and eww uses has been changed to the general Emacs xml.el/libxml2 DOM, and a new package dom.el has been added to interact with this DOM. See the Emacs Lisp manual for interface details. -+++ *** 'mailcap-mime-data' is now consulted when displaying PDF files. -+++ *** The new 'S' command will list all eww buffers, and allow managing them. ---- *** https pages with valid certificates have headers marked in green, while invalid certificates are marked in red. ** Message mode ---- *** text/html messages that contain inline image parts will be transformed into multipart/related messages before sending. -+++ ** In Show Paren Mode, a parenthesis can be highlighted when point stands inside it, and certain parens can be highlighted when point is at BOL or EOL, or in whitespace there. To enable these, customize, respectively, 'show-paren-when-point-inside-paren' or 'show-paren-when-point-in-periphery'. ---- ** If gpg2 exists on the system, it is now used as the default value of 'epg-gpg-program' (instead of gpg). ** Lisp mode ---- *** Strings after ':documentation' are highlighted as docstrings. This enhances Lisp mode fontification to handle documentation of the form '(:documentation "the doc string")' used in Common Lisp code for @@ -770,19 +684,15 @@ CLOS class and slot documentation. ** Rectangle editing -+++ *** Rectangle Mark mode can have corners past EOL or in the middle of a TAB. -+++ -*** C-x C-x in rectangle-mark-mode now cycles through the four corners. +*** 'C-x C-x' in 'rectangle-mark-mode' now cycles through the four corners. *** 'string-rectangle' provides on-the-fly preview of the result. -+++ ** New font-lock functions 'font-lock-ensure' and 'font-lock-flush'. These should be used in preference to 'font-lock-fontify-buffer' when called from Lisp. ---- ** Macro 'minibuffer-with-setup-hook' can optionally append a function to 'minibuffer-setup-hook'. @@ -791,39 +701,30 @@ then FUN will be appended to 'minibuffer-setup-hook', instead of prepending it. ** cl-lib -+++ *** New functions 'cl-fresh-line', 'cl-digit-char-p', and 'cl-parse-integer'. ---- *** 'pcase' accepts the new UPattern 'cl-struct'. ** Calendar and diary -+++ -*** The default 'diary-file' is now located in .emacs.d. +*** The default 'diary-file' is now located in "~/.emacs.d". -+++ *** New commands to insert diary entries with Chinese dates: 'diary-chinese-insert-anniversary-entry' 'diary-chinese-insert-entry' 'diary-chinese-insert-monthly-entry', 'diary-chinese-insert-yearly-entry'. -+++ *** The calendar can now list and mark diary entries with Chinese dates. See 'diary-chinese-list-entries' and 'diary-chinese-mark-entries'. ---- *** The option 'calendar-mode-line-format' can now be nil, which means to do nothing special with the mode line in calendars. -+++ *** New option 'calendar-weekend-days'. The option customizes which day headers receive the 'calendar-weekend-header' face. ---- *** New optional args N and STRING for 'holiday-greek-orthodox-easter'. ---- *** Many items obsolete since at least version 23.1 have been removed. The majority were function/variable/face aliases, too numerous to list here. The remainder were: @@ -839,68 +740,54 @@ The remainder were: **** The nil and list forms of 'diary-display-function'. -+++ ** New ERT function 'ert-summarize-tests-batch-and-exit'. If the output of ERT tests in batch mode execution can be saved to a log file, then it can be passed as an argument to the above function to produce a neat summary. ---- ** New js.el option 'js-indent-first-init'. ** Info ---- ** Info mode now displays symbol names in fixed-pitch font. If you want to get the old behavior back, customize the 'Info-quoted' face to use the same definitions as the default face. ---- *** 'Info-fontify-maximum-menu-size' can be t for no limit. -+++ *** 'info-display-manual' can now be given a prefix argument which (any non-nil value) directs the command to limit the completion alternatives to currently visited manuals. ---- ** ntlm.el has support for NTLM2. ** Rmail -+++ *** The Rmail commands 'd', 'C-d' and 'u' take optional repeat counts to delete or undelete multiple messages. -+++ *** Rmail can now render HTML mail messages if your Emacs was built with libxml2 or if you have the Lynx browser installed. By default, Rmail will display the HTML version of a mail message that has both HTML and plain text parts, if display of HTML email is possible; customize the -'rmail-mime-prefer-html' option to 'nil' if you don't want that. +'rmail-mime-prefer-html' option to nil if you don't want that. -+++ *** In the commands that make summaries by subject, recipients, or senders, you can no longer use commas to separate regular expressions. -+++ ** SES now supports local printer functions; see 'ses-define-local-printer'. ** Shell-script Mode ---- *** In sh-mode you can now use 'sh-shell' as a file-local variable to specify the type of shell in use (bash, csh, etc). ---- *** New value 'always' for 'sh-indent-after-continuation'. This provides old-style ("dumb") indentation of continued lines. See the doc string of 'sh-indent-after-continuation' for details. ** TLS ---- *** Fatal TLS errors are now silent by default. ---- *** If Emacs isn't built with TLS support, an external TLS-capable program is used instead. This program used to be run in --insecure mode by default, but has now changed to be secure instead, and will @@ -909,85 +796,68 @@ controlled by the 'tls-program' variable. ** URL -+++ *** The URL package accepts now the protocols "ssh", "scp" and "rsync". When 'url-handler-mode' is enabled, file operations for these protocols as well as for "telnet" and "ftp" are passed to Tramp. -+++ *** The URL package allows customizing the 'url-user-agent' string. The new 'url-user-agent' variable can be customized to be a string or a function. ---- *** The new interface variable 'url-request-noninteractive' can be used to specify that we're running in a noninteractive context, and that we should not be queried about things like TLS certificate validity. ---- *** 'url-mime-accept-string' can now be used as in "interface" variable, meaning you can bind it around an 'url-retrieve' call. ---- *** If URL is used with a https connection, the first callback argument -plist will contain a :peer element that has the output of +PLIST will contain a :peer element that has the output of 'gnutls-peer-status' (if Emacs is built with GnuTLS support). ** Tramp -+++ -*** New connection method "afp", which allows you to access Mac OS X +*** New connection method "afp", which allows you to access macOS volumes via the Apple Filing Protocol. -+++ *** New connection method "nc", which allows you to access dumb busyboxes. -+++ *** Method-specific parameters can be overwritten now with variable 'tramp-connection-properties'. ---- *** Handler for 'file-notify-valid-p' for remote machines that support filesystem notifications. ** SQL mode ---- *** New user variable 'sql-default-directory' enables remote connections using Tramp. ---- *** New command 'sql-send-line-and-next'. This command, bound to 'C-c C-n' by default, sends the current line to the SQL process and advances to the next line, skipping whitespace and comments. ---- *** Added support for Vertica SQL. ** VC and related modes -+++ *** Basic push support, via 'vc-push', bound to 'C-x v P'. Implemented for Bzr, Git, Hg. As part of this change, the pre-existing -(undocumented) command vc-hg-push now behaves slightly differently. +(undocumented) command 'vc-hg-push' now behaves slightly differently. -+++ -*** The new command vc-region-history shows the log+diff of the active region. +*** The new command 'vc-region-history' shows the log+diff of the active region. -+++ *** You can refresh the VC state of a file buffer with 'M-x vc-refresh-state'. This command is useful when you perform version control commands outside Emacs (e.g., from the shell prompt), or if you switch the VC back-end for the buffer's file, or remove it from version control. -+++ *** New option 'vc-annotate-background-mode' controls whether the color range from 'vc-annotate-color-map' is applied to the background or to the foreground. ---- *** New options for customizing encoding of Git commit log messages. The new user options 'vc-git-commits-coding-system' and 'vc-git-log-output-coding-system' specify the encoding of log messages @@ -998,92 +868,74 @@ i18n.commitEncoding and i18n.logOutputEncoding. ('vc-git-commits-coding-system' existed previously, but was a variable, not a user option.) -+++ *** 'compare-windows' now compares text with the most recently selected window instead of the next window. If you want the previous behavior of comparing with the next window, customize the new option 'compare-windows-get-window-function' to the value 'compare-windows-get-next-window'. ---- *** Two new faces 'compare-windows-removed' and 'compare-windows-added' replace the face 'compare-windows', which is now an obsolete alias for 'compare-windows-added'. ---- *** The VC state indicator in the mode line now has different faces corresponding to each of the possible states. See the 'vc-faces' customization group. ---- *** 'log-edit-insert-changelog' converts "(tiny change)" to "Copyright-paperwork-exempt: yes". Set 'log-edit-rewrite-tiny-change' nil to disable this. -+++ *** vc-mcvs.el has been removed. ---- ** VHDL mode now supports VHDL'08. ** Calculator ---- *** Decimal display mode uses "," groups, so it's more fitting for use in money calculations ---- *** Factorial works with non-integer inputs. ** Hide-IfDef mode ---- *** Hide-IfDef mode now support full C/C++ expressions in macros, macro argument expansion, interactive macro evaluation and automatic scanning of #define'd symbols. ---- *** New command 'hif-evaluate-macro', bound to 'C-c @ e', displays the result of evaluating a macro. ---- *** New command 'hif-clear-all-ifdef-define', bound to 'C-c @ C', clears all defined symbols in 'hide-ifdef-env'. ---- *** New custom variable 'hide-ifdef-header-regexp' to define C/C++ header file name patterns. Defaults to files whose extension is one of '.h', '.hh', '.hpp', '.hxx', or '.h++', matched case-insensitively. ---- *** New custom variable 'hide-ifdef-expand-reinclusion-protection' to prevent reinclusion protected (a.k.a. "idempotent") header files from being hidden. (This could happen when an idempotent header file is visited again, -when its guard symbol is already defined.) Defaults to 't'. +when its guard symbol is already defined.) Defaults to t. ---- *** New custom variable 'hide-ifdef-exclude-define-regexp' to define symbol name patterns (e.g. all "FOR_DOXYGEN_ONLY_*") to be ignored when looking for macro definitions. By default, no symbols are ignored. ** TeX mode -+++ *** New custom variable 'tex-print-file-extension' to help users who use PDF instead of DVI. -+++ *** TeX mode now supports Prettify Symbols mode. When enabling 'prettify-symbols-mode' in a tex-mode buffer, \alpha ... \omega, and many other math macros are displayed using unicode characters. -+++ ** New 'big-indent' style in 'whitespace-mode' highlights deep indentation. By default, 32 consecutive spaces or four consecutive TABs are considered to be too deep, but the new variable 'whitespace-big-indent-regexp' can be customized to change that. ---- ** New options in 'tildify-mode'. New options 'tildify-space-string', 'tildify-pattern', and 'tildify-foreach-region-function' variables make @@ -1091,8 +943,7 @@ New options 'tildify-space-string', 'tildify-pattern', and 'tildify-ignored-environments-alist' variables (as well as a few helper functions) obsolete. -+++ -** New package Xref replaces Etags's front-end and UI +** New package Xref replaces Etags's front-end and UI. The new package Xref provides a generic framework and new commands to find and move to definitions of functions, macros, data structures @@ -1119,11 +970,9 @@ As a result of this, the following commands are now obsolete: 'tags-search' and 'tags-query-replace', for which there are no direct replacements yet. -+++ *** Variants of 'tags-search' and 'tags-query-replace' in Dired were also replaced by xref-style commands, see the "Dired" section below. -+++ *** New variables 'find-tag-marker-ring-length' is now an obsolete alias for @@ -1132,7 +981,6 @@ alias for a private variable. 'xref-push-marker-stack' and 'xref-pop-marker-stack' should be used instead to manipulate the stack of searches for definitions. ---- *** 'xref-find-definitions' and 'describe-function' now display information about mode local overrides (defined by cedet/mode-local.el 'define-overloadable-function' 'define-mode-local-overrides'). @@ -1140,7 +988,6 @@ information about mode local overrides (defined by cedet/mode-local.el The framework's Lisp API is still experimental and can change in major, backward-incompatible ways. ---- ** New package Project The new package Project provides generic infrastructure for dealing @@ -1152,68 +999,54 @@ The Lisp API of this package is still experimental. ** EUDC EUDC's LDAP backend has been improved. -+++ *** EUDC supports LDAP-over-SSL URLs (ldaps://). ---- *** EUDC passes LDAP passwords through a pipe to the ldapsearch subprocess instead of on the command line. ---- *** EUDC handles LDAP wildcards automatically so the user shouldn't need to configure this manually anymore. -+++ *** The LDAP configuration section of EUDC's manual has been rewritten. There have also been customization changes. -+++ *** New custom variable 'eudc-server-hotlist' to allow specifying multiple EUDC servers in init file. -+++ *** Custom variable 'eudc-inline-query-format' defaults to completing on email and firstname instead of surname. ---- *** Custom variable 'eudc-expansion-overwrites-query' defaults to nil to avoid interfering with the kill ring. -+++ *** Custom variable 'eudc-inline-expansion-format' defaults to "Firstname Surname ". -+++ *** Custom variable 'eudc-options-file' defaults to "~/.emacs.d/eudc-options". ---- *** New custom variable 'ldap-ldapsearch-password-prompt-regexp' to allow overriding the regular expression that recognizes the ldapsearch command line's password prompt. ---- -EUDC's BBDB backend now supports BBDB 3. +*** EUDC's BBDB backend now supports BBDB 3. ---- -EUDC's PH backend (eudcb-ph.el) is obsolete. +*** EUDC's PH backend (eudcb-ph.el) is obsolete. ** Eshell -+++ *** The new built-in command 'clear' can scroll window contents out of sight. -If provided with an optional non-nil argument, the scrollback contents will be cleared. +If provided with an optional non-nil argument, the scrollback contents +will be cleared. -+++ *** New buffer syntax '#', which is equivalent to '#'. This shorthand makes interacting with buffers from eshell more convenient. Custom variable 'eshell-buffer-shorthand', which has been broken for a while, has been removed. -+++ *** By default, eshell "visual" program buffers (created by 'eshell-visual-commands' and similar custom vars) are no longer killed when their processes die. This fixes issues with short-lived commands @@ -1224,55 +1057,43 @@ make the new option 'eshell-destroy-buffer-when-process-dies' non-nil. ** Browse-url ---- *** Support for the Google Chrome web browser. ---- *** Support for the Conkeror web browser. ---- *** Support for several ancient browsers is now officially obsolete. -+++ -** tar-mode: new 'tar-new-entry' command, allowing for new members to +** 'tar-mode': new 'tar-new-entry' command, allowing for new members to be added to the archive. ** Autorevert ---- *** Dired buffers are also auto-reverted via file notifications, if Emacs is compiled with file notification support. ---- *** 'auto-revert-use-notify' is set to nil in 'global-auto-revert-mode'. See . ** File Notifications -+++ -*** The kqueue library is integrated for *BSD and Mac OS X machines. +*** The kqueue library is integrated for *BSD and macOS machines. -+++ *** The new event 'stopped' signals, that a file notification watch is not active any longer. -+++ *** The new function 'file-notify-valid-p' checks, whether a file notification descriptor still corresponds to an activate watch. ** Dired -+++ -*** The command 'dired-do-compress' bound to 'Z' now can compress +*** The command 'dired-do-compress', bound to 'Z', now can compress directories and decompress zip files. -+++ -*** New command 'dired-do-compress-to' bound to 'c' can be used to +*** New command 'dired-do-compress-to', bound to 'c', can be used to compress many marked files into a single named archive. The compression command is determined from the new 'dired-compress-files-alist' variable. -+++ *** New user interface for the 'A' and 'Q' commands. These keys, now bound to 'dired-do-find-regexp' and 'dired-do-find-regexp-and-replace', work similarly to 'xref-find-apropos' @@ -1286,28 +1107,23 @@ back. We intend to obsolete the old commands in a future release. ** Tabulated List Mode -+++ *** It is now safe for a mode that derives 'tabulated-list-mode' to not call 'tabulated-list-init-header', in which case it will have no header. -+++ -*** 'tabulated-list-print' takes a second optional argument, update, +*** 'tabulated-list-print' takes a second optional argument, UPDATE, which specifies an alternative printing method which is faster when few or no entries have changed. ** Obsolete packages ---- *** gulp.el ---- *** landmark.el (moved to elpa.gnu.org) * New Modes and Packages in Emacs 25.1 ---- ** pinentry.el allows GnuPG passphrase to be prompted through the minibuffer instead of a graphical dialog, depending on whether the gpg command is called from Emacs (i.e., INSIDE_EMACS environment variable @@ -1316,60 +1132,49 @@ later) and Pinentry (0.9.5 or later). To use this feature, add "allow-emacs-pinentry" to "~/.gnupg/gpg-agent.conf" and reload the configuration with "gpgconf --reload gpg-agent". -+++ ** cl-generic.el provides CLOS-style multiple-dispatch generic functions. The main entry points are 'cl-defgeneric' and 'cl-defmethod'. See the node "Generic Functions" in the Emacs Lisp manual for more details. ---- -** scss-mode (a minor variant of css-mode) is a major mode for editing +** 'scss-mode' (a minor variant of 'css-mode') is a major mode for editing SCSS (Sassy CSS) files. ---- -** let-alist is a new macro (and a package) that allows one to easily +** 'let-alist' is a new macro (and a package) that allows one to easily let-bind the values stored in an alist. ---- ** 'tildify-mode' allows automatic insertion of hard spaces as one types the text. Breaking line after a single-character words is forbidden by Czech and Polish typography (and may be discouraged in other languages), so 'auto-tildify-mode' makes it easier to create a typographically-correct documents. ---- ** The 'seq' library adds sequence manipulation functions and macros that complement basic functions provided by subr.el. All functions are prefixed with 'seq-' and work on lists, strings and vectors. 'pcase' accepts a new Upattern 'seq'. ---- ** The 'map' library provides map-manipulation functions that work on alists, hash-table and arrays. All functions are prefixed with 'map-'. 'pcase' accepts a new UPattern 'map'. ---- ** The 'thunk' library provides functions and macros to control the evaluation of forms. ---- -** js-jsx-mode (a minor variant of js-mode) provides indentation +** 'js-jsx-mode' (a minor variant of 'js-mode') provides indentation support for JSX, an XML-like syntax extension to ECMAScript. * Incompatible Lisp Changes in Emacs 25.1 ---- ** 'setq' and 'setf' must now be called with an even number of arguments. The earlier behavior of silently supplying a nil to the last variable when there was an odd number of arguments has been eliminated. -+++ ** 'syntax-begin-function' is declared obsolete. -Removed font-lock-beginning-of-syntax-function and the SYNTAX-BEGIN -slot in font-lock-defaults. +Removed 'font-lock-beginning-of-syntax-function' and the SYNTAX-BEGIN +slot in 'font-lock-defaults'. -+++ ** The new implementation of Subword mode affects word movement everywhere. When Subword mode is turned on, 'forward-word', 'backward-word', and everything that uses them will move by sub-words, effectively @@ -1377,19 +1182,16 @@ overriding the buffer's syntax table. Lisp programs that shouldn't be affected by Subword mode should call the new functions 'forward-word-strictly' and 'backward-word-strictly' instead. -+++ ** 'package-initialize' now sets 'package-enable-at-startup' to nil if called during startup. Users who call this function in their init file and still expect it to be run after startup should set 'package-enable-at-startup' to t after the call to 'package-initialize'. ---- ** ':global' minor mode use 'setq-default' rather than 'setq'. This means that you can't use 'make-local-variable' and expect them to "magically" become buffer-local. -+++ ** 'track-mouse' no longer freezes the shape of the mouse pointer. The 'track-mouse' form no longer refrains from changing the shape of the mouse pointer for the entire time the body of that form is @@ -1398,103 +1200,85 @@ large portions of the Emacs display, and want to avoid changes in the pointer shape during dragging, should bind the variable 'track-mouse' to the special value 'dragging' in the body of the form. ---- -** The optional 'predicate' argument of 'lisp-complete-symbol' no longer +** The optional PREDICATE argument of 'lisp-complete-symbol' no longer has any effect. (This change was made in Emacs 24.4 but was not advertised at the time.) -+++ ** 'indirect-function' does not signal 'void-function' any more. This is mostly a bug-fix, since this change was missed back in 24.4 when -symbol-function was changed not to signal 'void-function' any more. +'symbol-function' was changed not to signal 'void-function' any more. -+++ *** As a consequence, the second arg of 'indirect-function' is now obsolete. -+++ -** M-x shell and M-x compile no longer set the EMACS environment variable. +** 'M-x shell' and 'M-x compile' no longer set the EMACS environment variable. This avoids clashing when other programs use the variable for other purposes. -Although M-x term still sets EMACS for compatibility with Bash 4.3 and earlier, -this is deprecated and will be phased out when Bash 4.4 or later takes over. -Use the INSIDE_EMACS environment variable instead. +Although 'M-x term' still sets EMACS for compatibility with Bash 4.3 +and earlier, this is deprecated and will be phased out when Bash 4.4 +or later takes over. Use the INSIDE_EMACS environment variable instead. -+++ ** 'save-excursion' does not save&restore the mark any more. Use 'save-mark-and-excursion' if you want the old behavior. -+++ ** 'read-buffer' and 'read-buffer-function' can now be called with a 4th -argument ('predicate'). +argument (PREDICATE). -+++ ** 'completion-table-dynamic' by default stays in the minibuffer. The minibuffer will be the current buffer when the function is called. If you want the old behavior of calling the function in the buffer from which the minibuffer was entered, use the new argument -'switch-buffer' to 'completion-table-dynamic'. +SWITCH-BUFFER to 'completion-table-dynamic'. ---- ** window-configurations no longer record the buffers' marks. ---- -** inhibit-modification-hooks now also inhibits lock-file checks, as well as -active region handling. +** 'inhibit-modification-hooks' now also inhibits lock-file checks, as +well as active region handling. -+++ -** deactivate-mark is now buffer-local. +** 'deactivate-mark' is now buffer-local. -+++ ** 'cl-the' now asserts that its argument is of the given type. -+++ ** 'process-running-child-p' may now return a numeric process -group ID instead of 't'. +group ID instead of t. -+++ ** Mouse click events on mode line or header line no longer include any reference to a buffer position. The 6th member of the mouse position list returned for such events is now nil. ---- ** Menu items in keymaps do not support the "key shortcut cache" any more. These slots used to hold key-shortcut data, but have been obsolete since -Emacs-21. +Emacs 21. ---- ** Emacs no longer downcases the first letter of a system diagnostic when signaling a file error. For example, it now reports "Permission denied" instead of "permission denied". The old behavior was problematic in languages like German where downcasing rules depend on grammar. -+++ ** New variable 'text-quoting-style' to control how Emacs translates quotes. Set it to 'curve' for curved single quotes, to 'straight' for straight apostrophes, and to 'grave' for grave accent and apostrophe. The default value nil acts like 'curve' if curved single quotes are displayable, and like 'grave' otherwise. The new variable affects -display of diagnostics and help, but not of info. +display of diagnostics and help, but not of info. As the variable is +not intended for casual use, it is not a user option. -+++ -** substitute-command-keys now replaces quotes. +** Message-issuing functions like 'message' and 'error' now translate +various sorts of single quotes in their format strings according to +the value of 'text-quoting-style' (see above). This translation +cannot be disabled. To get the old behavior, use 'format', which is +not affected by 'text-quoting-style', e.g., (message "%s" (format +"...." foo bar)). + +** 'substitute-command-keys' now replaces quotes. That is, it converts documentation strings' quoting style as per the value of 'text-quoting-style'. Doc strings in source code can use either curved single quotes or grave accents and apostrophes. As before, characters preceded by \= are output as-is. -+++ -** Message-issuing functions 'error', 'message', etc. now convert quotes. -They use the new 'format-message' function instead of plain 'format', -so that they now follow user preference as per 'text-quoting-style' -when processing curved single quotes, grave accents, and apostrophes -in their format argument. - -+++ ** The character classes [:alpha:] and [:alnum:] in regular expressions now match multibyte characters using Unicode character properties. If you want the old behavior where they matched any character with word syntax, use '\sw' instead. -+++ ** The character classes [:graph:] and [:print:] in regular expressions no longer match every multibyte character. Instead, Emacs now consults the Unicode character properties to determine which @@ -1502,148 +1286,130 @@ characters are graphic or printable. In particular, surrogates and unassigned codepoints are now rejected. If you want the old behavior, use [:multibyte:] instead. -+++ ** The 'diff' command uses the unified format now. To restore the old behavior, set 'diff-switches' to '-c'. ---- ** 'grep-template' and 'grep-find-template' values don't include the --color argument anymore. It's added at the place holder position dynamically. Any third-party code that changes these templates should be updated accordingly. -+++ ** '(/ N)' is now equivalent to '(/ 1 N)' rather than to '(/ N 1)'. The new behavior is compatible with Common Lisp and with XEmacs. This change does not affect Lisp code intended to be portable to Emacs 24.2 and earlier, which did not support unary '/'. -+++ ** The 'default-directory' value doesn't have to end slash. To make that happen, 'unhandled-file-name-directory' now defaults to calling 'file-name-as-directory'. +** The URL package now insists on sending only unibyte strings to server +This means packages that use URL cannot bind 'url-request-data' to +multibyte strings. If non-ASCII characters should be part of the URL +payload, then 'url-request-data' should be encoded to become a unibyte +string. + * Lisp Changes in Emacs 25.1 -** pcase -+++ +** 'pcase' *** New UPatterns 'quote', 'app'. -+++ *** New UPatterns can be defined with 'pcase-defmacro'. -+++ *** New vector QPattern. ---- -** syntax-propertize is now automatically called on-demand during forward +** 'syntax-propertize' is now automatically called on-demand during forward parsing functions like 'forward-sexp'. -+++ ** New hooks 'prefix-command-echo-keystrokes-functions' and 'prefix-command-preserve-state-hook' allow the definition of prefix commands other than the predefined 'C-u'. -+++ ** New functions 'filepos-to-bufferpos' and 'bufferpos-to-filepos'. These allow conversion between buffer positions and the corresponding file byte offsets, given the file's encoding. -+++ ** The default value of 'load-read-function' is now 'read'. -Previously, the default value of 'nil' implied using 'read'. +Previously, the default value of nil implied using 'read'. -+++ ** New hook 'pre-redisplay-functions'. It is a bit easier to use than 'pre-redisplay-function'. -+++ ** The second arg of 'looking-back' should always be provided explicitly. Previously, it was an optional argument, now it's mandatory. -+++ ** Text properties 'intangible', 'point-entered', and 'point-left' are obsolete. Replaced by properties 'cursor-intangible' and 'cursor-sensor-functions', implemented by the new 'cursor-intangible-mode' and 'cursor-sensor-mode' minor modes. -+++ -** 'inhibit-point-motion-hooks' now defaults to 't' and is obsolete. +** 'inhibit-point-motion-hooks' now defaults to t and is obsolete. Use the new minor modes 'cursor-intangible-mode' and 'cursor-sensor-mode' instead. -+++ ** New process type 'pipe', which can be used in combination with the -':stderr' keyword of make-process to handle standard error output +':stderr' keyword of 'make-process' to handle standard error output of subprocess. -+++ ** New function 'make-process' provides an alternative interface to 'start-process'. It allows programs to set process parameters such as process filter, sentinel, etc., through keyword arguments (similar to 'make-network-process'). -+++ +** Subprocesses are automatically told about changes in window dimensions. +The new option 'window-adjust-process-window-size-function' controls +how subprocesses are told to adapt their logical window sizes to +changes in the Emacs window configuration. Its default value calls +'set-process-window-size' with the smallest dimensions of all the +windows that display the subprocess's buffer. + ** A new function 'directory-files-recursively' returns all matching files (recursively) under a directory. -+++ ** New variable 'inhibit-message', when bound to non-nil, inhibits 'message' and related functions from displaying messages in the echo -area. The output is still logged to the *Messages* buffer. +area. The output is still logged to the '*Messages*' buffer. -+++ ** A new text property 'inhibit-read-only' can be used in read-only buffers to allow certain parts of the text to be writable. -+++ ** A new variable 'comment-end-can-be-escaped' is useful in languages - such as C and C++ where line comments with escaped newlines are - continued to the next line. +such as C and C++ where line comments with escaped newlines are +continued to the next line. -+++ ** New macro 'define-advice'. -+++ ** Emacs Lisp now supports generators. See the "Generators" section of the ELisp manual for the details. -+++ ** New finalizer facility for running code when objects become unreachable. See the "Finalizer Type" subsection in the ELisp manual for the details. ---- -** lexical closures can use (:documentation FORM) to build their docstring. +** Lexical closures can use '(:documentation FORM)' to build their docstring. It should be placed right where the docstring would be, and FORM is then evaluated (and should return a string) when the closure is built. -+++ -** define-inline provides a new way to define inlinable functions. +** 'define-inline' provides a new way to define inlinable functions. -+++ ** New function 'macroexpand-1' to perform a single step of macro expansion. -+++ ** Some "x-*" functions were obsoleted and/or renamed: -*** x-select-text is renamed gui-select-text. -*** x-selection-value is renamed gui-selection-value. -*** x-get-selection is renamed gui-get-selection. -*** x-get-clipboard and x-clipboard-yank are marked obsolete. -*** x-get-selection-value is renamed to gui-get-primary-selection. -*** x-set-selection is renamed to gui-set-selection +*** 'x-select-text' is renamed 'gui-select-text'. +*** 'x-selection-value' is renamed 'gui-selection-value'. +*** 'x-get-selection' is renamed 'gui-get-selection'. +*** 'x-get-clipboard' and 'x-clipboard-yank' are marked obsolete. +*** 'x-get-selection-value' is renamed to 'gui-get-primary-selection'. +*** 'x-set-selection' is renamed to 'gui-set-selection'. -+++ ** New function 'string-greaterp', which return the opposite result of 'string-lessp'. -+++ ** The new functions 'string-collate-lessp' and 'string-collate-equalp' preserve the collation order as defined by the system's locale(1) environment. For the time being this is implemented for modern POSIX systems and for MS-Windows, for other systems they fall back to their counterparts 'string-lessp' and 'string-equal'. ---- *** The ls-lisp package uses 'string-collate-lessp' to sort file names. The effect is that, on systems that use ls-lisp for Dired, the default sort order of the files in Dired is now different from what it was in @@ -1654,7 +1420,6 @@ longer appear near the beginning of the directory listing. If you want the old, locale-independent sorting, customize the new option 'ls-lisp-use-string-collate' to the nil value. -+++ *** The MS-Windows specific variable 'w32-collate-ignore-punctuation', if set to a non-nil value, causes the above 2 functions to ignore symbol and punctuation characters when collating strings. This @@ -1662,83 +1427,69 @@ emulates the behavior of modern Posix platforms when the locale's codeset is "UTF-8" (as in "en_US.UTF-8"). This is needed because MS-Windows doesn't support UTF-8 as codeset in its locales. -+++ -** New function 'alist-get', which is also a valid place (aka lvalue). +** New function 'alist-get', which is a generalized variable +suitable for use with 'setf'. -+++ ** New function 'funcall-interactively', which works like 'funcall' but makes 'called-interactively-p' treat the function as (you guessed it) called interactively. -+++ ** New function 'function-put' to use instead of 'put' for function properties. -+++ ** The new function 'bidi-find-overridden-directionality' allows you to find characters whose directionality was, perhaps maliciously, overridden by directional override control characters. Lisp programs can use this to detect potential phishing of URLs and other links that exploits bidirectional display reordering. -+++ ** The new function 'buffer-substring-with-bidi-context' allows you to copy a portion of a buffer into a different location while preserving the visual appearance both of the copied text and the text at destination, even when the copied text includes mixed bidirectional text and directional control characters. -+++ ** New properties that can be specified with 'declare': -*** (interactive-only INSTEAD), says to use INSTEAD for non-interactive use. -*** (pure VAL), if VAL is non-nil, indicates the function is pure. -*** (side-effect-free VAL), if VAL is non-nil, indicates the function does not +*** '(interactive-only INSTEAD)', says to use INSTEAD for non-interactive use. +*** '(pure VAL)', if VAL is non-nil, indicates the function is pure. +*** '(side-effect-free VAL)', if VAL is non-nil, indicates the function does not have side effects. -+++ ** New macro 'with-file-modes', for evaluating expressions with default file permissions set to temporary values (e.g., for creating private files). -+++ ** You can access the slots of structures using 'cl-struct-slot-value'. -+++ ** Function 'sort' can deal with vectors. ---- ** Function 'system-name' now returns an updated value if the current -system's name has changed or if the Emacs process has changed systems, -and to avoid long waits it no longer consults DNS to canonicalize the -name. The variable 'system-name' is now obsolete. +system's name has changed or if the Emacs process has changed systems. +To avoid long waits it no longer consults DNS to canonicalize the name +(in some cases this may affect generated message-id headers - customize +'message-user-fqdn' if this bothers you). The variable 'system-name' +is now obsolete. -+++ ** Function 'write-region' no longer outputs "Wrote FILE" in batch mode. ---- ** If 'pwd' is called with a prefix argument, insert the current default directory at point. -+++ ** New functions return extended information about fonts and faces. -+++ *** The function 'font-info' now returns more details about a font. In particular, it now returns the average width of the font's characters, which can be used for geometry-related calculations. -+++ *** A new function 'default-font-width' returns the average width of a character in the current buffer's default font. If the default face is remapped (see 'face-remapping-alist'), the value for the remapped face is returned. This function complements the existing function 'default-font-height'. -+++ *** New functions 'window-font-height' and 'window-font-width' return the height and average width of characters in a specified face and window. If FACE is remapped (see 'face-remapping-alist'), the function returns the information for the remapped face. -+++ *** A new function 'window-max-chars-per-line' returns the maximal number of characters that can be displayed on one line. If a face and/or window are provided, these values are used for the @@ -1746,14 +1497,14 @@ calculation. This function is different from 'window-body-width' in that it accounts for (i) continuation glyphs, (ii) the size of the font, and (iii) the specified window. ---- ** New utilities in subr-x.el: + *** New macros 'if-let' and 'when-let' allow defining bindings and to - execute code depending whether all values are true. +execute code depending whether all values are true. + *** New macros 'thread-first' and 'thread-last' allow threading a form - as the first or last argument of subsequent forms. +as the first or last argument of subsequent forms. -+++ ** Documentation strings now support quoting with curved single quotes in addition to the old style with grave accent and apostrophe. The new style looks better on today's displays. In the new Electric Quote @@ -1764,18 +1515,15 @@ works) by typing 'A-[' and 'A-]'. As described above under 'text-quoting-style', the user can specify how to display doc string quotes. -+++ ** New function 'format-message' is like 'format' and also converts curved single quotes, grave accents and apostrophes as per 'text-quoting-style'. -+++ -** show-help-function's arg is converted via substitute-command-keys +** 'show-help-function's arg is converted via 'substitute-command-keys' before being passed to the function. Help strings, help-echo properties, etc. can therefore contain command key escapes and quotation marks. -+++ ** Time-related changes: *** Time conversion functions now accept an optional ZONE argument @@ -1808,99 +1556,94 @@ been obsoleted. undocumented integer-pair format. Instead, they return a list of two integers. -+++ ** New function 'set-binary-mode' allows switching a standard stream of the Emacs process to binary I/O mode. -+++ ** The new function 'directory-name-p' can be used to check whether a file name (as returned from, for instance, 'file-name-all-completions') is a directory file name. It returns non-nil if the last character in the name is a directory separator character (forward slash on GNU and Unix systems, forward- or backslash on MS-Windows and MS-DOS). ---- -** ASCII approximations to curved quotes are put in standard-display-table +** ASCII approximations to curved quotes are put in 'standard-display-table' if the terminal cannot display curved quotes. -+++ ** Standard output and error streams now transliterate characters via -standard-display-table, and encode output using locale-coding-system. +'standard-display-table', and encode output using 'locale-coding-system'. To force a specific encoding, bind 'coding-system-for-write' to the coding-system of your choice when invoking functions like 'prin1' and 'message'. -+++ ** New var 'truncate-string-ellipsis' to choose how to indicate truncation. -+++ ** New possible value for 'system-type': 'nacl'. This is used by Google's Native Client (NaCl). ** Miscellaneous name change ---- For consistency with the usual Emacs spelling, the Lisp variable 'hfy-optimisations' has been renamed to 'hfy-optimizations'. The old name should still work, as an obsolescent alias. ** Changes in Frame- and Window- Handling -+++ *** Emacs can now draw horizontal scroll bars on some platforms that provide toolkit scroll bars, namely Gtk+, Lucid, Motif and Windows. Horizontal scroll bars are turned off by default. **** New function 'horizontal-scroll-bars-available-p' telling whether - horizontal scroll bars are available on the underlying system. +horizontal scroll bars are available on the underlying system. **** New mode 'horizontal-scroll-bar-mode' to toggle horizontal scroll - bars on all existing and future frames. +bars on all existing and future frames. **** New function 'toggle-horizontal-scroll-bar' to toggle horizontal - scroll bars on the selected frame. +scroll bars on the selected frame. **** New frame parameters 'horizontal-scroll-bars' and - 'scroll-bar-height' to set horizontal scroll bars and their height - for individual frames and in 'default-frame-alist'. +'scroll-bar-height' to set horizontal scroll bars and their height +for individual frames and in 'default-frame-alist'. + +***** The 'horizontal-scroll-bars' parameter was already present and non-nil +by default in Emacs 24 and before (although it didn't have any +effect). This could cause a problem if you share your desktop files +with older versions of Emacs: saving desktop in Emacs before v25.1, +then restoring it in v25.1 would turn on horizontal scroll bars in all +buffers. To resolve this issue, put this in your ~/.emacs init file: + + (modify-all-frames-parameters '((horizontal-scroll-bars . nil))) **** New functions 'frame-scroll-bar-height' and - 'window-scroll-bar-height' return the height of horizontal scroll - bars on a specific frame or window. +'window-scroll-bar-height' return the height of horizontal scroll +bars on a specific frame or window. **** 'set-window-scroll-bars' now accepts five parameters where the last - two specify height and type of the window's horizontal scroll bar. +two specify height and type of the window's horizontal scroll bar. **** 'window-scroll-bars' now returns type and sizes of horizontal scroll - bars too. +bars too. **** New buffer-local variables 'horizontal-scroll-bar' and - 'scroll-bar-height'. +'scroll-bar-height'. -+++ *** New functions 'frame-geometry' and 'frame-edges' give access to a frame's geometry. -+++ *** New functions 'mouse-absolute-pixel-position' and 'set-mouse-absolute-pixel-position' get/set screen coordinates of the mouse cursor. -+++ *** The function 'window-edges' now accepts three additional arguments to retrieve body, absolute and pixel edges of the window. -+++ *** The functions 'window-inside-edges', 'window-inside-pixel-edges' and 'window-inside-absolute-pixel-edges' have been renamed to respectively 'window-body-edges', 'window-body-pixel-edges' and 'window-absolute-body-pixel-edges'. The old names are kept as aliases. -+++ *** New function 'window-absolute-pixel-position' to get the screen coordinates of a visible buffer position. -+++ *** The height of a frame's menu and tool bar are no longer counted in the frame's text height. This means that the text height stands only for the height of the frame's root window plus that of the echo area (if @@ -1908,34 +1651,38 @@ present). This was already the behavior for frames with external tool and menu bars (like in the Gtk builds) but has now been extended to all builds. -+++ *** Frames now do not necessarily preserve the number of columns or lines they display when setting default font, menu bar, fringe width, or scroll bars. In particular, maximized and fullscreen frames are conceptually never resized if such settings change. For fullheight and fullwidth frames, the behavior may depend on the toolkit used. + **** New option 'frame-inhibit-implied-resize' if non-nil, means that - setting default font, menu bar, fringe width, or scroll bars of a - specific frame does not resize that frame in order to preserve the - number of columns or lines it displays. +setting default font, menu bar, fringe width, or scroll bars of a +specific frame does not resize that frame in order to preserve the +number of columns or lines it displays. -+++ *** New function 'window-preserve-size' allows you to preserve the size of a window without "fixing" it. It's supported by 'fit-window-to-buffer', 'temp-buffer-resize-mode' and 'display-buffer'. -+++ *** New 'display-buffer' action function 'display-buffer-use-some-frame'. This displays the buffer in an existing frame other than the current frame, and allows the caller to specify a frame predicate to exclude frames. -+++ *** New minor mode 'window-divider-mode' and options 'window-divider-default-places', 'window-divider-default-bottom-width' and 'window-divider-default-right-width'. -+++ +*** When a window is shrunk horizontally its margins are no longer removed +automatically. Rather, Emacs refuses to split or resize windows when +this would cause margins to no longer fit into the width reserved for the +corresponding window. An application can override this behavior for a +particular window by setting that window's 'min-margins' parameter. As +a consequence, the application becomes fully responsible for trimming +the margin sizes of that window and any window inheriting these margins. + *** The window displaying the '*Completions*' buffer with minibuffer completion candidates is now shown at the bottom of the selected frame. The size of that window is always as large as required to @@ -1945,13 +1692,11 @@ to provide space for the '*Completions*' display. The Emacs manual describes how to customize 'display-buffer-alist' to get back the old behavior, see the node "Temporary Displays" there. ---- ** Tearoff menus and detachable toolbars for Gtk+ have been removed. Those features have been deprecated in Gtk+ for a long time. ** Etags -+++ *** etags no longer qualifies class members by default. By default, 'etags' will not qualify class members for Perl and C-like @@ -1967,17 +1712,14 @@ that using -Q might make some class members become "unknown" to 'M-.' ('xref-find-definitions'); if so, you can use 'C-u M-.' to specify the qualified names by hand. -+++ *** New language Ruby Names of modules, classes, methods, functions, and constants are tagged. Overloaded operators are also tagged. -+++ *** New language Go Names of packages, functions, and types are tagged. -+++ *** Improved support for Lua Etags now tags functions even if the "function" keyword follows some @@ -1986,42 +1728,42 @@ whitespace at line beginning. * Changes in Emacs 25.1 on Non-Free Operating Systems ---- -** MS-Windows specific Emacs build scripts are no longer in the distribution +** MS-Windows specific Emacs build scripts are no longer in the distribution. This includes the makefile.w32-in files in various subdirectories, and the support files. The file nt/configure.bat now just tells the user to use the procedure described in nt/INSTALL, by running the Posix 'configure' script in the top-level directory. ---- ** Building Emacs for MS-Windows requires at least Windows XP or Windows Server 2003. The built binaries still run on all versions of Windows starting with Windows 9X. -+++ ** Emacs running on MS-Windows now supports the daemon mode. ---- ** The byte counts in etags-generated TAGS files are now the same on MS-Windows as they are on other platforms. ---- -** On OS X, configure creates a Cocoa ("Nextstep") build by default. +** On macOS, configure creates a Cocoa ("Nextstep") build by default. Pass '--without-ns' to configure to create an X11 build, the old default. ---- -** OS X 10.5 or older is no longer supported. +** Mac OS X 10.5 or older is no longer supported. ---- -** OS X on PowerPC is no longer supported. +** Mac OS X on PowerPC is no longer supported. ---- ** New variable 'ns-use-fullscreen-animation' controls animation for non-native NS fullscreen. The default is nil. Set to t to enable -animation when entering and leaving fullscreen. For native OSX fullscreen -this has no effect. +animation when entering and leaving fullscreen. For native macOS +fullscreen this has no effect. + +** On the macOS Cocoa ("Nextstep") port, multicolor font (such as color +emoji) display is disabled. This feature was accidentally added when +Emacs 24.4 included the new Core Text based font backend code that was +originally implemented for a non-mainline port. This will be enabled +again once it is also implemented in Emacs on free operating systems. +If some symbols, such as emoji, do not display, we suggest to install +an appropriate font, such as Symbola; then they will be displayed, +albeit without the color effects. ---- ** The new function 'w32-application-type' returns the type of an MS-Windows application given the name of its executable program file. diff --git a/etc/NEWS.22 b/etc/NEWS.22 index 1bc4967d6ab6..5e414f18d647 100644 --- a/etc/NEWS.22 +++ b/etc/NEWS.22 @@ -262,7 +262,7 @@ item was added to the menu bar to make it easily accessible You no longer need to download a separate tarball in order to build Emacs with Leim. -** Support for MacOS X was added. +** Support for Mac OS X was added. See the files mac/README and mac/INSTALL for build instructions. ** Mac OS 9 port now uses the Carbon API by default. You can also @@ -3390,7 +3390,7 @@ obsolete; use `dframe-update-speed' instead. *** display-battery-mode replaces display-battery. -*** battery.el now works on recent versions of OS X. +*** battery.el now works on recent versions of Mac OS X. ** Games diff --git a/etc/NEWS.23 b/etc/NEWS.23 index d92bf237979d..f74141db49a6 100644 --- a/etc/NEWS.23 +++ b/etc/NEWS.23 @@ -551,7 +551,7 @@ System (CLOS). It is used by the other CEDET packages. ** js.el is a new major mode for JavaScript files. -** imap-hash.el is a new library to address IMAP mailboxes as hashtables. +** imap-hash.el is a new library to address IMAP mailboxes as hash tables. * Incompatible Lisp Changes in Emacs 23.2 diff --git a/etc/NEWS.24 b/etc/NEWS.24 index df2e11f08e7d..08021f4ee04b 100644 --- a/etc/NEWS.24 +++ b/etc/NEWS.24 @@ -84,7 +84,7 @@ It is no longer needed, as the crt*.o files are no longer linked specially. ** Directories passed to configure option `--enable-locallisppath' are no longer created during installation. -** Emacs for Nextstep (Mac OS X, GNUstep) can be built with ImageMagick support. +** Emacs for Nextstep (OS X, GNUstep) can be built with ImageMagick support. This requires pkg-config to be available at build time. @@ -1559,7 +1559,7 @@ The previous binding, introduced in Emacs 24.1, was a mistake, because *** New input method `vietnamese-vni'. -** Nextstep (GNUstep / Mac OS X) port +** Nextstep (GNUstep / OS X) port *** Support for fullscreen and the frame parameter fullscreen. @@ -2373,9 +2373,9 @@ Emacs now supports `mouse-highlight', help-echo (in the echo area), and ** On MS Windows, you can pass `--without-libxml2' to configure.bat to omit support for libxml2, even if its presence is detected. -** On Mac OS X, the Nextstep port requires OS X 10.4 or later. +** On OS X, the Nextstep port requires Mac OS X 10.4 or later. -** On Mac OS X, configure no longer automatically adds the Fink "/sw" +** On OS X, configure no longer automatically adds the Fink "/sw" directories to the search path. You must add them yourself if you want them. @@ -3833,7 +3833,7 @@ and also when HOME is set to C:\ by default. (It is only used internally in the Emacs C code.) ** Customize ns-auto-hide-menu-bar to have the menu-bar hidden, but -reappear on mouse-over. (Requires OS X 10.6 or later.) +reappear on mouse-over. (Requires Mac OS X 10.6 or later.) ** On Mac OS X, dragging a file into Emacs visits the file, like on other platforms, rather than inserting its contents into the buffer. diff --git a/etc/NEXTSTEP b/etc/NEXTSTEP index ad2ab959e6df..60c49ad8c7eb 100644 --- a/etc/NEXTSTEP +++ b/etc/NEXTSTEP @@ -3,8 +3,8 @@ See the end of the file for license conditions. This file contains information about GNU Emacs on "Nextstep" platforms. The Nextstep support code works on many POSIX systems (and possibly -W32) using the GNUstep libraries, and on MacOS X systems using the -Cocoa libraries. +W32) using the GNUstep libraries, and on macOS systems using the Cocoa +libraries. Background ---------- @@ -17,9 +17,9 @@ system in the late 1980's. Later on, in collaboration with Sun, this API was published as a specification called OpenStep. The GNUstep project started in the early 1990's to provide a free implementation of this API. Later on, Apple bought NeXT (some would say "NeXT bought -Apple") and made OpenStep the basis of OS X, calling the API "Cocoa". -Since then, Cocoa has evolved beyond the OpenStep specification, and -GNUstep has followed it. +Apple") and made OpenStep the basis of Mac OS X, calling the API +"Cocoa". Since then, Cocoa has evolved beyond the OpenStep +specification, and GNUstep has followed it. Thus, calling this port "OpenStep" is not technically accurate, and in the absence of any other determinant, we are using the term @@ -30,8 +30,8 @@ begin with the letters "NS". (See http://en.wikipedia.org/wiki/Nextstep) This Emacs port was first released in the early 1990's on the NeXT -computer, and was successively updated to OpenStep, Rhapsody, OS X, -and then finally GNUstep, tracking GNU emacs core releases in the +computer, and was successively updated to OpenStep, Rhapsody, Mac OS +X, and then finally GNUstep, tracking GNU Emacs core releases in the meantime. @@ -62,13 +62,13 @@ Release History 1999/05/?? 6.0b3 Scott Bender: "OS X Server", Emacs 20.3. -2001/06/25 7.0 Ported to MacOS X (10.1) by Christophe de +2001/06/25 7.0 Ported to Mac OS X (10.1) by Christophe de Dinechin. Release based on Emacs 20.7. Hosting moved to SourceForge. 2002/01/03 7.0.1 Bug fixes. -2002/08/27 7.0.2 Jaguar (OS X 10.2) support. Added an autoconf +2002/08/27 7.0.2 Jaguar (Mac OS X 10.2) support. Added autoconf option for sys_nerr being in stdio. Added libncurses to the build libraries. Fixed a problem with ns-alternate-is-meta. Changed the @@ -76,7 +76,7 @@ Release History 2004/10/07 8.0-pre1 Ported to GNUstep by Adrian Robert. -2004/11/04 8.0-pre2 Restored functionality on OS X (menu code +2004/11/04 8.0-pre2 Restored functionality on Mac OS X (menu code cleanup). Improved scrollbar handling and paste from other applications. File icons obtained properly from NSWorkspace. Dropped @@ -116,7 +116,8 @@ Release History and Planner go away. Improved scrollbar handling and rendering speed. Color panel and other bug fixes. mac-fix-env utility. - Font handling improvements (OS X 10.3, 10.4): + Font handling improvements (Mac OS X 10.3, + 10.4): - heed 'GSFontAntiAlias' default - heed system antialiasing threshold - added 'UseQuickdrawSmoothing' default to @@ -150,8 +151,9 @@ Release History handling improved. Fixed some portability problems on Tiger and Puma. -2005/09/12 8.0 Bundled ispell on OS X. Minor bug fixes and - stability improvements. Compiles under gcc-4. +2005/09/12 8.0 Bundled ispell on Mac OS X. Minor bug fixes + and stability improvements. Compiles under + gcc-4. 2005/09/26 8.0.1 Correct clipped rendering for synthetic italics. Include the info directory. @@ -247,7 +249,7 @@ Christian Limpach Scott Bender OpenStep, Rhapsody ports Christophe de Dinechin - MacOS X port + macOS port Adrian Robert GNUstep port, update Emacs 20 -> 21+ diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 9d80139fa941..8d8c0c604a70 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -952,7 +952,7 @@ instead of requiring each Babel library one by one. - New option [[doc:org-gnus-no-server][org-gnus-no-server]] to start Gnus with =gnus-no-server= - Org is now distributed with =htmlize.el= version 1.43 - ~org-drill.el~ has been updated to version 2.3.7 -- ~org-mac-iCal.el~ now supports MacOSX version up to 10.8 +- ~org-mac-iCal.el~ now supports OS X versions up to 10.8 - Various improvements to ~org-contacts.el~ and =orgpan.el= ** Outside Org diff --git a/etc/PROBLEMS b/etc/PROBLEMS index be9400bf2647..9904339be40d 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -604,11 +604,19 @@ 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 +small limit of file descriptors allowed per process, like macOS, 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 + +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. @@ -749,6 +757,20 @@ the following variables: tex-font-script-display (how much to lower/raise); tex-suscript-height-ratio (how much smaller than normal); tex-suscript-height-minimum (minimum height). +** Screen refresh is slow when there are special characters for which no suitable font is available + +If the display is too slow in refreshing when you scroll to a new +region, or when you edit the buffer, it might be due to the fact that +some characters cannot be displayed in the default font, and Emacs is +spending too much time in looking for a suitable font to display them. + +You can suspect this if you have several characters that are displayed +as small rectangles containing a hexadecimal code inside. + +The solution is to install the appropriate fonts on your machine. For +instance if you are editing a text with a lot of math symbols, then +installing a font like 'Symbola' should solve this problem. + * Internationalization problems ** M-{ does not work on a Spanish PC keyboard. @@ -940,6 +962,54 @@ into Meta. This is because of the great importance of Meta in Emacs. ** Window-manager and toolkit-related problems +*** Emacs built with GTK+ toolkit produces corrupted display on HiDPI screen + +This can happen if you set GDK_SCALE=2 in the environment or in your +'.xinitrc' file. (This setting is usually accompanied by +GDK_DPI_SCALE=0.5.) Emacs can not support these settings correctly, +as it doesn't use GTK+ exclusively. The result is that sometimes +widgets like the scroll bar are displayed incorrectly, and frames +could be displayed "cropped" to only part of the stuff that should be +displayed. + +The workaround is to explicitly disable these settings when invoking +Emacs, for example (from a Posix shell prompt): + + $ GDK_SCALE=1 GDK_DPI_SCALE=1 emacs + +*** Emacs built with GTK+ toolkit can unexpectedly widen frames + +This resizing takes place when a frame is not wide enough to accommodate +its entire menu bar. Typically, it occurs when switching buffers or +changing a buffer's major mode and the new mode adds entries to the menu +bar. The frame is then widened by the window manager so that the menu +bar is fully shown. Subsequently switching to another buffer or +changing the buffer's mode will not shrink the frame back to its +previous width. The height of the frame remains unaltered. Apparently, +the failure is also dependent on the chosen font. + +The resizing is usually accompanied by console output like + +Gtk-CRITICAL **: gtk_distribute_natural_allocation: assertion 'extra_space >= 0' failed + +It's not clear whether the GTK version used has any impact on the +occurrence of the failure. So far, the failure has been observed with +GTK+ versions 3.4.2, 3.14.5 and 3.18.7. However, another 3.4.2 build +does not exhibit the bug. + +Some window managers (Xfce) apparently work around this failure by +cropping the menu bar. With other windows managers, it's possible to +shrink the frame manually after the problem occurs, e.g. by dragging the +frame's border with the mouse. However, some window managers have been +reported to refuse such attempts and snap back to the width needed to +show the full menu bar (wmii) or at least cause the screen to flicker +during such resizing attempts (i3, IceWM). + +See also http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15700, +http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22000, +http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22898 and +http://lists.gnu.org/archive/html/emacs-devel/2016-07/msg00154.html. + *** Metacity: Resizing Emacs or ALT-Tab causes X to be unresponsive. This happens sometimes when using Metacity. Resizing Emacs or ALT-Tab:bing @@ -1008,6 +1078,28 @@ while, Emacs may print a message: A workaround is to not use 'klipper'. Upgrading 'klipper' to the one coming with KDE 3.3 or later also solves the problem. +*** KDE / Plasma 5: Emacs exhausts memory and needs to be killed + +This problem occurs when large selections contain mixed line endings +(i.e. the buffer has LF line endings, but in some parts CRLF is used). +The source of the problem is currently under investigation, older +versions of Emacs up to 24.5 just hang for a few seconds and then +return with the message "Timed out waiting for property-notify event" +as described in the previous note. As a workaround, go to the +settings dialog for the Clipboard widget and select the option "Ignore +Selection". + +Note: Plasma 5 has replaced the separate klipper process from earlier +KDE versions with functionality directly integrated into plasmashell, +so even if you've previously did not use klipper this will affect you. +Also, all configuration you might have done to klipper is not used by +the new Clipboard widget / plasmoid since it uses its own settings. +You can hide the Clipboard widget by removing its entry from the +system tray settings "Extra Items", but it's not clear if the +underlying functionality in plasmashell gets fully disabled as well. +At least a restart of plasmashell is required for the clipboard +history to be cleared. + *** CDE: Frames may cover dialogs they created when using CDE. This can happen if you have "Allow Primary Windows On Top" enabled which @@ -1655,7 +1747,7 @@ which combination produces "M-x" in the echo area. You can also use the 'xmodmap' utility to show all the keys which produce a Meta modifier: - xmodmap -pk | egrep -i "meta|alt" + xmodmap -pk | grep -Ei "meta|alt" A more convenient way of finding out which keys produce a Meta modifier is to use the 'xkbprint' utility, if it's available on your system: @@ -2429,6 +2521,13 @@ files are installed. Then use: (using the location of the 32-bit X libraries on your system). +*** Building on FreeBSD 11 fails at link time due to unresolved symbol + +The symbol is sendmmsg@FBSD_1.4. This is due to a faulty libgio +library on these systems. The solution is to reconfigure Emacs while +disabling all the features that require libgio: rsvg, dbus, gconf, and +imagemagick. + *** Building Emacs for Cygwin can fail with GCC 3 As of Emacs 22.1, there have been stability problems with Cygwin @@ -2600,51 +2699,70 @@ See , . ** Dumping -*** Segfault during 'make bootstrap' under the Linux kernel. +*** Segfault during 'make' -In Red Hat Linux kernels, "Exec-shield" functionality is enabled by -default, which creates a different memory layout that can break the -emacs dumper. Emacs tries to handle this at build time, but if this -fails, the following instructions may be useful. +If Emacs segfaults when 'make' executes one of these commands: -Exec-shield is enabled on your system if + LC_ALL=C ./temacs -batch -l loadup bootstrap + LC_ALL=C ./temacs -batch -l loadup dump - cat /proc/sys/kernel/exec-shield +the problem may be due to inadequate workarounds for address space +layout randomization (ASLR), an operating system feature that +randomizes the virtual address space of a process. ASLR is commonly +enabled in Linux and NetBSD kernels, and is intended to deter exploits +of pointer-related bugs in applications. If ASLR is enabled, the +command: -prints a value other than 0. (Please read your system documentation -for more details on Exec-shield and associated commands.) + cat /proc/sys/kernel/randomize_va_space # GNU/Linux + sysctl security.pax.aslr.global # NetBSD -Additionally, Linux kernel versions since 2.6.12 randomize the virtual -address space of a process by default. If this feature is enabled on -your system, then +outputs a nonzero value. - cat /proc/sys/kernel/randomize_va_space +These segfaults should not occur on most modern systems, because the +Emacs build procedure uses the command 'setfattr' or 'paxctl' to mark +the Emacs executable as requiring non-randomized address space, and +Emacs uses the 'personality' system call to disable address space +randomization when dumping. However, older kernels may not support +'setfattr', 'paxctl', or 'personality', and newer Linux kernels have a +secure computing mode (seccomp) that can be configured to disable the +'personality' call. -prints a value other than 0. +It may be possible to work around the 'personality' problem in a newer +Linux kernel by configuring seccomp to allow the 'personality' call. +For example, if you are building Emacs under Docker, you can run the +Docker container with a security profile that allows 'personality' by +using Docker's --security-opt option with an appropriate profile; see +. -When these features are enabled, building Emacs may segfault during -the execution of this command: +To work around the ASLR problem in either an older or a newer kernel, +you can temporarily disable the feature while building Emacs. On +GNU/Linux you can do so using the following command (as root). - ./temacs --batch --load loadup [dump|bootstrap] + echo 0 > /proc/sys/kernel/randomize_va_space -To work around this problem, you can temporarily disable these -features while building Emacs. You can do so using the following -commands (as root). Remember to re-enable them when you are done, -by echoing the original values back to the files. +You can re-enable the feature when you are done, by echoing the +original value back to the file. NetBSD uses a different command, +e.g., 'sysctl -w security.pax.aslr.global=0'. - echo 0 > /proc/sys/kernel/exec-shield - echo 0 > /proc/sys/kernel/randomize_va_space +Alternatively, you can try using the 'setarch' command when building +temacs like this, where -R disables address space randomization: -Or, on x86, you can try using the 'setarch' command when running -temacs, like this: + setarch $(uname -m) -R make - setarch i386 -R ./temacs --batch --load loadup [dump|bootstrap] +ASLR is not the only problem that can break Emacs dumping. Another +issue is that in Red Hat Linux kernels, Exec-shield is enabled by +default, and this creates a different memory layout. Emacs should +handle this at build time, but if this fails the following +instructions may be useful. Exec-shield is enabled on your system if -or + cat /proc/sys/kernel/exec-shield + +prints a nonzero value. You can temporarily disable it as follows: - setarch i386 -R make + echo 0 > /proc/sys/kernel/exec-shield -(The -R option disables address space randomization.) +As with randomize_va_space, you can re-enable Exec-shield when you are +done, by echoing the original value back to the file. *** temacs prints "Pure Lisp storage exhausted". diff --git a/etc/TODO b/etc/TODO index 599e74a442cd..84c1b6d8ffd6 100644 --- a/etc/TODO +++ b/etc/TODO @@ -38,7 +38,7 @@ stay within exec_byte_code. ** Add new 'switch' byte-code This byte-code would take one argument from the stack (the object to test) and one argument from the constant-pool (a switch table, implemented as an -eq-hashtable) and would jump to the "label" contained in the hashtable. +'eq' hash table) and would jump to the "label" contained in the hash table. Then add a 'case' special-form that can be compiled to this byte-code. This would behave just like cl-case, but instead of expanding to cond+eq it @@ -700,7 +700,7 @@ resize the frame. **** Support 'proced' (implement 'process-attributes') Unfortunately, a user-level process like Emacs does not have the -privileges to get information about other processes under OS X. +privileges to get information about other processes under macOS. There are other ways to do this: @@ -711,7 +711,7 @@ There are other ways to do this: 3) Ask the user to self-sign Emacs, if this feature is of interest. Anders Lindgren has implemented -'process-attributes' for OS X, which currently only work when +'process-attributes' for macOS, which currently only work when running Emacs as root. See this article by Bozhidar Batsov for an overview of Proced: @@ -724,11 +724,11 @@ even though Emacs allows a user to customize such features. *** New features -This section contains features unique to Nextstep and/or OS X. +This section contains features unique to Nextstep and/or macOS. **** PressAndHold for writing accented character -On OS X, many application support the press and hold pattern to +On macOS, many application support the press and hold pattern to invoke a menu of accented characters. (See example at https://support.apple.com/en-us/HT201586 .) @@ -741,7 +741,7 @@ implemented in Emacs for a free system. **** Floating scroll bars -In modern OS X applications, the scroll bar often floats over the +In modern macOS applications, the scroll bar often floats over the content, and is invisible unless actually used. This makes the user interface less cluttered and more area could be used to contain text. @@ -804,7 +804,7 @@ This section contains issues where there is an ongoing debate. **** Key bindings of CMD and ALT Currently in the "ns" port, ALT is bound to Meta and CMD is bound to -Super -- allowing the user to use typical OS X commands like CMD-A to +Super -- allowing the user to use typical macOS commands like CMD-A to mark everything. Unfortunately, when using an international keyboard, you can't type @@ -852,9 +852,10 @@ Emacs can be build in a number of different ways. For each feature, consider if is really is "NS" specific, or if it should be applied to all build versions. -- With the "NS" interface. This is the normal way to build Emacs on OS X. +- With the "NS" interface. This is the normal way to build Emacs on + macOS. -- With the "X11" interface. On OS X, this is mainly of interest to +- With the "X11" interface. On macOS, this is mainly of interest to developers of Emacs to get a "reference" interface implementations. However, it might be of interest for people working remotely, as X11 applications can be used over a network connection. @@ -863,12 +864,12 @@ all build versions. *** Bugs -**** Incorrect translation of Super modifier with Ctrl or Meta on OS X +**** Incorrect translation of Super modifier with Ctrl or Meta on macOS When pressing 'M-s-a', Emacs replies "M-s-å is undefined". What happened is a mix of Emacs view that Meta and Super has been pressed, -and OS X view that ALT-a should yield "å" (U+00E5 LATIN SMALL LETTER A -WITH RING ABOVE). +and macOS view that ALT-a should yield "å" (U+00E5 LATIN SMALL LETTER +A WITH RING ABOVE). The bug reports suggest two different patches; unfortunately, neither works properly. For example: @@ -1403,10 +1404,6 @@ elements **** In rng-valid, instead of using modification-hooks and insert-behind-hooks on dependent overlays, use same technique as nxml-mode. -**** Port to XEmacs. Issues include: Unicode (XEmacs seems to be based on -Mule-UCS); overlays/text properties vs extents; absence of -fontification-functions hook. - *** Fontification **** Allow face to depend on element qname, attribute qname, attribute diff --git a/etc/emacs-buffer.gdb b/etc/emacs-buffer.gdb index 26c13c1b7067..d51e7ad8a80e 100644 --- a/etc/emacs-buffer.gdb +++ b/etc/emacs-buffer.gdb @@ -70,8 +70,10 @@ # Code: -# Force loading of symbols, enough to give us VALMASK etc. -set main +# Force loading of symbols, enough to give us VALBITS etc. +set $dummy = main + 8 +# With some compilers, we need this to give us struct Lisp_Symbol etc.: +set $dummy = Fmake_symbol + 8 # When nonzero, display some extra diagnostics in various commands set $yverbose = 1 @@ -82,6 +84,11 @@ define ygetptr set $ptr = (CHECK_LISP_OBJECT_TYPE ? $ptr.i : $ptr) & VALMASK end +# Get the value of Qnil for comparison. Needed when +# CHECK_LISP_OBJECT_TYPE is non-zero. +ygetptr Qnil +set $qnil = $ptr + define ybuffer-list set $files_only = $yfile_buffers_only set $yfile_buffers_only = 0 @@ -93,10 +100,13 @@ define ybuffer-list set $i = 0 set $alist = Vbuffer_alist - while $alist != Qnil - ygetptr $alist + ygetptr $alist + set $alist = $ptr + while $alist != $qnil set $this = ((struct Lisp_Cons *) $ptr)->car set $alist = ((struct Lisp_Cons *) $ptr)->u.cdr + ygetptr $alist + set $alist = $ptr # Vbuffer_alist elts are pairs of the form (name . buffer) ygetptr $this @@ -104,7 +114,9 @@ define ybuffer-list ygetptr $buf set $buf = (struct buffer *) $ptr - if ! ($files_only && $buf->filename_ == Qnil) + ygetptr $buf->filename_ + set $fname = $ptr + if ! ($files_only && $fname == $qnil) ygetptr $buf->name_ set $name = ((struct Lisp_String *) $ptr)->data set $modp = ($buf->text->modiff > $buf->text->save_modiff) ? '*' : ' ' @@ -112,11 +124,11 @@ define ybuffer-list ygetptr $buf->mode_name_ set $mode = ((struct Lisp_String *) $ptr)->data - if $buf->filename_ != Qnil + if $fname != $qnil ygetptr $buf->filename_ printf "%2d %c %9d %-20s %-10s %s\n", \ $i, $modp, ($buf->text->z_byte - 1), $name, $mode, \ - ((struct Lisp_String *) $ptr)->data + ((struct Lisp_String *) $fname)->data else printf "%2d %c %9d %-20s %-10s\n", \ $i, $modp, ($buf->text->z_byte - 1), $name, $mode @@ -146,15 +158,17 @@ define yset-buffer set $i = $arg0 set $alist = Vbuffer_alist - while ($alist != Qnil && $i > 0) - ygetptr $alist + ygetptr $alist + set $alist = $ptr + while ($alist != $qnil && $i > 0) set $alist = ((struct Lisp_Cons *) $ptr)->u.cdr + ygetptr $alist + set $alist = $ptr set $i-- end # Get car of alist; this is a pair (name . buffer) - ygetptr $alist - set $this = ((struct Lisp_Cons *) $ptr)->car + set $this = ((struct Lisp_Cons *) $alist)->car # Get the buffer object ygetptr $this diff --git a/etc/refcards/calccard.tex b/etc/refcards/calccard.tex index 5ca8207e2c8f..352c7c2a4f1f 100644 --- a/etc/refcards/calccard.tex +++ b/etc/refcards/calccard.tex @@ -22,14 +22,18 @@ % Copyright (C) 1987, 1992, 2001-2016 Free Software Foundation, Inc. -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -75,14 +79,10 @@ \centerline{designed by Dave Gillespie and Stephen Gildea,} \centerline{for GNU Emacs Calc.} -Permission is granted to make and distribute copies of -this card provided the copyright notice and this permission notice -are preserved on all copies. +Released under the terms of the GNU General Public License version 3 or later. -%For copies of the GNU Emacs Calc manual, write to the Free Software -%Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -%MA 02110-1301, USA. -% +For more Emacs documentation, and the \TeX{} source for this card, +see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff --git a/etc/refcards/cs-dired-ref.tex b/etc/refcards/cs-dired-ref.tex index d980170724d0..0cab29571345 100644 --- a/etc/refcards/cs-dired-ref.tex +++ b/etc/refcards/cs-dired-ref.tex @@ -5,14 +5,18 @@ % Author: Evgeny Roubinchtein % Czech translation: Pavel Janík , March 2001 -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -57,13 +61,10 @@ \centerline{using refcard layout designed by Stephen Gildea.} \centerline{Translated by Pavel Janík.} -Permission is granted to make and distribute copies of -this card provided the copyright notice and this permission notice -are preserved on all copies. - -For copies of the GNU Emacs manual, see: +Released under the terms of the GNU General Public License version 3 or later. -{\tt http://www.gnu.org/software/emacs/\#Manuals} +For more Emacs documentation, and the \TeX{} source for this card, +see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff --git a/etc/refcards/cs-refcard.tex b/etc/refcards/cs-refcard.tex index ecd7064f9778..64590fe59234 100644 --- a/etc/refcards/cs-refcard.tex +++ b/etc/refcards/cs-refcard.tex @@ -8,14 +8,18 @@ % Milan Zamazal , August 1999 % Pavel Janík , November 2000 (Emacs 21) -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -74,13 +78,10 @@ \centerline{Designed by Stephen Gildea} \centerline{Translated by Jan Buchal, Milan Zamazal, Pavel Janík} -Permission is granted to make and distribute copies of -this card provided the copyright notice and this permission notice -are preserved on all copies. - -For copies of the GNU Emacs manual, see: +Released under the terms of the GNU General Public License version 3 or later. -{\tt http://www.gnu.org/software/emacs/\#Manuals} +For more Emacs documentation, and the \TeX{} source for this card, +see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff --git a/etc/refcards/cs-survival.tex b/etc/refcards/cs-survival.tex index bb38a916bb0e..6e15f1f514b2 100644 --- a/etc/refcards/cs-survival.tex +++ b/etc/refcards/cs-survival.tex @@ -5,14 +5,18 @@ % Author: Wlodek Bzyl % Czech translation: Pavel Janík , March 2001 -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -63,9 +67,12 @@ W{\l}odek Bzyl (matwb@univ.gda.pl)\break Do češtiny přeložil Pavel Janík (Pavel@Janik.cz) - Kopie tohoto dokumentu můžete vytvářet a šířit - za předpokladu, že budou obsahovat tuto poznámku - o autorských právech.\par}} + Released under the terms of the GNU General Public License + version 3 or later. + + For more Emacs documentation, and the \TeX{} source for this card, + see the Emacs distribution, or + {\tt http://www.gnu.org/software/emacs}\par}} \hsize 3.2in \vsize 7.95in diff --git a/etc/refcards/de-refcard.tex b/etc/refcards/de-refcard.tex index 748f9f8add25..b6d6c211d9e5 100644 --- a/etc/refcards/de-refcard.tex +++ b/etc/refcards/de-refcard.tex @@ -6,14 +6,18 @@ % Author: Stephen Gildea % German translation: Sven Joachim -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -75,14 +79,11 @@ \centerline{Entworfen von Stephen Gildea} % \centerline{deutsche \"Ubersetzung von Sven Joachim} -Es ist gestattet, ver\"anderte und unver\"anderte Kopien dieser -Karte her\-zu\-stellen und zu verbreiten, vorausgesetzt dass sich -der Copyright-Hinweis und der Hinweis auf diese Erlaubnis auf allen -Kopien befinden. - -F\"ur Kopien des Handbuchs zu GNU Emacs: +Released under the terms of the GNU General Public License +version 3 or later. -{\tt http://www.gnu.org/software/emacs/\#Manuals} +For more Emacs documentation, and the \TeX{} source for this card, +see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff --git a/etc/refcards/dired-ref.tex b/etc/refcards/dired-ref.tex index cef3f46fd814..4b9f41f60b82 100644 --- a/etc/refcards/dired-ref.tex +++ b/etc/refcards/dired-ref.tex @@ -4,14 +4,18 @@ % Author: Evgeny Roubinchtein -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -58,13 +62,10 @@ \centerline{Originally written May 2000 by Evgeny Roubinchtein,} \centerline{using refcard layout designed by Stephen Gildea.} -Permission is granted to make and distribute copies of -this card provided the copyright notice and this permission notice -are preserved on all copies. - -For copies of the GNU Emacs manual, see: +Released under the terms of the GNU General Public License version 3 or later. -{\tt http://www.gnu.org/software/emacs/\#Manuals} +For more Emacs documentation, and the \TeX{} source for this card, +see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff --git a/etc/refcards/fr-dired-ref.tex b/etc/refcards/fr-dired-ref.tex index c430a97ee0c6..d04b362bc2dc 100644 --- a/etc/refcards/fr-dired-ref.tex +++ b/etc/refcards/fr-dired-ref.tex @@ -5,14 +5,18 @@ % Author: Evgeny Roubinchtein % French translation: Eric Jacoboni -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -51,13 +55,11 @@ \centerline{Mis \`a jour pour Dired en Mai 2000 par Evgeny Roubinchtein} \centerline{Traduction fran\c{c}aise d'\'Eric Jacoboni} -Vous pouvez faire et distribuer des copies de cette carte, pourvu que -la notice de copyright et cette note de permission soient pr\'eserv\'ees -sur toutes les copies. - -Pour obtenir des copies du manuel de GNU Emacs: +Released under the terms of the GNU General Public License +version 3 or later. -{\tt http://www.gnu.org/software/emacs/\#Manuals} +For more Emacs documentation, and the \TeX{} source for this card, +see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff --git a/etc/refcards/fr-refcard.tex b/etc/refcards/fr-refcard.tex index e63d34fdb4c1..73e630749df9 100644 --- a/etc/refcards/fr-refcard.tex +++ b/etc/refcards/fr-refcard.tex @@ -7,14 +7,18 @@ % French translation: Eric Jacoboni % Micha\"el Cadilhac -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -72,13 +76,10 @@ \centerline{Traduction fran\c{c}aise de Micha\"el Cadilhac} % previously: Eric Jacoboni -Vous pouvez faire et distribuer des copies de cette carte, modifi\'ee ou -non, pourvu que la note de copyright et cette note de permission -soient conserv\'ees sur toutes les copies. - -Pour des copies du manuel GNU Emacs: +Released under the terms of the GNU General Public License version 3 or later. -{\tt http://www.gnu.org/software/emacs/\#Manuals} +For more Emacs documentation, and the \TeX{} source for this card, +see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff --git a/etc/refcards/fr-survival.tex b/etc/refcards/fr-survival.tex index 1256de33f08c..e2a338e135a3 100644 --- a/etc/refcards/fr-survival.tex +++ b/etc/refcards/fr-survival.tex @@ -6,14 +6,18 @@ % Author: Wlodek Bzyl % French translation: \'Eric Jacoboni , November 2001 -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -58,9 +62,12 @@ Auteur W{\l}odek Bzyl (matwb@univ.gda.pl)\break Traduction fran\c{c}aise \'Eric Jacoboni (jaco@teaser.fr) - Vous pouvez faire et distribuer des copies de cette carte, pourvu - que la note de copyright, ainsi que cette notice soient - pr\'eserv\'ees sur toutes les copies.\par}} + Released under the terms of the GNU General Public License + version 3 or later. + + For more Emacs documentation, and the \TeX{} source for this card, + see the Emacs distribution, + or {\tt http://www.gnu.org/software/emacs}\par}} \hsize 3.2in \vsize 7.95in diff --git a/etc/refcards/gnus-refcard.tex b/etc/refcards/gnus-refcard.tex index d51e2aca639b..6e5f2c3614fa 100644 --- a/etc/refcards/gnus-refcard.tex +++ b/etc/refcards/gnus-refcard.tex @@ -123,9 +123,12 @@ Copyright \copyright\ 1995, 2000, 2002--2016 Free Software Foundation, Inc.\\* \end{center} - Permission is granted to make and distribute copies of this reference - \guide{} provided the copyright notice and this permission are preserved on - all copies. Please send corrections, additions and suggestions to the + Released under the terms of the GNU General Public License version 3 or later. + + For more Emacs documentation, and the \TeX{} source for this card, + see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs} + + Please send corrections, additions and suggestions to the current maintainer's email address. \Guide{} last edited on \date. } diff --git a/etc/refcards/orgcard.tex b/etc/refcards/orgcard.tex index 20df7534d27e..d814de5372a4 100644 --- a/etc/refcards/orgcard.tex +++ b/etc/refcards/orgcard.tex @@ -20,14 +20,18 @@ % Copyright (C) 1987, 1993, 1996-1997, 2001-2016 Free Software % Foundation, Inc. -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -73,9 +77,11 @@ \centerline{Author: Philip Rooke} \centerline{based on refcard design and format by Stephen Gildea} -Permission is granted to make and distribute copies of -this card provided the copyright notice and this permission notice -are preserved on all copies. +\centerline{Released under the terms of the GNU General Public License} +\centerline{version 3 or later.} + +\centerline{For more Emacs documentation, and the \TeX{} source for this card, see} +\centerline{the Emacs distribution, or {\tt http://www.gnu.org/software/emacs}} \endgroup} diff --git a/etc/refcards/pl-refcard.tex b/etc/refcards/pl-refcard.tex index e4fbb6f6e244..121c79cfc448 100644 --- a/etc/refcards/pl-refcard.tex +++ b/etc/refcards/pl-refcard.tex @@ -6,14 +6,18 @@ % Author: Stephen Gildea % Polish translation: W{\l}odek Bzyl -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -84,13 +88,10 @@ \centerline{projekt Stephen Gildea} \centerline{t/lumaczenie W/lodek Bzyl} -Permission is granted to make and distribute copies of -this card provided the copyright notice and this permission notice -are preserved on all copies. - -For copies of the GNU Emacs manual, see: +Released under the terms of the GNU General Public License version 3 or later. -{\tt http:////www.gnu.org//software//emacs//\#Manuals} +For more Emacs documentation, and the \TeX{} source for this card, +see the Emacs distribution, or {\tt http:////www.gnu.org//software//emacs} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff --git a/etc/refcards/pt-br-refcard.tex b/etc/refcards/pt-br-refcard.tex index c1b31f85ac9e..7f70d8e80cef 100644 --- a/etc/refcards/pt-br-refcard.tex +++ b/etc/refcards/pt-br-refcard.tex @@ -6,14 +6,18 @@ % Author: Stephen Gildea % Portuguese translation: Rodrigo Real -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -77,13 +81,10 @@ \centerline{Designed by Stephen Gildea} \centerline{Translated by Rodrigo Real} -Permission is granted to make and distribute copies of -this card provided the copyright notice and this permission notice -are preserved on all copies. - -For copies of the GNU Emacs manual, see: +Released under the terms of the GNU General Public License version 3 or later. -{\tt http://www.gnu.org/software/emacs/\#Manuals} +For more Emacs documentation, and the \TeX{} source for this card, +see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff --git a/etc/refcards/refcard.tex b/etc/refcards/refcard.tex index a5c74191dacc..afeaeec63a2b 100644 --- a/etc/refcards/refcard.tex +++ b/etc/refcards/refcard.tex @@ -5,14 +5,18 @@ % Author: Stephen Gildea -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -75,13 +79,10 @@ \centerline{For GNU Emacs version \versionemacs} \centerline{Designed by Stephen Gildea} -Permission is granted to make and distribute modified or unmodified -copies of this card provided the copyright notice and this permission -notice are preserved on all copies. - -For copies of the GNU Emacs manual, see: +Released under the terms of the GNU General Public License version 3 or later. -{\tt http://www.gnu.org/software/emacs/\#Manuals} +For more Emacs documentation, and the \TeX{} source for this card, +see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff --git a/etc/refcards/ru-refcard.tex b/etc/refcards/ru-refcard.tex index 273a79cdc733..a26d1301fdff 100644 --- a/etc/refcards/ru-refcard.tex +++ b/etc/refcards/ru-refcard.tex @@ -3,6 +3,25 @@ % Author: Stephen Gildea % Russian translation: Alex Ott +% This document is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. + +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. + +% You should have received a copy of the GNU General Public License +% along with GNU Emacs. If not, see . + \documentclass[10pt]{article} \usepackage{multicol,tabularx} \usepackage[a4paper,hmargin={2cm,2cm},vmargin={2cm,2cm},nohead,twoside]{geometry} @@ -35,13 +54,11 @@ \centerline{Designed by Stephen Gildea} \centerline{Перевод Alex Ott } -Permission is granted to make and distribute copies of -this card provided the copyright notice and this permission notice -are preserved on all copies. - -For copies of the GNU Emacs manual, see: +\centerline{Released under the terms of the GNU General Public License + version 3 or later.} -{\tt http://www.gnu.org/software/emacs/\#Manuals} +\centerline{For more Emacs documentation, and the \TeX{} source for this card,} +\centerline{see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs}} \endgroup} \hyphenation{mini-buf-fer} diff --git a/etc/refcards/sk-dired-ref.tex b/etc/refcards/sk-dired-ref.tex index 7bd5ceb5e13f..25f67d0f44b9 100644 --- a/etc/refcards/sk-dired-ref.tex +++ b/etc/refcards/sk-dired-ref.tex @@ -6,14 +6,18 @@ % Czech translation: Pavel Janík , March 2001 % Slovak translation: Miroslav Vasko , March 2001 -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -58,13 +62,10 @@ \centerline{using refcard layout designed by Stephen Gildea.} \centerline{Translated by Miroslav Vaško.} -Permission is granted to make and distribute copies of -this card provided the copyright notice and this permission notice -are preserved on all copies. - -For copies of the GNU Emacs manual, see: +Released under the terms of the GNU General Public License version 3 or later. -{\tt http://www.gnu.org/software/emacs/\#Manuals} +For more Emacs documentation, and the \TeX{} source for this card, +see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff --git a/etc/refcards/sk-refcard.tex b/etc/refcards/sk-refcard.tex index 86f1919247c0..83b27ef6a83a 100644 --- a/etc/refcards/sk-refcard.tex +++ b/etc/refcards/sk-refcard.tex @@ -9,14 +9,18 @@ % Pavel Janík , November 2000 (Emacs 21) % Slovak translation: Miroslav Vaško , March 2001 -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -75,13 +79,10 @@ \centerline{Designed by Stephen Gildea} \centerline{Translated by Miroslav Vaško} -Permission is granted to make and distribute copies of -this card provided the copyright notice and this permission notice -are preserved on all copies. - -For copies of the GNU Emacs manual, see: +Released under the terms of the GNU General Public License version 3 or later. -{\tt http://www.gnu.org/software/emacs/\#Manuals} +For more Emacs documentation, and the \TeX{} source for this card, +see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff --git a/etc/refcards/sk-survival.tex b/etc/refcards/sk-survival.tex index f8db101c1267..27b1a78b47f7 100644 --- a/etc/refcards/sk-survival.tex +++ b/etc/refcards/sk-survival.tex @@ -6,14 +6,18 @@ % Czech translation: Pavel Janík , March 2001 % Slovak translation: Miroslav Vasko , March 2001 -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -65,9 +69,12 @@ Do češtiny preložil Pavel Janík (Pavel@Janik.cz)\break Do slovenčiny preložil Miroslav Vaško (vasko@debian.cz) - Kópie tohto dokumentu môžete vytvárať a šíriť - za predpokladu, že budú obsahovať túto poznámku - o autorských právach.\par}} + Released under the terms of the GNU General Public License + version 3 or later. + + For more Emacs documentation, and the \TeX{} source for this card, + see the Emacs distribution, + or {\tt http://www.gnu.org/software/emacs}\par}} \hsize 3.2in \vsize 7.95in diff --git a/etc/refcards/survival.tex b/etc/refcards/survival.tex index 02d310f5897c..1bdeb63d163e 100644 --- a/etc/refcards/survival.tex +++ b/etc/refcards/survival.tex @@ -5,14 +5,18 @@ % Author: Wlodek Bzyl -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -52,9 +56,12 @@ For GNU Emacs version \versionemacs\break Author W{\l}odek Bzyl (matwb@univ.gda.pl) - Permission is granted to make and distribute copies of - this card provided the copyright notice and this permission notice - are preserved on all copies.\par}} + Released under the terms of the GNU General Public License + version 3 or later. + + For more Emacs documentation, and the \TeX{} source for this card, + see the Emacs distribution, + or {\tt http://www.gnu.org/software/emacs}\par}} \hsize 3.2in \vsize 7.95in diff --git a/etc/refcards/vipcard.tex b/etc/refcards/vipcard.tex index 942ec6cf300a..e4edfdbc15c6 100644 --- a/etc/refcards/vipcard.tex +++ b/etc/refcards/vipcard.tex @@ -4,14 +4,18 @@ % Author: Masahiko Sato , -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -67,13 +71,10 @@ \centerline{Written by Masahiko Sato,} \centerline{using refcard layout designed by Stephen Gildea.} -Permission is granted to make and distribute copies of -this card provided the copyright notice and this permission notice -are preserved on all copies. - -For copies of the GNU Emacs manual, see: +Released under the terms of the GNU General Public License version 3 or later. -{\tt http://www.gnu.org/software/emacs/\#Manuals} +For more Emacs documentation, and the \TeX{} source for this card, +see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff --git a/etc/refcards/viperCard.tex b/etc/refcards/viperCard.tex index 35528b193c72..66d65efdff18 100644 --- a/etc/refcards/viperCard.tex +++ b/etc/refcards/viperCard.tex @@ -6,14 +6,18 @@ % Aamod Sane (VIP 4.3) % Masahiko Sato (VIP 3.5) -% This file is part of GNU Emacs. - -% GNU Emacs is free software: you can redistribute it and/or modify +% This document is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. -% GNU Emacs is distributed in the hope that it will be useful, +% As a special additional permission, you may distribute reference cards +% printed, or formatted for printing, with the notice "Released under +% the terms of the GNU General Public License version 3 or later" +% instead of the usual distributed-under-the-GNU-GPL notice, and without +% a copy of the GPL itself. + +% This document is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. @@ -71,13 +75,10 @@ \centerline{by Aamod Sane, VIP version 4.3} \centerline{by Masahiko Sato, VIP version 3.5} -Permission is granted to make and distribute copies of -this card provided the copyright notice and this permission notice -are preserved on all copies. - -For copies of the GNU Emacs manual, see: +Released under the terms of the GNU General Public License version 3 or later. -{\tt http://www.gnu.org/software/emacs/\#Manuals} +For more Emacs documentation, and the \TeX{} source for this card, +see the Emacs distribution, or {\tt http://www.gnu.org/software/emacs} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff --git a/etc/themes/manoj-dark-theme.el b/etc/themes/manoj-dark-theme.el index b5120209d4d6..191d43c0a9e6 100644 --- a/etc/themes/manoj-dark-theme.el +++ b/etc/themes/manoj-dark-theme.el @@ -91,8 +91,8 @@ jarring angry fruit salad look to reduce eye fatigue.") '(font-lock-doc-string-face ((t (:foreground "Plum")))) '(font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold)))) - '(cperl-array-face ((t (:foreground "LawnGreen" :background "B;ack" :bold t)))) - '(cperl-hash-face ((t (:foreground "SpringGreen" :background "B;ack" :bold t :italic t)))) + '(cperl-array-face ((t (:foreground "LawnGreen" :background "Black" :bold t)))) + '(cperl-hash-face ((t (:foreground "SpringGreen" :background "Black" :bold t :italic t)))) '(cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) '(gnus-button ((t (:bold t :weight bold :background "#191932" :box (:line-width 2 :style released-button))))) diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in index 5fa152ae5bfb..2aaec25a5a34 100644 --- a/lib-src/Makefile.in +++ b/lib-src/Makefile.in @@ -75,7 +75,7 @@ am__v_at_1 = # ==================== Where To Install Things ==================== -# Location to install Emacs.app under GNUstep / Mac OS X. +# Location to install Emacs.app under GNUstep / macOS. # Later values may use this. ns_appbindir=@ns_appbindir@ diff --git a/lib-src/etags.c b/lib-src/etags.c index 01e230206ac8..1457700fedd0 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/lisp/ChangeLog.17 b/lisp/ChangeLog.17 index 29081d3f3cd8..296e98e859f1 100644 --- a/lisp/ChangeLog.17 +++ b/lisp/ChangeLog.17 @@ -3737,7 +3737,7 @@ * net/tramp.el (tramp-read-passwd): Ignore errors from `auth-source-*'. * net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band): Use "\n" - as end-of-line delimeter for passwords, when running on MS Windows. + as end-of-line delimiter for passwords, when running on MS Windows. 2014-12-27 Stefan Monnier @@ -6026,7 +6026,7 @@ 2014-11-01 Michael R. Mauger - * sql.el (sql-mode-oracle-font-lock-keywords): Correct regexp + * progmodes/sql.el (sql-mode-oracle-font-lock-keywords): Correct regexp syntax, add new keywords, and parse longer keywords first. (sql-redirect-one): Protect against empty command. (sql-mode, sql-interactive-mode): Set `custom-mode-group' property @@ -6034,7 +6034,7 @@ 2014-11-01 Michael R. Mauger - * sql.el (sql-interactive-mode, sql-stop): Correct fix for + * progmodes/sql.el (sql-interactive-mode, sql-stop): Correct fix for Bug#16814 with let-bind of comint-input-ring variables around read and save functions. diff --git a/lisp/ChangeLog.9 b/lisp/ChangeLog.9 index e527567a124f..b2c36233bb3c 100644 --- a/lisp/ChangeLog.9 +++ b/lisp/ChangeLog.9 @@ -6523,7 +6523,7 @@ * ansi-color.el (ansi-color-process-output): Use markers instead of positions for start and end of region. (ansi-color-apply-on-region): Rewrote code to make it more robust. - Previously, occasional mistakes happend when fontifying many + Previously, occasional mistakes happened when fontifying many chunks of output (eg. ls --color=yes /dev). This happened whenever an overlay was created up to the end of the region, which coincided with the process-mark. New text would then be added diff --git a/lisp/abbrev.el b/lisp/abbrev.el index d181d97703ec..8c4f6eb01b23 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/align.el b/lisp/align.el index 7e439f3e073a..f09f57032d44 100644 --- a/lisp/align.el +++ b/lisp/align.el @@ -1051,7 +1051,9 @@ to be colored." ;;;###autoload (defun align-newline-and-indent () - "A replacement function for `newline-and-indent', aligning as it goes." + "A replacement function for `newline-and-indent', aligning as it goes. +The alignment is done by calling `align' on the region that was +indented." (interactive) (let ((separate (or (if (and (symbolp align-region-separate) (boundp align-region-separate)) diff --git a/lisp/apropos.el b/lisp/apropos.el index eb145bdc5719..72357742b607 100644 --- a/lisp/apropos.el +++ b/lisp/apropos.el @@ -1040,9 +1040,12 @@ Each element should have the format The return value is the list that was in `apropos-accumulator', sorted alphabetically by symbol name; but this function also sets `apropos-accumulator' to nil before returning. - -If SPACING is non-nil, it should be a string; separate items with that string. -If non-nil, TEXT is a string that will be printed as a heading." +If DO-KEYS is non-nil, output the key bindings. If NOSUBST is +nil, substitute \"ASCII quotes\" (i.e., grace accent and +apostrophe) with curly quotes), and if non-nil, leave them alone. +If SPACING is non-nil, it should be a string; separate items with +that string. If non-nil, TEXT is a string that will be printed +as a heading." (if (null apropos-accumulator) (message "No apropos matches for `%s'" apropos-pattern) (setq apropos-accumulator diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index b5373c607d4c..c42ca813e961 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el @@ -1646,7 +1646,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." ;; converts "\" to "/". ;; - For 0 generic: generic_to_unix_filename() downcases if there's ;; no lower case already present, and converts "\" to "/". - ;; - For 'm' MacOS: macos_to_unix_filename() changes "/" to ":" and + ;; - For 'm' macOS: macos_to_unix_filename() changes "/" to ":" and ;; ":" to "/" (setq fiddle (cond ((= ?M osid) t) ((= 0 osid) (string= efnname (upcase efnname))))) diff --git a/lisp/battery.el b/lisp/battery.el index b5e312f6c3e2..20f3017fc456 100644 --- a/lisp/battery.el +++ b/lisp/battery.el @@ -22,10 +22,10 @@ ;;; Commentary: -;; There is at present support for GNU/Linux, OS X and Windows. This +;; There is at present support for GNU/Linux, macOS and Windows. This ;; library supports both the `/proc/apm' file format of Linux version ;; 1.3.58 or newer and the `/proc/acpi/' directory structure of Linux -;; 2.4.20 and 2.6. Darwin (OS X) is supported by using the `pmset' +;; 2.4.20 and 2.6. Darwin (macOS) is supported by using the `pmset' ;; program. Windows is supported by the GetSystemPowerStatus API call. ;;; Code: @@ -600,7 +600,7 @@ The following %-sequences are provided: (cons ?t (or remaining-time "N/A"))))) -;;; `pmset' interface for Darwin (OS X). +;;; `pmset' interface for Darwin (macOS). (defun battery-pmset () "Get battery status information using `pmset'. diff --git a/lisp/bookmark.el b/lisp/bookmark.el index c2f8cc3fbc19..f3c8b2a755f8 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el @@ -74,7 +74,7 @@ bookmark is to set this variable to 1 (or 0, which produces the same behavior.) To specify the file in which to save them, modify the variable -`bookmark-default-file', which is `~/.emacs.bmk' by default." +`bookmark-default-file'." :type '(choice (const nil) integer (other t)) :group 'bookmark) @@ -1481,9 +1481,9 @@ while loading. If you load a file that doesn't contain a proper bookmark alist, you will corrupt Emacs's bookmark list. Generally, you should only load in files that were created with the bookmark functions in the first -place. Your own personal bookmark file, `~/.emacs.bmk', is -maintained automatically by Emacs; you shouldn't need to load it -explicitly. +place. Your own personal bookmark file, specified by the variable +`bookmark-default-file', is maintained automatically by Emacs; you +shouldn't need to load it explicitly. If you load a file containing bookmarks with the same names as bookmarks already present in your Emacs, the new bookmarks will get diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index ccdae484fa60..7a2b3fe15630 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 diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el index 386c554c0687..c88f4abcb6e1 100644 --- a/lisp/calendar/icalendar.el +++ b/lisp/calendar/icalendar.el @@ -361,7 +361,8 @@ Pass arguments REGEXP REP STRING FIXEDCASE LITERAL to INVALUE gives the current iCalendar element we are reading. INPARAMS gives the current parameters..... This function calls itself recursively for each nested calendar element -it finds." +it finds. The current buffer should be an unfolded buffer as returned +from `icalendar--get-unfolded-buffer'." (let (element children line name params param param-name param-value value (continue t)) @@ -391,8 +392,9 @@ it finds." (unless (looking-at ":") (error "Oops")) (forward-char 1) - (re-search-forward "\\(.*\\)\\(\r?\n[ \t].*\\)*" nil t) - (setq value (icalendar--rris "\r?\n[ \t]" "" (match-string 0))) + (let ((start (point))) + (end-of-line) + (setq value (buffer-substring start (point)))) (setq line (list name params value)) (cond ((eq name 'BEGIN) (setq children diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el index c78d2bbf5197..e92a4dc3f189 100644 --- a/lisp/calendar/solar.el +++ b/lisp/calendar/solar.el @@ -65,7 +65,7 @@ and `am-pm' and `time-zone', both alphabetic strings. For example, the form - '(24-hours \":\" minutes + \\='(24-hours \":\" minutes (if time-zone \" (\") time-zone (if time-zone \")\")) would give military-style times like `21:07 (UTC)'." diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el index 9574c03043e2..aee101f72182 100644 --- a/lisp/calendar/todo-mode.el +++ b/lisp/calendar/todo-mode.el @@ -612,11 +612,12 @@ Otherwise, `todo-show' always visits `todo-default-todo-file'." (defun todo-show (&optional solicit-file interactive) "Visit a todo file and display one of its categories. -When invoked in Todo mode, prompt for which todo file to visit. -When invoked outside of Todo mode with non-nil prefix argument -SOLICIT-FILE prompt for which todo file to visit; otherwise visit -`todo-default-todo-file'. Subsequent invocations from outside -of Todo mode revisit this file or, with option +When invoked in Todo mode, Todo Archive mode or Todo Filtered +Items mode, or when invoked anywhere else with a prefix argument, +prompt for which todo file to visit. When invoked outside of a +Todo mode buffer without a prefix argument, visit +`todo-default-todo-file'. Subsequent invocations from outside of +Todo mode revisit this file or, with option `todo-show-current-file' non-nil (the default), whichever todo file was last visited. @@ -643,10 +644,7 @@ In Todo mode just the category's unfinished todo items are shown by default. The done items are hidden, but typing `\\[todo-toggle-view-done-items]' displays them below the todo items. With non-nil user option `todo-show-with-done' both todo -and done items are always shown on visiting a category. - -Invoking this command in Todo Archive mode visits the -corresponding todo file, displaying the corresponding category." +and done items are always shown on visiting a category." (interactive "P\np") (when todo-default-todo-file (todo-check-file (todo-absolute-file-name todo-default-todo-file))) @@ -904,17 +902,19 @@ Categories mode." (todo-show) (let* ((archive (eq where 'archive)) (cat (unless archive where)) + (goto-archive (and cat + todo-skip-archived-categories + (zerop (todo-get-count 'todo cat)) + (zerop (todo-get-count 'done cat)) + (not (zerop (todo-get-count 'archived cat))))) (file0 (when cat ; We're in Todo Categories mode. - ;; With non-nil `todo-skip-archived-categories' - ;; jump to archive file of a category with only - ;; archived items. - (if (and todo-skip-archived-categories - (zerop (todo-get-count 'todo cat)) - (zerop (todo-get-count 'done cat)) - (not (zerop (todo-get-count 'archived cat)))) + (if goto-archive + ;; If the category has only archived items and + ;; `todo-skip-archived-categories' is non-nil, jump to + ;; the archive category. (concat (file-name-sans-extension todo-current-todo-file) ".toda") - ;; Otherwise, jump to current todo file. + ;; Otherwise, jump to the category in the todo file. todo-current-todo-file))) (len (length todo-categories)) (cat+file (unless cat @@ -925,18 +925,15 @@ Categories mode." (category (or cat (car cat+file)))) (unless cat (setq file0 (cdr cat+file))) (with-current-buffer (find-file-noselect file0 'nowarn) - (setq todo-current-todo-file file0) - ;; If called from Todo Categories mode, clean up before jumping. - (if (string= (buffer-name) todo-categories-buffer) - (kill-buffer)) - (set-window-buffer (selected-window) - (set-buffer (find-buffer-visiting file0))) - (unless todo-global-current-todo-file - (setq todo-global-current-todo-file todo-current-todo-file)) - (todo-category-number category) - (todo-category-select) - (goto-char (point-min)) - (when add-item (todo-insert-item--basic)))))) + (when goto-archive (todo-archive-mode)) + (set-window-buffer (selected-window) + (set-buffer (find-buffer-visiting file0))) + (unless todo-global-current-todo-file + (setq todo-global-current-todo-file todo-current-todo-file)) + (todo-category-number category) + (todo-category-select) + (goto-char (point-min)) + (when add-item (todo-insert-item--basic)))))) (defun todo-next-item (&optional count) "Move point down to the beginning of the next item. @@ -5753,8 +5750,11 @@ With non-nil argument FILE prompt for a file and complete only against categories in that file; otherwise complete against all categories from `todo-category-completions-files'." ;; Allow SPC to insert spaces, for adding new category names. - (let ((map minibuffer-local-completion-map)) - (define-key map " " nil) + (let ((minibuffer-local-completion-map + (let ((map (make-sparse-keymap))) + (set-keymap-parent map minibuffer-local-completion-map) + (define-key map " " nil) + map))) (let* ((add (eq match-type 'add)) (archive (eq match-type 'archive)) (file0 (when (and file (> (length todo-files) 1)) diff --git a/lisp/cedet/cedet-cscope.el b/lisp/cedet/cedet-cscope.el index 9a54d341f569..373149c16e36 100644 --- a/lisp/cedet/cedet-cscope.el +++ b/lisp/cedet/cedet-cscope.el @@ -52,7 +52,7 @@ SCOPE is the scope of the search, such as 'project or 'subdirs." ;; -0 = Find C symbol ;; -1 = Find global definition ;; -3 = Find references - ;; -6 = Find egrep pattern + ;; -6 = Find grep -E pattern ;; -7 = Find file (let ((idx (cond ((eq type 'file) "-7") diff --git a/lisp/cedet/ede/locate.el b/lisp/cedet/ede/locate.el index 38d238839519..8564719c810f 100644 --- a/lisp/cedet/ede/locate.el +++ b/lisp/cedet/ede/locate.el @@ -124,12 +124,12 @@ based on `ede-locate-setup-options'." t) (cl-defmethod ede-locate-flush-hash ((loc ede-locate-base)) - "For LOC, flush hashtable and start from scratch." + "For LOC, flush hash table and start from scratch." (oset loc hash (make-hash-table :test 'equal))) (cl-defmethod ede-locate-file-in-hash ((loc ede-locate-base) filestring) - "For LOC, is the file FILESTRING in our hashtable?" + "For LOC, is the file FILESTRING in our hash table?" (gethash filestring (oref loc hash))) (cl-defmethod ede-locate-add-file-to-hash ((loc ede-locate-base) diff --git a/lisp/cedet/semantic/bovine/gcc.el b/lisp/cedet/semantic/bovine/gcc.el index ec292395f129..b56b268ca0d6 100644 --- a/lisp/cedet/semantic/bovine/gcc.el +++ b/lisp/cedet/semantic/bovine/gcc.el @@ -225,7 +225,7 @@ It should also include other symbols GCC was compiled with.") (setq semantic-lex-c-preprocessor-symbol-map nil)) (dolist (D defines) (add-to-list 'semantic-lex-c-preprocessor-symbol-map D)) - ;; Needed for parsing OS X libc + ;; Needed for parsing macOS libc (when (eq system-type 'darwin) (add-to-list 'semantic-lex-c-preprocessor-symbol-map '("__i386__" . ""))) (when (featurep 'semantic/bovine/c) diff --git a/lisp/cedet/semantic/db-el.el b/lisp/cedet/semantic/db-el.el index 83a268073b3c..a85b9024eb03 100644 --- a/lisp/cedet/semantic/db-el.el +++ b/lisp/cedet/semantic/db-el.el @@ -336,7 +336,7 @@ Return a list of tags." (mapcar 'semanticdb-elisp-sym->tag ;; Fancy eieio function that knows all about ;; built in methods belonging to CLASS. - (eieio-all-generic-functions class))))) + (cl-generic-all-functions class))))) ) taglst)))) diff --git a/lisp/cedet/semantic/db-typecache.el b/lisp/cedet/semantic/db-typecache.el index 366af60034c6..76382a30dd13 100644 --- a/lisp/cedet/semantic/db-typecache.el +++ b/lisp/cedet/semantic/db-typecache.el @@ -56,7 +56,7 @@ (stream :initform nil :documentation "The searchable tag stream for this cache. -NOTE: Can I get rid of this? Use a hashtable instead?") +NOTE: Can I get rid of this? Use a hash table instead?") (dependants :initform nil :documentation "Any other object that is dependent on typecache results. diff --git a/lisp/cedet/semantic/format.el b/lisp/cedet/semantic/format.el index 1fe703fd09a1..923b0a38f85b 100644 --- a/lisp/cedet/semantic/format.el +++ b/lisp/cedet/semantic/format.el @@ -603,7 +603,7 @@ UML attribute strings are things like {abstract} or {leaf}." (private . "-") ) "Association list of the form (SYMBOL . \"STRING\") for protection symbols. -This associates a symbol, such as 'public with the st ring \"+\".") +For example, it might associate the symbol `public' with the string \"+\".") (define-overloadable-function semantic-format-tag-uml-protection-to-string (protection-symbol color) "Convert PROTECTION-SYMBOL to a string for UML. diff --git a/lisp/cedet/semantic/symref.el b/lisp/cedet/semantic/symref.el index 088740b2624d..516a4f30414e 100644 --- a/lisp/cedet/semantic/symref.el +++ b/lisp/cedet/semantic/symref.el @@ -266,7 +266,7 @@ Returns an object of class `semantic-symref-result'." ;;;###autoload (defun semantic-symref-find-text (text &optional scope) "Find a list of occurrences of TEXT in the current project. -TEXT is a regexp formatted for use with egrep. +TEXT is a regexp formatted for use with grep -E. Optional SCOPE specifies which file set to search. Defaults to `project'. Refers to `semantic-symref-tool', to determine the reference tool to use for the current buffer. diff --git a/lisp/character-fold.el b/lisp/char-fold.el similarity index 85% rename from lisp/character-fold.el rename to lisp/char-fold.el index 2d3a8c67fa56..68bea29ea45b 100644 --- a/lisp/character-fold.el +++ b/lisp/char-fold.el @@ -1,4 +1,4 @@ -;;; character-fold.el --- match unicode to similar ASCII -*- lexical-binding: t; -*- +;;; char-fold.el --- match unicode to similar ASCII -*- lexical-binding: t; -*- ;; Copyright (C) 2015-2016 Free Software Foundation, Inc. @@ -22,12 +22,12 @@ ;;; Code: -(eval-and-compile (put 'character-fold-table 'char-table-extra-slots 1)) +(eval-and-compile (put 'char-fold-table 'char-table-extra-slots 1)) -(defconst character-fold-table +(defconst char-fold-table (eval-when-compile - (let ((equiv (make-char-table 'character-fold-table)) - (equiv-multi (make-char-table 'character-fold-table)) + (let ((equiv (make-char-table 'char-fold-table)) + (equiv-multi (make-char-table 'char-fold-table)) (table (unicode-property-table-internal 'decomposition))) (set-char-table-extra-slot equiv 0 equiv-multi) @@ -115,7 +115,7 @@ equiv) equiv)) "Used for folding characters of the same group during search. -This is a char-table with the `character-fold-table' subtype. +This is a char-table with the `char-fold-table' subtype. Let us refer to the character in question by char-x. Each entry is either nil (meaning char-x only matches literally) @@ -136,18 +136,18 @@ For instance, the default alist for ?f includes: Exceptionally for the space character (32), ALIST is ignored.") -(defun character-fold--make-space-string (n) +(defun char-fold--make-space-string (n) "Return a string that matches N spaces." (format "\\(?:%s\\|%s\\)" (make-string n ?\s) (apply #'concat - (make-list n (or (aref character-fold-table ?\s) " "))))) + (make-list n (or (aref char-fold-table ?\s) " "))))) ;;;###autoload -(defun character-fold-to-regexp (string &optional _lax from) - "Return a regexp matching anything that character-folds into STRING. +(defun char-fold-to-regexp (string &optional _lax from) + "Return a regexp matching anything that char-folds into STRING. Any character in STRING that has an entry in -`character-fold-table' is replaced with that entry (which is a +`char-fold-table' is replaced with that entry (which is a regexp) and other characters are `regexp-quote'd. If the resulting regexp would be too long for Emacs to handle, @@ -156,7 +156,7 @@ just return the result of calling `regexp-quote' on STRING. FROM is for internal use. It specifies an index in the STRING from which to start." (let* ((spaces 0) - (multi-char-table (char-table-extra-slot character-fold-table 0)) + (multi-char-table (char-table-extra-slot char-fold-table 0)) (i (or from 0)) (end (length string)) (out nil)) @@ -172,9 +172,9 @@ from which to start." (pcase (aref string i) (`?\s (setq spaces (1+ spaces))) (c (when (> spaces 0) - (push (character-fold--make-space-string spaces) out) + (push (char-fold--make-space-string spaces) out) (setq spaces 0)) - (let ((regexp (or (aref character-fold-table c) + (let ((regexp (or (aref char-fold-table c) (regexp-quote (string c)))) ;; Long string. The regexp would probably be too long. (alist (unless (> end 50) @@ -206,13 +206,13 @@ from which to start." (let ((length (car entry)) (suffix-regexp (cdr entry))) (concat suffix-regexp - (character-fold-to-regexp subs nil length)))) + (char-fold-to-regexp subs nil length)))) `((0 . ,regexp) . ,matched-entries) "\\|") "\\)")))) out)))) (setq i (1+ i))) (when (> spaces 0) - (push (character-fold--make-space-string spaces) out)) + (push (char-fold--make-space-string spaces) out)) (let ((regexp (apply #'concat (nreverse out)))) ;; Limited by `MAX_BUF_SIZE' in `regex.c'. (if (> (length regexp) 5000) @@ -221,22 +221,22 @@ from which to start." ;;; Commands provided for completeness. -(defun character-fold-search-forward (string &optional bound noerror count) - "Search forward for a character-folded version of STRING. -STRING is converted to a regexp with `character-fold-to-regexp', +(defun char-fold-search-forward (string &optional bound noerror count) + "Search forward for a char-folded version of STRING. +STRING is converted to a regexp with `char-fold-to-regexp', which is searched for with `re-search-forward'. BOUND NOERROR COUNT are passed to `re-search-forward'." (interactive "sSearch: ") - (re-search-forward (character-fold-to-regexp string) bound noerror count)) + (re-search-forward (char-fold-to-regexp string) bound noerror count)) -(defun character-fold-search-backward (string &optional bound noerror count) - "Search backward for a character-folded version of STRING. -STRING is converted to a regexp with `character-fold-to-regexp', +(defun char-fold-search-backward (string &optional bound noerror count) + "Search backward for a char-folded version of STRING. +STRING is converted to a regexp with `char-fold-to-regexp', which is searched for with `re-search-backward'. BOUND NOERROR COUNT are passed to `re-search-backward'." (interactive "sSearch: ") - (re-search-backward (character-fold-to-regexp string) bound noerror count)) + (re-search-backward (char-fold-to-regexp string) bound noerror count)) -(provide 'character-fold) +(provide 'char-fold) -;;; character-fold.el ends here +;;; char-fold.el ends here diff --git a/lisp/chistory.el b/lisp/chistory.el index 6f8a74b2a67b..be5393720ac9 100644 --- a/lisp/chistory.el +++ b/lisp/chistory.el @@ -95,7 +95,7 @@ from the command history." ;;;###autoload (defun list-command-history () - "List history of commands typed to minibuffer. + "List history of commands that used the minibuffer. The number of commands listed is controlled by `list-command-history-max'. Calls value of `list-command-history-filter' (if non-nil) on each history element to judge if that element should be excluded from the list. diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 9609a034c971..72f00b2f959b 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -1072,9 +1072,10 @@ are shown; the contents of those subgroups are initially hidden." ;;;###autoload (defun customize-mode (mode) - "Customize options related to the current major mode. -If a prefix \\[universal-argument] was given (or if the current major mode has no known group), -then prompt for the MODE to customize." + "Customize options related to a major or minor mode. +By default the current major mode is used. With a prefix +argument or if the current major mode has no known group, prompt +for the MODE to customize." (interactive (list (let ((completion-regexp-list '("-mode\\'")) @@ -1083,8 +1084,8 @@ then prompt for the MODE to customize." major-mode (intern (completing-read (if group - (format "Major mode (default %s): " major-mode) - "Major mode: ") + (format "Mode (default %s): " major-mode) + "Mode: ") obarray 'custom-group-of-mode t nil nil (if group (symbol-name major-mode)))))))) @@ -1499,11 +1500,12 @@ Return non-nil if user chooses to customize, for use in (defcustom custom-buffer-style 'links "Control the presentation style for customization buffers. The value should be a symbol, one of: - -brackets: groups nest within each other with big horizontal brackets. -links: groups have links to subgroups." +`brackets': groups nest within each other with big horizontal brackets. +`links': groups have links to subgroups. +`tree': display groups as trees." :type '(radio (const brackets) - (const links)) + (const links) + (const tree)) :group 'custom-buffer) (defcustom custom-buffer-done-kill nil @@ -4362,7 +4364,7 @@ option itself, into the file you specify, overwriting any `custom-set-variables' and `custom-set-faces' forms already present in that file. It will not delete any customizations from the old custom file. You should do that manually if that is what you -want. You also have to put something like `(load \"CUSTOM-FILE\") +want. You also have to put something like (load \"CUSTOM-FILE\") in your init file, where CUSTOM-FILE is the actual name of the file. Otherwise, Emacs will not load the file when it starts up, and hence will not set `custom-file' to that file either." diff --git a/lisp/cus-start.el b/lisp/cus-start.el index 5be61ce537c6..a8bcc4586490 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -54,7 +54,8 @@ ;; :risky - risky-local-variable property ;; :safe - safe-local-variable property ;; :tag - custom-tag property -(let (standard native-p prop propval +(let (standard + native-p prop propval ;; This function turns a value ;; into an expression which produces that value. (quoter (lambda (sexp) @@ -67,27 +68,27 @@ (stringp sexp) (numberp sexp)) sexp - (list 'quote sexp))))) + (list 'quote sexp)))) + (cursor-type-types + '(choice + (const :tag "Frame default" t) + (const :tag "Filled box" box) + (const :tag "Hollow cursor" hollow) + (const :tag "Vertical bar" bar) + (cons :tag "Vertical bar with specified width" + (const bar) integer) + (const :tag "Horizontal bar" hbar) + (cons :tag "Horizontal bar with specified width" + (const hbar) integer) + (const :tag "None "nil)))) (pcase-dolist (`(,symbol ,group ,type ,version . ,rest) - '(;; alloc.c + `(;; alloc.c (gc-cons-threshold alloc integer) (gc-cons-percentage alloc float) (garbage-collection-messages alloc boolean) ;; buffer.c - (cursor-type - display - (choice - (const :tag "Frame default" t) - (const :tag "Filled box" box) - (const :tag "Hollow cursor" hollow) - (const :tag "Vertical bar" bar) - (cons :tag "Vertical bar with specified width" - (const bar) integer) - (const :tag "Horizontal bar" hbar) - (cons :tag "Horizontal bar with specified width" - (const hbar) integer) - (const :tag "None "nil))) + (cursor-type display ,cursor-type-types) (mode-line-format mode-line sexp) ;Hard to do right. (major-mode internal function) (case-fold-search matching boolean) @@ -147,7 +148,7 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of (line-spacing display (choice (const :tag "none" nil) number) "22.1") (cursor-in-non-selected-windows - cursor boolean nil + cursor ,cursor-type-types nil :tag "Cursor In Non-selected Windows" :set (lambda (symbol value) (set-default symbol value) @@ -172,7 +173,9 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of (directory :format "%v"))) nil :standard - (mapcar 'directory-file-name + (mapcar (lambda (f) + (if f (directory-file-name f) + ".")) (append (parse-colon-path (getenv "PATH")) (list exec-directory)))) (exec-suffixes execute (repeat string)) diff --git a/lisp/dabbrev.el b/lisp/dabbrev.el index d9f36b152905..438eda3776d5 100644 --- a/lisp/dabbrev.el +++ b/lisp/dabbrev.el @@ -433,7 +433,10 @@ Expands to the most recent, preceding word for which this is a prefix. If no suitable preceding word is found, words following point are considered. If still no suitable word is found, then look in the buffers accepted by the function pointed out by variable -`dabbrev-friend-buffer-function'. +`dabbrev-friend-buffer-function', if `dabbrev-check-other-buffers' +says so. Then, if `dabbrev-check-all-buffers' is non-nil, look in +all the other buffers, subject to constraints specified +by `dabbrev-ignored-buffer-names' and `dabbrev-ignored-regexps'. A positive prefix argument, N, says to take the Nth backward *distinct* possibility. A negative argument says search forward. diff --git a/lisp/delsel.el b/lisp/delsel.el index 6a819ebbf67b..da4223f49fe8 100644 --- a/lisp/delsel.el +++ b/lisp/delsel.el @@ -171,16 +171,17 @@ With ARG, repeat that many times. `C-u' means until end of buffer." active region. `kill' `kill-region' is used on the selection, rather than - `delete-region'. (Text selected with the mouse will typically - be yankable anyhow.) - t - The normal case: delete the active region prior to executing - the command which will insert replacement text. + `delete-region'. (Text selected with the mouse will + typically be yankable anyhow.) FUNCTION - For commands which need to dynamically determine this behavior. - FUNCTION should take no argument and return one of the above - values, or nil. In the latter case, FUNCTION should itself - do with the active region whatever is appropriate." + For commands which need to dynamically determine this + behavior. FUNCTION should take no argument and return a + value acceptable as TYPE, or nil. In the latter case, + FUNCTION should itself do with the active region whatever is + appropriate. + Other non-nil values + The normal case: delete the active region prior to executing + the command which will insert replacement text." (condition-case data (cond ((eq type 'kill) ;Deprecated, backward compatibility. (delete-active-region t) diff --git a/lisp/descr-text.el b/lisp/descr-text.el index 5f1a43043421..528820876ec1 100644 --- a/lisp/descr-text.el +++ b/lisp/descr-text.el @@ -806,9 +806,16 @@ relevant to POS." 'describe-char-unidata-list)) 'follow-link t) (insert "\n") - (dolist (elt (if (eq describe-char-unidata-list t) - (nreverse (mapcar 'car char-code-property-alist)) - describe-char-unidata-list)) + (dolist (elt + (cond ((eq describe-char-unidata-list t) + (nreverse (mapcar 'car char-code-property-alist))) + ((< char 32) + ;; Temporary fix (2016-05-22): The + ;; decomposition item for \n corrupts the + ;; display on a Linux virtual terminal. + ;; (Bug #23594). + (remq 'decomposition describe-char-unidata-list)) + (t describe-char-unidata-list))) (let ((val (get-char-code-property char elt)) description) (when val diff --git a/lisp/desktop.el b/lisp/desktop.el index 822db050e1fe..1f460b7a3ede 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el @@ -408,7 +408,7 @@ See related options `desktop-restore-reuses-frames', :group 'desktop :version "24.4") -(defcustom desktop-restore-in-current-display nil +(defcustom desktop-restore-in-current-display t "Controls how restoring of frames treats displays. If t, restores frames into the current display. If nil, restores frames into their original displays (if possible). @@ -1163,7 +1163,7 @@ This function also sets `desktop-dirname' to nil." "Restore the state of a set of frames. This function depends on the value of `desktop-saved-frameset' being set (usually, by reading it from the desktop)." - (when (desktop-restoring-frameset-p) + (when (and (display-graphic-p) (desktop-restoring-frameset-p)) (frameset-restore desktop-saved-frameset :reuse-frames (eq desktop-restore-reuses-frames t) :cleanup-frames (not (eq desktop-restore-reuses-frames 'keep)) @@ -1634,15 +1634,8 @@ If there are no buffers left to create, kill the timer." (setq command-line-args (delete key command-line-args)) (desktop-save-mode 0))) (when desktop-save-mode - ;; People don't expect emacs -nw, or --daemon, - ;; to create graphical frames (bug#17693). - ;; TODO perhaps there should be a separate value - ;; for desktop-restore-frames to control this startup behavior? - (let ((desktop-restore-frames (and desktop-restore-frames - initial-window-system - (not (daemonp))))) - (desktop-read) - (setq inhibit-startup-screen t))))) + (desktop-read) + (setq inhibit-startup-screen t)))) (provide 'desktop) diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index 08db1877f1ac..204ee13006aa 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)) @@ -2719,14 +2719,21 @@ with the command \\[tags-loop-continue]." ;;;###autoload (defun dired-do-find-regexp (regexp) - "Find all matches for REGEXP in all marked files, recursively." + "Find all matches for REGEXP in all marked files. +For any marked directory, all of its files are searched recursively. +However, files matching `grep-find-ignored-files' and subdirectories +matching `grep-find-ignored-directories' are skipped in the marked +directories. + +REGEXP should use constructs supported by your local `grep' command." (interactive "sSearch marked files (regexp): ") (require 'grep) (defvar grep-find-ignored-files) + (defvar grep-find-ignored-directories) (let* ((files (dired-get-marked-files)) (ignores (nconc (mapcar (lambda (s) (concat s "/")) - vc-directory-exclusion-list) + grep-find-ignored-directories) grep-find-ignored-files)) (xrefs (cl-mapcan (lambda (file) @@ -2740,7 +2747,13 @@ with the command \\[tags-loop-continue]." ;;;###autoload (defun dired-do-find-regexp-and-replace (from to) - "Replace matches of FROM with TO, in all marked files, recursively." + "Replace matches of FROM with TO, in all marked files. +For any marked directory, matches in all of its files are replaced, +recursively. However, files matching `grep-find-ignored-files' +and subdirectories matching `grep-find-ignored-directories' are skipped +in the marked directories. + +REGEXP should use constructs supported by your local `grep' command." (interactive (let ((common (query-replace-read-args diff --git a/lisp/dired-x.el b/lisp/dired-x.el index 088ca81ed8d6..67721d6e88a9 100644 --- a/lisp/dired-x.el +++ b/lisp/dired-x.el @@ -1060,8 +1060,8 @@ You can set this variable in your ~/.emacs. For example, to add rules for `.foo' and `.bar' files, write (setq dired-guess-shell-alist-user - '((\"\\\\.foo\\\\'\" \"FOO-COMMAND\") - (\"\\\\.bar\\\\'\" + \\='((\"\\\\.foo\\\\\\='\" \"FOO-COMMAND\") + (\"\\\\.bar\\\\\\='\" (if condition \"BAR-COMMAND-1\" \"BAR-COMMAND-2\"))))" diff --git a/lisp/dired.el b/lisp/dired.el index f1adcb4c3db1..2957a4aadc8f 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -1829,11 +1829,11 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST." '("--")) (define-key map [menu-bar operate query-replace] - '(menu-item "Query Replace in Files..." dired-do-query-replace-regexp - :help "Replace regexp in marked files")) + '(menu-item "Query Replace in Files..." dired-do-find-regexp-and-replace + :help "Replace regexp matches in marked files")) (define-key map [menu-bar operate search] - '(menu-item "Search Files..." dired-do-search - :help "Search marked files for regexp")) + '(menu-item "Search Files..." dired-do-find-regexp + :help "Search marked files for matches of regexp")) (define-key map [menu-bar operate isearch-regexp] '(menu-item "Isearch Regexp Files..." dired-do-isearch-regexp :help "Incrementally search marked files for regexp")) @@ -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" "17b411edeac40022109eb6f705b83079") +;;;### (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) @@ -4423,12 +4423,24 @@ with the command \\[tags-loop-continue]. \(fn FROM TO &optional DELIMITED)" t nil) (autoload 'dired-do-find-regexp "dired-aux" "\ -Find all matches for REGEXP in all marked files, recursively. +Find all matches for REGEXP in all marked files. +For any marked directory, all of its files are searched recursively. +However, files matching `grep-find-ignored-files' and subdirectories +matching `grep-find-ignored-directories' are skipped in the marked +directories. + +REGEXP should use constructs supported by your local `grep' command. \(fn REGEXP)" t nil) (autoload 'dired-do-find-regexp-and-replace "dired-aux" "\ -Replace matches of FROM with TO, in all marked files, recursively. +Replace matches of FROM with TO, in all marked files. +For any marked directory, matches in all of its files are replaced, +recursively. However, files matching `grep-find-ignored-files' +and subdirectories matching `grep-find-ignored-directories' are skipped +in the marked directories. + +REGEXP should use constructs supported by your local `grep' command. \(fn FROM TO)" t nil) diff --git a/lisp/electric.el b/lisp/electric.el index ab79943c9dd9..ab9770b0bbb4 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -430,12 +430,6 @@ The variable `electric-layout-rules' says when and how to insert newlines." :version "25.1" :type 'boolean :safe 'booleanp :group 'electricity) -(defun electric--insertable-p (string) - (or (not buffer-file-coding-system) - (eq (coding-system-base buffer-file-coding-system) 'undecided) - (not (unencodable-char-position nil nil buffer-file-coding-system - nil string)))) - (defun electric-quote-post-self-insert-function () "Function that `electric-quote-mode' adds to `post-self-insert-hook'. This requotes when a quoting key is typed." @@ -444,10 +438,15 @@ This requotes when a quoting key is typed." (let ((start (if (and comment-start comment-use-syntax) (when (or electric-quote-comment electric-quote-string) - (let ((syntax (syntax-ppss))) - (and (or (and electric-quote-comment (nth 4 syntax)) + (let* ((syntax (syntax-ppss)) + (beg (nth 8 syntax))) + (and beg + (or (and electric-quote-comment (nth 4 syntax)) (and electric-quote-string (nth 3 syntax))) - (nth 8 syntax)))) + ;; Do not requote a quote that starts or ends + ;; a comment or string. + (eq beg (nth 8 (save-excursion + (syntax-ppss (1- (point))))))))) (and electric-quote-paragraph (derived-mode-p 'text-mode) (or (eq last-command-event ?\`) @@ -455,8 +454,7 @@ This requotes when a quoting key is typed." (when start (save-excursion (if (eq last-command-event ?\`) - (cond ((and (electric--insertable-p "“") - (search-backward "‘`" (- (point) 2) t)) + (cond ((search-backward "‘`" (- (point) 2) t) (replace-match "“") (when (and electric-pair-mode (eq (cdr-safe @@ -464,16 +462,13 @@ This requotes when a quoting key is typed." (char-after))) (delete-char 1)) (setq last-command-event ?“)) - ((and (electric--insertable-p "‘") - (search-backward "`" (1- (point)) t)) + ((search-backward "`" (1- (point)) t) (replace-match "‘") (setq last-command-event ?‘))) - (cond ((and (electric--insertable-p "”") - (search-backward "’'" (- (point) 2) t)) + (cond ((search-backward "’'" (- (point) 2) t) (replace-match "”") (setq last-command-event ?”)) - ((and (electric--insertable-p "’") - (search-backward "'" (1- (point)) t)) + ((search-backward "'" (1- (point)) t) (replace-match "’") (setq last-command-event ?’))))))))) diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el index e688d6be7253..883a38a48843 100644 --- a/lisp/emacs-lisp/autoload.el +++ b/lisp/emacs-lisp/autoload.el @@ -766,7 +766,12 @@ write its autoloads into the specified file instead." (interactive "DUpdate autoloads from directory: ") (let* ((files-re (let ((tmp nil)) (dolist (suf (get-load-suffixes)) - (unless (string-match "\\.elc" suf) (push suf tmp))) + ;; We don't use module-file-suffix below because + ;; we don't want to depend on whether Emacs was + ;; built with or without modules support, nor + ;; what is the suffix for the underlying OS. + (unless (string-match "\\.\\(elc\\|\\so\\|dll\\)" suf) + (push suf tmp))) (concat "^[^=.].*" (regexp-opt tmp t) "\\'"))) (files (apply 'nconc (mapcar (lambda (dir) @@ -800,13 +805,14 @@ write its autoloads into the specified file instead." ;; Remove the obsolete section. (autoload-remove-section (match-beginning 0)) (setq last-time (nth 4 form)) - (dolist (file file) - (let ((file-time (nth 5 (file-attributes file)))) - (when (and file-time - (not (time-less-p last-time file-time))) - ;; file unchanged - (push file no-autoloads) - (setq files (delete file files)))))) + (when (listp last-time) + (dolist (file file) + (let ((file-time (nth 5 (file-attributes file)))) + (when (and file-time + (not (time-less-p last-time file-time))) + ;; file unchanged + (push file no-autoloads) + (setq files (delete file files))))))) ((not (stringp file))) ((or (not (file-exists-p file)) ;; Remove duplicates as well, just in case. @@ -815,8 +821,9 @@ write its autoloads into the specified file instead." (member (expand-file-name file) autoload-excludes)) ;; Remove the obsolete section. (autoload-remove-section (match-beginning 0))) - ((not (time-less-p (nth 4 form) - (nth 5 (file-attributes file)))) + ((and (listp (nth 4 form)) + (not (time-less-p (nth 4 form) + (nth 5 (file-attributes file))))) ;; File hasn't changed. nil) (t diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el index 83cb7e70f37c..818c2683463b 100644 --- a/lisp/emacs-lisp/byte-run.el +++ b/lisp/emacs-lisp/byte-run.el @@ -362,6 +362,9 @@ is equivalent to the following two lines of code: \(defalias \\='old-fun \\='new-fun \"old-fun's doc.\") \(make-obsolete \\='old-fun \\='new-fun \"22.1\") +If provided, WHEN should be a string indicating when the function +was first made obsolete, for example a date or a release number. + See the docstrings of `defalias' and `make-obsolete' for more details." (declare (doc-string 4) (advertised-calling-convention @@ -404,6 +407,9 @@ dumped with Emacs). This is so that any user customizations are applied before the defcustom tries to initialize the variable (this is due to the way `defvaralias' works). +If provided, WHEN should be a string indicating when the variable +was first made obsolete, for example a date or a release number. + For the benefit of `custom-set-variables', if OBSOLETE-NAME has any of the following properties, they are copied to CURRENT-NAME, if it does not already have them: @@ -428,8 +434,8 @@ CURRENT-NAME, if it does not already have them: ;; It only really affects M-x describe-face output. (defmacro define-obsolete-face-alias (obsolete-face current-face when) "Make OBSOLETE-FACE a face alias for CURRENT-FACE and mark it obsolete. -The string WHEN gives the Emacs version where OBSOLETE-FACE became -obsolete." +If provided, WHEN should be a string indicating when the face +was first made obsolete, for example a date or a release number." `(progn (put ,obsolete-face 'face-alias ,current-face) ;; Used by M-x describe-face. diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el index b5dfe487d07e..8bf0675f54b6 100644 --- a/lisp/emacs-lisp/cl-extra.el +++ b/lisp/emacs-lisp/cl-extra.el @@ -822,7 +822,7 @@ including `cl-block' and `cl-eval-when'." (cl--describe-class-slots class) ;; Describe all the methods specific to this class. - (let ((generics (cl--generic-all-functions type))) + (let ((generics (cl-generic-all-functions type))) (when generics (insert (propertize "Specialized Methods:\n\n" 'face 'bold)) (dolist (generic generics) diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el index 7ad9f307f936..4f263c6bb8d1 100644 --- a/lisp/emacs-lisp/cl-generic.el +++ b/lisp/emacs-lisp/cl-generic.el @@ -86,6 +86,11 @@ ;;; Code: +;; The autoloads.el mechanism which adds package--builtin-versions +;; maintenance to loaddefs.el doesn't work for preloaded packages (such +;; as this one), so we have to do it by hand! +(push (purecopy '(cl-generic 1 0)) package--builtin-versions) + ;; Note: For generic functions that dispatch on several arguments (i.e. those ;; which use the multiple-dispatch feature), we always use the same "tagcodes" ;; and the same set of arguments on which to dispatch. This works, but is @@ -666,6 +671,15 @@ FUN is the function that should be called when METHOD calls (setq fun (cl-generic-call-method generic method fun))) fun))))) +(defun cl-generic-apply (generic args) + "Like `apply' but takes a cl-generic object rather than a function." + ;; Handy in cl-no-applicable-method, for example. + ;; In Common Lisp, generic-function objects are funcallable. Ideally + ;; we'd want the same in Elisp, but it would either require using a very + ;; different (and less efficient) representation of cl--generic objects, + ;; or non-trivial changes in the general infrastructure (compiler and such). + (apply (cl--generic-name generic) args)) + (defun cl--generic-arg-specializer (method dispatch-arg) (or (if (integerp dispatch-arg) (nth dispatch-arg @@ -937,7 +951,7 @@ MET-NAME is a cons (SYMBOL . SPECIALIZERS)." (setq applies t))) applies)) -(defun cl--generic-all-functions (&optional type) +(defun cl-generic-all-functions (&optional type) "Return a list of all generic functions. Optional TYPE argument returns only those functions that contain methods for TYPE." diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index ae52e8bebeca..c51ed9d8770a 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -299,7 +299,8 @@ FORM is of the form (ARGS . BODY)." ;; Be careful with make-symbol and (back)quote, ;; see bug#12884. (help--docstring-quote - (let ((print-gensym nil) (print-quoted t)) + (let ((print-gensym nil) (print-quoted t) + (print-escape-newlines t)) (format "%S" (cons 'fn (cl--make-usage-args orig-args)))))) header))) @@ -326,6 +327,20 @@ FORM is of the form (ARGS . BODY)." Like normal `defun', except ARGLIST allows full Common Lisp conventions, and BODY is implicitly surrounded by (cl-block NAME ...). +The full form of a Common Lisp function argument list is + + (VAR... + [&optional (VAR [INITFORM [SVAR]])...] + [&rest|&body VAR] + [&key (([KEYWORD] VAR) [INITFORM [SVAR]])... [&allow-other-keys]] + [&aux (VAR [INITFORM])...]) + +VAR maybe be replaced recursively with an argument list for +destructing, `&whole' is supported within these sublists. If +SVAR, INITFORM, and KEYWORD are all omitted, then `(VAR)' may be +written simply `VAR'. See the Info node `(cl)Argument Lists' for +more details. + \(fn NAME ARGLIST [DOCSTRING] BODY...)" (declare (debug ;; Same as defun but use cl-lambda-list. @@ -405,6 +420,21 @@ and BODY is implicitly surrounded by (cl-block NAME ...). Like normal `defmacro', except ARGLIST allows full Common Lisp conventions, and BODY is implicitly surrounded by (cl-block NAME ...). +The full form of a Common Lisp macro argument list is + + (VAR... + [&optional (VAR [INITFORM [SVAR]])...] + [&rest|&body VAR] + [&key (([KEYWORD] VAR) [INITFORM [SVAR]])... [&allow-other-keys]] + [&aux (VAR [INITFORM])...] + [&environment VAR]) + +VAR maybe be replaced recursively with an argument list for +destructing, `&whole' is supported within these sublists. If +SVAR, INITFORM, and KEYWORD are all omitted, then `(VAR)' may be +written simply `VAR'. See the Info node `(cl)Argument Lists' for +more details. + \(fn NAME ARGLIST [DOCSTRING] BODY...)" (declare (debug (&define name cl-macro-list cl-declarations-or-string def-body)) @@ -850,9 +880,9 @@ This is compatible with Common Lisp, but note that `defun' and "The Common Lisp `loop' macro. Valid clauses include: For clauses: - for VAR from/upfrom/downfrom EXPR1 to/upto/downto/above/below EXPR2 by EXPR3 + for VAR from/upfrom/downfrom EXPR1 to/upto/downto/above/below EXPR2 [by EXPR3] for VAR = EXPR1 then EXPR2 - for VAR in/on/in-ref LIST by FUNC + for VAR in/on/in-ref LIST [by FUNC] for VAR across/across-ref ARRAY for VAR being: the elements of/of-ref SEQUENCE [using (index VAR2)] diff --git a/lisp/emacs-lisp/cl-preloaded.el b/lisp/emacs-lisp/cl-preloaded.el index cd1d700f1b0c..2b022c490536 100644 --- a/lisp/emacs-lisp/cl-preloaded.el +++ b/lisp/emacs-lisp/cl-preloaded.el @@ -45,7 +45,7 @@ (defun cl--assertion-failed (form &optional string sargs args) (if debug-on-error - (debug `(cl-assertion-failed ,form ,string ,@sargs)) + (funcall debugger `(cl-assertion-failed ,form ,string ,@sargs)) (if string (apply #'error string (append sargs args)) (signal 'cl-assertion-failed `(,form ,@sargs))))) diff --git a/lisp/emacs-lisp/cursor-sensor.el b/lisp/emacs-lisp/cursor-sensor.el index f1ab82ecc4a2..28b61880d0a3 100644 --- a/lisp/emacs-lisp/cursor-sensor.el +++ b/lisp/emacs-lisp/cursor-sensor.el @@ -31,6 +31,7 @@ ;;; Code: +;;;###autoload (defvar cursor-sensor-inhibit nil) (defun cursor-sensor--intangible-p (pos) @@ -113,7 +114,7 @@ ;; non-sticky on both ends, but that means get-pos-property might ;; never see it. (new (or (get-char-property point 'cursor-sensor-functions) - (unless (bobp) + (unless (<= (point-min) point) (get-char-property (1- point) 'cursor-sensor-functions)))) (old (window-parameter window 'cursor-sensor--last-state)) (oldposmark (car old)) diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index 6a4d835b63cc..38295c302eac 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el @@ -108,9 +108,10 @@ Optional LIGHTER is displayed in the mode line when the mode is on. Optional KEYMAP is the default keymap bound to the mode keymap. If non-nil, it should be a variable name (whose value is a keymap), or an expression that returns either a keymap or a list of - arguments for `easy-mmode-define-keymap'. If you supply a KEYMAP - argument that is not a symbol, this macro defines the variable - MODE-map and gives it the value that KEYMAP specifies. + (KEY . BINDING) pairs where KEY and BINDING are suitable for + `define-key'. If you supply a KEYMAP argument that is not a + symbol, this macro defines the variable MODE-map and gives it + the value that KEYMAP specifies. BODY contains code to execute each time the mode is enabled or disabled. It is executed after toggling the mode, and before running MODE-hook. @@ -252,7 +253,8 @@ Use the command `%s' to change this variable." pretty-name mode)) (t (let ((base-doc-string (concat "Non-nil if %s is enabled. -See the command `%s' for a description of this minor mode." +See the `%s' command +for a description of this minor mode." (if body " Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') diff --git a/lisp/emacs-lisp/eieio-compat.el b/lisp/emacs-lisp/eieio-compat.el index 6d4798b92f9b..6aba8a3acbd0 100644 --- a/lisp/emacs-lisp/eieio-compat.el +++ b/lisp/emacs-lisp/eieio-compat.el @@ -188,7 +188,8 @@ Summary: (`no-applicable-method (setq method 'cl-no-applicable-method) (setq specializers `(generic ,@specializers)) - (lambda (generic arg &rest args) (apply code arg generic args))) + (lambda (generic arg &rest args) + (apply code arg (cl--generic-name generic) (cons arg args)))) (_ code)))) (cl-generic-define-method method (unless (memq kind '(nil :primary)) (list kind)) diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el index 631e4a437f26..5454dfcbbc47 100644 --- a/lisp/emacs-lisp/eieio-core.el +++ b/lisp/emacs-lisp/eieio-core.el @@ -459,7 +459,7 @@ See `defclass' for more information." (cl--slot-descriptor-initform (aref slots i))))) (setf (eieio--class-class-allocation-values newc) v)) - ;; Attach slot symbols into a hashtable, and store the index of + ;; Attach slot symbols into a hash table, and store the index of ;; this slot as the value this table. (let* ((slots (eieio--class-slots newc)) ;; (cslots (eieio--class-class-slots newc)) @@ -976,7 +976,7 @@ If a consistent order does not exist, signal an error." (defun eieio--class-precedence-c3 (class) "Return all parents of CLASS in c3 order." - (let ((parents (eieio--class-parents (cl--find-class class)))) + (let ((parents (eieio--class-parents class))) (eieio--c3-merge-lists (list class) (append @@ -1101,7 +1101,7 @@ method invocation orders of the involved classes." (list eieio--generic-subclass-generalizer)) -;;;### (autoloads nil "eieio-compat" "eieio-compat.el" "6aca3c1b5f751a01331761da45fc4f5c") +;;;### (autoloads nil "eieio-compat" "eieio-compat.el" "dba4205b1a0d7133f1311d975b4d0ebe") ;;; Generated autoloads from eieio-compat.el (autoload 'eieio--defalias "eieio-compat" "\ diff --git a/lisp/emacs-lisp/eieio-opt.el b/lisp/emacs-lisp/eieio-opt.el index 8a4df0635c4d..c1f8297b4a5f 100644 --- a/lisp/emacs-lisp/eieio-opt.el +++ b/lisp/emacs-lisp/eieio-opt.el @@ -162,7 +162,7 @@ are not abstract." (defun eieio-display-method-list () "Display a list of all the methods and what features are used." (interactive) - (let* ((meth1 (cl--generic-all-functions)) + (let* ((meth1 (cl-generic-all-functions)) (meth (sort meth1 (lambda (a b) (string< (symbol-name a) (symbol-name b))))) diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el index 772ebd900de2..f045e267ff47 100644 --- a/lisp/emacs-lisp/eieio.el +++ b/lisp/emacs-lisp/eieio.el @@ -235,7 +235,7 @@ This method is obsolete." (let ((f (intern (format "%s-child-p" name)))) `((defalias ',f ',testsym2) (make-obsolete - ',f ,(format "use (cl-typep ... \\='%s) instead" name) + ',f ,(format "use (cl-typep ... '%s) instead" name) "25.1")))) ;; When using typep, (typep OBJ 'myclass) returns t for objects which @@ -984,7 +984,7 @@ Optional argument GROUP is the sub-group of slots to display. ;;;*** -;;;### (autoloads nil "eieio-opt" "eieio-opt.el" "5bd32f1033d0e2eee7c32c0ad28330fc") +;;;### (autoloads nil "eieio-opt" "eieio-opt.el" "0b9c6be48520da2085812f6e7fed9792") ;;; Generated autoloads from eieio-opt.el (autoload 'eieio-browse "eieio-opt" "\ diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el index d5e7178b2265..096102ae7e13 100644 --- a/lisp/emacs-lisp/eldoc.el +++ b/lisp/emacs-lisp/eldoc.el @@ -201,8 +201,16 @@ expression point is on." ;;;###autoload (define-minor-mode global-eldoc-mode - "Enable `eldoc-mode' in all buffers where it's applicable." - :group 'eldoc :global t + "Toggle Global Eldoc mode on or off. +With a prefix argument ARG, enable Global Eldoc mode if ARG is +positive, and disable it otherwise. If called from Lisp, enable +the mode if ARG is omitted or nil, and toggle it if ARG is ‘toggle’. + +If Global Eldoc mode is on, `eldoc-mode' will be enabled in all +buffers where it's applicable. These are buffers that have modes +that have enabled eldoc support. See `eldoc-documentation-function'." + :group 'eldoc + :global t :initialize 'custom-initialize-delay :init-value t (setq eldoc-last-message nil) diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el index 0575ce49f803..6f224ed92d30 100644 --- a/lisp/emacs-lisp/find-func.el +++ b/lisp/emacs-lisp/find-func.el @@ -103,7 +103,7 @@ Please send improvements and fixes to the maintainer." (defcustom find-feature-regexp (concat ";;; Code:") "The regexp used by `xref-find-definitions' when searching for a feature definition. -Note it must contain a `%s' at the place where `format' +Note it may contain up to one `%s' at the place where `format' should insert the feature name." ;; We search for ";;; Code" rather than (feature '%s) because the ;; former is near the start of the code, and the latter is very @@ -111,7 +111,7 @@ should insert the feature name." ;; (point-min), which is acceptable in this case. :type 'regexp :group 'xref - :version "25.0") + :version "25.1") (defcustom find-alias-regexp "(defalias +'%s" @@ -120,7 +120,7 @@ Note it must contain a `%s' at the place where `format' should insert the feature name." :type 'regexp :group 'xref - :version "25.0") + :version "25.1") (defvar find-function-regexp-alist '((nil . find-function-regexp) @@ -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) @@ -357,8 +361,10 @@ signal an error. If VERBOSE is non-nil, and FUNCTION is an alias, display a message about the whole chain of aliases." - (let ((def (if (symbolp function) - (find-function-advised-original function))) + (let ((def (when (symbolp function) + (or (fboundp function) + (signal 'void-function (list function))) + (find-function-advised-original function))) aliases) ;; FIXME for completeness, it might be nice to print something like: ;; foo (which is advised), which is an alias for bar (which is advised). diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el index 93572e5e658e..fa7ac64bf04f 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 diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el index 7d5b7dc749d6..46373da5eb91 100644 --- a/lisp/emacs-lisp/lisp-mnt.el +++ b/lisp/emacs-lisp/lisp-mnt.el @@ -265,17 +265,16 @@ a section." (defun lm-header (header) "Return the contents of the header named HEADER." - (save-excursion - (goto-char (point-min)) - (let ((case-fold-search t)) - (when (and (re-search-forward (lm-get-header-re header) (lm-code-mark) t) - ;; RCS ident likes format "$identifier: data$" - (looking-at - (if (save-excursion - (skip-chars-backward "^$" (match-beginning 0)) - (= (point) (match-beginning 0))) - "[^\n]+" "[^$\n]+"))) - (match-string-no-properties 0))))) + (goto-char (point-min)) + (let ((case-fold-search t)) + (when (and (re-search-forward (lm-get-header-re header) (lm-code-mark) t) + ;; RCS ident likes format "$identifier: data$" + (looking-at + (if (save-excursion + (skip-chars-backward "^$" (match-beginning 0)) + (= (point) (match-beginning 0))) + "[^\n]+" "[^$\n]+"))) + (match-string-no-properties 0)))) (defun lm-header-multiline (header) "Return the contents of the header named HEADER, with continuation lines. diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 315b3d563435..cfec05cd01db 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -58,7 +58,7 @@ (setq i (1+ i))) (modify-syntax-entry ?\s " " table) ;; Non-break space acts as whitespace. - (modify-syntax-entry ?\x8a0 " " table) + (modify-syntax-entry ?\xa0 " " table) (modify-syntax-entry ?\t " " table) (modify-syntax-entry ?\f " " table) (modify-syntax-entry ?\n "> " table) diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index 764d01ce6dbc..ea7cce67be71 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el @@ -587,7 +587,11 @@ Interactively, the behavior depends on `narrow-to-defun-include-comments'." Each element looks like (OPEN-CHAR CLOSE-CHAR) or (COMMAND-CHAR OPEN-CHAR CLOSE-CHAR). The characters OPEN-CHAR and CLOSE-CHAR of the pair whose key is equal to the last input character with -or without modifiers, are inserted by `insert-pair'.") +or without modifiers, are inserted by `insert-pair'. + +If COMMAND-CHAR is specified, it is a character that triggers the +insertion of the open/close pair, and COMMAND-CHAR itself isn't +inserted.") (defun insert-pair (&optional arg open close) "Enclose following ARG sexps in a pair of OPEN and CLOSE characters. diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el index ed4d6e49a93a..310ca29e9a1c 100644 --- a/lisp/emacs-lisp/macroexp.el +++ b/lisp/emacs-lisp/macroexp.el @@ -261,7 +261,7 @@ Assumes the caller has bound `macroexpand-all-environment'." (format "%s quoted with ' rather than with #'" (list 'lambda (nth 1 f) '...)) (macroexp--expand-all `(,fun ,arg1 ,f . ,args)))) - (`(funcall (,(or 'quote 'function) ,(and f (pred symbolp)) . ,_) . ,args) + (`(funcall #',(and f (pred symbolp)) . ,args) ;; Rewrite (funcall #'foo bar) to (foo bar), in case `foo' ;; has a compiler-macro. (macroexp--expand-all `(,f . ,args))) diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el index 1d4c3f0586ca..1b30499bf19f 100644 --- a/lisp/emacs-lisp/nadvice.el +++ b/lisp/emacs-lisp/nadvice.el @@ -114,7 +114,10 @@ Each element has the form (WHERE BYTECODE STACK) where: (usage (help-split-fundoc origdoc function))) (setq usage (if (null usage) (let ((arglist (help-function-arglist flist))) - (help--make-usage-docstring function arglist)) + ;; "[Arg list not available until function + ;; definition is loaded]", bug#21299 + (if (stringp arglist) t + (help--make-usage-docstring function arglist))) (setq origdoc (cdr usage)) (car usage))) (help-add-fundoc-usage (concat docstring origdoc) usage)))) diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 7a5b020203e8..e4bb561a87a3 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -301,10 +301,12 @@ contrast, `package-user-dir' contains packages for personal use." :risky t :version "24.1") -(defvar epg-gpg-program) +(declare-function epg-find-configuration "epg-config" + (protocol &optional force)) (defcustom package-check-signature - (if (progn (require 'epg-config) (executable-find epg-gpg-program)) + (if (and (require 'epg-config) + (epg-find-configuration 'OpenPGP)) 'allow-unsigned) "Non-nil means to check package signatures when installing. The value `allow-unsigned' means to still install a package even if @@ -1155,38 +1157,43 @@ errors signaled by ERROR-FORM or by BODY). (setq body (cdr (cdr body)))) (macroexp-let2* nil ((url-1 url) (noerror-1 noerror)) - `(cl-macrolet ((unless-error (body-2 &rest before-body) - (let ((err (make-symbol "err"))) - `(with-temp-buffer - (when (condition-case ,err - (progn ,@before-body t) - ,(list 'error ',error-form - (list 'unless ',noerror-1 - `(signal (car ,err) (cdr ,err))))) - ,@body-2))))) - (if (string-match-p "\\`https?:" ,url-1) - (let* ((url (concat ,url-1 ,file)) - (callback (lambda (status) - (let ((b (current-buffer))) - (require 'url-handlers) - (unless-error ,body - (when-let ((er (plist-get status :error))) - (error "Error retrieving: %s %S" url er)) - (with-current-buffer b - (goto-char (point-min)) - (unless (search-forward-regexp "^\r?\n\r?" nil 'noerror) - (error "Error retrieving: %s %S" url "incomprehensible buffer"))) - (url-insert-buffer-contents b url) - (kill-buffer b) - (goto-char (point-min))))))) - (if ,async - (unless-error nil (url-retrieve url callback nil 'silent)) - (unless-error ,body (url-insert-file-contents url)))) - (unless-error ,body - (let ((url (expand-file-name ,file ,url-1))) - (unless (file-name-absolute-p url) - (error "Location %s is not a url nor an absolute file name" url)) - (insert-file-contents url))))))) + (let ((url-sym (make-symbol "url")) + (b-sym (make-symbol "b-sym"))) + `(cl-macrolet ((unless-error (body-2 &rest before-body) + (let ((err (make-symbol "err"))) + `(with-temp-buffer + (when (condition-case ,err + (progn ,@before-body t) + ,(list 'error ',error-form + (list 'unless ',noerror-1 + `(signal (car ,err) (cdr ,err))))) + ,@body-2))))) + (if (string-match-p "\\`https?:" ,url-1) + (let ((,url-sym (concat ,url-1 ,file))) + (if ,async + (unless-error nil + (url-retrieve ,url-sym + (lambda (status) + (let ((,b-sym (current-buffer))) + (require 'url-handlers) + (unless-error ,body + (when-let ((er (plist-get status :error))) + (error "Error retrieving: %s %S" ,url-sym er)) + (with-current-buffer ,b-sym + (goto-char (point-min)) + (unless (search-forward-regexp "^\r?\n\r?" nil 'noerror) + (error "Error retrieving: %s %S" ,url-sym "incomprehensible buffer"))) + (url-insert-buffer-contents ,b-sym ,url-sym) + (kill-buffer ,b-sym) + (goto-char (point-min))))) + nil + 'silent)) + (unless-error ,body (url-insert-file-contents ,url-sym)))) + (unless-error ,body + (let ((url (expand-file-name ,file ,url-1))) + (unless (file-name-absolute-p url) + (error "Location %s is not a url nor an absolute file name" url)) + (insert-file-contents url)))))))) (define-error 'bad-signature "Failed to verify signature") @@ -1214,7 +1221,7 @@ errors." (unless (and (eq package-check-signature 'allow-unsigned) (eq (epg-signature-status sig) 'no-pubkey)) (setq had-fatal-error t)))) - (when (and (null good-signatures) had-fatal-error) + (when (or (null good-signatures) had-fatal-error) (package--display-verify-error context sig-file) (signal 'bad-signature (list sig-file))) good-signatures))) @@ -1426,7 +1433,10 @@ If `user-init-file' does not mention `(package-initialize)', add it to the file. If called as part of loading `user-init-file', set `package-enable-at-startup' to nil, to prevent accidentally -loading packages twice." +loading packages twice. +It is not necessary to adjust `load-path' or `require' the +individual packages after calling `package-initialize' -- this is +taken care of by `package-initialize'." (interactive) (setq package-alist nil) (if (equal user-init-file load-file-name) @@ -1453,8 +1463,6 @@ loading packages twice." (defvar package--downloads-in-progress nil "List of in-progress asynchronous downloads.") -(declare-function epg-find-configuration "epg-config" - (protocol &optional force)) (declare-function epg-import-keys-from-file "epg" (context keys)) ;;;###autoload @@ -1554,12 +1562,6 @@ downloads in the background." (let ((default-keyring (expand-file-name "package-keyring.gpg" data-directory)) (inhibit-message async)) - (if (get 'package-check-signature 'saved-value) - (when package-check-signature - (epg-find-configuration 'OpenPGP)) - (setq package-check-signature - (if (epg-find-configuration 'OpenPGP) - 'allow-unsigned))) (when (and package-check-signature (file-exists-p default-keyring)) (condition-case-unless-debug error (package-import-keyring default-keyring) @@ -1867,6 +1869,7 @@ add a call to it along with some explanatory comments." (file-readable-p user-init-file) (file-writable-p user-init-file)) (let* ((buffer (find-buffer-visiting user-init-file)) + buffer-name (contains-init (if buffer (with-current-buffer buffer @@ -1882,8 +1885,12 @@ add a call to it along with some explanatory comments." (re-search-forward "(package-initialize\\_>" nil 'noerror))))) (unless contains-init (with-current-buffer (or buffer - (let ((delay-mode-hooks t)) + (let ((delay-mode-hooks t) + (find-file-visit-truename t)) (find-file-noselect user-init-file))) + (when buffer + (setq buffer-name (buffer-file-name)) + (set-visited-file-name (file-chase-links user-init-file))) (save-excursion (save-restriction (widen) @@ -1902,7 +1909,10 @@ add a call to it along with some explanatory comments." (insert "\n")) (let ((file-precious-flag t)) (save-buffer)) - (unless buffer + (if buffer + (progn + (set-visited-file-name buffer-name) + (set-buffer-modified-p nil)) (kill-buffer (current-buffer))))))))) (setq package--init-file-ensured t)) @@ -1986,7 +1996,8 @@ Downloads and installs required packages as needed." ((derived-mode-p 'tar-mode) (package-tar-file-info)) (t - (package-buffer-info)))) + (save-excursion + (package-buffer-info))))) (name (package-desc-name pkg-desc))) ;; Download and install the dependencies. (let* ((requires (package-desc-reqs pkg-desc)) @@ -2244,13 +2255,13 @@ Otherwise no newline is inserted." (package--print-help-section "Status") (cond (built-in (insert (propertize (capitalize status) - 'font-lock-face 'package-status-builtin-face) + 'font-lock-face 'package-status-built-in) ".")) (pkg-dir (insert (propertize (if (member status '("unsigned" "dependency")) "Installed" (capitalize status)) - 'font-lock-face 'package-status-builtin-face)) + 'font-lock-face 'package-status-built-in)) (insert (substitute-command-keys " in `")) (let ((dir (abbreviate-file-name (file-name-as-directory @@ -2263,7 +2274,7 @@ Otherwise no newline is inserted." (insert (substitute-command-keys "',\n shadowing a ") (propertize "built-in package" - 'font-lock-face 'package-status-builtin-face)) + 'font-lock-face 'package-status-built-in)) (insert (substitute-command-keys "'"))) (if signed (insert ".") @@ -2815,13 +2826,14 @@ Return (PKG-DESC [NAME VERSION STATUS DOC])." "Face used on package description summaries in the package menu." :version "25.1") +;; Shame this hyphenates "built-in", when "font-lock-builtin-face" doesn't. (defface package-status-built-in '((t :inherit font-lock-builtin-face)) "Face used on the status and version of built-in packages." :version "25.1") (defface package-status-external - '((t :inherit package-status-builtin-face)) + '((t :inherit package-status-built-in)) "Face used on the status and version of external packages." :version "25.1") diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el index b1e132a76e35..27db4773b1d1 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) diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el index 8362ddafd3fd..904aad0afefe 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 diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el index e20a210de715..654f234fa625 100644 --- a/lisp/emacs-lisp/syntax.el +++ b/lisp/emacs-lisp/syntax.el @@ -272,9 +272,10 @@ Note: back-references in REGEXPs do not work." (cond ,@(nreverse branches)))))) (defun syntax-propertize-via-font-lock (keywords) - "Propertize for syntax in START..END using font-lock syntax. + "Propertize for syntax using font-lock syntax. KEYWORDS obeys the format used in `font-lock-syntactic-keywords'. -The return value is a function suitable for `syntax-propertize-function'." +The return value is a function (with two parameters, START and +END) suitable for `syntax-propertize-function'." (lambda (start end) (with-no-warnings (let ((font-lock-syntactic-keywords keywords)) @@ -283,7 +284,7 @@ The return value is a function suitable for `syntax-propertize-function'." (setq keywords font-lock-syntactic-keywords))))) (defun syntax-propertize (pos) - "Ensure that syntax-table properties are set until POS." + "Ensure that syntax-table properties are set until POS (a buffer point)." (when (< syntax-propertize--done pos) (if (null syntax-propertize-function) (setq syntax-propertize--done (max (point-max) pos)) diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index 3f2e2fb5286c..c01ea4973c72 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el @@ -424,6 +424,8 @@ This function returns a timer object which you can use in `cancel-timer'." (defun add-timeout (secs function object &optional repeat) "Add a timer to run SECS seconds from now, to call FUNCTION on OBJECT. If REPEAT is non-nil, repeat the timer every REPEAT seconds. + +This function returns a timer object which you can use in `cancel-timer'. This function is for compatibility; see also `run-with-timer'." (run-with-timer secs repeat function object)) diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el index 9351fcc6ca6b..542dbccd7755 100644 --- a/lisp/emulation/cua-base.el +++ b/lisp/emulation/cua-base.el @@ -302,7 +302,7 @@ is not turned on." If there is additional input within this time, the prefix key is used as a normal prefix key. So typing a key sequence quickly will inhibit overriding the prefix key. -As a special case, if the prefix keys repeated within this time, the +As a special case, if the prefix key is repeated within this time, the first prefix key is discarded, so typing a prefix key twice in quick succession will also inhibit overriding the prefix key. If the value is nil, use a shifted prefix key to inhibit the override." diff --git a/lisp/emulation/edt.el b/lisp/emulation/edt.el index 6bda15bf98d3..f408ff731067 100644 --- a/lisp/emulation/edt.el +++ b/lisp/emulation/edt.el @@ -497,7 +497,7 @@ Argument NUM is the number of EOL marks to move." ;;; of line, etc.) it takes a bit of special handling. ;;; ;;; The variable edt-word-entities contains a list of characters which -;;; are to be viewed as distinct words where ever they appear in the +;;; are to be viewed as distinct words wherever they appear in the ;;; buffer. This emulates the EDT line mode command SET ENTITY WORD. diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el index 93cf3b0fb10a..4bd819ab828f 100644 --- a/lisp/emulation/viper-cmd.el +++ b/lisp/emulation/viper-cmd.el @@ -1715,8 +1715,9 @@ invokes the command before that, etc." (let ((inhibit-quit t) tmp tmp2) (setq viper-undo-needs-adjustment nil) - (if (listp buffer-undo-list) - (if (setq tmp (memq viper-buffer-undo-list-mark buffer-undo-list)) + (when (listp buffer-undo-list) + (let ((had-boundary (null (car buffer-undo-list)))) + (if (setq tmp (memq viper-buffer-undo-list-mark buffer-undo-list)) (progn (setq tmp2 (cdr tmp)) ; the part after mark @@ -1729,8 +1730,11 @@ invokes the command before that, etc." (delq viper-buffer-undo-list-mark buffer-undo-list)) ;; restore tail of buffer-undo-list (setq buffer-undo-list (nconc buffer-undo-list tmp2))) - (setq buffer-undo-list (delq nil buffer-undo-list))))) - )) + (setq buffer-undo-list (delq nil buffer-undo-list))) + ;; The top-level loop only adds boundaries if there has been + ;; modifications in the buffer, so make sure we don't accidentally + ;; drop the "final" boundary (bug#22295). + (if had-boundary (undo-boundary))))))) (defun viper-set-complex-command-for-undo () diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el index 1254923669f5..68500365dc07 100644 --- a/lisp/emulation/viper-util.el +++ b/lisp/emulation/viper-util.el @@ -1332,7 +1332,7 @@ Works best when set in the hooks to various major modes. `reformed-vi' means Viper words are like Emacs words \(as determined using Emacs syntax tables, which are different for different major modes) with two exceptions: the symbol `_' is always part of a word and typical Vi non-word -symbols, such as `,',:,\",),{, etc., are excluded. +symbols like `\\=`', `\\='', `:', `\"', `)', and `{' are excluded. This behaves very close to `strict-vi', but also works well with non-ASCII characters from various alphabets. diff --git a/lisp/erc/ChangeLog.1 b/lisp/erc/ChangeLog.1 index 407beb47d790..156449677874 100644 --- a/lisp/erc/ChangeLog.1 +++ b/lisp/erc/ChangeLog.1 @@ -10324,8 +10324,8 @@ * TODO: TODO list created. Add comments and expand it. - * erc.el: - Fixed bug in query buffer handling (only happend in mixed-case situations) + * erc.el: Fixed bug in query buffer handling (only happened in + mixed-case situations) * erc.el: shapr checkdoc patch #1 massive docfixes! yay, keep going! diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index 6d508e203f4b..012b5b5f3f47 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el @@ -108,7 +108,7 @@ ;;;; Variables and options (defvar erc-server-responses (make-hash-table :test #'equal) - "Hashtable mapping server responses to their handler hooks.") + "Hash table mapping server responses to their handler hooks.") (cl-defstruct (erc-response (:conc-name erc-response.)) (unparsed "" :type string) @@ -1064,7 +1064,7 @@ See also `erc-server-responses'." (defun erc-call-hooks (process message) "Call hooks associated with MESSAGE in PROCESS. -Finds hooks by looking in the `erc-server-responses' hashtable." +Finds hooks by looking in the `erc-server-responses' hash table." (let ((hook (or (erc-get-hook (erc-response.command message)) 'erc-default-server-functions))) (run-hook-with-args-until-success hook process message) @@ -1220,7 +1220,7 @@ add things to `%s' instead." (put ',fn-name 'definition-name ',name) (put ',hook-name 'definition-name ',name) - ;; Hashtable map of responses to hook variables + ;; Hash table map of responses to hook variables ,@(cl-loop for response in (cons name aliases) for var in (cons hook-name var-alternates) collect `(puthash ,(format "%s" response) ',var diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el index 3e5de0c0097a..208629ce1354 100644 --- a/lisp/eshell/em-term.el +++ b/lisp/eshell/em-term.el @@ -102,10 +102,11 @@ See also `eshell-visual-commands' and `eshell-visual-options'." of commands with options that present their output in a visual fashion. For example, a sensible entry would be - (\"git\" \"--help\") + (\"git\" \"--help\" \"--paginate\") because \"git --help\" shows the command's -documentation with a pager. +documentation with a pager and \"git --paginate \" +always uses a pager for output. See also `eshell-visual-commands' and `eshell-visual-subcommands'." :type '(repeat (cons (string :tag "Command") diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el index 60615131e209..d3613d314058 100644 --- a/lisp/eshell/esh-cmd.el +++ b/lisp/eshell/esh-cmd.el @@ -800,7 +800,7 @@ This macro calls itself recursively, with NOTFIRST non-nil." (defmacro eshell-do-pipelines-synchronously (pipeline) "Execute the commands in PIPELINE in sequence synchronously. Output of each command is passed as input to the next one in the pipeline. -This is used on systems where `start-process' is not supported." +This is used on systems where async subprocesses are not supported." (when (setq pipeline (cadr pipeline)) `(progn ,(when (cdr pipeline) @@ -838,7 +838,7 @@ This is used on systems where `start-process' is not supported." "Execute the commands in PIPELINE, connecting each to one another." `(let ((eshell-in-pipeline-p t) tailproc) (progn - ,(if (fboundp 'start-process) + ,(if (fboundp 'make-process) `(eshell-do-pipelines ,pipeline) `(let ((tail-handles (eshell-create-handles (car (aref eshell-current-handles diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el index 388bc7473679..14964f9aab8e 100644 --- a/lisp/eshell/esh-mode.el +++ b/lisp/eshell/esh-mode.el @@ -143,7 +143,7 @@ See variable `eshell-scroll-show-maximum-output' and function :type '(radio (const :tag "Do not scroll Eshell windows" nil) (const :tag "Scroll all windows showing the buffer" all) (const :tag "Scroll only the selected window" this) - (const :tag "Scroll all windows other than selected" this)) + (const :tag "Scroll all windows other than selected" others)) :group 'eshell-mode) (defcustom eshell-scroll-show-maximum-output t diff --git a/lisp/faces.el b/lisp/faces.el index 612bd1677bbf..a84edab3615d 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 macOS. "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,8 +2304,17 @@ 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 - '((t :family "Sans Serif")) + '((((type w32)) + ;; This is a kludgy workaround for an issue discussed in + ;; http://lists.gnu.org/archive/html/emacs-devel/2016-04/msg00746.html. + :font "-outline-Arial-normal-normal-normal-sans-*-*-*-*-p-*-iso8859-1") + (t :family "Sans Serif")) "The basic variable-pitch face." :group 'basic-faces) diff --git a/lisp/files.el b/lisp/files.el index 5cdd3849f19d..45646b186af2 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -51,20 +51,21 @@ when it has unsaved changes." nil "Alist of abbreviations for file directories. A list of elements of the form (FROM . TO), each meaning to replace -FROM with TO when it appears in a directory name. This replacement is -done when setting up the default directory of a newly visited file. +a match for FROM with TO when a directory name matches FROM. This +replacement is done when setting up the default directory of a +newly visited file buffer. -FROM is matched against directory names anchored at the first -character, so it should start with a \"\\\\\\=`\", or, if directory -names cannot have embedded newlines, with a \"^\". +FROM is a regexp that is matched against directory names anchored at +the first character, so it should start with a \"\\\\\\=`\", or, if +directory names cannot have embedded newlines, with a \"^\". FROM and TO should be equivalent names, which refer to the -same directory. Do not use `~' in the TO strings; -they should be ordinary absolute directory names. +same directory. TO should be an absolute directory name. +Do not use `~' in the TO strings. Use this feature when you have directories which you normally refer to via absolute symbolic links. Make TO the name of the link, and FROM -the name it is linked to." +a regexp matching the name it is linked to." :type '(repeat (cons :format "%v" :value ("\\`" . "") (regexp :tag "From") @@ -1736,7 +1737,8 @@ Choose the buffer's name using `generate-new-buffer-name'." (make-obsolete-variable 'automount-dir-prefix 'directory-abbrev-alist "24.3") (defvar abbreviated-home-dir nil - "The user's homedir abbreviated according to `directory-abbrev-alist'.") + "Regexp matching the user's homedir at the beginning of file name. +The value includes abbreviation according to `directory-abbrev-alist'.") (defun abbreviate-file-name (filename) "Return a version of FILENAME shortened using `directory-abbrev-alist'. @@ -1770,8 +1772,23 @@ home directory is a root directory) and removes automounter prefixes (or abbreviated-home-dir (setq abbreviated-home-dir (let ((abbreviated-home-dir "$foo")) - (concat "\\`" (abbreviate-file-name (expand-file-name "~")) - "\\(/\\|\\'\\)")))) + (setq abbreviated-home-dir + (concat "\\`" + (abbreviate-file-name (expand-file-name "~")) + "\\(/\\|\\'\\)")) + ;; Depending on whether default-directory does or + ;; doesn't include non-ASCII characters, the value + ;; of abbreviated-home-dir could be multibyte or + ;; unibyte. In the latter case, we need to decode + ;; it. Note that this function is called for the + ;; first time (from startup.el) when + ;; locale-coding-system is already set up. + (if (multibyte-string-p abbreviated-home-dir) + abbreviated-home-dir + (decode-coding-string abbreviated-home-dir + (if (eq system-type 'windows-nt) + 'utf-8 + locale-coding-system)))))) ;; If FILENAME starts with the abbreviated homedir, ;; make it start with `~' instead. @@ -2143,6 +2160,7 @@ Do you want to revisit the file normally now? ") (defun insert-file-contents-literally (filename &optional visit beg end replace) "Like `insert-file-contents', but only reads in the file literally. +See `insert-file-contents' for an explanation of the parameters. A buffer may be modified in several ways after reading into the buffer, due to Emacs features such as format decoding, character code conversion, `find-file-hook', automatic uncompression, etc. @@ -4256,8 +4274,8 @@ the group would be preserved too." (defun file-name-sans-extension (filename) "Return FILENAME sans final \"extension\". -The extension, in a file name, is the part that follows the last `.', -except that a leading `.', if any, doesn't count." +The extension, in a file name, is the part that begins with the last `.', +except that a leading `.' of the file name, if there is one, doesn't count." (save-match-data (let ((file (file-name-sans-versions (file-name-nondirectory filename))) directory) @@ -4272,15 +4290,16 @@ except that a leading `.', if any, doesn't count." (defun file-name-extension (filename &optional period) "Return FILENAME's final \"extension\". -The extension, in a file name, is the part that follows the last `.', -excluding version numbers and backup suffixes, -except that a leading `.', if any, doesn't count. +The extension, in a file name, is the part that begins with the last `.', +excluding version numbers and backup suffixes, except that a leading `.' +of the file name, if there is one, doesn't count. Return nil for extensionless file names such as `foo'. Return the empty string for file names such as `foo.'. -If PERIOD is non-nil, then the returned value includes the period -that delimits the extension, and if FILENAME has no extension, -the value is \"\"." +By default, the returned value excludes the period that starts the +extension, but if the optional argument PERIOD is non-nil, the period +is included in the value, and in that case, if FILENAME has no +extension, the value is \"\"." (save-match-data (let ((file (file-name-sans-versions (file-name-nondirectory filename)))) (if (and (string-match "\\.[^.]*\\'" file) @@ -4635,14 +4654,20 @@ By default, makes the previous version into a backup file Prefixed with one \\[universal-argument], marks this version to become a backup when the next save is done. Prefixed with two \\[universal-argument]'s, - unconditionally makes the previous version into a backup file. + makes the previous version into a backup file. Prefixed with three \\[universal-argument]'s, marks this version to become a backup when the next save is done, - and unconditionally makes the previous version into a backup file. + and makes the previous version into a backup file. With a numeric prefix argument of 0, never make the previous version into a backup file. +Note that the various variables that control backups, such +as `version-control', `backup-enable-predicate', `vc-make-backup-files', +and `backup-inhibited', to name just the more popular ones, still +control whether a backup will actually be produced, even when you +invoke this command prefixed with two or three \\[universal-argument]'s. + If a file's name is FOO, the names of its numbered backup versions are FOO.~i~ for various integers i. A non-numbered backup file is called FOO~. Numeric backups (rather than FOO~) will be made if value of @@ -5074,7 +5099,7 @@ change the additional actions you can take on files." (defun clear-visited-file-modtime () "Clear out records of last mod time of visited file. -Next attempt to save will certainly not complain of a discrepancy." +Next attempt to save will not complain of a discrepancy." (set-visited-file-modtime 0)) (defun not-modified (&optional arg) @@ -6145,7 +6170,7 @@ and `list-directory-verbose-switches'." PATTERN is assumed to represent a file-name wildcard suitable for the underlying filesystem. For Unix and GNU/Linux, each character from the -set [ \\t\\n;<>&|()`'\"#$] is quoted with a backslash; for DOS/Windows, all +set [ \\t\\n;<>&|()\\=`\\='\"#$] is quoted with a backslash; for DOS/Windows, all the parts of the pattern which don't include wildcard characters are quoted with double quotes. diff --git a/lisp/find-lisp.el b/lisp/find-lisp.el index 475001f5707d..8591eb841c12 100644 --- a/lisp/find-lisp.el +++ b/lisp/find-lisp.el @@ -118,7 +118,7 @@ Argument DIR is the directory containing FILE." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun find-lisp-find-files (directory regexp) - "Find files in DIRECTORY which match REGEXP." + "Find files under DIRECTORY, recursively, that match REGEXP." (let ((file-predicate 'find-lisp-default-file-predicate) (directory-predicate 'find-lisp-default-directory-predicate) (find-lisp-regexp regexp)) @@ -297,6 +297,9 @@ It is a function which takes two arguments, the directory and its parent." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun find-lisp-format (file-name file-attr switches now) + "Format one line of long ls output for file FILE-NAME. +FILE-ATTR and FILE-SIZE give the file's attributes and size. +SWITCHES and TIME-INDEX give the full switch list and time data." (let ((file-type (nth 0 file-attr))) (concat (if (memq ?i switches) ; inode number (format "%6d " (nth 10 file-attr))) @@ -325,7 +328,7 @@ It is a function which takes two arguments, the directory and its parent." "\n"))) (defun find-lisp-time-index (switches) - ;; Return index into file-attributes according to ls SWITCHES. + "Return index into file-attributes according to ls SWITCHES." (cond ((memq ?c switches) 6) ; last mode change ((memq ?u switches) 4) ; last access @@ -333,10 +336,11 @@ It is a function which takes two arguments, the directory and its parent." (t 5))) (defun find-lisp-format-time (file-attr switches now) - ;; Format time string for file with attributes FILE-ATTR according - ;; to SWITCHES (a list of ls option letters of which c and u are recognized). - ;; Use the same method as `ls' to decide whether to show time-of-day or year, - ;; depending on distance between file date and NOW. + "Format time string for file. +This is done with attributes FILE-ATTR according to SWITCHES (a +list of ls option letters of which c and u are recognized). Use +the same method as \"ls\" to decide whether to show time-of-day or +year, depending on distance between file date and NOW." (let* ((time (nth (find-lisp-time-index switches) file-attr)) (diff16 (- (car time) (car now))) (diff (+ (ash diff16 16) (- (car (cdr time)) (car (cdr now))))) diff --git a/lisp/follow.el b/lisp/follow.el index 5801f79341e4..c510e5a848be 100644 --- a/lisp/follow.el +++ b/lisp/follow.el @@ -399,11 +399,11 @@ virtual window. This is accomplished by two main techniques: makes it possible to walk between windows using normal cursor movement commands. -Follow mode comes to its prime when used on a large screen and two -side-by-side windows are used. The user can, with the help of Follow -mode, use two full-height windows as though they would have been -one. Imagine yourself editing a large function, or section of text, -and being able to use 144 lines instead of the normal 72... (your +Follow mode comes to its prime when used on a large screen and two or +more side-by-side windows are used. The user can, with the help of +Follow mode, use these full-height windows as though they were one. +Imagine yourself editing a large function, or section of text, and +being able to use 144 or 216 lines instead of the normal 72... (your mileage may vary). To split one large window into two side-by-side windows, the commands @@ -532,6 +532,80 @@ Return the new position." ;; position... (This would also be corrected if we would have had a ;; good redisplay abstraction.) +(defun follow-scroll-up-arg (arg) + "Scroll the text in a follow mode window chain up by ARG lines. +If ARG is nil, scroll the size of the current window. + +This is an internal function for `follow-scroll-up' and +`follow-scroll-up-window'." + (let ((opoint (point)) (owin (selected-window))) + (while + ;; If we are too near EOB, try scrolling the previous window. + (condition-case nil (progn (scroll-up arg) nil) + (end-of-buffer + (condition-case nil (progn (follow-previous-window) t) + (error + (select-window owin) + (goto-char opoint) + (signal 'end-of-buffer nil)))))) + (unless (and scroll-preserve-screen-position + (get this-command 'scroll-command)) + (goto-char opoint)) + (setq follow-fixed-window t))) + +(defun follow-scroll-down-arg (arg) + "Scroll the text in a follow mode window chain down by ARG lines. +If ARG is nil, scroll the size of the current window. + +This is an internal function for `follow-scroll-down' and +`follow-scroll-down-window'." + (let ((opoint (point))) + (scroll-down arg) + (unless (and scroll-preserve-screen-position + (get this-command 'scroll-command)) + (goto-char opoint)) + (setq follow-fixed-window t))) + +;;;###autoload +(defun follow-scroll-up-window (&optional arg) + "Scroll text in a Follow mode window up by that window's size. +The other windows in the window chain will scroll synchronously. + +If called with no ARG, the `next-screen-context-lines' last lines of +the window will be visible after the scroll. + +If called with an argument, scroll ARG lines up. +Negative ARG means scroll downward. + +Works like `scroll-up' when not in Follow mode." + (interactive "P") + (cond ((not follow-mode) + (scroll-up arg)) + ((eq arg '-) + (follow-scroll-down-window)) + (t (follow-scroll-up-arg arg)))) +(put 'follow-scroll-up-window 'scroll-command t) + +;;;###autoload +(defun follow-scroll-down-window (&optional arg) + "Scroll text in a Follow mode window down by that window's size. +The other windows in the window chain will scroll synchronously. + +If called with no ARG, the `next-screen-context-lines' top lines of +the window in the chain will be visible after the scroll. + +If called with an argument, scroll ARG lines down. +Negative ARG means scroll upward. + +Works like `scroll-down' when not in Follow mode." + (interactive "P") + (cond ((not follow-mode) + (scroll-down arg)) + ((eq arg '-) + (follow-scroll-up-window)) + (t (follow-scroll-down-arg arg)))) +(put 'follow-scroll-down-window 'scroll-command t) + ;;;###autoload (defun follow-scroll-up (&optional arg) "Scroll text in a Follow mode window chain up. @@ -546,23 +620,18 @@ Works like `scroll-up' when not in Follow mode." (interactive "P") (cond ((not follow-mode) (scroll-up arg)) - ((eq arg '-) - (follow-scroll-down)) - (t - (let ((opoint (point)) (owin (selected-window))) - (while - ;; If we are too near EOB, try scrolling the previous window. - (condition-case nil (progn (scroll-up arg) nil) - (end-of-buffer - (condition-case nil (progn (follow-previous-window) t) - (error - (select-window owin) - (goto-char opoint) - (signal 'end-of-buffer nil)))))) - (unless (and scroll-preserve-screen-position - (get this-command 'scroll-command)) - (goto-char opoint)) - (setq follow-fixed-window t))))) + (arg (follow-scroll-up-arg arg)) + (t + (let* ((windows (follow-all-followers)) + (end (window-end (car (reverse windows))))) + (if (eq end (point-max)) + (signal 'end-of-buffer nil) + (select-window (car windows)) + ;; `window-end' might return nil. + (if end + (goto-char end)) + (vertical-motion (- next-screen-context-lines)) + (set-window-start (car windows) (point))))))) (put 'follow-scroll-up 'scroll-command t) ;;;###autoload @@ -579,15 +648,22 @@ Works like `scroll-down' when not in Follow mode." (interactive "P") (cond ((not follow-mode) (scroll-down arg)) - ((eq arg '-) - (follow-scroll-up)) - (t - (let ((opoint (point))) - (scroll-down arg) - (unless (and scroll-preserve-screen-position - (get this-command 'scroll-command)) - (goto-char opoint)) - (setq follow-fixed-window t))))) + (arg (follow-scroll-down-arg arg)) + (t + (let* ((windows (follow-all-followers)) + (win (car (reverse windows))) + (start (window-start (car windows)))) + (if (eq start (point-min)) + (signal 'beginning-of-buffer nil) + (select-window win) + (goto-char start) + (vertical-motion (- (- (window-height win) + (if header-line-format 2 1) + next-screen-context-lines))) + (set-window-start win (point)) + (goto-char start) + (vertical-motion (- next-screen-context-lines 1)) + (setq follow-internal-force-redisplay t)))))) (put 'follow-scroll-down 'scroll-command t) (declare-function comint-adjust-point "comint" (window)) diff --git a/lisp/font-core.el b/lisp/font-core.el index a0971a17f5f5..b3da89705008 100644 --- a/lisp/font-core.el +++ b/lisp/font-core.el @@ -86,46 +86,50 @@ When Font Lock mode is enabled, text is fontified as you type it: - Comments are displayed in `font-lock-comment-face'; - Strings are displayed in `font-lock-string-face'; - - Certain other expressions are displayed in other faces according to the - value of the variable `font-lock-keywords'. + - Certain other expressions are displayed in other faces + according to the value of the variable `font-lock-keywords'. To customize the faces (colors, fonts, etc.) used by Font Lock for fontifying different parts of buffer text, use \\[customize-face]. -You can enable Font Lock mode in any major mode automatically by turning on in -the major mode's hook. For example, put in your ~/.emacs: +You can enable Font Lock mode in any major mode automatically by +turning on in the major mode's hook. For example, put in your +~/.emacs: (add-hook \\='c-mode-hook \\='turn-on-font-lock) -Alternatively, you can use Global Font Lock mode to automagically turn on Font -Lock mode in buffers whose major mode supports it and whose major mode is one -of `font-lock-global-modes'. For example, put in your ~/.emacs: +Alternatively, you can use Global Font Lock mode to automagically +turn on Font Lock mode in buffers whose major mode supports it +and whose major mode is one of `font-lock-global-modes'. For +example, put in your ~/.emacs: (global-font-lock-mode t) -Where major modes support different levels of fontification, you can use -the variable `font-lock-maximum-decoration' to specify which level you -generally prefer. When you turn Font Lock mode on/off the buffer is -fontified/defontified, though fontification occurs only if the buffer is -less than `font-lock-maximum-size'. +Where major modes support different levels of fontification, you +can use the variable `font-lock-maximum-decoration' to specify +which level you generally prefer. When you turn Font Lock mode +on/off the buffer is fontified/defontified, though fontification +occurs only if the buffer is less than `font-lock-maximum-size'. -To add your own highlighting for some major mode, and modify the highlighting -selected automatically via the variable `font-lock-maximum-decoration', you can -use `font-lock-add-keywords'. +To add your own highlighting for some major mode, and modify the +highlighting selected automatically via the variable +`font-lock-maximum-decoration', you can use +`font-lock-add-keywords'. -To fontify a buffer, without turning on Font Lock mode and regardless of buffer -size, you can use \\[font-lock-fontify-buffer]. +To fontify a buffer, without turning on Font Lock mode and +regardless of buffer size, you can use \\[font-lock-fontify-buffer]. -To fontify a block (the function or paragraph containing point, or a number of -lines around point), perhaps because modification on the current line caused -syntactic change on other lines, you can use \\[font-lock-fontify-block]. +To fontify a block (the function or paragraph containing point, +or a number of lines around point), perhaps because modification +on the current line caused syntactic change on other lines, you +can use \\[font-lock-fontify-block]. You can set your own default settings for some mode, by setting a buffer local value for `font-lock-defaults', via its mode hook. -The above is the default behavior of `font-lock-mode'; you may specify -your own function which is called when `font-lock-mode' is toggled via -`font-lock-function'. " +The above is the default behavior of `font-lock-mode'; you may +specify your own function which is called when `font-lock-mode' +is toggled via `font-lock-function'. " nil nil nil :after-hook (font-lock-initial-fontify) ;; Don't turn on Font Lock mode if we don't have a display (we're running a diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 6f94f353c90f..8ee9f69fc1a8 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -364,105 +364,125 @@ Each element in a user-level keywords list should have one of these forms: (MATCHER HIGHLIGHT ...) (eval . FORM) -where MATCHER can be either the regexp to search for, or the function name to -call to make the search (called with one argument, the limit of the search; -it should return non-nil, move point, and set `match-data' appropriately if -it succeeds; like `re-search-forward' would). -MATCHER regexps can be generated via the function `regexp-opt'. - -FORM is an expression, whose value should be a keyword element, evaluated when -the keyword is (first) used in a buffer. This feature can be used to provide a -keyword that can only be generated when Font Lock mode is actually turned on. +where MATCHER can be either the regexp to search for, or the +function name to call to make the search (called with one +argument, the limit of the search; it should return non-nil, move +point, and set `match-data' appropriately if it succeeds; like +`re-search-forward' would). MATCHER regexps can be generated via +the function `regexp-opt'. + +FORM is an expression, whose value should be a keyword element, +evaluated when the keyword is (first) used in a buffer. This +feature can be used to provide a keyword that can only be +generated when Font Lock mode is actually turned on. HIGHLIGHT should be either MATCH-HIGHLIGHT or MATCH-ANCHORED. -For highlighting single items, for example each instance of the word \"foo\", -typically only MATCH-HIGHLIGHT is required. -However, if an item or (typically) items are to be highlighted following the -instance of another item (the anchor), for example each instance of the -word \"bar\" following the word \"anchor\" then MATCH-ANCHORED may be required. +For highlighting single items, for example each instance of the +word \"foo\", typically only MATCH-HIGHLIGHT is required. +However, if an item or (typically) items are to be highlighted +following the instance of another item (the anchor), for example +each instance of the word \"bar\" following the word \"anchor\" +then MATCH-ANCHORED may be required. MATCH-HIGHLIGHT should be of the form: (SUBEXP FACENAME [OVERRIDE [LAXMATCH]]) -SUBEXP is the number of the subexpression of MATCHER to be highlighted. +SUBEXP is the number of the subexpression of MATCHER to be +highlighted. FACENAME is an expression whose value is the face name to use. -Instead of a face, FACENAME can evaluate to a property list -of the form (face FACE PROP1 VAL1 PROP2 VAL2 ...) -in which case all the listed text-properties will be set rather than -just FACE. In such a case, you will most likely want to put those -properties in `font-lock-extra-managed-props' or to override +Instead of a face, FACENAME can evaluate to a property list of +the form (face FACE PROP1 VAL1 PROP2 VAL2 ...) in which case all +the listed text-properties will be set rather than just FACE. In +such a case, you will most likely want to put those properties in +`font-lock-extra-managed-props' or to override `font-lock-unfontify-region-function'. -OVERRIDE and LAXMATCH are flags. If OVERRIDE is t, existing fontification can -be overwritten. If `keep', only parts not already fontified are highlighted. -If `prepend' or `append', existing fontification is merged with the new, in -which the new or existing fontification, respectively, takes precedence. -If LAXMATCH is non-nil, that means don't signal an error if there is +OVERRIDE and LAXMATCH are flags. If OVERRIDE is t, existing +fontification can be overwritten. If `keep', only parts not +already fontified are highlighted. If `prepend' or `append', +existing fontification is merged with the new, in which the new +or existing fontification, respectively, takes precedence. If +LAXMATCH is non-nil, that means don't signal an error if there is no match for SUBEXP in MATCHER. -For example, an element of the form highlights (if not already highlighted): +For example, an element of the form highlights (if not already +highlighted): + + \"\\\\\\=\" + Discrete occurrences of \"foo\" in the value of the variable + `font-lock-keyword-face'. + + (\"fu\\\\(bar\\\\)\" . 1) + Substring \"bar\" within all occurrences of \"fubar\" in the + value of `font-lock-keyword-face'. + + (\"fubar\" . fubar-face) + Occurrences of \"fubar\" in the value of `fubar-face'. - \"\\\\\\=\" discrete occurrences of \"foo\" in the value of the - variable `font-lock-keyword-face'. - (\"fu\\\\(bar\\\\)\" . 1) substring \"bar\" within all occurrences of \"fubar\" in - the value of `font-lock-keyword-face'. - (\"fubar\" . fubar-face) Occurrences of \"fubar\" in the value of `fubar-face'. (\"foo\\\\|bar\" 0 foo-bar-face t) - occurrences of either \"foo\" or \"bar\" in the value - of `foo-bar-face', even if already highlighted. + Occurrences of either \"foo\" or \"bar\" in the value of + `foo-bar-face', even if already highlighted. + (fubar-match 1 fubar-face) - the first subexpression within all occurrences of - whatever the function `fubar-match' finds and matches - in the value of `fubar-face'. + The first subexpression within all occurrences of whatever the + function `fubar-match' finds and matches in the value of + `fubar-face'. MATCH-ANCHORED should be of the form: (MATCHER PRE-MATCH-FORM POST-MATCH-FORM MATCH-HIGHLIGHT ...) -where MATCHER is a regexp to search for or the function name to call to make -the search, as for MATCH-HIGHLIGHT above, but with one exception; see below. -PRE-MATCH-FORM and POST-MATCH-FORM are evaluated before the first, and after -the last, instance MATCH-ANCHORED's MATCHER is used. Therefore they can be -used to initialize before, and cleanup after, MATCHER is used. Typically, -PRE-MATCH-FORM is used to move to some position relative to the original -MATCHER, before starting with MATCH-ANCHORED's MATCHER. POST-MATCH-FORM might -be used to move back, before resuming with MATCH-ANCHORED's parent's MATCHER. - -For example, an element of the form highlights (if not already highlighted): - - (\"\\\\\\=\" (0 anchor-face) (\"\\\\\\=\" nil nil (0 item-face))) - - discrete occurrences of \"anchor\" in the value of `anchor-face', and subsequent - discrete occurrences of \"item\" (on the same line) in the value of `item-face'. - (Here PRE-MATCH-FORM and POST-MATCH-FORM are nil. Therefore \"item\" is - initially searched for starting from the end of the match of \"anchor\", and - searching for subsequent instances of \"anchor\" resumes from where searching - for \"item\" concluded.) - -The above-mentioned exception is as follows. The limit of the MATCHER search -defaults to the end of the line after PRE-MATCH-FORM is evaluated. -However, if PRE-MATCH-FORM returns a position greater than the position after -PRE-MATCH-FORM is evaluated, that position is used as the limit of the search. -It is generally a bad idea to return a position greater than the end of the -line, i.e., cause the MATCHER search to span lines. - -These regular expressions can match text which spans lines, although -it is better to avoid it if possible since updating them while editing -text is slower, and it is not guaranteed to be always correct when using -support modes like jit-lock or lazy-lock. - -This variable is set by major modes via the variable `font-lock-defaults'. -Be careful when composing regexps for this list; a poorly written pattern can -dramatically slow things down! - -A compiled keywords list starts with t. It is produced internally -by `font-lock-compile-keywords' from a user-level keywords list. -Its second element is the user-level keywords list that was -compiled. The remaining elements have the same form as -user-level keywords, but normally their values have been +where MATCHER is a regexp to search for or the function name to +call to make the search, as for MATCH-HIGHLIGHT above, but with +one exception; see below. PRE-MATCH-FORM and POST-MATCH-FORM are +evaluated before the first, and after the last, instance +MATCH-ANCHORED's MATCHER is used. Therefore they can be used to +initialize before, and cleanup after, MATCHER is used. +Typically, PRE-MATCH-FORM is used to move to some position +relative to the original MATCHER, before starting with +MATCH-ANCHORED's MATCHER. POST-MATCH-FORM might be used to move +back, before resuming with MATCH-ANCHORED's parent's MATCHER. + +For example, an element of the form highlights (if not already +highlighted): + + (\"\\\\\\=\" (0 anchor-face) + (\"\\\\\\=\" nil nil (0 item-face))) + + Discrete occurrences of \"anchor\" in the value of + `anchor-face', and subsequent discrete occurrences of + \"item\" (on the same line) in the value of `item-face'. + (Here PRE-MATCH-FORM and POST-MATCH-FORM are nil. Therefore + \"item\" is initially searched for starting from the end of the + match of \"anchor\", and searching for subsequent instances of + \"anchor\" resumes from where searching for \"item\" concluded.) + +The above-mentioned exception is as follows. The limit of the +MATCHER search defaults to the end of the line after +PRE-MATCH-FORM is evaluated. However, if PRE-MATCH-FORM returns +a position greater than the position after PRE-MATCH-FORM is +evaluated, that position is used as the limit of the search. It +is generally a bad idea to return a position greater than the end +of the line, i.e., cause the MATCHER search to span lines. + +These regular expressions can match text which spans lines, +although it is better to avoid it if possible since updating them +while editing text is slower, and it is not guaranteed to be +always correct when using support modes like jit-lock or +lazy-lock. + +This variable is set by major modes via the variable +`font-lock-defaults'. Be careful when composing regexps for this +list; a poorly written pattern can dramatically slow things down! + +A compiled keywords list starts with t. It is produced +internally by `font-lock-compile-keywords' from a user-level +keywords list. Its second element is the user-level keywords +list that was compiled. The remaining elements have the same +form as user-level keywords, but normally their values have been optimized.") (defvar font-lock-keywords-alist nil @@ -785,8 +805,11 @@ see the variables `c-font-lock-extra-types', `c++-font-lock-extra-types', (defun font-lock-remove-keywords (mode keywords) "Remove highlighting KEYWORDS for MODE. -MODE should be a symbol, the major mode command name, such as `c-mode' -or nil. If nil, highlighting keywords are removed for the current buffer. +MODE should be a symbol, the major mode command name, such as +`c-mode' or nil. If nil, highlighting keywords are removed for +the current buffer. + +For a description of KEYWORDS, see `font-lock-add-keywords'. To make the removal apply to modes derived from MODE as well, pass nil for MODE and add the call to MODE-hook. This may fail diff --git a/lisp/frame.el b/lisp/frame.el index 09738d1e2ed4..c3f621241ab5 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -2028,7 +2028,8 @@ widths." :group 'frames) (defcustom blink-cursor-delay 0.5 - "Seconds of idle time after which cursor starts to blink." + "Seconds of idle time before the first blink of the cursor. +Values smaller than 0.2 sec are treated as 0.2 sec." :type 'number :group 'cursor) @@ -2115,7 +2116,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 +2154,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)))) diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el index 52765ce6b314..df8f61ff3808 100644 --- a/lisp/gnus/auth-source.el +++ b/lisp/gnus/auth-source.el @@ -423,13 +423,13 @@ with \"[a/b/c] \" if CHOICES is \(?a ?b ?c)." ;; Keychain collection matching any user, host, and protocol ((eq entry 'macos-keychain-generic) (auth-source-backend-parse '(:source (:macos-keychain-generic default)))) - ;; take macos-keychain-internet:XYZ and recurse to get it as MacOS + ;; take macos-keychain-internet:XYZ and recurse to get it as macOS ;; Keychain "XYZ" matching any user, host, and protocol ((and (stringp entry) (string-match "^macos-keychain-internet:\\(.+\\)" entry)) (auth-source-backend-parse `(:source (:macos-keychain-internet ,(match-string 1 entry))))) - ;; take macos-keychain-generic:XYZ and recurse to get it as MacOS + ;; take macos-keychain-generic:XYZ and recurse to get it as macOS ;; Keychain "XYZ" matching any user, host, and protocol ((and (stringp entry) (string-match "^macos-keychain-generic:\\(.+\\)" entry)) @@ -458,7 +458,7 @@ with \"[a/b/c] \" if CHOICES is \(?a ?b ?c)." :search-function #'auth-source-netrc-search :create-function #'auth-source-netrc-create))) - ;; the MacOS Keychain + ;; the macOS Keychain ((and (not (null (plist-get entry :source))) ; the source must not be nil (listp (plist-get entry :source)) ; and it must be a list @@ -1666,7 +1666,7 @@ authentication tokens: &key backend create delete type max &allow-other-keys) - "Search the MacOS Keychain; spec is like `auth-source'. + "Search the macOS Keychain; spec is like `auth-source'. All search keys must match exactly. If you need substring matching, do a wider search and narrow it down yourself. @@ -1688,13 +1688,13 @@ Similarly, :host maps to \"-c HOST\" (the \"creator\" keychain field), :user maps to \"-a USER\", and :port maps to \"-s PORT\". Here's an example that looks for the first item in the default -generic MacOS Keychain: +generic macOS Keychain: (let ((auth-sources \\='(macos-keychain-generic))) (auth-source-search :max 1) Here's another that looks for the first item in the internet -MacOS Keychain collection whose label is `gnus': +macOS Keychain collection whose label is `gnus': (let ((auth-sources \\='(macos-keychain-internet))) (auth-source-search :max 1 :label \"gnus\") @@ -1707,11 +1707,11 @@ entries for git.gnus.org: " ;; TODO (assert (not create) nil - "The MacOS Keychain auth-source backend doesn't support creation yet") + "The macOS Keychain auth-source backend doesn't support creation yet") ;; TODO ;; (macos-keychain-delete-item coll elt) (assert (not delete) nil - "The MacOS Keychain auth-source backend doesn't support deletion yet") + "The macOS Keychain auth-source backend doesn't support deletion yet") (let* ((coll (oref backend source)) (max (or max 5000)) ; sanity check: default to stop at 5K diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 66b1e38da2ef..67e604910ab3 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -7738,7 +7738,7 @@ Calls `describe-variable' or `describe-function'." (let* ((lib (locate-library url)) (file (gnus-replace-in-string (or lib "") "\\.elc" ".el"))) (if (not lib) - (gnus-message 1 "Cannot locale library `%s'." url) + (gnus-message 1 "Cannot locate library `%s'." url) (find-file-read-only file)))) (defcustom gnus-button-man-level 5 diff --git a/lisp/gnus/gnus-kill.el b/lisp/gnus/gnus-kill.el index 059a5cdf27d8..8eacc4680193 100644 --- a/lisp/gnus/gnus-kill.el +++ b/lisp/gnus/gnus-kill.el @@ -118,7 +118,7 @@ the header field or an empty string. If FIELD is an empty string, the entire article body is searched for. REGEXP is a string which is compared with FIELD value. COMMAND is a string representing a valid key sequence in Summary mode or Lisp expression. COMMAND defaults to -'(gnus-summary-mark-as-read nil \"X\"). Make sure that COMMAND is +\(gnus-summary-mark-as-read nil \"X\"). Make sure that COMMAND is executed in the Summary buffer. If the second optional argument ALL is non-nil, the COMMAND is applied to articles which are already marked as read or unread. Articles which are marked are skipped over diff --git a/lisp/gnus/gnus-score.el b/lisp/gnus/gnus-score.el index d3a1139902b9..ef096fe76843 100644 --- a/lisp/gnus/gnus-score.el +++ b/lisp/gnus/gnus-score.el @@ -46,7 +46,7 @@ Say you want to use the single score file score files in the \"/ftp.some-where:/pub/score\" directory. (setq gnus-global-score-files - '(\"/ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE\" + \\='(\"/ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE\" \"/ftp.some-where:/pub/score\"))" :group 'gnus-score-files :type '(repeat file)) diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 3ea63c740347..b6532b3b262d 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -1896,10 +1896,11 @@ If RECURSIVE, search recursively." (defvar shr-map) (autoload 'widget-convert-button "wid-edit") +(defvar widget-keymap) (defun mm-convert-shr-links () (let ((start (point-min)) - end) + end keymap) (while (and start (< start (point-max))) (when (setq start (text-property-not-all start (point-max) 'shr-url nil)) @@ -1907,9 +1908,14 @@ If RECURSIVE, search recursively." (widget-convert-button 'url-link start end :help-echo (get-text-property start 'help-echo) - :keymap shr-map + :keymap (setq keymap (copy-keymap shr-map)) (get-text-property start 'shr-url)) - (put-text-property start end 'local-map nil) + ;; Mask keys that launch `widget-button-click'. + ;; Those bindings are provided by `widget-keymap' + ;; that is a parent of `gnus-article-mode-map'. + (dolist (key (where-is-internal #'widget-button-click widget-keymap)) + (unless (lookup-key keymap key) + (define-key keymap key #'ignore))) (dolist (overlay (overlays-at start)) (overlay-put overlay 'face nil)) (setq start end))))) diff --git a/lisp/gnus/starttls.el b/lisp/gnus/starttls.el index f3ef5e023f97..7c4e3839ce1f 100644 --- a/lisp/gnus/starttls.el +++ b/lisp/gnus/starttls.el @@ -153,7 +153,7 @@ These apply when the `starttls' command is used, i.e. when These apply when GnuTLS is used, i.e. when `starttls-use-gnutls' is non-nil. For example, non-TLS compliant servers may require -'(\"--protocols\" \"ssl3\"). Invoke \"gnutls-cli --help\" to +\(\"--protocols\" \"ssl3\"). Invoke \"gnutls-cli --help\" to find out which parameters are available." :version "22.1" :type '(repeat string) diff --git a/lisp/help-fns.el b/lisp/help-fns.el index 6e8a108b5068..7dfa6700b294 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -50,23 +50,24 @@ to get buffer-local values.") ;;;###autoload (defun describe-function (function) - "Display the full documentation of FUNCTION (a symbol)." + "Display the full documentation of FUNCTION (a symbol). +When called from lisp, FUNCTION may also be a function object." (interactive - (let ((fn (function-called-at-point)) - (enable-recursive-minibuffers t) - val) - (setq val (completing-read (if fn - (format "Describe function (default %s): " fn) - "Describe function: ") - obarray 'fboundp t nil nil - (and fn (symbol-name fn)))) - (list (if (equal val "") - fn (intern val))))) - (or (and function (symbolp function)) - (user-error "You didn't specify a function symbol")) - (or (fboundp function) - (user-error "Symbol's function definition is void: %s" function)) - + (let* ((fn (function-called-at-point)) + (enable-recursive-minibuffers t) + (val (completing-read + (if fn + (format "Describe function (default %s): " fn) + "Describe function: ") + obarray 'fboundp t nil nil + (and fn (symbol-name fn))))) + (unless (equal val "") + (setq fn (intern val))) + (unless (and fn (symbolp fn)) + (user-error "You didn't specify a function symbol")) + (unless (fboundp fn) + (user-error "Symbol's function definition is void: %s" fn)) + (list fn))) ;; We save describe-function-orig-buffer on the help xref stack, so ;; it is restored by the back/forward buttons. 'help-buffer' ;; expects (current-buffer) to be a help buffer when processing @@ -514,7 +515,8 @@ FILE is the file where FUNCTION was probably defined." real-function)) (aliased (or (symbolp def) ;; Advised & aliased function. - (and advised (symbolp real-function)))) + (and advised (symbolp real-function) + (not (eq 'autoload (car-safe def)))))) (real-def (cond (aliased (let ((f real-function)) (while (and (fboundp f) @@ -526,7 +528,8 @@ FILE is the file where FUNCTION was probably defined." (sig-key (if (subrp def) (indirect-function real-def) real-def)) - (file-name (find-lisp-object-file-name function def)) + (file-name (find-lisp-object-file-name function (if aliased 'defun + def))) (pt1 (with-current-buffer (help-buffer) (point))) (beg (if (and (or (byte-code-function-p def) (keymapp def) diff --git a/lisp/help-mode.el b/lisp/help-mode.el index 7b95e5fb04e1..e008698618c7 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")))) diff --git a/lisp/help.el b/lisp/help.el index 061daacfdd38..57f358b9a72b 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -1468,7 +1468,8 @@ the same names as used in the original source code, when possible." (define-obsolete-function-alias 'help-make-usage 'help--make-usage "25.1") (defun help--make-usage-docstring (fn arglist) - (help--docstring-quote (format "%S" (help--make-usage fn arglist)))) + (let ((print-escape-newlines t)) + (help--docstring-quote (format "%S" (help--make-usage fn arglist))))) (provide 'help) diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el index ec14e0b4329e..549010dda034 100644 --- a/lisp/hi-lock.el +++ b/lisp/hi-lock.el @@ -727,7 +727,7 @@ with completion and history." (font-lock-flush))) (defun hi-lock-find-patterns () - "Find patterns in current buffer for hi-lock." + "Add patterns from the current buffer to the list of hi-lock patterns." (interactive) (unless (memq major-mode hi-lock-exclude-modes) (let ((all-patterns nil) diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el index fc309bd62eec..82f3a74919f8 100644 --- a/lisp/htmlfontify.el +++ b/lisp/htmlfontify.el @@ -522,8 +522,8 @@ Some examples:\n (defvar hfy-sheet-assoc 'please-ignore-this-line "An assoc with elements of the form (face-name style-name . style-string):\n -'((default \"default\" . \"{background: black; color: white}\") - (font-lock-string-face \"string\" . \"{color: rgb(64,224,208)}\"))" ) +\((default \"default\" . \"{background: black; color: white}\") + (font-lock-string-face \"string\" . \"{color: rgb(64,224,208)}\"))" ) (defvar hfy-facemap-assoc 'please-ignore-this-line "An assoc of (point . FACE-SYMBOL) or (point . DEFFACE-LIST) diff --git a/lisp/imenu.el b/lisp/imenu.el index 44bae2dd3b45..48257b892db1 100644 --- a/lisp/imenu.el +++ b/lisp/imenu.el @@ -462,12 +462,15 @@ Don't move point." Simple elements in the alist look like (INDEX-NAME . POSITION). POSITION is the buffer position of the item; to go to the item is simply to move point to that position. -POSITION is passed to `imenu-default-goto-function', so it can be a non-number -if that variable has been changed (e.g. Semantic uses overlays for POSITIONs). -Special elements look like (INDEX-NAME POSITION FUNCTION ARGUMENTS...). -To \"go to\" a special element means applying FUNCTION -to INDEX-NAME, POSITION, and the ARGUMENTS. +POSITION is passed to `imenu-default-goto-function', so it can be +a non-number if that variable has been changed (e.g. Semantic +uses overlays for POSITIONs). + +Special elements look like +\(INDEX-NAME POSITION FUNCTION ARGUMENTS...). +To \"go to\" a special element means applying FUNCTION to +INDEX-NAME, POSITION, and the ARGUMENTS. A nested sub-alist element looks like (INDEX-NAME . SUB-ALIST). The function `imenu--subalist-p' tests an element and returns t diff --git a/lisp/info.el b/lisp/info.el index 6426cfcf9ed9..1689af9433e5 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -4236,9 +4236,12 @@ 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.") +;; We deliberately fontify only ‘..’ quoting, and not `..', because +;; the former can be done much more reliably, i.e. without risking +;; false positives. (defvar Info-mode-font-lock-keywords '(("‘\\([^’]*\\)’" (1 'Info-quoted)))) diff --git a/lisp/international/characters.el b/lisp/international/characters.el index 00f68f0fbbf4..ab058a5df525 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -141,10 +141,10 @@ with L, LRE, or LRO Unicode bidi character type.") ;; Chinese characters (Unicode) (modify-category-entry '(#x2E80 . #x312F) ?|) (modify-category-entry '(#x3190 . #x33FF) ?|) -(modify-category-entry '(#x3400 . #x4DBF) ?C) -(modify-category-entry '(#x4E00 . #x9FAF) ?C) -(modify-category-entry '(#x3400 . #x9FAF) ?c) -(modify-category-entry '(#x3400 . #x9FAF) ?|) +(modify-category-entry '(#x3400 . #x4DB5) ?C) +(modify-category-entry '(#x4E00 . #x9FD5) ?C) +(modify-category-entry '(#x3400 . #x9FD5) ?c) +(modify-category-entry '(#x3400 . #x9FD5) ?|) (modify-category-entry '(#xF900 . #xFAFF) ?C) (modify-category-entry '(#xF900 . #xFAFF) ?c) (modify-category-entry '(#xF900 . #xFAFF) ?|) @@ -1235,38 +1235,23 @@ with L, LRE, or LRO Unicode bidi character type.") (#x2B50 . #x2B50) (#x2B55 . #x2B55) (#x2E80 . #x303E) - (#x3040 . #xA4CF) + (#x3040 . #x4DBF) + (#x4E00 . #xA4CF) + (#xA960 . #xA97F) (#xAC00 . #xD7A3) (#xF900 . #xFAFF) + (#xFE10 . #xFE19) (#xFE30 . #xFE6F) (#xFF01 . #xFF60) (#xFFE0 . #xFFE6) (#x16FE0 . #x16FE0) (#x17000 . #x187EC) (#x18800 . #x18AF2) + (#x1B000 . #x1B001) (#x1F18E . #x1F18E) (#x1F191 . #x1F19A) - (#x1F200 . #x1F202) - (#x1F210 . #x1F23B) - (#x1F300 . #x1F320) - (#x1F32D . #x1F335) - (#x1F337 . #x1F37C) - (#x1F37E . #x1F393) - (#x1F3A0 . #x1F3CA) - (#x1F3CF . #x1F3D3) - (#x1F3E0 . #x1F3F0) - (#x1F3F4 . #x1F3F4) - (#x1F3F8 . #x1F3FA) - (#x1F3FB . #x1F3FF) - (#x1F440 . #x1F440) - (#x1F442 . #x1F4FC) - (#x1F4FF . #x1F53D) - (#x1F54B . #x1F54E) - (#x1F550 . #x1F567) - (#x1F57A . #x1F57A) - (#x1F595 . #x1F596) - (#x1F5A4 . #x1F5A4) - (#x1F5FB . #x1F5FF) + (#x1F200 . #x1F2FF) + (#x1F300 . #x1F5FF) (#x1F600 . #x1F64F) (#x1F680 . #x1F6C5) (#x1F6CC . #x1F6CC) diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el index 90905a2ade9a..659f03a2a670 100644 --- a/lisp/international/fontset.el +++ b/lisp/international/fontset.el @@ -812,10 +812,11 @@ (#x1F700 . #x1F77F) ;; Alchemical Symbols (#x1F780 . #x1F7FF) ;; Geometric Shapes Extended (#x1F800 . #x1F8FF))) ;; Supplemental Arrows-C - (set-fontset-font "fontset-default" symbol-subgroup "Symbola" nil 'prepend)) + (set-fontset-font "fontset-default" symbol-subgroup + '("Symbola" . "iso10646-1") nil 'prepend)) ;; Box Drawing and Block Elements (set-fontset-font "fontset-default" '(#x2500 . #x259F) - "FreeMono" nil 'prepend) + '("FreeMono" . "iso10646-1") nil 'prepend) ;; Since standard-fontset-spec on X uses fixed-medium font, which ;; gets mapped to a iso8859-1 variant, we would like to prefer its @@ -1259,7 +1260,7 @@ to map charsets to scripts.") &optional _style-variant _noerror) "Create a fontset from fontset specification string FONTSET-SPEC. FONTSET-SPEC is a string of the format: - FONTSET-NAME,SCRIPT-NAME0:FONT-NAME0,SCRIPT-NAME1:FONT-NAME1, ... + FONTSET-NAME[,SCRIPT-NAME0:FONT-NAME0,SCRIPT-NAME1:FONT-NAME1] ... Any number of SPACE, TAB, and NEWLINE can be put before and after commas. When a frame uses the fontset as the `font' parameter, the frame's diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index dbf12247fc69..1ec7456c9e1d 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -72,7 +72,7 @@ (let ((map (make-sparse-keymap "Set Coding System"))) (bindings--define-key map [set-buffer-process-coding-system] '(menu-item "For I/O with Subprocess" set-buffer-process-coding-system - :visible (fboundp 'start-process) + :visible (fboundp 'make-process) :enable (get-buffer-process (current-buffer)) :help "How to en/decode I/O from/to subprocess connected to this buffer")) (bindings--define-key map [set-next-selection-coding-system] @@ -2704,10 +2704,12 @@ See also `locale-charset-language-names', `locale-language-names', ;; terminal-coding-system with the ANSI or console codepage. (when (and (eq system-type 'windows-nt) (boundp 'w32-ansi-code-page)) - (let* ((code-page-coding - (intern (format "cp%d" (if noninteractive - (w32-get-console-codepage) - w32-ansi-code-page)))) + (let* ((ansi-code-page-coding + (intern (format "cp%d" w32-ansi-code-page))) + (code-page-coding + (if noninteractive + (intern (format "cp%d" (w32-get-console-codepage))) + ansi-code-page-coding)) (output-coding (if noninteractive (intern (format "cp%d" (w32-get-console-output-codepage))) @@ -2717,13 +2719,13 @@ See also `locale-charset-language-names', `locale-language-names', (unless frame (setq locale-coding-system code-page-coding)) (set-keyboard-coding-system code-page-coding frame) (set-terminal-coding-system output-coding frame) - (setq default-file-name-coding-system code-page-coding)))) + (setq default-file-name-coding-system ansi-code-page-coding)))) (when (eq system-type 'darwin) ;; On Darwin, file names are always encoded in utf-8, no matter ;; the locale. (setq default-file-name-coding-system 'utf-8) - ;; Mac OS X's Terminal.app by default uses utf-8 regardless of + ;; macOS's Terminal.app by default uses utf-8 regardless of ;; the locale. (when (and (null window-system) (equal (getenv "TERM_PROGRAM" frame) "Apple_Terminal")) @@ -2733,8 +2735,8 @@ See also `locale-charset-language-names', `locale-language-names', ;; Default to A4 paper if we're not in a C, POSIX or US locale. ;; (See comments in Flocale_info.) (unless frame - (let ((locale locale) - (paper (locale-info 'paper))) + (let ((paper (locale-info 'paper)) + locale) (if paper ;; This will always be null at the time of writing. (cond diff --git a/lisp/international/ucs-normalize.el b/lisp/international/ucs-normalize.el index 74978ce38a37..29cd042eee9d 100644 --- a/lisp/international/ucs-normalize.el +++ b/lisp/international/ucs-normalize.el @@ -227,7 +227,7 @@ table)) (defvar ucs-normalize-decomposition-pair-to-primary-composite nil - "Hashtable of decomposed pair to primary composite. + "Hash table of decomposed pair to primary composite. Note that Hangul are excluded.") (setq ucs-normalize-decomposition-pair-to-primary-composite (ucs-normalize-make-hash-table-from-alist @@ -624,7 +624,7 @@ COMPOSITION-PREDICATE will be used to compose region." ;;; coding-system definition (define-coding-system 'utf-8-hfs - "UTF-8 based coding system for MacOS HFS file names. + "UTF-8 based coding system for macOS HFS file names. The singleton characters in HFS normalization exclusion will not be decomposed." :coding-type 'utf-8 diff --git a/lisp/isearch.el b/lisp/isearch.el index 48354d39d48f..ff7793080517 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -222,7 +222,7 @@ It is nil if none yet.") Default value, nil, means edit the string instead." :type 'boolean) -(autoload 'character-fold-to-regexp "character-fold") +(autoload 'char-fold-to-regexp "char-fold") (defcustom search-default-mode nil "Default mode to use when starting isearch. @@ -236,7 +236,7 @@ isearch). If a function, use that function as an `isearch-regexp-function'. Example functions (and the keys to toggle them during isearch) are `word-search-regexp' \(`\\[isearch-toggle-word]'), `isearch-symbol-regexp' -\(`\\[isearch-toggle-symbol]'), and `character-fold-to-regexp' \(`\\[isearch-toggle-character-fold]')." +\(`\\[isearch-toggle-symbol]'), and `char-fold-to-regexp' \(`\\[isearch-toggle-char-fold]')." ;; :type is set below by `isearch-define-mode-toggle'. :type '(choice (const :tag "Literal search" nil) (const :tag "Regexp search" t) @@ -510,6 +510,7 @@ This is like `describe-bindings', but displays only Isearch keys." ;; People expect to be able to paste with the mouse. (define-key map [mouse-2] #'isearch-mouse-2) (define-key map [down-mouse-2] nil) + (define-key map [xterm-paste] #'isearch-xterm-paste) ;; Some bindings you may want to put in your isearch-mode-hook. ;; Suggest some alternates... @@ -561,7 +562,7 @@ The symbol property `isearch-message-prefix' put on this function specifies the prefix string displayed in the search message. This variable is set and changed during isearch. To change the -default behaviour used for searches, see `search-default-mode' +default behavior used for searches, see `search-default-mode' instead.") ;; We still support setting this to t for backwards compatibility. (define-obsolete-variable-alias 'isearch-word @@ -718,7 +719,7 @@ Type \\[isearch-toggle-invisible] to toggle search in invisible text. Type \\[isearch-toggle-regexp] to toggle regular-expression mode. Type \\[isearch-toggle-word] to toggle word mode. Type \\[isearch-toggle-symbol] to toggle symbol mode. -Type \\[isearch-toggle-character-fold] to toggle character folding. +Type \\[isearch-toggle-char-fold] to toggle character folding. Type \\[isearch-toggle-lax-whitespace] to toggle whitespace matching. In incremental searches, a space or spaces normally matches any whitespace @@ -837,10 +838,10 @@ See the command `isearch-forward-symbol' for more information." (buffer-substring-no-properties (car bounds) (cdr bounds)))) (t (setq isearch-error "No symbol at point") + (isearch-push-state) (isearch-update))))) -(defvar cursor-sensor-inhibit) ;; isearch-mode only sets up incremental search for the minor mode. ;; All the work is done by the isearch-mode commands. @@ -973,8 +974,6 @@ The last thing is to trigger a new round of lazy highlighting." (setq cursor-sensor-inhibit (delq 'isearch cursor-sensor-inhibit)))) (setq isearch--current-buffer (current-buffer)) (make-local-variable 'cursor-sensor-inhibit) - (unless (boundp 'cursor-sensor-inhibit) - (setq cursor-sensor-inhibit nil)) ;; Suspend things like cursor-intangible during Isearch so we can search ;; even within intangible text. (push 'isearch cursor-sensor-inhibit)) @@ -1013,7 +1012,8 @@ The last thing is to trigger a new round of lazy highlighting." ;; pos-visible-in-window-group-p returns non-nil, but ;; the X coordinate it returns is 1 pixel beyond ;; the last visible one. - (>= (car visible-p) (window-body-width nil t))) + (>= (car visible-p) + (* (window-max-chars-per-line) (frame-char-width)))) (set-window-hscroll (selected-window) current-scroll)))) (if isearch-other-end (if (< isearch-other-end (point)) ; isearch-forward? @@ -1050,9 +1050,10 @@ NOPUSH is t and EDIT is t." (remove-hook 'mouse-leave-buffer-hook 'isearch-done) (remove-hook 'kbd-macro-termination-hook 'isearch-done) (setq isearch-lazy-highlight-start nil) - (with-current-buffer isearch--current-buffer - (setq isearch--current-buffer nil) - (setq cursor-sensor-inhibit (delq 'isearch cursor-sensor-inhibit))) + (when (buffer-live-p isearch--current-buffer) + (with-current-buffer isearch--current-buffer + (setq isearch--current-buffer nil) + (setq cursor-sensor-inhibit (delq 'isearch cursor-sensor-inhibit)))) ;; Called by all commands that terminate isearch-mode. ;; If NOPUSH is non-nil, we don't push the string on the search ring. @@ -1548,9 +1549,9 @@ The command then executes BODY and updates the isearch prompt." Turning on word search turns off regexp mode.") (isearch-define-mode-toggle symbol "_" isearch-symbol-regexp "\ Turning on symbol search turns off regexp mode.") -(isearch-define-mode-toggle character-fold "'" character-fold-to-regexp "\ +(isearch-define-mode-toggle char-fold "'" char-fold-to-regexp "\ Turning on character-folding turns off regexp mode.") -(put 'character-fold-to-regexp 'isearch-message-prefix "char-fold ") +(put 'char-fold-to-regexp 'isearch-message-prefix "char-fold ") (isearch-define-mode-toggle regexp "r" nil nil (setq isearch-regexp (not isearch-regexp)) @@ -1625,10 +1626,17 @@ Used in `word-search-forward', `word-search-backward', "Search backward from point for STRING, ignoring differences in punctuation. Set point to the beginning of the occurrence found, and return point. An optional second argument bounds the search; it is a buffer position. -The match found must not extend before that position. + The match found must not begin before that position. A value of nil + means search to the beginning of the accessible portion of the buffer. Optional third argument, if t, means if fail just return nil (no error). - If not nil and not t, move to limit of search and return nil. -Optional fourth argument is repeat count--search for successive occurrences. + If not nil and not t, position at limit of search and return nil. +Optional fourth argument COUNT, if a positive number, means to search + for COUNT successive occurrences. If COUNT is negative, search + forward, instead of backward, for -COUNT occurrences. A value of + nil means the same as 1. +With COUNT positive, the match found is the COUNTth to last one (or + last, if COUNT is 1 or nil) in the buffer located entirely before + the origin of the search; correspondingly with COUNT negative. Relies on the function `word-search-regexp' to convert a sequence of words in STRING to a regexp used to search words without regard @@ -1642,10 +1650,17 @@ has no effect on it." "Search forward from point for STRING, ignoring differences in punctuation. Set point to the end of the occurrence found, and return point. An optional second argument bounds the search; it is a buffer position. -The match found must not extend after that position. + The match found must not end after that position. A value of nil + means search to the end of the accessible portion of the buffer. Optional third argument, if t, means if fail just return nil (no error). If not nil and not t, move to limit of search and return nil. -Optional fourth argument is repeat count--search for successive occurrences. +Optional fourth argument COUNT, if a positive number, means to search + for COUNT successive occurrences. If COUNT is negative, search + backward, instead of forward, for -COUNT occurrences. A value of + nil means the same as 1. +With COUNT positive, the match found is the COUNTth one (or first, + if COUNT is 1 or nil) in the buffer located entirely after the + origin of the search; correspondingly with COUNT negative. Relies on the function `word-search-regexp' to convert a sequence of words in STRING to a regexp used to search words without regard @@ -1663,10 +1678,17 @@ Unlike `word-search-backward', the end of STRING need not match a word boundary, unless STRING ends in whitespace. An optional second argument bounds the search; it is a buffer position. -The match found must not extend before that position. + The match found must not begin before that position. A value of nil + means search to the beginning of the accessible portion of the buffer. Optional third argument, if t, means if fail just return nil (no error). - If not nil and not t, move to limit of search and return nil. -Optional fourth argument is repeat count--search for successive occurrences. + If not nil and not t, position at limit of search and return nil. +Optional fourth argument COUNT, if a positive number, means to search + for COUNT successive occurrences. If COUNT is negative, search + forward, instead of backward, for -COUNT occurrences. A value of + nil means the same as 1. +With COUNT positive, the match found is the COUNTth to last one (or + last, if COUNT is 1 or nil) in the buffer located entirely before + the origin of the search; correspondingly with COUNT negative. Relies on the function `word-search-regexp' to convert a sequence of words in STRING to a regexp used to search words without regard @@ -1684,10 +1706,17 @@ Unlike `word-search-forward', the end of STRING need not match a word boundary, unless STRING ends in whitespace. An optional second argument bounds the search; it is a buffer position. -The match found must not extend after that position. + The match found must not end after that position. A value of nil + means search to the end of the accessible portion of the buffer. Optional third argument, if t, means if fail just return nil (no error). If not nil and not t, move to limit of search and return nil. -Optional fourth argument is repeat count--search for successive occurrences. +Optional fourth argument COUNT, if a positive number, means to search + for COUNT successive occurrences. If COUNT is negative, search + backward, instead of forward, for -COUNT occurrences. A value of + nil means the same as 1. +With COUNT positive, the match found is the COUNTth one (or first, + if COUNT is 1 or nil) in the buffer located entirely after the + origin of the search; correspondingly with COUNT negative. Relies on the function `word-search-regexp' to convert a sequence of words in STRING to a regexp used to search words without regard @@ -2003,6 +2032,13 @@ is bound to outside of Isearch." (when (functionp binding) (call-interactively binding))))) +(declare-function xterm--pasted-text "term/xterm" ()) + +(defun isearch-xterm-paste () + "Pull terminal paste into search string." + (interactive) + (isearch-yank-string (xterm--pasted-text))) + (defun isearch-yank-internal (jumpform) "Pull the text from point to the point reached by JUMPFORM. JUMPFORM is a lambda expression that takes no arguments and returns @@ -2665,8 +2701,9 @@ the word mode." "Non-default value overrides the behavior of `isearch-search-fun-default'. This variable's value should be a function, which will be called with no arguments, and should return a function that takes three -arguments: STRING, BOUND, and NOERROR. See `re-search-forward' -for the meaning of BOUND and NOERROR arguments. +arguments: STRING, BOUND, and NOERROR. STRING is the string to +be searched for. See `re-search-forward' for the meaning of +BOUND and NOERROR arguments. This returned function will be used by `isearch-search-string' to search for the first occurrence of STRING.") diff --git a/lisp/language/ind-util.el b/lisp/language/ind-util.el index deea48933c84..f7424ecd84f5 100644 --- a/lisp/language/ind-util.el +++ b/lisp/language/ind-util.el @@ -39,7 +39,7 @@ (eval-and-compile (defun indian-regexp-of-hashtbl-keys (hashtbl) - "Returns the regular expression of hashtable keys." + "Return the regular expression of hash table keys." (let (keys) (maphash (lambda (key val) (push key keys)) hashtbl) (regexp-opt keys))) diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 7a70aa124115..8a1d65248c69 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -3,7 +3,7 @@ ;;; Code: -;;;### (autoloads nil "5x5" "play/5x5.el" (22230 48822 858219 0)) +;;;### (autoloads nil "5x5" "play/5x5.el" (22387 39328 255705 281000)) ;;; Generated autoloads from play/5x5.el (autoload '5x5 "5x5" "\ @@ -65,8 +65,8 @@ should return a grid vector array that is the new solution. ;;;*** -;;;### (autoloads nil "ada-mode" "progmodes/ada-mode.el" (22266 10298 -;;;;;; 442370 0)) +;;;### (autoloads nil "ada-mode" "progmodes/ada-mode.el" (22387 39328 +;;;;;; 275705 210000)) ;;; Generated autoloads from progmodes/ada-mode.el (autoload 'ada-add-extensions "ada-mode" "\ @@ -85,8 +85,8 @@ Ada mode is the major mode for editing Ada code. ;;;*** -;;;### (autoloads nil "ada-stmt" "progmodes/ada-stmt.el" (22230 48822 -;;;;;; 865219 0)) +;;;### (autoloads nil "ada-stmt" "progmodes/ada-stmt.el" (22387 39328 +;;;;;; 277705 202000)) ;;; Generated autoloads from progmodes/ada-stmt.el (autoload 'ada-header "ada-stmt" "\ @@ -96,8 +96,8 @@ Insert a descriptive header at the top of the file. ;;;*** -;;;### (autoloads nil "ada-xref" "progmodes/ada-xref.el" (22230 48822 -;;;;;; 865219 0)) +;;;### (autoloads nil "ada-xref" "progmodes/ada-xref.el" (22387 39328 +;;;;;; 278705 199000)) ;;; Generated autoloads from progmodes/ada-xref.el (autoload 'ada-find-file "ada-xref" "\ @@ -108,8 +108,8 @@ Completion is available. ;;;*** -;;;### (autoloads nil "add-log" "vc/add-log.el" (22290 3781 435180 -;;;;;; 179000)) +;;;### (autoloads nil "add-log" "vc/add-log.el" (22387 39328 622703 +;;;;;; 971000)) ;;; Generated autoloads from vc/add-log.el (put 'change-log-default-name 'safe-local-variable 'string-or-null-p) @@ -238,8 +238,8 @@ old-style time formats for entries are supported. ;;;*** -;;;### (autoloads nil "advice" "emacs-lisp/advice.el" (22230 48822 -;;;;;; 683220 0)) +;;;### (autoloads nil "advice" "emacs-lisp/advice.el" (22387 39327 +;;;;;; 270708 798000)) ;;; Generated autoloads from emacs-lisp/advice.el (defvar ad-redefinition-action 'warn "\ @@ -374,7 +374,7 @@ usage: (defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] FLAG...) ;;;*** -;;;### (autoloads nil "align" "align.el" (22290 3771 143246 695000)) +;;;### (autoloads nil "align" "align.el" (22387 39326 533711 429000)) ;;; Generated autoloads from align.el (autoload 'align "align" "\ @@ -472,12 +472,14 @@ Remove any highlighting that was added by `align-highlight-rule'. (autoload 'align-newline-and-indent "align" "\ A replacement function for `newline-and-indent', aligning as it goes. +The alignment is done by calling `align' on the region that was +indented. \(fn)" t nil) ;;;*** -;;;### (autoloads nil "allout" "allout.el" (22230 48822 636220 0)) +;;;### (autoloads nil "allout" "allout.el" (22387 39326 536711 418000)) ;;; Generated autoloads from allout.el (push (purecopy '(allout 2 3)) package--builtin-versions) @@ -837,8 +839,8 @@ for details on preparing Emacs for automatic allout activation. ;;;*** -;;;### (autoloads nil "allout-widgets" "allout-widgets.el" (22230 -;;;;;; 48822 635220 0)) +;;;### (autoloads nil "allout-widgets" "allout-widgets.el" (22387 +;;;;;; 39326 534711 425000)) ;;; Generated autoloads from allout-widgets.el (push (purecopy '(allout-widgets 1 0)) package--builtin-versions) @@ -896,8 +898,8 @@ outline hot-spot navigation (see `allout-mode'). ;;;*** -;;;### (autoloads nil "ange-ftp" "net/ange-ftp.el" (22230 48822 805219 -;;;;;; 0)) +;;;### (autoloads nil "ange-ftp" "net/ange-ftp.el" (22578 62356 730212 +;;;;;; 84000)) ;;; Generated autoloads from net/ange-ftp.el (defalias 'ange-ftp-re-read-dir 'ange-ftp-reread-dir) @@ -918,8 +920,8 @@ directory, so that Emacs will know its current contents. ;;;*** -;;;### (autoloads nil "animate" "play/animate.el" (22230 48822 858219 -;;;;;; 0)) +;;;### (autoloads nil "animate" "play/animate.el" (22387 39328 255705 +;;;;;; 281000)) ;;; Generated autoloads from play/animate.el (autoload 'animate-string "animate" "\ @@ -951,8 +953,8 @@ the buffer *Birthday-Present-for-Name*. ;;;*** -;;;### (autoloads nil "ansi-color" "ansi-color.el" (22230 48822 636220 -;;;;;; 0)) +;;;### (autoloads nil "ansi-color" "ansi-color.el" (22387 39326 538711 +;;;;;; 411000)) ;;; Generated autoloads from ansi-color.el (push (purecopy '(ansi-color 3 4 2)) package--builtin-versions) @@ -978,8 +980,8 @@ This is a good function to put in `comint-output-filter-functions'. ;;;*** -;;;### (autoloads nil "antlr-mode" "progmodes/antlr-mode.el" (22230 -;;;;;; 48822 865219 0)) +;;;### (autoloads nil "antlr-mode" "progmodes/antlr-mode.el" (22387 +;;;;;; 39328 279705 195000)) ;;; Generated autoloads from progmodes/antlr-mode.el (push (purecopy '(antlr-mode 2 2 3)) package--builtin-versions) @@ -1015,8 +1017,8 @@ Used in `antlr-mode'. Also a useful function in `java-mode-hook'. ;;;*** -;;;### (autoloads nil "appt" "calendar/appt.el" (22290 3771 146246 -;;;;;; 676000)) +;;;### (autoloads nil "appt" "calendar/appt.el" (22387 39327 74709 +;;;;;; 497000)) ;;; Generated autoloads from calendar/appt.el (autoload 'appt-add "appt" "\ @@ -1037,8 +1039,8 @@ ARG is positive, otherwise off. ;;;*** -;;;### (autoloads nil "apropos" "apropos.el" (22266 10298 385370 -;;;;;; 0)) +;;;### (autoloads nil "apropos" "apropos.el" (22387 39326 539711 +;;;;;; 407000)) ;;; Generated autoloads from apropos.el (autoload 'apropos-read-pattern "apropos" "\ @@ -1154,8 +1156,8 @@ Returns list of symbols and documentation found. ;;;*** -;;;### (autoloads nil "arc-mode" "arc-mode.el" (22230 48822 637220 -;;;;;; 0)) +;;;### (autoloads nil "arc-mode" "arc-mode.el" (22578 62356 712212 +;;;;;; 180000)) ;;; Generated autoloads from arc-mode.el (autoload 'archive-mode "arc-mode" "\ @@ -1175,7 +1177,7 @@ archive. ;;;*** -;;;### (autoloads nil "array" "array.el" (22230 48822 637220 0)) +;;;### (autoloads nil "array" "array.el" (22387 39326 541711 400000)) ;;; Generated autoloads from array.el (autoload 'array-mode "array" "\ @@ -1246,8 +1248,8 @@ Entering array mode calls the function `array-mode-hook'. ;;;*** -;;;### (autoloads nil "artist" "textmodes/artist.el" (22230 48822 -;;;;;; 914219 0)) +;;;### (autoloads nil "artist" "textmodes/artist.el" (22387 39328 +;;;;;; 519704 339000)) ;;; Generated autoloads from textmodes/artist.el (push (purecopy '(artist 1 2 6)) package--builtin-versions) @@ -1453,8 +1455,8 @@ Keymap summary ;;;*** -;;;### (autoloads nil "asm-mode" "progmodes/asm-mode.el" (22230 48822 -;;;;;; 866219 0)) +;;;### (autoloads nil "asm-mode" "progmodes/asm-mode.el" (22387 39328 +;;;;;; 280705 192000)) ;;; Generated autoloads from progmodes/asm-mode.el (autoload 'asm-mode "asm-mode" "\ @@ -1481,8 +1483,8 @@ Special commands: ;;;*** -;;;### (autoloads nil "auth-source" "gnus/auth-source.el" (22290 -;;;;;; 3771 182246 444000)) +;;;### (autoloads nil "auth-source" "gnus/auth-source.el" (22578 +;;;;;; 62356 719212 143000)) ;;; Generated autoloads from gnus/auth-source.el (defvar auth-source-cache-expiry 7200 "\ @@ -1494,13 +1496,14 @@ let-binding.") ;;;*** -;;;### (autoloads nil "autoarg" "autoarg.el" (22230 48822 637220 -;;;;;; 0)) +;;;### (autoloads nil "autoarg" "autoarg.el" (22387 39326 542711 +;;;;;; 397000)) ;;; Generated autoloads from autoarg.el (defvar autoarg-mode nil "\ Non-nil if Autoarg mode is enabled. -See the command `autoarg-mode' for a description of this minor mode.") +See the `autoarg-mode' command +for a description of this minor mode.") (custom-autoload 'autoarg-mode "autoarg" nil) @@ -1532,7 +1535,8 @@ then invokes the normal binding of \\[autoarg-terminate]. (defvar autoarg-kp-mode nil "\ Non-nil if Autoarg-Kp mode is enabled. -See the command `autoarg-kp-mode' for a description of this minor mode. +See the `autoarg-kp-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `autoarg-kp-mode'.") @@ -1555,8 +1559,8 @@ This is similar to `autoarg-mode' but rebinds the keypad keys ;;;*** -;;;### (autoloads nil "autoconf" "progmodes/autoconf.el" (22230 48822 -;;;;;; 866219 0)) +;;;### (autoloads nil "autoconf" "progmodes/autoconf.el" (22387 39328 +;;;;;; 280705 192000)) ;;; Generated autoloads from progmodes/autoconf.el (autoload 'autoconf-mode "autoconf" "\ @@ -1566,8 +1570,8 @@ Major mode for editing Autoconf configure.ac files. ;;;*** -;;;### (autoloads nil "autoinsert" "autoinsert.el" (22230 48822 637220 -;;;;;; 0)) +;;;### (autoloads nil "autoinsert" "autoinsert.el" (22387 39326 542711 +;;;;;; 397000)) ;;; Generated autoloads from autoinsert.el (autoload 'auto-insert "autoinsert" "\ @@ -1585,7 +1589,8 @@ or if CONDITION had no actions, after all other CONDITIONs. (defvar auto-insert-mode nil "\ Non-nil if Auto-Insert mode is enabled. -See the command `auto-insert-mode' for a description of this minor mode. +See the `auto-insert-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `auto-insert-mode'.") @@ -1605,8 +1610,8 @@ insert a template for the file depending on the mode of the buffer. ;;;*** -;;;### (autoloads nil "autoload" "emacs-lisp/autoload.el" (22290 -;;;;;; 3771 155246 618000)) +;;;### (autoloads nil "autoload" "emacs-lisp/autoload.el" (22578 +;;;;;; 62356 716212 159000)) ;;; Generated autoloads from emacs-lisp/autoload.el (put 'generated-autoload-file 'safe-local-variable 'stringp) @@ -1657,8 +1662,8 @@ should be non-nil). ;;;*** -;;;### (autoloads nil "autorevert" "autorevert.el" (22298 5692 409287 -;;;;;; 963000)) +;;;### (autoloads nil "autorevert" "autorevert.el" (22387 39326 543711 +;;;;;; 393000)) ;;; Generated autoloads from autorevert.el (autoload 'auto-revert-mode "autorevert" "\ @@ -1715,7 +1720,8 @@ This function is designed to be added to hooks, for example: (defvar global-auto-revert-mode nil "\ Non-nil if Global Auto-Revert mode is enabled. -See the command `global-auto-revert-mode' for a description of this minor mode. +See the `global-auto-revert-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `global-auto-revert-mode'.") @@ -1746,7 +1752,7 @@ specifies in the mode line. ;;;*** -;;;### (autoloads nil "avoid" "avoid.el" (22230 48822 638220 0)) +;;;### (autoloads nil "avoid" "avoid.el" (22387 39326 543711 393000)) ;;; Generated autoloads from avoid.el (defvar mouse-avoidance-mode nil "\ @@ -1784,8 +1790,8 @@ definition of \"random distance\".) ;;;*** -;;;### (autoloads nil "bat-mode" "progmodes/bat-mode.el" (22230 48822 -;;;;;; 866219 0)) +;;;### (autoloads nil "bat-mode" "progmodes/bat-mode.el" (22387 39328 +;;;;;; 281705 188000)) ;;; Generated autoloads from progmodes/bat-mode.el (add-to-list 'auto-mode-alist '("\\.\\(bat\\|cmd\\)\\'" . bat-mode)) @@ -1803,8 +1809,8 @@ Run script using `bat-run' and `bat-run-args'. ;;;*** -;;;### (autoloads nil "battery" "battery.el" (22261 18214 489021 -;;;;;; 0)) +;;;### (autoloads nil "battery" "battery.el" (22578 62356 712212 +;;;;;; 180000)) ;;; Generated autoloads from battery.el (put 'battery-mode-line-string 'risky-local-variable t) @@ -1817,7 +1823,8 @@ The text being displayed in the echo area is controlled by the variables (defvar display-battery-mode nil "\ Non-nil if Display-Battery mode is enabled. -See the command `display-battery-mode' for a description of this minor mode. +See the `display-battery-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `display-battery-mode'.") @@ -1839,8 +1846,8 @@ seconds. ;;;*** -;;;### (autoloads nil "benchmark" "emacs-lisp/benchmark.el" (22230 -;;;;;; 48822 683220 0)) +;;;### (autoloads nil "benchmark" "emacs-lisp/benchmark.el" (22387 +;;;;;; 39327 272708 790000)) ;;; Generated autoloads from emacs-lisp/benchmark.el (autoload 'benchmark-run "benchmark" "\ @@ -1876,8 +1883,8 @@ For non-interactive use see also `benchmark-run' and ;;;*** -;;;### (autoloads nil "bibtex" "textmodes/bibtex.el" (22230 48822 -;;;;;; 916218 0)) +;;;### (autoloads nil "bibtex" "textmodes/bibtex.el" (22387 39328 +;;;;;; 529704 303000)) ;;; Generated autoloads from textmodes/bibtex.el (autoload 'bibtex-initialize "bibtex" "\ @@ -1969,7 +1976,7 @@ A prefix arg negates the value of `bibtex-search-entry-globally'. ;;;*** ;;;### (autoloads nil "bibtex-style" "textmodes/bibtex-style.el" -;;;;;; (22230 48822 914219 0)) +;;;;;; (22387 39328 527704 310000)) ;;; Generated autoloads from textmodes/bibtex-style.el (autoload 'bibtex-style-mode "bibtex-style" "\ @@ -1979,8 +1986,8 @@ Major mode for editing BibTeX style files. ;;;*** -;;;### (autoloads nil "binhex" "mail/binhex.el" (22230 48822 787219 -;;;;;; 0)) +;;;### (autoloads nil "binhex" "mail/binhex.el" (22387 39327 899706 +;;;;;; 552000)) ;;; Generated autoloads from mail/binhex.el (defconst binhex-begin-line "^:...............................................................$" "\ @@ -2004,8 +2011,8 @@ Binhex decode region between START and END. ;;;*** -;;;### (autoloads nil "blackbox" "play/blackbox.el" (22230 48822 -;;;;;; 858219 0)) +;;;### (autoloads nil "blackbox" "play/blackbox.el" (22387 39328 +;;;;;; 256705 277000)) ;;; Generated autoloads from play/blackbox.el (autoload 'blackbox "blackbox" "\ @@ -2124,8 +2131,8 @@ a reflection. ;;;*** -;;;### (autoloads nil "bookmark" "bookmark.el" (22230 48822 638220 -;;;;;; 0)) +;;;### (autoloads nil "bookmark" "bookmark.el" (22387 39326 545711 +;;;;;; 386000)) ;;; Generated autoloads from bookmark.el (define-key ctl-x-r-map "b" 'bookmark-jump) (define-key ctl-x-r-map "m" 'bookmark-set) @@ -2316,9 +2323,9 @@ while loading. If you load a file that doesn't contain a proper bookmark alist, you will corrupt Emacs's bookmark list. Generally, you should only load in files that were created with the bookmark functions in the first -place. Your own personal bookmark file, `~/.emacs.bmk', is -maintained automatically by Emacs; you shouldn't need to load it -explicitly. +place. Your own personal bookmark file, specified by the variable +`bookmark-default-file', is maintained automatically by Emacs; you +shouldn't need to load it explicitly. If you load a file containing bookmarks with the same names as bookmarks already present in your Emacs, the new bookmarks will get @@ -2349,8 +2356,8 @@ Incremental search of bookmarks, hiding the non-matches as we go. ;;;*** -;;;### (autoloads nil "browse-url" "net/browse-url.el" (22230 48822 -;;;;;; 806219 0)) +;;;### (autoloads nil "browse-url" "net/browse-url.el" (22578 62356 +;;;;;; 730212 84000)) ;;; Generated autoloads from net/browse-url.el (defvar browse-url-browser-function 'browse-url-default-browser "\ @@ -2698,7 +2705,7 @@ from `browse-url-elinks-wrapper'. ;;;*** -;;;### (autoloads nil "bs" "bs.el" (22230 48822 639220 0)) +;;;### (autoloads nil "bs" "bs.el" (22387 39326 546711 382000)) ;;; Generated autoloads from bs.el (push (purecopy '(bs 1 17)) package--builtin-versions) @@ -2739,8 +2746,8 @@ name of buffer configuration. ;;;*** -;;;### (autoloads nil "bubbles" "play/bubbles.el" (22230 48822 859219 -;;;;;; 0)) +;;;### (autoloads nil "bubbles" "play/bubbles.el" (22387 39328 256705 +;;;;;; 277000)) ;;; Generated autoloads from play/bubbles.el (autoload 'bubbles "bubbles" "\ @@ -2762,7 +2769,7 @@ columns on its right towards the left. ;;;*** ;;;### (autoloads nil "bug-reference" "progmodes/bug-reference.el" -;;;;;; (22230 48822 866219 0)) +;;;;;; (22387 39328 281705 188000)) ;;; Generated autoloads from progmodes/bug-reference.el (put 'bug-reference-url-format 'safe-local-variable (lambda (s) (or (stringp s) (and (symbolp s) (get s 'bug-reference-url-format))))) @@ -2782,8 +2789,8 @@ Like `bug-reference-mode', but only buttonize in comments and strings. ;;;*** -;;;### (autoloads nil "bytecomp" "emacs-lisp/bytecomp.el" (22290 -;;;;;; 3771 157246 605000)) +;;;### (autoloads nil "bytecomp" "emacs-lisp/bytecomp.el" (22387 +;;;;;; 39327 276708 776000)) ;;; Generated autoloads from emacs-lisp/bytecomp.el (put 'byte-compile-dynamic 'safe-local-variable 'booleanp) (put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp) @@ -2903,16 +2910,16 @@ and corresponding effects. ;;;*** -;;;### (autoloads nil "cal-china" "calendar/cal-china.el" (22230 -;;;;;; 48822 649220 0)) +;;;### (autoloads nil "cal-china" "calendar/cal-china.el" (22387 +;;;;;; 39327 75709 494000)) ;;; Generated autoloads from calendar/cal-china.el (put 'calendar-chinese-time-zone 'risky-local-variable t) ;;;*** -;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (22230 48822 -;;;;;; 650220 0)) +;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (22387 39327 +;;;;;; 77709 487000)) ;;; Generated autoloads from calendar/cal-dst.el (put 'calendar-daylight-savings-starts 'risky-local-variable t) @@ -2923,8 +2930,8 @@ and corresponding effects. ;;;*** -;;;### (autoloads nil "cal-hebrew" "calendar/cal-hebrew.el" (22290 -;;;;;; 3771 147246 670000)) +;;;### (autoloads nil "cal-hebrew" "calendar/cal-hebrew.el" (22387 +;;;;;; 39327 78709 483000)) ;;; Generated autoloads from calendar/cal-hebrew.el (autoload 'calendar-hebrew-list-yahrzeits "cal-hebrew" "\ @@ -2936,7 +2943,7 @@ from the cursor position. ;;;*** -;;;### (autoloads nil "calc" "calc/calc.el" (22230 48822 647220 0)) +;;;### (autoloads nil "calc" "calc/calc.el" (22387 39327 40709 619000)) ;;; Generated autoloads from calc/calc.el (define-key ctl-x-map "*" 'calc-dispatch) @@ -3022,8 +3029,8 @@ See Info node `(calc)Defining Functions'. ;;;*** -;;;### (autoloads nil "calc-undo" "calc/calc-undo.el" (22230 48822 -;;;;;; 646220 0)) +;;;### (autoloads nil "calc-undo" "calc/calc-undo.el" (22387 39327 +;;;;;; 30709 655000)) ;;; Generated autoloads from calc/calc-undo.el (autoload 'calc-undo "calc-undo" "\ @@ -3033,8 +3040,8 @@ See Info node `(calc)Defining Functions'. ;;;*** -;;;### (autoloads nil "calculator" "calculator.el" (22290 3771 146246 -;;;;;; 676000)) +;;;### (autoloads nil "calculator" "calculator.el" (22387 39326 549711 +;;;;;; 372000)) ;;; Generated autoloads from calculator.el (autoload 'calculator "calculator" "\ @@ -3045,8 +3052,8 @@ See the documentation for `calculator-mode' for more information. ;;;*** -;;;### (autoloads nil "calendar" "calendar/calendar.el" (22230 48822 -;;;;;; 652220 0)) +;;;### (autoloads nil "calendar" "calendar/calendar.el" (22490 22723 +;;;;;; 646600 845000)) ;;; Generated autoloads from calendar/calendar.el (autoload 'calendar "calendar" "\ @@ -3089,8 +3096,8 @@ This function is suitable for execution in an init file. ;;;*** -;;;### (autoloads nil "canlock" "gnus/canlock.el" (22290 3771 183246 -;;;;;; 437000)) +;;;### (autoloads nil "canlock" "gnus/canlock.el" (22387 39327 447708 +;;;;;; 166000)) ;;; Generated autoloads from gnus/canlock.el (autoload 'canlock-insert-header "canlock" "\ @@ -3107,8 +3114,8 @@ it fails. ;;;*** -;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (22290 -;;;;;; 3781 429180 218000)) +;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (22387 +;;;;;; 39328 290705 156000)) ;;; Generated autoloads from progmodes/cc-engine.el (autoload 'c-guess-basic-syntax "cc-engine" "\ @@ -3118,8 +3125,8 @@ Return the syntactic context of the current line. ;;;*** -;;;### (autoloads nil "cc-guess" "progmodes/cc-guess.el" (22230 48822 -;;;;;; 870219 0)) +;;;### (autoloads nil "cc-guess" "progmodes/cc-guess.el" (22387 39328 +;;;;;; 296705 134000)) ;;; Generated autoloads from progmodes/cc-guess.el (defvar c-guess-guessed-offsets-alist nil "\ @@ -3217,8 +3224,8 @@ the absolute file name of the file if STYLE-NAME is nil. ;;;*** -;;;### (autoloads nil "cc-mode" "progmodes/cc-mode.el" (22290 3771 -;;;;;; 292245 733000)) +;;;### (autoloads nil "cc-mode" "progmodes/cc-mode.el" (22387 39328 +;;;;;; 299705 124000)) ;;; Generated autoloads from progmodes/cc-mode.el (autoload 'c-initialize-cc-mode "cc-mode" "\ @@ -3376,8 +3383,8 @@ Key bindings: ;;;*** -;;;### (autoloads nil "cc-styles" "progmodes/cc-styles.el" (22230 -;;;;;; 48822 872219 0)) +;;;### (autoloads nil "cc-styles" "progmodes/cc-styles.el" (22387 +;;;;;; 39328 301705 117000)) ;;; Generated autoloads from progmodes/cc-styles.el (autoload 'c-set-style "cc-styles" "\ @@ -3428,8 +3435,8 @@ and exists only for compatibility reasons. ;;;*** -;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (22290 3771 -;;;;;; 293245 726000)) +;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (22387 39328 +;;;;;; 301705 117000)) ;;; Generated autoloads from progmodes/cc-vars.el (put 'c-basic-offset 'safe-local-variable 'integerp) (put 'c-backslash-column 'safe-local-variable 'integerp) @@ -3437,8 +3444,8 @@ and exists only for compatibility reasons. ;;;*** -;;;### (autoloads nil "ccl" "international/ccl.el" (22230 48822 763219 -;;;;;; 0)) +;;;### (autoloads nil "ccl" "international/ccl.el" (22387 39327 578707 +;;;;;; 698000)) ;;; Generated autoloads from international/ccl.el (autoload 'ccl-compile "ccl" "\ @@ -3731,8 +3738,8 @@ See the documentation of `define-ccl-program' for the detail of CCL program. ;;;*** -;;;### (autoloads nil "cconv" "emacs-lisp/cconv.el" (22230 48822 -;;;;;; 685220 0)) +;;;### (autoloads nil "cconv" "emacs-lisp/cconv.el" (22387 39327 +;;;;;; 277708 773000)) ;;; Generated autoloads from emacs-lisp/cconv.el (autoload 'cconv-closure-convert "cconv" "\ @@ -3751,15 +3758,15 @@ Add the warnings that closure conversion would encounter. ;;;*** -;;;### (autoloads nil "cedet" "cedet/cedet.el" (22230 48822 656220 -;;;;;; 0)) +;;;### (autoloads nil "cedet" "cedet/cedet.el" (22387 39327 134709 +;;;;;; 283000)) ;;; Generated autoloads from cedet/cedet.el (push (purecopy '(cedet 2 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "cfengine" "progmodes/cfengine.el" (22230 48822 -;;;;;; 872219 0)) +;;;### (autoloads nil "cfengine" "progmodes/cfengine.el" (22387 39328 +;;;;;; 303705 110000)) ;;; Generated autoloads from progmodes/cfengine.el (push (purecopy '(cfengine 1 4)) package--builtin-versions) @@ -3788,14 +3795,14 @@ Choose `cfengine2-mode' or `cfengine3-mode' by buffer contents. ;;;*** -;;;### (autoloads nil "character-fold" "character-fold.el" (22230 -;;;;;; 48822 674220 0)) -;;; Generated autoloads from character-fold.el +;;;### (autoloads nil "char-fold" "char-fold.el" (22387 39326 550711 +;;;;;; 368000)) +;;; Generated autoloads from char-fold.el -(autoload 'character-fold-to-regexp "character-fold" "\ -Return a regexp matching anything that character-folds into STRING. +(autoload 'char-fold-to-regexp "char-fold" "\ +Return a regexp matching anything that char-folds into STRING. Any character in STRING that has an entry in -`character-fold-table' is replaced with that entry (which is a +`char-fold-table' is replaced with that entry (which is a regexp) and other characters are `regexp-quote'd. If the resulting regexp would be too long for Emacs to handle, @@ -3808,15 +3815,15 @@ from which to start. ;;;*** -;;;### (autoloads nil "chart" "emacs-lisp/chart.el" (22230 48822 -;;;;;; 685220 0)) +;;;### (autoloads nil "chart" "emacs-lisp/chart.el" (22387 39327 +;;;;;; 278708 769000)) ;;; Generated autoloads from emacs-lisp/chart.el (push (purecopy '(chart 0 2)) package--builtin-versions) ;;;*** ;;;### (autoloads nil "check-declare" "emacs-lisp/check-declare.el" -;;;;;; (22230 48822 685220 0)) +;;;;;; (22387 39327 278708 769000)) ;;; Generated autoloads from emacs-lisp/check-declare.el (autoload 'check-declare-file "check-declare" "\ @@ -3833,8 +3840,8 @@ Returns non-nil if any false statements are found. ;;;*** -;;;### (autoloads nil "checkdoc" "emacs-lisp/checkdoc.el" (22290 -;;;;;; 3771 157246 605000)) +;;;### (autoloads nil "checkdoc" "emacs-lisp/checkdoc.el" (22387 +;;;;;; 39327 279708 766000)) ;;; Generated autoloads from emacs-lisp/checkdoc.el (push (purecopy '(checkdoc 0 6 2)) package--builtin-versions) (put 'checkdoc-force-docstrings-flag 'safe-local-variable #'booleanp) @@ -4044,8 +4051,8 @@ Find package keywords that aren't in `finder-known-keywords'. ;;;*** -;;;### (autoloads nil "china-util" "language/china-util.el" (22230 -;;;;;; 48822 769219 0)) +;;;### (autoloads nil "china-util" "language/china-util.el" (22387 +;;;;;; 39327 648707 448000)) ;;; Generated autoloads from language/china-util.el (autoload 'decode-hz-region "china-util" "\ @@ -4082,8 +4089,8 @@ Encode the text in the current buffer to HZ. ;;;*** -;;;### (autoloads nil "chistory" "chistory.el" (22230 48822 674220 -;;;;;; 0)) +;;;### (autoloads nil "chistory" "chistory.el" (22578 62356 713212 +;;;;;; 175000)) ;;; Generated autoloads from chistory.el (autoload 'repeat-matching-complex-command "chistory" "\ @@ -4096,7 +4103,7 @@ editing and the result is evaluated. \(fn &optional PATTERN)" t nil) (autoload 'list-command-history "chistory" "\ -List history of commands typed to minibuffer. +List history of commands that used the minibuffer. The number of commands listed is controlled by `list-command-history-max'. Calls value of `list-command-history-filter' (if non-nil) on each history element to judge if that element should be excluded from the list. @@ -4122,8 +4129,8 @@ and runs the normal hook `command-history-hook'. ;;;*** -;;;### (autoloads nil "cl-indent" "emacs-lisp/cl-indent.el" (22230 -;;;;;; 48822 687220 0)) +;;;### (autoloads nil "cl-indent" "emacs-lisp/cl-indent.el" (22387 +;;;;;; 39327 282708 755000)) ;;; Generated autoloads from emacs-lisp/cl-indent.el (autoload 'common-lisp-indent-function "cl-indent" "\ @@ -4206,8 +4213,8 @@ instead. ;;;*** -;;;### (autoloads nil "cl-lib" "emacs-lisp/cl-lib.el" (22266 10298 -;;;;;; 392370 0)) +;;;### (autoloads nil "cl-lib" "emacs-lisp/cl-lib.el" (22387 39327 +;;;;;; 283708 751000)) ;;; Generated autoloads from emacs-lisp/cl-lib.el (push (purecopy '(cl-lib 1 0)) package--builtin-versions) @@ -4225,8 +4232,8 @@ a future Emacs interpreter will be able to use it.") ;;;*** -;;;### (autoloads nil "cmacexp" "progmodes/cmacexp.el" (22230 48822 -;;;;;; 872219 0)) +;;;### (autoloads nil "cmacexp" "progmodes/cmacexp.el" (22387 39328 +;;;;;; 303705 110000)) ;;; Generated autoloads from progmodes/cmacexp.el (autoload 'c-macro-expand "cmacexp" "\ @@ -4246,8 +4253,8 @@ For use inside Lisp programs, see also `c-macro-expansion'. ;;;*** -;;;### (autoloads nil "cmuscheme" "cmuscheme.el" (22230 48822 674220 -;;;;;; 0)) +;;;### (autoloads nil "cmuscheme" "cmuscheme.el" (22387 39326 553711 +;;;;;; 358000)) ;;; Generated autoloads from cmuscheme.el (autoload 'run-scheme "cmuscheme" "\ @@ -4267,7 +4274,7 @@ is run). ;;;*** -;;;### (autoloads nil "color" "color.el" (22230 48822 674220 0)) +;;;### (autoloads nil "color" "color.el" (22387 39326 553711 358000)) ;;; Generated autoloads from color.el (autoload 'color-name-to-rgb "color" "\ @@ -4286,7 +4293,7 @@ If FRAME cannot display COLOR, return nil. ;;;*** -;;;### (autoloads nil "comint" "comint.el" (22290 3781 415180 308000)) +;;;### (autoloads nil "comint" "comint.el" (22387 39326 555711 350000)) ;;; Generated autoloads from comint.el (defvar comint-output-filter-functions '(ansi-color-process-output comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt) "\ @@ -4387,8 +4394,8 @@ REGEXP-GROUP is the regular expression group in REGEXP to use. ;;;*** -;;;### (autoloads nil "compare-w" "vc/compare-w.el" (22230 48822 -;;;;;; 932218 0)) +;;;### (autoloads nil "compare-w" "vc/compare-w.el" (22387 39328 +;;;;;; 648703 878000)) ;;; Generated autoloads from vc/compare-w.el (autoload 'compare-windows "compare-w" "\ @@ -4424,8 +4431,8 @@ on third call it again advances points to the next difference and so on. ;;;*** -;;;### (autoloads nil "compile" "progmodes/compile.el" (22290 3781 -;;;;;; 430180 211000)) +;;;### (autoloads nil "compile" "progmodes/compile.el" (22387 39328 +;;;;;; 304705 106000)) ;;; Generated autoloads from progmodes/compile.el (defvar compilation-mode-hook nil "\ @@ -4606,13 +4613,14 @@ This is the value of `next-error-function' in Compilation buffers. ;;;*** -;;;### (autoloads nil "completion" "completion.el" (22266 10298 387370 -;;;;;; 0)) +;;;### (autoloads nil "completion" "completion.el" (22387 39326 556711 +;;;;;; 347000)) ;;; Generated autoloads from completion.el (defvar dynamic-completion-mode nil "\ Non-nil if Dynamic-Completion mode is enabled. -See the command `dynamic-completion-mode' for a description of this minor mode. +See the `dynamic-completion-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `dynamic-completion-mode'.") @@ -4629,8 +4637,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "conf-mode" "textmodes/conf-mode.el" (22230 -;;;;;; 48822 916218 0)) +;;;### (autoloads nil "conf-mode" "textmodes/conf-mode.el" (22387 +;;;;;; 39328 531704 295000)) ;;; Generated autoloads from textmodes/conf-mode.el (autoload 'conf-mode "conf-mode" "\ @@ -4785,8 +4793,8 @@ For details see `conf-mode'. Example: ;;;*** -;;;### (autoloads nil "cookie1" "play/cookie1.el" (22230 48822 859219 -;;;;;; 0)) +;;;### (autoloads nil "cookie1" "play/cookie1.el" (22387 39328 257705 +;;;;;; 274000)) ;;; Generated autoloads from play/cookie1.el (autoload 'cookie "cookie1" "\ @@ -4814,8 +4822,8 @@ and subsequent calls on the same file won't go to disk. ;;;*** -;;;### (autoloads nil "copyright" "emacs-lisp/copyright.el" (22230 -;;;;;; 48822 688220 0)) +;;;### (autoloads nil "copyright" "emacs-lisp/copyright.el" (22387 +;;;;;; 39327 287708 737000)) ;;; Generated autoloads from emacs-lisp/copyright.el (put 'copyright-at-end-flag 'safe-local-variable 'booleanp) (put 'copyright-names-regexp 'safe-local-variable 'stringp) @@ -4853,8 +4861,8 @@ If FIX is non-nil, run `copyright-fix-years' instead. ;;;*** -;;;### (autoloads nil "cperl-mode" "progmodes/cperl-mode.el" (22266 -;;;;;; 10298 455370 0)) +;;;### (autoloads nil "cperl-mode" "progmodes/cperl-mode.el" (22387 +;;;;;; 39328 310705 85000)) ;;; Generated autoloads from progmodes/cperl-mode.el (put 'cperl-indent-level 'safe-local-variable 'integerp) (put 'cperl-brace-offset 'safe-local-variable 'integerp) @@ -5052,8 +5060,8 @@ Run a `perldoc' on the word around point. ;;;*** -;;;### (autoloads nil "cpp" "progmodes/cpp.el" (22230 48822 875219 -;;;;;; 0)) +;;;### (autoloads nil "cpp" "progmodes/cpp.el" (22387 39328 312705 +;;;;;; 77000)) ;;; Generated autoloads from progmodes/cpp.el (autoload 'cpp-highlight-buffer "cpp" "\ @@ -5071,8 +5079,8 @@ Edit display information for cpp conditionals. ;;;*** -;;;### (autoloads nil "crm" "emacs-lisp/crm.el" (22230 48822 688220 -;;;;;; 0)) +;;;### (autoloads nil "crm" "emacs-lisp/crm.el" (22387 39327 288708 +;;;;;; 733000)) ;;; Generated autoloads from emacs-lisp/crm.el (autoload 'completing-read-multiple "crm" "\ @@ -5098,8 +5106,8 @@ with empty strings removed. ;;;*** -;;;### (autoloads nil "css-mode" "textmodes/css-mode.el" (22290 3771 -;;;;;; 321245 545000)) +;;;### (autoloads nil "css-mode" "textmodes/css-mode.el" (22387 39328 +;;;;;; 532704 292000)) ;;; Generated autoloads from textmodes/css-mode.el (autoload 'css-mode "css-mode" "\ @@ -5115,13 +5123,14 @@ Major mode to edit \"Sassy CSS\" files. ;;;*** -;;;### (autoloads nil "cua-base" "emulation/cua-base.el" (22230 48822 -;;;;;; 698219 0)) +;;;### (autoloads nil "cua-base" "emulation/cua-base.el" (22387 39327 +;;;;;; 363708 465000)) ;;; Generated autoloads from emulation/cua-base.el (defvar cua-mode nil "\ Non-nil if Cua mode is enabled. -See the command `cua-mode' for a description of this minor mode. +See the `cua-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `cua-mode'.") @@ -5161,8 +5170,8 @@ Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings. ;;;*** -;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (22230 48822 -;;;;;; 699219 0)) +;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (22387 39327 +;;;;;; 364708 462000)) ;;; Generated autoloads from emulation/cua-rect.el (autoload 'cua-rectangle-mark-mode "cua-rect" "\ @@ -5174,9 +5183,11 @@ Activates the region if needed. Only lasts until the region is deactivated. ;;;*** ;;;### (autoloads nil "cursor-sensor" "emacs-lisp/cursor-sensor.el" -;;;;;; (22266 10298 393370 0)) +;;;;;; (22387 39327 288708 733000)) ;;; Generated autoloads from emacs-lisp/cursor-sensor.el +(defvar cursor-sensor-inhibit nil) + (autoload 'cursor-intangible-mode "cursor-sensor" "\ Keep cursor outside of any `cursor-intangible' text property. @@ -5194,8 +5205,8 @@ is entering the area covered by the text-property property or leaving it. ;;;*** -;;;### (autoloads nil "cus-edit" "cus-edit.el" (22290 3771 151246 -;;;;;; 644000)) +;;;### (autoloads nil "cus-edit" "cus-edit.el" (22421 48064 572733 +;;;;;; 228000)) ;;; Generated autoloads from cus-edit.el (defvar custom-browse-sort-alphabetically nil "\ @@ -5280,9 +5291,10 @@ are shown; the contents of those subgroups are initially hidden. \(fn)" t nil) (autoload 'customize-mode "cus-edit" "\ -Customize options related to the current major mode. -If a prefix \\[universal-argument] was given (or if the current major mode has no known group), -then prompt for the MODE to customize. +Customize options related to a major or minor mode. +By default the current major mode is used. With a prefix +argument or if the current major mode has no known group, prompt +for the MODE to customize. \(fn MODE)" t nil) @@ -5514,8 +5526,8 @@ The format is suitable for use with `easy-menu-define'. ;;;*** -;;;### (autoloads nil "cus-theme" "cus-theme.el" (22230 48822 677220 -;;;;;; 0)) +;;;### (autoloads nil "cus-theme" "cus-theme.el" (22387 39326 564711 +;;;;;; 318000)) ;;; Generated autoloads from cus-theme.el (autoload 'customize-create-theme "cus-theme" "\ @@ -5548,8 +5560,8 @@ omitted, a buffer named *Custom Themes* is used. ;;;*** -;;;### (autoloads nil "cvs-status" "vc/cvs-status.el" (22230 48822 -;;;;;; 933218 0)) +;;;### (autoloads nil "cvs-status" "vc/cvs-status.el" (22387 39328 +;;;;;; 649703 874000)) ;;; Generated autoloads from vc/cvs-status.el (autoload 'cvs-status-mode "cvs-status" "\ @@ -5559,8 +5571,8 @@ Mode used for cvs status output. ;;;*** -;;;### (autoloads nil "cwarn" "progmodes/cwarn.el" (22230 48822 875219 -;;;;;; 0)) +;;;### (autoloads nil "cwarn" "progmodes/cwarn.el" (22387 39328 313705 +;;;;;; 74000)) ;;; Generated autoloads from progmodes/cwarn.el (push (purecopy '(cwarn 1 3 1)) package--builtin-versions) @@ -5583,7 +5595,8 @@ if ARG is omitted or nil. (defvar global-cwarn-mode nil "\ Non-nil if Global Cwarn mode is enabled. -See the command `global-cwarn-mode' for a description of this minor mode. +See the `global-cwarn-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `global-cwarn-mode'.") @@ -5604,8 +5617,8 @@ See `cwarn-mode' for more information on Cwarn mode. ;;;*** -;;;### (autoloads nil "cyril-util" "language/cyril-util.el" (22230 -;;;;;; 48822 770219 0)) +;;;### (autoloads nil "cyril-util" "language/cyril-util.el" (22387 +;;;;;; 39327 648707 448000)) ;;; Generated autoloads from language/cyril-util.el (autoload 'cyrillic-encode-koi8-r-char "cyril-util" "\ @@ -5633,8 +5646,8 @@ If the argument is nil, we return the display table to its standard state. ;;;*** -;;;### (autoloads nil "dabbrev" "dabbrev.el" (22266 10298 387370 -;;;;;; 0)) +;;;### (autoloads nil "dabbrev" "dabbrev.el" (22578 62356 713212 +;;;;;; 175000)) ;;; Generated autoloads from dabbrev.el (put 'dabbrev-case-fold-search 'risky-local-variable t) (put 'dabbrev-case-replace 'risky-local-variable t) @@ -5662,7 +5675,10 @@ Expands to the most recent, preceding word for which this is a prefix. If no suitable preceding word is found, words following point are considered. If still no suitable word is found, then look in the buffers accepted by the function pointed out by variable -`dabbrev-friend-buffer-function'. +`dabbrev-friend-buffer-function', if `dabbrev-check-other-buffers' +says so. Then, if `dabbrev-check-all-buffers' is non-nil, look in +all the other buffers, subject to constraints specified +by `dabbrev-ignored-buffer-names' and `dabbrev-ignored-regexps'. A positive prefix argument, N, says to take the Nth backward *distinct* possibility. A negative argument says search forward. @@ -5680,8 +5696,8 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]. ;;;*** -;;;### (autoloads nil "data-debug" "cedet/data-debug.el" (22230 48822 -;;;;;; 656220 0)) +;;;### (autoloads nil "data-debug" "cedet/data-debug.el" (22387 39327 +;;;;;; 134709 283000)) ;;; Generated autoloads from cedet/data-debug.el (autoload 'data-debug-new-buffer "data-debug" "\ @@ -5691,7 +5707,7 @@ Create a new data-debug buffer with NAME. ;;;*** -;;;### (autoloads nil "dbus" "net/dbus.el" (22230 48822 806219 0)) +;;;### (autoloads nil "dbus" "net/dbus.el" (22387 39327 967706 309000)) ;;; Generated autoloads from net/dbus.el (autoload 'dbus-handle-event "dbus" "\ @@ -5704,8 +5720,8 @@ If the HANDLER returns a `dbus-error', it is propagated as return message. ;;;*** -;;;### (autoloads nil "dcl-mode" "progmodes/dcl-mode.el" (22230 48822 -;;;;;; 875219 0)) +;;;### (autoloads nil "dcl-mode" "progmodes/dcl-mode.el" (22387 39328 +;;;;;; 313705 74000)) ;;; Generated autoloads from progmodes/dcl-mode.el (autoload 'dcl-mode "dcl-mode" "\ @@ -5831,8 +5847,8 @@ There is some minimal font-lock support (see vars ;;;*** -;;;### (autoloads nil "debug" "emacs-lisp/debug.el" (22230 48822 -;;;;;; 688220 0)) +;;;### (autoloads nil "debug" "emacs-lisp/debug.el" (22387 39327 +;;;;;; 289708 730000)) ;;; Generated autoloads from emacs-lisp/debug.el (setq debugger 'debug) @@ -5875,8 +5891,8 @@ To specify a nil argument interactively, exit with an empty minibuffer. ;;;*** -;;;### (autoloads nil "decipher" "play/decipher.el" (22230 48822 -;;;;;; 859219 0)) +;;;### (autoloads nil "decipher" "play/decipher.el" (22387 39328 +;;;;;; 258705 270000)) ;;; Generated autoloads from play/decipher.el (autoload 'decipher "decipher" "\ @@ -5904,8 +5920,8 @@ The most useful commands are: ;;;*** -;;;### (autoloads nil "delim-col" "delim-col.el" (22230 48822 677220 -;;;;;; 0)) +;;;### (autoloads nil "delim-col" "delim-col.el" (22387 39326 566711 +;;;;;; 311000)) ;;; Generated autoloads from delim-col.el (push (purecopy '(delim-col 2 1)) package--builtin-versions) @@ -5930,14 +5946,15 @@ START and END delimits the corners of text rectangle. ;;;*** -;;;### (autoloads nil "delsel" "delsel.el" (22230 48822 677220 0)) +;;;### (autoloads nil "delsel" "delsel.el" (22387 39326 566711 311000)) ;;; Generated autoloads from delsel.el (defalias 'pending-delete-mode 'delete-selection-mode) (defvar delete-selection-mode nil "\ Non-nil if Delete-Selection mode is enabled. -See the command `delete-selection-mode' for a description of this minor mode. +See the `delete-selection-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `delete-selection-mode'.") @@ -5962,8 +5979,8 @@ information on adapting behavior of commands in Delete Selection mode. ;;;*** -;;;### (autoloads nil "derived" "emacs-lisp/derived.el" (22266 10298 -;;;;;; 393370 0)) +;;;### (autoloads nil "derived" "emacs-lisp/derived.el" (22387 39327 +;;;;;; 289708 730000)) ;;; Generated autoloads from emacs-lisp/derived.el (autoload 'define-derived-mode "derived" "\ @@ -6029,8 +6046,8 @@ the first time the mode is used. ;;;*** -;;;### (autoloads nil "descr-text" "descr-text.el" (22230 48822 678220 -;;;;;; 0)) +;;;### (autoloads nil "descr-text" "descr-text.el" (22387 39326 567711 +;;;;;; 307000)) ;;; Generated autoloads from descr-text.el (autoload 'describe-text-properties "descr-text" "\ @@ -6079,13 +6096,14 @@ This function is meant to be used as a value of ;;;*** -;;;### (autoloads nil "desktop" "desktop.el" (22230 48822 678220 -;;;;;; 0)) +;;;### (autoloads nil "desktop" "desktop.el" (22387 39326 567711 +;;;;;; 307000)) ;;; Generated autoloads from desktop.el (defvar desktop-save-mode nil "\ Non-nil if Desktop-Save mode is enabled. -See the command `desktop-save-mode' for a description of this minor mode. +See the `desktop-save-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `desktop-save-mode'.") @@ -6307,8 +6325,8 @@ Revert to the last loaded desktop. ;;;*** -;;;### (autoloads nil "deuglify" "gnus/deuglify.el" (22230 48822 -;;;;;; 729219 0)) +;;;### (autoloads nil "deuglify" "gnus/deuglify.el" (22387 39327 +;;;;;; 448708 162000)) ;;; Generated autoloads from gnus/deuglify.el (autoload 'gnus-article-outlook-unwrap-lines "deuglify" "\ @@ -6340,8 +6358,8 @@ Deuglify broken Outlook (Express) articles and redisplay. ;;;*** -;;;### (autoloads nil "diary-lib" "calendar/diary-lib.el" (22230 -;;;;;; 48822 652220 0)) +;;;### (autoloads nil "diary-lib" "calendar/diary-lib.el" (22387 +;;;;;; 39327 108709 376000)) ;;; Generated autoloads from calendar/diary-lib.el (autoload 'diary "diary-lib" "\ @@ -6383,7 +6401,7 @@ Major mode for editing the diary file. ;;;*** -;;;### (autoloads nil "diff" "vc/diff.el" (22230 48822 933218 0)) +;;;### (autoloads nil "diff" "vc/diff.el" (22387 39328 651703 867000)) ;;; Generated autoloads from vc/diff.el (defvar diff-switches (purecopy "-u") "\ @@ -6431,8 +6449,8 @@ This requires the external program `diff' to be in your `exec-path'. ;;;*** -;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (22230 48822 -;;;;;; 933218 0)) +;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (22387 39328 +;;;;;; 650703 871000)) ;;; Generated autoloads from vc/diff-mode.el (autoload 'diff-mode "diff-mode" "\ @@ -6464,7 +6482,7 @@ the mode if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "dig" "net/dig.el" (22230 48822 806219 0)) +;;;### (autoloads nil "dig" "net/dig.el" (22387 39327 967706 309000)) ;;; Generated autoloads from net/dig.el (autoload 'dig "dig" "\ @@ -6475,7 +6493,7 @@ Optional arguments are passed to `dig-invoke'. ;;;*** -;;;### (autoloads nil "dired" "dired.el" (22298 5692 411287 954000)) +;;;### (autoloads nil "dired" "dired.el" (22579 9748 130924 321000)) ;;; Generated autoloads from dired.el (defvar dired-listing-switches (purecopy "-al") "\ @@ -6601,8 +6619,8 @@ Keybindings: ;;;*** -;;;### (autoloads nil "dirtrack" "dirtrack.el" (22230 48822 680220 -;;;;;; 0)) +;;;### (autoloads nil "dirtrack" "dirtrack.el" (22387 39326 575711 +;;;;;; 279000)) ;;; Generated autoloads from dirtrack.el (autoload 'dirtrack-mode "dirtrack" "\ @@ -6632,8 +6650,8 @@ from `default-directory'. ;;;*** -;;;### (autoloads nil "disass" "emacs-lisp/disass.el" (22290 3781 -;;;;;; 416180 302000)) +;;;### (autoloads nil "disass" "emacs-lisp/disass.el" (22387 39327 +;;;;;; 290708 726000)) ;;; Generated autoloads from emacs-lisp/disass.el (autoload 'disassemble "disass" "\ @@ -6647,8 +6665,8 @@ redefine OBJECT if it is a symbol. ;;;*** -;;;### (autoloads nil "disp-table" "disp-table.el" (22230 48822 680220 -;;;;;; 0)) +;;;### (autoloads nil "disp-table" "disp-table.el" (22387 39326 576711 +;;;;;; 275000)) ;;; Generated autoloads from disp-table.el (autoload 'make-display-table "disp-table" "\ @@ -6769,8 +6787,8 @@ in `.emacs'. ;;;*** -;;;### (autoloads nil "dissociate" "play/dissociate.el" (22230 48822 -;;;;;; 859219 0)) +;;;### (autoloads nil "dissociate" "play/dissociate.el" (22387 39328 +;;;;;; 258705 270000)) ;;; Generated autoloads from play/dissociate.el (autoload 'dissociated-press "dissociate" "\ @@ -6786,7 +6804,7 @@ Default is 2. ;;;*** -;;;### (autoloads nil "dnd" "dnd.el" (22230 48822 680220 0)) +;;;### (autoloads nil "dnd" "dnd.el" (22387 39326 576711 275000)) ;;; Generated autoloads from dnd.el (defvar dnd-protocol-alist `((,(purecopy "^file:///") . dnd-open-local-file) (,(purecopy "^file://") . dnd-open-file) (,(purecopy "^file:") . dnd-open-local-file) (,(purecopy "^\\(https?\\|ftp\\|file\\|nfs\\)://") . dnd-open-file)) "\ @@ -6806,8 +6824,8 @@ if some action was made, or nil if the URL is ignored.") ;;;*** -;;;### (autoloads nil "dns-mode" "textmodes/dns-mode.el" (22230 48822 -;;;;;; 916218 0)) +;;;### (autoloads nil "dns-mode" "textmodes/dns-mode.el" (22387 39328 +;;;;;; 532704 292000)) ;;; Generated autoloads from textmodes/dns-mode.el (autoload 'dns-mode "dns-mode" "\ @@ -6830,8 +6848,8 @@ Locate SOA record and increment the serial field. ;;;*** -;;;### (autoloads nil "doc-view" "doc-view.el" (22266 10298 388370 -;;;;;; 0)) +;;;### (autoloads nil "doc-view" "doc-view.el" (22387 39326 577711 +;;;;;; 272000)) ;;; Generated autoloads from doc-view.el (autoload 'doc-view-mode-p "doc-view" "\ @@ -6877,8 +6895,8 @@ See the command `doc-view-mode' for more information on this mode. ;;;*** -;;;### (autoloads nil "doctor" "play/doctor.el" (22230 48822 859219 -;;;;;; 0)) +;;;### (autoloads nil "doctor" "play/doctor.el" (22387 39328 259705 +;;;;;; 267000)) ;;; Generated autoloads from play/doctor.el (autoload 'doctor "doctor" "\ @@ -6888,7 +6906,7 @@ Switch to *doctor* buffer and start giving psychotherapy. ;;;*** -;;;### (autoloads nil "double" "double.el" (22230 48822 681220 0)) +;;;### (autoloads nil "double" "double.el" (22387 39326 589711 229000)) ;;; Generated autoloads from double.el (autoload 'double-mode "double" "\ @@ -6904,8 +6922,8 @@ strings when pressed twice. See `double-map' for details. ;;;*** -;;;### (autoloads nil "dunnet" "play/dunnet.el" (22230 48822 860219 -;;;;;; 0)) +;;;### (autoloads nil "dunnet" "play/dunnet.el" (22387 39328 260705 +;;;;;; 263000)) ;;; Generated autoloads from play/dunnet.el (push (purecopy '(dunnet 2 2)) package--builtin-versions) @@ -6916,8 +6934,8 @@ Switch to *dungeon* buffer and start game. ;;;*** -;;;### (autoloads nil "easy-mmode" "emacs-lisp/easy-mmode.el" (22261 -;;;;;; 18214 495021 0)) +;;;### (autoloads nil "easy-mmode" "emacs-lisp/easy-mmode.el" (22387 +;;;;;; 39327 291708 723000)) ;;; Generated autoloads from emacs-lisp/easy-mmode.el (defalias 'easy-mmode-define-minor-mode 'define-minor-mode) @@ -7059,8 +7077,8 @@ CSS contains a list of syntax specifications of the form (CHAR . SYNTAX). ;;;*** -;;;### (autoloads nil "easymenu" "emacs-lisp/easymenu.el" (22230 -;;;;;; 48822 689220 0)) +;;;### (autoloads nil "easymenu" "emacs-lisp/easymenu.el" (22387 +;;;;;; 39327 291708 723000)) ;;; Generated autoloads from emacs-lisp/easymenu.el (autoload 'easy-menu-define "easymenu" "\ @@ -7198,8 +7216,8 @@ To implement dynamic menus, either call this from ;;;*** -;;;### (autoloads nil "ebnf2ps" "progmodes/ebnf2ps.el" (22230 48822 -;;;;;; 877219 0)) +;;;### (autoloads nil "ebnf2ps" "progmodes/ebnf2ps.el" (22387 39328 +;;;;;; 319705 52000)) ;;; Generated autoloads from progmodes/ebnf2ps.el (push (purecopy '(ebnf2ps 4 4)) package--builtin-versions) @@ -7464,8 +7482,8 @@ See `ebnf-style-database' documentation. ;;;*** -;;;### (autoloads nil "ebrowse" "progmodes/ebrowse.el" (22230 48822 -;;;;;; 878219 0)) +;;;### (autoloads nil "ebrowse" "progmodes/ebrowse.el" (22387 39328 +;;;;;; 321705 45000)) ;;; Generated autoloads from progmodes/ebrowse.el (autoload 'ebrowse-tree-mode "ebrowse" "\ @@ -7613,8 +7631,8 @@ Display statistics for a class tree. ;;;*** -;;;### (autoloads nil "ebuff-menu" "ebuff-menu.el" (22230 48822 681220 -;;;;;; 0)) +;;;### (autoloads nil "ebuff-menu" "ebuff-menu.el" (22387 39326 590711 +;;;;;; 225000)) ;;; Generated autoloads from ebuff-menu.el (autoload 'electric-buffer-list "ebuff-menu" "\ @@ -7646,8 +7664,8 @@ Run hooks in `electric-buffer-menu-mode-hook' on entry. ;;;*** -;;;### (autoloads nil "echistory" "echistory.el" (22230 48822 681220 -;;;;;; 0)) +;;;### (autoloads nil "echistory" "echistory.el" (22387 39326 591711 +;;;;;; 222000)) ;;; Generated autoloads from echistory.el (autoload 'Electric-command-history-redo-expression "echistory" "\ @@ -7658,8 +7676,8 @@ With prefix arg NOCONFIRM, execute current line as-is without editing. ;;;*** -;;;### (autoloads nil "ecomplete" "gnus/ecomplete.el" (22290 3771 -;;;;;; 183246 437000)) +;;;### (autoloads nil "ecomplete" "gnus/ecomplete.el" (22387 39327 +;;;;;; 448708 162000)) ;;; Generated autoloads from gnus/ecomplete.el (autoload 'ecomplete-setup "ecomplete" "\ @@ -7669,13 +7687,14 @@ With prefix arg NOCONFIRM, execute current line as-is without editing. ;;;*** -;;;### (autoloads nil "ede" "cedet/ede.el" (22230 48822 656220 0)) +;;;### (autoloads nil "ede" "cedet/ede.el" (22387 39327 135709 280000)) ;;; Generated autoloads from cedet/ede.el (push (purecopy '(ede 1 2)) package--builtin-versions) (defvar global-ede-mode nil "\ Non-nil if Global Ede mode is enabled. -See the command `global-ede-mode' for a description of this minor mode. +See the `global-ede-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `global-ede-mode'.") @@ -7695,8 +7714,8 @@ an EDE controlled project. ;;;*** -;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (22230 48822 -;;;;;; 690220 0)) +;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (22387 39327 +;;;;;; 293708 716000)) ;;; Generated autoloads from emacs-lisp/edebug.el (defvar edebug-all-defs nil "\ @@ -7760,7 +7779,7 @@ Toggle edebugging of all forms. ;;;*** -;;;### (autoloads nil "ediff" "vc/ediff.el" (22290 3771 334245 461000)) +;;;### (autoloads nil "ediff" "vc/ediff.el" (22387 39328 660703 835000)) ;;; Generated autoloads from vc/ediff.el (push (purecopy '(ediff 2 81 4)) package--builtin-versions) @@ -8032,8 +8051,8 @@ With optional NODE, goes to that node. ;;;*** -;;;### (autoloads nil "ediff-help" "vc/ediff-help.el" (22230 48822 -;;;;;; 933218 0)) +;;;### (autoloads nil "ediff-help" "vc/ediff-help.el" (22387 39328 +;;;;;; 653703 860000)) ;;; Generated autoloads from vc/ediff-help.el (autoload 'ediff-customize "ediff-help" "\ @@ -8043,8 +8062,8 @@ With optional NODE, goes to that node. ;;;*** -;;;### (autoloads nil "ediff-mult" "vc/ediff-mult.el" (22230 48822 -;;;;;; 934218 0)) +;;;### (autoloads nil "ediff-mult" "vc/ediff-mult.el" (22387 39328 +;;;;;; 656703 849000)) ;;; Generated autoloads from vc/ediff-mult.el (autoload 'ediff-show-registry "ediff-mult" "\ @@ -8056,8 +8075,8 @@ Display Ediff's registry. ;;;*** -;;;### (autoloads nil "ediff-util" "vc/ediff-util.el" (22290 3771 -;;;;;; 334245 461000)) +;;;### (autoloads nil "ediff-util" "vc/ediff-util.el" (22387 39328 +;;;;;; 658703 842000)) ;;; Generated autoloads from vc/ediff-util.el (autoload 'ediff-toggle-multiframe "ediff-util" "\ @@ -8076,8 +8095,8 @@ To change the default, set the variable `ediff-use-toolbar-p', which see. ;;;*** -;;;### (autoloads nil "edmacro" "edmacro.el" (22230 48822 682220 -;;;;;; 0)) +;;;### (autoloads nil "edmacro" "edmacro.el" (22387 39326 591711 +;;;;;; 222000)) ;;; Generated autoloads from edmacro.el (push (purecopy '(edmacro 2 1)) package--builtin-versions) @@ -8126,8 +8145,8 @@ or nil, use a compact 80-column format. ;;;*** -;;;### (autoloads nil "edt" "emulation/edt.el" (22261 18214 497021 -;;;;;; 0)) +;;;### (autoloads nil "edt" "emulation/edt.el" (22578 62356 717212 +;;;;;; 153000)) ;;; Generated autoloads from emulation/edt.el (autoload 'edt-set-scroll-margins "edt" "\ @@ -8144,7 +8163,7 @@ Turn on EDT Emulation. ;;;*** -;;;### (autoloads nil "ehelp" "ehelp.el" (22230 48822 682220 0)) +;;;### (autoloads nil "ehelp" "ehelp.el" (22387 39326 592711 218000)) ;;; Generated autoloads from ehelp.el (autoload 'with-electric-help "ehelp" "\ @@ -8180,15 +8199,15 @@ BUFFER is put back into its original major mode. ;;;*** -;;;### (autoloads nil "eieio" "emacs-lisp/eieio.el" (22290 3771 161246 -;;;;;; 579000)) +;;;### (autoloads nil "eieio" "emacs-lisp/eieio.el" (22387 39327 +;;;;;; 299708 694000)) ;;; Generated autoloads from emacs-lisp/eieio.el (push (purecopy '(eieio 1 4)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "eieio-core" "emacs-lisp/eieio-core.el" (22290 -;;;;;; 3771 160246 586000)) +;;;### (autoloads nil "eieio-core" "emacs-lisp/eieio-core.el" (22578 +;;;;;; 62356 716212 159000)) ;;; Generated autoloads from emacs-lisp/eieio-core.el (push (purecopy '(eieio-core 1 4)) package--builtin-versions) @@ -8204,8 +8223,8 @@ It creates an autoload function for CNAME's constructor. ;;;*** -;;;### (autoloads nil "elec-pair" "elec-pair.el" (22230 48822 682220 -;;;;;; 0)) +;;;### (autoloads nil "elec-pair" "elec-pair.el" (22387 39326 592711 +;;;;;; 218000)) ;;; Generated autoloads from elec-pair.el (defvar electric-pair-text-pairs '((34 . 34)) "\ @@ -8219,7 +8238,8 @@ defined in `electric-pair-text-syntax-table'") (defvar electric-pair-mode nil "\ Non-nil if Electric-Pair mode is enabled. -See the command `electric-pair-mode' for a description of this minor mode. +See the `electric-pair-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `electric-pair-mode'.") @@ -8246,8 +8266,8 @@ Toggle `electric-pair-mode' only in this buffer. ;;;*** -;;;### (autoloads nil "elide-head" "elide-head.el" (22230 48822 682220 -;;;;;; 0)) +;;;### (autoloads nil "elide-head" "elide-head.el" (22387 39326 593711 +;;;;;; 215000)) ;;; Generated autoloads from elide-head.el (autoload 'elide-head "elide-head" "\ @@ -8262,8 +8282,8 @@ This is suitable as an entry on `find-file-hook' or appropriate mode hooks. ;;;*** -;;;### (autoloads nil "elint" "emacs-lisp/elint.el" (22230 48822 -;;;;;; 691220 0)) +;;;### (autoloads nil "elint" "emacs-lisp/elint.el" (22387 39327 +;;;;;; 300708 690000)) ;;; Generated autoloads from emacs-lisp/elint.el (autoload 'elint-file "elint" "\ @@ -8298,8 +8318,8 @@ optional prefix argument REINIT is non-nil. ;;;*** -;;;### (autoloads nil "elp" "emacs-lisp/elp.el" (22230 48822 691220 -;;;;;; 0)) +;;;### (autoloads nil "elp" "emacs-lisp/elp.el" (22387 39327 301708 +;;;;;; 687000)) ;;; Generated autoloads from emacs-lisp/elp.el (autoload 'elp-instrument-function "elp" "\ @@ -8333,8 +8353,8 @@ displayed. ;;;*** -;;;### (autoloads nil "emacs-lock" "emacs-lock.el" (22230 48822 698219 -;;;;;; 0)) +;;;### (autoloads nil "emacs-lock" "emacs-lock.el" (22387 39326 594711 +;;;;;; 211000)) ;;; Generated autoloads from emacs-lock.el (autoload 'emacs-lock-mode "emacs-lock" "\ @@ -8361,8 +8381,8 @@ Other values are interpreted as usual. ;;;*** -;;;### (autoloads nil "emacsbug" "mail/emacsbug.el" (22230 48822 -;;;;;; 787219 0)) +;;;### (autoloads nil "emacsbug" "mail/emacsbug.el" (22578 62356 +;;;;;; 725212 110000)) ;;; Generated autoloads from mail/emacsbug.el (autoload 'report-emacs-bug "emacsbug" "\ @@ -8375,8 +8395,8 @@ Prompts for bug subject. Leaves you in a mail buffer. ;;;*** -;;;### (autoloads nil "emerge" "vc/emerge.el" (22230 48822 936218 -;;;;;; 0)) +;;;### (autoloads nil "emerge" "vc/emerge.el" (22387 39328 661703 +;;;;;; 831000)) ;;; Generated autoloads from vc/emerge.el (autoload 'emerge-files "emerge" "\ @@ -8436,8 +8456,8 @@ Emerge two RCS revisions of a file, with another revision as ancestor. ;;;*** -;;;### (autoloads nil "enriched" "textmodes/enriched.el" (22230 48822 -;;;;;; 916218 0)) +;;;### (autoloads nil "enriched" "textmodes/enriched.el" (22387 39328 +;;;;;; 533704 288000)) ;;; Generated autoloads from textmodes/enriched.el (autoload 'enriched-mode "enriched" "\ @@ -8472,7 +8492,7 @@ Commands: ;;;*** -;;;### (autoloads nil "epa" "epa.el" (22290 3771 165246 553000)) +;;;### (autoloads nil "epa" "epa.el" (22387 39326 603711 179000)) ;;; Generated autoloads from epa.el (autoload 'epa-list-keys "epa" "\ @@ -8660,8 +8680,8 @@ Insert selected KEYS after the point. ;;;*** -;;;### (autoloads nil "epa-dired" "epa-dired.el" (22230 48822 702219 -;;;;;; 0)) +;;;### (autoloads nil "epa-dired" "epa-dired.el" (22387 39326 594711 +;;;;;; 211000)) ;;; Generated autoloads from epa-dired.el (autoload 'epa-dired-do-decrypt "epa-dired" "\ @@ -8686,8 +8706,8 @@ Encrypt marked files. ;;;*** -;;;### (autoloads nil "epa-file" "epa-file.el" (22230 48822 702219 -;;;;;; 0)) +;;;### (autoloads nil "epa-file" "epa-file.el" (22387 39326 595711 +;;;;;; 208000)) ;;; Generated autoloads from epa-file.el (autoload 'epa-file-handler "epa-file" "\ @@ -8707,8 +8727,8 @@ Encrypt marked files. ;;;*** -;;;### (autoloads nil "epa-mail" "epa-mail.el" (22230 48822 702219 -;;;;;; 0)) +;;;### (autoloads nil "epa-mail" "epa-mail.el" (22387 39326 595711 +;;;;;; 208000)) ;;; Generated autoloads from epa-mail.el (autoload 'epa-mail-mode "epa-mail" "\ @@ -8768,7 +8788,8 @@ The buffer is expected to contain a mail message. (defvar epa-global-mail-mode nil "\ Non-nil if Epa-Global-Mail mode is enabled. -See the command `epa-global-mail-mode' for a description of this minor mode. +See the `epa-global-mail-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `epa-global-mail-mode'.") @@ -8785,7 +8806,7 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "epg" "epg.el" (22261 18214 497021 0)) +;;;### (autoloads nil "epg" "epg.el" (22387 39326 604711 175000)) ;;; Generated autoloads from epg.el (push (purecopy '(epg 1 0 0)) package--builtin-versions) @@ -8796,8 +8817,8 @@ Return a context object. ;;;*** -;;;### (autoloads nil "epg-config" "epg-config.el" (22261 18214 497021 -;;;;;; 0)) +;;;### (autoloads nil "epg-config" "epg-config.el" (22387 39326 603711 +;;;;;; 179000)) ;;; Generated autoloads from epg-config.el (autoload 'epg-find-configuration "epg-config" "\ @@ -8831,7 +8852,7 @@ Look at CONFIG and try to expand GROUP. ;;;*** -;;;### (autoloads nil "erc" "erc/erc.el" (22290 3771 173246 502000)) +;;;### (autoloads nil "erc" "erc/erc.el" (22387 39327 421708 258000)) ;;; Generated autoloads from erc/erc.el (push (purecopy '(erc 5 3)) package--builtin-versions) @@ -8880,36 +8901,36 @@ Otherwise, connect to HOST:PORT as USER and /join CHANNEL. ;;;*** -;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (22230 -;;;;;; 48822 705219 0)) +;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (22387 +;;;;;; 39327 403708 323000)) ;;; Generated autoloads from erc/erc-autoaway.el (autoload 'erc-autoaway-mode "erc-autoaway") ;;;*** -;;;### (autoloads nil "erc-button" "erc/erc-button.el" (22290 3771 -;;;;;; 167246 540000)) +;;;### (autoloads nil "erc-button" "erc/erc-button.el" (22387 39327 +;;;;;; 405708 316000)) ;;; Generated autoloads from erc/erc-button.el (autoload 'erc-button-mode "erc-button" nil t) ;;;*** -;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (22290 3771 -;;;;;; 167246 540000)) +;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (22387 39327 +;;;;;; 405708 316000)) ;;; Generated autoloads from erc/erc-capab.el (autoload 'erc-capab-identify-mode "erc-capab" nil t) ;;;*** -;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (22290 3771 -;;;;;; 169246 527000)) +;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (22387 39327 +;;;;;; 406708 312000)) ;;; Generated autoloads from erc/erc-compat.el (autoload 'erc-define-minor-mode "erc-compat") ;;;*** -;;;### (autoloads nil "erc-dcc" "erc/erc-dcc.el" (22290 3771 169246 -;;;;;; 527000)) +;;;### (autoloads nil "erc-dcc" "erc/erc-dcc.el" (22387 39327 406708 +;;;;;; 312000)) ;;; Generated autoloads from erc/erc-dcc.el (autoload 'erc-dcc-mode "erc-dcc") @@ -8939,14 +8960,14 @@ that subcommand. ;;;*** ;;;### (autoloads nil "erc-desktop-notifications" "erc/erc-desktop-notifications.el" -;;;;;; (22230 48822 706219 0)) +;;;;;; (22387 39327 407708 309000)) ;;; Generated autoloads from erc/erc-desktop-notifications.el (autoload 'erc-notifications-mode "erc-desktop-notifications" "" t) ;;;*** -;;;### (autoloads nil "erc-ezbounce" "erc/erc-ezbounce.el" (22230 -;;;;;; 48822 706219 0)) +;;;### (autoloads nil "erc-ezbounce" "erc/erc-ezbounce.el" (22387 +;;;;;; 39327 407708 309000)) ;;; Generated autoloads from erc/erc-ezbounce.el (autoload 'erc-cmd-ezb "erc-ezbounce" "\ @@ -9008,8 +9029,8 @@ Add EZBouncer convenience functions to ERC. ;;;*** -;;;### (autoloads nil "erc-fill" "erc/erc-fill.el" (22230 48822 706219 -;;;;;; 0)) +;;;### (autoloads nil "erc-fill" "erc/erc-fill.el" (22387 39327 408708 +;;;;;; 305000)) ;;; Generated autoloads from erc/erc-fill.el (autoload 'erc-fill-mode "erc-fill" nil t) @@ -9021,8 +9042,8 @@ You can put this on `erc-insert-modify-hook' and/or `erc-send-modify-hook'. ;;;*** -;;;### (autoloads nil "erc-identd" "erc/erc-identd.el" (22230 48822 -;;;;;; 706219 0)) +;;;### (autoloads nil "erc-identd" "erc/erc-identd.el" (22387 39327 +;;;;;; 409708 301000)) ;;; Generated autoloads from erc/erc-identd.el (autoload 'erc-identd-mode "erc-identd") @@ -9043,8 +9064,8 @@ system. ;;;*** -;;;### (autoloads nil "erc-imenu" "erc/erc-imenu.el" (22230 48822 -;;;;;; 706219 0)) +;;;### (autoloads nil "erc-imenu" "erc/erc-imenu.el" (22387 39327 +;;;;;; 410708 298000)) ;;; Generated autoloads from erc/erc-imenu.el (autoload 'erc-create-imenu-index "erc-imenu" "\ @@ -9054,22 +9075,22 @@ system. ;;;*** -;;;### (autoloads nil "erc-join" "erc/erc-join.el" (22230 48822 706219 -;;;;;; 0)) +;;;### (autoloads nil "erc-join" "erc/erc-join.el" (22387 39327 410708 +;;;;;; 298000)) ;;; Generated autoloads from erc/erc-join.el (autoload 'erc-autojoin-mode "erc-join" nil t) ;;;*** -;;;### (autoloads nil "erc-list" "erc/erc-list.el" (22230 48822 706219 -;;;;;; 0)) +;;;### (autoloads nil "erc-list" "erc/erc-list.el" (22387 39327 411708 +;;;;;; 294000)) ;;; Generated autoloads from erc/erc-list.el (autoload 'erc-list-mode "erc-list") ;;;*** -;;;### (autoloads nil "erc-log" "erc/erc-log.el" (22230 48822 707219 -;;;;;; 0)) +;;;### (autoloads nil "erc-log" "erc/erc-log.el" (22387 39327 411708 +;;;;;; 294000)) ;;; Generated autoloads from erc/erc-log.el (autoload 'erc-log-mode "erc-log" nil t) @@ -9098,8 +9119,8 @@ You can save every individual message by putting this function on ;;;*** -;;;### (autoloads nil "erc-match" "erc/erc-match.el" (22290 3771 -;;;;;; 170246 521000)) +;;;### (autoloads nil "erc-match" "erc/erc-match.el" (22387 39327 +;;;;;; 412708 291000)) ;;; Generated autoloads from erc/erc-match.el (autoload 'erc-match-mode "erc-match") @@ -9145,15 +9166,15 @@ Delete dangerous-host interactively to `erc-dangerous-hosts'. ;;;*** -;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (22230 48822 707219 -;;;;;; 0)) +;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (22387 39327 413708 +;;;;;; 287000)) ;;; Generated autoloads from erc/erc-menu.el (autoload 'erc-menu-mode "erc-menu" nil t) ;;;*** -;;;### (autoloads nil "erc-netsplit" "erc/erc-netsplit.el" (22230 -;;;;;; 48822 707219 0)) +;;;### (autoloads nil "erc-netsplit" "erc/erc-netsplit.el" (22387 +;;;;;; 39327 413708 287000)) ;;; Generated autoloads from erc/erc-netsplit.el (autoload 'erc-netsplit-mode "erc-netsplit") @@ -9164,8 +9185,8 @@ Show who's gone. ;;;*** -;;;### (autoloads nil "erc-networks" "erc/erc-networks.el" (22230 -;;;;;; 48822 707219 0)) +;;;### (autoloads nil "erc-networks" "erc/erc-networks.el" (22387 +;;;;;; 39327 413708 287000)) ;;; Generated autoloads from erc/erc-networks.el (autoload 'erc-determine-network "erc-networks" "\ @@ -9182,8 +9203,8 @@ Interactively select a server to connect to using `erc-server-alist'. ;;;*** -;;;### (autoloads nil "erc-notify" "erc/erc-notify.el" (22230 48822 -;;;;;; 707219 0)) +;;;### (autoloads nil "erc-notify" "erc/erc-notify.el" (22387 39327 +;;;;;; 414708 283000)) ;;; Generated autoloads from erc/erc-notify.el (autoload 'erc-notify-mode "erc-notify" nil t) @@ -9201,36 +9222,36 @@ with args, toggle notify status of people. ;;;*** -;;;### (autoloads nil "erc-page" "erc/erc-page.el" (22230 48822 707219 -;;;;;; 0)) +;;;### (autoloads nil "erc-page" "erc/erc-page.el" (22387 39327 415708 +;;;;;; 280000)) ;;; Generated autoloads from erc/erc-page.el (autoload 'erc-page-mode "erc-page") ;;;*** -;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (22230 -;;;;;; 48822 707219 0)) +;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (22387 +;;;;;; 39327 415708 280000)) ;;; Generated autoloads from erc/erc-pcomplete.el (autoload 'erc-completion-mode "erc-pcomplete" nil t) ;;;*** -;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (22230 48822 -;;;;;; 707219 0)) +;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (22387 39327 +;;;;;; 415708 280000)) ;;; Generated autoloads from erc/erc-replace.el (autoload 'erc-replace-mode "erc-replace") ;;;*** -;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (22230 48822 707219 -;;;;;; 0)) +;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (22387 39327 416708 +;;;;;; 276000)) ;;; Generated autoloads from erc/erc-ring.el (autoload 'erc-ring-mode "erc-ring" nil t) ;;;*** -;;;### (autoloads nil "erc-services" "erc/erc-services.el" (22230 -;;;;;; 48822 708219 0)) +;;;### (autoloads nil "erc-services" "erc/erc-services.el" (22387 +;;;;;; 39327 416708 276000)) ;;; Generated autoloads from erc/erc-services.el (autoload 'erc-services-mode "erc-services" nil t) @@ -9247,15 +9268,15 @@ When called interactively, read the password using `read-passwd'. ;;;*** -;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (22230 48822 -;;;;;; 708219 0)) +;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (22387 39327 +;;;;;; 416708 276000)) ;;; Generated autoloads from erc/erc-sound.el (autoload 'erc-sound-mode "erc-sound") ;;;*** -;;;### (autoloads nil "erc-speedbar" "erc/erc-speedbar.el" (22230 -;;;;;; 48822 708219 0)) +;;;### (autoloads nil "erc-speedbar" "erc/erc-speedbar.el" (22387 +;;;;;; 39327 417708 273000)) ;;; Generated autoloads from erc/erc-speedbar.el (autoload 'erc-speedbar-browser "erc-speedbar" "\ @@ -9266,27 +9287,28 @@ This will add a speedbar major display mode. ;;;*** -;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (22230 -;;;;;; 48822 708219 0)) +;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (22387 +;;;;;; 39327 417708 273000)) ;;; Generated autoloads from erc/erc-spelling.el (autoload 'erc-spelling-mode "erc-spelling" nil t) ;;;*** -;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (22290 3771 -;;;;;; 170246 521000)) +;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (22387 39327 +;;;;;; 417708 273000)) ;;; Generated autoloads from erc/erc-stamp.el (autoload 'erc-timestamp-mode "erc-stamp" nil t) ;;;*** -;;;### (autoloads nil "erc-track" "erc/erc-track.el" (22290 3771 -;;;;;; 170246 521000)) +;;;### (autoloads nil "erc-track" "erc/erc-track.el" (22387 39327 +;;;;;; 418708 269000)) ;;; Generated autoloads from erc/erc-track.el (defvar erc-track-minor-mode nil "\ Non-nil if Erc-Track minor mode is enabled. -See the command `erc-track-minor-mode' for a description of this minor mode.") +See the `erc-track-minor-mode' command +for a description of this minor mode.") (custom-autoload 'erc-track-minor-mode "erc-track" nil) @@ -9306,8 +9328,8 @@ keybindings will not do anything useful. ;;;*** -;;;### (autoloads nil "erc-truncate" "erc/erc-truncate.el" (22230 -;;;;;; 48822 708219 0)) +;;;### (autoloads nil "erc-truncate" "erc/erc-truncate.el" (22387 +;;;;;; 39327 419708 266000)) ;;; Generated autoloads from erc/erc-truncate.el (autoload 'erc-truncate-mode "erc-truncate" nil t) @@ -9326,8 +9348,8 @@ Meant to be used in hooks, like `erc-insert-post-hook'. ;;;*** -;;;### (autoloads nil "erc-xdcc" "erc/erc-xdcc.el" (22230 48822 708219 -;;;;;; 0)) +;;;### (autoloads nil "erc-xdcc" "erc/erc-xdcc.el" (22387 39327 419708 +;;;;;; 266000)) ;;; Generated autoloads from erc/erc-xdcc.el (autoload 'erc-xdcc-mode "erc-xdcc") @@ -9338,8 +9360,8 @@ Add a file to `erc-xdcc-files'. ;;;*** -;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (22230 48822 692220 -;;;;;; 0)) +;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (22387 39327 302708 +;;;;;; 683000)) ;;; Generated autoloads from emacs-lisp/ert.el (autoload 'ert-deftest "ert" "\ @@ -9408,8 +9430,8 @@ Display the documentation for TEST-OR-TEST-NAME (a symbol or ert-test). ;;;*** -;;;### (autoloads nil "ert-x" "emacs-lisp/ert-x.el" (22290 3771 161246 -;;;;;; 579000)) +;;;### (autoloads nil "ert-x" "emacs-lisp/ert-x.el" (22387 39327 +;;;;;; 301708 687000)) ;;; Generated autoloads from emacs-lisp/ert-x.el (put 'ert-with-test-buffer 'lisp-indent-function 1) @@ -9421,8 +9443,8 @@ Kill all test buffers that are still live. ;;;*** -;;;### (autoloads nil "esh-mode" "eshell/esh-mode.el" (22290 3771 -;;;;;; 174246 495000)) +;;;### (autoloads nil "esh-mode" "eshell/esh-mode.el" (22587 59854 +;;;;;; 958142 856000)) ;;; Generated autoloads from eshell/esh-mode.el (autoload 'eshell-mode "esh-mode" "\ @@ -9432,8 +9454,8 @@ Emacs shell interactive mode. ;;;*** -;;;### (autoloads nil "eshell" "eshell/eshell.el" (22290 3771 174246 -;;;;;; 495000)) +;;;### (autoloads nil "eshell" "eshell/eshell.el" (22387 39327 436708 +;;;;;; 205000)) ;;; Generated autoloads from eshell/eshell.el (push (purecopy '(eshell 2 4 2)) package--builtin-versions) @@ -9468,8 +9490,8 @@ corresponding to a successful execution. ;;;*** -;;;### (autoloads nil "etags" "progmodes/etags.el" (22230 48822 878219 -;;;;;; 0)) +;;;### (autoloads nil "etags" "progmodes/etags.el" (22490 22724 15599 +;;;;;; 212000)) ;;; Generated autoloads from progmodes/etags.el (defvar tags-file-name nil "\ @@ -9737,8 +9759,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. @@ -9784,8 +9804,8 @@ for \\[find-tag] (which see). ;;;*** -;;;### (autoloads nil "ethio-util" "language/ethio-util.el" (22230 -;;;;;; 48822 770219 0)) +;;;### (autoloads nil "ethio-util" "language/ethio-util.el" (22387 +;;;;;; 39327 650707 441000)) ;;; Generated autoloads from language/ethio-util.el (autoload 'setup-ethiopic-environment-internal "ethio-util" "\ @@ -9953,7 +9973,7 @@ With ARG, insert that many delimiters. ;;;*** -;;;### (autoloads nil "eudc" "net/eudc.el" (22230 48822 807219 0)) +;;;### (autoloads nil "eudc" "net/eudc.el" (22387 39327 971706 295000)) ;;; Generated autoloads from net/eudc.el (autoload 'eudc-set-server "eudc" "\ @@ -10007,8 +10027,8 @@ This does nothing except loading eudc by autoload side-effect. ;;;*** -;;;### (autoloads nil "eudc-bob" "net/eudc-bob.el" (22230 48822 806219 -;;;;;; 0)) +;;;### (autoloads nil "eudc-bob" "net/eudc-bob.el" (22387 39327 968706 +;;;;;; 306000)) ;;; Generated autoloads from net/eudc-bob.el (autoload 'eudc-display-generic-binary "eudc-bob" "\ @@ -10043,8 +10063,8 @@ Display a button for the JPEG DATA. ;;;*** -;;;### (autoloads nil "eudc-export" "net/eudc-export.el" (22230 48822 -;;;;;; 806219 0)) +;;;### (autoloads nil "eudc-export" "net/eudc-export.el" (22387 39327 +;;;;;; 969706 302000)) ;;; Generated autoloads from net/eudc-export.el (autoload 'eudc-insert-record-at-point-into-bbdb "eudc-export" "\ @@ -10060,8 +10080,8 @@ Call `eudc-insert-record-at-point-into-bbdb' if on a record. ;;;*** -;;;### (autoloads nil "eudc-hotlist" "net/eudc-hotlist.el" (22230 -;;;;;; 48822 806219 0)) +;;;### (autoloads nil "eudc-hotlist" "net/eudc-hotlist.el" (22387 +;;;;;; 39327 970706 298000)) ;;; Generated autoloads from net/eudc-hotlist.el (autoload 'eudc-edit-hotlist "eudc-hotlist" "\ @@ -10071,8 +10091,8 @@ Edit the hotlist of directory servers in a specialized buffer. ;;;*** -;;;### (autoloads nil "ewoc" "emacs-lisp/ewoc.el" (22230 48822 692220 -;;;;;; 0)) +;;;### (autoloads nil "ewoc" "emacs-lisp/ewoc.el" (22387 39327 303708 +;;;;;; 680000)) ;;; Generated autoloads from emacs-lisp/ewoc.el (autoload 'ewoc-create "ewoc" "\ @@ -10098,7 +10118,7 @@ fourth arg NOSEP non-nil inhibits this. ;;;*** -;;;### (autoloads nil "eww" "net/eww.el" (22290 3771 251245 997000)) +;;;### (autoloads nil "eww" "net/eww.el" (22387 39327 973706 288000)) ;;; Generated autoloads from net/eww.el (defvar eww-suggest-uris '(eww-links-at-point url-get-url-at-point eww-current-url) "\ @@ -10145,8 +10165,8 @@ Display the bookmarks. ;;;*** -;;;### (autoloads nil "executable" "progmodes/executable.el" (22230 -;;;;;; 48822 879219 0)) +;;;### (autoloads nil "executable" "progmodes/executable.el" (22387 +;;;;;; 39328 325705 31000)) ;;; Generated autoloads from progmodes/executable.el (autoload 'executable-command-find-posix-p "executable" "\ @@ -10181,7 +10201,7 @@ file modes. ;;;*** -;;;### (autoloads nil "expand" "expand.el" (22230 48822 713219 0)) +;;;### (autoloads nil "expand" "expand.el" (22387 39326 605711 172000)) ;;; Generated autoloads from expand.el (autoload 'expand-add-abbrevs "expand" "\ @@ -10230,8 +10250,8 @@ This is used only in conjunction with `expand-add-abbrevs'. ;;;*** -;;;### (autoloads nil "f90" "progmodes/f90.el" (22266 10298 456370 -;;;;;; 0)) +;;;### (autoloads nil "f90" "progmodes/f90.el" (22587 59854 959142 +;;;;;; 850000)) ;;; Generated autoloads from progmodes/f90.el (autoload 'f90-mode "f90" "\ @@ -10298,8 +10318,8 @@ with no args, if that value is non-nil. ;;;*** -;;;### (autoloads nil "face-remap" "face-remap.el" (22290 3781 417180 -;;;;;; 295000)) +;;;### (autoloads nil "face-remap" "face-remap.el" (22387 39326 606711 +;;;;;; 168000)) ;;; Generated autoloads from face-remap.el (autoload 'face-remap-add-relative "face-remap" "\ @@ -10458,8 +10478,8 @@ Besides the choice of face, it is the same as `buffer-face-mode'. ;;;*** -;;;### (autoloads nil "feedmail" "mail/feedmail.el" (22230 48822 -;;;;;; 788219 0)) +;;;### (autoloads nil "feedmail" "mail/feedmail.el" (22387 39327 +;;;;;; 901706 545000)) ;;; Generated autoloads from mail/feedmail.el (push (purecopy '(feedmail 11)) package--builtin-versions) @@ -10513,7 +10533,7 @@ you can set `feedmail-queue-reminder-alist' to nil. ;;;*** -;;;### (autoloads nil "ffap" "ffap.el" (22290 3781 417180 295000)) +;;;### (autoloads nil "ffap" "ffap.el" (22387 39326 611711 151000)) ;;; Generated autoloads from ffap.el (autoload 'ffap-next "ffap" "\ @@ -10576,8 +10596,8 @@ Evaluate the forms in variable `ffap-bindings'. ;;;*** -;;;### (autoloads nil "filecache" "filecache.el" (22230 48822 714219 -;;;;;; 0)) +;;;### (autoloads nil "filecache" "filecache.el" (22387 39326 612711 +;;;;;; 147000)) ;;; Generated autoloads from filecache.el (autoload 'file-cache-add-directory "filecache" "\ @@ -10634,8 +10654,8 @@ the name is considered already unique; only the second substitution ;;;*** -;;;### (autoloads nil "filenotify" "filenotify.el" (22266 10298 401370 -;;;;;; 0)) +;;;### (autoloads nil "filenotify" "filenotify.el" (22387 39326 612711 +;;;;;; 147000)) ;;; Generated autoloads from filenotify.el (autoload 'file-notify-handle-event "filenotify" "\ @@ -10650,7 +10670,8 @@ Otherwise, signal a `file-notify-error'. ;;;*** -;;;### (autoloads nil "files-x" "files-x.el" (22290 3771 176246 482000)) +;;;### (autoloads nil "files-x" "files-x.el" (22387 39326 613711 +;;;;;; 143000)) ;;; Generated autoloads from files-x.el (autoload 'add-file-local-variable "files-x" "\ @@ -10715,8 +10736,8 @@ Copy directory-local variables to the -*- line. ;;;*** -;;;### (autoloads nil "filesets" "filesets.el" (22230 48822 717219 -;;;;;; 0)) +;;;### (autoloads nil "filesets" "filesets.el" (22387 39326 618711 +;;;;;; 125000)) ;;; Generated autoloads from filesets.el (autoload 'filesets-init "filesets" "\ @@ -10727,8 +10748,8 @@ Set up hooks, load the cache file -- if existing -- and build the menu. ;;;*** -;;;### (autoloads nil "find-cmd" "find-cmd.el" (22230 48822 717219 -;;;;;; 0)) +;;;### (autoloads nil "find-cmd" "find-cmd.el" (22387 39326 618711 +;;;;;; 125000)) ;;; Generated autoloads from find-cmd.el (push (purecopy '(find-cmd 0 6)) package--builtin-versions) @@ -10748,8 +10769,8 @@ result is a string that should be ready for the command line. ;;;*** -;;;### (autoloads nil "find-dired" "find-dired.el" (22290 3771 179246 -;;;;;; 463000)) +;;;### (autoloads nil "find-dired" "find-dired.el" (22387 39326 619711 +;;;;;; 122000)) ;;; Generated autoloads from find-dired.el (autoload 'find-dired "find-dired" "\ @@ -10789,8 +10810,8 @@ use in place of \"-ls\" as the final argument. ;;;*** -;;;### (autoloads nil "find-file" "find-file.el" (22290 3771 179246 -;;;;;; 463000)) +;;;### (autoloads nil "find-file" "find-file.el" (22387 39326 619711 +;;;;;; 122000)) ;;; Generated autoloads from find-file.el (defvar ff-special-constructs `((,(purecopy "^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]") lambda nil (buffer-substring (match-beginning 2) (match-end 2)))) "\ @@ -10880,8 +10901,8 @@ Visit the file you click on in another window. ;;;*** -;;;### (autoloads nil "find-func" "emacs-lisp/find-func.el" (22230 -;;;;;; 48822 692220 0)) +;;;### (autoloads nil "find-func" "emacs-lisp/find-func.el" (22578 +;;;;;; 62356 716212 159000)) ;;; Generated autoloads from emacs-lisp/find-func.el (autoload 'find-library "find-func" "\ @@ -11051,8 +11072,8 @@ Define some key bindings for the find-function family of functions. ;;;*** -;;;### (autoloads nil "find-lisp" "find-lisp.el" (22230 48822 717219 -;;;;;; 0)) +;;;### (autoloads nil "find-lisp" "find-lisp.el" (22387 39326 620711 +;;;;;; 118000)) ;;; Generated autoloads from find-lisp.el (autoload 'find-lisp-find-dired "find-lisp" "\ @@ -11072,7 +11093,7 @@ Change the filter on a `find-lisp-find-dired' buffer to REGEXP. ;;;*** -;;;### (autoloads nil "finder" "finder.el" (22230 48822 717219 0)) +;;;### (autoloads nil "finder" "finder.el" (22387 39326 621711 115000)) ;;; Generated autoloads from finder.el (push (purecopy '(finder 1 0)) package--builtin-versions) @@ -11094,8 +11115,8 @@ Find packages matching a given keyword. ;;;*** -;;;### (autoloads nil "flow-ctrl" "flow-ctrl.el" (22230 48822 717219 -;;;;;; 0)) +;;;### (autoloads nil "flow-ctrl" "flow-ctrl.el" (22387 39326 622711 +;;;;;; 111000)) ;;; Generated autoloads from flow-ctrl.el (autoload 'enable-flow-control "flow-ctrl" "\ @@ -11116,8 +11137,8 @@ to get the effect of a C-q. ;;;*** -;;;### (autoloads nil "flow-fill" "gnus/flow-fill.el" (22290 3771 -;;;;;; 183246 437000)) +;;;### (autoloads nil "flow-fill" "gnus/flow-fill.el" (22387 39327 +;;;;;; 449708 159000)) ;;; Generated autoloads from gnus/flow-fill.el (autoload 'fill-flowed-encode "flow-fill" "\ @@ -11132,8 +11153,8 @@ to get the effect of a C-q. ;;;*** -;;;### (autoloads nil "flymake" "progmodes/flymake.el" (22230 48822 -;;;;;; 880219 0)) +;;;### (autoloads nil "flymake" "progmodes/flymake.el" (22387 39328 +;;;;;; 328705 20000)) ;;; Generated autoloads from progmodes/flymake.el (push (purecopy '(flymake 0 3)) package--builtin-versions) @@ -11163,8 +11184,8 @@ Turn flymake mode off. ;;;*** -;;;### (autoloads nil "flyspell" "textmodes/flyspell.el" (22290 3771 -;;;;;; 322245 539000)) +;;;### (autoloads nil "flyspell" "textmodes/flyspell.el" (22387 39328 +;;;;;; 535704 281000)) ;;; Generated autoloads from textmodes/flyspell.el (autoload 'flyspell-prog-mode "flyspell" "\ @@ -11234,14 +11255,14 @@ Flyspell whole buffer. ;;;*** -;;;### (autoloads nil "foldout" "foldout.el" (22230 48822 717219 -;;;;;; 0)) +;;;### (autoloads nil "foldout" "foldout.el" (22387 39326 622711 +;;;;;; 111000)) ;;; Generated autoloads from foldout.el (push (purecopy '(foldout 1 10)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "follow" "follow.el" (22230 48822 718219 0)) +;;;### (autoloads nil "follow" "follow.el" (22387 39326 623711 108000)) ;;; Generated autoloads from follow.el (autoload 'turn-on-follow-mode "follow" "\ @@ -11272,11 +11293,11 @@ virtual window. This is accomplished by two main techniques: makes it possible to walk between windows using normal cursor movement commands. -Follow mode comes to its prime when used on a large screen and two -side-by-side windows are used. The user can, with the help of Follow -mode, use two full-height windows as though they would have been -one. Imagine yourself editing a large function, or section of text, -and being able to use 144 lines instead of the normal 72... (your +Follow mode comes to its prime when used on a large screen and two or +more side-by-side windows are used. The user can, with the help of +Follow mode, use these full-height windows as though they were one. +Imagine yourself editing a large function, or section of text, and +being able to use 144 or 216 lines instead of the normal 72... (your mileage may vary). To split one large window into two side-by-side windows, the commands @@ -11291,6 +11312,34 @@ Keys specific to Follow mode: \(fn &optional ARG)" t nil) +(autoload 'follow-scroll-up-window "follow" "\ +Scroll text in a Follow mode window up by that window's size. +The other windows in the window chain will scroll synchronously. + +If called with no ARG, the `next-screen-context-lines' last lines of +the window will be visible after the scroll. + +If called with an argument, scroll ARG lines up. +Negative ARG means scroll downward. + +Works like `scroll-up' when not in Follow mode. + +\(fn &optional ARG)" t nil) + +(autoload 'follow-scroll-down-window "follow" "\ +Scroll text in a Follow mode window down by that window's size. +The other windows in the window chain will scroll synchronously. + +If called with no ARG, the `next-screen-context-lines' top lines of +the window in the chain will be visible after the scroll. + +If called with an argument, scroll ARG lines down. +Negative ARG means scroll upward. + +Works like `scroll-down' when not in Follow mode. + +\(fn &optional ARG)" t nil) + (autoload 'follow-scroll-up "follow" "\ Scroll text in a Follow mode window chain up. @@ -11335,8 +11384,8 @@ selected if the original window is the first one in the frame. ;;;*** -;;;### (autoloads nil "footnote" "mail/footnote.el" (22230 48822 -;;;;;; 788219 0)) +;;;### (autoloads nil "footnote" "mail/footnote.el" (22387 39327 +;;;;;; 923706 466000)) ;;; Generated autoloads from mail/footnote.el (push (purecopy '(footnote 0 19)) package--builtin-versions) @@ -11346,7 +11395,7 @@ With a prefix argument ARG, enable Footnote mode if ARG is positive, and disable it otherwise. If called from Lisp, enable the mode if ARG is omitted or nil. -Footnode mode is a buffer-local minor mode. If enabled, it +Footnote mode is a buffer-local minor mode. If enabled, it provides footnote support for `message-mode'. To get started, play around with the following keys: \\{footnote-minor-mode-map} @@ -11355,7 +11404,7 @@ play around with the following keys: ;;;*** -;;;### (autoloads nil "forms" "forms.el" (22266 10298 403370 0)) +;;;### (autoloads nil "forms" "forms.el" (22387 39326 627711 93000)) ;;; Generated autoloads from forms.el (autoload 'forms-mode "forms" "\ @@ -11391,8 +11440,8 @@ Visit a file in Forms mode in other window. ;;;*** -;;;### (autoloads nil "fortran" "progmodes/fortran.el" (22230 48822 -;;;;;; 880219 0)) +;;;### (autoloads nil "fortran" "progmodes/fortran.el" (22387 39328 +;;;;;; 329705 17000)) ;;; Generated autoloads from progmodes/fortran.el (autoload 'fortran-mode "fortran" "\ @@ -11469,8 +11518,8 @@ with no args, if that value is non-nil. ;;;*** -;;;### (autoloads nil "fortune" "play/fortune.el" (22290 3771 283245 -;;;;;; 791000)) +;;;### (autoloads nil "fortune" "play/fortune.el" (22387 39328 261705 +;;;;;; 259000)) ;;; Generated autoloads from play/fortune.el (autoload 'fortune-add-fortune "fortune" "\ @@ -11518,8 +11567,8 @@ and choose the directory as the fortune-file. ;;;*** -;;;### (autoloads nil "frameset" "frameset.el" (22230 48822 720219 -;;;;;; 0)) +;;;### (autoloads nil "frameset" "frameset.el" (22387 39326 628711 +;;;;;; 90000)) ;;; Generated autoloads from frameset.el (defvar frameset-session-filter-alist '((name . :never) (left . frameset-filter-iconified) (minibuffer . frameset-filter-minibuffer) (top . frameset-filter-iconified)) "\ @@ -11705,20 +11754,21 @@ Interactively, reads the register using `register-read-with-preview'. ;;;*** -;;;### (autoloads nil "gamegrid" "play/gamegrid.el" (22230 48822 -;;;;;; 860219 0)) +;;;### (autoloads nil "gamegrid" "play/gamegrid.el" (22387 39328 +;;;;;; 261705 259000)) ;;; Generated autoloads from play/gamegrid.el (push (purecopy '(gamegrid 1 2)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (22230 48822 -;;;;;; 881219 0)) +;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (22578 62356 +;;;;;; 739212 35000)) ;;; Generated autoloads from progmodes/gdb-mi.el (defvar gdb-enable-debug nil "\ Non-nil if Gdb-Enable-Debug mode is enabled. -See the command `gdb-enable-debug' for a description of this minor mode.") +See the `gdb-enable-debug' command +for a description of this minor mode.") (custom-autoload 'gdb-enable-debug "gdb-mi" nil) @@ -11733,14 +11783,18 @@ the list) is deleted every time a new one is added (at the front). \(fn &optional ARG)" t nil) (autoload 'gdb "gdb-mi" "\ -Run gdb on program FILE in buffer *gud-FILE*. -The directory containing FILE becomes the initial working directory -and source-file directory for your debugger. - -COMMAND-LINE is the shell command for starting the gdb session. -It should be a string consisting of the name of the gdb -executable followed by command line options. The command line -options should include \"-i=mi\" to use gdb's MI text interface. +Run gdb passing it COMMAND-LINE as arguments. + +If COMMAND-LINE names a program FILE to debug, gdb will run in +a buffer named *gud-FILE*, and the directory containing FILE +becomes the initial working directory and source-file directory +for your debugger. +If COMMAND-LINE requests that gdb attaches to a process PID, gdb +will run in *gud-PID*, otherwise it will run in *gud*; in these +cases the initial working directory is the default-directory of +the buffer in which this command was invoked. + +COMMAND-LINE should include \"-i=mi\" to use gdb's MI text interface. Note that the old \"--annotate\" option is no longer supported. If option `gdb-many-windows' is nil (the default value) then gdb just @@ -11790,8 +11844,8 @@ detailed description of this mode. ;;;*** -;;;### (autoloads nil "generic" "emacs-lisp/generic.el" (22230 48822 -;;;;;; 693220 0)) +;;;### (autoloads nil "generic" "emacs-lisp/generic.el" (22387 39327 +;;;;;; 306708 669000)) ;;; Generated autoloads from emacs-lisp/generic.el (defvar generic-mode-list nil "\ @@ -11871,8 +11925,8 @@ regular expression that can be used as an element of ;;;*** -;;;### (autoloads nil "glasses" "progmodes/glasses.el" (22230 48822 -;;;;;; 881219 0)) +;;;### (autoloads nil "glasses" "progmodes/glasses.el" (22387 39328 +;;;;;; 335704 995000)) ;;; Generated autoloads from progmodes/glasses.el (autoload 'glasses-mode "glasses" "\ @@ -11886,8 +11940,8 @@ add virtual separators (like underscores) at places they belong to. ;;;*** -;;;### (autoloads nil "gmm-utils" "gnus/gmm-utils.el" (22290 3781 -;;;;;; 418180 289000)) +;;;### (autoloads nil "gmm-utils" "gnus/gmm-utils.el" (22387 39327 +;;;;;; 449708 159000)) ;;; Generated autoloads from gnus/gmm-utils.el (autoload 'gmm-regexp-concat "gmm-utils" "\ @@ -11941,7 +11995,7 @@ DEFAULT-MAP specifies the default key map for ICON-LIST. ;;;*** -;;;### (autoloads nil "gnus" "gnus/gnus.el" (22290 3771 204246 301000)) +;;;### (autoloads nil "gnus" "gnus/gnus.el" (22387 39327 493708 2000)) ;;; Generated autoloads from gnus/gnus.el (push (purecopy '(gnus 5 13)) package--builtin-versions) (when (fboundp 'custom-autoload) @@ -11991,8 +12045,8 @@ prompt the user for the name of an NNTP server to use. ;;;*** -;;;### (autoloads nil "gnus-agent" "gnus/gnus-agent.el" (22290 3771 -;;;;;; 185246 424000)) +;;;### (autoloads nil "gnus-agent" "gnus/gnus-agent.el" (22387 39327 +;;;;;; 450708 155000)) ;;; Generated autoloads from gnus/gnus-agent.el (autoload 'gnus-unplugged "gnus-agent" "\ @@ -12082,8 +12136,8 @@ CLEAN is obsolete and ignored. ;;;*** -;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (22290 3781 419180 -;;;;;; 283000)) +;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (22578 62356 +;;;;;; 721212 132000)) ;;; Generated autoloads from gnus/gnus-art.el (autoload 'gnus-article-prepare-display "gnus-art" "\ @@ -12093,8 +12147,8 @@ Make the current buffer look like a nice article. ;;;*** -;;;### (autoloads nil "gnus-bookmark" "gnus/gnus-bookmark.el" (22290 -;;;;;; 3771 188246 405000)) +;;;### (autoloads nil "gnus-bookmark" "gnus/gnus-bookmark.el" (22387 +;;;;;; 39327 457708 130000)) ;;; Generated autoloads from gnus/gnus-bookmark.el (autoload 'gnus-bookmark-set "gnus-bookmark" "\ @@ -12117,8 +12171,8 @@ deletion, or > if it is flagged for displaying. ;;;*** -;;;### (autoloads nil "gnus-cache" "gnus/gnus-cache.el" (22290 3771 -;;;;;; 188246 405000)) +;;;### (autoloads nil "gnus-cache" "gnus/gnus-cache.el" (22387 39327 +;;;;;; 457708 130000)) ;;; Generated autoloads from gnus/gnus-cache.el (autoload 'gnus-jog-cache "gnus-cache" "\ @@ -12159,8 +12213,8 @@ supported. ;;;*** -;;;### (autoloads nil "gnus-delay" "gnus/gnus-delay.el" (22290 3771 -;;;;;; 189246 398000)) +;;;### (autoloads nil "gnus-delay" "gnus/gnus-delay.el" (22387 39327 +;;;;;; 460708 119000)) ;;; Generated autoloads from gnus/gnus-delay.el (autoload 'gnus-delay-article "gnus-delay" "\ @@ -12195,8 +12249,8 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil. ;;;*** -;;;### (autoloads nil "gnus-diary" "gnus/gnus-diary.el" (22290 3771 -;;;;;; 189246 398000)) +;;;### (autoloads nil "gnus-diary" "gnus/gnus-diary.el" (22387 39327 +;;;;;; 461708 116000)) ;;; Generated autoloads from gnus/gnus-diary.el (autoload 'gnus-user-format-function-d "gnus-diary" "\ @@ -12211,8 +12265,8 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil. ;;;*** -;;;### (autoloads nil "gnus-dired" "gnus/gnus-dired.el" (22290 3771 -;;;;;; 189246 398000)) +;;;### (autoloads nil "gnus-dired" "gnus/gnus-dired.el" (22387 39327 +;;;;;; 461708 116000)) ;;; Generated autoloads from gnus/gnus-dired.el (autoload 'turn-on-gnus-dired-mode "gnus-dired" "\ @@ -12222,8 +12276,8 @@ Convenience method to turn on gnus-dired-mode. ;;;*** -;;;### (autoloads nil "gnus-draft" "gnus/gnus-draft.el" (22290 3771 -;;;;;; 189246 398000)) +;;;### (autoloads nil "gnus-draft" "gnus/gnus-draft.el" (22387 39327 +;;;;;; 461708 116000)) ;;; Generated autoloads from gnus/gnus-draft.el (autoload 'gnus-draft-reminder "gnus-draft" "\ @@ -12233,8 +12287,8 @@ Reminder user if there are unsent drafts. ;;;*** -;;;### (autoloads nil "gnus-fun" "gnus/gnus-fun.el" (22290 3771 189246 -;;;;;; 398000)) +;;;### (autoloads nil "gnus-fun" "gnus/gnus-fun.el" (22387 39327 +;;;;;; 463708 109000)) ;;; Generated autoloads from gnus/gnus-fun.el (autoload 'gnus--random-face-with-type "gnus-fun" "\ @@ -12299,8 +12353,8 @@ Insert a random Face header from `gnus-face-directory'. ;;;*** -;;;### (autoloads nil "gnus-gravatar" "gnus/gnus-gravatar.el" (22290 -;;;;;; 3771 190246 392000)) +;;;### (autoloads nil "gnus-gravatar" "gnus/gnus-gravatar.el" (22387 +;;;;;; 39327 463708 109000)) ;;; Generated autoloads from gnus/gnus-gravatar.el (autoload 'gnus-treat-from-gravatar "gnus-gravatar" "\ @@ -12317,8 +12371,8 @@ If gravatars are already displayed, remove them. ;;;*** -;;;### (autoloads nil "gnus-group" "gnus/gnus-group.el" (22290 3771 -;;;;;; 192246 379000)) +;;;### (autoloads nil "gnus-group" "gnus/gnus-group.el" (22387 39327 +;;;;;; 465708 101000)) ;;; Generated autoloads from gnus/gnus-group.el (autoload 'gnus-fetch-group "gnus-group" "\ @@ -12335,8 +12389,8 @@ Pop up a frame and enter GROUP. ;;;*** -;;;### (autoloads nil "gnus-html" "gnus/gnus-html.el" (22290 3771 -;;;;;; 192246 379000)) +;;;### (autoloads nil "gnus-html" "gnus/gnus-html.el" (22387 39327 +;;;;;; 466708 98000)) ;;; Generated autoloads from gnus/gnus-html.el (autoload 'gnus-article-html "gnus-html" "\ @@ -12351,8 +12405,8 @@ Pop up a frame and enter GROUP. ;;;*** -;;;### (autoloads nil "gnus-kill" "gnus/gnus-kill.el" (22230 48822 -;;;;;; 734219 0)) +;;;### (autoloads nil "gnus-kill" "gnus/gnus-kill.el" (22387 39327 +;;;;;; 469708 87000)) ;;; Generated autoloads from gnus/gnus-kill.el (defalias 'gnus-batch-kill 'gnus-batch-score) @@ -12365,8 +12419,8 @@ Usage: emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score ;;;*** -;;;### (autoloads nil "gnus-ml" "gnus/gnus-ml.el" (22290 3771 193246 -;;;;;; 372000)) +;;;### (autoloads nil "gnus-ml" "gnus/gnus-ml.el" (22387 39327 470708 +;;;;;; 83000)) ;;; Generated autoloads from gnus/gnus-ml.el (autoload 'turn-on-gnus-mailing-list-mode "gnus-ml" "\ @@ -12389,8 +12443,8 @@ Minor mode for providing mailing-list commands. ;;;*** -;;;### (autoloads nil "gnus-mlspl" "gnus/gnus-mlspl.el" (22230 48822 -;;;;;; 735219 0)) +;;;### (autoloads nil "gnus-mlspl" "gnus/gnus-mlspl.el" (22387 39327 +;;;;;; 470708 83000)) ;;; Generated autoloads from gnus/gnus-mlspl.el (autoload 'gnus-group-split-setup "gnus-mlspl" "\ @@ -12490,8 +12544,8 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns: ;;;*** -;;;### (autoloads nil "gnus-msg" "gnus/gnus-msg.el" (22290 3771 193246 -;;;;;; 372000)) +;;;### (autoloads nil "gnus-msg" "gnus/gnus-msg.el" (22387 39327 +;;;;;; 471708 80000)) ;;; Generated autoloads from gnus/gnus-msg.el (autoload 'gnus-msg-mail "gnus-msg" "\ @@ -12518,7 +12572,7 @@ Like `message-reply'. ;;;*** ;;;### (autoloads nil "gnus-notifications" "gnus/gnus-notifications.el" -;;;;;; (22290 3771 193246 372000)) +;;;;;; (22387 39327 472708 76000)) ;;; Generated autoloads from gnus/gnus-notifications.el (autoload 'gnus-notifications "gnus-notifications" "\ @@ -12534,8 +12588,8 @@ This is typically a function to add in ;;;*** -;;;### (autoloads nil "gnus-picon" "gnus/gnus-picon.el" (22290 3771 -;;;;;; 193246 372000)) +;;;### (autoloads nil "gnus-picon" "gnus/gnus-picon.el" (22387 39327 +;;;;;; 472708 76000)) ;;; Generated autoloads from gnus/gnus-picon.el (autoload 'gnus-treat-from-picon "gnus-picon" "\ @@ -12558,8 +12612,8 @@ If picons are already displayed, remove them. ;;;*** -;;;### (autoloads nil "gnus-range" "gnus/gnus-range.el" (22230 48822 -;;;;;; 735219 0)) +;;;### (autoloads nil "gnus-range" "gnus/gnus-range.el" (22387 39327 +;;;;;; 473708 73000)) ;;; Generated autoloads from gnus/gnus-range.el (autoload 'gnus-sorted-difference "gnus-range" "\ @@ -12626,8 +12680,8 @@ Add NUM into sorted LIST by side effect. ;;;*** -;;;### (autoloads nil "gnus-registry" "gnus/gnus-registry.el" (22290 -;;;;;; 3771 194246 366000)) +;;;### (autoloads nil "gnus-registry" "gnus/gnus-registry.el" (22387 +;;;;;; 39327 473708 73000)) ;;; Generated autoloads from gnus/gnus-registry.el (autoload 'gnus-registry-initialize "gnus-registry" "\ @@ -12642,8 +12696,8 @@ Install the registry hooks. ;;;*** -;;;### (autoloads nil "gnus-sieve" "gnus/gnus-sieve.el" (22230 48822 -;;;;;; 736219 0)) +;;;### (autoloads nil "gnus-sieve" "gnus/gnus-sieve.el" (22387 39327 +;;;;;; 476708 62000)) ;;; Generated autoloads from gnus/gnus-sieve.el (autoload 'gnus-sieve-update "gnus-sieve" "\ @@ -12670,8 +12724,8 @@ See the documentation for these variables and functions for details. ;;;*** -;;;### (autoloads nil "gnus-spec" "gnus/gnus-spec.el" (22290 3771 -;;;;;; 194246 366000)) +;;;### (autoloads nil "gnus-spec" "gnus/gnus-spec.el" (22387 39327 +;;;;;; 476708 62000)) ;;; Generated autoloads from gnus/gnus-spec.el (autoload 'gnus-update-format "gnus-spec" "\ @@ -12681,8 +12735,8 @@ Update the format specification near point. ;;;*** -;;;### (autoloads nil "gnus-start" "gnus/gnus-start.el" (22290 3771 -;;;;;; 197246 347000)) +;;;### (autoloads nil "gnus-start" "gnus/gnus-start.el" (22387 39327 +;;;;;; 479708 51000)) ;;; Generated autoloads from gnus/gnus-start.el (autoload 'gnus-declare-backend "gnus-start" "\ @@ -12692,8 +12746,8 @@ Declare back end NAME with ABILITIES as a Gnus back end. ;;;*** -;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (22290 3771 200246 -;;;;;; 327000)) +;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (22387 39327 +;;;;;; 482708 41000)) ;;; Generated autoloads from gnus/gnus-sum.el (autoload 'gnus-summary-bookmark-jump "gnus-sum" "\ @@ -12704,8 +12758,8 @@ BOOKMARK is a bookmark name or a bookmark record. ;;;*** -;;;### (autoloads nil "gnus-sync" "gnus/gnus-sync.el" (22290 3771 -;;;;;; 201246 321000)) +;;;### (autoloads nil "gnus-sync" "gnus/gnus-sync.el" (22387 39327 +;;;;;; 486708 26000)) ;;; Generated autoloads from gnus/gnus-sync.el (autoload 'gnus-sync-initialize "gnus-sync" "\ @@ -12720,8 +12774,8 @@ Install the sync hooks. ;;;*** -;;;### (autoloads nil "gnus-win" "gnus/gnus-win.el" (22290 3771 204246 -;;;;;; 301000)) +;;;### (autoloads nil "gnus-win" "gnus/gnus-win.el" (22387 39327 +;;;;;; 491708 8000)) ;;; Generated autoloads from gnus/gnus-win.el (autoload 'gnus-add-configuration "gnus-win" "\ @@ -12731,8 +12785,8 @@ Add the window configuration CONF to `gnus-buffer-configuration'. ;;;*** -;;;### (autoloads nil "gnutls" "net/gnutls.el" (22290 3771 251245 -;;;;;; 997000)) +;;;### (autoloads nil "gnutls" "net/gnutls.el" (22387 39327 974706 +;;;;;; 284000)) ;;; Generated autoloads from net/gnutls.el (defvar gnutls-min-prime-bits 256 "\ @@ -12748,8 +12802,8 @@ A value of nil says to use the default GnuTLS value.") ;;;*** -;;;### (autoloads nil "gomoku" "play/gomoku.el" (22230 48822 860219 -;;;;;; 0)) +;;;### (autoloads nil "gomoku" "play/gomoku.el" (22387 39328 263705 +;;;;;; 252000)) ;;; Generated autoloads from play/gomoku.el (autoload 'gomoku "gomoku" "\ @@ -12775,8 +12829,8 @@ Use \\[describe-mode] for more info. ;;;*** -;;;### (autoloads nil "goto-addr" "net/goto-addr.el" (22230 48822 -;;;;;; 807219 0)) +;;;### (autoloads nil "goto-addr" "net/goto-addr.el" (22387 39327 +;;;;;; 974706 284000)) ;;; Generated autoloads from net/goto-addr.el (define-obsolete-function-alias 'goto-address-at-mouse 'goto-address-at-point "22.1") @@ -12817,8 +12871,8 @@ Like `goto-address-mode', but only for comments and strings. ;;;*** -;;;### (autoloads nil "gravatar" "gnus/gravatar.el" (22290 3771 204246 -;;;;;; 301000)) +;;;### (autoloads nil "gravatar" "gnus/gravatar.el" (22387 39327 +;;;;;; 494707 998000)) ;;; Generated autoloads from gnus/gravatar.el (autoload 'gravatar-retrieve "gravatar" "\ @@ -12834,8 +12888,8 @@ Retrieve MAIL-ADDRESS gravatar and returns it. ;;;*** -;;;### (autoloads nil "grep" "progmodes/grep.el" (22298 5692 411287 -;;;;;; 954000)) +;;;### (autoloads nil "grep" "progmodes/grep.el" (22387 39328 336704 +;;;;;; 992000)) ;;; Generated autoloads from progmodes/grep.el (defvar grep-window-height nil "\ @@ -13002,7 +13056,7 @@ file name to `*.gz', and sets `grep-highlight-matches' to `always'. ;;;*** -;;;### (autoloads nil "gs" "gs.el" (22230 48822 755219 0)) +;;;### (autoloads nil "gs" "gs.el" (22387 39326 630711 83000)) ;;; Generated autoloads from gs.el (autoload 'gs-load-image "gs" "\ @@ -13015,14 +13069,20 @@ the form \"WINDOW-ID PIXMAP-ID\". Value is non-nil if successful. ;;;*** -;;;### (autoloads nil "gud" "progmodes/gud.el" (22290 3771 297245 -;;;;;; 700000)) +;;;### (autoloads nil "gud" "progmodes/gud.el" (22432 21609 981325 +;;;;;; 89000)) ;;; Generated autoloads from progmodes/gud.el (autoload 'gud-gdb "gud" "\ -Run gdb on program FILE in buffer *gud-FILE*. -The directory containing FILE becomes the initial working -directory and source-file directory for your debugger. +Run gdb passing it COMMAND-LINE as arguments. +If COMMAND-LINE names a program FILE to debug, gdb will run in +a buffer named *gud-FILE*, and the directory containing FILE +becomes the initial working directory and source-file directory +for your debugger. +If COMMAND-LINE requests that gdb attaches to a process PID, gdb +will run in *gud-PID*, otherwise it will run in *gud*; in these +cases the initial working directory is the default-directory of +the buffer in which this command was invoked. \(fn COMMAND-LINE)" t nil) @@ -13094,7 +13154,8 @@ Major mode for editing GDB scripts. (defvar gud-tooltip-mode nil "\ Non-nil if Gud-Tooltip mode is enabled. -See the command `gud-tooltip-mode' for a description of this minor mode. +See the `gud-tooltip-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `gud-tooltip-mode'.") @@ -13111,8 +13172,8 @@ it if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (22230 48822 693220 -;;;;;; 0)) +;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (22490 22723 681600 +;;;;;; 690000)) ;;; Generated autoloads from emacs-lisp/gv.el (autoload 'gv-get "gv" "\ @@ -13207,15 +13268,15 @@ 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) ;;;*** -;;;### (autoloads nil "handwrite" "play/handwrite.el" (22230 48822 -;;;;;; 861219 0)) +;;;### (autoloads nil "handwrite" "play/handwrite.el" (22387 39328 +;;;;;; 263705 252000)) ;;; Generated autoloads from play/handwrite.el (autoload 'handwrite "handwrite" "\ @@ -13232,8 +13293,8 @@ Variables: `handwrite-linespace' (default 12) ;;;*** -;;;### (autoloads nil "hanoi" "play/hanoi.el" (22230 48822 861219 -;;;;;; 0)) +;;;### (autoloads nil "hanoi" "play/hanoi.el" (22387 39328 264705 +;;;;;; 249000)) ;;; Generated autoloads from play/hanoi.el (autoload 'hanoi "hanoi" "\ @@ -13260,8 +13321,8 @@ to be updated. ;;;*** -;;;### (autoloads nil "hashcash" "mail/hashcash.el" (22230 48822 -;;;;;; 788219 0)) +;;;### (autoloads nil "hashcash" "mail/hashcash.el" (22387 39327 +;;;;;; 924706 463000)) ;;; Generated autoloads from mail/hashcash.el (autoload 'hashcash-insert-payment "hashcash" "\ @@ -13303,8 +13364,8 @@ Prefix arg sets default accept amount temporarily. ;;;*** -;;;### (autoloads nil "help-at-pt" "help-at-pt.el" (22230 48822 755219 -;;;;;; 0)) +;;;### (autoloads nil "help-at-pt" "help-at-pt.el" (22387 39326 631711 +;;;;;; 79000)) ;;; Generated autoloads from help-at-pt.el (autoload 'help-at-pt-string "help-at-pt" "\ @@ -13431,12 +13492,13 @@ different regions. With numeric argument ARG, behaves like ;;;*** -;;;### (autoloads nil "help-fns" "help-fns.el" (22290 3771 224246 -;;;;;; 172000)) +;;;### (autoloads nil "help-fns" "help-fns.el" (22578 62356 721212 +;;;;;; 132000)) ;;; Generated autoloads from help-fns.el (autoload 'describe-function "help-fns" "\ Display the full documentation of FUNCTION (a symbol). +When called from lisp, FUNCTION may also be a function object. \(fn FUNCTION)" t nil) @@ -13519,8 +13581,8 @@ Produce a texinfo buffer with sorted doc-strings from the DOC file. ;;;*** -;;;### (autoloads nil "help-macro" "help-macro.el" (22230 48822 755219 -;;;;;; 0)) +;;;### (autoloads nil "help-macro" "help-macro.el" (22387 39326 632711 +;;;;;; 75000)) ;;; Generated autoloads from help-macro.el (defvar three-step-help nil "\ @@ -13534,8 +13596,8 @@ gives the window that lists the options.") ;;;*** -;;;### (autoloads nil "help-mode" "help-mode.el" (22261 18214 508021 -;;;;;; 0)) +;;;### (autoloads nil "help-mode" "help-mode.el" (22578 62356 721212 +;;;;;; 132000)) ;;; Generated autoloads from help-mode.el (autoload 'help-mode "help-mode" "\ @@ -13636,8 +13698,8 @@ BOOKMARK is a bookmark name or a bookmark record. ;;;*** -;;;### (autoloads nil "helper" "emacs-lisp/helper.el" (22230 48822 -;;;;;; 693220 0)) +;;;### (autoloads nil "helper" "emacs-lisp/helper.el" (22387 39327 +;;;;;; 307708 665000)) ;;; Generated autoloads from emacs-lisp/helper.el (autoload 'Helper-describe-bindings "helper" "\ @@ -13652,7 +13714,7 @@ Provide help for current mode. ;;;*** -;;;### (autoloads nil "hexl" "hexl.el" (22230 48822 756219 0)) +;;;### (autoloads nil "hexl" "hexl.el" (22387 39326 635711 65000)) ;;; Generated autoloads from hexl.el (autoload 'hexl-mode "hexl" "\ @@ -13746,8 +13808,8 @@ This discards the buffer's undo information. ;;;*** -;;;### (autoloads nil "hi-lock" "hi-lock.el" (22230 48822 756219 -;;;;;; 0)) +;;;### (autoloads nil "hi-lock" "hi-lock.el" (22387 39326 636711 +;;;;;; 61000)) ;;; Generated autoloads from hi-lock.el (autoload 'hi-lock-mode "hi-lock" "\ @@ -13817,7 +13879,8 @@ Hi-lock: end is found. A mode is excluded if it's in the list (defvar global-hi-lock-mode nil "\ Non-nil if Global Hi-Lock mode is enabled. -See the command `global-hi-lock-mode' for a description of this minor mode. +See the `global-hi-lock-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `global-hi-lock-mode'.") @@ -13914,8 +13977,8 @@ be found in variable `hi-lock-interactive-patterns'. ;;;*** -;;;### (autoloads nil "hideif" "progmodes/hideif.el" (22266 10298 -;;;;;; 457370 0)) +;;;### (autoloads nil "hideif" "progmodes/hideif.el" (22387 39328 +;;;;;; 338704 984000)) ;;; Generated autoloads from progmodes/hideif.el (autoload 'hide-ifdef-mode "hideif" "\ @@ -13962,8 +14025,8 @@ Several variables affect how the hiding is done: ;;;*** -;;;### (autoloads nil "hideshow" "progmodes/hideshow.el" (22290 3771 -;;;;;; 297245 700000)) +;;;### (autoloads nil "hideshow" "progmodes/hideshow.el" (22387 39328 +;;;;;; 339704 981000)) ;;; Generated autoloads from progmodes/hideshow.el (defvar hs-special-modes-alist (mapcar 'purecopy '((c-mode "{" "}" "/[*/]" nil nil) (c++-mode "{" "}" "/[*/]" nil nil) (bibtex-mode ("@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil nil) (js-mode "{" "}" "/[*/]" nil))) "\ @@ -14025,8 +14088,8 @@ Unconditionally turn off `hs-minor-mode'. ;;;*** -;;;### (autoloads nil "hilit-chg" "hilit-chg.el" (22230 48822 757219 -;;;;;; 0)) +;;;### (autoloads nil "hilit-chg" "hilit-chg.el" (22387 39326 637711 +;;;;;; 58000)) ;;; Generated autoloads from hilit-chg.el (autoload 'highlight-changes-mode "hilit-chg" "\ @@ -14136,7 +14199,8 @@ changes are made, so \\[highlight-changes-next-change] and (defvar global-highlight-changes-mode nil "\ Non-nil if Global Highlight-Changes mode is enabled. -See the command `global-highlight-changes-mode' for a description of this minor mode. +See the `global-highlight-changes-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `global-highlight-changes-mode'.") @@ -14157,8 +14221,8 @@ See `highlight-changes-mode' for more information on Highlight-Changes mode. ;;;*** -;;;### (autoloads nil "hippie-exp" "hippie-exp.el" (22230 48822 757219 -;;;;;; 0)) +;;;### (autoloads nil "hippie-exp" "hippie-exp.el" (22387 39326 638711 +;;;;;; 54000)) ;;; Generated autoloads from hippie-exp.el (push (purecopy '(hippie-exp 1 6)) package--builtin-versions) @@ -14190,8 +14254,8 @@ argument VERBOSE non-nil makes the function verbose. ;;;*** -;;;### (autoloads nil "hl-line" "hl-line.el" (22230 48822 757219 -;;;;;; 0)) +;;;### (autoloads nil "hl-line" "hl-line.el" (22387 39326 638711 +;;;;;; 54000)) ;;; Generated autoloads from hl-line.el (autoload 'hl-line-mode "hl-line" "\ @@ -14216,7 +14280,8 @@ addition to `hl-line-highlight' on `post-command-hook'. (defvar global-hl-line-mode nil "\ Non-nil if Global Hl-Line mode is enabled. -See the command `global-hl-line-mode' for a description of this minor mode. +See the `global-hl-line-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `global-hl-line-mode'.") @@ -14240,8 +14305,8 @@ Global-Hl-Line mode uses the functions `global-hl-line-unhighlight' and ;;;*** -;;;### (autoloads nil "holidays" "calendar/holidays.el" (22230 48822 -;;;;;; 652220 0)) +;;;### (autoloads nil "holidays" "calendar/holidays.el" (22387 39327 +;;;;;; 110709 369000)) ;;; Generated autoloads from calendar/holidays.el (defvar holiday-general-holidays (mapcar 'purecopy '((holiday-fixed 1 1 "New Year's Day") (holiday-float 1 1 3 "Martin Luther King Day") (holiday-fixed 2 2 "Groundhog Day") (holiday-fixed 2 14 "Valentine's Day") (holiday-float 2 1 3 "President's Day") (holiday-fixed 3 17 "St. Patrick's Day") (holiday-fixed 4 1 "April Fools' Day") (holiday-float 5 0 2 "Mother's Day") (holiday-float 5 1 -1 "Memorial Day") (holiday-fixed 6 14 "Flag Day") (holiday-float 6 0 3 "Father's Day") (holiday-fixed 7 4 "Independence Day") (holiday-float 9 1 1 "Labor Day") (holiday-float 10 1 2 "Columbus Day") (holiday-fixed 10 31 "Halloween") (holiday-fixed 11 11 "Veteran's Day") (holiday-float 11 4 4 "Thanksgiving"))) "\ @@ -14351,8 +14416,8 @@ The optional LABEL is used to label the buffer created. ;;;*** -;;;### (autoloads nil "html2text" "gnus/html2text.el" (22290 3771 -;;;;;; 204246 301000)) +;;;### (autoloads nil "html2text" "gnus/html2text.el" (22387 39327 +;;;;;; 495707 994000)) ;;; Generated autoloads from gnus/html2text.el (autoload 'html2text "html2text" "\ @@ -14362,8 +14427,8 @@ Convert HTML to plain text in the current buffer. ;;;*** -;;;### (autoloads nil "htmlfontify" "htmlfontify.el" (22290 3771 -;;;;;; 229246 140000)) +;;;### (autoloads nil "htmlfontify" "htmlfontify.el" (22387 39326 +;;;;;; 639711 51000)) ;;; Generated autoloads from htmlfontify.el (push (purecopy '(htmlfontify 0 21)) package--builtin-versions) @@ -14396,8 +14461,8 @@ You may also want to set `hfy-page-header' and `hfy-page-footer'. ;;;*** -;;;### (autoloads nil "ibuf-macs" "ibuf-macs.el" (22230 48822 758219 -;;;;;; 0)) +;;;### (autoloads nil "ibuf-macs" "ibuf-macs.el" (22387 39326 641711 +;;;;;; 43000)) ;;; Generated autoloads from ibuf-macs.el (autoload 'define-ibuffer-column "ibuf-macs" "\ @@ -14499,7 +14564,8 @@ bound to the current value of the filter. ;;;*** -;;;### (autoloads nil "ibuffer" "ibuffer.el" (22290 3771 230246 133000)) +;;;### (autoloads nil "ibuffer" "ibuffer.el" (22387 39326 642711 +;;;;;; 40000)) ;;; Generated autoloads from ibuffer.el (autoload 'ibuffer-list-buffers "ibuffer" "\ @@ -14538,8 +14604,8 @@ FORMATS is the value to use for `ibuffer-formats'. ;;;*** -;;;### (autoloads nil "icalendar" "calendar/icalendar.el" (22230 -;;;;;; 48822 653220 0)) +;;;### (autoloads nil "icalendar" "calendar/icalendar.el" (22578 +;;;;;; 62356 713212 175000)) ;;; Generated autoloads from calendar/icalendar.el (push (purecopy '(icalendar 0 19)) package--builtin-versions) @@ -14592,13 +14658,14 @@ buffer `*icalendar-errors*'. ;;;*** -;;;### (autoloads nil "icomplete" "icomplete.el" (22230 48822 758219 -;;;;;; 0)) +;;;### (autoloads nil "icomplete" "icomplete.el" (22387 39326 643711 +;;;;;; 36000)) ;;; Generated autoloads from icomplete.el (defvar icomplete-mode nil "\ Non-nil if Icomplete mode is enabled. -See the command `icomplete-mode' for a description of this minor mode. +See the `icomplete-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `icomplete-mode'.") @@ -14632,8 +14699,8 @@ completions: ;;;*** -;;;### (autoloads nil "icon" "progmodes/icon.el" (22266 10298 457370 -;;;;;; 0)) +;;;### (autoloads nil "icon" "progmodes/icon.el" (22387 39328 340704 +;;;;;; 977000)) ;;; Generated autoloads from progmodes/icon.el (autoload 'icon-mode "icon" "\ @@ -14673,8 +14740,8 @@ with no args, if that value is non-nil. ;;;*** -;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (22230 -;;;;;; 48822 884219 0)) +;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (22387 +;;;;;; 39328 342704 970000)) ;;; Generated autoloads from progmodes/idlw-shell.el (autoload 'idlwave-shell "idlw-shell" "\ @@ -14699,8 +14766,8 @@ See also the variable `idlwave-shell-prompt-pattern'. ;;;*** -;;;### (autoloads nil "idlwave" "progmodes/idlwave.el" (22266 10298 -;;;;;; 459370 0)) +;;;### (autoloads nil "idlwave" "progmodes/idlwave.el" (22578 62356 +;;;;;; 741212 24000)) ;;; Generated autoloads from progmodes/idlwave.el (push (purecopy '(idlwave 6 1 22)) package--builtin-versions) @@ -14829,7 +14896,7 @@ The main features of this mode are ;;;*** -;;;### (autoloads nil "ido" "ido.el" (22230 48822 759219 0)) +;;;### (autoloads nil "ido" "ido.el" (22387 39326 645711 29000)) ;;; Generated autoloads from ido.el (defvar ido-mode nil "\ @@ -15091,7 +15158,7 @@ DEF, if non-nil, is the default value. ;;;*** -;;;### (autoloads nil "ielm" "ielm.el" (22230 48822 759219 0)) +;;;### (autoloads nil "ielm" "ielm.el" (22387 39326 646711 25000)) ;;; Generated autoloads from ielm.el (autoload 'ielm "ielm" "\ @@ -15103,7 +15170,7 @@ See `inferior-emacs-lisp-mode' for details. ;;;*** -;;;### (autoloads nil "iimage" "iimage.el" (22230 48822 760219 0)) +;;;### (autoloads nil "iimage" "iimage.el" (22387 39326 646711 25000)) ;;; Generated autoloads from iimage.el (define-obsolete-function-alias 'turn-on-iimage-mode 'iimage-mode "24.1") @@ -15119,7 +15186,7 @@ the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'. ;;;*** -;;;### (autoloads nil "image" "image.el" (22290 3771 231246 127000)) +;;;### (autoloads nil "image" "image.el" (22387 39326 650711 11000)) ;;; Generated autoloads from image.el (autoload 'image-type-from-data "image" "\ @@ -15312,8 +15379,8 @@ If Emacs is compiled without ImageMagick support, this does nothing. ;;;*** -;;;### (autoloads nil "image-dired" "image-dired.el" (22290 3771 -;;;;;; 230246 133000)) +;;;### (autoloads nil "image-dired" "image-dired.el" (22387 39326 +;;;;;; 648711 18000)) ;;; Generated autoloads from image-dired.el (push (purecopy '(image-dired 0 4 11)) package--builtin-versions) @@ -15450,8 +15517,8 @@ easy-to-use form. ;;;*** -;;;### (autoloads nil "image-file" "image-file.el" (22230 48822 760219 -;;;;;; 0)) +;;;### (autoloads nil "image-file" "image-file.el" (22387 39326 649711 +;;;;;; 15000)) ;;; Generated autoloads from image-file.el (defvar image-file-name-extensions (purecopy '("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm" "svg")) "\ @@ -15492,7 +15559,8 @@ the command `insert-file-contents'. (defvar auto-image-file-mode nil "\ Non-nil if Auto-Image-File mode is enabled. -See the command `auto-image-file-mode' for a description of this minor mode. +See the `auto-image-file-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `auto-image-file-mode'.") @@ -15513,8 +15581,8 @@ An image file is one whose name has an extension in ;;;*** -;;;### (autoloads nil "image-mode" "image-mode.el" (22290 3771 230246 -;;;;;; 133000)) +;;;### (autoloads nil "image-mode" "image-mode.el" (22387 39326 649711 +;;;;;; 15000)) ;;; Generated autoloads from image-mode.el (autoload 'image-mode "image-mode" "\ @@ -15561,7 +15629,7 @@ on these modes. ;;;*** -;;;### (autoloads nil "imenu" "imenu.el" (22230 48822 761219 0)) +;;;### (autoloads nil "imenu" "imenu.el" (22387 39326 651711 8000)) ;;; Generated autoloads from imenu.el (defvar imenu-sort-function nil "\ @@ -15699,8 +15767,8 @@ for more information. ;;;*** -;;;### (autoloads nil "ind-util" "language/ind-util.el" (22230 48822 -;;;;;; 773219 0)) +;;;### (autoloads nil "ind-util" "language/ind-util.el" (22578 62356 +;;;;;; 725212 110000)) ;;; Generated autoloads from language/ind-util.el (autoload 'indian-compose-region "ind-util" "\ @@ -15730,8 +15798,8 @@ Convert old Emacs Devanagari characters to UCS. ;;;*** -;;;### (autoloads nil "inf-lisp" "progmodes/inf-lisp.el" (22230 48822 -;;;;;; 886219 0)) +;;;### (autoloads nil "inf-lisp" "progmodes/inf-lisp.el" (22387 39328 +;;;;;; 351704 938000)) ;;; Generated autoloads from progmodes/inf-lisp.el (autoload 'inferior-lisp "inf-lisp" "\ @@ -15749,7 +15817,7 @@ of `inferior-lisp-program'). Runs the hooks from ;;;*** -;;;### (autoloads nil "info" "info.el" (22230 48822 762219 0)) +;;;### (autoloads nil "info" "info.el" (22578 62356 723212 121000)) ;;; Generated autoloads from info.el (defcustom Info-default-directory-list (let* ((config-dir (file-name-as-directory (or (and (featurep 'ns) (let ((dir (expand-file-name "../info" data-directory))) (if (file-directory-p dir) dir))) configure-info-directory))) (prefixes (prune-directory-list '("/usr/local/" "/usr/" "/opt/" "/"))) (suffixes '("share/" "" "gnu/" "gnu/lib/" "gnu/lib/emacs/" "emacs/" "lib/" "lib/emacs/")) (standard-info-dirs (apply #'nconc (mapcar (lambda (pfx) (let ((dirs (mapcar (lambda (sfx) (concat pfx sfx "info/")) suffixes))) (prune-directory-list dirs))) prefixes))) (dirs (if (member config-dir standard-info-dirs) (nconc standard-info-dirs (list config-dir)) (cons config-dir standard-info-dirs)))) (if (not (eq system-type 'windows-nt)) dirs (let* ((instdir (file-name-directory invocation-directory)) (dir1 (expand-file-name "../info/" instdir)) (dir2 (expand-file-name "../../../info/" instdir))) (cond ((file-exists-p dir1) (append dirs (list dir1))) ((file-exists-p dir2) (append dirs (list dir2))) (t dirs))))) "\ @@ -15961,8 +16029,8 @@ completion alternatives to currently visited manuals. ;;;*** -;;;### (autoloads nil "info-look" "info-look.el" (22298 5692 411287 -;;;;;; 954000)) +;;;### (autoloads nil "info-look" "info-look.el" (22387 39326 652711 +;;;;;; 4000)) ;;; Generated autoloads from info-look.el (autoload 'info-lookup-reset "info-look" "\ @@ -16009,7 +16077,7 @@ Perform completion on file preceding point. ;;;*** -;;;### (autoloads nil "info-xref" "info-xref.el" (22230 48822 761219 +;;;### (autoloads nil "info-xref" "info-xref.el" (22387 39326 653711 ;;;;;; 0)) ;;; Generated autoloads from info-xref.el (push (purecopy '(info-xref 3)) package--builtin-versions) @@ -16093,8 +16161,8 @@ the sources handy. ;;;*** -;;;### (autoloads nil "informat" "informat.el" (22230 48822 762219 -;;;;;; 0)) +;;;### (autoloads nil "informat" "informat.el" (22387 39326 656710 +;;;;;; 990000)) ;;; Generated autoloads from informat.el (autoload 'Info-tagify "informat" "\ @@ -16139,8 +16207,8 @@ For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\" ;;;*** -;;;### (autoloads nil "inline" "emacs-lisp/inline.el" (22230 48822 -;;;;;; 693220 0)) +;;;### (autoloads nil "inline" "emacs-lisp/inline.el" (22387 39327 +;;;;;; 307708 665000)) ;;; Generated autoloads from emacs-lisp/inline.el (autoload 'define-inline "inline" "\ @@ -16154,8 +16222,8 @@ For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\" ;;;*** -;;;### (autoloads nil "inversion" "cedet/inversion.el" (22230 48822 -;;;;;; 660220 0)) +;;;### (autoloads nil "inversion" "cedet/inversion.el" (22387 39327 +;;;;;; 136709 276000)) ;;; Generated autoloads from cedet/inversion.el (push (purecopy '(inversion 1 3)) package--builtin-versions) @@ -16167,8 +16235,8 @@ Only checks one based on which kind of Emacs is being run. ;;;*** -;;;### (autoloads nil "isearch-x" "international/isearch-x.el" (22230 -;;;;;; 48822 763219 0)) +;;;### (autoloads nil "isearch-x" "international/isearch-x.el" (22387 +;;;;;; 39327 581707 687000)) ;;; Generated autoloads from international/isearch-x.el (autoload 'isearch-toggle-specified-input-method "isearch-x" "\ @@ -16188,8 +16256,8 @@ Toggle input method in interactive search. ;;;*** -;;;### (autoloads nil "isearchb" "isearchb.el" (22230 48822 768219 -;;;;;; 0)) +;;;### (autoloads nil "isearchb" "isearchb.el" (22387 39326 658710 +;;;;;; 983000)) ;;; Generated autoloads from isearchb.el (push (purecopy '(isearchb 1 5)) package--builtin-versions) @@ -16203,8 +16271,8 @@ accessed via isearchb. ;;;*** -;;;### (autoloads nil "iso-cvt" "international/iso-cvt.el" (22230 -;;;;;; 48822 764219 0)) +;;;### (autoloads nil "iso-cvt" "international/iso-cvt.el" (22387 +;;;;;; 39327 582707 684000)) ;;; Generated autoloads from international/iso-cvt.el (autoload 'iso-spanish "iso-cvt" "\ @@ -16295,15 +16363,15 @@ Add submenus to the File menu, to convert to and from various formats. ;;;*** ;;;### (autoloads nil "iso-transl" "international/iso-transl.el" -;;;;;; (22230 48822 764219 0)) +;;;;;; (22387 39327 583707 680000)) ;;; Generated autoloads from international/iso-transl.el (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map) (autoload 'iso-transl-ctl-x-8-map "iso-transl" "Keymap for C-x 8 prefix." t 'keymap) ;;;*** -;;;### (autoloads nil "ispell" "textmodes/ispell.el" (22230 48822 -;;;;;; 918218 0)) +;;;### (autoloads nil "ispell" "textmodes/ispell.el" (22387 39328 +;;;;;; 536704 278000)) ;;; Generated autoloads from textmodes/ispell.el (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive)))) @@ -16536,8 +16604,8 @@ You can bind this to the key C-c i in GNUS or mail by adding to ;;;*** -;;;### (autoloads nil "japan-util" "language/japan-util.el" (22230 -;;;;;; 48822 773219 0)) +;;;### (autoloads nil "japan-util" "language/japan-util.el" (22387 +;;;;;; 39327 660707 405000)) ;;; Generated autoloads from language/japan-util.el (autoload 'setup-japanese-environment-internal "japan-util" "\ @@ -16614,8 +16682,8 @@ If non-nil, second arg INITIAL-INPUT is a string to insert before reading. ;;;*** -;;;### (autoloads nil "jka-compr" "jka-compr.el" (22230 48822 769219 -;;;;;; 0)) +;;;### (autoloads nil "jka-compr" "jka-compr.el" (22387 39326 660710 +;;;;;; 976000)) ;;; Generated autoloads from jka-compr.el (defvar jka-compr-inhibit nil "\ @@ -16638,7 +16706,8 @@ by `jka-compr-installed'. ;;;*** -;;;### (autoloads nil "js" "progmodes/js.el" (22290 3781 431180 205000)) +;;;### (autoloads nil "js" "progmodes/js.el" (22578 62356 742212 +;;;;;; 19000)) ;;; Generated autoloads from progmodes/js.el (push (purecopy '(js 9)) package--builtin-versions) @@ -16665,14 +16734,14 @@ locally, like so: ;;;*** -;;;### (autoloads nil "json" "json.el" (22266 10298 409370 0)) +;;;### (autoloads nil "json" "json.el" (22387 39326 661710 972000)) ;;; Generated autoloads from json.el (push (purecopy '(json 1 4)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "keypad" "emulation/keypad.el" (22230 48822 -;;;;;; 699219 0)) +;;;### (autoloads nil "keypad" "emulation/keypad.el" (22387 39327 +;;;;;; 368708 448000)) ;;; Generated autoloads from emulation/keypad.el (defvar keypad-setup nil "\ @@ -16727,8 +16796,8 @@ the decimal key on the keypad is mapped to DECIMAL instead of `.' ;;;*** -;;;### (autoloads nil "kinsoku" "international/kinsoku.el" (22230 -;;;;;; 48822 764219 0)) +;;;### (autoloads nil "kinsoku" "international/kinsoku.el" (22387 +;;;;;; 39327 593707 644000)) ;;; Generated autoloads from international/kinsoku.el (autoload 'kinsoku "kinsoku" "\ @@ -16749,8 +16818,8 @@ the context of text formatting. ;;;*** -;;;### (autoloads nil "kkc" "international/kkc.el" (22230 48822 764219 -;;;;;; 0)) +;;;### (autoloads nil "kkc" "international/kkc.el" (22387 39327 594707 +;;;;;; 641000)) ;;; Generated autoloads from international/kkc.el (defvar kkc-after-update-conversion-functions nil "\ @@ -16772,7 +16841,7 @@ and the return value is the length of the conversion. ;;;*** -;;;### (autoloads nil "kmacro" "kmacro.el" (22230 48822 769219 0)) +;;;### (autoloads nil "kmacro" "kmacro.el" (22387 39326 662710 968000)) ;;; Generated autoloads from kmacro.el (global-set-key "\C-x(" 'kmacro-start-macro) (global-set-key "\C-x)" 'kmacro-end-macro) @@ -16884,8 +16953,8 @@ If kbd macro currently being defined end it before activating it. ;;;*** -;;;### (autoloads nil "korea-util" "language/korea-util.el" (22230 -;;;;;; 48822 773219 0)) +;;;### (autoloads nil "korea-util" "language/korea-util.el" (22387 +;;;;;; 39327 661707 402000)) ;;; Generated autoloads from language/korea-util.el (defvar default-korean-keyboard (purecopy (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "")) "\ @@ -16899,8 +16968,8 @@ The kind of Korean keyboard for Korean input method. ;;;*** -;;;### (autoloads nil "lao-util" "language/lao-util.el" (22230 48822 -;;;;;; 774219 0)) +;;;### (autoloads nil "lao-util" "language/lao-util.el" (22387 39327 +;;;;;; 662707 398000)) ;;; Generated autoloads from language/lao-util.el (autoload 'lao-compose-string "lao-util" "\ @@ -16937,8 +17006,8 @@ Transcribe Romanized Lao string STR to Lao character string. ;;;*** -;;;### (autoloads nil "latexenc" "international/latexenc.el" (22230 -;;;;;; 48822 764219 0)) +;;;### (autoloads nil "latexenc" "international/latexenc.el" (22387 +;;;;;; 39327 594707 641000)) ;;; Generated autoloads from international/latexenc.el (defvar latex-inputenc-coding-alist (purecopy '(("ansinew" . windows-1252) ("applemac" . mac-roman) ("ascii" . us-ascii) ("cp1250" . windows-1250) ("cp1252" . windows-1252) ("cp1257" . cp1257) ("cp437de" . cp437) ("cp437" . cp437) ("cp850" . cp850) ("cp852" . cp852) ("cp858" . cp858) ("cp865" . cp865) ("latin1" . iso-8859-1) ("latin2" . iso-8859-2) ("latin3" . iso-8859-3) ("latin4" . iso-8859-4) ("latin5" . iso-8859-5) ("latin9" . iso-8859-15) ("next" . next) ("utf8" . utf-8) ("utf8x" . utf-8))) "\ @@ -16970,7 +17039,7 @@ coding system names is determined from `latex-inputenc-coding-alist'. ;;;*** ;;;### (autoloads nil "latin1-disp" "international/latin1-disp.el" -;;;;;; (22230 48822 764219 0)) +;;;;;; (22387 39327 607707 594000)) ;;; Generated autoloads from international/latin1-disp.el (defvar latin1-display nil "\ @@ -17011,8 +17080,8 @@ use either \\[customize] or the function `latin1-display'.") ;;;*** -;;;### (autoloads nil "ld-script" "progmodes/ld-script.el" (22230 -;;;;;; 48822 886219 0)) +;;;### (autoloads nil "ld-script" "progmodes/ld-script.el" (22387 +;;;;;; 39328 365704 888000)) ;;; Generated autoloads from progmodes/ld-script.el (autoload 'ld-script-mode "ld-script" "\ @@ -17022,8 +17091,8 @@ A major mode to edit GNU ld script files ;;;*** -;;;### (autoloads nil "let-alist" "emacs-lisp/let-alist.el" (22290 -;;;;;; 3771 161246 579000)) +;;;### (autoloads nil "let-alist" "emacs-lisp/let-alist.el" (22387 +;;;;;; 39327 308708 662000)) ;;; Generated autoloads from emacs-lisp/let-alist.el (push (purecopy '(let-alist 1 0 4)) package--builtin-versions) @@ -17062,7 +17131,7 @@ displayed in the example above. ;;;*** -;;;### (autoloads nil "life" "play/life.el" (22230 48822 861219 0)) +;;;### (autoloads nil "life" "play/life.el" (22387 39328 265705 245000)) ;;; Generated autoloads from play/life.el (autoload 'life "life" "\ @@ -17075,7 +17144,7 @@ generations (this defaults to 1). ;;;*** -;;;### (autoloads nil "linum" "linum.el" (22290 3771 242246 56000)) +;;;### (autoloads nil "linum" "linum.el" (22387 39326 675710 922000)) ;;; Generated autoloads from linum.el (push (purecopy '(linum 0 9 24)) package--builtin-versions) @@ -17091,7 +17160,8 @@ Linum mode is a buffer-local minor mode. (defvar global-linum-mode nil "\ Non-nil if Global Linum mode is enabled. -See the command `global-linum-mode' for a description of this minor mode. +See the `global-linum-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `global-linum-mode'.") @@ -17112,8 +17182,8 @@ See `linum-mode' for more information on Linum mode. ;;;*** -;;;### (autoloads nil "loadhist" "loadhist.el" (22230 48822 786219 -;;;;;; 0)) +;;;### (autoloads nil "loadhist" "loadhist.el" (22387 39326 685710 +;;;;;; 886000)) ;;; Generated autoloads from loadhist.el (autoload 'unload-feature "loadhist" "\ @@ -17144,7 +17214,7 @@ something strange, such as redefining an Emacs function. ;;;*** -;;;### (autoloads nil "locate" "locate.el" (22230 48822 786219 0)) +;;;### (autoloads nil "locate" "locate.el" (22387 39326 686710 883000)) ;;; Generated autoloads from locate.el (defvar locate-ls-subdir-switches (purecopy "-al") "\ @@ -17196,8 +17266,8 @@ except that FILTER is not optional. ;;;*** -;;;### (autoloads nil "log-edit" "vc/log-edit.el" (22230 48822 937218 -;;;;;; 0)) +;;;### (autoloads nil "log-edit" "vc/log-edit.el" (22387 39328 663703 +;;;;;; 824000)) ;;; Generated autoloads from vc/log-edit.el (autoload 'log-edit "log-edit" "\ @@ -17228,8 +17298,8 @@ done. Otherwise, it uses the current buffer. ;;;*** -;;;### (autoloads nil "log-view" "vc/log-view.el" (22298 5692 419287 -;;;;;; 921000)) +;;;### (autoloads nil "log-view" "vc/log-view.el" (22387 39328 663703 +;;;;;; 824000)) ;;; Generated autoloads from vc/log-view.el (autoload 'log-view-mode "log-view" "\ @@ -17239,7 +17309,7 @@ Major mode for browsing CVS log output. ;;;*** -;;;### (autoloads nil "lpr" "lpr.el" (22290 3771 242246 56000)) +;;;### (autoloads nil "lpr" "lpr.el" (22387 39326 687710 879000)) ;;; Generated autoloads from lpr.el (defvar lpr-windows-system (memq system-type '(ms-dos windows-nt)) "\ @@ -17334,7 +17404,8 @@ for further customization of the printer command. ;;;*** -;;;### (autoloads nil "ls-lisp" "ls-lisp.el" (22290 3771 243246 49000)) +;;;### (autoloads nil "ls-lisp" "ls-lisp.el" (22578 62356 725212 +;;;;;; 110000)) ;;; Generated autoloads from ls-lisp.el (defvar ls-lisp-support-shell-wildcards t "\ @@ -17345,8 +17416,8 @@ Otherwise they are treated as Emacs regexps (for backward compatibility).") ;;;*** -;;;### (autoloads nil "lunar" "calendar/lunar.el" (22230 48822 653220 -;;;;;; 0)) +;;;### (autoloads nil "lunar" "calendar/lunar.el" (22387 39327 112709 +;;;;;; 362000)) ;;; Generated autoloads from calendar/lunar.el (autoload 'lunar-phases "lunar" "\ @@ -17358,8 +17429,8 @@ This function is suitable for execution in an init file. ;;;*** -;;;### (autoloads nil "m4-mode" "progmodes/m4-mode.el" (22230 48822 -;;;;;; 887219 0)) +;;;### (autoloads nil "m4-mode" "progmodes/m4-mode.el" (22387 39328 +;;;;;; 365704 888000)) ;;; Generated autoloads from progmodes/m4-mode.el (autoload 'm4-mode "m4-mode" "\ @@ -17369,7 +17440,7 @@ A major mode to edit m4 macro files. ;;;*** -;;;### (autoloads nil "macros" "macros.el" (22230 48822 787219 0)) +;;;### (autoloads nil "macros" "macros.el" (22387 39326 688710 876000)) ;;; Generated autoloads from macros.el (autoload 'name-last-kbd-macro "macros" "\ @@ -17458,8 +17529,8 @@ and then select the region of un-tablified names and use ;;;*** -;;;### (autoloads nil "mail-extr" "mail/mail-extr.el" (22290 3771 -;;;;;; 243246 49000)) +;;;### (autoloads nil "mail-extr" "mail/mail-extr.el" (22387 39327 +;;;;;; 924706 463000)) ;;; Generated autoloads from mail/mail-extr.el (autoload 'mail-extract-address-components "mail-extr" "\ @@ -17489,8 +17560,8 @@ Convert mail domain DOMAIN to the country it corresponds to. ;;;*** -;;;### (autoloads nil "mail-hist" "mail/mail-hist.el" (22230 48822 -;;;;;; 788219 0)) +;;;### (autoloads nil "mail-hist" "mail/mail-hist.el" (22387 39327 +;;;;;; 925706 459000)) ;;; Generated autoloads from mail/mail-hist.el (autoload 'mail-hist-define-keys "mail-hist" "\ @@ -17519,8 +17590,8 @@ This function normally would be called when the message is sent. ;;;*** -;;;### (autoloads nil "mail-utils" "mail/mail-utils.el" (22230 48822 -;;;;;; 788219 0)) +;;;### (autoloads nil "mail-utils" "mail/mail-utils.el" (22387 39327 +;;;;;; 925706 459000)) ;;; Generated autoloads from mail/mail-utils.el (defvar mail-use-rfc822 nil "\ @@ -17594,13 +17665,14 @@ matches may be returned from the message body. ;;;*** -;;;### (autoloads nil "mailabbrev" "mail/mailabbrev.el" (22266 10298 -;;;;;; 410370 0)) +;;;### (autoloads nil "mailabbrev" "mail/mailabbrev.el" (22387 39327 +;;;;;; 926706 456000)) ;;; Generated autoloads from mail/mailabbrev.el (defvar mail-abbrevs-mode nil "\ Non-nil if Mail-Abbrevs mode is enabled. -See the command `mail-abbrevs-mode' for a description of this minor mode. +See the `mail-abbrevs-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `mail-abbrevs-mode'.") @@ -17644,8 +17716,8 @@ double-quotes. ;;;*** -;;;### (autoloads nil "mailalias" "mail/mailalias.el" (22230 48822 -;;;;;; 789219 0)) +;;;### (autoloads nil "mailalias" "mail/mailalias.el" (22387 39327 +;;;;;; 926706 456000)) ;;; Generated autoloads from mail/mailalias.el (defvar mail-complete-style 'angles "\ @@ -17698,8 +17770,8 @@ current header, calls `mail-complete-function' and passes prefix ARG if any. ;;;*** -;;;### (autoloads nil "mailclient" "mail/mailclient.el" (22230 48822 -;;;;;; 789219 0)) +;;;### (autoloads nil "mailclient" "mail/mailclient.el" (22387 39327 +;;;;;; 927706 452000)) ;;; Generated autoloads from mail/mailclient.el (autoload 'mailclient-send-it "mailclient" "\ @@ -17711,8 +17783,8 @@ The mail client is taken to be the handler of mailto URLs. ;;;*** -;;;### (autoloads nil "make-mode" "progmodes/make-mode.el" (22261 -;;;;;; 18214 528020 0)) +;;;### (autoloads nil "make-mode" "progmodes/make-mode.el" (22387 +;;;;;; 39328 366704 885000)) ;;; Generated autoloads from progmodes/make-mode.el (autoload 'makefile-mode "make-mode" "\ @@ -17829,8 +17901,8 @@ An adapted `makefile-mode' that knows about imake. ;;;*** -;;;### (autoloads nil "makesum" "makesum.el" (22230 48822 793219 -;;;;;; 0)) +;;;### (autoloads nil "makesum" "makesum.el" (22387 39326 688710 +;;;;;; 876000)) ;;; Generated autoloads from makesum.el (autoload 'make-command-summary "makesum" "\ @@ -17841,7 +17913,7 @@ Previous contents of that buffer are killed first. ;;;*** -;;;### (autoloads nil "man" "man.el" (22230 48822 794219 0)) +;;;### (autoloads nil "man" "man.el" (22578 62356 726212 105000)) ;;; Generated autoloads from man.el (defalias 'manual-entry 'man) @@ -17879,7 +17951,7 @@ otherwise look like a page name. An \"apropos\" query with -k gives a buffer of matching page names or descriptions. The pattern argument is usually an -\"egrep\" style regexp. +\"grep -E\" style regexp. -k pattern @@ -17897,14 +17969,14 @@ Default bookmark handler for Man buffers. ;;;*** -;;;### (autoloads nil "map" "emacs-lisp/map.el" (22274 39275 441023 -;;;;;; 0)) +;;;### (autoloads nil "map" "emacs-lisp/map.el" (22387 39327 311708 +;;;;;; 651000)) ;;; Generated autoloads from emacs-lisp/map.el (push (purecopy '(map 1 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "master" "master.el" (22230 48822 794219 0)) +;;;### (autoloads nil "master" "master.el" (22387 39326 690710 868000)) ;;; Generated autoloads from master.el (push (purecopy '(master 1 0 2)) package--builtin-versions) @@ -17927,13 +17999,14 @@ yourself the value of `master-of' by calling `master-show-slave'. ;;;*** -;;;### (autoloads nil "mb-depth" "mb-depth.el" (22230 48822 794219 -;;;;;; 0)) +;;;### (autoloads nil "mb-depth" "mb-depth.el" (22387 39326 690710 +;;;;;; 868000)) ;;; Generated autoloads from mb-depth.el (defvar minibuffer-depth-indicate-mode nil "\ Non-nil if Minibuffer-Depth-Indicate mode is enabled. -See the command `minibuffer-depth-indicate-mode' for a description of this minor mode. +See the `minibuffer-depth-indicate-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `minibuffer-depth-indicate-mode'.") @@ -17955,14 +18028,14 @@ recursion depth in the minibuffer prompt. This is only useful if ;;;*** -;;;### (autoloads nil "md4" "md4.el" (22230 48822 794219 0)) +;;;### (autoloads nil "md4" "md4.el" (22387 39326 691710 865000)) ;;; Generated autoloads from md4.el (push (purecopy '(md4 1 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "message" "gnus/message.el" (22290 3771 206246 -;;;;;; 288000)) +;;;### (autoloads nil "message" "gnus/message.el" (22387 39327 500707 +;;;;;; 977000)) ;;; Generated autoloads from gnus/message.el (define-mail-user-agent 'message-user-agent 'message-mail 'message-send-and-exit 'message-kill-buffer 'message-send-hook) @@ -18127,8 +18200,8 @@ which specify the range to operate on. ;;;*** -;;;### (autoloads nil "meta-mode" "progmodes/meta-mode.el" (22230 -;;;;;; 48822 887219 0)) +;;;### (autoloads nil "meta-mode" "progmodes/meta-mode.el" (22387 +;;;;;; 39328 367704 881000)) ;;; Generated autoloads from progmodes/meta-mode.el (push (purecopy '(meta-mode 1 0)) package--builtin-versions) @@ -18144,8 +18217,8 @@ Major mode for editing MetaPost sources. ;;;*** -;;;### (autoloads nil "metamail" "mail/metamail.el" (22230 48822 -;;;;;; 789219 0)) +;;;### (autoloads nil "metamail" "mail/metamail.el" (22387 39327 +;;;;;; 928706 448000)) ;;; Generated autoloads from mail/metamail.el (autoload 'metamail-interpret-header "metamail" "\ @@ -18188,8 +18261,8 @@ redisplayed as output is inserted. ;;;*** -;;;### (autoloads nil "mh-comp" "mh-e/mh-comp.el" (22290 3771 249246 -;;;;;; 10000)) +;;;### (autoloads nil "mh-comp" "mh-e/mh-comp.el" (22387 39327 947706 +;;;;;; 380000)) ;;; Generated autoloads from mh-e/mh-comp.el (autoload 'mh-smail "mh-comp" "\ @@ -18279,7 +18352,7 @@ delete the draft message. ;;;*** -;;;### (autoloads nil "mh-e" "mh-e/mh-e.el" (22290 3771 250246 4000)) +;;;### (autoloads nil "mh-e" "mh-e/mh-e.el" (22387 39327 948706 377000)) ;;; Generated autoloads from mh-e/mh-e.el (push (purecopy '(mh-e 8 6)) package--builtin-versions) @@ -18296,8 +18369,8 @@ Display version information about MH-E and the MH mail handling system. ;;;*** -;;;### (autoloads nil "mh-folder" "mh-e/mh-folder.el" (22230 48822 -;;;;;; 799219 0)) +;;;### (autoloads nil "mh-folder" "mh-e/mh-folder.el" (22387 39327 +;;;;;; 949706 373000)) ;;; Generated autoloads from mh-e/mh-folder.el (autoload 'mh-rmail "mh-folder" "\ @@ -18378,13 +18451,14 @@ perform the operation on all messages in that region. ;;;*** -;;;### (autoloads nil "midnight" "midnight.el" (22290 3781 420180 -;;;;;; 276000)) +;;;### (autoloads nil "midnight" "midnight.el" (22387 39326 692710 +;;;;;; 861000)) ;;; Generated autoloads from midnight.el (defvar midnight-mode nil "\ Non-nil if Midnight mode is enabled. -See the command `midnight-mode' for a description of this minor mode. +See the `midnight-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `midnight-mode'.") @@ -18419,13 +18493,14 @@ to its second argument TM. ;;;*** -;;;### (autoloads nil "minibuf-eldef" "minibuf-eldef.el" (22230 48822 -;;;;;; 802219 0)) +;;;### (autoloads nil "minibuf-eldef" "minibuf-eldef.el" (22387 39326 +;;;;;; 693710 858000)) ;;; Generated autoloads from minibuf-eldef.el (defvar minibuffer-electric-default-mode nil "\ Non-nil if Minibuffer-Electric-Default mode is enabled. -See the command `minibuffer-electric-default-mode' for a description of this minor mode. +See the `minibuffer-electric-default-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `minibuffer-electric-default-mode'.") @@ -18449,7 +18524,7 @@ is modified to remove the default indication. ;;;*** -;;;### (autoloads nil "misc" "misc.el" (22230 48822 803219 0)) +;;;### (autoloads nil "misc" "misc.el" (22387 39326 694710 854000)) ;;; Generated autoloads from misc.el (autoload 'butterfly "misc" "\ @@ -18477,8 +18552,8 @@ The return value is always nil. ;;;*** -;;;### (autoloads nil "misearch" "misearch.el" (22230 48822 803219 -;;;;;; 0)) +;;;### (autoloads nil "misearch" "misearch.el" (22387 39326 695710 +;;;;;; 851000)) ;;; Generated autoloads from misearch.el (add-hook 'isearch-mode-hook 'multi-isearch-setup) @@ -18566,8 +18641,8 @@ whose file names match the specified wildcard. ;;;*** -;;;### (autoloads nil "mixal-mode" "progmodes/mixal-mode.el" (22230 -;;;;;; 48822 887219 0)) +;;;### (autoloads nil "mixal-mode" "progmodes/mixal-mode.el" (22387 +;;;;;; 39328 368704 877000)) ;;; Generated autoloads from progmodes/mixal-mode.el (push (purecopy '(mixal-mode 0 1)) package--builtin-versions) @@ -18578,8 +18653,8 @@ Major mode for the mixal asm language. ;;;*** -;;;### (autoloads nil "mm-encode" "gnus/mm-encode.el" (22230 48822 -;;;;;; 745219 0)) +;;;### (autoloads nil "mm-encode" "gnus/mm-encode.el" (22387 39327 +;;;;;; 504707 962000)) ;;; Generated autoloads from gnus/mm-encode.el (autoload 'mm-default-file-encoding "mm-encode" "\ @@ -18589,8 +18664,8 @@ Return a default encoding for FILE. ;;;*** -;;;### (autoloads nil "mm-extern" "gnus/mm-extern.el" (22230 48822 -;;;;;; 745219 0)) +;;;### (autoloads nil "mm-extern" "gnus/mm-extern.el" (22387 39327 +;;;;;; 504707 962000)) ;;; Generated autoloads from gnus/mm-extern.el (autoload 'mm-extern-cache-contents "mm-extern" "\ @@ -18608,8 +18683,8 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing. ;;;*** -;;;### (autoloads nil "mm-partial" "gnus/mm-partial.el" (22290 3771 -;;;;;; 209246 269000)) +;;;### (autoloads nil "mm-partial" "gnus/mm-partial.el" (22387 39327 +;;;;;; 505707 959000)) ;;; Generated autoloads from gnus/mm-partial.el (autoload 'mm-inline-partial "mm-partial" "\ @@ -18622,8 +18697,8 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing. ;;;*** -;;;### (autoloads nil "mm-url" "gnus/mm-url.el" (22290 3771 209246 -;;;;;; 269000)) +;;;### (autoloads nil "mm-url" "gnus/mm-url.el" (22387 39327 505707 +;;;;;; 959000)) ;;; Generated autoloads from gnus/mm-url.el (autoload 'mm-url-insert-file-contents "mm-url" "\ @@ -18639,8 +18714,8 @@ Insert file contents of URL using `mm-url-program'. ;;;*** -;;;### (autoloads nil "mm-uu" "gnus/mm-uu.el" (22290 3771 211246 -;;;;;; 256000)) +;;;### (autoloads nil "mm-uu" "gnus/mm-uu.el" (22387 39327 506707 +;;;;;; 955000)) ;;; Generated autoloads from gnus/mm-uu.el (autoload 'mm-uu-dissect "mm-uu" "\ @@ -18659,7 +18734,7 @@ Assume text has been decoded if DECODED is non-nil. ;;;*** -;;;### (autoloads nil "mml" "gnus/mml.el" (22290 3771 212246 250000)) +;;;### (autoloads nil "mml" "gnus/mml.el" (22387 39327 509707 944000)) ;;; Generated autoloads from gnus/mml.el (autoload 'mml-to-mime "mml" "\ @@ -18684,8 +18759,8 @@ body) or \"attachment\" (separate from the body). ;;;*** -;;;### (autoloads nil "mml1991" "gnus/mml1991.el" (22290 3771 212246 -;;;;;; 250000)) +;;;### (autoloads nil "mml1991" "gnus/mml1991.el" (22387 39327 509707 +;;;;;; 944000)) ;;; Generated autoloads from gnus/mml1991.el (autoload 'mml1991-encrypt "mml1991" "\ @@ -18700,8 +18775,8 @@ body) or \"attachment\" (separate from the body). ;;;*** -;;;### (autoloads nil "mml2015" "gnus/mml2015.el" (22290 3771 212246 -;;;;;; 250000)) +;;;### (autoloads nil "mml2015" "gnus/mml2015.el" (22387 39327 510707 +;;;;;; 941000)) ;;; Generated autoloads from gnus/mml2015.el (autoload 'mml2015-decrypt "mml2015" "\ @@ -18741,16 +18816,16 @@ body) or \"attachment\" (separate from the body). ;;;*** -;;;### (autoloads nil "mode-local" "cedet/mode-local.el" (22290 3781 -;;;;;; 414180 315000)) +;;;### (autoloads nil "mode-local" "cedet/mode-local.el" (22387 39327 +;;;;;; 137709 272000)) ;;; Generated autoloads from cedet/mode-local.el (put 'define-overloadable-function 'doc-string-elt 3) ;;;*** -;;;### (autoloads nil "modula2" "progmodes/modula2.el" (22230 48822 -;;;;;; 887219 0)) +;;;### (autoloads nil "modula2" "progmodes/modula2.el" (22387 39328 +;;;;;; 369704 874000)) ;;; Generated autoloads from progmodes/modula2.el (defalias 'modula-2-mode 'm2-mode) @@ -18783,8 +18858,8 @@ followed by the first character of the construct. ;;;*** -;;;### (autoloads nil "morse" "play/morse.el" (22230 48822 861219 -;;;;;; 0)) +;;;### (autoloads nil "morse" "play/morse.el" (22387 39328 265705 +;;;;;; 245000)) ;;; Generated autoloads from play/morse.el (autoload 'morse-region "morse" "\ @@ -18809,8 +18884,8 @@ Convert NATO phonetic alphabet in region to ordinary ASCII text. ;;;*** -;;;### (autoloads nil "mouse-drag" "mouse-drag.el" (22230 48822 803219 -;;;;;; 0)) +;;;### (autoloads nil "mouse-drag" "mouse-drag.el" (22387 39326 695710 +;;;;;; 851000)) ;;; Generated autoloads from mouse-drag.el (autoload 'mouse-drag-throw "mouse-drag" "\ @@ -18857,7 +18932,7 @@ To test this function, evaluate: ;;;*** -;;;### (autoloads nil "mpc" "mpc.el" (22290 3771 251245 997000)) +;;;### (autoloads nil "mpc" "mpc.el" (22387 39326 697710 843000)) ;;; Generated autoloads from mpc.el (autoload 'mpc "mpc" "\ @@ -18867,7 +18942,7 @@ Main entry point for MPC. ;;;*** -;;;### (autoloads nil "mpuz" "play/mpuz.el" (22230 48822 861219 0)) +;;;### (autoloads nil "mpuz" "play/mpuz.el" (22387 39328 265705 245000)) ;;; Generated autoloads from play/mpuz.el (autoload 'mpuz "mpuz" "\ @@ -18877,12 +18952,13 @@ Multiplication puzzle with GNU Emacs. ;;;*** -;;;### (autoloads nil "msb" "msb.el" (22230 48822 804219 0)) +;;;### (autoloads nil "msb" "msb.el" (22387 39326 698710 840000)) ;;; Generated autoloads from msb.el (defvar msb-mode nil "\ Non-nil if Msb mode is enabled. -See the command `msb-mode' for a description of this minor mode. +See the `msb-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `msb-mode'.") @@ -18902,8 +18978,8 @@ different buffer menu using the function `msb'. ;;;*** -;;;### (autoloads nil "mule-diag" "international/mule-diag.el" (22230 -;;;;;; 48822 765219 0)) +;;;### (autoloads nil "mule-diag" "international/mule-diag.el" (22387 +;;;;;; 39327 612707 577000)) ;;; Generated autoloads from international/mule-diag.el (autoload 'list-character-sets "mule-diag" "\ @@ -19035,8 +19111,8 @@ The default is 20. If LIMIT is negative, do not limit the listing. ;;;*** -;;;### (autoloads nil "mule-util" "international/mule-util.el" (22230 -;;;;;; 48822 766219 0)) +;;;### (autoloads nil "mule-util" "international/mule-util.el" (22387 +;;;;;; 39327 613707 573000)) ;;; Generated autoloads from international/mule-util.el (defsubst string-to-list (string) "\ @@ -19195,8 +19271,8 @@ QUALITY can be: ;;;*** -;;;### (autoloads nil "net-utils" "net/net-utils.el" (22290 3771 -;;;;;; 252245 991000)) +;;;### (autoloads nil "net-utils" "net/net-utils.el" (22387 39327 +;;;;;; 978706 270000)) ;;; Generated autoloads from net/net-utils.el (autoload 'ifconfig "net-utils" "\ @@ -19290,8 +19366,8 @@ Open a network connection to HOST on PORT. ;;;*** -;;;### (autoloads nil "netrc" "net/netrc.el" (22230 48822 809219 -;;;;;; 0)) +;;;### (autoloads nil "netrc" "net/netrc.el" (22387 39327 979706 +;;;;;; 266000)) ;;; Generated autoloads from net/netrc.el (autoload 'netrc-credentials "netrc" "\ @@ -19303,8 +19379,8 @@ listed in the PORTS list. ;;;*** -;;;### (autoloads nil "network-stream" "net/network-stream.el" (22290 -;;;;;; 3771 253245 985000)) +;;;### (autoloads nil "network-stream" "net/network-stream.el" (22387 +;;;;;; 39327 979706 266000)) ;;; Generated autoloads from net/network-stream.el (autoload 'open-network-stream "network-stream" "\ @@ -19400,8 +19476,8 @@ asynchronously, if possible. ;;;*** -;;;### (autoloads nil "newst-backend" "net/newst-backend.el" (22230 -;;;;;; 48822 809219 0)) +;;;### (autoloads nil "newst-backend" "net/newst-backend.el" (22387 +;;;;;; 39327 980706 263000)) ;;; Generated autoloads from net/newst-backend.el (autoload 'newsticker-running-p "newst-backend" "\ @@ -19423,7 +19499,7 @@ Run `newsticker-start-hook' if newsticker was not running already. ;;;*** ;;;### (autoloads nil "newst-plainview" "net/newst-plainview.el" -;;;;;; (22230 48822 810219 0)) +;;;;;; (22387 39327 981706 259000)) ;;; Generated autoloads from net/newst-plainview.el (autoload 'newsticker-plainview "newst-plainview" "\ @@ -19433,8 +19509,8 @@ Start newsticker plainview. ;;;*** -;;;### (autoloads nil "newst-reader" "net/newst-reader.el" (22230 -;;;;;; 48822 810219 0)) +;;;### (autoloads nil "newst-reader" "net/newst-reader.el" (22387 +;;;;;; 39327 982706 255000)) ;;; Generated autoloads from net/newst-reader.el (autoload 'newsticker-show-news "newst-reader" "\ @@ -19444,8 +19520,8 @@ Start reading news. You may want to bind this to a key. ;;;*** -;;;### (autoloads nil "newst-ticker" "net/newst-ticker.el" (22230 -;;;;;; 48822 810219 0)) +;;;### (autoloads nil "newst-ticker" "net/newst-ticker.el" (22387 +;;;;;; 39327 983706 252000)) ;;; Generated autoloads from net/newst-ticker.el (autoload 'newsticker-ticker-running-p "newst-ticker" "\ @@ -19465,8 +19541,8 @@ running already. ;;;*** -;;;### (autoloads nil "newst-treeview" "net/newst-treeview.el" (22230 -;;;;;; 48822 810219 0)) +;;;### (autoloads nil "newst-treeview" "net/newst-treeview.el" (22387 +;;;;;; 39327 983706 252000)) ;;; Generated autoloads from net/newst-treeview.el (autoload 'newsticker-treeview "newst-treeview" "\ @@ -19476,8 +19552,8 @@ Start newsticker treeview. ;;;*** -;;;### (autoloads nil "nndiary" "gnus/nndiary.el" (22290 3771 213246 -;;;;;; 243000)) +;;;### (autoloads nil "nndiary" "gnus/nndiary.el" (22387 39327 511707 +;;;;;; 937000)) ;;; Generated autoloads from gnus/nndiary.el (autoload 'nndiary-generate-nov-databases "nndiary" "\ @@ -19487,8 +19563,8 @@ Generate NOV databases in all nndiary directories. ;;;*** -;;;### (autoloads nil "nndoc" "gnus/nndoc.el" (22290 3771 213246 -;;;;;; 243000)) +;;;### (autoloads nil "nndoc" "gnus/nndoc.el" (22387 39327 513707 +;;;;;; 930000)) ;;; Generated autoloads from gnus/nndoc.el (autoload 'nndoc-add-type "nndoc" "\ @@ -19502,8 +19578,8 @@ symbol in the alist. ;;;*** -;;;### (autoloads nil "nnfolder" "gnus/nnfolder.el" (22290 3771 213246 -;;;;;; 243000)) +;;;### (autoloads nil "nnfolder" "gnus/nnfolder.el" (22387 39327 +;;;;;; 514707 926000)) ;;; Generated autoloads from gnus/nnfolder.el (autoload 'nnfolder-generate-active-file "nnfolder" "\ @@ -19514,7 +19590,7 @@ This command does not work if you use short group names. ;;;*** -;;;### (autoloads nil "nnml" "gnus/nnml.el" (22290 3771 219246 204000)) +;;;### (autoloads nil "nnml" "gnus/nnml.el" (22387 39327 523707 894000)) ;;; Generated autoloads from gnus/nnml.el (autoload 'nnml-generate-nov-databases "nnml" "\ @@ -19524,7 +19600,7 @@ Generate NOV databases in all nnml directories. ;;;*** -;;;### (autoloads nil "novice" "novice.el" (22230 48822 818219 0)) +;;;### (autoloads nil "novice" "novice.el" (22387 39326 702710 825000)) ;;; Generated autoloads from novice.el (define-obsolete-variable-alias 'disabled-command-hook 'disabled-command-function "22.1") @@ -19556,8 +19632,8 @@ future sessions. ;;;*** -;;;### (autoloads nil "nroff-mode" "textmodes/nroff-mode.el" (22230 -;;;;;; 48822 918218 0)) +;;;### (autoloads nil "nroff-mode" "textmodes/nroff-mode.el" (22387 +;;;;;; 39328 538704 271000)) ;;; Generated autoloads from textmodes/nroff-mode.el (autoload 'nroff-mode "nroff-mode" "\ @@ -19571,14 +19647,14 @@ closing requests for requests that are used in matched pairs. ;;;*** -;;;### (autoloads nil "ntlm" "net/ntlm.el" (22230 48822 811219 0)) +;;;### (autoloads nil "ntlm" "net/ntlm.el" (22387 39327 985706 245000)) ;;; Generated autoloads from net/ntlm.el (push (purecopy '(ntlm 2 0 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "nxml-glyph" "nxml/nxml-glyph.el" (22290 3771 -;;;;;; 261245 933000)) +;;;### (autoloads nil "nxml-glyph" "nxml/nxml-glyph.el" (22387 39328 +;;;;;; 40706 49000)) ;;; Generated autoloads from nxml/nxml-glyph.el (autoload 'nxml-glyph-display-string "nxml-glyph" "\ @@ -19590,8 +19666,8 @@ Return nil if the face cannot display a glyph for N. ;;;*** -;;;### (autoloads nil "nxml-mode" "nxml/nxml-mode.el" (22290 3771 -;;;;;; 262245 926000)) +;;;### (autoloads nil "nxml-mode" "nxml/nxml-mode.el" (22387 39328 +;;;;;; 41706 45000)) ;;; Generated autoloads from nxml/nxml-mode.el (autoload 'nxml-mode "nxml-mode" "\ @@ -19651,8 +19727,8 @@ Many aspects this mode can be customized using ;;;*** -;;;### (autoloads nil "nxml-uchnm" "nxml/nxml-uchnm.el" (22290 3771 -;;;;;; 263245 920000)) +;;;### (autoloads nil "nxml-uchnm" "nxml/nxml-uchnm.el" (22387 39328 +;;;;;; 60705 977000)) ;;; Generated autoloads from nxml/nxml-uchnm.el (autoload 'nxml-enable-unicode-char-name-sets "nxml-uchnm" "\ @@ -19664,8 +19740,8 @@ the variable `nxml-enabled-unicode-blocks'. ;;;*** -;;;### (autoloads nil "octave" "progmodes/octave.el" (22266 10298 -;;;;;; 460370 0)) +;;;### (autoloads nil "octave" "progmodes/octave.el" (22387 39328 +;;;;;; 370704 870000)) ;;; Generated autoloads from progmodes/octave.el (autoload 'octave-mode "octave" "\ @@ -19702,8 +19778,8 @@ startup file, `~/.emacs-octave'. ;;;*** -;;;### (autoloads nil "opascal" "progmodes/opascal.el" (22230 48822 -;;;;;; 888219 0)) +;;;### (autoloads nil "opascal" "progmodes/opascal.el" (22387 39328 +;;;;;; 372704 863000)) ;;; Generated autoloads from progmodes/opascal.el (define-obsolete-function-alias 'delphi-mode 'opascal-mode "24.4") @@ -19738,7 +19814,7 @@ Coloring: ;;;*** -;;;### (autoloads nil "org" "org/org.el" (22290 3781 426180 237000)) +;;;### (autoloads nil "org" "org/org.el" (22578 62356 737212 46000)) ;;; Generated autoloads from org/org.el (autoload 'org-babel-do-load-languages "org" "\ @@ -19959,8 +20035,8 @@ Call the customize function with org as argument. ;;;*** -;;;### (autoloads nil "org-agenda" "org/org-agenda.el" (22230 48822 -;;;;;; 840219 0)) +;;;### (autoloads nil "org-agenda" "org/org-agenda.el" (22387 39328 +;;;;;; 198705 484000)) ;;; Generated autoloads from org/org-agenda.el (autoload 'org-toggle-sticky-agenda "org-agenda" "\ @@ -20233,8 +20309,8 @@ to override `appt-message-warning-time'. ;;;*** -;;;### (autoloads nil "org-capture" "org/org-capture.el" (22230 48822 -;;;;;; 841219 0)) +;;;### (autoloads nil "org-capture" "org/org-capture.el" (22387 39328 +;;;;;; 202705 470000)) ;;; Generated autoloads from org/org-capture.el (autoload 'org-capture-string "org-capture" "\ @@ -20276,8 +20352,8 @@ Set `org-capture-templates' to be similar to `org-remember-templates'. ;;;*** -;;;### (autoloads nil "org-colview" "org/org-colview.el" (22230 48822 -;;;;;; 842219 0)) +;;;### (autoloads nil "org-colview" "org/org-colview.el" (22387 39328 +;;;;;; 205705 459000)) ;;; Generated autoloads from org/org-colview.el (autoload 'org-columns-remove-overlays "org-colview" "\ @@ -20340,8 +20416,8 @@ Turn on or update column view in the agenda. ;;;*** -;;;### (autoloads nil "org-compat" "org/org-compat.el" (22230 48822 -;;;;;; 842219 0)) +;;;### (autoloads nil "org-compat" "org/org-compat.el" (22387 39328 +;;;;;; 205705 459000)) ;;; Generated autoloads from org/org-compat.el (autoload 'org-check-version "org-compat" "\ @@ -20351,8 +20427,8 @@ Try very hard to provide sensible version strings. ;;;*** -;;;### (autoloads nil "org-macs" "org/org-macs.el" (22230 48822 846219 -;;;;;; 0)) +;;;### (autoloads nil "org-macs" "org/org-macs.el" (22387 39328 221705 +;;;;;; 402000)) ;;; Generated autoloads from org/org-macs.el (autoload 'org-load-noerror-mustsuffix "org-macs" "\ @@ -20362,8 +20438,8 @@ Load FILE with optional arguments NOERROR and MUSTSUFFIX. Drop the MUSTSUFFIX a ;;;*** -;;;### (autoloads nil "org-version" "org/org-version.el" (22230 48822 -;;;;;; 848219 0)) +;;;### (autoloads nil "org-version" "org/org-version.el" (22387 39328 +;;;;;; 229705 374000)) ;;; Generated autoloads from org/org-version.el (autoload 'org-release "org-version" "\ @@ -20380,8 +20456,8 @@ The Git version of org-mode. ;;;*** -;;;### (autoloads nil "outline" "outline.el" (22230 48822 857219 -;;;;;; 0)) +;;;### (autoloads nil "outline" "outline.el" (22578 62356 737212 +;;;;;; 46000)) ;;; Generated autoloads from outline.el (put 'outline-regexp 'safe-local-variable 'stringp) (put 'outline-heading-end-regexp 'safe-local-variable 'stringp) @@ -20424,8 +20500,8 @@ See the command `outline-mode' for more information on this mode. ;;;*** -;;;### (autoloads nil "package" "emacs-lisp/package.el" (22290 3781 -;;;;;; 417180 295000)) +;;;### (autoloads nil "package" "emacs-lisp/package.el" (22421 48078 +;;;;;; 37624 440000)) ;;; Generated autoloads from emacs-lisp/package.el (push (purecopy '(package 1 1 0)) package--builtin-versions) @@ -20449,6 +20525,9 @@ it to the file. If called as part of loading `user-init-file', set `package-enable-at-startup' to nil, to prevent accidentally loading packages twice. +It is not necessary to adjust `load-path' or `require' the +individual packages after calling `package-initialize' -- this is +taken care of by `package-initialize'. \(fn &optional NO-ACTIVATE)" t nil) @@ -20540,12 +20619,13 @@ The list is displayed in a buffer named `*Packages*'. ;;;*** -;;;### (autoloads nil "paren" "paren.el" (22230 48822 857219 0)) +;;;### (autoloads nil "paren" "paren.el" (22387 39326 859710 265000)) ;;; Generated autoloads from paren.el (defvar show-paren-mode nil "\ Non-nil if Show-Paren mode is enabled. -See the command `show-paren-mode' for a description of this minor mode. +See the `show-paren-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `show-paren-mode'.") @@ -20566,8 +20646,8 @@ matching parenthesis is highlighted in `show-paren-style' after ;;;*** -;;;### (autoloads nil "parse-time" "calendar/parse-time.el" (22290 -;;;;;; 3771 148246 663000)) +;;;### (autoloads nil "parse-time" "calendar/parse-time.el" (22387 +;;;;;; 39327 112709 362000)) ;;; Generated autoloads from calendar/parse-time.el (put 'parse-time-rules 'risky-local-variable t) @@ -20580,8 +20660,8 @@ unknown are returned as nil. ;;;*** -;;;### (autoloads nil "pascal" "progmodes/pascal.el" (22266 10298 -;;;;;; 460370 0)) +;;;### (autoloads nil "pascal" "progmodes/pascal.el" (22387 39328 +;;;;;; 373704 859000)) ;;; Generated autoloads from progmodes/pascal.el (autoload 'pascal-mode "pascal" "\ @@ -20630,8 +20710,8 @@ See also the user variables `pascal-type-keywords', `pascal-start-keywords' and ;;;*** -;;;### (autoloads nil "password-cache" "password-cache.el" (22230 -;;;;;; 48822 857219 0)) +;;;### (autoloads nil "password-cache" "password-cache.el" (22387 +;;;;;; 39326 860710 261000)) ;;; Generated autoloads from password-cache.el (defvar password-cache t "\ @@ -20652,8 +20732,8 @@ Check if KEY is in the cache. ;;;*** -;;;### (autoloads nil "pcase" "emacs-lisp/pcase.el" (22230 48822 -;;;;;; 695219 0)) +;;;### (autoloads nil "pcase" "emacs-lisp/pcase.el" (22387 39327 +;;;;;; 315708 637000)) ;;; Generated autoloads from emacs-lisp/pcase.el (autoload 'pcase "pcase" "\ @@ -20773,8 +20853,8 @@ to this macro. ;;;*** -;;;### (autoloads nil "pcmpl-cvs" "pcmpl-cvs.el" (22230 48822 857219 -;;;;;; 0)) +;;;### (autoloads nil "pcmpl-cvs" "pcmpl-cvs.el" (22387 39326 860710 +;;;;;; 261000)) ;;; Generated autoloads from pcmpl-cvs.el (autoload 'pcomplete/cvs "pcmpl-cvs" "\ @@ -20784,8 +20864,8 @@ Completion rules for the `cvs' command. ;;;*** -;;;### (autoloads nil "pcmpl-gnu" "pcmpl-gnu.el" (22290 3771 282245 -;;;;;; 797000)) +;;;### (autoloads nil "pcmpl-gnu" "pcmpl-gnu.el" (22387 39326 863710 +;;;;;; 251000)) ;;; Generated autoloads from pcmpl-gnu.el (autoload 'pcomplete/gzip "pcmpl-gnu" "\ @@ -20812,8 +20892,8 @@ Completion for the GNU tar utility. ;;;*** -;;;### (autoloads nil "pcmpl-linux" "pcmpl-linux.el" (22230 48822 -;;;;;; 857219 0)) +;;;### (autoloads nil "pcmpl-linux" "pcmpl-linux.el" (22387 39326 +;;;;;; 863710 251000)) ;;; Generated autoloads from pcmpl-linux.el (autoload 'pcomplete/kill "pcmpl-linux" "\ @@ -20833,8 +20913,8 @@ Completion for GNU/Linux `mount'. ;;;*** -;;;### (autoloads nil "pcmpl-rpm" "pcmpl-rpm.el" (22230 48822 858219 -;;;;;; 0)) +;;;### (autoloads nil "pcmpl-rpm" "pcmpl-rpm.el" (22387 39326 863710 +;;;;;; 251000)) ;;; Generated autoloads from pcmpl-rpm.el (autoload 'pcomplete/rpm "pcmpl-rpm" "\ @@ -20844,8 +20924,8 @@ Completion for the `rpm' command. ;;;*** -;;;### (autoloads nil "pcmpl-unix" "pcmpl-unix.el" (22230 48822 858219 -;;;;;; 0)) +;;;### (autoloads nil "pcmpl-unix" "pcmpl-unix.el" (22387 39326 869710 +;;;;;; 229000)) ;;; Generated autoloads from pcmpl-unix.el (autoload 'pcomplete/cd "pcmpl-unix" "\ @@ -20900,8 +20980,8 @@ Includes files as well as host names followed by a colon. ;;;*** -;;;### (autoloads nil "pcmpl-x" "pcmpl-x.el" (22230 48822 858219 -;;;;;; 0)) +;;;### (autoloads nil "pcmpl-x" "pcmpl-x.el" (22387 39326 870710 +;;;;;; 226000)) ;;; Generated autoloads from pcmpl-x.el (autoload 'pcomplete/tlmgr "pcmpl-x" "\ @@ -20925,8 +21005,8 @@ Completion for the `ag' command. ;;;*** -;;;### (autoloads nil "pcomplete" "pcomplete.el" (22230 48822 858219 -;;;;;; 0)) +;;;### (autoloads nil "pcomplete" "pcomplete.el" (22387 39326 871710 +;;;;;; 222000)) ;;; Generated autoloads from pcomplete.el (autoload 'pcomplete "pcomplete" "\ @@ -20983,7 +21063,7 @@ Setup `shell-mode' to use pcomplete. ;;;*** -;;;### (autoloads nil "pcvs" "vc/pcvs.el" (22230 48822 938218 0)) +;;;### (autoloads nil "pcvs" "vc/pcvs.el" (22578 62356 750211 976000)) ;;; Generated autoloads from vc/pcvs.el (autoload 'cvs-checkout "pcvs" "\ @@ -21058,8 +21138,8 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d ;;;*** -;;;### (autoloads nil "pcvs-defs" "vc/pcvs-defs.el" (22230 48822 -;;;;;; 937218 0)) +;;;### (autoloads nil "pcvs-defs" "vc/pcvs-defs.el" (22387 39328 +;;;;;; 664703 821000)) ;;; Generated autoloads from vc/pcvs-defs.el (defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] `(menu-item ,(purecopy "Directory Status") cvs-status :help ,(purecopy "A more verbose status of a workarea"))) (define-key m [checkout] `(menu-item ,(purecopy "Checkout Module") cvs-checkout :help ,(purecopy "Check out a module from the repository"))) (define-key m [update] `(menu-item ,(purecopy "Update Directory") cvs-update :help ,(purecopy "Fetch updates from the repository"))) (define-key m [examine] `(menu-item ,(purecopy "Examine Directory") cvs-examine :help ,(purecopy "Examine the current state of a workarea"))) (fset 'cvs-global-menu m)) "\ @@ -21067,8 +21147,8 @@ Global menu used by PCL-CVS.") ;;;*** -;;;### (autoloads nil "perl-mode" "progmodes/perl-mode.el" (22266 -;;;;;; 10298 461370 0)) +;;;### (autoloads nil "perl-mode" "progmodes/perl-mode.el" (22387 +;;;;;; 39328 374704 856000)) ;;; Generated autoloads from progmodes/perl-mode.el (put 'perl-indent-level 'safe-local-variable 'integerp) (put 'perl-continued-statement-offset 'safe-local-variable 'integerp) @@ -21129,8 +21209,8 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'. ;;;*** -;;;### (autoloads nil "picture" "textmodes/picture.el" (22266 10298 -;;;;;; 485370 0)) +;;;### (autoloads nil "picture" "textmodes/picture.el" (22387 39328 +;;;;;; 540704 263000)) ;;; Generated autoloads from textmodes/picture.el (autoload 'picture-mode "picture" "\ @@ -21210,8 +21290,8 @@ they are not by default assigned to keys. ;;;*** -;;;### (autoloads nil "pinentry" "net/pinentry.el" (22261 18214 518021 -;;;;;; 0)) +;;;### (autoloads nil "pinentry" "net/pinentry.el" (22387 39327 986706 +;;;;;; 241000)) ;;; Generated autoloads from net/pinentry.el (push (purecopy '(pinentry 0 1)) package--builtin-versions) @@ -21228,8 +21308,8 @@ will not be shown. ;;;*** -;;;### (autoloads nil "plstore" "gnus/plstore.el" (22290 3771 222246 -;;;;;; 185000)) +;;;### (autoloads nil "plstore" "gnus/plstore.el" (22387 39327 528707 +;;;;;; 877000)) ;;; Generated autoloads from gnus/plstore.el (autoload 'plstore-open "plstore" "\ @@ -21244,8 +21324,8 @@ Major mode for editing PLSTORE files. ;;;*** -;;;### (autoloads nil "po" "textmodes/po.el" (22230 48822 919218 -;;;;;; 0)) +;;;### (autoloads nil "po" "textmodes/po.el" (22387 39328 540704 +;;;;;; 263000)) ;;; Generated autoloads from textmodes/po.el (autoload 'po-find-file-coding-system "po" "\ @@ -21256,7 +21336,7 @@ Called through `file-coding-system-alist', before the file is visited for real. ;;;*** -;;;### (autoloads nil "pong" "play/pong.el" (22230 48822 861219 0)) +;;;### (autoloads nil "pong" "play/pong.el" (22387 39328 266705 242000)) ;;; Generated autoloads from play/pong.el (autoload 'pong "pong" "\ @@ -21272,7 +21352,7 @@ pong-mode keybindings:\\ ;;;*** -;;;### (autoloads nil "pop3" "gnus/pop3.el" (22290 3771 222246 185000)) +;;;### (autoloads nil "pop3" "gnus/pop3.el" (22387 39327 529707 873000)) ;;; Generated autoloads from gnus/pop3.el (autoload 'pop3-movemail "pop3" "\ @@ -21283,8 +21363,8 @@ Use streaming commands. ;;;*** -;;;### (autoloads nil "pp" "emacs-lisp/pp.el" (22230 48822 695219 -;;;;;; 0)) +;;;### (autoloads nil "pp" "emacs-lisp/pp.el" (22387 39327 315708 +;;;;;; 637000)) ;;; Generated autoloads from emacs-lisp/pp.el (autoload 'pp-to-string "pp" "\ @@ -21334,8 +21414,8 @@ Ignores leading comment characters. ;;;*** -;;;### (autoloads nil "printing" "printing.el" (22230 48822 863219 -;;;;;; 0)) +;;;### (autoloads nil "printing" "printing.el" (22578 62356 738212 +;;;;;; 40000)) ;;; Generated autoloads from printing.el (push (purecopy '(printing 6 9 3)) package--builtin-versions) @@ -21923,7 +22003,7 @@ are both set to t. ;;;*** -;;;### (autoloads nil "proced" "proced.el" (22290 3771 284245 784000)) +;;;### (autoloads nil "proced" "proced.el" (22387 39326 874710 211000)) ;;; Generated autoloads from proced.el (autoload 'proced "proced" "\ @@ -21941,8 +22021,8 @@ Proced buffers. ;;;*** -;;;### (autoloads nil "profiler" "profiler.el" (22230 48822 863219 -;;;;;; 0)) +;;;### (autoloads nil "profiler" "profiler.el" (22432 21609 980325 +;;;;;; 95000)) ;;; Generated autoloads from profiler.el (autoload 'profiler-start "profiler" "\ @@ -21970,8 +22050,8 @@ Open profile FILENAME. ;;;*** -;;;### (autoloads nil "project" "progmodes/project.el" (22298 5692 -;;;;;; 412287 950000)) +;;;### (autoloads nil "project" "progmodes/project.el" (22387 39328 +;;;;;; 379704 838000)) ;;; Generated autoloads from progmodes/project.el (autoload 'project-current "project" "\ @@ -22013,8 +22093,8 @@ recognized. ;;;*** -;;;### (autoloads nil "prolog" "progmodes/prolog.el" (22290 3781 -;;;;;; 432180 198000)) +;;;### (autoloads nil "prolog" "progmodes/prolog.el" (22387 39328 +;;;;;; 381704 831000)) ;;; Generated autoloads from progmodes/prolog.el (autoload 'prolog-mode "prolog" "\ @@ -22047,7 +22127,7 @@ With prefix argument ARG, restart the Prolog process if running before. ;;;*** -;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (22230 48822 900219 0)) +;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (22387 39326 876710 204000)) ;;; Generated autoloads from ps-bdf.el (defvar bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) (list (expand-file-name "fonts/bdf" installation-directory)) '("/usr/local/share/emacs/fonts/bdf")) "\ @@ -22058,8 +22138,8 @@ The default value is (\"/usr/local/share/emacs/fonts/bdf\").") ;;;*** -;;;### (autoloads nil "ps-mode" "progmodes/ps-mode.el" (22290 3771 -;;;;;; 299245 687000)) +;;;### (autoloads nil "ps-mode" "progmodes/ps-mode.el" (22387 39328 +;;;;;; 381704 831000)) ;;; Generated autoloads from progmodes/ps-mode.el (push (purecopy '(ps-mode 1 1 9)) package--builtin-versions) @@ -22105,8 +22185,8 @@ Typing \\\\[ps-run-goto-error] when the cursor is at the number ;;;*** -;;;### (autoloads nil "ps-print" "ps-print.el" (22290 3771 311245 -;;;;;; 610000)) +;;;### (autoloads nil "ps-print" "ps-print.el" (22387 39326 881710 +;;;;;; 186000)) ;;; Generated autoloads from ps-print.el (push (purecopy '(ps-print 7 3 5)) package--builtin-versions) @@ -22303,8 +22383,8 @@ If EXTENSION is any other symbol, it is ignored. ;;;*** -;;;### (autoloads nil "pulse" "cedet/pulse.el" (22230 48822 660220 -;;;;;; 0)) +;;;### (autoloads nil "pulse" "cedet/pulse.el" (22387 39327 137709 +;;;;;; 272000)) ;;; Generated autoloads from cedet/pulse.el (push (purecopy '(pulse 1 0)) package--builtin-versions) @@ -22322,8 +22402,8 @@ Optional argument FACE specifies the face to do the highlighting. ;;;*** -;;;### (autoloads nil "python" "progmodes/python.el" (22290 3781 -;;;;;; 432180 198000)) +;;;### (autoloads nil "python" "progmodes/python.el" (22578 62356 +;;;;;; 743212 14000)) ;;; Generated autoloads from progmodes/python.el (push (purecopy '(python 0 25 1)) package--builtin-versions) @@ -22360,7 +22440,7 @@ Major mode for editing Python files. ;;;*** -;;;### (autoloads nil "qp" "gnus/qp.el" (22290 3771 222246 185000)) +;;;### (autoloads nil "qp" "gnus/qp.el" (22387 39327 530707 869000)) ;;; Generated autoloads from gnus/qp.el (autoload 'quoted-printable-decode-region "qp" "\ @@ -22379,8 +22459,8 @@ them into characters should be done separately. ;;;*** -;;;### (autoloads nil "quail" "international/quail.el" (22230 48822 -;;;;;; 767219 0)) +;;;### (autoloads nil "quail" "international/quail.el" (22387 39327 +;;;;;; 616707 562000)) ;;; Generated autoloads from international/quail.el (autoload 'quail-title "quail" "\ @@ -22610,8 +22690,8 @@ of each directory. ;;;*** -;;;### (autoloads nil "quail/hangul" "leim/quail/hangul.el" (22230 -;;;;;; 48822 782219 0)) +;;;### (autoloads nil "quail/hangul" "leim/quail/hangul.el" (22387 +;;;;;; 39327 824706 820000)) ;;; Generated autoloads from leim/quail/hangul.el (autoload 'hangul-input-method-activate "quail/hangul" "\ @@ -22624,7 +22704,7 @@ HELP-TEXT is a text set in `hangul-input-method-help-text'. ;;;*** ;;;### (autoloads nil "quail/uni-input" "leim/quail/uni-input.el" -;;;;;; (22230 48822 785219 0)) +;;;;;; (22387 39327 864706 677000)) ;;; Generated autoloads from leim/quail/uni-input.el (autoload 'ucs-input-activate "quail/uni-input" "\ @@ -22638,8 +22718,8 @@ While this input method is active, the variable ;;;*** -;;;### (autoloads nil "quickurl" "net/quickurl.el" (22266 10298 427370 -;;;;;; 0)) +;;;### (autoloads nil "quickurl" "net/quickurl.el" (22387 39327 986706 +;;;;;; 241000)) ;;; Generated autoloads from net/quickurl.el (defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\ @@ -22710,7 +22790,8 @@ Display `quickurl-list' as a formatted list using `quickurl-list-mode'. ;;;*** -;;;### (autoloads nil "rcirc" "net/rcirc.el" (22290 3771 254245 978000)) +;;;### (autoloads nil "rcirc" "net/rcirc.el" (22387 39327 987706 +;;;;;; 238000)) ;;; Generated autoloads from net/rcirc.el (autoload 'rcirc "rcirc" "\ @@ -22731,7 +22812,8 @@ If ARG is non-nil, instead prompt for connection parameters. (defvar rcirc-track-minor-mode nil "\ Non-nil if Rcirc-Track minor mode is enabled. -See the command `rcirc-track-minor-mode' for a description of this minor mode. +See the `rcirc-track-minor-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `rcirc-track-minor-mode'.") @@ -22748,8 +22830,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "re-builder" "emacs-lisp/re-builder.el" (22230 -;;;;;; 48822 695219 0)) +;;;### (autoloads nil "re-builder" "emacs-lisp/re-builder.el" (22387 +;;;;;; 39327 315708 637000)) ;;; Generated autoloads from emacs-lisp/re-builder.el (defalias 'regexp-builder 're-builder) @@ -22767,13 +22849,14 @@ matching parts of the target buffer will be highlighted. ;;;*** -;;;### (autoloads nil "recentf" "recentf.el" (22230 48822 901219 -;;;;;; 0)) +;;;### (autoloads nil "recentf" "recentf.el" (22387 39326 883710 +;;;;;; 179000)) ;;; Generated autoloads from recentf.el (defvar recentf-mode nil "\ Non-nil if Recentf mode is enabled. -See the command `recentf-mode' for a description of this minor mode. +See the `recentf-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `recentf-mode'.") @@ -22794,7 +22877,7 @@ were operated on recently. ;;;*** -;;;### (autoloads nil "rect" "rect.el" (22298 5692 418287 925000)) +;;;### (autoloads nil "rect" "rect.el" (22578 62356 744212 8000)) ;;; Generated autoloads from rect.el (autoload 'delete-rectangle "rect" "\ @@ -22835,7 +22918,7 @@ With a prefix (or a FILL) argument, also fill lines where nothing has to be deleted. If the buffer is read-only, Emacs will beep and refrain from deleting -the rectangle, but put it in the kill ring anyway. This means that +the rectangle, but put it in `killed-rectangle' anyway. This means that you can use this command to copy text from a read-only buffer. \(If the variable `kill-read-only-ok' is non-nil, then this won't even beep.) @@ -22880,7 +22963,7 @@ no text on the right side of the rectangle. Delete all whitespace following a specified column in each line. The left edge of the rectangle specifies the position in each line at which whitespace deletion should begin. On each line in the -rectangle, all continuous whitespace starting at that column is deleted. +rectangle, all contiguous whitespace starting at that column is deleted. When called from a program the rectangle's corners are START and END. With a prefix (or a FILL) argument, also fill too short lines. @@ -22934,8 +23017,8 @@ Activates the region if needed. Only lasts until the region is deactivated. ;;;*** -;;;### (autoloads nil "refill" "textmodes/refill.el" (22230 48822 -;;;;;; 919218 0)) +;;;### (autoloads nil "refill" "textmodes/refill.el" (22387 39328 +;;;;;; 545704 246000)) ;;; Generated autoloads from textmodes/refill.el (autoload 'refill-mode "refill" "\ @@ -22955,8 +23038,8 @@ For true \"word wrap\" behavior, use `visual-line-mode' instead. ;;;*** -;;;### (autoloads nil "reftex" "textmodes/reftex.el" (22290 3771 -;;;;;; 326245 513000)) +;;;### (autoloads nil "reftex" "textmodes/reftex.el" (22387 39328 +;;;;;; 554704 213000)) ;;; Generated autoloads from textmodes/reftex.el (autoload 'reftex-citation "reftex-cite" nil t) (autoload 'reftex-all-document-files "reftex-parse") @@ -23009,8 +23092,8 @@ This enforces rescanning the buffer on next use. ;;;*** -;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (22230 -;;;;;; 48822 921218 0)) +;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (22387 +;;;;;; 39328 552704 220000)) ;;; Generated autoloads from textmodes/reftex-vars.el (put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) (put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) @@ -23019,24 +23102,50 @@ This enforces rescanning the buffer on next use. ;;;*** -;;;### (autoloads nil "regexp-opt" "emacs-lisp/regexp-opt.el" (22230 -;;;;;; 48822 695219 0)) +;;;### (autoloads nil "regexp-opt" "emacs-lisp/regexp-opt.el" (22490 +;;;;;; 22723 775600 274000)) ;;; 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. - (let ((open (if PAREN \"\\\\(\" \"\")) (close (if PAREN \"\\\\)\" \"\"))) - (concat open (mapconcat \\='regexp-quote STRINGS \"\\\\|\") close)) +`words' + the resulting regexp is surrounded by \\=\\<\\( and \\)\\>. -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 \\_>. +`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)))) \(fn STRINGS &optional PAREN)" nil nil) @@ -23049,15 +23158,15 @@ This means the number of non-shy regexp grouping constructs ;;;*** -;;;### (autoloads nil "regi" "emacs-lisp/regi.el" (22230 48822 696219 -;;;;;; 0)) +;;;### (autoloads nil "regi" "emacs-lisp/regi.el" (22387 39327 316708 +;;;;;; 633000)) ;;; Generated autoloads from emacs-lisp/regi.el (push (purecopy '(regi 1 8)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "remember" "textmodes/remember.el" (22230 48822 -;;;;;; 922218 0)) +;;;### (autoloads nil "remember" "textmodes/remember.el" (22387 39328 +;;;;;; 554704 213000)) ;;; Generated autoloads from textmodes/remember.el (push (purecopy '(remember 2 0)) package--builtin-versions) @@ -23111,7 +23220,7 @@ to turn the *scratch* buffer into your notes buffer. ;;;*** -;;;### (autoloads nil "repeat" "repeat.el" (22230 48822 902219 0)) +;;;### (autoloads nil "repeat" "repeat.el" (22387 39326 885710 172000)) ;;; Generated autoloads from repeat.el (push (purecopy '(repeat 0 51)) package--builtin-versions) @@ -23134,8 +23243,8 @@ recently executed command not bound to an input event\". ;;;*** -;;;### (autoloads nil "reporter" "mail/reporter.el" (22230 48822 -;;;;;; 789219 0)) +;;;### (autoloads nil "reporter" "mail/reporter.el" (22387 39327 +;;;;;; 929706 445000)) ;;; Generated autoloads from mail/reporter.el (autoload 'reporter-submit-bug-report "reporter" "\ @@ -23166,8 +23275,8 @@ mail-sending package is used for editing and sending the message. ;;;*** -;;;### (autoloads nil "reposition" "reposition.el" (22230 48822 903219 -;;;;;; 0)) +;;;### (autoloads nil "reposition" "reposition.el" (22387 39326 886710 +;;;;;; 169000)) ;;; Generated autoloads from reposition.el (autoload 'reposition-window "reposition" "\ @@ -23193,7 +23302,7 @@ first comment line visible (if point is in a comment). ;;;*** -;;;### (autoloads nil "reveal" "reveal.el" (22230 48822 903219 0)) +;;;### (autoloads nil "reveal" "reveal.el" (22387 39326 887710 165000)) ;;; Generated autoloads from reveal.el (autoload 'reveal-mode "reveal" "\ @@ -23209,7 +23318,8 @@ reveals invisible text around point. (defvar global-reveal-mode nil "\ Non-nil if Global Reveal mode is enabled. -See the command `global-reveal-mode' for a description of this minor mode. +See the `global-reveal-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `global-reveal-mode'.") @@ -23228,8 +23338,8 @@ the mode if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "ring" "emacs-lisp/ring.el" (22230 48822 696219 -;;;;;; 0)) +;;;### (autoloads nil "ring" "emacs-lisp/ring.el" (22387 39327 317708 +;;;;;; 630000)) ;;; Generated autoloads from emacs-lisp/ring.el (autoload 'ring-p "ring" "\ @@ -23244,8 +23354,8 @@ Make a ring that can contain SIZE elements. ;;;*** -;;;### (autoloads nil "rlogin" "net/rlogin.el" (22230 48822 812219 -;;;;;; 0)) +;;;### (autoloads nil "rlogin" "net/rlogin.el" (22387 39327 989706 +;;;;;; 231000)) ;;; Generated autoloads from net/rlogin.el (autoload 'rlogin "rlogin" "\ @@ -23289,8 +23399,8 @@ variable. ;;;*** -;;;### (autoloads nil "rmail" "mail/rmail.el" (22290 3771 244246 -;;;;;; 43000)) +;;;### (autoloads nil "rmail" "mail/rmail.el" (22387 39327 932706 +;;;;;; 434000)) ;;; Generated autoloads from mail/rmail.el (defvar rmail-file-name (purecopy "~/RMAIL") "\ @@ -23487,8 +23597,8 @@ Set PASSWORD to be used for retrieving mail from a POP or IMAP server. ;;;*** -;;;### (autoloads nil "rmailout" "mail/rmailout.el" (22230 48822 -;;;;;; 791219 0)) +;;;### (autoloads nil "rmailout" "mail/rmailout.el" (22387 39327 +;;;;;; 935706 423000)) ;;; Generated autoloads from mail/rmailout.el (put 'rmail-output-file-alist 'risky-local-variable t) @@ -23552,8 +23662,8 @@ than appending to it. Deletes the message after writing if ;;;*** -;;;### (autoloads nil "rng-cmpct" "nxml/rng-cmpct.el" (22290 3771 -;;;;;; 263245 920000)) +;;;### (autoloads nil "rng-cmpct" "nxml/rng-cmpct.el" (22387 39328 +;;;;;; 61705 974000)) ;;; Generated autoloads from nxml/rng-cmpct.el (autoload 'rng-c-load-schema "rng-cmpct" "\ @@ -23564,8 +23674,8 @@ Return a pattern. ;;;*** -;;;### (autoloads nil "rng-nxml" "nxml/rng-nxml.el" (22290 3771 264245 -;;;;;; 913000)) +;;;### (autoloads nil "rng-nxml" "nxml/rng-nxml.el" (22387 39328 +;;;;;; 63705 966000)) ;;; Generated autoloads from nxml/rng-nxml.el (autoload 'rng-nxml-mode-init "rng-nxml" "\ @@ -23577,8 +23687,8 @@ Validation will be enabled if `rng-nxml-auto-validate-flag' is non-nil. ;;;*** -;;;### (autoloads nil "rng-valid" "nxml/rng-valid.el" (22290 3771 -;;;;;; 264245 913000)) +;;;### (autoloads nil "rng-valid" "nxml/rng-valid.el" (22387 39328 +;;;;;; 66705 956000)) ;;; Generated autoloads from nxml/rng-valid.el (autoload 'rng-validate-mode "rng-valid" "\ @@ -23608,8 +23718,8 @@ to use for finding the schema. ;;;*** -;;;### (autoloads nil "rng-xsd" "nxml/rng-xsd.el" (22290 3771 264245 -;;;;;; 913000)) +;;;### (autoloads nil "rng-xsd" "nxml/rng-xsd.el" (22387 39328 67705 +;;;;;; 952000)) ;;; Generated autoloads from nxml/rng-xsd.el (put 'http://www\.w3\.org/2001/XMLSchema-datatypes 'rng-dt-compile 'rng-xsd-compile) @@ -23636,8 +23746,8 @@ must be equal. ;;;*** -;;;### (autoloads nil "robin" "international/robin.el" (22230 48822 -;;;;;; 767219 0)) +;;;### (autoloads nil "robin" "international/robin.el" (22387 39327 +;;;;;; 617707 559000)) ;;; Generated autoloads from international/robin.el (autoload 'robin-define-package "robin" "\ @@ -23669,7 +23779,7 @@ Start using robin package NAME, which is a string. ;;;*** -;;;### (autoloads nil "rot13" "rot13.el" (22230 48822 903219 0)) +;;;### (autoloads nil "rot13" "rot13.el" (22387 39326 887710 165000)) ;;; Generated autoloads from rot13.el (autoload 'rot13 "rot13" "\ @@ -23706,8 +23816,8 @@ Toggle the use of ROT13 encoding for the current window. ;;;*** -;;;### (autoloads nil "rst" "textmodes/rst.el" (22230 48822 923218 -;;;;;; 0)) +;;;### (autoloads nil "rst" "textmodes/rst.el" (22578 62356 749211 +;;;;;; 981000)) ;;; Generated autoloads from textmodes/rst.el (add-to-list 'auto-mode-alist (purecopy '("\\.re?st\\'" . rst-mode))) @@ -23737,8 +23847,8 @@ for modes derived from Text mode, like Mail mode. ;;;*** -;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (22266 -;;;;;; 10298 462370 0)) +;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (22387 +;;;;;; 39328 385704 817000)) ;;; Generated autoloads from progmodes/ruby-mode.el (push (purecopy '(ruby-mode 1 2)) package--builtin-versions) @@ -23755,8 +23865,8 @@ Major mode for editing Ruby code. ;;;*** -;;;### (autoloads nil "ruler-mode" "ruler-mode.el" (22230 48822 903219 -;;;;;; 0)) +;;;### (autoloads nil "ruler-mode" "ruler-mode.el" (22387 39326 888710 +;;;;;; 161000)) ;;; Generated autoloads from ruler-mode.el (push (purecopy '(ruler-mode 1 6)) package--builtin-versions) @@ -23774,8 +23884,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "rx" "emacs-lisp/rx.el" (22230 48822 696219 -;;;;;; 0)) +;;;### (autoloads nil "rx" "emacs-lisp/rx.el" (22387 39327 317708 +;;;;;; 630000)) ;;; Generated autoloads from emacs-lisp/rx.el (autoload 'rx-to-string "rx" "\ @@ -24086,21 +24196,22 @@ enclosed in `(and ...)'. ;;;*** -;;;### (autoloads nil "sasl-ntlm" "net/sasl-ntlm.el" (22230 48822 -;;;;;; 812219 0)) +;;;### (autoloads nil "sasl-ntlm" "net/sasl-ntlm.el" (22387 39327 +;;;;;; 990706 227000)) ;;; Generated autoloads from net/sasl-ntlm.el (push (purecopy '(sasl 1 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "savehist" "savehist.el" (22230 48822 903219 -;;;;;; 0)) +;;;### (autoloads nil "savehist" "savehist.el" (22387 39326 888710 +;;;;;; 161000)) ;;; Generated autoloads from savehist.el (push (purecopy '(savehist 24)) package--builtin-versions) (defvar savehist-mode nil "\ Non-nil if Savehist mode is enabled. -See the command `savehist-mode' for a description of this minor mode. +See the `savehist-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `savehist-mode'.") @@ -24126,13 +24237,14 @@ histories, which is probably undesirable. ;;;*** -;;;### (autoloads nil "saveplace" "saveplace.el" (22266 10298 479370 -;;;;;; 0)) +;;;### (autoloads nil "saveplace" "saveplace.el" (22387 39326 889710 +;;;;;; 158000)) ;;; Generated autoloads from saveplace.el (defvar save-place-mode nil "\ Non-nil if Save-Place mode is enabled. -See the command `save-place-mode' for a description of this minor mode. +See the `save-place-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `save-place-mode'.") @@ -24164,8 +24276,8 @@ file: ;;;*** -;;;### (autoloads nil "scheme" "progmodes/scheme.el" (22290 3771 -;;;;;; 302245 668000)) +;;;### (autoloads nil "scheme" "progmodes/scheme.el" (22387 39328 +;;;;;; 387704 809000)) ;;; Generated autoloads from progmodes/scheme.el (autoload 'scheme-mode "scheme" "\ @@ -24204,8 +24316,8 @@ that variable's value is a string. ;;;*** -;;;### (autoloads nil "score-mode" "gnus/score-mode.el" (22230 48822 -;;;;;; 753219 0)) +;;;### (autoloads nil "score-mode" "gnus/score-mode.el" (22387 39327 +;;;;;; 533707 859000)) ;;; Generated autoloads from gnus/score-mode.el (autoload 'gnus-score-mode "score-mode" "\ @@ -24218,13 +24330,14 @@ This mode is an extended emacs-lisp mode. ;;;*** -;;;### (autoloads nil "scroll-all" "scroll-all.el" (22230 48822 903219 -;;;;;; 0)) +;;;### (autoloads nil "scroll-all" "scroll-all.el" (22387 39326 890710 +;;;;;; 154000)) ;;; Generated autoloads from scroll-all.el (defvar scroll-all-mode nil "\ Non-nil if Scroll-All mode is enabled. -See the command `scroll-all-mode' for a description of this minor mode. +See the `scroll-all-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `scroll-all-mode'.") @@ -24244,8 +24357,8 @@ one window apply to all visible windows in the same frame. ;;;*** -;;;### (autoloads nil "scroll-lock" "scroll-lock.el" (22230 48822 -;;;;;; 903219 0)) +;;;### (autoloads nil "scroll-lock" "scroll-lock.el" (22387 39326 +;;;;;; 891710 151000)) ;;; Generated autoloads from scroll-lock.el (autoload 'scroll-lock-mode "scroll-lock" "\ @@ -24261,16 +24374,16 @@ vertically fixed relative to window boundaries during scrolling. ;;;*** -;;;### (autoloads nil "secrets" "net/secrets.el" (22230 48822 812219 -;;;;;; 0)) +;;;### (autoloads nil "secrets" "net/secrets.el" (22387 39327 991706 +;;;;;; 223000)) ;;; Generated autoloads from net/secrets.el (when (featurep 'dbusbind) (autoload 'secrets-show-secrets "secrets" nil t)) ;;;*** -;;;### (autoloads nil "semantic" "cedet/semantic.el" (22230 48822 -;;;;;; 660220 0)) +;;;### (autoloads nil "semantic" "cedet/semantic.el" (22387 39327 +;;;;;; 138709 269000)) ;;; Generated autoloads from cedet/semantic.el (push (purecopy '(semantic 2 2)) package--builtin-versions) @@ -24302,7 +24415,8 @@ The following modes are more targeted at people who want to see (defvar semantic-mode nil "\ Non-nil if Semantic mode is enabled. -See the command `semantic-mode' for a description of this minor mode. +See the `semantic-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `semantic-mode'.") @@ -24328,7 +24442,7 @@ Semantic mode. ;;;*** ;;;### (autoloads nil "semantic/bovine/grammar" "cedet/semantic/bovine/grammar.el" -;;;;;; (22230 48822 662220 0)) +;;;;;; (22387 39327 240708 905000)) ;;; Generated autoloads from cedet/semantic/bovine/grammar.el (autoload 'bovine-grammar-mode "semantic/bovine/grammar" "\ @@ -24339,7 +24453,7 @@ Major mode for editing Bovine grammars. ;;;*** ;;;### (autoloads nil "semantic/wisent/grammar" "cedet/semantic/wisent/grammar.el" -;;;;;; (22230 48822 671220 0)) +;;;;;; (22387 39327 249708 873000)) ;;; Generated autoloads from cedet/semantic/wisent/grammar.el (autoload 'wisent-grammar-mode "semantic/wisent/grammar" "\ @@ -24349,8 +24463,8 @@ Major mode for editing Wisent grammars. ;;;*** -;;;### (autoloads nil "sendmail" "mail/sendmail.el" (22266 10298 -;;;;;; 419370 0)) +;;;### (autoloads nil "sendmail" "mail/sendmail.el" (22387 39327 +;;;;;; 937706 416000)) ;;; Generated autoloads from mail/sendmail.el (defvar mail-from-style 'default "\ @@ -24631,14 +24745,14 @@ Like `mail' command, but display mail buffer in another frame. ;;;*** -;;;### (autoloads nil "seq" "emacs-lisp/seq.el" (22290 3781 417180 -;;;;;; 295000)) +;;;### (autoloads nil "seq" "emacs-lisp/seq.el" (22490 22723 987599 +;;;;;; 335000)) ;;; Generated autoloads from emacs-lisp/seq.el (push (purecopy '(seq 2 3)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "server" "server.el" (22230 48822 904219 0)) +;;;### (autoloads nil "server" "server.el" (22387 39326 892710 147000)) ;;; Generated autoloads from server.el (put 'server-host 'risky-local-variable t) @@ -24675,7 +24789,8 @@ NAME defaults to `server-name'. With argument, ask for NAME. (defvar server-mode nil "\ Non-nil if Server mode is enabled. -See the command `server-mode' for a description of this minor mode. +See the `server-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `server-mode'.") @@ -24705,7 +24820,7 @@ only these files will be asked to be saved. ;;;*** -;;;### (autoloads nil "ses" "ses.el" (22290 3771 312245 603000)) +;;;### (autoloads nil "ses" "ses.el" (22458 46685 211272 717000)) ;;; Generated autoloads from ses.el (autoload 'ses-mode "ses" "\ @@ -24749,8 +24864,8 @@ formula: ;;;*** -;;;### (autoloads nil "sgml-mode" "textmodes/sgml-mode.el" (22290 -;;;;;; 3771 326245 513000)) +;;;### (autoloads nil "sgml-mode" "textmodes/sgml-mode.el" (22387 +;;;;;; 39328 566704 170000)) ;;; Generated autoloads from textmodes/sgml-mode.el (autoload 'sgml-mode "sgml-mode" "\ @@ -24815,8 +24930,8 @@ To work around that, do: ;;;*** -;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (22298 -;;;;;; 5692 413287 946000)) +;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (22578 +;;;;;; 62356 743212 14000)) ;;; Generated autoloads from progmodes/sh-script.el (push (purecopy '(sh-script 2 0 6)) package--builtin-versions) (put 'sh-shell 'safe-local-variable 'symbolp) @@ -24881,8 +24996,8 @@ with your script for an edit-interpret-debug cycle. ;;;*** -;;;### (autoloads nil "shadow" "emacs-lisp/shadow.el" (22230 48822 -;;;;;; 696219 0)) +;;;### (autoloads nil "shadow" "emacs-lisp/shadow.el" (22387 39327 +;;;;;; 318708 626000)) ;;; Generated autoloads from emacs-lisp/shadow.el (autoload 'list-load-path-shadows "shadow" "\ @@ -24931,8 +25046,8 @@ function, `load-path-shadows-find'. ;;;*** -;;;### (autoloads nil "shadowfile" "shadowfile.el" (22230 48822 905219 -;;;;;; 0)) +;;;### (autoloads nil "shadowfile" "shadowfile.el" (22387 39326 894710 +;;;;;; 140000)) ;;; Generated autoloads from shadowfile.el (autoload 'shadow-define-cluster "shadowfile" "\ @@ -24970,7 +25085,7 @@ Set up file shadowing. ;;;*** -;;;### (autoloads nil "shell" "shell.el" (22230 48822 905219 0)) +;;;### (autoloads nil "shell" "shell.el" (22387 39326 895710 137000)) ;;; Generated autoloads from shell.el (defvar shell-dumb-shell-regexp (purecopy "cmd\\(proxy\\)?\\.exe") "\ @@ -25018,7 +25133,7 @@ Otherwise, one argument `-i' is passed to the shell. ;;;*** -;;;### (autoloads nil "shr" "net/shr.el" (22290 3771 255245 972000)) +;;;### (autoloads nil "shr" "net/shr.el" (22578 62356 730212 84000)) ;;; Generated autoloads from net/shr.el (autoload 'shr-render-region "shr" "\ @@ -25035,8 +25150,8 @@ DOM should be a parse tree as generated by ;;;*** -;;;### (autoloads nil "sieve" "gnus/sieve.el" (22290 3771 223246 -;;;;;; 178000)) +;;;### (autoloads nil "sieve" "gnus/sieve.el" (22387 39327 534707 +;;;;;; 855000)) ;;; Generated autoloads from gnus/sieve.el (autoload 'sieve-manage "sieve" "\ @@ -25061,8 +25176,8 @@ DOM should be a parse tree as generated by ;;;*** -;;;### (autoloads nil "sieve-mode" "gnus/sieve-mode.el" (22290 3771 -;;;;;; 223246 178000)) +;;;### (autoloads nil "sieve-mode" "gnus/sieve-mode.el" (22387 39327 +;;;;;; 534707 855000)) ;;; Generated autoloads from gnus/sieve-mode.el (autoload 'sieve-mode "sieve-mode" "\ @@ -25077,8 +25192,8 @@ Turning on Sieve mode runs `sieve-mode-hook'. ;;;*** -;;;### (autoloads nil "simula" "progmodes/simula.el" (22266 10298 -;;;;;; 471370 0)) +;;;### (autoloads nil "simula" "progmodes/simula.el" (22387 39328 +;;;;;; 390704 799000)) ;;; Generated autoloads from progmodes/simula.el (autoload 'simula-mode "simula" "\ @@ -25126,8 +25241,8 @@ with no arguments, if that value is non-nil. ;;;*** -;;;### (autoloads nil "skeleton" "skeleton.el" (22266 10298 480370 -;;;;;; 0)) +;;;### (autoloads nil "skeleton" "skeleton.el" (22387 39326 901710 +;;;;;; 115000)) ;;; Generated autoloads from skeleton.el (defvar skeleton-filter-function 'identity "\ @@ -25246,8 +25361,8 @@ twice for the others. ;;;*** -;;;### (autoloads nil "smerge-mode" "vc/smerge-mode.el" (22290 3771 -;;;;;; 334245 461000)) +;;;### (autoloads nil "smerge-mode" "vc/smerge-mode.el" (22387 39328 +;;;;;; 668703 806000)) ;;; Generated autoloads from vc/smerge-mode.el (autoload 'smerge-ediff "smerge-mode" "\ @@ -25274,8 +25389,8 @@ If no conflict maker is found, turn off `smerge-mode'. ;;;*** -;;;### (autoloads nil "smiley" "gnus/smiley.el" (22290 3771 223246 -;;;;;; 178000)) +;;;### (autoloads nil "smiley" "gnus/smiley.el" (22387 39327 535707 +;;;;;; 851000)) ;;; Generated autoloads from gnus/smiley.el (autoload 'smiley-region "smiley" "\ @@ -25292,8 +25407,8 @@ interactively. If there's no argument, do it at the current buffer. ;;;*** -;;;### (autoloads nil "smtpmail" "mail/smtpmail.el" (22230 48822 -;;;;;; 792219 0)) +;;;### (autoloads nil "smtpmail" "mail/smtpmail.el" (22387 39327 +;;;;;; 938706 413000)) ;;; Generated autoloads from mail/smtpmail.el (autoload 'smtpmail-send-it "smtpmail" "\ @@ -25308,8 +25423,8 @@ Send mail that was queued as a result of setting `smtpmail-queue-mail'. ;;;*** -;;;### (autoloads nil "snake" "play/snake.el" (22290 3771 283245 -;;;;;; 791000)) +;;;### (autoloads nil "snake" "play/snake.el" (22387 39328 271705 +;;;;;; 224000)) ;;; Generated autoloads from play/snake.el (autoload 'snake "snake" "\ @@ -25332,8 +25447,8 @@ Snake mode keybindings: ;;;*** -;;;### (autoloads nil "snmp-mode" "net/snmp-mode.el" (22230 48822 -;;;;;; 813219 0)) +;;;### (autoloads nil "snmp-mode" "net/snmp-mode.el" (22387 39327 +;;;;;; 993706 216000)) ;;; Generated autoloads from net/snmp-mode.el (autoload 'snmp-mode "snmp-mode" "\ @@ -25362,15 +25477,15 @@ then `snmpv2-mode-hook'. ;;;*** -;;;### (autoloads nil "soap-client" "net/soap-client.el" (22290 3771 -;;;;;; 255245 972000)) +;;;### (autoloads nil "soap-client" "net/soap-client.el" (22387 39327 +;;;;;; 995706 209000)) ;;; Generated autoloads from net/soap-client.el (push (purecopy '(soap-client 3 0 2)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "solar" "calendar/solar.el" (22290 3781 413180 -;;;;;; 321000)) +;;;### (autoloads nil "solar" "calendar/solar.el" (22387 39327 123709 +;;;;;; 322000)) ;;; Generated autoloads from calendar/solar.el (autoload 'sunrise-sunset "solar" "\ @@ -25385,8 +25500,8 @@ This function is suitable for execution in an init file. ;;;*** -;;;### (autoloads nil "solitaire" "play/solitaire.el" (22230 48822 -;;;;;; 862219 0)) +;;;### (autoloads nil "solitaire" "play/solitaire.el" (22387 39328 +;;;;;; 272705 220000)) ;;; Generated autoloads from play/solitaire.el (autoload 'solitaire "solitaire" "\ @@ -25461,7 +25576,7 @@ Pick your favorite shortcuts: ;;;*** -;;;### (autoloads nil "sort" "sort.el" (22230 48822 907219 0)) +;;;### (autoloads nil "sort" "sort.el" (22387 39326 901710 115000)) ;;; Generated autoloads from sort.el (put 'sort-fold-case 'safe-local-variable 'booleanp) @@ -25636,7 +25751,7 @@ is non-nil, it also prints a message describing the number of deletions. ;;;*** -;;;### (autoloads nil "spam" "gnus/spam.el" (22290 3771 224246 172000)) +;;;### (autoloads nil "spam" "gnus/spam.el" (22387 39327 538707 841000)) ;;; Generated autoloads from gnus/spam.el (autoload 'spam-initialize "spam" "\ @@ -25650,8 +25765,8 @@ installed through `spam-necessary-extra-headers'. ;;;*** -;;;### (autoloads nil "spam-report" "gnus/spam-report.el" (22290 -;;;;;; 3771 223246 178000)) +;;;### (autoloads nil "spam-report" "gnus/spam-report.el" (22387 +;;;;;; 39327 536707 848000)) ;;; Generated autoloads from gnus/spam-report.el (autoload 'spam-report-process-queue "spam-report" "\ @@ -25693,8 +25808,8 @@ Spam reports will be queued with the method used when ;;;*** -;;;### (autoloads nil "speedbar" "speedbar.el" (22230 48822 908219 -;;;;;; 0)) +;;;### (autoloads nil "speedbar" "speedbar.el" (22387 39326 903710 +;;;;;; 108000)) ;;; Generated autoloads from speedbar.el (defalias 'speedbar 'speedbar-frame-mode) @@ -25718,8 +25833,8 @@ selected. If the speedbar frame is active, then select the attached frame. ;;;*** -;;;### (autoloads nil "spook" "play/spook.el" (22230 48822 862219 -;;;;;; 0)) +;;;### (autoloads nil "spook" "play/spook.el" (22387 39328 272705 +;;;;;; 220000)) ;;; Generated autoloads from play/spook.el (autoload 'spook "spook" "\ @@ -25734,8 +25849,8 @@ Return a vector containing the lines from `spook-phrases-file'. ;;;*** -;;;### (autoloads nil "sql" "progmodes/sql.el" (22230 48822 893219 -;;;;;; 0)) +;;;### (autoloads nil "sql" "progmodes/sql.el" (22387 39328 393704 +;;;;;; 788000)) ;;; Generated autoloads from progmodes/sql.el (push (purecopy '(sql 3 5)) package--builtin-versions) @@ -26201,15 +26316,15 @@ Run vsql as an inferior process. ;;;*** -;;;### (autoloads nil "srecode" "cedet/srecode.el" (22230 48822 671220 -;;;;;; 0)) +;;;### (autoloads nil "srecode" "cedet/srecode.el" (22387 39327 139709 +;;;;;; 265000)) ;;; Generated autoloads from cedet/srecode.el (push (purecopy '(srecode 1 2)) package--builtin-versions) ;;;*** ;;;### (autoloads nil "srecode/srt-mode" "cedet/srecode/srt-mode.el" -;;;;;; (22230 48822 673220 0)) +;;;;;; (22387 39327 265708 816000)) ;;; Generated autoloads from cedet/srecode/srt-mode.el (autoload 'srecode-template-mode "srecode/srt-mode" "\ @@ -26221,8 +26336,8 @@ Major-mode for writing SRecode macros. ;;;*** -;;;### (autoloads nil "starttls" "gnus/starttls.el" (22290 3771 224246 -;;;;;; 172000)) +;;;### (autoloads nil "starttls" "gnus/starttls.el" (22387 39327 +;;;;;; 538707 841000)) ;;; Generated autoloads from gnus/starttls.el (autoload 'starttls-open-stream "starttls" "\ @@ -26245,8 +26360,8 @@ GnuTLS requires a port number. ;;;*** -;;;### (autoloads nil "strokes" "strokes.el" (22230 48822 909219 -;;;;;; 0)) +;;;### (autoloads nil "strokes" "strokes.el" (22387 39326 907710 +;;;;;; 94000)) ;;; Generated autoloads from strokes.el (autoload 'strokes-global-set-stroke "strokes" "\ @@ -26317,7 +26432,8 @@ If STROKES-MAP is not given, `strokes-global-map' will be used instead. (defvar strokes-mode nil "\ Non-nil if Strokes mode is enabled. -See the command `strokes-mode' for a description of this minor mode. +See the `strokes-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `strokes-mode'.") @@ -26359,8 +26475,8 @@ Read a complex stroke and insert its glyph into the current buffer. ;;;*** -;;;### (autoloads nil "studly" "play/studly.el" (22290 3781 426180 -;;;;;; 237000)) +;;;### (autoloads nil "studly" "play/studly.el" (22387 39328 273705 +;;;;;; 217000)) ;;; Generated autoloads from play/studly.el (autoload 'studlify-region "studly" "\ @@ -26380,8 +26496,8 @@ Studlify-case the current buffer. ;;;*** -;;;### (autoloads nil "subword" "progmodes/subword.el" (22230 48822 -;;;;;; 893219 0)) +;;;### (autoloads nil "subword" "progmodes/subword.el" (22387 39328 +;;;;;; 394704 784000)) ;;; Generated autoloads from progmodes/subword.el (define-obsolete-function-alias 'capitalized-words-mode 'subword-mode "25.1") @@ -26416,7 +26532,8 @@ treat nomenclature boundaries as word boundaries. (defvar global-subword-mode nil "\ Non-nil if Global Subword mode is enabled. -See the command `global-subword-mode' for a description of this minor mode. +See the `global-subword-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `global-subword-mode'.") @@ -26452,7 +26569,8 @@ as parts of words: e.g., in `superword-mode', (defvar global-superword-mode nil "\ Non-nil if Global Superword mode is enabled. -See the command `global-superword-mode' for a description of this minor mode. +See the `global-superword-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `global-superword-mode'.") @@ -26473,8 +26591,8 @@ See `superword-mode' for more information on Superword mode. ;;;*** -;;;### (autoloads nil "supercite" "mail/supercite.el" (22230 48822 -;;;;;; 793219 0)) +;;;### (autoloads nil "supercite" "mail/supercite.el" (22387 39327 +;;;;;; 939706 409000)) ;;; Generated autoloads from mail/supercite.el (autoload 'sc-cite-original "supercite" "\ @@ -26506,15 +26624,16 @@ and `sc-post-hook' is run after the guts of this function. ;;;*** -;;;### (autoloads nil "t-mouse" "t-mouse.el" (22261 18214 533020 -;;;;;; 0)) +;;;### (autoloads nil "t-mouse" "t-mouse.el" (22387 39326 911710 +;;;;;; 79000)) ;;; Generated autoloads from t-mouse.el (define-obsolete-function-alias 't-mouse-mode 'gpm-mouse-mode "23.1") (defvar gpm-mouse-mode t "\ Non-nil if Gpm-Mouse mode is enabled. -See the command `gpm-mouse-mode' for a description of this minor mode. +See the `gpm-mouse-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `gpm-mouse-mode'.") @@ -26539,7 +26658,7 @@ GPM. This is due to limitations in GPM and the Linux kernel. ;;;*** -;;;### (autoloads nil "tabify" "tabify.el" (22230 48822 910219 0)) +;;;### (autoloads nil "tabify" "tabify.el" (22387 39326 911710 79000)) ;;; Generated autoloads from tabify.el (autoload 'untabify "tabify" "\ @@ -26568,8 +26687,8 @@ The variable `tab-width' controls the spacing of tab stops. ;;;*** -;;;### (autoloads nil "table" "textmodes/table.el" (22230 48822 924218 -;;;;;; 0)) +;;;### (autoloads nil "table" "textmodes/table.el" (22387 39328 569704 +;;;;;; 160000)) ;;; Generated autoloads from textmodes/table.el (autoload 'table-insert "table" "\ @@ -27140,7 +27259,7 @@ converts a table into plain text without frames. It is a companion to ;;;*** -;;;### (autoloads nil "talk" "talk.el" (22230 48822 910219 0)) +;;;### (autoloads nil "talk" "talk.el" (22387 39326 912710 76000)) ;;; Generated autoloads from talk.el (autoload 'talk-connect "talk" "\ @@ -27155,8 +27274,8 @@ Connect to the Emacs talk group from the current X display or tty frame. ;;;*** -;;;### (autoloads nil "tar-mode" "tar-mode.el" (22230 48822 910219 -;;;;;; 0)) +;;;### (autoloads nil "tar-mode" "tar-mode.el" (22387 39326 912710 +;;;;;; 76000)) ;;; Generated autoloads from tar-mode.el (autoload 'tar-mode "tar-mode" "\ @@ -27179,8 +27298,8 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. ;;;*** -;;;### (autoloads nil "tcl" "progmodes/tcl.el" (22230 48822 894219 -;;;;;; 0)) +;;;### (autoloads nil "tcl" "progmodes/tcl.el" (22387 39328 395704 +;;;;;; 781000)) ;;; Generated autoloads from progmodes/tcl.el (autoload 'tcl-mode "tcl" "\ @@ -27228,8 +27347,8 @@ Prefix argument means invert sense of `tcl-use-smart-word-finder'. ;;;*** -;;;### (autoloads nil "telnet" "net/telnet.el" (22230 48822 814219 -;;;;;; 0)) +;;;### (autoloads nil "telnet" "net/telnet.el" (22387 39327 997706 +;;;;;; 202000)) ;;; Generated autoloads from net/telnet.el (autoload 'telnet "telnet" "\ @@ -27254,7 +27373,7 @@ Normally input is edited in Emacs and sent a line at a time. ;;;*** -;;;### (autoloads nil "term" "term.el" (22298 5692 419287 921000)) +;;;### (autoloads nil "term" "term.el" (22578 62356 748211 987000)) ;;; Generated autoloads from term.el (autoload 'make-term "term" "\ @@ -27296,8 +27415,8 @@ use in that buffer. ;;;*** -;;;### (autoloads nil "testcover" "emacs-lisp/testcover.el" (22230 -;;;;;; 48822 697219 0)) +;;;### (autoloads nil "testcover" "emacs-lisp/testcover.el" (22387 +;;;;;; 39327 336708 562000)) ;;; Generated autoloads from emacs-lisp/testcover.el (autoload 'testcover-this-defun "testcover" "\ @@ -27307,8 +27426,8 @@ Start coverage on function under point. ;;;*** -;;;### (autoloads nil "tetris" "play/tetris.el" (22230 48822 862219 -;;;;;; 0)) +;;;### (autoloads nil "tetris" "play/tetris.el" (22387 39328 273705 +;;;;;; 217000)) ;;; Generated autoloads from play/tetris.el (push (purecopy '(tetris 2 1)) package--builtin-versions) @@ -27333,8 +27452,8 @@ tetris-mode keybindings: ;;;*** -;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (22290 3771 -;;;;;; 328245 500000)) +;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (22587 59854 +;;;;;; 962142 834000)) ;;; Generated autoloads from textmodes/tex-mode.el (defvar tex-shell-file-name nil "\ @@ -27635,8 +27754,8 @@ Major mode to edit DocTeX files. ;;;*** -;;;### (autoloads nil "texinfmt" "textmodes/texinfmt.el" (22266 10298 -;;;;;; 487370 0)) +;;;### (autoloads nil "texinfmt" "textmodes/texinfmt.el" (22387 39328 +;;;;;; 575704 138000)) ;;; Generated autoloads from textmodes/texinfmt.el (autoload 'texinfo-format-buffer "texinfmt" "\ @@ -27675,8 +27794,8 @@ if large. You can use `Info-split' to do this manually. ;;;*** -;;;### (autoloads nil "texinfo" "textmodes/texinfo.el" (22290 3771 -;;;;;; 328245 500000)) +;;;### (autoloads nil "texinfo" "textmodes/texinfo.el" (22387 39328 +;;;;;; 577704 131000)) ;;; Generated autoloads from textmodes/texinfo.el (defvar texinfo-open-quote (purecopy "``") "\ @@ -27760,8 +27879,8 @@ value of `texinfo-mode-hook'. ;;;*** -;;;### (autoloads nil "thai-util" "language/thai-util.el" (22230 -;;;;;; 48822 774219 0)) +;;;### (autoloads nil "thai-util" "language/thai-util.el" (22387 +;;;;;; 39327 664707 391000)) ;;; Generated autoloads from language/thai-util.el (autoload 'thai-compose-region "thai-util" "\ @@ -27788,8 +27907,8 @@ Compose Thai characters in the current buffer. ;;;*** -;;;### (autoloads nil "thingatpt" "thingatpt.el" (22266 10298 488370 -;;;;;; 0)) +;;;### (autoloads nil "thingatpt" "thingatpt.el" (22387 39326 915710 +;;;;;; 65000)) ;;; Generated autoloads from thingatpt.el (autoload 'forward-thing "thingatpt" "\ @@ -27853,7 +27972,7 @@ Return the Lisp list at point, or nil if none is found. ;;;*** -;;;### (autoloads nil "thumbs" "thumbs.el" (22230 48822 927218 0)) +;;;### (autoloads nil "thumbs" "thumbs.el" (22387 39326 916710 61000)) ;;; Generated autoloads from thumbs.el (autoload 'thumbs-find-thumb "thumbs" "\ @@ -27887,15 +28006,15 @@ In dired, call the setroot program on the image at point. ;;;*** -;;;### (autoloads nil "thunk" "emacs-lisp/thunk.el" (22230 48822 -;;;;;; 697219 0)) +;;;### (autoloads nil "thunk" "emacs-lisp/thunk.el" (22387 39327 +;;;;;; 336708 562000)) ;;; Generated autoloads from emacs-lisp/thunk.el (push (purecopy '(thunk 1 0)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "tibet-util" "language/tibet-util.el" (22230 -;;;;;; 48822 775219 0)) +;;;### (autoloads nil "tibet-util" "language/tibet-util.el" (22387 +;;;;;; 39327 667707 380000)) ;;; Generated autoloads from language/tibet-util.el (autoload 'tibetan-char-p "tibet-util" "\ @@ -27968,8 +28087,8 @@ See also docstring of the function tibetan-compose-region. ;;;*** -;;;### (autoloads nil "tildify" "textmodes/tildify.el" (22230 48822 -;;;;;; 926218 0)) +;;;### (autoloads nil "tildify" "textmodes/tildify.el" (22387 39328 +;;;;;; 579704 124000)) ;;; Generated autoloads from textmodes/tildify.el (push (purecopy '(tildify 4 6 1)) package--builtin-versions) @@ -28035,7 +28154,7 @@ variable will be set to the representation. ;;;*** -;;;### (autoloads nil "time" "time.el" (22230 48822 927218 0)) +;;;### (autoloads nil "time" "time.el" (22387 39326 918710 54000)) ;;; Generated autoloads from time.el (defvar display-time-day-and-date nil "\ @@ -28055,7 +28174,8 @@ This runs the normal hook `display-time-hook' after each update. (defvar display-time-mode nil "\ Non-nil if Display-Time mode is enabled. -See the command `display-time-mode' for a description of this minor mode. +See the `display-time-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `display-time-mode'.") @@ -28097,8 +28217,8 @@ Return a string giving the duration of the Emacs initialization. ;;;*** -;;;### (autoloads nil "time-date" "calendar/time-date.el" (22230 -;;;;;; 48822 653220 0)) +;;;### (autoloads nil "time-date" "calendar/time-date.el" (22387 +;;;;;; 39327 124709 319000)) ;;; Generated autoloads from calendar/time-date.el (autoload 'date-to-time "time-date" "\ @@ -28201,8 +28321,8 @@ Convert the time interval in seconds to a short string. ;;;*** -;;;### (autoloads nil "time-stamp" "time-stamp.el" (22290 3771 329245 -;;;;;; 493000)) +;;;### (autoloads nil "time-stamp" "time-stamp.el" (22387 39326 917710 +;;;;;; 58000)) ;;; Generated autoloads from time-stamp.el (put 'time-stamp-format 'safe-local-variable 'stringp) (put 'time-stamp-time-zone 'safe-local-variable 'string-or-null-p) @@ -28242,14 +28362,15 @@ With ARG, turn time stamping on if and only if arg is positive. ;;;*** -;;;### (autoloads nil "timeclock" "calendar/timeclock.el" (22230 -;;;;;; 48822 654220 0)) +;;;### (autoloads nil "timeclock" "calendar/timeclock.el" (22387 +;;;;;; 39327 125709 315000)) ;;; Generated autoloads from calendar/timeclock.el (push (purecopy '(timeclock 2 6 1)) package--builtin-versions) (defvar timeclock-mode-line-display nil "\ Non-nil if Timeclock-Mode-Line-Display mode is enabled. -See the command `timeclock-mode-line-display' for a description of this minor mode. +See the `timeclock-mode-line-display' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `timeclock-mode-line-display'.") @@ -28353,7 +28474,7 @@ relative only to the time worked today, and not to past time. ;;;*** ;;;### (autoloads nil "titdic-cnv" "international/titdic-cnv.el" -;;;;;; (22230 48822 767219 0)) +;;;;;; (22387 39327 617707 559000)) ;;; Generated autoloads from international/titdic-cnv.el (autoload 'titdic-convert "titdic-cnv" "\ @@ -28375,7 +28496,7 @@ To get complete usage, invoke \"emacs -batch -f batch-titdic-convert -h\". ;;;*** -;;;### (autoloads nil "tmm" "tmm.el" (22298 5692 419287 921000)) +;;;### (autoloads nil "tmm" "tmm.el" (22387 39326 919710 51000)) ;;; Generated autoloads from tmm.el (define-key global-map "\M-`" 'tmm-menubar) (define-key global-map [menu-bar mouse-1] 'tmm-menubar-mouse) @@ -28417,18 +28538,19 @@ Its value should be an event that has a binding in MENU. ;;;*** -;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (22290 -;;;;;; 3781 414180 315000)) +;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (22421 +;;;;;; 47996 796280 817000)) ;;; Generated autoloads from calendar/todo-mode.el (autoload 'todo-show "todo-mode" "\ Visit a todo file and display one of its categories. -When invoked in Todo mode, prompt for which todo file to visit. -When invoked outside of Todo mode with non-nil prefix argument -SOLICIT-FILE prompt for which todo file to visit; otherwise visit -`todo-default-todo-file'. Subsequent invocations from outside -of Todo mode revisit this file or, with option +When invoked in Todo mode, Todo Archive mode or Todo Filtered +Items mode, or when invoked anywhere else with a prefix argument, +prompt for which todo file to visit. When invoked outside of a +Todo mode buffer without a prefix argument, visit +`todo-default-todo-file'. Subsequent invocations from outside of +Todo mode revisit this file or, with option `todo-show-current-file' non-nil (the default), whichever todo file was last visited. @@ -28457,9 +28579,6 @@ by default. The done items are hidden, but typing items. With non-nil user option `todo-show-with-done' both todo and done items are always shown on visiting a category. -Invoking this command in Todo Archive mode visits the -corresponding todo file, displaying the corresponding category. - \(fn &optional SOLICIT-FILE INTERACTIVE)" t nil) (autoload 'todo-mode "todo-mode" "\ @@ -28485,8 +28604,8 @@ Mode for displaying and reprioritizing top priority Todo. ;;;*** -;;;### (autoloads nil "tool-bar" "tool-bar.el" (22230 48822 928218 -;;;;;; 0)) +;;;### (autoloads nil "tool-bar" "tool-bar.el" (22387 39326 919710 +;;;;;; 51000)) ;;; Generated autoloads from tool-bar.el (autoload 'toggle-tool-bar-mode-from-frame "tool-bar" "\ @@ -28556,8 +28675,8 @@ holds a keymap. ;;;*** -;;;### (autoloads nil "tq" "emacs-lisp/tq.el" (22230 48822 698219 -;;;;;; 0)) +;;;### (autoloads nil "tq" "emacs-lisp/tq.el" (22387 39327 337708 +;;;;;; 558000)) ;;; Generated autoloads from emacs-lisp/tq.el (autoload 'tq-create "tq" "\ @@ -28570,8 +28689,8 @@ to a tcp server on another machine. ;;;*** -;;;### (autoloads nil "trace" "emacs-lisp/trace.el" (22230 48822 -;;;;;; 698219 0)) +;;;### (autoloads nil "trace" "emacs-lisp/trace.el" (22387 39327 +;;;;;; 338708 555000)) ;;; Generated autoloads from emacs-lisp/trace.el (defvar trace-buffer "*trace-output*" "\ @@ -28616,7 +28735,8 @@ the output buffer or changing the window configuration. ;;;*** -;;;### (autoloads nil "tramp" "net/tramp.el" (22290 3781 421180 270000)) +;;;### (autoloads nil "tramp" "net/tramp.el" (22578 62356 732212 +;;;;;; 73000)) ;;; Generated autoloads from net/tramp.el (defvar tramp-mode t "\ @@ -28731,8 +28851,8 @@ Discard Tramp from loading remote files. ;;;*** -;;;### (autoloads nil "tramp-ftp" "net/tramp-ftp.el" (22290 3771 -;;;;;; 257245 959000)) +;;;### (autoloads nil "tramp-ftp" "net/tramp-ftp.el" (22387 39328 +;;;;;; 1706 188000)) ;;; Generated autoloads from net/tramp-ftp.el (autoload 'tramp-ftp-enable-ange-ftp "tramp-ftp" "\ @@ -28742,15 +28862,15 @@ Discard Tramp from loading remote files. ;;;*** -;;;### (autoloads nil "trampver" "net/trampver.el" (22290 3771 261245 -;;;;;; 933000)) +;;;### (autoloads nil "trampver" "net/trampver.el" (22578 62356 732212 +;;;;;; 73000)) ;;; Generated autoloads from net/trampver.el -(push (purecopy '(tramp 2 2 13 25 1)) package--builtin-versions) +(push (purecopy '(tramp 2 2 13 25 2)) package--builtin-versions) ;;;*** -;;;### (autoloads nil "tutorial" "tutorial.el" (22230 48822 928218 -;;;;;; 0)) +;;;### (autoloads nil "tutorial" "tutorial.el" (22387 39326 921710 +;;;;;; 44000)) ;;; Generated autoloads from tutorial.el (autoload 'help-with-tutorial "tutorial" "\ @@ -28774,8 +28894,8 @@ resumed later. ;;;*** -;;;### (autoloads nil "tv-util" "language/tv-util.el" (22230 48822 -;;;;;; 775219 0)) +;;;### (autoloads nil "tv-util" "language/tv-util.el" (22387 39327 +;;;;;; 668707 377000)) ;;; Generated autoloads from language/tv-util.el (autoload 'tai-viet-composition-function "tv-util" "\ @@ -28785,8 +28905,8 @@ resumed later. ;;;*** -;;;### (autoloads nil "two-column" "textmodes/two-column.el" (22230 -;;;;;; 48822 927218 0)) +;;;### (autoloads nil "two-column" "textmodes/two-column.el" (22387 +;;;;;; 39328 579704 124000)) ;;; Generated autoloads from textmodes/two-column.el (autoload '2C-command "two-column" () t 'keymap) (global-set-key "\C-x6" '2C-command) @@ -28833,13 +28953,14 @@ First column's text sSs Second column's text ;;;*** -;;;### (autoloads nil "type-break" "type-break.el" (22230 48822 928218 -;;;;;; 0)) +;;;### (autoloads nil "type-break" "type-break.el" (22387 39326 921710 +;;;;;; 44000)) ;;; Generated autoloads from type-break.el (defvar type-break-mode nil "\ Non-nil if Type-Break mode is enabled. -See the command `type-break-mode' for a description of this minor mode. +See the `type-break-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `type-break-mode'.") @@ -28966,7 +29087,7 @@ FRAC should be the inverse of the fractional value; for example, a value of ;;;*** -;;;### (autoloads nil "uce" "mail/uce.el" (22230 48822 793219 0)) +;;;### (autoloads nil "uce" "mail/uce.el" (22387 39327 939706 409000)) ;;; Generated autoloads from mail/uce.el (autoload 'uce-reply-to-uce "uce" "\ @@ -28980,7 +29101,7 @@ You might need to set `uce-mail-reader' before using this. ;;;*** ;;;### (autoloads nil "ucs-normalize" "international/ucs-normalize.el" -;;;;;; (22230 48822 767219 0)) +;;;;;; (22578 62356 724212 116000)) ;;; Generated autoloads from international/ucs-normalize.el (autoload 'ucs-normalize-NFD-region "ucs-normalize" "\ @@ -29045,8 +29166,8 @@ Normalize the string STR by the Unicode NFC and Mac OS's HFS Plus. ;;;*** -;;;### (autoloads nil "underline" "textmodes/underline.el" (22230 -;;;;;; 48822 927218 0)) +;;;### (autoloads nil "underline" "textmodes/underline.el" (22387 +;;;;;; 39328 580704 121000)) ;;; Generated autoloads from textmodes/underline.el (autoload 'underline-region "underline" "\ @@ -29066,8 +29187,8 @@ which specify the range to operate on. ;;;*** -;;;### (autoloads nil "unrmail" "mail/unrmail.el" (22230 48822 793219 -;;;;;; 0)) +;;;### (autoloads nil "unrmail" "mail/unrmail.el" (22387 39327 940706 +;;;;;; 406000)) ;;; Generated autoloads from mail/unrmail.el (autoload 'batch-unrmail "unrmail" "\ @@ -29087,8 +29208,8 @@ The variable `unrmail-mbox-format' controls which mbox format to use. ;;;*** -;;;### (autoloads nil "unsafep" "emacs-lisp/unsafep.el" (22230 48822 -;;;;;; 698219 0)) +;;;### (autoloads nil "unsafep" "emacs-lisp/unsafep.el" (22387 39327 +;;;;;; 338708 555000)) ;;; Generated autoloads from emacs-lisp/unsafep.el (autoload 'unsafep "unsafep" "\ @@ -29100,7 +29221,7 @@ UNSAFEP-VARS is a list of symbols with local bindings. ;;;*** -;;;### (autoloads nil "url" "url/url.el" (22230 48822 932218 0)) +;;;### (autoloads nil "url" "url/url.el" (22387 39328 621703 974000)) ;;; Generated autoloads from url/url.el (autoload 'url-retrieve "url" "\ @@ -29142,13 +29263,16 @@ Retrieve URL synchronously. Return the buffer containing the data, or nil if there are no data associated with it (the case for dired, info, or mailto URLs that need no further processing). URL is either a string or a parsed URL. +If SILENT is non-nil, don't display progress reports and similar messages. +If INHIBIT-COOKIES is non-nil, cookies will neither be stored nor sent +to the server. \(fn URL &optional SILENT INHIBIT-COOKIES)" nil nil) ;;;*** -;;;### (autoloads nil "url-auth" "url/url-auth.el" (22230 48822 929218 -;;;;;; 0)) +;;;### (autoloads nil "url-auth" "url/url-auth.el" (22387 39328 608704 +;;;;;; 20000)) ;;; Generated autoloads from url/url-auth.el (autoload 'url-get-authentication "url-auth" "\ @@ -29189,8 +29313,8 @@ RATING a rating between 1 and 10 of the strength of the authentication. ;;;*** -;;;### (autoloads nil "url-cache" "url/url-cache.el" (22230 48822 -;;;;;; 929218 0)) +;;;### (autoloads nil "url-cache" "url/url-cache.el" (22387 39328 +;;;;;; 608704 20000)) ;;; Generated autoloads from url/url-cache.el (autoload 'url-store-in-cache "url-cache" "\ @@ -29211,8 +29335,8 @@ Extract FNAM from the local disk cache. ;;;*** -;;;### (autoloads nil "url-cid" "url/url-cid.el" (22230 48822 929218 -;;;;;; 0)) +;;;### (autoloads nil "url-cid" "url/url-cid.el" (22387 39328 608704 +;;;;;; 20000)) ;;; Generated autoloads from url/url-cid.el (autoload 'url-cid "url-cid" "\ @@ -29222,8 +29346,8 @@ Extract FNAM from the local disk cache. ;;;*** -;;;### (autoloads nil "url-dav" "url/url-dav.el" (22230 48822 930218 -;;;;;; 0)) +;;;### (autoloads nil "url-dav" "url/url-dav.el" (22387 39328 609704 +;;;;;; 17000)) ;;; Generated autoloads from url/url-dav.el (autoload 'url-dav-supported-p "url-dav" "\ @@ -29257,8 +29381,8 @@ added to this list, so most requests can just pass in nil. ;;;*** -;;;### (autoloads nil "url-file" "url/url-file.el" (22230 48822 930218 -;;;;;; 0)) +;;;### (autoloads nil "url-file" "url/url-file.el" (22387 39328 611704 +;;;;;; 10000)) ;;; Generated autoloads from url/url-file.el (autoload 'url-file "url-file" "\ @@ -29268,8 +29392,8 @@ Handle file: and ftp: URLs. ;;;*** -;;;### (autoloads nil "url-gw" "url/url-gw.el" (22290 3771 330245 -;;;;;; 487000)) +;;;### (autoloads nil "url-gw" "url/url-gw.el" (22387 39328 612704 +;;;;;; 6000)) ;;; Generated autoloads from url/url-gw.el (autoload 'url-gateway-nslookup-host "url-gw" "\ @@ -29290,13 +29414,14 @@ overriding the value of `url-gateway-method'. ;;;*** -;;;### (autoloads nil "url-handlers" "url/url-handlers.el" (22290 -;;;;;; 3771 330245 487000)) +;;;### (autoloads nil "url-handlers" "url/url-handlers.el" (22387 +;;;;;; 39328 612704 6000)) ;;; Generated autoloads from url/url-handlers.el (defvar url-handler-mode nil "\ Non-nil if Url-Handler mode is enabled. -See the command `url-handler-mode' for a description of this minor mode. +See the `url-handler-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `url-handler-mode'.") @@ -29352,8 +29477,8 @@ if it had been inserted from a file named URL. ;;;*** -;;;### (autoloads nil "url-http" "url/url-http.el" (22290 3771 331245 -;;;;;; 481000)) +;;;### (autoloads nil "url-http" "url/url-http.el" (22578 62356 750211 +;;;;;; 976000)) ;;; Generated autoloads from url/url-http.el (autoload 'url-default-expander "url-expand") @@ -29365,8 +29490,8 @@ if it had been inserted from a file named URL. ;;;*** -;;;### (autoloads nil "url-irc" "url/url-irc.el" (22230 48822 931218 -;;;;;; 0)) +;;;### (autoloads nil "url-irc" "url/url-irc.el" (22387 39328 615703 +;;;;;; 996000)) ;;; Generated autoloads from url/url-irc.el (autoload 'url-irc "url-irc" "\ @@ -29376,8 +29501,8 @@ if it had been inserted from a file named URL. ;;;*** -;;;### (autoloads nil "url-ldap" "url/url-ldap.el" (22230 48822 931218 -;;;;;; 0)) +;;;### (autoloads nil "url-ldap" "url/url-ldap.el" (22387 39328 615703 +;;;;;; 996000)) ;;; Generated autoloads from url/url-ldap.el (autoload 'url-ldap "url-ldap" "\ @@ -29390,8 +29515,8 @@ URL can be a URL string, or a URL vector of the type returned by ;;;*** -;;;### (autoloads nil "url-mailto" "url/url-mailto.el" (22230 48822 -;;;;;; 931218 0)) +;;;### (autoloads nil "url-mailto" "url/url-mailto.el" (22387 39328 +;;;;;; 615703 996000)) ;;; Generated autoloads from url/url-mailto.el (autoload 'url-mail "url-mailto" "\ @@ -29406,8 +29531,8 @@ Handle the mailto: URL syntax. ;;;*** -;;;### (autoloads nil "url-misc" "url/url-misc.el" (22230 48822 931218 -;;;;;; 0)) +;;;### (autoloads nil "url-misc" "url/url-misc.el" (22387 39328 616703 +;;;;;; 992000)) ;;; Generated autoloads from url/url-misc.el (autoload 'url-man "url-misc" "\ @@ -29438,8 +29563,8 @@ Fetch a data URL (RFC 2397). ;;;*** -;;;### (autoloads nil "url-news" "url/url-news.el" (22230 48822 931218 -;;;;;; 0)) +;;;### (autoloads nil "url-news" "url/url-news.el" (22387 39328 617703 +;;;;;; 988000)) ;;; Generated autoloads from url/url-news.el (autoload 'url-news "url-news" "\ @@ -29454,8 +29579,8 @@ Fetch a data URL (RFC 2397). ;;;*** -;;;### (autoloads nil "url-ns" "url/url-ns.el" (22230 48822 931218 -;;;;;; 0)) +;;;### (autoloads nil "url-ns" "url/url-ns.el" (22387 39328 617703 +;;;;;; 988000)) ;;; Generated autoloads from url/url-ns.el (autoload 'isPlainHostName "url-ns" "\ @@ -29495,8 +29620,8 @@ Fetch a data URL (RFC 2397). ;;;*** -;;;### (autoloads nil "url-parse" "url/url-parse.el" (22230 48822 -;;;;;; 931218 0)) +;;;### (autoloads nil "url-parse" "url/url-parse.el" (22387 39328 +;;;;;; 618703 985000)) ;;; Generated autoloads from url/url-parse.el (autoload 'url-recreate-url "url-parse" "\ @@ -29547,8 +29672,8 @@ parses to ;;;*** -;;;### (autoloads nil "url-privacy" "url/url-privacy.el" (22230 48822 -;;;;;; 931218 0)) +;;;### (autoloads nil "url-privacy" "url/url-privacy.el" (22387 39328 +;;;;;; 618703 985000)) ;;; Generated autoloads from url/url-privacy.el (autoload 'url-setup-privacy-info "url-privacy" "\ @@ -29558,8 +29683,8 @@ Setup variables that expose info about you and your system. ;;;*** -;;;### (autoloads nil "url-queue" "url/url-queue.el" (22290 3771 -;;;;;; 331245 481000)) +;;;### (autoloads nil "url-queue" "url/url-queue.el" (22387 39328 +;;;;;; 619703 981000)) ;;; Generated autoloads from url/url-queue.el (autoload 'url-queue-retrieve "url-queue" "\ @@ -29573,8 +29698,8 @@ The variable `url-queue-timeout' sets a timeout. ;;;*** -;;;### (autoloads nil "url-tramp" "url/url-tramp.el" (22230 48822 -;;;;;; 932218 0)) +;;;### (autoloads nil "url-tramp" "url/url-tramp.el" (22387 39328 +;;;;;; 619703 981000)) ;;; Generated autoloads from url/url-tramp.el (defvar url-tramp-protocols '("ftp" "ssh" "scp" "rsync" "telnet") "\ @@ -29592,8 +29717,8 @@ would have been passed to OPERATION. ;;;*** -;;;### (autoloads nil "url-util" "url/url-util.el" (22290 3771 332245 -;;;;;; 474000)) +;;;### (autoloads nil "url-util" "url/url-util.el" (22387 39328 620703 +;;;;;; 978000)) ;;; Generated autoloads from url/url-util.el (defvar url-debug nil "\ @@ -29761,8 +29886,8 @@ This uses `url-current-object', set locally to the buffer. ;;;*** -;;;### (autoloads nil "userlock" "userlock.el" (22230 48822 932218 -;;;;;; 0)) +;;;### (autoloads nil "userlock" "userlock.el" (22387 39326 923710 +;;;;;; 37000)) ;;; Generated autoloads from userlock.el (autoload 'ask-user-about-lock "userlock" "\ @@ -29790,8 +29915,8 @@ The buffer in question is current when this function is called. ;;;*** -;;;### (autoloads nil "utf-7" "international/utf-7.el" (22230 48822 -;;;;;; 767219 0)) +;;;### (autoloads nil "utf-7" "international/utf-7.el" (22387 39327 +;;;;;; 646707 455000)) ;;; Generated autoloads from international/utf-7.el (autoload 'utf-7-post-read-conversion "utf-7" "\ @@ -29816,7 +29941,7 @@ The buffer in question is current when this function is called. ;;;*** -;;;### (autoloads nil "utf7" "gnus/utf7.el" (22290 3771 224246 172000)) +;;;### (autoloads nil "utf7" "gnus/utf7.el" (22387 39327 539707 837000)) ;;; Generated autoloads from gnus/utf7.el (autoload 'utf7-encode "utf7" "\ @@ -29826,8 +29951,8 @@ Encode UTF-7 STRING. Use IMAP modification if FOR-IMAP is non-nil. ;;;*** -;;;### (autoloads nil "uudecode" "mail/uudecode.el" (22230 48822 -;;;;;; 793219 0)) +;;;### (autoloads nil "uudecode" "mail/uudecode.el" (22387 39327 +;;;;;; 941706 402000)) ;;; Generated autoloads from mail/uudecode.el (autoload 'uudecode-decode-region-external "uudecode" "\ @@ -29851,7 +29976,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME. ;;;*** -;;;### (autoloads nil "vc" "vc/vc.el" (22230 48822 941218 0)) +;;;### (autoloads nil "vc" "vc/vc.el" (22578 62356 751211 971000)) ;;; Generated autoloads from vc/vc.el (defvar vc-checkout-hook nil "\ @@ -29880,6 +30005,10 @@ backend of FILE. If FILE is not registered, then the first backend in `vc-handled-backends' that declares itself responsible for FILE is returned. +Note that if FILE is a symbolic link, it will not be resolved -- +the responsible backend system for the symbolic link itself will +be reported. + \(fn FILE)" nil nil) (autoload 'vc-next-action "vc" "\ @@ -30167,8 +30296,8 @@ Return the branch part of a revision number REV. ;;;*** -;;;### (autoloads nil "vc-annotate" "vc/vc-annotate.el" (22290 3781 -;;;;;; 435180 179000)) +;;;### (autoloads nil "vc-annotate" "vc/vc-annotate.el" (22387 39328 +;;;;;; 669703 803000)) ;;; Generated autoloads from vc/vc-annotate.el (autoload 'vc-annotate "vc-annotate" "\ @@ -30207,8 +30336,8 @@ should be applied to the background or to the foreground. ;;;*** -;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (22230 48822 938218 -;;;;;; 0)) +;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (22387 39328 670703 +;;;;;; 799000)) ;;; Generated autoloads from vc/vc-bzr.el (defconst vc-bzr-admin-dirname ".bzr" "\ @@ -30224,8 +30353,8 @@ Name of the format file in a .bzr directory.") ;;;*** -;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (22230 48822 939218 -;;;;;; 0)) +;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (22578 62356 751211 +;;;;;; 971000)) ;;; Generated autoloads from vc/vc-cvs.el (defun vc-cvs-registered (f) "Return non-nil if file F is registered with CVS." @@ -30236,8 +30365,8 @@ Name of the format file in a .bzr directory.") ;;;*** -;;;### (autoloads nil "vc-dir" "vc/vc-dir.el" (22230 48822 939218 -;;;;;; 0)) +;;;### (autoloads nil "vc-dir" "vc/vc-dir.el" (22387 39328 672703 +;;;;;; 792000)) ;;; Generated autoloads from vc/vc-dir.el (autoload 'vc-dir "vc-dir" "\ @@ -30261,8 +30390,8 @@ These are the commands available for use in the file status buffer: ;;;*** -;;;### (autoloads nil "vc-dispatcher" "vc/vc-dispatcher.el" (22290 -;;;;;; 3771 335245 455000)) +;;;### (autoloads nil "vc-dispatcher" "vc/vc-dispatcher.el" (22387 +;;;;;; 39328 673703 789000)) ;;; Generated autoloads from vc/vc-dispatcher.el (autoload 'vc-do-command "vc-dispatcher" "\ @@ -30285,8 +30414,8 @@ case, and the process object in the asynchronous case. ;;;*** -;;;### (autoloads nil "vc-git" "vc/vc-git.el" (22290 3781 435180 -;;;;;; 179000)) +;;;### (autoloads nil "vc-git" "vc/vc-git.el" (22421 48002 959231 +;;;;;; 24000)) ;;; Generated autoloads from vc/vc-git.el (defun vc-git-registered (file) "Return non-nil if FILE is registered with git." @@ -30297,7 +30426,7 @@ case, and the process object in the asynchronous case. ;;;*** -;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (22290 3771 336245 448000)) +;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (22387 39328 675703 781000)) ;;; Generated autoloads from vc/vc-hg.el (defun vc-hg-registered (file) "Return non-nil if FILE is registered with hg." @@ -30308,8 +30437,8 @@ case, and the process object in the asynchronous case. ;;;*** -;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (22230 48822 940218 -;;;;;; 0)) +;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (22387 39328 676703 +;;;;;; 778000)) ;;; Generated autoloads from vc/vc-mtn.el (defconst vc-mtn-admin-dir "_MTN" "\ @@ -30325,8 +30454,8 @@ Name of the monotone directory's format file.") ;;;*** -;;;### (autoloads nil "vc-rcs" "vc/vc-rcs.el" (22230 48822 940218 -;;;;;; 0)) +;;;### (autoloads nil "vc-rcs" "vc/vc-rcs.el" (22387 39328 677703 +;;;;;; 774000)) ;;; Generated autoloads from vc/vc-rcs.el (defvar vc-rcs-master-templates (purecopy '("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\ @@ -30339,8 +30468,8 @@ For a description of possible values, see `vc-check-master-templates'.") ;;;*** -;;;### (autoloads nil "vc-sccs" "vc/vc-sccs.el" (22230 48822 941218 -;;;;;; 0)) +;;;### (autoloads nil "vc-sccs" "vc/vc-sccs.el" (22387 39328 678703 +;;;;;; 771000)) ;;; Generated autoloads from vc/vc-sccs.el (defvar vc-sccs-master-templates (purecopy '("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\ @@ -30358,8 +30487,8 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir) ;;;*** -;;;### (autoloads nil "vc-src" "vc/vc-src.el" (22230 48822 941218 -;;;;;; 0)) +;;;### (autoloads nil "vc-src" "vc/vc-src.el" (22387 39328 678703 +;;;;;; 771000)) ;;; Generated autoloads from vc/vc-src.el (defvar vc-src-master-templates (purecopy '("%s.src/%s,v")) "\ @@ -30372,8 +30501,8 @@ For a description of possible values, see `vc-check-master-templates'.") ;;;*** -;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (22230 48822 941218 -;;;;;; 0)) +;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (22387 39328 679703 +;;;;;; 767000)) ;;; Generated autoloads from vc/vc-svn.el (defun vc-svn-registered (f) (let ((admin-dir (cond ((and (eq system-type 'windows-nt) @@ -30386,8 +30515,8 @@ For a description of possible values, see `vc-check-master-templates'.") ;;;*** -;;;### (autoloads nil "vera-mode" "progmodes/vera-mode.el" (22266 -;;;;;; 10298 472370 0)) +;;;### (autoloads nil "vera-mode" "progmodes/vera-mode.el" (22387 +;;;;;; 39328 396704 777000)) ;;; Generated autoloads from progmodes/vera-mode.el (push (purecopy '(vera-mode 2 28)) package--builtin-versions) (add-to-list 'auto-mode-alist (cons (purecopy "\\.vr[hi]?\\'") 'vera-mode)) @@ -30446,7 +30575,7 @@ Key bindings: ;;;*** ;;;### (autoloads nil "verilog-mode" "progmodes/verilog-mode.el" -;;;;;; (22290 3771 307245 635000)) +;;;;;; (22387 39328 402704 756000)) ;;; Generated autoloads from progmodes/verilog-mode.el (autoload 'verilog-mode "verilog-mode" "\ @@ -30585,8 +30714,8 @@ Key bindings specific to `verilog-mode-map' are: ;;;*** -;;;### (autoloads nil "vhdl-mode" "progmodes/vhdl-mode.el" (22298 -;;;;;; 5692 417287 929000)) +;;;### (autoloads nil "vhdl-mode" "progmodes/vhdl-mode.el" (22387 +;;;;;; 39328 414704 713000)) ;;; Generated autoloads from progmodes/vhdl-mode.el (autoload 'vhdl-mode "vhdl-mode" "\ @@ -30954,7 +31083,7 @@ Usage: SPECIAL MENUES: As an alternative to the speedbar, an index menu can be added (set option `vhdl-index-menu' to non-nil) or made accessible as a mouse menu - (e.g. add \"(global-set-key '[S-down-mouse-3] 'imenu)\" to your start-up + (e.g. add \"(global-set-key [S-down-mouse-3] \\='imenu)\" to your start-up file) for browsing the file contents (is not populated if buffer is larger than 256000). Also, a source file menu can be added (set option `vhdl-source-file-menu' to non-nil) for browsing the @@ -31140,8 +31269,8 @@ Key bindings: ;;;*** -;;;### (autoloads nil "viet-util" "language/viet-util.el" (22230 -;;;;;; 48822 776219 0)) +;;;### (autoloads nil "viet-util" "language/viet-util.el" (22387 +;;;;;; 39327 668707 377000)) ;;; Generated autoloads from language/viet-util.el (autoload 'viet-encode-viscii-char "viet-util" "\ @@ -31185,7 +31314,7 @@ Convert Vietnamese characters of the current buffer to `VIQR' mnemonics. ;;;*** -;;;### (autoloads nil "view" "view.el" (22230 48822 942218 0)) +;;;### (autoloads nil "view" "view.el" (22387 39326 924710 33000)) ;;; Generated autoloads from view.el (defvar view-remove-frame-by-deleting t "\ @@ -31368,7 +31497,7 @@ x exchanges point and mark. Mark ring is pushed at start of every successful search and when jump to line occurs. The mark is set on jump to buffer start or end. \\[point-to-register] save current position in character register. -' go to position saved in character register. +\\=' go to position saved in character register. s do forward incremental search. r do reverse incremental search. \\[View-search-regexp-forward] searches forward for regular expression, starting after current page. @@ -31441,8 +31570,8 @@ Exit View mode and make the current buffer editable. ;;;*** -;;;### (autoloads nil "viper" "emulation/viper.el" (22230 48822 702219 -;;;;;; 0)) +;;;### (autoloads nil "viper" "emulation/viper.el" (22387 39327 375708 +;;;;;; 423000)) ;;; Generated autoloads from emulation/viper.el (push (purecopy '(viper 3 14 1)) package--builtin-versions) @@ -31459,8 +31588,8 @@ Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Top'. ;;;*** -;;;### (autoloads nil "warnings" "emacs-lisp/warnings.el" (22230 -;;;;;; 48822 698219 0)) +;;;### (autoloads nil "warnings" "emacs-lisp/warnings.el" (22387 +;;;;;; 39327 339708 551000)) ;;; Generated autoloads from emacs-lisp/warnings.el (defvar warning-prefix-function nil "\ @@ -31550,7 +31679,7 @@ this is equivalent to `display-warning', using ;;;*** -;;;### (autoloads nil "wdired" "wdired.el" (22290 3771 338245 435000)) +;;;### (autoloads nil "wdired" "wdired.el" (22387 39326 926710 26000)) ;;; Generated autoloads from wdired.el (push (purecopy '(wdired 2 0)) package--builtin-versions) @@ -31568,8 +31697,8 @@ See `wdired-mode'. ;;;*** -;;;### (autoloads nil "webjump" "net/webjump.el" (22230 48822 817219 -;;;;;; 0)) +;;;### (autoloads nil "webjump" "net/webjump.el" (22387 39328 12706 +;;;;;; 148000)) ;;; Generated autoloads from net/webjump.el (autoload 'webjump "webjump" "\ @@ -31585,8 +31714,8 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke ;;;*** -;;;### (autoloads nil "which-func" "progmodes/which-func.el" (22290 -;;;;;; 3771 309245 623000)) +;;;### (autoloads nil "which-func" "progmodes/which-func.el" (22387 +;;;;;; 39328 419704 695000)) ;;; Generated autoloads from progmodes/which-func.el (put 'which-func-format 'risky-local-variable t) (put 'which-func-current 'risky-local-variable t) @@ -31595,7 +31724,8 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke (defvar which-function-mode nil "\ Non-nil if Which-Function mode is enabled. -See the command `which-function-mode' for a description of this minor mode. +See the `which-function-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `which-function-mode'.") @@ -31616,16 +31746,18 @@ in certain major modes. ;;;*** -;;;### (autoloads nil "whitespace" "whitespace.el" (22230 48822 943218 -;;;;;; 0)) +;;;### (autoloads nil "whitespace" "whitespace.el" (22578 62356 752211 +;;;;;; 965000)) ;;; Generated autoloads from whitespace.el (push (purecopy '(whitespace 13 2 2)) package--builtin-versions) (autoload 'whitespace-mode "whitespace" "\ 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'. @@ -31635,8 +31767,10 @@ See also `whitespace-style', `whitespace-newline' and (autoload 'whitespace-newline-mode "whitespace" "\ 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 @@ -31649,7 +31783,8 @@ See also `whitespace-newline' and `whitespace-display-mappings'. (defvar global-whitespace-mode nil "\ Non-nil if Global Whitespace mode is enabled. -See the command `global-whitespace-mode' for a description of this minor mode. +See the `global-whitespace-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `global-whitespace-mode'.") @@ -31659,8 +31794,10 @@ or call the function `global-whitespace-mode'.") (autoload 'global-whitespace-mode "whitespace" "\ 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'. @@ -31669,7 +31806,8 @@ See also `whitespace-style', `whitespace-newline' and (defvar global-whitespace-newline-mode nil "\ Non-nil if Global Whitespace-Newline mode is enabled. -See the command `global-whitespace-newline-mode' for a description of this minor mode. +See the `global-whitespace-newline-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `global-whitespace-newline-mode'.") @@ -31679,8 +31817,10 @@ or call the function `global-whitespace-newline-mode'.") (autoload 'global-whitespace-newline-mode "whitespace" "\ 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 @@ -31985,8 +32125,8 @@ cleaning up these problems. ;;;*** -;;;### (autoloads nil "wid-browse" "wid-browse.el" (22230 48822 943218 -;;;;;; 0)) +;;;### (autoloads nil "wid-browse" "wid-browse.el" (22387 39326 928710 +;;;;;; 19000)) ;;; Generated autoloads from wid-browse.el (autoload 'widget-browse-at "wid-browse" "\ @@ -32014,8 +32154,8 @@ if ARG is omitted or nil. ;;;*** -;;;### (autoloads nil "wid-edit" "wid-edit.el" (22230 48822 944218 -;;;;;; 0)) +;;;### (autoloads nil "wid-edit" "wid-edit.el" (22387 39326 929710 +;;;;;; 15000)) ;;; Generated autoloads from wid-edit.el (autoload 'widgetp "wid-edit" "\ @@ -32057,8 +32197,8 @@ Setup current buffer so editing string widgets works. ;;;*** -;;;### (autoloads nil "windmove" "windmove.el" (22230 48822 944218 -;;;;;; 0)) +;;;### (autoloads nil "windmove" "windmove.el" (22387 39326 931710 +;;;;;; 8000)) ;;; Generated autoloads from windmove.el (autoload 'windmove-left "windmove" "\ @@ -32110,12 +32250,13 @@ Default MODIFIER is `shift'. ;;;*** -;;;### (autoloads nil "winner" "winner.el" (22230 48822 945218 0)) +;;;### (autoloads nil "winner" "winner.el" (22387 39326 936709 990000)) ;;; Generated autoloads from winner.el (defvar winner-mode nil "\ Non-nil if Winner mode is enabled. -See the command `winner-mode' for a description of this minor mode. +See the `winner-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `winner-mode'.") @@ -32126,14 +32267,20 @@ or call the function `winner-mode'.") Toggle Winner mode on or off. With a prefix argument ARG, enable Winner mode if ARG is positive, and disable it otherwise. If called from Lisp, enable -the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'. -\\{winner-mode-map} +the mode if ARG is omitted or nil, and toggle it if ARG is ‘toggle’. + +Winner mode is a global minor mode that records the changes in +the window configuration (i.e. how the frames are partitioned +into windows) so that the changes can be \"undone\" using the +command `winner-undo'. By default this one is bound to the key +sequence `C-c '. If you change your mind (while undoing), +you can press `C-c ' (calling `winner-redo'). \(fn &optional ARG)" t nil) ;;;*** -;;;### (autoloads nil "woman" "woman.el" (22261 18214 542020 0)) +;;;### (autoloads nil "woman" "woman.el" (22387 39326 937709 987000)) ;;; Generated autoloads from woman.el (push (purecopy '(woman 0 551)) package--builtin-versions) @@ -32182,7 +32329,7 @@ Default bookmark handler for Woman buffers. ;;;*** -;;;### (autoloads nil "xml" "xml.el" (22266 10298 491370 0)) +;;;### (autoloads nil "xml" "xml.el" (22387 39326 939709 979000)) ;;; Generated autoloads from xml.el (autoload 'xml-parse-file "xml" "\ @@ -32238,8 +32385,8 @@ Both features can be combined by providing a cons cell ;;;*** -;;;### (autoloads nil "xmltok" "nxml/xmltok.el" (22290 3771 264245 -;;;;;; 913000)) +;;;### (autoloads nil "xmltok" "nxml/xmltok.el" (22387 39328 67705 +;;;;;; 952000)) ;;; Generated autoloads from nxml/xmltok.el (autoload 'xmltok-get-declared-encoding-position "xmltok" "\ @@ -32257,8 +32404,8 @@ If LIMIT is non-nil, then do not consider characters beyond LIMIT. ;;;*** -;;;### (autoloads nil "xref" "progmodes/xref.el" (22290 3781 433180 -;;;;;; 192000)) +;;;### (autoloads nil "xref" "progmodes/xref.el" (22387 39328 420704 +;;;;;; 692000)) ;;; Generated autoloads from progmodes/xref.el (autoload 'xref-find-backend "xref" "\ @@ -32325,13 +32472,14 @@ IGNORES is a list of glob patterns. ;;;*** -;;;### (autoloads nil "xt-mouse" "xt-mouse.el" (22290 3781 436180 -;;;;;; 173000)) +;;;### (autoloads nil "xt-mouse" "xt-mouse.el" (22581 47658 786375 +;;;;;; 832000)) ;;; Generated autoloads from xt-mouse.el (defvar xterm-mouse-mode nil "\ Non-nil if Xterm-Mouse mode is enabled. -See the command `xterm-mouse-mode' for a description of this minor mode. +See the `xterm-mouse-mode' command +for a description of this minor mode. Setting this variable directly does not take effect; either customize it (see the info node `Easy Customization') or call the function `xterm-mouse-mode'.") @@ -32355,7 +32503,8 @@ down the SHIFT key while pressing the mouse button. ;;;*** -;;;### (autoloads nil "xwidget" "xwidget.el" (22290 3781 436180 173000)) +;;;### (autoloads nil "xwidget" "xwidget.el" (22387 39326 940709 +;;;;;; 976000)) ;;; Generated autoloads from xwidget.el (autoload 'xwidget-webkit-browse-url "xwidget" "\ @@ -32367,7 +32516,7 @@ Interactively, URL defaults to the string looking like a url around point. ;;;*** -;;;### (autoloads nil "yenc" "gnus/yenc.el" (22290 3771 224246 172000)) +;;;### (autoloads nil "yenc" "gnus/yenc.el" (22387 39327 539707 837000)) ;;; Generated autoloads from gnus/yenc.el (autoload 'yenc-decode-region "yenc" "\ @@ -32382,7 +32531,7 @@ Extract file name from an yenc header. ;;;*** -;;;### (autoloads nil "zone" "play/zone.el" (22230 48822 862219 0)) +;;;### (autoloads nil "zone" "play/zone.el" (22387 39328 274705 213000)) ;;; Generated autoloads from play/zone.el (autoload 'zone "zone" "\ @@ -32398,46 +32547,46 @@ Zone out, completely. ;;;;;; "calc/calc-fin.el" "calc/calc-forms.el" "calc/calc-frac.el" ;;;;;; "calc/calc-funcs.el" "calc/calc-graph.el" "calc/calc-help.el" ;;;;;; "calc/calc-incom.el" "calc/calc-keypd.el" "calc/calc-lang.el" -;;;;;; "calc/calc-loaddefs.el" "calc/calc-macs.el" "calc/calc-map.el" -;;;;;; "calc/calc-math.el" "calc/calc-menu.el" "calc/calc-misc.el" -;;;;;; "calc/calc-mode.el" "calc/calc-mtx.el" "calc/calc-nlfit.el" -;;;;;; "calc/calc-poly.el" "calc/calc-prog.el" "calc/calc-rewr.el" -;;;;;; "calc/calc-rules.el" "calc/calc-sel.el" "calc/calc-stat.el" -;;;;;; "calc/calc-store.el" "calc/calc-stuff.el" "calc/calc-trail.el" -;;;;;; "calc/calc-units.el" "calc/calc-vec.el" "calc/calc-yank.el" -;;;;;; "calc/calcalg2.el" "calc/calcalg3.el" "calc/calccomp.el" -;;;;;; "calc/calcsel2.el" "calendar/cal-bahai.el" "calendar/cal-coptic.el" -;;;;;; "calendar/cal-french.el" "calendar/cal-html.el" "calendar/cal-islam.el" -;;;;;; "calendar/cal-iso.el" "calendar/cal-julian.el" "calendar/cal-loaddefs.el" -;;;;;; "calendar/cal-mayan.el" "calendar/cal-menu.el" "calendar/cal-move.el" -;;;;;; "calendar/cal-persia.el" "calendar/cal-tex.el" "calendar/cal-x.el" -;;;;;; "calendar/diary-loaddefs.el" "calendar/hol-loaddefs.el" "cdl.el" -;;;;;; "cedet/cedet-cscope.el" "cedet/cedet-files.el" "cedet/cedet-global.el" -;;;;;; "cedet/cedet-idutils.el" "cedet/ede/auto.el" "cedet/ede/autoconf-edit.el" -;;;;;; "cedet/ede/base.el" "cedet/ede/config.el" "cedet/ede/cpp-root.el" -;;;;;; "cedet/ede/custom.el" "cedet/ede/detect.el" "cedet/ede/dired.el" -;;;;;; "cedet/ede/emacs.el" "cedet/ede/files.el" "cedet/ede/generic.el" -;;;;;; "cedet/ede/linux.el" "cedet/ede/loaddefs.el" "cedet/ede/locate.el" -;;;;;; "cedet/ede/make.el" "cedet/ede/makefile-edit.el" "cedet/ede/pconf.el" -;;;;;; "cedet/ede/pmake.el" "cedet/ede/proj-archive.el" "cedet/ede/proj-aux.el" -;;;;;; "cedet/ede/proj-comp.el" "cedet/ede/proj-elisp.el" "cedet/ede/proj-info.el" -;;;;;; "cedet/ede/proj-misc.el" "cedet/ede/proj-obj.el" "cedet/ede/proj-prog.el" -;;;;;; "cedet/ede/proj-scheme.el" "cedet/ede/proj-shared.el" "cedet/ede/proj.el" -;;;;;; "cedet/ede/project-am.el" "cedet/ede/shell.el" "cedet/ede/simple.el" -;;;;;; "cedet/ede/source.el" "cedet/ede/speedbar.el" "cedet/ede/srecode.el" -;;;;;; "cedet/ede/system.el" "cedet/ede/util.el" "cedet/semantic/analyze.el" -;;;;;; "cedet/semantic/analyze/complete.el" "cedet/semantic/analyze/debug.el" -;;;;;; "cedet/semantic/analyze/fcn.el" "cedet/semantic/analyze/refs.el" -;;;;;; "cedet/semantic/bovine.el" "cedet/semantic/bovine/c-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" +;;;;;; "calc/calc-macs.el" "calc/calc-map.el" "calc/calc-math.el" +;;;;;; "calc/calc-menu.el" "calc/calc-misc.el" "calc/calc-mode.el" +;;;;;; "calc/calc-mtx.el" "calc/calc-nlfit.el" "calc/calc-poly.el" +;;;;;; "calc/calc-prog.el" "calc/calc-rewr.el" "calc/calc-rules.el" +;;;;;; "calc/calc-sel.el" "calc/calc-stat.el" "calc/calc-store.el" +;;;;;; "calc/calc-stuff.el" "calc/calc-trail.el" "calc/calc-units.el" +;;;;;; "calc/calc-vec.el" "calc/calc-yank.el" "calc/calcalg2.el" +;;;;;; "calc/calcalg3.el" "calc/calccomp.el" "calc/calcsel2.el" +;;;;;; "calendar/cal-bahai.el" "calendar/cal-coptic.el" "calendar/cal-french.el" +;;;;;; "calendar/cal-html.el" "calendar/cal-islam.el" "calendar/cal-iso.el" +;;;;;; "calendar/cal-julian.el" "calendar/cal-loaddefs.el" "calendar/cal-mayan.el" +;;;;;; "calendar/cal-menu.el" "calendar/cal-move.el" "calendar/cal-persia.el" +;;;;;; "calendar/cal-tex.el" "calendar/cal-x.el" "calendar/diary-loaddefs.el" +;;;;;; "calendar/hol-loaddefs.el" "cdl.el" "cedet/cedet-cscope.el" +;;;;;; "cedet/cedet-files.el" "cedet/cedet-global.el" "cedet/cedet-idutils.el" +;;;;;; "cedet/ede/auto.el" "cedet/ede/autoconf-edit.el" "cedet/ede/base.el" +;;;;;; "cedet/ede/config.el" "cedet/ede/cpp-root.el" "cedet/ede/custom.el" +;;;;;; "cedet/ede/detect.el" "cedet/ede/dired.el" "cedet/ede/emacs.el" +;;;;;; "cedet/ede/files.el" "cedet/ede/generic.el" "cedet/ede/linux.el" +;;;;;; "cedet/ede/locate.el" "cedet/ede/make.el" "cedet/ede/makefile-edit.el" +;;;;;; "cedet/ede/pconf.el" "cedet/ede/pmake.el" "cedet/ede/proj-archive.el" +;;;;;; "cedet/ede/proj-aux.el" "cedet/ede/proj-comp.el" "cedet/ede/proj-elisp.el" +;;;;;; "cedet/ede/proj-info.el" "cedet/ede/proj-misc.el" "cedet/ede/proj-obj.el" +;;;;;; "cedet/ede/proj-prog.el" "cedet/ede/proj-scheme.el" "cedet/ede/proj-shared.el" +;;;;;; "cedet/ede/proj.el" "cedet/ede/project-am.el" "cedet/ede/shell.el" +;;;;;; "cedet/ede/simple.el" "cedet/ede/source.el" "cedet/ede/speedbar.el" +;;;;;; "cedet/ede/srecode.el" "cedet/ede/system.el" "cedet/ede/util.el" +;;;;;; "cedet/semantic/analyze.el" "cedet/semantic/analyze/complete.el" +;;;;;; "cedet/semantic/analyze/debug.el" "cedet/semantic/analyze/fcn.el" +;;;;;; "cedet/semantic/analyze/refs.el" "cedet/semantic/bovine.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" @@ -32445,13 +32594,13 @@ Zone out, completely. ;;;;;; "cedet/semantic/fw.el" "cedet/semantic/grammar-wy.el" "cedet/semantic/grammar.el" ;;;;;; "cedet/semantic/html.el" "cedet/semantic/ia-sb.el" "cedet/semantic/ia.el" ;;;;;; "cedet/semantic/idle.el" "cedet/semantic/imenu.el" "cedet/semantic/java.el" -;;;;;; "cedet/semantic/lex-spp.el" "cedet/semantic/lex.el" "cedet/semantic/loaddefs.el" -;;;;;; "cedet/semantic/mru-bookmark.el" "cedet/semantic/sb.el" "cedet/semantic/scope.el" -;;;;;; "cedet/semantic/senator.el" "cedet/semantic/sort.el" "cedet/semantic/symref.el" -;;;;;; "cedet/semantic/symref/cscope.el" "cedet/semantic/symref/filter.el" -;;;;;; "cedet/semantic/symref/global.el" "cedet/semantic/symref/grep.el" -;;;;;; "cedet/semantic/symref/idutils.el" "cedet/semantic/symref/list.el" -;;;;;; "cedet/semantic/tag-file.el" "cedet/semantic/tag-ls.el" "cedet/semantic/tag-write.el" +;;;;;; "cedet/semantic/lex-spp.el" "cedet/semantic/lex.el" "cedet/semantic/mru-bookmark.el" +;;;;;; "cedet/semantic/sb.el" "cedet/semantic/scope.el" "cedet/semantic/senator.el" +;;;;;; "cedet/semantic/sort.el" "cedet/semantic/symref.el" "cedet/semantic/symref/cscope.el" +;;;;;; "cedet/semantic/symref/filter.el" "cedet/semantic/symref/global.el" +;;;;;; "cedet/semantic/symref/grep.el" "cedet/semantic/symref/idutils.el" +;;;;;; "cedet/semantic/symref/list.el" "cedet/semantic/tag-file.el" +;;;;;; "cedet/semantic/tag-ls.el" "cedet/semantic/tag-write.el" ;;;;;; "cedet/semantic/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" @@ -32463,15 +32612,14 @@ Zone out, completely. ;;;;;; "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/loaddefs.el" "cedet/srecode/map.el" "cedet/srecode/mode.el" -;;;;;; "cedet/srecode/semantic.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" "cus-load.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-loaddefs.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/map.el" "cedet/srecode/mode.el" "cedet/srecode/semantic.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" @@ -32488,31 +32636,30 @@ Zone out, completely. ;;;;;; "eshell/em-script.el" "eshell/em-smart.el" "eshell/em-term.el" ;;;;;; "eshell/em-tramp.el" "eshell/em-unix.el" "eshell/em-xtra.el" ;;;;;; "eshell/esh-arg.el" "eshell/esh-cmd.el" "eshell/esh-ext.el" -;;;;;; "eshell/esh-groups.el" "eshell/esh-io.el" "eshell/esh-module.el" -;;;;;; "eshell/esh-opt.el" "eshell/esh-proc.el" "eshell/esh-util.el" -;;;;;; "eshell/esh-var.el" "ezimage.el" "finder-inf.el" "format-spec.el" -;;;;;; "fringe.el" "generic-x.el" "gnus/compface.el" "gnus/gnus-async.el" -;;;;;; "gnus/gnus-bcklg.el" "gnus/gnus-cite.el" "gnus/gnus-cloud.el" -;;;;;; "gnus/gnus-cus.el" "gnus/gnus-demon.el" "gnus/gnus-dup.el" -;;;;;; "gnus/gnus-eform.el" "gnus/gnus-ems.el" "gnus/gnus-icalendar.el" -;;;;;; "gnus/gnus-int.el" "gnus/gnus-logic.el" "gnus/gnus-mh.el" -;;;;;; "gnus/gnus-salt.el" "gnus/gnus-score.el" "gnus/gnus-srvr.el" -;;;;;; "gnus/gnus-topic.el" "gnus/gnus-undo.el" "gnus/gnus-util.el" -;;;;;; "gnus/gnus-uu.el" "gnus/gnus-vm.el" "gnus/gssapi.el" "gnus/ietf-drums.el" -;;;;;; "gnus/legacy-gnus-agent.el" "gnus/mail-parse.el" "gnus/mail-prsvr.el" -;;;;;; "gnus/mail-source.el" "gnus/mailcap.el" "gnus/messcompat.el" -;;;;;; "gnus/mm-archive.el" "gnus/mm-bodies.el" "gnus/mm-decode.el" -;;;;;; "gnus/mm-util.el" "gnus/mm-view.el" "gnus/mml-sec.el" "gnus/mml-smime.el" -;;;;;; "gnus/nnagent.el" "gnus/nnbabyl.el" "gnus/nndir.el" "gnus/nndraft.el" -;;;;;; "gnus/nneething.el" "gnus/nngateway.el" "gnus/nnheader.el" -;;;;;; "gnus/nnimap.el" "gnus/nnir.el" "gnus/nnmail.el" "gnus/nnmaildir.el" -;;;;;; "gnus/nnmairix.el" "gnus/nnmbox.el" "gnus/nnmh.el" "gnus/nnnil.el" -;;;;;; "gnus/nnoo.el" "gnus/nnregistry.el" "gnus/nnrss.el" "gnus/nnspool.el" -;;;;;; "gnus/nntp.el" "gnus/nnvirtual.el" "gnus/nnweb.el" "gnus/registry.el" -;;;;;; "gnus/rfc1843.el" "gnus/rfc2045.el" "gnus/rfc2047.el" "gnus/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/charprop.el" "international/charscript.el" +;;;;;; "eshell/esh-io.el" "eshell/esh-module.el" "eshell/esh-opt.el" +;;;;;; "eshell/esh-proc.el" "eshell/esh-util.el" "eshell/esh-var.el" +;;;;;; "ezimage.el" "format-spec.el" "fringe.el" "generic-x.el" +;;;;;; "gnus/compface.el" "gnus/gnus-async.el" "gnus/gnus-bcklg.el" +;;;;;; "gnus/gnus-cite.el" "gnus/gnus-cloud.el" "gnus/gnus-cus.el" +;;;;;; "gnus/gnus-demon.el" "gnus/gnus-dup.el" "gnus/gnus-eform.el" +;;;;;; "gnus/gnus-ems.el" "gnus/gnus-icalendar.el" "gnus/gnus-int.el" +;;;;;; "gnus/gnus-logic.el" "gnus/gnus-mh.el" "gnus/gnus-salt.el" +;;;;;; "gnus/gnus-score.el" "gnus/gnus-srvr.el" "gnus/gnus-topic.el" +;;;;;; "gnus/gnus-undo.el" "gnus/gnus-util.el" "gnus/gnus-uu.el" +;;;;;; "gnus/gnus-vm.el" "gnus/gssapi.el" "gnus/ietf-drums.el" "gnus/legacy-gnus-agent.el" +;;;;;; "gnus/mail-parse.el" "gnus/mail-prsvr.el" "gnus/mail-source.el" +;;;;;; "gnus/mailcap.el" "gnus/messcompat.el" "gnus/mm-archive.el" +;;;;;; "gnus/mm-bodies.el" "gnus/mm-decode.el" "gnus/mm-util.el" +;;;;;; "gnus/mm-view.el" "gnus/mml-sec.el" "gnus/mml-smime.el" "gnus/nnagent.el" +;;;;;; "gnus/nnbabyl.el" "gnus/nndir.el" "gnus/nndraft.el" "gnus/nneething.el" +;;;;;; "gnus/nngateway.el" "gnus/nnheader.el" "gnus/nnimap.el" "gnus/nnir.el" +;;;;;; "gnus/nnmail.el" "gnus/nnmaildir.el" "gnus/nnmairix.el" "gnus/nnmbox.el" +;;;;;; "gnus/nnmh.el" "gnus/nnnil.el" "gnus/nnoo.el" "gnus/nnregistry.el" +;;;;;; "gnus/nnrss.el" "gnus/nnspool.el" "gnus/nntp.el" "gnus/nnvirtual.el" +;;;;;; "gnus/nnweb.el" "gnus/registry.el" "gnus/rfc1843.el" "gnus/rfc2045.el" +;;;;;; "gnus/rfc2047.el" "gnus/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/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" "international/uni-bidi.el" ;;;;;; "international/uni-brackets.el" "international/uni-category.el" @@ -32523,26 +32670,19 @@ Zone out, completely. ;;;;;; "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/4Corner.el" -;;;;;; "leim/quail/ARRAY30.el" "leim/quail/CCDOSPY.el" "leim/quail/CTLau-b5.el" -;;;;;; "leim/quail/CTLau.el" "leim/quail/ECDICT.el" "leim/quail/ETZY.el" -;;;;;; "leim/quail/PY-b5.el" "leim/quail/PY.el" "leim/quail/Punct-b5.el" -;;;;;; "leim/quail/Punct.el" "leim/quail/QJ-b5.el" "leim/quail/QJ.el" -;;;;;; "leim/quail/SW.el" "leim/quail/TONEPY.el" "leim/quail/ZIRANMA.el" -;;;;;; "leim/quail/ZOZY.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/quick-b5.el" "leim/quail/quick-cns.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" "leim/quail/tibetan.el" "leim/quail/tsang-b5.el" -;;;;;; "leim/quail/tsang-cns.el" "leim/quail/viqr.el" "leim/quail/vntelex.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" +;;;;;; "leim/quail/tibetan.el" "leim/quail/viqr.el" "leim/quail/vntelex.el" ;;;;;; "leim/quail/vnvni.el" "leim/quail/welsh.el" "loadup.el" "mail/blessmail.el" ;;;;;; "mail/mailheader.el" "mail/mspools.el" "mail/rfc2368.el" ;;;;;; "mail/rfc822.el" "mail/rmail-spam-filter.el" "mail/rmailedit.el" @@ -32589,14 +32729,14 @@ Zone out, completely. ;;;;;; "org/org-eshell.el" "org/org-faces.el" "org/org-feed.el" ;;;;;; "org/org-footnote.el" "org/org-gnus.el" "org/org-habit.el" ;;;;;; "org/org-id.el" "org/org-indent.el" "org/org-info.el" "org/org-inlinetask.el" -;;;;;; "org/org-install.el" "org/org-irc.el" "org/org-list.el" "org/org-loaddefs.el" -;;;;;; "org/org-macro.el" "org/org-mhe.el" "org/org-mobile.el" "org/org-mouse.el" -;;;;;; "org/org-pcomplete.el" "org/org-plot.el" "org/org-protocol.el" -;;;;;; "org/org-rmail.el" "org/org-src.el" "org/org-table.el" "org/org-timer.el" -;;;;;; "org/org-w3m.el" "org/ox-ascii.el" "org/ox-beamer.el" "org/ox-html.el" -;;;;;; "org/ox-icalendar.el" "org/ox-latex.el" "org/ox-man.el" "org/ox-md.el" -;;;;;; "org/ox-odt.el" "org/ox-org.el" "org/ox-publish.el" "org/ox-texinfo.el" -;;;;;; "org/ox.el" "play/gametree.el" "progmodes/ada-prj.el" "progmodes/cc-align.el" +;;;;;; "org/org-install.el" "org/org-irc.el" "org/org-list.el" "org/org-macro.el" +;;;;;; "org/org-mhe.el" "org/org-mobile.el" "org/org-mouse.el" "org/org-pcomplete.el" +;;;;;; "org/org-plot.el" "org/org-protocol.el" "org/org-rmail.el" +;;;;;; "org/org-src.el" "org/org-table.el" "org/org-timer.el" "org/org-w3m.el" +;;;;;; "org/ox-ascii.el" "org/ox-beamer.el" "org/ox-html.el" "org/ox-icalendar.el" +;;;;;; "org/ox-latex.el" "org/ox-man.el" "org/ox-md.el" "org/ox-odt.el" +;;;;;; "org/ox-org.el" "org/ox-publish.el" "org/ox-texinfo.el" "org/ox.el" +;;;;;; "play/gametree.el" "progmodes/ada-prj.el" "progmodes/cc-align.el" ;;;;;; "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el" "progmodes/cc-cmds.el" ;;;;;; "progmodes/cc-defs.el" "progmodes/cc-fonts.el" "progmodes/cc-langs.el" ;;;;;; "progmodes/cc-menus.el" "progmodes/ebnf-abn.el" "progmodes/ebnf-bnf.el" @@ -32619,7 +32759,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") (22298 22322 823955 245000)) +;;;;;; "x-dnd.el") (22588 27933 487024 747000)) ;;;*** diff --git a/lisp/leim/quail/czech.el b/lisp/leim/quail/czech.el index 365c3c51059d..ddb4af53db31 100644 --- a/lisp/leim/quail/czech.el +++ b/lisp/leim/quail/czech.el @@ -142,18 +142,7 @@ ("=[" ?\[) ("=]" ?\]) ("={" ?{) - ("=}" ?}) - ([kp-1] ?1) - ([kp-2] ?2) - ([kp-3] ?3) - ([kp-4] ?4) - ([kp-5] ?5) - ([kp-6] ?6) - ([kp-7] ?7) - ([kp-8] ?8) - ([kp-9] ?9) - ([kp-0] ?0) - ([kp-add] ?+)) + ("=}" ?})) (quail-define-package "czech-qwerty" "Czech" "CZ" t @@ -260,18 +249,7 @@ ("=[" ?\[) ("=]" ?\]) ("={" ?{) - ("=}" ?}) - ([kp-1] ?1) - ([kp-2] ?2) - ([kp-3] ?3) - ([kp-4] ?4) - ([kp-5] ?5) - ([kp-6] ?6) - ([kp-7] ?7) - ([kp-8] ?8) - ([kp-9] ?9) - ([kp-0] ?0) - ([kp-add] ?+)) + ("=}" ?})) (quail-define-package "czech-prog-1" "Czech" "CZ" t @@ -350,18 +328,7 @@ All other keys are the same as on standard US keyboard." ("++U" ?Ů) ("+++U" ?Ü) ("+Y" ?Ý) - ("+Z" ?Ž) - ([kp-1] ?1) - ([kp-2] ?2) - ([kp-3] ?3) - ([kp-4] ?4) - ([kp-5] ?5) - ([kp-6] ?6) - ([kp-7] ?7) - ([kp-8] ?8) - ([kp-9] ?9) - ([kp-0] ?0) - ([kp-add] ?+)) + ("+Z" ?Ž)) (quail-define-package "czech-prog-2" "Czech" "CZ" t @@ -440,18 +407,7 @@ All other keys are the same as on standard US keyboard." ("++U" ?Ů) ("+++U" ?Ü) ("+Y" ?Ý) - ("+Z" ?Ž) - ([kp-1] ?1) - ([kp-2] ?2) - ([kp-3] ?3) - ([kp-4] ?4) - ([kp-5] ?5) - ([kp-6] ?6) - ([kp-7] ?7) - ([kp-8] ?8) - ([kp-9] ?9) - ([kp-0] ?0) - ([kp-add] ?+)) + ("+Z" ?Ž)) (quail-define-package "czech-prog-3" "Czech" "CZ" t @@ -552,17 +508,6 @@ All other keys are the same as on standard US keyboard." ("+u" ?ů) ("+=u" ?ü) ("=y" ?ý) - ("+z" ?ž) - ([kp-1] ?1) - ([kp-2] ?2) - ([kp-3] ?3) - ([kp-4] ?4) - ([kp-5] ?5) - ([kp-6] ?6) - ([kp-7] ?7) - ([kp-8] ?8) - ([kp-9] ?9) - ([kp-0] ?0) - ([kp-add] ?+)) + ("+z" ?ž)) ;;; czech.el ends here diff --git a/lisp/leim/quail/indian.el b/lisp/leim/quail/indian.el index 1c92f6bb38f5..728e35292184 100644 --- a/lisp/leim/quail/indian.el +++ b/lisp/leim/quail/indian.el @@ -470,4 +470,105 @@ Full key sequences are listed below:") "tamil-inscript" "Tamil" "TmlIS" "Tamil keyboard Inscript.") +;; Probhat Input Method +(quail-define-package + "bengali-probhat" "Bengali" "BngPB" t + "Probhat keyboard for Bengali/Bangla" nil t nil nil nil nil nil nil nil nil t) + +(quail-define-rules + ("!" ?!) + ("1" ?১) + ("@" ?@) + ("2" ?২) + ("#" ?#) + ("3" ?৩) + ("$" ?৳) + ("4" ?৪) + ("%" ?%) + ("5" ?৫) + ("^" ?^) + ("6" ?৬) + ("&" ?ঞ) + ("7" ?৭) + ("*" ?ৎ) + ("8" ?৮) + ("(" ?\() + ("9" ?৯) + (")" ?\)) + ("0" ?০) + ("_" ?_) + ("-" ?-) + ("+" ?+) + ("=" ?=) + ("Q" ?ধ) + ("q" ?দ) + ("W" ?ঊ) + ("w" ?ূ) + ("E" ?ঈ) + ("e" ?ী) + ("R" ?ড়) + ("r" ?র) + ("T" ?ঠ) + ("t" ?ট) + ("Y" ?ঐ) + ("y" ?এ) + ("U" ?উ) + ("u" ?ু) + ("I" ?ই) + ("i" ?ি) + ("O" ?ঔ) + ("o" ?ও) + ("P" ?ফ) + ("p" ?প) + ("{" ?ৈ) + ("[" ?ে) + ("}" ?ৌ) + ("]" ?ো) + ("A" ?অ) + ("a" ?া) + ("S" ?ষ) + ("s" ?স) + ("D" ?ঢ) + ("d" ?ড) + ("F" ?থ) + ("f" ?ত) + ("G" ?ঘ) + ("g" ?গ) + ("H" ?ঃ) + ("h" ?হ) + ("J" ?ঝ) + ("j" ?জ) + ("K" ?খ) + ("k" ?ক) + ("L" ?ং) + ("l" ?ল) + (":" ?:) + (";" ?\;) + ("\"" ?\") + ("'" ?') + ("|" ?॥) + ("" ?‌) + ("~" ?~) + ("`" ?‍) + ("Z" ?য) + ("z" ?য়) + ("X" ?ঢ়) + ("x" ?শ) + ("C" ?ছ) + ("c" ?চ) + ("V" ?ঋ) + ("v" ?আ) + ("B" ?ভ) + ("b" ?ব) + ("N" ?ণ) + ("n" ?ন) + ("M" ?ঙ) + ("m" ?ম) + ("<" ?ৃ) + ("," ?,) + (">" ?ঁ) + ("." ?।) + ("?" ?\?) + ("/" ?্)) + ;;; indian.el ends here diff --git a/lisp/leim/quail/slovak.el b/lisp/leim/quail/slovak.el index 4294fd7613be..e00f03fa1f69 100644 --- a/lisp/leim/quail/slovak.el +++ b/lisp/leim/quail/slovak.el @@ -151,18 +151,7 @@ ("+7" ?&) ("+8" ?*) ("+9" ?\() - ("+0" ?\)) - ([kp-1] ?1) - ([kp-2] ?2) - ([kp-3] ?3) - ([kp-4] ?4) - ([kp-5] ?5) - ([kp-6] ?6) - ([kp-7] ?7) - ([kp-8] ?8) - ([kp-9] ?9) - ([kp-0] ?0) - ([kp-add] ?+)) + ("+0" ?\))) (quail-define-package @@ -245,18 +234,7 @@ All other keys are the same as on standard US keyboard." ("[[[U" ?Ü) ("[Y" ?Ý) ("[Z" ?Ž) - ("[[Z" ?Ž) - ([kp-1] ?1) - ([kp-2] ?2) - ([kp-3] ?3) - ([kp-4] ?4) - ([kp-5] ?5) - ([kp-6] ?6) - ([kp-7] ?7) - ([kp-8] ?8) - ([kp-9] ?9) - ([kp-0] ?0) - ([kp-add] ?+)) + ("[[Z" ?Ž)) (quail-define-package @@ -347,18 +325,7 @@ All other keys are the same as on standard US keyboard." ("+U" ?Ů) ("+=U" ?Ü) ("=Y" ?Ý) - ("+Z" ?Ž) - ([kp-1] ?1) - ([kp-2] ?2) - ([kp-3] ?3) - ([kp-4] ?4) - ([kp-5] ?5) - ([kp-6] ?6) - ([kp-7] ?7) - ([kp-8] ?8) - ([kp-9] ?9) - ([kp-0] ?0) - ([kp-add] ?+)) + ("+Z" ?Ž)) (quail-define-package @@ -463,17 +430,6 @@ All other keys are the same as on standard US keyboard." ("[Y" ?Ý) ("[Z" ?Ž) ("[[Z" ?Ž) - ("]Z" ?Ž) - ([kp-1] ?1) - ([kp-2] ?2) - ([kp-3] ?3) - ([kp-4] ?4) - ([kp-5] ?5) - ([kp-6] ?6) - ([kp-7] ?7) - ([kp-8] ?8) - ([kp-9] ?9) - ([kp-0] ?0) - ([kp-add] ?+)) + ("]Z" ?Ž)) ;;; slovak.el ends here diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el index 85e91cdadc0e..41587bfe1445 100644 --- a/lisp/ls-lisp.el +++ b/lisp/ls-lisp.el @@ -75,7 +75,7 @@ ((memq system-type '(hpux usg-unix-v irix berkeley-unix)) 'UNIX)) ; very similar to GNU ;; Anything else defaults to nil, meaning GNU. - "Platform to emulate: GNU (default), MacOS, MS-Windows, UNIX. + "Platform to emulate: GNU (default), macOS, MS-Windows, UNIX. Corresponding value is one of: nil, `MacOS', `MS-Windows', `UNIX'. Set this to your preferred value; it need not match the actual platform you are using. diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el index ce3c50bce2b8..86aefe4a6dd0 100644 --- a/lisp/mail/emacsbug.el +++ b/lisp/mail/emacsbug.el @@ -72,7 +72,7 @@ (defvar message-strip-special-text-properties) (defun report-emacs-bug-can-use-osx-open () - "Return non-nil if the OS X \"open\" command is available for mailing." + "Return non-nil if the macOS \"open\" command is available for mailing." (and (featurep 'ns) (equal (executable-find "open") "/usr/bin/open") (memq system-type '(darwin)))) @@ -107,7 +107,7 @@ This requires you to be running either Gnome, KDE, or Xfce4." (defun report-emacs-bug-insert-to-mailer () "Send the message to your preferred mail client. -This requires either the OS X \"open\" command, or the freedesktop +This requires either the macOS \"open\" command, or the freedesktop \"xdg-email\" command to be available." (interactive) (save-excursion diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el index 57c3be005602..a90f370d7362 100644 --- a/lisp/mail/footnote.el +++ b/lisp/mail/footnote.el @@ -793,7 +793,7 @@ With a prefix argument ARG, enable Footnote mode if ARG is positive, and disable it otherwise. If called from Lisp, enable the mode if ARG is omitted or nil. -Footnode mode is a buffer-local minor mode. If enabled, it +Footnote mode is a buffer-local minor mode. If enabled, it provides footnote support for `message-mode'. To get started, play around with the following keys: \\{footnote-minor-mode-map}" diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index 58f708a0c1e0..3d222090ca62 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el @@ -1110,10 +1110,11 @@ to combine them into one, and does so if the user says y." (save-restriction ;; This is just so the screen doesn't change. (narrow-to-region (point-min) old-max) - (goto-char old-point) - (setq query-asked t) - (if (y-or-n-p (format "Message contains multiple %s fields. Combine? " field)) - (setq query-answer t)))) + (save-excursion + (goto-char old-point) + (setq query-asked t) + (if (y-or-n-p (format "Message contains multiple %s fields. Combine? " field)) + (setq query-answer t))))) (when query-answer (let ((this-to-start (line-beginning-position)) this-to-end diff --git a/lisp/man.el b/lisp/man.el index b483dd12e8a3..94b9e0d04daa 100644 --- a/lisp/man.el +++ b/lisp/man.el @@ -619,7 +619,7 @@ This is necessary if one wants to dump man.el with Emacs." ;; `call-process' below sends it to /dev/null, ;; so we don't need `2>' even with DOS shells ;; which do support stderr redirection. - ((not (fboundp 'start-process)) " %s") + ((not (fboundp 'make-process)) " %s") ((concat " %s 2>" null-device))))) (flist Man-filter-list)) (while (and flist (car flist)) @@ -887,7 +887,7 @@ test/automated/man-tests.el in the emacs repository." (setq default-directory "/") ;; in case inherited doesn't exist ;; Actually for my `man' the arg is a regexp. ;; POSIX says it must be ERE and "man-db" seems to agree, - ;; whereas under MacOSX it seems to be BRE-style and doesn't + ;; whereas under macOS it seems to be BRE-style and doesn't ;; accept backslashes at all. Let's not bother to ;; quote anything. (let ((process-environment (copy-sequence process-environment))) @@ -964,7 +964,7 @@ otherwise look like a page name. An \"apropos\" query with -k gives a buffer of matching page names or descriptions. The pattern argument is usually an -\"egrep\" style regexp. +\"grep -E\" style regexp. -k pattern" @@ -1080,7 +1080,7 @@ Return the buffer in which the manpage will appear." "[cleaning...]") 'face 'mode-line-emphasis))) (Man-start-calling - (if (fboundp 'start-process) + (if (fboundp 'make-process) (let ((proc (start-process manual-program buffer (if (memq system-type '(cygwin windows-nt)) diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 6281d7e5453f..ba1bf34d1a5c 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -539,13 +539,17 @@ (yank))) (defun clipboard-kill-ring-save (beg end &optional region) - "Copy region to kill ring, and save in the GUI's clipboard." + "Copy region to kill ring, and save in the GUI's clipboard. +If the optional argument REGION is non-nil, the function ignores +BEG and END, and saves the current region instead." (interactive "r\np") (let ((gui-select-enable-clipboard t)) (kill-ring-save beg end region))) (defun clipboard-kill-region (beg end &optional region) - "Kill the region, and save it in the GUI's clipboard." + "Kill the region, and save it in the GUI's clipboard. +If the optional argument REGION is non-nil, the function ignores +BEG and END, and kills the current region instead." (interactive "r\np") (let ((gui-select-enable-clipboard t)) (kill-region beg end region))) @@ -1253,7 +1257,7 @@ mail status in mode line")) (defvar menu-bar-search-options-menu (let ((menu (make-sparse-keymap "Search Options"))) - (dolist (x '((character-fold-to-regexp "Fold Characters" "Character folding") + (dolist (x '((char-fold-to-regexp "Fold Characters" "Character folding") (isearch-symbol-regexp "Whole Symbols" "Whole symbol") (word-search-regexp "Whole Words" "Whole word"))) (bindings--define-key menu (vector (nth 0 x)) @@ -1861,7 +1865,7 @@ key, a click, or a menu-item")) '(menu-item "Emacs Tutorial" help-with-tutorial :help "Learn how to use Emacs")) - ;; In OS X it's in the app menu already. + ;; In macOS it's in the app menu already. ;; FIXME? There already is an "About Emacs" (sans ...) entry in the Help menu. (and (featurep 'ns) (not (eq system-type 'darwin)) diff --git a/lisp/mh-e/mh-compat.el b/lisp/mh-e/mh-compat.el index 10a8b6e219c2..21ff5cb2cb8d 100644 --- a/lisp/mh-e/mh-compat.el +++ b/lisp/mh-e/mh-compat.el @@ -75,11 +75,24 @@ introduced in Emacs 22." 'cancel-timer 'delete-itimer)) -;; Emacs 24 renamed flet to cl-flet. -(defalias 'mh-cl-flet - (if (fboundp 'cl-flet) - 'cl-flet - 'flet)) +;; Emacs 24 made flet obsolete and suggested either cl-flet or +;; cl-letf. This macro is based upon gmm-flet from Gnus. +(defmacro mh-flet (bindings &rest body) + "Make temporary overriding function definitions. +This is an analogue of a dynamically scoped `let' that operates on +the function cell of FUNCs rather than their value cell. + +\(fn ((FUNC ARGLIST BODY...) ...) FORM...)" + (if (fboundp 'cl-letf) + `(cl-letf ,(mapcar (lambda (binding) + `((symbol-function ',(car binding)) + (lambda ,@(cdr binding)))) + bindings) + ,@body) + `(flet ,bindings ,@body))) +(put 'mh-flet 'lisp-indent-function 1) +(put 'mh-flet 'edebug-form-spec + '((&rest (sexp sexp &rest form)) &rest form)) (defun mh-display-color-cells (&optional display) "Return the number of color cells supported by DISPLAY. diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el index df3a42ec0f7f..b8d700ddf5f7 100644 --- a/lisp/mh-e/mh-mime.el +++ b/lisp/mh-e/mh-mime.el @@ -268,7 +268,7 @@ usually reads the file \"/etc/mailcap\"." (buffer-read-only nil)) (when (string-match "^[^% \t]+$" method) (setq method (concat method " %s"))) - (mh-cl-flet + (mh-flet ((mm-handle-set-external-undisplayer (handle function) (mh-handle-set-external-undisplayer folder handle function))) @@ -525,7 +525,7 @@ parsed and then displayed." (let ((handles ()) (folder mh-show-folder-buffer) (raw-message-data (buffer-string))) - (mh-cl-flet + (mh-flet ((mm-handle-set-external-undisplayer (handle function) (mh-handle-set-external-undisplayer folder handle function))) @@ -1049,7 +1049,7 @@ attachment, the attachment is hidden." (function (get-text-property (point) 'mh-callback)) (buffer-read-only nil) (folder mh-show-folder-buffer)) - (mh-cl-flet + (mh-flet ((mm-handle-set-external-undisplayer (handle function) (mh-handle-set-external-undisplayer folder handle function))) @@ -1070,7 +1070,7 @@ to click the MIME button." (mm-inline-media-tests mh-mm-inline-media-tests) (data (get-text-property (point) 'mh-data)) (function (get-text-property (point) 'mh-callback))) - (mh-cl-flet + (mh-flet ((mm-handle-set-external-undisplayer (handle func) (mh-handle-set-external-undisplayer folder handle func))) @@ -1166,7 +1166,7 @@ this ;-)" (defun mh-display-emphasis () "Display graphical emphasis." (when (and mh-graphical-emphasis-flag (mh-small-show-buffer-p)) - (mh-cl-flet + (mh-flet ((article-goto-body ())) ; shadow this function to do nothing (save-excursion (goto-char (point-min)) diff --git a/lisp/mh-e/mh-search.el b/lisp/mh-e/mh-search.el index 6e607444ad88..d5a2d779b21e 100644 --- a/lisp/mh-e/mh-search.el +++ b/lisp/mh-e/mh-search.el @@ -1859,7 +1859,7 @@ PROC is used to convert the value to actual data." (defun mh-index-update-maps (folder &optional origin-map) "Annotate all as yet unannotated messages in FOLDER with their MD5 hash. As a side effect msg -> checksum map is updated. Optional -argument ORIGIN-MAP is a hashtable which maps each message in the +argument ORIGIN-MAP is a hash table which maps each message in the index folder to the original folder and message from whence it was copied. If present the checksum -> (origin-folder, origin-index) map is updated too." @@ -1913,7 +1913,7 @@ origin-index) map is updated too." (defun mh-index-update-single-msg (msg checksum origin-map) "Update various maps for one message. MSG is a index folder message, CHECKSUM its MD5 hash and -ORIGIN-MAP, if non-nil, a hashtable containing which maps each +ORIGIN-MAP, if non-nil, a hash table containing which maps each message in the index folder to the folder and message that it was copied from. The function updates the hash tables `mh-index-msg-checksum-map' and `mh-index-checksum-origin-map'. diff --git a/lisp/mh-e/mh-show.el b/lisp/mh-e/mh-show.el index afe9812eea8e..26e821696a8a 100644 --- a/lisp/mh-e/mh-show.el +++ b/lisp/mh-e/mh-show.el @@ -900,7 +900,7 @@ See also `mh-folder-mode'. (interactive) ;; Don't allow Gnus to create buttons while highlighting, maybe this is bad ;; style? - (mh-cl-flet + (mh-flet ((gnus-article-add-button (&rest args) nil)) (let* ((modified (buffer-modified-p)) (gnus-article-buffer (buffer-name)) diff --git a/lisp/mh-e/mh-thread.el b/lisp/mh-e/mh-thread.el index 5135e7e88fa5..2a37cfc9e42a 100644 --- a/lisp/mh-e/mh-thread.el +++ b/lisp/mh-e/mh-thread.el @@ -89,11 +89,11 @@ (real-child-p t)) (defvar mh-thread-id-hash nil - "Hashtable used to canonicalize message identifiers.") + "Hash table used to canonicalize message identifiers.") (make-variable-buffer-local 'mh-thread-id-hash) (defvar mh-thread-subject-hash nil - "Hashtable used to canonicalize subject strings.") + "Hash table used to canonicalize subject strings.") (make-variable-buffer-local 'mh-thread-subject-hash) (defvar mh-thread-id-table nil @@ -109,11 +109,11 @@ (make-variable-buffer-local 'mh-thread-id-index-map) (defvar mh-thread-subject-container-hash nil - "Hashtable used to group messages by subject.") + "Hash table used to group messages by subject.") (make-variable-buffer-local 'mh-thread-subject-container-hash) (defvar mh-thread-duplicates nil - "Hashtable used to associate messages with the same message identifier.") + "Hash table used to associate messages with the same message identifier.") (make-variable-buffer-local 'mh-thread-duplicates) (defvar mh-thread-history () @@ -647,7 +647,7 @@ Only information about messages in MSG-LIST are added to the tree." (defun mh-thread-set-tables (folder) "Use the tables of FOLDER in current buffer." - (mh-cl-flet + (mh-flet ((mh-get-table (symbol) (with-current-buffer folder (symbol-value symbol)))) diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 6540059b965a..56454d5a634d 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -369,13 +369,15 @@ instead of a string, a function that takes the completion and returns the (defun completion-table-with-predicate (table pred1 strict string pred2 action) "Make a completion table equivalent to TABLE but filtered through PRED1. -PRED1 is a function of one argument which returns non-nil if and only if the -argument is an element of TABLE which should be considered for completion. -STRING, PRED2, and ACTION are the usual arguments to completion tables, -as described in `try-completion', `all-completions', and `test-completion'. -If STRICT is t, the predicate always applies; if nil it only applies if -it does not reduce the set of possible completions to nothing. -Note: TABLE needs to be a proper completion table which obeys predicates." +PRED1 is a function of one argument which returns non-nil if and +only if the argument is an element of TABLE which should be +considered for completion. STRING, PRED2, and ACTION are the +usual arguments to completion tables, as described in +`try-completion', `all-completions', and `test-completion'. If +STRICT is non-nil, the predicate always applies; if nil it only +applies if it does not reduce the set of possible completions to +nothing. Note: TABLE needs to be a proper completion table which +obeys predicates." (cond ((and (not strict) (eq action 'lambda)) ;; Ignore pred1 since it doesn't really have to apply anyway. @@ -1923,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") @@ -1967,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. @@ -2048,22 +2052,22 @@ This respects the wrapper hook `completion-in-region-functions'." minor-mode-map-alist)) (defvar completion-at-point-functions '(tags-completion-at-point-function) - "Special hook to find the completion table for the thing at point. -Each function on this hook is called in turn without any argument and should -return either nil to mean that it is not applicable at point, -or a function of no argument to perform completion (discouraged), -or a list of the form (START END COLLECTION . PROPS) where + "Special hook to find the completion table for the entity at point. +Each function on this hook is called in turn without any argument and +should return either nil, meaning it is not applicable at point, +or a function of no arguments to perform completion (discouraged), +or a list of the form (START END COLLECTION . PROPS), where: START and END delimit the entity to complete and should include point, - COLLECTION is the completion table to use to complete it, and + COLLECTION is the completion table to use to complete the entity, and PROPS is a property list for additional information. Currently supported properties are all the properties that can appear in `completion-extra-properties' plus: `:predicate' a predicate that completion candidates need to satisfy. - `:exclusive' If `no', means that if the completion table fails to + `:exclusive' value of `no' means that if the completion table fails to match the text at point, then instead of reporting a completion failure, the completion should try the next completion function. -As is the case with most hooks, the functions are responsible to preserve -things like point and current buffer.") +As is the case with most hooks, the functions are responsible for +preserving things like point and current buffer.") (defvar completion--capf-misbehave-funs nil "List of functions found on `completion-at-point-functions' that misbehave. diff --git a/lisp/mouse.el b/lisp/mouse.el index fa355ffeb71e..699225277de3 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -406,7 +406,15 @@ must be one of the symbols `header', `mode', or `vertical'." (or (not resize-mini-windows) (eq minibuffer-window (active-minibuffer-window))))))) - (setq draggable nil)))) + (setq draggable nil))) + ((eq line 'vertical) + (let ((divider-width (frame-right-divider-width frame))) + (when (and (or (not (numberp divider-width)) + (zerop divider-width)) + (eq (cdr (assq 'vertical-scroll-bars + (frame-parameters frame))) + 'left)) + (setq window (window-in-direction 'left window t)))))) (let* ((exitfun nil) (move @@ -473,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. @@ -506,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." @@ -558,7 +567,12 @@ command alters the kill ring or not." (mouse-minibuffer-check click) (select-window (posn-window (event-start click))) (let ((beg (posn-point (event-start click))) - (end (posn-point (event-end click))) + (end + (if (eq (posn-window (event-end click)) (selected-window)) + (posn-point (event-end click)) + ;; If the mouse ends up in any other window or on the menu + ;; bar, use `window-point' of selected window (Bug#23707). + (window-point))) (click-count (event-click-count click))) (let ((drag-start (terminal-parameter nil 'mouse-drag-start))) (when drag-start @@ -705,8 +719,9 @@ its value is returned." (defun mouse-on-link-p (pos) "Return non-nil if POS is on a link in the current buffer. -POS must be a buffer position in the current buffer or a mouse -event location in the selected window (see `event-start'). +POS must specify a buffer position in the current buffer, as a list +of the form returned by the `event-start' and `event-end' functions, +or a mouse event location in the selected window (see `event-start'). However, if `mouse-1-click-in-non-selected-windows' is non-nil, POS may be a mouse event location in any window. @@ -793,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)) @@ -811,7 +828,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, @@ -863,7 +881,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))))) diff --git a/lisp/mwheel.el b/lisp/mwheel.el index f1450d470fcd..9e03854fd116 100644 --- a/lisp/mwheel.el +++ b/lisp/mwheel.el @@ -187,7 +187,8 @@ This can be slightly disconcerting, but some people prefer it." (defun mwheel-scroll (event) "Scroll up or down according to the EVENT. -This should only be bound to mouse buttons 4 and 5." +This should be bound only to mouse buttons 4 and 5 on non-Windows +systems." (interactive (list last-input-event)) (let* ((curwin (if mouse-wheel-follow-mouse (prog1 diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el index d5c03e3f4ae0..239da7829df8 100644 --- a/lisp/net/ange-ftp.el +++ b/lisp/net/ange-ftp.el @@ -740,7 +740,7 @@ These mean that the FTP process should be (or already has been) killed." :type 'regexp) (defcustom ange-ftp-potential-error-msgs - ;; On Mac OS X we sometimes get things like: + ;; On macOS we sometimes get things like: ;; ;; ftp> open ftp.nluug.nl ;; Trying 2001:610:1:80aa:192:87:102:36... diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index c0b359176ec3..68258d41666e 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -44,7 +44,7 @@ ;; browse-url-text-* Any text browser 0 ;; browse-url-generic arbitrary ;; browse-url-default-windows-browser MS-Windows browser -;; browse-url-default-macosx-browser Mac OS X browser +;; browse-url-default-macosx-browser macOS browser ;; browse-url-xdg-open Free Desktop xdg-open on Gnome, KDE, Xfce4, LXDE ;; browse-url-kde KDE konqueror (kfm) ;; browse-url-elinks Elinks Don't know (tried with 0.12.GIT) @@ -162,7 +162,7 @@ regexp should probably be \".\" to specify a default browser." :value browse-url-generic) (function-item :tag "Default Windows browser" :value browse-url-default-windows-browser) - (function-item :tag "Default Mac OS X browser" + (function-item :tag "Default macOS browser" :value browse-url-default-macosx-browser) (function-item :tag "Default browser" :value browse-url-default-browser) @@ -356,10 +356,7 @@ If non-nil, then open the URL in a new tab rather than a new window if (defcustom browse-url-firefox-new-window-is-tab nil "Whether to open up new windows in a tab or a new window. If non-nil, then open the URL in a new tab rather than a new window if -`browse-url-firefox' is asked to open it in a new window. - -This option is currently ignored on MS-Windows, since the necessary -functionality is not available there." +`browse-url-firefox' is asked to open it in a new window." :type 'boolean :group 'browse-url) @@ -873,7 +870,7 @@ The optional NEW-WINDOW argument is not used." (t (w32-shell-execute "open" url)))) (defun browse-url-default-macosx-browser (url &optional _new-window) - "Invoke the MacOS X system's default Web browser. + "Invoke the macOS system's default Web browser. The optional NEW-WINDOW argument is not used" (interactive (browse-url-interactive-arg "URL: ")) (start-process (concat "open " url) nil "open" url)) diff --git a/lisp/net/shr.el b/lisp/net/shr.el index 2c8ff79763f3..18bc7b867157 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -518,6 +518,9 @@ size, and full-buffer size." (current-column) (if (not (get-buffer-window (current-buffer))) (save-window-excursion + ;; Avoid errors if the selected window is a dedicated one, + ;; and they just want to insert a document into it. + (set-window-dedicated-p nil nil) (set-window-buffer nil (current-buffer)) (car (window-text-pixel-size nil (line-beginning-position) (point)))) (car (window-text-pixel-size nil (line-beginning-position) (point)))))) diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 4d529f7aa323..842b1ce28807 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -67,19 +67,18 @@ files conditionalize this setup based on the TERM environment variable." :type 'string) ;;;###tramp-autoload -(defcustom tramp-histfile-override ".tramp_history" +(defcustom tramp-histfile-override "~/.tramp_history" "When invoking a shell, override the HISTFILE with this value. When setting to a string, it redirects the shell history to that file. Be careful when setting to \"/dev/null\"; this might result in undesired results when using \"bash\" as shell. -The value t, the default value, unsets any setting of HISTFILE, -and sets both HISTFILESIZE and HISTSIZE to 0. If you set this -variable to nil, however, the *override* is disabled, so the -history will go to the default storage location, -e.g. \"$HOME/.sh_history\"." +The value t unsets any setting of HISTFILE, and sets both +HISTFILESIZE and HISTSIZE to 0. If you set this variable to nil, +however, the *override* is disabled, so the history will go to +the default storage location, e.g. \"$HOME/.sh_history\"." :group 'tramp - :version "25.1" + :version "25.2" :type '(choice (const :tag "Do not override HISTFILE" nil) (const :tag "Unset HISTFILE" t) (string :tag "Redirect to a file"))) @@ -503,13 +502,15 @@ tilde expansion, all directory names starting with `~' will be ignored. `Default Directories' represent the list of directories given by the command \"getconf PATH\". It is recommended to use this -entry on top of this list, because these are the default +entry on head of this list, because these are the default directories for POSIX compatible commands. On remote hosts which do not offer the getconf command (like cygwin), the value -\"/bin:/usr/bin\" is used instead of. +\"/bin:/usr/bin\" is used instead. This entry is represented in +the list by the special value `tramp-default-remote-path'. `Private Directories' are the settings of the $PATH environment, -as given in your `~/.profile'." +as given in your `~/.profile'. This entry is represented in +the list by the special value `tramp-own-remote-path'." :group 'tramp :type '(repeat (choice (const :tag "Default Directories" tramp-default-remote-path) @@ -1271,7 +1272,7 @@ target of the symlink differ." res-uid res-gid res-size res-symlink-target) (tramp-message vec 5 "file attributes with ls: %s" localname) ;; We cannot send all three commands combined, it could exceed - ;; NAME_MAX or PATH_MAX. Happened on Mac OS X, for example. + ;; NAME_MAX or PATH_MAX. Happened on macOS, for example. (when (or (tramp-send-command-and-check vec (format "%s %s" @@ -3025,18 +3026,23 @@ the result will be a local, non-Tramp, file name." tramp-initial-end-of-output)) ;; We use as environment the difference to toplevel ;; `process-environment'. - env - (env - (dolist - (elt - (cons prompt (nreverse (copy-sequence process-environment))) - env) - (or (member elt (default-toplevel-value 'process-environment)) - (setq env (cons elt env))))) + env uenv + (env (dolist (elt (cons prompt process-environment) env) + (or (member elt (default-toplevel-value 'process-environment)) + (if (string-match "=" elt) + (setq env (append env `(,elt))) + (if (tramp-get-env-with-u-option v) + (setq env (append `("-u" ,elt) env)) + (setq uenv (cons elt uenv))))))) (command (when (stringp program) - (format "cd %s && exec %s env %s %s" + (format "cd %s && %s exec %s env %s %s" (tramp-shell-quote-argument localname) + (if uenv + (format + "unset %s &&" + (mapconcat 'tramp-shell-quote-argument uenv " ")) + "") (if heredoc (format "<<'%s'" tramp-end-of-heredoc) "") (mapconcat 'tramp-shell-quote-argument env " ") (if heredoc @@ -3125,20 +3131,28 @@ the result will be a local, non-Tramp, file name." (error "Implementation does not handle immediate return")) (with-parsed-tramp-file-name default-directory nil - (let (command env input tmpinput stderr tmpstderr outbuf ret) + (let (command env uenv input tmpinput stderr tmpstderr outbuf ret) ;; Compute command. (setq command (mapconcat 'tramp-shell-quote-argument (cons program args) " ")) ;; We use as environment the difference to toplevel `process-environment'. - (setq env - (dolist (elt (nreverse (copy-sequence process-environment)) env) - (or (member elt (default-toplevel-value 'process-environment)) - (setq env (cons elt env))))) + (dolist (elt process-environment) + (or (member elt (default-toplevel-value 'process-environment)) + (if (string-match "=" elt) + (setq env (append env `(,elt))) + (if (tramp-get-env-with-u-option v) + (setq env (append `("-u" ,elt) env)) + (setq uenv (cons elt uenv)))))) (when env (setq command (format "env %s %s" (mapconcat 'tramp-shell-quote-argument env " ") command))) + (when uenv + (setq command + (format + "unset %s && %s" + (mapconcat 'tramp-shell-quote-argument uenv " ") command))) ;; Determine input. (if (null infile) (setq input "/dev/null") @@ -4102,7 +4116,19 @@ file exists and nonzero exit status otherwise." "")) (tramp-shell-quote-argument tramp-end-of-output) shell (or extra-args "")) - t)) + t) + ;; Check proper HISTFILE setting. We give up when not working. + (when (and (stringp tramp-histfile-override) + (file-name-directory tramp-histfile-override)) + (tramp-barf-unless-okay + vec + (format + "(cd %s)" + (tramp-shell-quote-argument + (file-name-directory tramp-histfile-override))) + "`tramp-histfile-override' uses invalid file `%s'" + tramp-histfile-override))) + (tramp-set-connection-property (tramp-get-connection-process vec) "remote-shell" shell))) @@ -4171,10 +4197,10 @@ process to set up. VEC specifies the connection." (case-fold-search t)) (tramp-open-shell vec (tramp-get-method-parameter vec 'tramp-remote-shell)) - ;; Disable tab and echo expansion. + ;; Disable echo expansion. (tramp-message vec 5 "Setting up remote shell environment") (tramp-send-command - vec "stty tab0 -inlcr -onlcr -echo kill '^U' erase '^H'" t) + vec "stty -inlcr -onlcr -echo kill '^U' erase '^H'" t) ;; Check whether the echo has really been disabled. Some ;; implementations, like busybox of embedded GNU/Linux, don't ;; support disabling. @@ -4191,7 +4217,8 @@ process to set up. VEC specifies the connection." (tramp-message vec 5 "Setting shell prompt") (tramp-send-command vec (format "PS1=%s PS2='' PS3='' PROMPT_COMMAND=''" - (tramp-shell-quote-argument tramp-end-of-output)) t) + (tramp-shell-quote-argument tramp-end-of-output)) + t) ;; Check whether the output of "uname -sr" has been changed. If ;; yes, this is a strong indication that we must expire all @@ -4199,148 +4226,142 @@ process to set up. VEC specifies the connection." ;; `tramp-maybe-open-connection', it will be caught there. (tramp-message vec 5 "Checking system information") (let ((old-uname (tramp-get-connection-property vec "uname" nil)) - (new-uname + (uname (tramp-set-connection-property vec "uname" (tramp-send-command-and-read vec "echo \\\"`uname -sr`\\\"")))) - (when (and (stringp old-uname) (not (string-equal old-uname new-uname))) + (when (and (stringp old-uname) (not (string-equal old-uname uname))) (tramp-message vec 3 "Connection reset, because remote host changed from `%s' to `%s'" - old-uname new-uname) + old-uname uname) ;; We want to keep the password. (tramp-cleanup-connection vec t t) - (throw 'uname-changed (tramp-maybe-open-connection vec)))) + (throw 'uname-changed (tramp-maybe-open-connection vec))) - ;; Try to set up the coding system correctly. - ;; CCC this can't be the right way to do it. Hm. - (tramp-message vec 5 "Determining coding system") - (with-current-buffer (process-buffer proc) - (if (featurep 'mule) - ;; Use MULE to select the right EOL convention for communicating - ;; with the process. - (let ((cs (or (and (memq 'utf-8 (coding-system-list)) - (string-match "utf-?8" (tramp-get-remote-locale vec)) - (cons 'utf-8 'utf-8)) - (tramp-compat-funcall 'process-coding-system proc) - (cons 'undecided 'undecided))) - cs-decode cs-encode) - (when (symbolp cs) (setq cs (cons cs cs))) - (setq cs-decode (or (car cs) 'undecided) - cs-encode (or (cdr cs) 'undecided)) - (setq cs-encode - (tramp-compat-coding-system-change-eol-conversion - cs-encode - (if (string-match - "^Darwin" (tramp-get-connection-property vec "uname" "")) - 'mac 'unix))) - (tramp-send-command vec "echo foo ; echo bar" t) - (goto-char (point-min)) - (when (search-forward "\r" nil t) - (setq cs-decode (tramp-compat-coding-system-change-eol-conversion - cs-decode 'dos))) - ;; Special setting for Mac OS X. - (when (and (string-match - "^Darwin" (tramp-get-connection-property vec "uname" "")) - (memq 'utf-8-hfs (coding-system-list))) - (setq cs-decode 'utf-8-hfs - cs-encode 'utf-8-hfs)) - (tramp-compat-funcall - 'set-buffer-process-coding-system cs-decode cs-encode) - (tramp-message - vec 5 "Setting coding system to `%s' and `%s'" cs-decode cs-encode)) - ;; Look for ^M and do something useful if found. - (when (search-forward "\r" nil t) - ;; We have found a ^M but cannot frob the process coding system - ;; because we're running on a non-MULE Emacs. Let's try - ;; stty, instead. - (tramp-send-command vec "stty -onlcr" t)))) - - (tramp-send-command vec "set +o vi +o emacs" t) - - ;; Check whether the remote host suffers from buggy - ;; `send-process-string'. This is known for FreeBSD (see comment in - ;; `send_process', file process.c). I've tested sending 624 bytes - ;; successfully, sending 625 bytes failed. Emacs makes a hack when - ;; this host type is detected locally. It cannot handle remote - ;; hosts, though. - (with-tramp-connection-property proc "chunksize" - (cond - ((and (integerp tramp-chunksize) (> tramp-chunksize 0)) - tramp-chunksize) - (t - (tramp-message - vec 5 "Checking remote host type for `send-process-string' bug") - (if (string-match - "^FreeBSD" (tramp-get-connection-property vec "uname" "")) - 500 0)))) - - ;; Set remote PATH variable. - (tramp-set-remote-path vec) - - ;; Search for a good shell before searching for a command which - ;; checks if a file exists. This is done because Tramp wants to use - ;; "test foo; echo $?" to check if various conditions hold, and - ;; there are buggy /bin/sh implementations which don't execute the - ;; "echo $?" part if the "test" part has an error. In particular, - ;; the OpenSolaris /bin/sh is a problem. There are also other - ;; problems with /bin/sh of OpenSolaris, like redirection of stderr - ;; in function declarations, or changing HISTFILE in place. - ;; Therefore, OpenSolaris' /bin/sh is replaced by bash, when - ;; detected. - (tramp-find-shell vec) - - ;; Disable unexpected output. - (tramp-send-command vec "mesg n 2>/dev/null; biff n 2>/dev/null" t) - - ;; IRIX64 bash expands "!" even when in single quotes. This - ;; destroys our shell functions, we must disable it. See - ;; . - (when (string-match "^IRIX64" (tramp-get-connection-property vec "uname" "")) - (tramp-send-command vec "set +H" t)) - - ;; On BSD-like systems, ?\t is expanded to spaces. Suppress this. - (when (string-match "BSD\\|Darwin" - (tramp-get-connection-property vec "uname" "")) - (tramp-send-command vec "stty -oxtabs" t)) - - ;; Set utf8 encoding. Needed for Mac OS X, for example. This is - ;; non-POSIX, so we must expect errors on some systems. - (tramp-send-command vec "stty iutf8 2>/dev/null" t) - - ;; Set `remote-tty' process property. - (let ((tty (tramp-send-command-and-read vec "echo \\\"`tty`\\\"" 'noerror))) - (unless (zerop (length tty)) - (tramp-compat-process-put proc 'remote-tty tty))) - - ;; Dump stty settings in the traces. - (when (>= tramp-verbose 9) - (tramp-send-command vec "stty -a" t)) - - ;; Set the environment. - (tramp-message vec 5 "Setting default environment") - - (let ((env (append `(,(tramp-get-remote-locale vec)) - (copy-sequence tramp-remote-process-environment))) - unset vars item) - (while env - (setq item (tramp-compat-split-string (car env) "=")) - (setcdr item (mapconcat 'identity (cdr item) "=")) - (if (and (stringp (cdr item)) (not (string-equal (cdr item) ""))) - (push (format "%s %s" (car item) (cdr item)) vars) - (push (car item) unset)) - (setq env (cdr env))) - (when vars - (tramp-send-command - vec - (format "while read var val; do export $var=$val; done <<'%s'\n%s\n%s" - tramp-end-of-heredoc - (mapconcat 'identity vars "\n") - tramp-end-of-heredoc) - t)) - (when unset - (tramp-send-command - vec (format "unset %s" (mapconcat 'identity unset " ")) t)))) + ;; Try to set up the coding system correctly. + ;; CCC this can't be the right way to do it. Hm. + (tramp-message vec 5 "Determining coding system") + (with-current-buffer (process-buffer proc) + (if (featurep 'mule) + ;; Use MULE to select the right EOL convention for + ;; communicating with the process. + (let ((cs (or (and (memq 'utf-8 (coding-system-list)) + (string-match "utf-?8" (tramp-get-remote-locale vec)) + (cons 'utf-8 'utf-8)) + (tramp-compat-funcall 'process-coding-system proc) + (cons 'undecided 'undecided))) + cs-decode cs-encode) + (when (symbolp cs) (setq cs (cons cs cs))) + (setq cs-decode (or (car cs) 'undecided) + cs-encode (or (cdr cs) 'undecided)) + (setq cs-encode + (tramp-compat-coding-system-change-eol-conversion + cs-encode (if (string-match "^Darwin" uname) 'mac 'unix))) + (tramp-send-command vec "echo foo ; echo bar" t) + (goto-char (point-min)) + (when (search-forward "\r" nil t) + (setq cs-decode (tramp-compat-coding-system-change-eol-conversion + cs-decode 'dos))) + ;; Special setting for macOS. + (when (and (string-match "^Darwin" uname) + (memq 'utf-8-hfs (coding-system-list))) + (setq cs-decode 'utf-8-hfs + cs-encode 'utf-8-hfs)) + (tramp-compat-funcall + 'set-buffer-process-coding-system cs-decode cs-encode) + (tramp-message + vec 5 "Setting coding system to `%s' and `%s'" cs-decode cs-encode)) + ;; Look for ^M and do something useful if found. + (when (search-forward "\r" nil t) + ;; We have found a ^M but cannot frob the process coding + ;; system because we're running on a non-MULE Emacs. Let's + ;; try stty, instead. + (tramp-send-command vec "stty -onlcr" t)))) + + (tramp-send-command vec "set +o vi +o emacs" t) + + ;; Check whether the remote host suffers from buggy + ;; `send-process-string'. This is known for FreeBSD (see comment + ;; in `send_process', file process.c). I've tested sending 624 + ;; bytes successfully, sending 625 bytes failed. Emacs makes a + ;; hack when this host type is detected locally. It cannot handle + ;; remote hosts, though. + (with-tramp-connection-property proc "chunksize" + (cond + ((and (integerp tramp-chunksize) (> tramp-chunksize 0)) + tramp-chunksize) + (t + (tramp-message + vec 5 "Checking remote host type for `send-process-string' bug") + (if (string-match "^FreeBSD" uname) 500 0)))) + + ;; Set remote PATH variable. + (tramp-set-remote-path vec) + + ;; Search for a good shell before searching for a command which + ;; checks if a file exists. This is done because Tramp wants to + ;; use "test foo; echo $?" to check if various conditions hold, + ;; and there are buggy /bin/sh implementations which don't execute + ;; the "echo $?" part if the "test" part has an error. In + ;; particular, the OpenSolaris /bin/sh is a problem. There are + ;; also other problems with /bin/sh of OpenSolaris, like + ;; redirection of stderr in function declarations, or changing + ;; HISTFILE in place. Therefore, OpenSolaris' /bin/sh is replaced + ;; by bash, when detected. + (tramp-find-shell vec) + + ;; Disable unexpected output. + (tramp-send-command vec "mesg n 2>/dev/null; biff n 2>/dev/null" t) + + ;; IRIX64 bash expands "!" even when in single quotes. This + ;; destroys our shell functions, we must disable it. See + ;; . + (when (string-match "^IRIX64" uname) + (tramp-send-command vec "set +H" t)) + + ;; Disable tab expansion. + (if (string-match "BSD\\|Darwin" uname) + (tramp-send-command vec "stty tabs" t) + (tramp-send-command vec "stty tab0" t)) + + ;; Set utf8 encoding. Needed for macOS, for example. This is + ;; non-POSIX, so we must expect errors on some systems. + (tramp-send-command vec "stty iutf8 2>/dev/null" t) + + ;; Set `remote-tty' process property. + (let ((tty (tramp-send-command-and-read vec "echo \\\"`tty`\\\"" 'noerror))) + (unless (zerop (length tty)) + (tramp-compat-process-put proc 'remote-tty tty))) + + ;; Dump stty settings in the traces. + (when (>= tramp-verbose 9) + (tramp-send-command vec "stty -a" t)) + + ;; Set the environment. + (tramp-message vec 5 "Setting default environment") + + (let ((env (append `(,(tramp-get-remote-locale vec)) + (copy-sequence tramp-remote-process-environment))) + unset vars item) + (while env + (setq item (tramp-compat-split-string (car env) "=")) + (setcdr item (mapconcat 'identity (cdr item) "=")) + (if (and (stringp (cdr item)) (not (string-equal (cdr item) ""))) + (push (format "%s %s" (car item) (cdr item)) vars) + (push (car item) unset)) + (setq env (cdr env))) + (when vars + (tramp-send-command + vec + (format "while read var val; do export $var=$val; done <<'%s'\n%s\n%s" + tramp-end-of-heredoc + (mapconcat 'identity vars "\n") + tramp-end-of-heredoc) + t)) + (when unset + (tramp-send-command + vec (format "unset %s" (mapconcat 'identity unset " ")) t))))) ;; Old text from documentation of tramp-methods: ;; Using a uuencode/uudecode inline method is discouraged, please use one @@ -5047,10 +5068,9 @@ connection if a previous connection has died for some reason." ;; Mark it as connected. (tramp-set-connection-property p "connected" t))))) - ;; When the user did interrupt, we must cleanup. - (quit + ;; Cleanup, and propagate the signal. + ((error quit) (tramp-cleanup-connection vec t) - ;; Propagate the quit signal. (signal (car err) (cdr err)))))) (defun tramp-send-command (vec command &optional neveropen nooutput) @@ -5522,13 +5542,15 @@ Return ATTR." vec "stat" (tramp-get-remote-path vec))) tmp) ;; Check whether stat(1) returns usable syntax. "%s" does not - ;; work on older AIX systems. + ;; work on older AIX systems. Recent GNU stat versions (8.24?) + ;; use shell quoted format for "%N", we check the boundaries "`" + ;; and "'", therefore. See Bug#23422 in coreutils. (when result (setq tmp (tramp-send-command-and-read vec (format "%s -c '(\"%%N\" %%s)' /" result) 'noerror)) (unless (and (listp tmp) (stringp (car tmp)) - (string-match "^./.$" (car tmp)) + (string-match "^`/'$" (car tmp)) (integerp (cadr tmp))) (setq result nil))) result))) @@ -5691,6 +5713,13 @@ Return ATTR." ((and (equal id-format 'string) (not (stringp res))) "UNKNOWN") (t res))))) +(defun tramp-get-env-with-u-option (vec) + (with-tramp-connection-property vec "env-u-option" + (tramp-message vec 5 "Checking, whether `env -u' works") + ;; Option "-u" is a GNU extension. + (tramp-send-command-and-check + vec "env FOO=foo env -u FOO 2>/dev/null | grep -qv FOO" t))) + ;; Some predefined connection properties. (defun tramp-get-inline-compress (vec prop size) "Return the compress command related to PROP. diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 26672d1fabb1..5d8081cd815f 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -1018,7 +1018,7 @@ this variable to be set as well." :type '(choice (const nil) integer)) ;; Logging in to a remote host normally requires obtaining a pty. But -;; Emacs on MacOS X has process-connection-type set to nil by default, +;; Emacs on macOS has process-connection-type set to nil by default, ;; so on those systems Tramp doesn't obtain a pty. Here, we allow ;; for an override of the system default. (defcustom tramp-process-connection-type t @@ -3642,7 +3642,7 @@ connection buffer." (with-current-buffer (tramp-get-connection-buffer vec) (let (buffer-read-only) (delete-region pos (point)))))))) -:;; Utility functions: +;;; Utility functions: (defun tramp-accept-process-output (&optional proc timeout timeout-msecs) "Like `accept-process-output' for Tramp processes. diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el index fc65c0a1081a..25e8b22d3277 100644 --- a/lisp/net/trampver.el +++ b/lisp/net/trampver.el @@ -6,7 +6,7 @@ ;; Author: Kai Großjohann ;; Keywords: comm, processes ;; Package: tramp -;; Version: 2.2.13.25.1 +;; Version: 2.2.13.25.2 ;; This file is part of GNU Emacs. @@ -32,7 +32,7 @@ ;; should be changed only there. ;;;###tramp-autoload -(defconst tramp-version "2.2.13.25.1" +(defconst tramp-version "2.2.13.25.2" "This version of Tramp.") ;;;###tramp-autoload @@ -63,7 +63,7 @@ (= emacs-major-version 21) (>= emacs-minor-version 4))) "ok" - (format "Tramp 2.2.13.25.1 is not fit for %s" + (format "Tramp 2.2.13.25.2 is not fit for %s" (when (string-match "^.*$" (emacs-version)) (match-string 0 (emacs-version))))))) (unless (string-match "\\`ok\\'" x) (error "%s" x))) diff --git a/lisp/obsolete/mailpost.el b/lisp/obsolete/mailpost.el index bcd468c2b063..eebaa34de10d 100644 --- a/lisp/obsolete/mailpost.el +++ b/lisp/obsolete/mailpost.el @@ -26,7 +26,7 @@ (defun post-mail-send-it () "The MH -post interface for `rmail-mail' to call. -To use it, include \"(setq send-mail-function 'post-mail-send-it)\" in +To use it, include \"(setq send-mail-function \\='post-mail-send-it)\" in site-init." (let ((errbuf (if mail-interactive (generate-new-buffer " post-mail errors") diff --git a/lisp/org/ChangeLog.1 b/lisp/org/ChangeLog.1 index 8c118ec7dd0b..2ef70b630bd9 100644 --- a/lisp/org/ChangeLog.1 +++ b/lisp/org/ChangeLog.1 @@ -2809,7 +2809,7 @@ * ox-html.el (org-html-style-default): New classes `footpara' and `footdef' for the footnotes paragraphs and definitions. (org-html-format-footnote-definition): Wrap the footnote - defintions into their own div. + definitions into their own div. (org-html-paragraph): Don't add extra
          after a paragraph in a footnote. (org-html-container-element, org-html-divs): Mention that diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el index 20334f30504f..3292590e8ed2 100644 --- a/lisp/org/org-table.el +++ b/lisp/org/org-table.el @@ -303,7 +303,7 @@ The car of each element is a name of a constant, without the `$' before it. The cdr is the value as a string. For example, if you'd like to use the speed of light in a formula, you would configure - (setq org-table-formula-constants '((\"c\" . \"299792458.\"))) + (setq org-table-formula-constants \\='((\"c\" . \"299792458.\"))) and then use it in an equation like `$1*$c'. diff --git a/lisp/org/org.el b/lisp/org/org.el index 231daa9a6a78..eb01426533d4 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -1937,7 +1937,7 @@ See `org-file-apps'.") ("eps.gz" . "gv %s") ("dvi" . "xdvi %s") ("fig" . "xfig %s")) - "Default file applications on a MacOS X system. + "Default file applications on a macOS system. The system \"open\" is known as a default, but we use X11 applications for some files for which the OS does not have a good default. See `org-file-apps'.") @@ -2012,7 +2012,7 @@ file identifier are (\"html\" . default) to the list as well. t Default for files not matched by any of the other options. `system' The system command to open files, like `open' on Windows - and Mac OS X, and mailcap under GNU/Linux. This is the command + and macOS, and mailcap under GNU/Linux. This is the command that will be selected if you call `C-c C-o' with a double \\[universal-argument] \\[universal-argument] prefix. @@ -15069,7 +15069,7 @@ a *different* entry, you cannot use these techniques." (if (not scope) (progn (org-agenda-prepare-buffers - (list (buffer-file-name (current-buffer)))) + (and buffer-file-name (list buffer-file-name))) (setq res (org-scan-tags func matcher todo-only start-level))) ;; Get the right scope (cond @@ -15081,7 +15081,7 @@ a *different* entry, you cannot use these techniques." (setq scope (org-agenda-files t)) (setq scope (org-add-archive-files scope))) ((eq scope 'file) - (setq scope (list (buffer-file-name)))) + (setq scope (and buffer-file-name (list buffer-file-name)))) ((eq scope 'file-with-archives) (setq scope (org-add-archive-files (list (buffer-file-name)))))) (org-agenda-prepare-buffers scope) @@ -16296,10 +16296,10 @@ So these are more for recording a certain time/date." (message ""))) (org-defkey map ">" (lambda () (interactive) - (org-eval-in-calendar '(scroll-calendar-left 1)))) + (org-eval-in-calendar '(calendar-scroll-left 1)))) (org-defkey map "<" (lambda () (interactive) - (org-eval-in-calendar '(scroll-calendar-right 1)))) + (org-eval-in-calendar '(calendar-scroll-right 1)))) (org-defkey map "\C-v" (lambda () (interactive) (org-eval-in-calendar diff --git a/lisp/org/ox-latex.el b/lisp/org/ox-latex.el index 2734f90db06f..db4075e6612f 100644 --- a/lisp/org/ox-latex.el +++ b/lisp/org/ox-latex.el @@ -690,7 +690,7 @@ a list containing two strings: the name of the option, and the value. For example, (setq org-latex-listings-options - '((\"basicstyle\" \"\\\\small\") + \\='((\"basicstyle\" \"\\\\small\") (\"keywordstyle\" \"\\\\color{black}\\\\bfseries\\\\underbar\"))) will typeset the code in a small size font with underlined, bold @@ -737,7 +737,7 @@ be a list containing two strings: the name of the option, and the value. For example, (setq org-latex-minted-options - '((\"bgcolor\" \"bg\") (\"frame\" \"lines\"))) + \\='((\"bgcolor\" \"bg\") (\"frame\" \"lines\"))) will result in src blocks being exported with @@ -758,7 +758,7 @@ It is used during export of src blocks by the listings and minted latex packages. For example, (setq org-latex-custom-lang-environments - '((python \"pythoncode\"))) + \\='((python \"pythoncode\"))) would have the effect that if org encounters begin_src python during latex export it will output diff --git a/lisp/org/ox-man.el b/lisp/org/ox-man.el index 4d9dae5f7652..1408e1476d72 100644 --- a/lisp/org/ox-man.el +++ b/lisp/org/ox-man.el @@ -207,7 +207,7 @@ It is used during export of src blocks by the listings and man packages. For example, (setq org-man-custom-lang-environments - '((python \"pythoncode\"))) + \\='((python \"pythoncode\"))) would have the effect that if org encounters begin_src python during man export." diff --git a/lisp/org/ox-odt.el b/lisp/org/ox-odt.el index f2b0c9198b71..944437b56cf9 100644 --- a/lisp/org/ox-odt.el +++ b/lisp/org/ox-odt.el @@ -852,7 +852,7 @@ ON-OR-OFF := t | nil For example, with the following configuration \(setq org-odt-table-styles - '((\"TableWithHeaderRowsAndColumns\" \"Custom\" + \\='((\"TableWithHeaderRowsAndColumns\" \"Custom\" ((use-first-row-styles . t) (use-first-column-styles . t))) (\"TableWithHeaderColumns\" \"Custom\" diff --git a/lisp/outline.el b/lisp/outline.el index 2001cdf27b12..f94dbb954a31 100644 --- a/lisp/outline.el +++ b/lisp/outline.el @@ -788,7 +788,8 @@ Show the heading too, if it is currently invisible." 'show-entry 'outline-show-entry "25.1") (defun outline-hide-body () - "Hide all body lines in buffer, leaving all headings visible." + "Hide all body lines in buffer, leaving all headings visible. +Note that this does not hide the lines preceding the first heading line." (interactive) (outline-hide-region-body (point-min) (point-max))) @@ -868,7 +869,12 @@ Show the heading too, if it is currently invisible." nil)) (defun outline-hide-sublevels (levels) - "Hide everything but the top LEVELS levels of headers, in whole buffer." + "Hide everything but the top LEVELS levels of headers, in whole buffer. +This also unhides the top heading-less body, if any. + +Interactively, the prefix argument supplies the value of LEVELS. +When invoked without a prefix argument, LEVELS defaults to the level +of the current heading, or to 1 if the current line is not a heading." (interactive (list (cond (current-prefix-arg (prefix-numeric-value current-prefix-arg)) @@ -909,7 +915,8 @@ Show the heading too, if it is currently invisible." 'hide-sublevels 'outline-hide-sublevels "25.1") (defun outline-hide-other () - "Hide everything except current body and parent and top-level headings." + "Hide everything except current body and parent and top-level headings. +This also unhides the top heading-less body, if any." (interactive) (outline-hide-sublevels 1) (let (outline-view-change-hook) diff --git a/lisp/printing.el b/lisp/printing.el index 3bd5a67298d0..72f825fcb898 100644 --- a/lisp/printing.el +++ b/lisp/printing.el @@ -2272,7 +2272,7 @@ Useful links: * gv 3.5, June 1997 `http://www.cs.wisc.edu/~ghost/gv/gv_doc/gv.html' -* MacGSView (MacOS) +* MacGSView (Mac OS) `http://www.cs.wisc.edu/~ghost/macos/index.htm' " :type '(string :tag "Ghostview Utility") @@ -5673,7 +5673,7 @@ If menu binding was not done, calls `pr-menu-bind'." (or (listp switches) (error "%S should have a list of strings" mess)) (lpr-flatten-list ; dynamic evaluation - (mapcar 'ps-eval-switch switches))) + (mapcar #'lpr-eval-switch switches))) (defun pr-ps-preview (kind n-up filename mess) diff --git a/lisp/profiler.el b/lisp/profiler.el index 401cae537e64..3bee3c561a76 100644 --- a/lisp/profiler.el +++ b/lisp/profiler.el @@ -692,7 +692,8 @@ With a prefix argument, expand the whole subtree." (defun profiler-report-toggle-entry (&optional arg) "Expand entry at point if the tree is collapsed, -otherwise collapse." +otherwise collapse. With prefix argument, expand all subentries +below entry at point." (interactive "P") (or (profiler-report-expand-entry arg) (profiler-report-collapse-entry))) diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 62bc236706d8..eb015acf3200 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -3411,7 +3411,7 @@ comment at the start of cc-engine.el for more info." (< c-state-old-cpp-beg here)) (c-with-all-but-one-cpps-commented-out c-state-old-cpp-beg - (min c-state-old-cpp-end here) + c-state-old-cpp-end (c-invalidate-state-cache-1 here)) (c-with-cpps-commented-out (c-invalidate-state-cache-1 here)))) @@ -3498,7 +3498,7 @@ comment at the start of cc-engine.el for more info." c-state-old-cpp-end c-parse-state-point)))) (defun c-replay-parse-state-state () - (message + (message "%s" (concat "(setq " (mapconcat (lambda (arg) @@ -5806,6 +5806,7 @@ comment at the start of cc-engine.el for more info." ;; ;; This macro might do hidden buffer changes. `(let (res) + (setq c-last-identifier-range nil) (while (if (setq res ,(if (eq type 'type) `(c-forward-type) `(c-forward-name))) @@ -8928,11 +8929,11 @@ comment at the start of cc-engine.el for more info." (not (looking-at "="))))) b-pos))) -(defun c-backward-colon-prefixed-type () - ;; We're at the token after what might be a type prefixed with a colon. Try - ;; moving backward over this type and the colon. On success, return t and - ;; leave point before colon; on failure, leave point unchanged. Will clobber - ;; match data. +(defun c-backward-typed-enum-colon () + ;; We're at a "{" which might be the opening brace of a enum which is + ;; strongly typed (by a ":" followed by a type). If this is the case, leave + ;; point before the colon and return t. Otherwise leave point unchanged and return nil. + ;; Match data will be clobbered. (let ((here (point)) (colon-pos nil)) (save-excursion @@ -8941,7 +8942,10 @@ comment at the start of cc-engine.el for more info." (or (not (looking-at "\\s)")) (c-go-up-list-backward)) (cond - ((eql (char-after) ?:) + ((and (eql (char-after) ?:) + (save-excursion + (c-backward-syntactic-ws) + (c-on-identifier))) (setq colon-pos (point)) (forward-char) (c-forward-syntactic-ws) @@ -8965,7 +8969,7 @@ comment at the start of cc-engine.el for more info." (let ((here (point)) up-sexp-pos before-identifier) (when c-recognize-post-brace-list-type-p - (c-backward-colon-prefixed-type)) + (c-backward-typed-enum-colon)) (while (and (eq (c-backward-token-2) 0) diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el index 8cee733ec8e3..b46b9b82704a 100644 --- a/lisp/progmodes/cc-vars.el +++ b/lisp/progmodes/cc-vars.el @@ -229,7 +229,20 @@ See `c-offsets-alist'." (setq offset (cdr offset))) (null offset))))) - +(defun c-string-list-p (val) + "Return non-nil if VAL is a list of strings." + (and + (listp val) + (catch 'string + (dolist (elt val) + (if (not (stringp elt)) + (throw 'string nil))) + t))) + +(defun c-string-or-string-list-p (val) + "Return non-nil if VAL is a string or a list of strings." + (or (stringp val) + (c-string-list-p val))) ;;; User variables @@ -1621,6 +1634,10 @@ names).")) ;; Non-customizable variables, still part of the interface to CC Mode +;; The following two are preparations for Emacs 25.2 (2016-05-09): +(put 'c-noise-macro-names 'safe-local-variable #'c-string-list-p) +(put 'c-noise-macro-with-parens-names 'safe-local-variable #'c-string-list-p) + (defvar c-macro-with-semi-re nil ;; Regular expression which matches a (#define'd) symbol whose expansion ;; ends with a semicolon. @@ -1647,6 +1664,8 @@ variables. Note that currently \(2008-11-04) this variable is a prototype, and is likely to disappear or change its form soon.") (make-variable-buffer-local 'c-macro-names-with-semicolon) +(put 'c-macro-names-with-semicolon 'safe-local-variable + #'c-string-or-string-list-p) (defun c-make-macro-with-semi-re () ;; Convert `c-macro-names-with-semicolon' into the regexp diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index b7ab408f744e..f060b571b7cf 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -1736,7 +1736,7 @@ Returns the compilation buffer created." (funcall compilation-process-setup-function)) (and outwin (compilation-set-window-height outwin)) ;; Start the compilation. - (if (fboundp 'start-process) + (if (fboundp 'make-process) (let ((proc (if (eq mode t) ;; comint uses `start-file-process'. @@ -2753,7 +2753,9 @@ FILE should be (FILENAME) or (RELATIVE-FILENAME . DIRNAME). In the former case, FILENAME may be relative or absolute. The file-structure looks like this: - ((FILENAME [DIR-FROM-PREV-MSG]) FMT LINE-STRUCT...)" + ((FILENAME [TRUE-DIRNAME]) FMT ...) + +TRUE-DIRNAME is the `file-truename' of DIRNAME, if given." (or (gethash file compilation-locs) ;; File was not previously encountered, at least not in the form passed. ;; Let's normalize it and look again. @@ -2808,7 +2810,7 @@ The file-structure looks like this: (let ((fs (compilation-get-file-structure file))) (cl-assert (eq fs (gethash file compilation-locs))) (cl-assert (eq fs (gethash (cons (caar fs) (cadr (car fs))) - compilation-locs))) + compilation-locs))) (maphash (lambda (k v) (if (eq v fs) (remhash k compilation-locs))) compilation-locs))) diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index fc4501d0cbeb..d02951dcf622 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -455,7 +455,13 @@ It can be quoted, or be inside a quoted form." ((facep sym) (find-definition-noselect sym 'defface))))) (defun elisp-completion-at-point () - "Function used for `completion-at-point-functions' in `emacs-lisp-mode'." + "Function used for `completion-at-point-functions' in `emacs-lisp-mode'. +If the context at point allows only a certain category of +symbols (e.g. functions, or variables) then the returned +completions are restricted to that category. In contexts where +any symbol is possible (following a quote, for example), +functions are annotated with \"\" via the +`:annotation-function' property." (with-syntax-table emacs-lisp-mode-syntax-table (let* ((pos (point)) (beg (condition-case nil @@ -536,9 +542,9 @@ It can be quoted, or be inside a quoted form." (delete-dups ;; FIXME: We should include some ;; docstring with each entry. - (append - macro-declarations-alist - defun-declarations-alist))))) + (append macro-declarations-alist + defun-declarations-alist + nil))))) ; Copy both alists. ((and (or `condition-case `condition-case-unless-debug) (guard (save-excursion (ignore-errors @@ -826,8 +832,9 @@ non-nil result supercedes the xrefs produced by (pcase-let (((cl-struct xref-elisp-location symbol type file) l)) (let ((buffer-point (find-function-search-for-symbol symbol type file))) (with-current-buffer (car buffer-point) - (goto-char (or (cdr buffer-point) (point-min))) - (point-marker))))) + (save-excursion + (goto-char (or (cdr buffer-point) (point-min))) + (point-marker)))))) (cl-defmethod xref-location-group ((l xref-elisp-location)) (xref-elisp-location-file l)) @@ -1557,7 +1564,8 @@ In the absence of INDEX, just call `eldoc-docstring-format-sym-doc'." ARGLIST is either a string, or a list of strings or symbols." (let ((str (cond ((stringp arglist) arglist) ((not (listp arglist)) nil) - (t (help--make-usage-docstring 'toto arglist))))) + (t (substitute-command-keys + (help--make-usage-docstring 'toto arglist)))))) (if (and str (string-match "\\`([^ )]+ ?" str)) (replace-match "(" t t str) str))) diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index a2a0df2d6e1a..d37ab8a98171 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. @@ -2146,8 +2144,9 @@ for \\[find-tag] (which see)." (with-slots (tag-info file) l (let ((buffer (find-file-noselect file))) (with-current-buffer buffer - (etags-goto-tag-location tag-info) - (point-marker))))) + (save-excursion + (etags-goto-tag-location tag-info) + (point-marker)))))) (cl-defmethod xref-location-line ((l xref-etags-location)) (with-slots (tag-info) l diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el index 58397530e4fa..d9a347200461 100644 --- a/lisp/progmodes/f90.el +++ b/lisp/progmodes/f90.el @@ -895,8 +895,10 @@ Can be overridden by the value of `font-lock-maximum-decoration'.") ;; This is for a TYPE block, not a variable of derived TYPE. ;; Hence no need to add CLASS for F2003. +;; Note that this also matches "type is", so you might need to use +;; f90-typeis-re as well. (defconst f90-type-def-re - ;; type word + ;; type word (includes "type is") ;; type :: word ;; type, attr-list :: word ;; where attr-list = attr [, attr ...] @@ -953,7 +955,7 @@ Used in the F90 entry in `hs-special-modes-alist'.") ;; Avoid F2003 "type is" in "select type", ;; and also variables of derived type "type (foo)". ;; "type, foo" must be a block (?). - "type[ \t,]\\(" + "\\(?:type\\|class\\)[ \t,]\\(" "[^i(!\n\"& \t]\\|" ; not-i( "i[^s!\n\"& \t]\\|" ; i not-s "is\\(?:\\sw\\|\\s_\\)\\)\\|" @@ -1452,6 +1454,7 @@ if all else fails." (not (or (looking-at "end") (looking-at "\\(do\\|if\\|else\\(if\\|where\\)?\ \\|select[ \t]*\\(case\\|type\\)\\|case\\|where\\|forall\\|\ +\\(?:class\\|type\\)[ \t]*is\\|\ block\\|critical\\|enum\\|associate\\)\\_>") (looking-at "\\(program\\|\\(?:sub\\)?module\\|\ \\(?:abstract[ \t]*\\)?interface\\|block[ \t]*data\\)\\_>") diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 5ad101df7bf2..978b81699fc6 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el @@ -69,12 +69,12 @@ ;; 2) Use MinGW GDB instead. ;; 3) Use cygwin-mount.el -;;; Mac OSX: +;;; macOS: -;; GDB in Emacs on Mac OSX works best with FSF GDB as Apple have made -;; some changes to the version that they include as part of Mac OSX. -;; This requires GDB version 7.0 or later (estimated release date Aug 2009) -;; as earlier versions do not compile on Mac OSX. +;; GDB in Emacs on macOS works best with FSF GDB as Apple have made +;; some changes to the version that they include as part of macOS. +;; This requires GDB version 7.0 or later as earlier versions do not +;; compile on macOS. ;;; Known Bugs: @@ -673,14 +673,18 @@ NOARG must be t when this macro is used outside `gud-def'" ;;;###autoload (defun gdb (command-line) - "Run gdb on program FILE in buffer *gud-FILE*. -The directory containing FILE becomes the initial working directory -and source-file directory for your debugger. - -COMMAND-LINE is the shell command for starting the gdb session. -It should be a string consisting of the name of the gdb -executable followed by command line options. The command line -options should include \"-i=mi\" to use gdb's MI text interface. + "Run gdb passing it COMMAND-LINE as arguments. + +If COMMAND-LINE names a program FILE to debug, gdb will run in +a buffer named *gud-FILE*, and the directory containing FILE +becomes the initial working directory and source-file directory +for your debugger. +If COMMAND-LINE requests that gdb attaches to a process PID, gdb +will run in *gud-PID*, otherwise it will run in *gud*; in these +cases the initial working directory is the default-directory of +the buffer in which this command was invoked. + +COMMAND-LINE should include \"-i=mi\" to use gdb's MI text interface. Note that the old \"--annotate\" option is no longer supported. If option `gdb-many-windows' is nil (the default value) then gdb just diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 356cd3e05329..0ac48f5f5273 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -733,9 +733,15 @@ It should return a list of completion strings.") ;; The old gdb command (text command mode). The new one is in gdb-mi.el. ;;;###autoload (defun gud-gdb (command-line) - "Run gdb on program FILE in buffer *gud-FILE*. -The directory containing FILE becomes the initial working -directory and source-file directory for your debugger." + "Run gdb passing it COMMAND-LINE as arguments. +If COMMAND-LINE names a program FILE to debug, gdb will run in +a buffer named *gud-FILE*, and the directory containing FILE +becomes the initial working directory and source-file directory +for your debugger. +If COMMAND-LINE requests that gdb attaches to a process PID, gdb +will run in *gud-PID*, otherwise it will run in *gud*; in these +cases the initial working directory is the default-directory of +the buffer in which this command was invoked." (interactive (list (gud-query-cmdline 'gud-gdb))) (when (and gud-comint-buffer diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index 9cb2ca740638..bc607ac40191 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el @@ -420,22 +420,22 @@ A value of t means to show all source files." :type 'integer) (defcustom idlwave-library-path nil - "Library path for Windows and MacOS (OS9). Not needed under UNIX. + "Library path for Windows and Mac OS (OS9). Not needed under UNIX. When selecting the directories to scan for IDL user catalog routine info, IDLWAVE can, under UNIX, query the shell for the exact search -path \(the value of !PATH). However, under Windows and MacOS -\(pre-OSX), the IDLWAVE shell does not work. In this case, this -variable can be set to specify the paths where IDLWAVE can find PRO -files. The shell will only be asked for a list of paths when this -variable is nil. The value is a list of directories. A directory +path (the value of !PATH). However, under MS-Windows, the +IDLWAVE shell does not work. In this case, this variable can be +set to specify the paths where IDLWAVE can find PRO files. The +shell will only be asked for a list of paths when this variable +is nil. The value is a list of directories. A directory preceded by a `+' will be searched recursively. If you set this -variable on a UNIX system, the shell will not be queried. See also -`idlwave-system-directory'." +variable on a UNIX system, the shell will not be queried. See +also `idlwave-system-directory'." :group 'idlwave-routine-info :type '(repeat (directory))) (defcustom idlwave-system-directory "" - "The IDL system directory for Windows and MacOS. Not needed under + "The IDL system directory for Windows and Mac OS. Not needed under UNIX. Set this to the value of the `!DIR' system variable in IDL. IDLWAVE uses this to find out which of the library routines belong to the official system library. All files inside the `lib' subdirectory diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index 8c93ffa87310..6d995a095e6c 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el @@ -1744,7 +1744,7 @@ This performs fontification according to `js--class-styles'." "Regular expression matching variable declaration keywords.") (defconst js--indent-operator-re - (concat "[-+*/%<>&^|?:.]\\([^-+*/]\\|$\\)\\|!?=\\|" + (concat "[-+*/%<>&^|?:.]\\([^-+*/.]\\|$\\)\\|!?=\\|" (js--regexp-opt-symbol '("in" "instanceof"))) "Regexp matching operators that affect indentation of continued expressions.") @@ -1756,6 +1756,10 @@ This performs fontification according to `js--class-styles'." (save-excursion (and (js--re-search-backward "[?:{]\\|\\_" nil t) (eq (char-after) ??)))) + (not (and + (eq (char-after) ?/) + (save-excursion + (eq (nth 3 (syntax-ppss)) ?/)))) (not (and (eq (char-after) ?*) ;; Generator method (possibly using computed property). @@ -1892,9 +1896,11 @@ In particular, return the buffer position of the first `for' kwd." ;; To skip arbitrary expressions we need the parser, ;; so we'll just guess at it. (if (and (> end (point)) ; Not empty literal. - (re-search-forward "[^,]]* \\(for\\) " end t) + (re-search-forward "[^,]]* \\(for\\_>\\)" end t) ;; Not inside comment or string literal. - (not (nth 8 (parse-partial-sexp bracket (point))))) + (let ((status (parse-partial-sexp bracket (point)))) + (and (= 1 (car status)) + (not (nth 8 status))))) (match-beginning 1))))))) (defun js--array-comp-indentation (bracket for-kwd) diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index 9c8a88c80fc8..a51c383b93b9 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -172,7 +172,8 @@ to find the list of ignores for each directory." (let ((command (format "%s %s %s -type f -print0" find-program - dir + (shell-quote-argument + (expand-file-name dir)) (xref--find-ignores-arguments (project-ignores project dir) (expand-file-name dir))))) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 90097df7ef13..d0d4a7f766ef 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -372,7 +372,10 @@ (defconst python-rx-constituents `((block-start . ,(rx symbol-start (or "def" "class" "if" "elif" "else" "try" - "except" "finally" "for" "while" "with") + "except" "finally" "for" "while" "with" + ;; Python 3.5+ PEP492 + (and "async" (+ space) + (or "def" "for" "with"))) symbol-end)) (dedenter . ,(rx symbol-start (or "elif" "else" "except" "finally") @@ -383,7 +386,11 @@ symbol-end)) (decorator . ,(rx line-start (* space) ?@ (any letter ?_) (* (any word ?_)))) - (defun . ,(rx symbol-start (or "def" "class") symbol-end)) + (defun . ,(rx symbol-start + (or "def" "class" + ;; Python 3.5+ PEP492 + (and "async" (+ space) "def")) + symbol-end)) (if-name-main . ,(rx line-start "if" (+ space) "__name__" (+ space) "==" (+ space) (any ?' ?\") "__main__" (any ?' ?\") @@ -515,6 +522,9 @@ The type returned can be `comment', `string' or `paren'." ;; fontified like that in order to keep font-lock consistent between ;; Python versions. "nonlocal" + ;; Python 3.5+ PEP492 + (and "async" (+ space) (or "def" "for" "with")) + "await" ;; Extra: "self") symbol-end) @@ -2404,7 +2414,7 @@ banner and the initial prompt are received separately." (defun python-shell-comint-end-of-output-p (output) "Return non-nil if OUTPUT is ends with input prompt." (string-match - ;; XXX: It seems on OSX an extra carriage return is attached + ;; XXX: It seems on macOS an extra carriage return is attached ;; at the end of output, this handles that too. (concat "\r?\n?" @@ -2668,6 +2678,7 @@ variable. \(Type \\[describe-mode] in the process buffer for a list of commands.)" (when python-shell--parent-buffer (python-util-clone-local-variables python-shell--parent-buffer)) + (set (make-local-variable 'indent-tabs-mode) nil) ;; Users can interactively override default values for ;; `python-shell-interpreter' and `python-shell-interpreter-args' ;; when calling `run-python'. This ensures values let-bound in @@ -3285,7 +3296,7 @@ When a match is found, native completion is disabled." python-shell-completion-native-try-output-timeout)) (python-shell-completion-native-get-completions (get-buffer-process (current-buffer)) - nil ""))) + nil "_"))) (defun python-shell-completion-native-setup () "Try to setup native completion, return non-nil on success." @@ -4281,12 +4292,47 @@ returns will be used. If not FORCE-PROCESS is passed what (unless (zerop (length docstring)) docstring))))) +(defvar-local python-eldoc-get-doc t + "Non-nil means eldoc should fetch the documentation + automatically. Set to nil by `python-eldoc-function' if + `python-eldoc-function-timeout-permanent' is non-nil and + `python-eldoc-function' times out.") + +(defcustom python-eldoc-function-timeout 1 + "Timeout for `python-eldoc-function' in seconds." + :group 'python + :type 'integer + :version "25.1") + +(defcustom python-eldoc-function-timeout-permanent t + "Non-nil means that when `python-eldoc-function' times out +`python-eldoc-get-doc' will be set to nil" + :group 'python + :type 'boolean + :version "25.1") + (defun python-eldoc-function () "`eldoc-documentation-function' for Python. For this to work as best as possible you should call `python-shell-send-buffer' from time to time so context in -inferior Python process is updated properly." - (python-eldoc--get-doc-at-point)) +inferior Python process is updated properly. + +If `python-eldoc-function-timeout' seconds elapse before this +function returns then if +`python-eldoc-function-timeout-permanent' is non-nil +`python-eldoc-get-doc' will be set to nil and eldoc will no +longer return the documentation at the point automatically. + +Set `python-eldoc-get-doc' to t to reenable eldoc documentation +fetching" + (when python-eldoc-get-doc + (with-timeout (python-eldoc-function-timeout + (if python-eldoc-function-timeout-permanent + (progn + (message "Eldoc echo-area display muted in this buffer, see `python-eldoc-function'") + (setq python-eldoc-get-doc nil)) + (message "`python-eldoc-function' timed out, see `python-eldoc-function-timeout'"))) + (python-eldoc--get-doc-at-point)))) (defun python-eldoc-at-point (symbol) "Get help on SYMBOL using `help'. @@ -4819,12 +4865,19 @@ point's current `syntax-ppss'." ;; Allow up to two consecutive docstrings only. (>= 2 - (progn + (let (last-backward-sexp-point) (while (save-excursion (python-nav-backward-sexp) (setq backward-sexp-point (point)) (and (= indentation (current-indentation)) - (not (bobp)) ; Prevent infloop. + ;; Make sure we're always moving point. + ;; If we get stuck in the same position + ;; on consecutive loop iterations, + ;; bail out. + (prog1 (not (eql last-backward-sexp-point + backward-sexp-point)) + (setq last-backward-sexp-point + backward-sexp-point)) (looking-at-p (concat "[uU]?[rR]?" (python-rx string-delimiter))))) @@ -5090,7 +5143,7 @@ returned as is." (add-to-list 'hs-special-modes-alist `(python-mode - "\\s-*\\(?:def\\|class\\)\\>" + "\\s-*\\_<\\(?:def\\|class\\)\\_>" ;; Use the empty string as end regexp so it doesn't default to ;; "\\s)". This way parens at end of defun are properly hidden. "" diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 972bf99145e3..d75edbc84ef2 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -1151,7 +1151,7 @@ delimiter." ((looking-at "<<") (cond ((and (ruby-expr-beg 'heredoc) - (looking-at "<<\\(-\\)?\\(\\([\"'`]\\)\\([^\n]+?\\)\\3\\|\\(?:\\sw\\|\\s_\\)+\\)")) + (looking-at "<<\\([-~]\\)?\\(\\([\"'`]\\)\\([^\n]+?\\)\\3\\|\\(?:\\sw\\|\\s_\\)+\\)")) (setq re (regexp-quote (or (match-string 4) (match-string 2)))) (if (match-beginning 1) (setq re (concat "\\s *" re))) (let* ((id-end (goto-char (match-end 0))) @@ -1858,7 +1858,9 @@ It will be properly highlighted even when the call omits parens.") (string-to-syntax "'")))) ;; Symbols with special characters. ("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|![~=]?\\|\\[\\]=?\\)\\)" - (3 (string-to-syntax "_"))) + (3 (unless (nth 8 (syntax-ppss (match-beginning 3))) + (goto-char (match-end 0)) + (string-to-syntax "_")))) ;; Part of method name when at the end of it. ("[!?]" (0 (unless (save-excursion diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index 4f160e1ad6dd..0040adc2c2bd 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -1741,7 +1741,10 @@ This adds rules for comments and assignments." (defun sh--cmd-completion-table (string pred action) (let ((cmds (append (when (fboundp 'imenu--make-index-alist) - (mapcar #'car (imenu--make-index-alist))) + (mapcar #'car + (condition-case nil + (imenu--make-index-alist) + (imenu-unavailable nil)))) (mapcar (lambda (v) (concat v "=")) (sh--vars-before-point)) (locate-file-completion-table @@ -2000,16 +2003,16 @@ Does not preserve point." Continued lines can either be indented as \"one long wrapped line\" without paying attention to the actual syntactic structure, as in: - for f \ - in a; do \ - toto; \ + for f \\ + in a; do \\ + toto; \\ done or as lines that just don't have implicit semi-colons between them, as in: - for f \ - in a; do \ - toto; \ + for f \\ + in a; do \\ + toto; \\ done With `always' you get the former behavior whereas with nil you get the latter. diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index a390494ebf5c..0756c7904954 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el @@ -4684,7 +4684,7 @@ Usage: SPECIAL MENUES: As an alternative to the speedbar, an index menu can be added (set option `vhdl-index-menu' to non-nil) or made accessible as a mouse menu - (e.g. add \"(global-set-key '[S-down-mouse-3] 'imenu)\" to your start-up + (e.g. add \"(global-set-key [S-down-mouse-3] \\='imenu)\" to your start-up file) for browsing the file contents (is not populated if buffer is larger than 256000). Also, a source file menu can be added (set option `vhdl-source-file-menu' to non-nil) for browsing the diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index f674c70b104c..05cd97932a30 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -521,58 +521,86 @@ references displayed in the current *xref* buffer." (let ((fr (read-regexp "Xref query-replace (regexp)" ".*"))) (list fr (read-regexp (format "Xref query-replace (regexp) %s with: " fr))))) - (let ((reporter (make-progress-reporter (format "Saving search results...") - 0 (line-number-at-pos (point-max)))) - (counter 0) - pairs item) + (let* (item xrefs iter) + (save-excursion + (while (setq item (xref--search-property 'xref-item)) + (when (xref-match-length item) + (push item xrefs)))) (unwind-protect (progn - (save-excursion - (goto-char (point-min)) - ;; TODO: This list should be computed on-demand instead. - ;; As long as the UI just iterates through matches one by - ;; one, there's no need to compute them all in advance. - ;; Then we can throw away the reporter. - (while (setq item (xref--search-property 'xref-item)) - (when (xref-match-length item) - (save-excursion - (let* ((loc (xref-item-location item)) - (beg (xref-location-marker loc)) - (end (move-marker (make-marker) - (+ beg (xref-match-length item)) - (marker-buffer beg)))) - ;; Perform sanity check first. - (xref--goto-location loc) - ;; FIXME: The check should probably be a generic - ;; function, instead of the assumption that all - ;; matches contain the full line as summary. - ;; TODO: Offer to re-scan otherwise. - (unless (equal (buffer-substring-no-properties - (line-beginning-position) - (line-end-position)) - (xref-item-summary item)) - (user-error "Search results out of date")) - (progress-reporter-update reporter (cl-incf counter)) - (push (cons beg end) pairs))))) - (setq pairs (nreverse pairs))) - (unless pairs (user-error "No suitable matches here")) - (progress-reporter-done reporter) - (xref--query-replace-1 from to pairs)) - (dolist (pair pairs) - (move-marker (car pair) nil) - (move-marker (cdr pair) nil))))) + (goto-char (point-min)) + (setq iter (xref--buf-pairs-iterator (nreverse xrefs))) + (xref--query-replace-1 from to iter)) + (funcall iter :cleanup)))) + +(defun xref--buf-pairs-iterator (xrefs) + (let (chunk-done item next-pair file-buf pairs all-pairs) + (lambda (action) + (pcase action + (:next + (when (or xrefs next-pair) + (setq chunk-done nil) + (when next-pair + (setq file-buf (marker-buffer (car next-pair)) + pairs (list next-pair) + next-pair nil)) + (while (and (not chunk-done) + (setq item (pop xrefs))) + (save-excursion + (let* ((loc (xref-item-location item)) + (beg (xref-location-marker loc)) + (end (move-marker (make-marker) + (+ beg (xref-match-length item)) + (marker-buffer beg)))) + (let ((pair (cons beg end))) + (push pair all-pairs) + ;; Perform sanity check first. + (xref--goto-location loc) + (if (xref--outdated-p item + (buffer-substring-no-properties + (line-beginning-position) + (line-end-position))) + (message "Search result out of date, skipping") + (cond + ((null file-buf) + (setq file-buf (marker-buffer beg)) + (push pair pairs)) + ((equal file-buf (marker-buffer beg)) + (push pair pairs)) + (t + (setq chunk-done t + next-pair pair)))))))) + (cons file-buf (nreverse pairs)))) + (:cleanup + (dolist (pair all-pairs) + (move-marker (car pair) nil) + (move-marker (cdr pair) nil))))))) + +(defun xref--outdated-p (item line-text) + ;; FIXME: The check should probably be a generic function instead of + ;; the assumption that all matches contain the full line as summary. + (let ((summary (xref-item-summary item)) + (strip (lambda (s) (if (string-match "\r\\'" s) + (substring-no-properties s 0 -1) + s)))) + (not + ;; Sometimes buffer contents include ^M, and sometimes Grep + ;; output includes it, and they don't always match. + (equal (funcall strip line-text) + (funcall strip summary))))) ;; FIXME: Write a nicer UI. -(defun xref--query-replace-1 (from to pairs) +(defun xref--query-replace-1 (from to iter) (let* ((query-replace-lazy-highlight nil) - current-beg current-end current-buf + (continue t) + did-it-once buf-pairs pairs + current-beg current-end ;; Counteract the "do the next match now" hack in ;; `perform-replace'. And still, it'll report that those ;; matches were "filtered out" at the end. (isearch-filter-predicate (lambda (beg end) (and current-beg - (eq (current-buffer) current-buf) (>= beg current-beg) (<= end current-end)))) (replace-re-search-function @@ -581,19 +609,24 @@ references displayed in the current *xref* buffer." (while (and (not found) pairs) (setq pair (pop pairs) current-beg (car pair) - current-end (cdr pair) - current-buf (marker-buffer current-beg)) - (xref--with-dedicated-window - (pop-to-buffer current-buf)) + current-end (cdr pair)) (goto-char current-beg) (when (re-search-forward from current-end noerror) (setq found t))) found)))) - ;; FIXME: Despite this being a multi-buffer replacement, `N' - ;; doesn't work, because we're not using - ;; `multi-query-replace-map', and it would expect the below - ;; function to be called once per buffer. - (perform-replace from to t t nil))) + (while (and continue (setq buf-pairs (funcall iter :next))) + (if did-it-once + ;; Reuse the same window for subsequent buffers. + (switch-to-buffer (car buf-pairs)) + (xref--with-dedicated-window + (pop-to-buffer (car buf-pairs))) + (setq did-it-once t)) + (setq pairs (cdr buf-pairs)) + (setq continue + (perform-replace from to t t nil nil multi-query-replace-map))) + (unless did-it-once (user-error "No suitable matches here")) + (when (and continue (not buf-pairs)) + (message "All results processed")))) (defvar xref--xref-buffer-mode-map (let ((map (make-sparse-keymap))) @@ -687,7 +720,9 @@ Return an alist of the form ((FILENAME . (XREF ...)) ...)." (defun xref--show-xref-buffer (xrefs alist) (let ((xref-alist (xref--analyze xrefs))) (with-current-buffer (get-buffer-create xref-buffer-name) - (let ((inhibit-read-only t)) + (setq buffer-undo-list nil) + (let ((inhibit-read-only t) + (buffer-undo-list t)) (erase-buffer) (xref--insert-xrefs xref-alist) (xref--xref-buffer-mode) @@ -902,12 +937,14 @@ IGNORES is a list of glob patterns." (match-string 1) (buffer-substring-no-properties (point) (line-end-position))) hits))) - (xref--convert-hits hits regexp))) + (xref--convert-hits (nreverse hits) regexp))) (defun xref--rgrep-command (regexp files dir ignores) (require 'find-dired) ; for `find-name-arg' (defvar grep-find-template) (defvar find-name-arg) + ;; `shell-quote-argument' quotes the tilde as well. + (cl-assert (not (string-match-p "\\`~" dir))) (grep-expand-template grep-find-template regexp @@ -919,14 +956,13 @@ IGNORES is a list of glob patterns." (concat " -o " find-name-arg " ")) " " (shell-quote-argument ")")) - dir + (shell-quote-argument dir) (xref--find-ignores-arguments ignores dir))) (defun xref--find-ignores-arguments (ignores dir) "Convert IGNORES and DIR to a list of arguments for 'find'. IGNORES is a list of glob patterns. DIR is an absolute directory, used as the root of the ignore globs." - ;; `shell-quote-argument' quotes the tilde as well. (cl-assert (not (string-match-p "\\`~" dir))) (when ignores (concat @@ -1014,7 +1050,11 @@ directory, used as the root of the ignore globs." (syntax-propertize line-end) ;; FIXME: This results in several lines with the same ;; summary. Solve with composite pattern? - (while (re-search-forward regexp line-end t) + (while (and + ;; REGEXP might match an empty string. Or line. + (or (null matches) + (> (point) line-beg)) + (re-search-forward regexp line-end t)) (let* ((beg-column (- (match-beginning 0) line-beg)) (end-column (- (match-end 0) line-beg)) (loc (xref-make-file-location file line beg-column)) diff --git a/lisp/recentf.el b/lisp/recentf.el index df7f3e2e5652..dc9489752fb5 100644 --- a/lisp/recentf.el +++ b/lisp/recentf.el @@ -1064,7 +1064,6 @@ Go to the beginning of buffer if not found." (define-key km "q" 'recentf-cancel-dialog) (define-key km "n" 'next-line) (define-key km "p" 'previous-line) - (define-key km [follow-link] "\C-m") km) "Keymap used in recentf dialogs.") @@ -1187,6 +1186,9 @@ IGNORE other arguments." :format "%[%t\n%]" :help-echo ,(concat "Open " (cdr menu-element)) :action recentf-open-files-action + ;; Override the (problematic) follow-link property of the + ;; `link' widget (bug#22434). + :follow-link nil ,(cdr menu-element)))) (defun recentf-open-files-items (files) diff --git a/lisp/rect.el b/lisp/rect.el index 6056b14734d0..c0031642e0c0 100644 --- a/lisp/rect.el +++ b/lisp/rect.el @@ -108,7 +108,7 @@ Point is at the end of the segment of this line within the rectangle." (defun rectangle--col-pos (col kind) (let ((c (move-to-column col))) - (if (= c col) + (if (and (= c col) (not (eolp))) (if (eq kind 'point) (if (window-parameter nil 'rectangle--point-crutches) (setf (window-parameter nil 'rectangle--point-crutches) nil)) @@ -284,7 +284,7 @@ With a prefix (or a FILL) argument, also fill lines where nothing has to be deleted. If the buffer is read-only, Emacs will beep and refrain from deleting -the rectangle, but put it in the kill ring anyway. This means that +the rectangle, but put it in `killed-rectangle' anyway. This means that you can use this command to copy text from a read-only buffer. \(If the variable `kill-read-only-ok' is non-nil, then this won't even beep.)" @@ -295,7 +295,7 @@ even beep.)" (setq deactivate-mark t) (setq killed-rectangle (extract-rectangle start end)) (if kill-read-only-ok - (progn (message "Read only text copied to kill ring") nil) + (progn (message "Read only text copied to `killed-rectangle'") nil) (barf-if-buffer-read-only) (signal 'text-read-only (list (current-buffer))))))) @@ -370,7 +370,7 @@ no text on the right side of the rectangle." "Delete all whitespace following a specified column in each line. The left edge of the rectangle specifies the position in each line at which whitespace deletion should begin. On each line in the -rectangle, all continuous whitespace starting at that column is deleted. +rectangle, all contiguous whitespace starting at that column is deleted. When called from a program the rectangle's corners are START and END. With a prefix (or a FILL) argument, also fill too short lines." @@ -403,16 +403,13 @@ With a prefix (or a FILL) argument, also fill too short lines." :version "25.1") (defcustom rectangle-preview t - "If non-nil, `string-rectangle' will show an-the-fly preview." + "If non-nil, `string-rectangle' will show an on-the-fly preview." :version "25.1" :type 'boolean) (defun rectangle--string-preview () (when rectangle-preview (let ((str (minibuffer-contents))) - (when (equal str "") - (setq str (or (car-safe minibuffer-default) - (if (stringp minibuffer-default) minibuffer-default)))) (when str (setq str (propertize str 'face 'rectangle-preview))) (with-selected-window rectangle--string-preview-window (unless (or (null rectangle--string-preview-state) @@ -783,7 +780,7 @@ Ignores `line-move-visual'." (if (not old) (let ((ol (make-overlay left right))) (overlay-put ol 'window window) - (overlay-put ol 'face 'rectangle-preview) + (overlay-put ol 'face 'region) ol) (let ((ol (pop old))) (move-overlay ol left right (current-buffer)) @@ -815,7 +812,7 @@ Ignores `line-move-visual'." (overlay-put ol 'after-string nil))) ((< mright rightcol) ;`rightcol' is past EOL. (let ((str (rectangle--space-to rightcol))) - (put-text-property 0 (length str) 'face 'rectangle-preview str) + (put-text-property 0 (length str) 'face 'region str) ;; If cursor happens to be here, draw it at the right place. (rectangle--place-cursor leftcol left str) (overlay-put ol 'after-string str))) @@ -827,7 +824,7 @@ Ignores `line-move-visual'." (overlay-put ol 'after-string nil) (goto-char right) (let ((str (rectangle--space-to rightcol))) - (put-text-property 0 (length str) 'face 'rectangle-preview str) + (put-text-property 0 (length str) 'face 'region str) (when (= left right) (rectangle--place-cursor leftcol left str)) (overlay-put ol 'after-string str)))) @@ -837,7 +834,7 @@ Ignores `line-move-visual'." ;; Make zero-width rectangles visible! (overlay-put ol 'after-string (concat (propertize " " - 'face '(rectangle-preview (:height 0.2))) + 'face '(region (:height 0.2))) (overlay-get ol 'after-string)))) (push ol nrol))) start end)) diff --git a/lisp/replace.el b/lisp/replace.el index a2344d9f7e74..eb5e0cfffcb7 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -33,7 +33,7 @@ :type 'boolean :group 'matching) -(defcustom replace-character-fold nil +(defcustom replace-char-fold nil "Non-nil means replacement commands should do character folding in matches. This means, for instance, that \\=' will match a large variety of unicode quotes. @@ -191,18 +191,15 @@ wants to replace FROM with TO." ;; a region in order to specify the minibuffer input. ;; That should not clobber the region for the query-replace itself. (save-excursion - ;; The `with-current-buffer' ensures that the binding - ;; for `text-property-default-nonsticky' isn't a buffer - ;; local binding in the current buffer, which - ;; `read-from-minibuffer' wouldn't see. - (with-current-buffer (window-buffer (minibuffer-window)) - (let ((text-property-default-nonsticky - (cons '(separator . t) text-property-default-nonsticky))) - (if regexp-flag - (read-regexp prompt nil 'query-replace-from-to-history) - (read-from-minibuffer - prompt nil nil nil 'query-replace-from-to-history - (car (if regexp-flag regexp-search-ring search-ring)) t)))))) + (minibuffer-with-setup-hook + (lambda () + (setq-local text-property-default-nonsticky + (cons '(separator . t) text-property-default-nonsticky))) + (if regexp-flag + (read-regexp prompt nil 'query-replace-from-to-history) + (read-from-minibuffer + prompt nil nil nil 'query-replace-from-to-history + (car (if regexp-flag regexp-search-ring search-ring)) t))))) (to)) (if (and (zerop (length from)) query-replace-defaults) (cons (caar query-replace-defaults) @@ -301,6 +298,10 @@ In Transient Mark mode, if the mark is active, operate on the contents of the region. Otherwise, operate from point to the end of the buffer's accessible portion. +In interactive use, the prefix arg (non-nil DELIMITED in +non-interactive use), means replace only matches surrounded by +word boundaries. A negative prefix arg means replace backward. + Use \\\\[next-history-element] \ to pull the last incremental search string to the minibuffer that reads FROM-STRING, or invoke replacements from @@ -323,14 +324,10 @@ If `replace-lax-whitespace' is non-nil, a space or spaces in the string to be replaced will match a sequence of whitespace chars defined by the regexp in `search-whitespace-regexp'. -If `replace-character-fold' is non-nil, matching uses character folding, +If `replace-char-fold' is non-nil, matching uses character folding, i.e. it ignores diacritics and other differences between equivalent character strings. -Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace -only matches surrounded by word boundaries. A negative prefix arg means -replace backward. - Fourth and fifth arg START and END specify the region to operate on. To customize possible responses, change the bindings in `query-replace-map'." @@ -386,7 +383,7 @@ If `replace-regexp-lax-whitespace' is non-nil, a space or spaces in the regexp to be replaced will match a sequence of whitespace chars defined by the regexp in `search-whitespace-regexp'. -This function is not affected by `replace-character-fold'. +This function is not affected by `replace-char-fold'. Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace only matches surrounded by word boundaries. A negative prefix arg means @@ -394,9 +391,10 @@ replace backward. Fourth and fifth arg START and END specify the region to operate on. -In TO-STRING, `\\&' stands for whatever matched the whole of REGEXP, -and `\\=\\N' (where N is a digit) stands for -whatever what matched the Nth `\\(...\\)' in REGEXP. +In TO-STRING, `\\&' or `\\0' stands for whatever matched the whole of +REGEXP, and `\\=\\N' (where N is a digit) stands for whatever matched +the Nth `\\(...\\)' (1-based) in REGEXP. The `\\(...\\)' groups are +counted from 1. `\\?' lets you edit the replacement text in the minibuffer at the given position for each replacement. @@ -454,7 +452,9 @@ If the result of TO-EXPR is not a string, it is converted to one using For convenience, when entering TO-EXPR interactively, you can use `\\&' or `\\0' to stand for whatever matched the whole of REGEXP, and `\\N' (where -N is a digit) to stand for whatever matched the Nth `\\(...\\)' in REGEXP. +N is a digit) to stand for whatever matched the Nth `\\(...\\)' (1-based) +in REGEXP. + Use `\\#&' or `\\#N' if you want a number instead of a string. In interactive use, `\\#' in itself stands for `replace-count'. @@ -477,7 +477,7 @@ If `replace-regexp-lax-whitespace' is non-nil, a space or spaces in the regexp to be replaced will match a sequence of whitespace chars defined by the regexp in `search-whitespace-regexp'. -This function is not affected by `replace-character-fold'. +This function is not affected by `replace-char-fold'. Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace only matches that are surrounded by word boundaries. @@ -571,7 +571,7 @@ If `replace-lax-whitespace' is non-nil, a space or spaces in the string to be replaced will match a sequence of whitespace chars defined by the regexp in `search-whitespace-regexp'. -If `replace-character-fold' is non-nil, matching uses character folding, +If `replace-char-fold' is non-nil, matching uses character folding, i.e. it ignores diacritics and other differences between equivalent character strings. @@ -626,7 +626,7 @@ If `replace-regexp-lax-whitespace' is non-nil, a space or spaces in the regexp to be replaced will match a sequence of whitespace chars defined by the regexp in `search-whitespace-regexp'. -This function is not affected by `replace-character-fold' +This function is not affected by `replace-char-fold' In Transient Mark mode, if the mark is active, operate on the contents of the region. Otherwise, operate from point to the end of the buffer's @@ -638,9 +638,9 @@ replace backward. Fourth and fifth arg START and END specify the region to operate on. -In TO-STRING, `\\&' stands for whatever matched the whole of REGEXP, -and `\\=\\N' (where N is a digit) stands for -whatever what matched the Nth `\\(...\\)' in REGEXP. +In TO-STRING, `\\&' or `\\0' stands for whatever matched the whole of +REGEXP, and `\\=\\N' (where N is a digit) stands for +whatever matched the Nth `\\(...\\)' (1-based) in REGEXP. `\\?' lets you edit the replacement text in the minibuffer at the given position for each replacement. @@ -1997,7 +1997,9 @@ but coerced to the correct value of INTEGERS." FIXEDCASE, LITERAL are passed to `replace-match' (which see). After possibly editing it (if `\\?' is present), NEWTEXT is also passed to `replace-match'. If NOEDIT is true, no check for `\\?' -is made (to save time). MATCH-DATA is used for the replacement. +is made (to save time). +MATCH-DATA is used for the replacement, and is a data structure +as returned from the `match-data' function. In case editing is done, it is changed to use markers. BACKWARD is used to reverse the replacement direction. @@ -2052,9 +2054,9 @@ It is called with three arguments, as if it were ;; used after `recursive-edit' might override them. (let* ((isearch-regexp regexp-flag) (isearch-regexp-function (or delimited-flag - (and replace-character-fold + (and replace-char-fold (not regexp-flag) - #'character-fold-to-regexp))) + #'char-fold-to-regexp))) (isearch-lax-whitespace replace-lax-whitespace) (isearch-regexp-lax-whitespace diff --git a/lisp/ses.el b/lisp/ses.el index 50101945f34c..ab9f0715fd8a 100644 --- a/lisp/ses.el +++ b/lisp/ses.el @@ -3454,9 +3454,18 @@ highlighted range in the spreadsheet." (setq cell (or cell (ses-get-cell row col)) old-name (ses-cell-symbol cell) new-rowcol (ses-decode-cell-symbol (symbol-name new-name))) + ;; when ses-rename-cell is called interactively, then 'sym' is the + ;; 'cursor-intangible' property of text at cursor position, while + ;; 'old-name' is the symbol stored in array cell at coordinate + ;; 'rowcol' corresponding to 'ses-cell' property of symbol + ;; 'sym'. Both must be the same. + (unless (eq sym old-name) + (error "Spreadsheet is broken, both symbols %S and %S refering to cell (%d,%d)" sym old-name row col)) (if new-rowcol + ;; the new name is of A1 type, so we test that the coordinate + ;; inferred from new name (if (equal new-rowcol rowcol) - (put new-name 'ses-cell rowcol) + (put new-name 'ses-cell rowcol) (error "Not a valid name for this cell location")) (setq ses--named-cell-hashmap (or ses--named-cell-hashmap (make-hash-table :test 'eq))) @@ -3470,7 +3479,7 @@ highlighted range in the spreadsheet." (setf (ses-cell-formula xcell) (ses-replace-name-in-formula (ses-cell-formula xcell) - sym + old-name new-name)))) ;; Replace name by new name in reference list of cells to which renamed ;; cell refers to. @@ -3478,11 +3487,14 @@ highlighted range in the spreadsheet." (let* ((x (ses-sym-rowcol ref)) (xcell (ses-get-cell (car x) (cdr x)))) (setf (ses-cell-references xcell) - (cons new-name (delq sym + (cons new-name (delq old-name (ses-cell-references xcell)))))) (set (make-local-variable new-name) (symbol-value sym)) (setf (ses-cell--symbol cell) new-name) - (makunbound sym) + ;; Unbind old name + (if (eq (get old-name 'ses-cell) :ses-named) + (ses--unbind-cell-name old-name) + (kill-local-variable old-name)) (and curcell (setq ses--curcell new-name)) (save-excursion (or curcell (ses-goto-print row col)) diff --git a/lisp/simple.el b/lisp/simple.el index 2a81ee745cb2..162f6dd89c5b 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -145,18 +145,18 @@ nil means use goto-char using the second argument position.") &optional avoid-current extra-test-inclusive extra-test-exclusive) - "Test if BUFFER is a `next-error' capable buffer. - -If AVOID-CURRENT is non-nil, treat the current buffer -as an absolute last resort only. - -The function EXTRA-TEST-INCLUSIVE, if non-nil, is called in each buffer -that normally would not qualify. If it returns t, the buffer -in question is treated as usable. - -The function EXTRA-TEST-EXCLUSIVE, if non-nil, is called in each buffer -that would normally be considered usable. If it returns nil, -that buffer is rejected." + "Return non-nil if BUFFER is a `next-error' capable buffer. +If AVOID-CURRENT is non-nil, and BUFFER is the current buffer, +return nil. + +The function EXTRA-TEST-INCLUSIVE, if non-nil, is called if +BUFFER would not normally qualify. If it returns non-nil, BUFFER +is considered `next-error' capable, anyway, and the function +returns non-nil. + +The function EXTRA-TEST-EXCLUSIVE, if non-nil, is called if the +buffer would normally qualify. If it returns nil, BUFFER is +rejected, and the function returns nil." (and (buffer-name buffer) ;First make sure it's live. (not (and avoid-current (eq buffer (current-buffer)))) (with-current-buffer buffer @@ -681,7 +681,7 @@ for numeric input." (let ((message-log-max nil) (help-events (delq nil (mapcar (lambda (c) (unless (characterp c) c)) help-event-list))) - done (first t) (code 0) translated) + done (first t) (code 0) char translated) (while (not done) (let ((inhibit-quit first) ;; Don't let C-h or other help chars get the help @@ -693,15 +693,21 @@ for numeric input." or the octal character code. RET terminates the character code and is discarded; any other non-digit terminates the character code and is then used as input.")) - (setq translated (read-key (and prompt (format "%s-" prompt)))) + (setq char (read-event (and prompt (format "%s-" prompt)) t)) (if inhibit-quit (setq quit-flag nil))) + ;; Translate TAB key into control-I ASCII character, and so on. + ;; Note: `read-char' does it using the `ascii-character' property. + ;; We tried using read-key instead, but that disables the keystroke + ;; echo produced by 'C-q', see bug#24635. + (let ((translation (lookup-key local-function-key-map (vector char)))) + (setq translated (if (arrayp translation) + (aref translation 0) + char))) (if (integerp translated) (setq translated (char-resolve-modifiers translated))) (cond ((null translated)) ((not (integerp translated)) - (setq unread-command-events - (nconc (listify-key-sequence (this-single-command-raw-keys)) - unread-command-events) + (setq unread-command-events (list char) done t)) ((/= (logand translated ?\M-\^@) 0) ;; Turn a meta-character into a character with the 0200 bit set. @@ -720,9 +726,7 @@ any other non-digit terminates the character code and is then used as input.")) ((and (not first) (eq translated ?\C-m)) (setq done t)) ((not first) - (setq unread-command-events - (nconc (listify-key-sequence (this-single-command-raw-keys)) - unread-command-events) + (setq unread-command-events (list char) done t)) (t (setq code translated done t))) @@ -1418,10 +1422,11 @@ If nil, don't change the value of `debug-on-error'." :version "21.1") (defun eval-expression-print-format (value) - "Format VALUE as a result of evaluated expression. -Return a formatted string which is displayed in the echo area -in addition to the value printed by prin1 in functions which -display the result of expression evaluation." + "If VALUE in an integer, return a specially formatted string. +This string will typically look like \" (#o1, #x1, ?\\C-a)\". +If VALUE is not an integer, nil is returned. +This function is used by functions like `prin1' that display the +result of expression evaluation." (if (and (integerp value) (or (eq standard-output t) (zerop (prefix-numeric-value current-prefix-arg)))) @@ -1456,16 +1461,16 @@ display the result of expression evaluation." "Evaluate EXP and print value in the echo area. When called interactively, read an Emacs Lisp expression and evaluate it. Value is also consed on to front of the variable `values'. -Optional argument INSERT-VALUE non-nil (interactively, with prefix -argument) means insert the result into the current buffer instead of -printing it in the echo area. +If the resulting value is an integer, it will be printed in +several additional formats (octal, hexadecimal, and character). +Optional argument INSERT-VALUE non-nil (interactively, with +prefix argument) means insert the result into the current buffer +instead of printing it in the echo area. Normally, this function truncates long output according to the value of the variables `eval-expression-print-length' and `eval-expression-print-level'. With a prefix argument of zero, -however, there is no such truncation. Such a prefix argument -also causes integers to be printed in several additional formats -\(octal, hexadecimal, and character). +however, there is no such truncation. Runs the hook `eval-expression-minibuffer-setup-hook' on entering the minibuffer. @@ -2896,9 +2901,7 @@ REASON describes the reason that the boundary is being added; see This list is maintained by `undo-auto--undoable-change' and `undo-auto--boundaries' and can be affected by changes to their -default values. - -See also `undo-auto--buffer-undoably-changed'.") +default values.") (defun undo-auto--add-boundary () "Add an `undo-boundary' in appropriate buffers." @@ -2941,9 +2944,17 @@ behavior." (cdr buffer-undo-list)))))) (setq undo-auto--last-boundary-cause 0))))) +;; This function is called also from one place in fileio.c. We call +;; this function, rather than undoable-change because it reduces the +;; number of lisp functions we have to use fboundp for to avoid +;; bootstrap issues. +(defun undo-auto--undoable-change-no-timer () + "Record `current-buffer' as changed." + (add-to-list 'undo-auto--undoably-changed-buffers (current-buffer))) + (defun undo-auto--undoable-change () "Called after every undoable buffer change." - (add-to-list 'undo-auto--undoably-changed-buffers (current-buffer)) + (undo-auto--undoable-change-no-timer) (undo-auto--boundary-ensure-timer)) ;; End auto-boundary section @@ -4002,7 +4013,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") @@ -4043,7 +4055,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) @@ -4653,9 +4666,9 @@ If N is negative, this is a more recent kill. The sequence of kills wraps around, so that after the oldest one comes the newest one. -When this command inserts killed text into the buffer, it honors -`yank-excluded-properties' and `yank-handler' as described in the -doc string for `insert-for-yank-1', which see." +This command honors the `yank-handled-properties' and +`yank-excluded-properties' variables, and the `yank-handler' text +property, in the way that `yank' does." (interactive "*p") (if (not (eq last-command 'yank)) (user-error "Previous command was not a yank")) @@ -4688,10 +4701,34 @@ at the end, and set mark at the beginning without activating it. With just \\[universal-argument] as argument, put point at beginning, and mark at end. With argument N, reinsert the Nth most recent kill. -When this command inserts text into the buffer, it honors the -`yank-handled-properties' and `yank-excluded-properties' -variables, and the `yank-handler' text property. See -`insert-for-yank-1' for details. +This command honors the `yank-handled-properties' and +`yank-excluded-properties' variables, and the `yank-handler' text +property, as described below. + +Properties listed in `yank-handled-properties' are processed, +then those listed in `yank-excluded-properties' are discarded. + +If STRING has a non-nil `yank-handler' property anywhere, the +normal insert behavior is altered, and instead, for each contiguous +segment of STRING that has a given value of the `yank-handler' +property, that value is used as follows: + +The value of a `yank-handler' property must be a list of one to four +elements, of the form (FUNCTION PARAM NOEXCLUDE UNDO). +FUNCTION, if non-nil, should be a function of one argument (the + object to insert); FUNCTION is called instead of `insert'. +PARAM, if present and non-nil, is passed to FUNCTION (to be handled + in whatever way is appropriate; e.g. if FUNCTION is `yank-rectangle', + PARAM may be a list of strings to insert as a rectangle). If PARAM + is nil, then the current segment of STRING is used. +If NOEXCLUDE is present and non-nil, the normal removal of + `yank-excluded-properties' is not performed; instead FUNCTION is + responsible for the removal. This may be necessary if FUNCTION + adjusts point before or after inserting the object. +UNDO, if present and non-nil, should be a function to be called + by `yank-pop' to undo the insertion of the current PARAM. It is + given two arguments, the start and end of the region. FUNCTION + may set `yank-undo-function' to override UNDO. See also the command `yank-pop' (\\[yank-pop])." (interactive "*P") @@ -4811,8 +4848,8 @@ To kill a whole line, when point is not at the beginning, type \ \\[move-beginning-of-line] \\[kill-line] \\[kill-line]. If `show-trailing-whitespace' is non-nil, this command will just -kill the rest of the current line, even if there are only -nonblanks there. +kill the rest of the current line, even if there are no nonblanks +there. If option `kill-whole-line' is non-nil, then this command kills the whole line including its terminating newline, when used at the beginning of a line @@ -5211,7 +5248,7 @@ This macro does what `save-excursion' did before Emacs 25.1." (defcustom use-empty-active-region nil "Whether \"region-aware\" commands should act on empty regions. -If nil, region-aware commands treat empty regions as inactive. +If nil, region-aware commands treat the empty region as inactive. If non-nil, region-aware commands treat the region as active as long as the mark is active, even if the region is empty. @@ -5370,13 +5407,13 @@ after C-u \\[set-mark-command]." :group 'editing-basics) (defun set-mark-command (arg) - "Set the mark where point is, or jump to the mark. + "Set the mark where point is, and activate it; or jump to the mark. Setting the mark also alters the region, which is the text between point and mark; this is the closest equivalent in Emacs to what some editors call the \"selection\". With no prefix argument, set the mark at point, and push the -old mark position on local mark ring. Also push the old mark on +old mark position on local mark ring. Also push the new mark on global mark ring, if the previous mark was set in another buffer. When Transient Mark Mode is off, immediately repeating this @@ -5634,6 +5671,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. @@ -5677,6 +5715,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. @@ -6406,7 +6445,8 @@ Those commands will move to this position in the line moved to rather than trying to keep the same horizontal position. With a non-nil argument ARG, clears out the goal column so that \\[next-line] and \\[previous-line] resume vertical motion. -The goal column is stored in the variable `goal-column'." +The goal column is stored in the variable `goal-column'. +This is a buffer-local setting." (interactive "P") (if arg (progn @@ -6627,9 +6667,13 @@ are interchanged." (transpose-subr 'forward-word arg)) (defun transpose-sexps (arg) - "Like \\[transpose-words] but applies to sexps. -Does not work on a sexp that point is in the middle of -if it is a list or string." + "Like \\[transpose-chars] (`transpose-chars'), but applies to sexps. +Unlike `transpose-words', point must be between the two sexps and not +in the middle of a sexp to be transposed. +With non-zero prefix arg ARG, effect is to take the sexp before point +and drag it forward past ARG other sexps (backward if ARG is negative). +If ARG is zero, the sexps ending at or after point and at or after mark +are interchanged." (interactive "*p") (transpose-subr (lambda (arg) @@ -6792,13 +6836,18 @@ With argument ARG, do this that many times." (kill-word (- arg))) (defun current-word (&optional strict really-word) - "Return the symbol or word that point is on (or a nearby one) as a string. + "Return the word at or near point, as a string. The return value includes no text properties. -If optional arg STRICT is non-nil, return nil unless point is within -or adjacent to a symbol or word. In all cases the value can be nil -if there is no word nearby. -The function, belying its name, normally finds a symbol. -If optional arg REALLY-WORD is non-nil, it finds just a word." + +If optional arg STRICT is non-nil, return nil unless point is +within or adjacent to a word, otherwise look for a word within +point's line. If there is no word anywhere on point's line, the +value is nil regardless of STRICT. + +By default, this function treats as a single word any sequence of +characters that have either word or symbol syntax. If optional +arg REALLY-WORD is non-nil, only characters of word syntax can +constitute a word." (save-excursion (let* ((oldpoint (point)) (start (point)) (end (point)) (syntaxes (if really-word "w" "w_")) diff --git a/lisp/startup.el b/lisp/startup.el index 536289c38914..761e69e03b1d 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -439,7 +439,7 @@ Warning Warning!!! Pure space overflow !!!Warning Warning :initialize #'custom-initialize-delay) (defun normal-top-level-add-subdirs-to-load-path () - "Add all subdirectories of `default-directory' to `load-path'. + "Recursively add all subdirectories of `default-directory' to `load-path'. More precisely, this uses only the subdirectories whose names start with letters or digits; it excludes any subdirectory named `RCS' or `CVS', and any subdirectory that contains a file named `.nosearch'." diff --git a/lisp/subr.el b/lisp/subr.el index 0fb4a2ec2564..efea412af0ea 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -290,21 +290,27 @@ This function accepts any number of arguments, but ignores them." ;; Signal a compile-error if the first arg is missing. (defun error (&rest args) - "Signal an error, making error message by passing all args to `format'. + "Signal an error, making a message by passing args to `format-message'. In Emacs, the convention is that error messages start with a capital letter but *do not* end with a period. Please follow this convention -for the sake of consistency." +for the sake of consistency. + +Note: (error \"%s\" VALUE) makes the message VALUE without +interpreting format characters like `%', `\\=`', and `\\=''." (declare (advertised-calling-convention (string &rest args) "23.1")) (signal 'error (list (apply #'format-message args)))) (defun user-error (format &rest args) - "Signal a pilot error, making error message by passing all args to `format'. + "Signal a pilot error, making a message by passing args to `format-message'. In Emacs, the convention is that error messages start with a capital letter but *do not* end with a period. Please follow this convention for the sake of consistency. This is just like `error' except that `user-error's are expected to be the result of an incorrect manipulation on the part of the user, rather than the -result of an actual problem." +result of an actual problem. + +Note: (user-error \"%s\" VALUE) makes the message VALUE without +interpreting format characters like `%', `\\=`', and `\\=''." (signal 'user-error (list (apply #'format-message format args)))) (defun define-error (name message &optional parent) @@ -478,13 +484,16 @@ of course, also replace TO with a slightly larger value (list from) (or inc (setq inc 1)) (when (zerop inc) (error "The increment can not be zero")) - (let (seq (n 0) (next from)) + (let (seq (n 0) (next from) (last from)) (if (> inc 0) - (while (<= next to) + ;; The (>= next last) condition protects against integer + ;; overflow in computing NEXT. + (while (and (>= next last) (<= next to)) (setq seq (cons next seq) n (1+ n) + last next next (+ from (* n inc)))) - (while (>= next to) + (while (and (<= next last) (>= next to)) (setq seq (cons next seq) n (1+ n) next (+ from (* n inc))))) @@ -589,10 +598,12 @@ Elements of ALIST that are not conses are ignored." alist) (defun alist-get (key alist &optional default remove) - "Get the value associated to KEY in ALIST. -DEFAULT is the value to return if KEY is not found in ALIST. -REMOVE, if non-nil, means that when setting this element, we should -remove the entry if the new value is `eql' to DEFAULT." + "Return the value associated with KEY in ALIST, using `assq'. +If KEY is not found in ALIST, return DEFAULT. + +This is a generalized variable suitable for use with `setf'. +When using it to set a value, optional argument REMOVE non-nil +means to remove KEY from ALIST if the new value is `eql' to DEFAULT." (ignore remove) ;;Silence byte-compiler. (let ((x (assq key alist))) (if x (cdr x) default))) @@ -619,8 +630,10 @@ side-effects, and the argument LIST is not modified." (defun kbd (keys) "Convert KEYS to the internal Emacs key representation. -KEYS should be a string constant in the format used for -saving keyboard macros (see `edmacro-mode')." +KEYS should be a string in the format returned by commands such +as `C-h k' (`describe-key'). +This is the same format used for saving keyboard macros (see +`edmacro-mode')." ;; Don't use a defalias, since the `pure' property is only true for ;; the calling convention of `kbd'. (read-kbd-macro keys)) @@ -890,7 +903,7 @@ KEY is a string or vector representing a sequence of keystrokes." (defun substitute-key-definition (olddef newdef keymap &optional oldmap prefix) "Replace OLDDEF with NEWDEF for any keys in KEYMAP now defined as OLDDEF. -In other words, OLDDEF is replaced with NEWDEF where ever it appears. +In other words, OLDDEF is replaced with NEWDEF wherever it appears. Alternatively, if optional fourth argument OLDMAP is specified, we redefine in KEYMAP as NEWDEF those keys which are defined as OLDDEF in OLDMAP. @@ -1115,6 +1128,7 @@ The return value is a positive integer." (defun posnp (obj) "Return non-nil if OBJ appears to be a valid `posn' object specifying a window. +A `posn' object is returned from functions such as `event-start'. If OBJ is a valid `posn' object, but specifies a frame rather than a window, return nil." ;; FIXME: Correct the behavior of this function so that all valid @@ -1320,7 +1334,9 @@ is converted into a string by expressing it in decimal." ;; buffer-local. ;; Not used at all in Emacs, last time I checked: -(make-obsolete-variable 'default-mode-line-format 'mode-line-format "23.2") +(make-obsolete-variable 'default-mode-line-format + "use (setq-default mode-line-format) or (default-value mode-line-format) instead" + "23.2") (make-obsolete-variable 'default-header-line-format 'header-line-format "23.2") (make-obsolete-variable 'default-line-spacing 'line-spacing "23.2") (make-obsolete-variable 'default-abbrev-mode 'abbrev-mode "23.2") @@ -1361,6 +1377,9 @@ is converted into a string by expressing it in decimal." (make-obsolete 'process-filter-multibyte-p nil "23.1") (make-obsolete 'set-process-filter-multibyte nil "23.1") +(make-obsolete-variable 'command-debug-status + "expect it to be removed in a future version." "25.2") + ;; Lisp manual only updated in 22.1. (define-obsolete-variable-alias 'executing-macro 'executing-kbd-macro "before 19.34") @@ -1947,7 +1966,7 @@ this process is not associated with any buffer. PROGRAM is the program file name. It is searched for in `exec-path' \(which see). If nil, just associate a pty with the buffer. Remaining -arguments are strings to give program as arguments. +arguments PROGRAM-ARGS are strings to give program as arguments. If you want to separate standard output from standard error, use `make-process' or invoke the command through a shell and redirect @@ -2310,7 +2329,8 @@ floating point support." (declare-function x-popup-dialog "menu.c" (position contents &optional header)) (defun y-or-n-p (prompt) - "Ask user a \"y or n\" question. Return t if answer is \"y\". + "Ask user a \"y or n\" question. +Return t if answer is \"y\" and nil if it is \"n\". PROMPT is the string to display to ask the question. It should end in a space; `y-or-n-p' adds \"(y or n) \" to it. @@ -2842,9 +2862,11 @@ remove properties specified by `yank-excluded-properties'." (defvar yank-undo-function) (defun insert-for-yank (string) - "Call `insert-for-yank-1' repetitively for each `yank-handler' segment. + "Insert STRING at point for the `yank' command. -See `insert-for-yank-1' for more details." +This function is like `insert', except it honors the variables +`yank-handled-properties' and `yank-excluded-properties', and the +`yank-handler' text property, in the way that `yank' does." (let (to) (while (setq to (next-single-property-change 0 'yank-handler string)) (insert-for-yank-1 (substring string 0 to)) @@ -2852,31 +2874,7 @@ See `insert-for-yank-1' for more details." (insert-for-yank-1 string)) (defun insert-for-yank-1 (string) - "Insert STRING at point for the `yank' command. -This function is like `insert', except it honors the variables -`yank-handled-properties' and `yank-excluded-properties', and the -`yank-handler' text property. - -Properties listed in `yank-handled-properties' are processed, -then those listed in `yank-excluded-properties' are discarded. - -If STRING has a non-nil `yank-handler' property on its first -character, the normal insert behavior is altered. The value of -the `yank-handler' property must be a list of one to four -elements, of the form (FUNCTION PARAM NOEXCLUDE UNDO). -FUNCTION, if non-nil, should be a function of one argument, an - object to insert; it is called instead of `insert'. -PARAM, if present and non-nil, replaces STRING as the argument to - FUNCTION or `insert'; e.g. if FUNCTION is `yank-rectangle', PARAM - may be a list of strings to insert as a rectangle. -If NOEXCLUDE is present and non-nil, the normal removal of - `yank-excluded-properties' is not performed; instead FUNCTION is - responsible for the removal. This may be necessary if FUNCTION - adjusts point before or after inserting the object. -UNDO, if present and non-nil, should be a function to be called - by `yank-pop' to undo the insertion of the current object. It is - given two arguments, the start and end of the region. FUNCTION - may set `yank-undo-function' to override UNDO." + "Helper for `insert-for-yank', which see." (let* ((handler (and (stringp string) (get-text-property 0 'yank-handler string))) (param (or (nth 1 handler) string)) @@ -3286,6 +3284,8 @@ See also `with-temp-file' and `with-output-to-string'." (defmacro with-silent-modifications (&rest body) "Execute BODY, pretending it does not modify the buffer. +This macro is Typically used around modifications of +text-properties which do not really affect the buffer's content. If BODY performs real modifications to the buffer's text, other than cosmetic ones, undo data may become corrupted. @@ -3293,10 +3293,7 @@ This macro will run BODY normally, but doesn't count its buffer modifications as being buffer modifications. This affects things like `buffer-modified-p', checking whether the file is locked by someone else, running buffer modification hooks, and other things -of that nature. - -Typically used around modifications of text-properties which do -not really affect the buffer's content." +of that nature." (declare (debug t) (indent 0)) (let ((modified (make-symbol "modified"))) `(let* ((,modified (buffer-modified-p)) @@ -3690,7 +3687,10 @@ Modifies the match data; use `save-match-data' if necessary." "Concatenate the STRINGS, adding the SEPARATOR (default \" \"). This tries to quote the strings to avoid ambiguity such that (split-string-and-unquote (combine-and-quote-strings strs)) == strs -Only some SEPARATORs will work properly." +Only some SEPARATORs will work properly. + +Note that this is not intended to protect STRINGS from +interpretation by shells, use `shell-quote-argument' for that." (let* ((sep (or separator " ")) (re (concat "[\\\"]" "\\|" (regexp-quote sep)))) (mapconcat @@ -3746,9 +3746,9 @@ the match data are the result of matching REGEXP against a substring of STRING, the same substring that is the actual text of the match which is passed to REP as its argument. -To replace only the first match (if any), make REGEXP match up to \\' +To replace only the first match (if any), make REGEXP match up to \\\\=' and replace a sub-expression, e.g. - (replace-regexp-in-string \"\\\\(foo\\\\).*\\\\'\" \"bar\" \" foo foo\" nil nil 1) + (replace-regexp-in-string \"\\\\(foo\\\\).*\\\\\\='\" \"bar\" \" foo foo\" nil nil 1) => \" bar foo\"" ;; To avoid excessive consing from multiple matches in long strings, @@ -4507,8 +4507,10 @@ to deactivate this transient map, regardless of KEEP-PRED." ;; exit C-u. t) ((eq t keep-pred) - (eq this-command - (lookup-key map (this-command-keys-vector)))) + (let ((mc (lookup-key map (this-command-keys-vector)))) + ;; If the key is unbound `this-command` is + ;; nil and so is `mc`. + (and mc (eq this-command mc)))) (t (funcall keep-pred))) (funcall exitfun))))) (add-hook 'pre-command-hook clearfun) diff --git a/lisp/term.el b/lisp/term.el index 8cdf0c0e77c4..18d67757d0c2 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -845,6 +845,7 @@ is buffer-local." (define-key map [S-insert] 'term-paste) (define-key map [prior] 'term-send-prior) (define-key map [next] 'term-send-next) + (define-key map [xterm-paste] #'term--xterm-paste) map) "Keyboard map for sending characters directly to the inferior process.") @@ -915,19 +916,6 @@ is buffer-local." (term-set-escape-char (or term-escape-char ?\C-c)) -(defvar overflow-newline-into-fringe) - -(defun term-window-width () - (if (and (not (featurep 'xemacs)) - (display-graphic-p) - overflow-newline-into-fringe - ;; Subtract 1 from the width when any fringe has zero width, - ;; not just the right fringe. Bug#18601. - (/= (frame-parameter nil 'left-fringe) 0) - (/= (frame-parameter nil 'right-fringe) 0)) - (window-body-width) - (1- (window-body-width)))) - (put 'term-mode 'mode-class 'special) @@ -1014,7 +1002,7 @@ Entry to this mode runs the hooks on `term-mode-hook'." (setq buffer-display-table term-display-table) (set (make-local-variable 'term-home-marker) (copy-marker 0)) (set (make-local-variable 'term-height) (1- (window-height))) - (set (make-local-variable 'term-width) (term-window-width)) + (set (make-local-variable 'term-width) (window-max-chars-per-line)) (set (make-local-variable 'term-last-input-start) (make-marker)) (set (make-local-variable 'term-last-input-end) (make-marker)) (set (make-local-variable 'term-last-input-match) "") @@ -1111,6 +1099,17 @@ Entry to this mode runs the hooks on `term-mode-hook'." (term-reset-size (cdr size) (car size))) size)) + ;; Without the below setting, term-mode and ansi-term behave + ;; sluggishly when the buffer includes a lot of whitespace + ;; characters. + ;; + ;; There's a larger problem here with supporting bidirectional text: + ;; the application that writes to the terminal could have its own + ;; ideas about displaying bidirectional text, and might not want us + ;; reordering the text or deciding on base paragraph direction. One + ;; such application is Emacs in TTY mode... FIXME. + (setq bidi-paragraph-direction 'left-to-right) + (easy-menu-add term-terminal-menu) (easy-menu-add term-signals-menu) (or term-input-ring @@ -1118,12 +1117,16 @@ Entry to this mode runs the hooks on `term-mode-hook'." (term-update-mode-line)) (defun term-reset-size (height width) - (setq term-height height) - (setq term-width width) - (setq term-start-line-column nil) - (setq term-current-row nil) - (setq term-current-column nil) - (term-set-scroll-region 0 height)) + (when (or (/= height term-height) + (/= width term-width)) + (let ((point (point))) + (setq term-height height) + (setq term-width width) + (setq term-start-line-column nil) + (setq term-current-row nil) + (setq term-current-column nil) + (term-set-scroll-region 0 height) + (goto-char point)))) ;; Recursive routine used to check if any string in term-kill-echo-list ;; matches part of the buffer before point. @@ -1209,6 +1212,13 @@ without any interpretation." (interactive) (term-send-raw-string (current-kill 0))) +(defun term--xterm-paste () + "Insert the text pasted in an XTerm bracketed paste operation." + (interactive) + (term-send-raw-string (xterm--pasted-text))) + +(declare-function xterm--pasted-text "term/xterm" ()) + ;; Which would be better: "\e[A" or "\eOA"? readline accepts either. ;; For my configuration it's definitely better \eOA but YMMV. -mm ;; For example: vi works with \eOA while elm wants \e[A ... @@ -4151,17 +4161,7 @@ the process. Any more args are arguments to PROGRAM." ;; .emacs ... (term-set-escape-char ?\C-x)) - (switch-to-buffer term-ansi-buffer-name) - ;; For some reason, without the below setting, ansi-term behaves - ;; sluggishly, not clear why, since the buffer is typically very - ;; small. - ;; - ;; There's a larger problem here with supporting bidirectional text: - ;; the application that writes to the terminal could have its own - ;; ideas about displaying bidirectional text, and might not want us - ;; reordering the text or deciding on base paragraph direction. One - ;; such application is Emacs in TTY mode... FIXME. - (setq bidi-paragraph-direction 'left-to-right)) + (switch-to-buffer term-ansi-buffer-name)) ;;; Serial terminals diff --git a/lisp/term/internal.el b/lisp/term/internal.el index f026c66b2a35..6f4866b07957 100644 --- a/lisp/term/internal.el +++ b/lisp/term/internal.el @@ -233,13 +233,13 @@ "U*!" "U*'" "R*;" "!:" ":'" "!*" nil nil nil "w*j" nil nil "w*?" nil "O*!" "O*'" "W*!" "W*'" "W*J" "/*" ";;" nil nil nil "1N" "1M" "3M" "4M" "6M" nil ; Gen Punct - nil "1T" "1H" nil nil nil "LRM" "RLM" "-1" nil - nil "--" "---" "===" "!2" "=2" "6`" "'9" ".9" "9'" - "``" "''" ":9" "9``" "/-" "/=" "sb" "3b" nil ".." + nil "1T" "1H" nil nil nil "LRM" "RLM" "-" "-" + "-" "--" "---" "===" "!2" "=2" "'" "'" ".9" "9'" + "\"" "\"" ":9" "9``" "/-" "/=" "sb" "3b" nil ".." "..." ".-" "LSep" "PSep" "LR[" "RL[" "PDF" "LRO" "RLO" 255 "%o" "%oo" "'" "''" "\"'" "`" "``" "```" ".^" "<," ",>" ":X" "!!" "?!" "'-" nil nil nil nil "-b" - "/f" nil nil nil nil nil nil nil nil nil + "/f" nil nil "??" "?!" "!?" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil @@ -265,17 +265,17 @@ "oK" "AO" nil nil "Est" nil nil nil nil nil nil "Aleph" "Bet" "Gimel" "Dalet" "=i=" nil nil nil nil nil nil nil nil nil nil nil nil nil nil - nil nil nil nil nil nil nil nil nil nil - nil "1/3" "2/3" "1/5" "2/5" "3/5" "4/5" "1/6" "5/6" "1/8" + nil nil nil nil nil nil nil nil "1/7" "1/9" + "1/10" "1/3" "2/3" "1/5" "2/5" "3/5" "4/5" "1/6" "5/6" "1/8" "3/8" "5/8" "7/8" "1/" ".I" "II" "III" "IV" ".V" "VI" "VII" "VIII" "IX" "X" "XI" "XII" ".L" ".C" ".D" ".M" ".i" "ii" "iii" "iv" ".v" "vi" "vii" "viii" "ix" ".x" - "xi" ".l" ".c" ".d" ".m" "CD" "DD" "CoD" "CI" nil + "xi" "xii" ".l" ".c" ".d" ".m" "CD" "DD" "CoD" "CI" nil nil nil nil nil nil nil nil nil nil - nil "<-" "|^" "->" "|v" "<->" "v|^" "^\\" "/^" "\\v" - "v/" "<-/" "/->" "<~" "~>" "<<-" "|^^" "->>" "|vv" "<-<" - ">->" "<-|" "_|^" "|->" "-|v" "_v|^" "<-?" "?->" "<-o" "o->" - "<~>" "<-/>" nil nil nil nil nil nil nil nil + nil nil "<-" "|^" "->" "|v" "<->" "v|^" "^\\" "/^" + "\\v" "v/" "<-/" "/->" "<~" "~>" "<<-" "|^^" "->>" "|vv" + "<-<" ">->" "<-|" "_|^" "|->" "-|v" "_v|^" "<-?" "?->" "<-o" + "o->" "<~>" "<-/>" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil "<=/" "<=/>" "/=>" "<=" "||^" "=>" "||v" @@ -299,7 +299,7 @@ "~<'" "`>~" "/<'" "/`>" "(C" ")C" "/(C" "/)C" "(_" ")_" "/(_" "/)_" nil nil nil nil nil nil nil nil nil nil nil "0+" "0-" "0x" "0/" "0." "0o" "0*" - "0=" "0_" nil nil nil nil "|T" "T|" "-T" "_T" + "0=" "0_" nil nil nil nil "|-" "-|" "-T" "_T" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil "-,-" nil "XOR" "NAND" "NOR" nil nil nil nil nil nil @@ -357,8 +357,10 @@ "M-o" "N-o" "O-o" "P-o" "Q-o" "R-o" "S-o" "T-o" "U-o" "V-o" "W-o" "X-o" "Y-o" "Z-o" "a-o" "b-o" "c-o" "d-o" "e-o" "f-o" "g-o" "h-o" "i-o" "j-o" "k-o" "l-o" "m-o" "n-o" "o-o" "p-o" - "q-o" "r-o" "s-o" "t-o" "u-o" "v-o" "w-o" "x-o" "y-o" "z-o" - "0-o" ] + "q-o" "r-o" "s-o" "t-o" "u-o" "v-o" "w-o" "x-o" "y-o" "z-o" "0-o" ] + ) + (9733 9734 + ["-!-" "-*-"] ) ) diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el index e737131d5bfc..21bba480d020 100644 --- a/lisp/term/ns-win.el +++ b/lisp/term/ns-win.el @@ -1,4 +1,4 @@ -;;; ns-win.el --- lisp side of interface with NeXT/Open/GNUstep/MacOS X window system -*- lexical-binding: t -*- +;;; ns-win.el --- lisp side of interface with NeXT/Open/GNUstep/macOS window system -*- lexical-binding: t -*- ;; Copyright (C) 1993-1994, 2005-2016 Free Software Foundation, Inc. @@ -41,7 +41,7 @@ ;;; Code: (eval-when-compile (require 'cl-lib)) (or (featurep 'ns) - (error "%s: Loading ns-win.el but not compiled for GNUstep/MacOS" + (error "%s: Loading ns-win.el but not compiled for GNUstep/macOS" (invocation-name))) ;; Documentation-purposes only: actually loaded in loadup.el. @@ -54,7 +54,7 @@ (require 'ucs-normalize) (defgroup ns nil - "GNUstep/Mac OS X specific features." + "GNUstep/macOS specific features." :group 'environment) ;;;; Command line argument handling. @@ -338,7 +338,7 @@ See `ns-insert-working-text'." (setq ns-working-overlay nil)) -;; OS X file system Unicode UTF-8 NFD (decomposed form) support. +;; macOS file system Unicode UTF-8 NFD (decomposed form) support. (when (eq system-type 'darwin) ;; Used prior to Emacs 25. (define-coding-system-alias 'utf-8-nfd 'utf-8-hfs) @@ -641,7 +641,7 @@ This function has been overloaded in Nextstep.") (set-frame-font ns-input-font)) -;; Default fontset for Mac OS X. This is mainly here to show how a fontset +;; Default fontset for macOS. This is mainly here to show how a fontset ;; can be set up manually. Ordinarily, fontsets are auto-created whenever ;; a font is chosen by (defvar ns-standard-fontset-spec @@ -655,7 +655,7 @@ This function has been overloaded in Nextstep.") ",") "String of fontset spec of the standard fontset. This defines a fontset consisting of the Courier and other fonts that -come with OS X. +come with macOS. See the documentation of `create-fontset-from-fontset-spec' for the format.") (defvar ns-reg-to-script) ; nsfont.m @@ -892,7 +892,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") (setq default-process-coding-system '(utf-8-unix . utf-8-unix))))) - ;; OS X Lion introduces PressAndHold, which is unsupported by this port. + ;; Mac OS X Lion introduces PressAndHold, which is unsupported by this port. ;; See this thread for more details: ;; http://lists.gnu.org/archive/html/emacs-devel/2011-06/msg00505.html (ns-set-resource nil "ApplePressAndHoldEnabled" "NO") diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index 134e3106b7bb..5c56d05a140e 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el @@ -177,12 +177,15 @@ the last file dropped is selected." ;;; make f10 activate the real menubar rather than the mini-buffer menu ;;; navigation feature. - (defun w32-menu-bar-open (&optional frame) +(defun w32-menu-bar-open (&optional frame) "Start key navigation of the menu bar in FRAME. This initially activates the first menu-bar item, and you can then navigate with the arrow keys, select a menu entry with the Return key or cancel with -the Escape key. If FRAME has no menu bar, this function does nothing. +one or two Escape keypresses. (Two Escape keypresses are needed when a +menu was already dropped down by pressing Return.) + +If FRAME has no menu bar, this function does nothing. If FRAME is nil or not given, use the selected frame. If FRAME does not have the menu bar enabled, display a text menu using diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el index e06423ccfddd..880141bda12f 100644 --- a/lisp/term/xterm.el +++ b/lisp/term/xterm.el @@ -71,28 +71,29 @@ string bytes that can be copied is 3/4 of this value." (defconst xterm-paste-ending-sequence "\e[201~" "Characters send by the terminal to end a bracketed paste.") +(defun xterm--pasted-text () + "Handle the rest of a terminal paste operation. +Return the pasted text as a string." + (let ((end-marker-length (length xterm-paste-ending-sequence))) + (with-temp-buffer + (set-buffer-multibyte nil) + (while (not (search-backward xterm-paste-ending-sequence + (- (point) end-marker-length) t)) + (let ((event (read-event nil nil + ;; Use finite timeout to avoid glomming the + ;; event onto this-command-keys. + most-positive-fixnum))) + (when (eql event ?\r) + (setf event ?\n)) + (insert event))) + (let ((last-coding-system-used)) + (decode-coding-region (point-min) (point) (keyboard-coding-system) + t))))) + (defun xterm-paste () "Handle the start of a terminal paste operation." (interactive) - (let* ((end-marker-length (length xterm-paste-ending-sequence)) - (pasted-text (with-temp-buffer - (set-buffer-multibyte nil) - (while (not (search-backward - xterm-paste-ending-sequence - (- (point) end-marker-length) t)) - (let ((event (read-event - nil nil - ;; Use finite timeout to avoid - ;; glomming the event onto - ;; this-command-keys. - most-positive-fixnum))) - (when (eql event ?\r) - (setf event ?\n)) - (insert event))) - (let ((last-coding-system-used)) - (decode-coding-region - (point-min) (point) - (keyboard-coding-system) t)))) + (let* ((pasted-text (xterm--pasted-text)) (interprogram-paste-function (lambda () pasted-text))) (yank))) @@ -770,7 +771,7 @@ We run the first FUNCTION whose STRING matches the input events." ;; Try to find out the type of terminal by sending a "Secondary ;; Device Attributes (DA)" query. (xterm--query "\e[>0c" - ;; Some terminals (like OS X's Terminal.app) respond to + ;; Some terminals (like macOS's Terminal.app) respond to ;; this query as if it were a "Primary Device Attributes" ;; query instead, so we should handle that too. '(("\e[?" . xterm--version-handler) diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index db03a3244a40..0cedf86bb732 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -1000,7 +1000,7 @@ and added as a submenu of the \"Edit\" menu.") (defvar ispell-async-processp (and (fboundp 'delete-process) (fboundp 'process-send-string) (fboundp 'accept-process-output) - ;;(fboundp 'start-process) + ;;(fboundp 'make-process) ;;(fboundp 'set-process-filter) ;;(fboundp 'process-kill-without-query) ) diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el index 3d4854e89d63..aea8e7072ea8 100644 --- a/lisp/textmodes/rst.el +++ b/lisp/textmodes/rst.el @@ -645,7 +645,7 @@ as well but give an additional message." ;; ;; The adjustment function that adorns or rotates a section title. (rst-define-key map [?\C-c ?\C-=] 'rst-adjust [?\C-c ?\C-a t]) - (rst-define-key map [?\C-=] 'rst-adjust) ; Does not work on the Mac OSX and + (rst-define-key map [?\C-=] 'rst-adjust) ; Does not work on macOS and ; on consoles. ;; \C-c \C-a is the keymap for adornments. diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index 3ac68bdf790a..ea7fbf8d4c20 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") @@ -870,7 +869,7 @@ START is the position of the \\ and DELIM is the delimiter char." (set-keymap-parent map text-mode-map) (tex-define-common-keys map) (define-key map "\"" 'tex-insert-quote) - (define-key map "\n" 'tex-terminate-paragraph) + (define-key map "\n" 'tex-handle-newline) (define-key map "\M-\r" 'latex-insert-item) (define-key map "\C-c}" 'up-list) (define-key map "\C-c{" 'tex-insert-braces) @@ -1460,6 +1459,17 @@ area if a mismatch is found." (if failure-point (goto-char failure-point)) (not failure-point))) +(defun tex-handle-newline (inhibit-validation) + "Break a TeX paragraph with two newlines, or continue a comment. +If not in a comment, insert two newlines, breaking a paragraph for TeX, +and check for mismatched braces or $s in the paragraph being terminated +unless prefix arg INHIBIT-VALIDATION is non-nil to inhibit the checking. +Otherwise (in a comment), just insert a single continued comment line." + (interactive "*P") + (if (nth 4 (syntax-ppss)) ; non-nil if point is in a TeX comment + (comment-indent-new-line) + (tex-terminate-paragraph inhibit-validation))) + (defun tex-terminate-paragraph (inhibit-validation) "Insert two newlines, breaking a paragraph for TeX. Check for mismatched braces or $s in paragraph being terminated. diff --git a/lisp/time.el b/lisp/time.el index e0d39b195869..c9f2df382446 100644 --- a/lisp/time.el +++ b/lisp/time.el @@ -108,7 +108,10 @@ A value of nil means 1 <= hh <= 12, and an AM/PM suffix is used." :type 'boolean :group 'display-time) -(defvar display-time-string nil) +(defvar display-time-string nil + "String used in mode lines to display a time string. +It should not be set directly, but is instead updated by the +`display-time' function.") ;;;###autoload(put 'display-time-string 'risky-local-variable t) (defcustom display-time-hook nil @@ -303,9 +306,9 @@ This expression is a list of expressions that can involve the keywords `seconds', all numbers in string form, and `monthname', `dayname', `am-pm', and `time-zone' all alphabetic strings, and `mail' a true/nil value. -For example, the form +For example: - '((substring year -2) \"/\" month \"/\" day + ((substring year -2) \"/\" month \"/\" day \" \" 24-hours \":\" minutes \":\" seconds (if time-zone \" (\") time-zone (if time-zone \")\") (if mail \" Mail\" \"\")) diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 5832e92c5a36..e0e080e76af6 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -235,7 +235,7 @@ request.") 'url-http-proxy-basic-auth-storage)) (url-get-authentication url-http-proxy nil 'any nil)))) (real-fname (url-filename url-http-target-url)) - (host (url-host url-http-target-url)) + (host (url-http--encode-string (url-host url-http-target-url))) (auth (if (cdr-safe (assoc "Authorization" url-http-extra-headers)) nil (url-get-authentication (or @@ -275,22 +275,11 @@ request.") ;; allows us to elide null lines directly, at the cost of making ;; the layout less clear. (setq request - ;; We used to concat directly, but if one of the strings happens - ;; to being multibyte (even if it only contains pure ASCII) then - ;; every string gets converted with `string-MAKE-multibyte' which - ;; turns the 127-255 codes into things like latin-1 accented chars - ;; (it would work right if it used `string-TO-multibyte' instead). - ;; So to avoid the problem we force every string to be unibyte. - (mapconcat - ;; FIXME: Instead of `string-AS-unibyte' we'd want - ;; `string-to-unibyte', so as to properly signal an error if one - ;; of the strings contains a multibyte char. - 'string-as-unibyte - (delq nil - (list + (concat ;; The request (or url-http-method "GET") " " - (if using-proxy (url-recreate-url url-http-target-url) real-fname) + (url-http--encode-string + (if using-proxy (url-recreate-url url-http-target-url) real-fname)) " HTTP/" url-http-version "\r\n" ;; Version of MIME we speak "MIME-Version: 1.0\r\n" @@ -326,7 +315,9 @@ request.") "Accept-encoding: " url-mime-encoding-string "\r\n")) (if url-mime-charset-string (concat - "Accept-charset: " url-mime-charset-string "\r\n")) + "Accept-charset: " + (url-http--encode-string url-mime-charset-string) + "\r\n")) ;; Languages we understand (if url-mime-language-string (concat @@ -341,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))) @@ -365,10 +357,18 @@ request.") "\r\n" ;; Any data url-http-data)) - "")) + ;; Bug#23750 + (unless (= (string-bytes request) + (length request)) + (error "Multibyte text in HTTP request: %s" request)) (url-http-debug "Request is: \n%s" request) request)) +(defun url-http--encode-string (s) + (if (multibyte-string-p s) + (encode-coding-string s 'us-ascii) + s)) + ;; Parsing routines (defun url-http-clean-headers () "Remove trailing \r from header lines. @@ -1195,17 +1195,20 @@ the end of the document." "Retrieve URL via HTTP asynchronously. URL must be a parsed URL. See `url-generic-parse-url' for details. -When retrieval is completed, execute the function CALLBACK, passing it -an updated value of CBARGS as arguments. The first element in CBARGS -should be a plist describing what has happened so far during the -request, as described in the docstring of `url-retrieve' (if in -doubt, specify nil). +When retrieval is completed, execute the function CALLBACK, +passing it an updated value of CBARGS as arguments. The first +element in CBARGS should be a plist describing what has happened +so far during the request, as described in the docstring of +`url-retrieve' (if in doubt, specify nil). The current buffer +then CALLBACK is executed is the retrieval buffer. Optional arg RETRY-BUFFER, if non-nil, specifies the buffer of a previous `url-http' call, which is being re-attempted. Optional arg GATEWAY-METHOD specifies the gateway to be used, -overriding the value of `url-gateway-method'." +overriding the value of `url-gateway-method'. + +The return value of this function is the retrieval buffer." (cl-check-type url vector "Need a pre-parsed URL.") (let* ((host (url-host (or url-using-proxy url))) (port (url-port (or url-using-proxy url))) diff --git a/lisp/url/url.el b/lisp/url/url.el index 4837ba07f7e9..91adada5e857 100644 --- a/lisp/url/url.el +++ b/lisp/url/url.el @@ -225,7 +225,10 @@ URL-encoded before it's used." "Retrieve URL synchronously. Return the buffer containing the data, or nil if there are no data associated with it (the case for dired, info, or mailto URLs that need -no further processing). URL is either a string or a parsed URL." +no further processing). URL is either a string or a parsed URL. +If SILENT is non-nil, don't display progress reports and similar messages. +If INHIBIT-COOKIES is non-nil, cookies will neither be stored nor sent +to the server." (url-do-setup) (let ((retrieval-done nil) diff --git a/lisp/vc/diff.el b/lisp/vc/diff.el index a8c3fcca2fce..6b316c4073c6 100644 --- a/lisp/vc/diff.el +++ b/lisp/vc/diff.el @@ -167,7 +167,7 @@ Possible values are: (setq default-directory thisdir) (let ((inhibit-read-only t)) (insert command "\n")) - (if (and (not no-async) (fboundp 'start-process)) + (if (and (not no-async) (fboundp 'make-process)) (let ((proc (start-process "Diff" buf shell-file-name shell-command-switch command))) (set-process-filter proc 'diff-process-filter) diff --git a/lisp/vc/ediff-util.el b/lisp/vc/ediff-util.el index 5419d4778107..10b84fa88517 100644 --- a/lisp/vc/ediff-util.el +++ b/lisp/vc/ediff-util.el @@ -2625,6 +2625,8 @@ temporarily reverses the meaning of this variable." "Kill buffers A, B, and, possibly, C, if these buffers aren't modified. In merge jobs, buffer C is not deleted here, but rather according to ediff-quit-merge-hook. +ASK non-nil means ask the user whether to keep each unmodified buffer, unless +KEEP-VARIANTS is non-nil, in which case buffers are never killed. A side effect of cleaning up may be that you should be careful when comparing the same buffer in two separate Ediff sessions: quitting one of them might delete this buffer in another session as well." diff --git a/lisp/vc/pcvs.el b/lisp/vc/pcvs.el index 573feedd047d..b0ad5ea588d4 100644 --- a/lisp/vc/pcvs.el +++ b/lisp/vc/pcvs.el @@ -551,7 +551,7 @@ If non-nil, NEW means to create a new buffer no matter what." ;; is accessed via SSH, a bad interaction between libc, ;; CVS and SSH can lead to garbled output. ;; It might be a glibc-specific problem (but it can also happens - ;; under Mac OS X, it seems). + ;; under macOS, it seems). ;; It seems that using a pty can help circumvent the problem, ;; but at the cost of screwing up when the process thinks it ;; can ask for user input (such as password or host-key @@ -696,7 +696,7 @@ SUBDIR is the subdirectory (if any) where this command was run. OLD-FIS is the list of fileinfos on which the cvs command was applied and which should be considered up-to-date if they are missing from the output." (when (eq system-type 'darwin) - ;; Fixup the ^D^H^H inserted at beginning of buffer sometimes on MacOSX + ;; Fixup the ^D^H^H inserted at beginning of buffer sometimes on macOS ;; because of the call to `process-send-eof'. (save-excursion (goto-char (point-min)) diff --git a/lisp/vc/vc-cvs.el b/lisp/vc/vc-cvs.el index 2dca708dc38f..3cfe8ee56a2f 100644 --- a/lisp/vc/vc-cvs.el +++ b/lisp/vc/vc-cvs.el @@ -121,7 +121,7 @@ This is only meaningful if you don't use the implicit checkout model :version "21.1" :group 'vc-cvs) -(defcustom vc-stay-local 'only-file +(defcustom vc-cvs-stay-local 'only-file "Non-nil means use local operations when possible for remote repositories. This avoids slow queries over the network and instead uses heuristics and past information to determine the current status of a file. @@ -131,11 +131,11 @@ server, but heuristics will be used to determine the status for all other VC operations. The value can also be a regular expression or list of regular -expressions to match against the host name of a repository; then VC -only stays local for hosts that match it. Alternatively, the value -can be a list of regular expressions where the first element is the -symbol `except'; then VC always stays local except for hosts matched -by these regular expressions." +expressions to match against the host name of a repository; then +vc-cvs only stays local for hosts that match it. Alternatively, +the value can be a list of regular expressions where the first +element is the symbol `except'; then vc-cvs always stays local +except for hosts matched by these regular expressions." :type '(choice (const :tag "Always stay local" t) (const :tag "Only for file operations" only-file) (const :tag "Don't stay local" nil) @@ -789,8 +789,7 @@ If FILE is a list of files, return non-nil if any of them individually should stay local." (if (listp file) (delq nil (mapcar (lambda (arg) (vc-cvs-stay-local-p arg)) file)) - (let* ((sym (vc-make-backend-sym 'CVS 'stay-local)) - (stay-local (if (boundp sym) (symbol-value sym) vc-stay-local))) + (let ((stay-local vc-cvs-stay-local)) (if (symbolp stay-local) stay-local (let ((dirname (if (file-directory-p file) (directory-file-name file) @@ -939,103 +938,32 @@ state." (t 'edited)))))))) (defun vc-cvs-after-dir-status (update-function) - ;; Heavily inspired by vc-cvs-parse-status. AKA a quick hack. - ;; This needs a lot of testing. - (let ((status nil) - (status-str nil) - (file nil) - (result nil) - (missing nil) - (ignore-next nil) - (subdir default-directory)) + (let ((result nil) + (translation '((?? . unregistered) + (?A . added) + (?C . conflict) + (?M . edited) + (?P . needs-merge) + (?R . removed) + (?U . needs-update)))) (goto-char (point-min)) - (while - ;; Look for either a file entry, an unregistered file, or a - ;; directory change. - (re-search-forward - "\\(^=+\n\\([^=c?\n].*\n\\|\n\\)+\\)\\|\\(\\(^?? .*\n\\)+\\)\\|\\(^cvs status: \\(Examining\\|nothing\\) .*\n\\)" - nil t) - ;; FIXME: get rid of narrowing here. - (narrow-to-region (match-beginning 0) (match-end 0)) - (goto-char (point-min)) - ;; The subdir - (when (looking-at "cvs status: Examining \\(.+\\)") - (setq subdir (expand-file-name (match-string 1)))) - ;; Unregistered files - (while (looking-at "? \\(.*\\)") - (setq file (file-relative-name - (expand-file-name (match-string 1) subdir))) - (push (list file 'unregistered) result) - (forward-line 1)) - (when (looking-at "cvs status: nothing known about") - ;; We asked about a non existent file. The output looks like this: - - ;; cvs status: nothing known about `lisp/v.diff' - ;; =================================================================== - ;; File: no file v.diff Status: Unknown - ;; - ;; Working revision: No entry for v.diff - ;; Repository revision: No revision control file - ;; - - ;; Due to narrowing in this iteration we only see the "cvs - ;; status:" line, so just set a flag so that we can ignore the - ;; file in the next iteration. - (setq ignore-next t)) - ;; A file entry. - (when (re-search-forward "^File: \\(no file \\)?\\(.*[^ \t]\\)[ \t]+Status: \\(.*\\)" nil t) - (setq missing (match-string 1)) - (setq file (file-relative-name - (expand-file-name (match-string 2) subdir))) - (setq status-str (match-string 3)) - (setq status - (cond - ((string-match "Up-to-date" status-str) 'up-to-date) - ((string-match "Locally Modified" status-str) 'edited) - ((string-match "Needs Merge" status-str) 'needs-merge) - ((string-match "Needs \\(Checkout\\|Patch\\)" status-str) - (if missing 'missing 'needs-update)) - ((string-match "Locally Added" status-str) 'added) - ((string-match "Locally Removed" status-str) 'removed) - ((string-match "File had conflicts " status-str) 'conflict) - ((string-match "Unknown" status-str) 'unregistered) - (t 'edited))) - (if ignore-next - (setq ignore-next nil) - (unless (eq status 'up-to-date) - (push (list file status) result)))) - (goto-char (point-max)) - (widen)) - (funcall update-function result)) - ;; Alternative implementation: use the "update" command instead of - ;; the "status" command. - ;; (let ((result nil) - ;; (translation '((?? . unregistered) - ;; (?A . added) - ;; (?C . conflict) - ;; (?M . edited) - ;; (?P . needs-merge) - ;; (?R . removed) - ;; (?U . needs-update)))) - ;; (goto-char (point-min)) - ;; (while (not (eobp)) - ;; (if (looking-at "^[ACMPRU?] \\(.*\\)$") - ;; (push (list (match-string 1) - ;; (cdr (assoc (char-after) translation))) - ;; result) - ;; (cond - ;; ((looking-at "cvs update: warning: \\(.*\\) was lost") - ;; ;; Format is: - ;; ;; cvs update: warning: FILENAME was lost - ;; ;; U FILENAME - ;; (push (list (match-string 1) 'missing) result) - ;; ;; Skip the "U" line - ;; (forward-line 1)) - ;; ((looking-at "cvs update: New directory `\\(.*\\)' -- ignored") - ;; (push (list (match-string 1) 'unregistered) result)))) - ;; (forward-line 1)) - ;; (funcall update-function result))) - ) + (while (not (eobp)) + (if (looking-at "^[ACMPRU?] \\(.*\\)$") + (push (list (match-string 1) + (cdr (assoc (char-after) translation))) + result) + (cond + ((looking-at "cvs update: warning: \\(.*\\) was lost") + ;; Format is: + ;; cvs update: warning: FILENAME was lost + ;; U FILENAME + (push (list (match-string 1) 'missing) result) + ;; Skip the "U" line + (forward-line 1)) + ((looking-at "cvs update: New directory `\\(.*\\)' -- ignored") + (push (list (match-string 1) 'unregistered) result)))) + (forward-line 1)) + (funcall update-function result))) ;; Based on vc-cvs-dir-state-heuristic from Emacs 22. ;; FIXME does not mention unregistered files. @@ -1072,16 +1000,12 @@ state." Query all files in DIR if files is nil." (let ((local (vc-cvs-stay-local-p dir))) (if (and (not files) local (not (eq local 'only-file))) - (vc-cvs-dir-status-heuristic dir update-function) - (if (not files) (setq files (vc-expand-dirs (list dir) 'CVS))) - (vc-cvs-command (current-buffer) 'async files "-f" "status") - ;; Alternative implementation: use the "update" command instead of - ;; the "status" command. - ;; (vc-cvs-command (current-buffer) 'async - ;; (file-relative-name dir) - ;; "-f" "-n" "update" "-d" "-P") - (vc-run-delayed - (vc-cvs-after-dir-status update-function))))) + (vc-cvs-dir-status-heuristic dir update-function)) + (vc-cvs-command (current-buffer) 'async + files + "-f" "-n" "-q" "update") + (vc-run-delayed + (vc-cvs-after-dir-status update-function)))) (defun vc-cvs-file-to-string (file) "Read the content of FILE and return it as a string." diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 5d06bf7f3572..9eac5b26f033 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -278,7 +278,7 @@ Should be consistent with the Git config value i18n.logOutputEncoding." (defun vc-git-mode-line-string (file) "Return a string for `vc-mode-line' to put in the mode line for FILE." - (let* ((rev (vc-working-revision file)) + (let* ((rev (vc-working-revision file 'Git)) (disp-rev (or (vc-git--symbolic-ref file) (substring rev 0 7))) (def-ml (vc-default-mode-line-string 'Git file)) @@ -1423,7 +1423,8 @@ The difference to vc-do-command is that this function always invokes (let ((coding-system-for-read (or coding-system-for-read vc-git-log-output-coding-system)) (coding-system-for-write - (or coding-system-for-write vc-git-commits-coding-system))) + (or coding-system-for-write vc-git-commits-coding-system)) + (process-environment (cons "GIT_DIR" process-environment))) (apply 'vc-do-command (or buffer "*vc*") okstatus vc-git-program ;; http://debbugs.gnu.org/16897 (unless (and (not (cdr-safe file-or-list)) @@ -1451,6 +1452,7 @@ The difference to vc-do-command is that this function always invokes (coding-system-for-write (or coding-system-for-write vc-git-commits-coding-system)) (process-environment (cons "PAGER=" process-environment))) + (push "GIT_DIR" process-environment) (apply 'process-file vc-git-program nil buffer nil command args))) (defun vc-git--out-ok (command &rest args) diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index 25b41e34e645..2ddf4e19e1f7 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -552,7 +552,7 @@ ;; argument, since on no system since RCS has setting the initial ;; revision been even possible, let alone sane. ;; -;; INCOMPATIBLE CHANGE: In older versions of the API, vc-diff did +;; - INCOMPATIBLE CHANGE: In older versions of the API, vc-diff did ;; not take an async-mode flag as a fourth optional argument. (This ;; change eliminated a particularly ugly global.) ;; @@ -563,12 +563,12 @@ ;; SVN.) ;; ;; - INCOMPATIBLE CHANGE: The old fourth 'default-state' argument of -;; vc-dir-status-files is gone; none of the back ends actually used it. +;; dir-status-files is gone; none of the back ends actually used it. ;; -;; - vc-dir-status is no longer a public method; it has been replaced -;; by vc-dir-status-files. +;; - dir-status is no longer a public method; it has been replaced by +;; dir-status-files. ;; -;; - vc-state-heuristic is no longer a public method (the CVS backend +;; - state-heuristic is no longer a public method (the CVS backend ;; retains it as a private one). ;; ;; - the vc-mistrust-permissions configuration variable is gone; the @@ -577,8 +577,8 @@ ;; only affected back ends were SCCS and RCS. ;; ;; - vc-stay-local-p and repository-hostname are no longer part -;; of the public API. The vc-stay-local configuration variable -;; remains but only affects the CVS back end. +;; of the public API. The vc-cvs-stay-local configuration variable +;; remains and only affects the CVS back end. ;; ;; - The init-revision function and the default-initial-revision ;; variable are gone. These have't made sense on anything shipped @@ -959,7 +959,11 @@ use." If FILE is already registered, return the backend of FILE. If FILE is not registered, then the first backend in `vc-handled-backends' that declares itself -responsible for FILE is returned." +responsible for FILE is returned. + +Note that if FILE is a symbolic link, it will not be resolved -- +the responsible backend system for the symbolic link itself will +be reported." (or (and (not (file-directory-p file)) (vc-backend file)) (catch 'found ;; First try: find a responsible backend. If this is for registration, @@ -2393,7 +2397,7 @@ When called interactively with a prefix argument, prompt for REMOTE-LOCATION." "Show the history of the region FROM..TO." (interactive "r") (let* ((lfrom (line-number-at-pos from)) - (lto (line-number-at-pos to)) + (lto (line-number-at-pos (1- to))) (file buffer-file-name) (backend (vc-backend file)) (buf (get-buffer-create "*VC-history*"))) diff --git a/lisp/view.el b/lisp/view.el index 830073a0639d..ff7d2c9deb19 100644 --- a/lisp/view.el +++ b/lisp/view.el @@ -429,7 +429,7 @@ x exchanges point and mark. Mark ring is pushed at start of every successful search and when jump to line occurs. The mark is set on jump to buffer start or end. \\[point-to-register] save current position in character register. -' go to position saved in character register. +\\=' go to position saved in character register. s do forward incremental search. r do reverse incremental search. \\[View-search-regexp-forward] searches forward for regular expression, starting after current page. diff --git a/lisp/w32-fns.el b/lisp/w32-fns.el index 472355741b81..0f31c4a668d8 100644 --- a/lisp/w32-fns.el +++ b/lisp/w32-fns.el @@ -31,9 +31,9 @@ ;;;; Function keys -(declare-function set-message-beep "w32fns.c") -(declare-function w32-get-locale-info "w32proc.c") -(declare-function w32-get-valid-locale-ids "w32proc.c") +(declare-function set-message-beep "w32fns.c" (sound)) +(declare-function w32-get-locale-info "w32proc.c" (lcid &optional longform)) +(declare-function w32-get-valid-locale-ids "w32proc.c" ()) ;; Map all versions of a filename (8.3, longname, mixed case) to the ;; same buffer. diff --git a/lisp/whitespace.el b/lisp/whitespace.el index 53bf363daa4c..0f6b8df03def 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el @@ -528,14 +528,14 @@ these values is: 2. space-before-tab::tab 3. space-before-tab::space -So, for example, if indentation and indentation::space are -included in `whitespace-style' list, the indentation value is -evaluated instead of indentation::space value. +For example, if `indentation' and `indentation::space' are +included in `whitespace-style', the `indentation' value is used +instead of the `indentation::space' value. -One reason for not visualize spaces via faces (if `face' is not -included in `whitespace-style') is to use exclusively for -cleaning up a buffer. See `whitespace-cleanup' and -`whitespace-cleanup-region' for documentation. +One reason to not use faces to visualize spaces (i.e., not +include `face' in `whitespace-style') is to use `whitespace-mode' +only for cleaning up a buffer. See `whitespace-cleanup' and +`whitespace-cleanup-region'. See also `whitespace-display-mappings' for documentation." :type '(set :tag "Kind of Blank" @@ -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 diff --git a/lisp/window.el b/lisp/window.el index fd0fcc975bea..8505bef6b12d 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -1383,10 +1383,21 @@ ignore width restrictions for WINDOW." (let* ((char-size (frame-char-size window t)) (fringes (window-fringes window)) (margins (window-margins window)) + ;; Let the 'min-margins' parameter override the actual + ;; widths of the margins. We allow any number to + ;; replace the values specified by `window-margins'. + ;; See bug#24193 for the rationale of this parameter. + (min-margins (window-parameter window 'min-margins)) + (left-min-margin (and min-margins + (numberp (car min-margins)) + (car min-margins))) + (right-min-margin (and min-margins + (numberp (cdr min-margins)) + (cdr min-margins))) (pixel-width (+ (window-safe-min-size window t t) - (* (or (car margins) 0) char-size) - (* (or (cdr margins) 0) char-size) + (* (or left-min-margin (car margins) 0) char-size) + (* (or right-min-margin(cdr margins) 0) char-size) (car fringes) (cadr fringes) (window-scroll-bar-width window) (window-right-divider-width window)))) @@ -4774,7 +4785,7 @@ frame. The selected window is not changed by this function." (window-sizable-p parent (- (+ new-pixel-size divider-width)) horizontal (setq ignore 'preserved) t)) - (error "Window %s too small for splitting (1)" parent))) + (error "Window %s too small for splitting" parent))) ((and (> (+ new-pixel-size divider-width (window-min-size window horizontal nil t)) old-pixel-size) @@ -4783,7 +4794,7 @@ frame. The selected window is not changed by this function." window horizontal (setq ignore 'preserved) t)) old-pixel-size)) ;; SIZE unspecified, no resizing. - (error "Window %s too small for splitting (2)" window)))) + (error "Window %s too small for splitting" window)))) ((and (>= pixel-size 0) (or (>= pixel-size old-pixel-size) (< new-pixel-size @@ -4791,7 +4802,7 @@ frame. The selected window is not changed by this function." ;; SIZE specified as new size of old window. If the new size ;; is larger than the old size or the size of the new window ;; would be less than the safe minimum, signal an error. - (error "Window %s too small for splitting (3)" window)) + (error "Window %s too small for splitting" window)) (resize ;; SIZE specified, resizing. (unless (or (window-sizable-p @@ -4801,13 +4812,13 @@ frame. The selected window is not changed by this function." parent (- (+ new-pixel-size divider-width)) horizontal (setq ignore 'preserved) t)) ;; If we cannot resize the parent give up. - (error "Window %s too small for splitting (4)" parent))) + (error "Window %s too small for splitting" parent))) ((or (< new-pixel-size (window-safe-min-pixel-size window horizontal)) (< (- old-pixel-size new-pixel-size) (window-safe-min-pixel-size window horizontal))) ;; SIZE specification violates minimum size restrictions. - (error "Window %s too small for splitting (5)" window))) + (error "Window %s too small for splitting" window))) (window--resize-reset frame horizontal) @@ -8495,10 +8506,10 @@ WINDOWS is a list of windows associated with PROCESS. REDUCER is a two-argument function used to combine the widths and heights of the given windows." (when windows - (let ((width (window-body-width (car windows))) + (let ((width (window-max-chars-per-line (car windows))) (height (window-body-height (car windows)))) (dolist (window (cdr windows)) - (setf width (funcall reducer width (window-body-width window))) + (setf width (funcall reducer width (window-max-chars-per-line window))) (setf height (funcall reducer height (window-body-height window)))) (cons width height)))) @@ -8520,38 +8531,40 @@ A window is associated with a process if that window is displaying that processes's buffer." (let ((processes (process-list)) (process-windows nil)) - (walk-windows - (lambda (window) - (let ((buffer (window-buffer window)) - (iter processes)) - (while (let ((process (car iter))) - (if (and (process-live-p process) - (eq buffer (process-buffer process))) - (let ((procwin (assq process process-windows))) - ;; Add this window to the list of windows - ;; displaying process. - (if procwin - (push window (cdr procwin)) - (push (list process window) process-windows)) - ;; We found our process for this window, so - ;; stop iterating over the process list. - nil) - (setf iter (cdr iter))))))) - 1 t) + (if processes + (walk-windows + (lambda (window) + (let ((buffer (window-buffer window)) + (iter processes)) + (while (let ((process (car iter))) + (if (and (process-live-p process) + (eq buffer (process-buffer process))) + (let ((procwin (assq process process-windows))) + ;; Add this window to the list of windows + ;; displaying process. + (if procwin + (push window (cdr procwin)) + (push (list process window) process-windows)) + ;; We found our process for this window, so + ;; stop iterating over the process list. + nil) + (setf iter (cdr iter))))))) + 1 t)) process-windows)) (defun window--adjust-process-windows () "Update process window sizes to match the current window configuration." - (dolist (procwin (window--process-window-list)) - (let ((process (car procwin))) - (with-demoted-errors "Error adjusting window size: %S" - (with-current-buffer (process-buffer process) - (let ((size (funcall - (or (process-get process 'adjust-window-size-function) - window-adjust-process-window-size-function) - process (cdr procwin)))) - (when size - (set-process-window-size process (cdr size) (car size))))))))) + (when (fboundp 'process-list) + (dolist (procwin (window--process-window-list)) + (let ((process (car procwin))) + (with-demoted-errors "Error adjusting window size: %S" + (with-current-buffer (process-buffer process) + (let ((size (funcall + (or (process-get process 'adjust-window-size-function) + window-adjust-process-window-size-function) + process (cdr procwin)))) + (when size + (set-process-window-size process (cdr size) (car size)))))))))) (add-hook 'window-configuration-change-hook 'window--adjust-process-windows) diff --git a/lisp/winner.el b/lisp/winner.el index 4b277008d784..9a6f5d5190be 100644 --- a/lisp/winner.el +++ b/lisp/winner.el @@ -346,7 +346,19 @@ You may want to include buffer names such as *Help*, *Apropos*, ;;;###autoload -(define-minor-mode winner-mode nil :global t ; let d-m-m make the doc +(define-minor-mode winner-mode + "Toggle Winner mode on or off. +With a prefix argument ARG, enable Winner mode if ARG is +positive, and disable it otherwise. If called from Lisp, enable +the mode if ARG is omitted or nil, and toggle it if ARG is ‘toggle’. + +Winner mode is a global minor mode that records the changes in +the window configuration (i.e. how the frames are partitioned +into windows) so that the changes can be \"undone\" using the +command `winner-undo'. By default this one is bound to the key +sequence `C-c '. If you change your mind (while undoing), +you can press `C-c ' (calling `winner-redo')." + :global t (if winner-mode (progn (add-hook 'window-configuration-change-hook 'winner-change-fun) diff --git a/lisp/xwidget.el b/lisp/xwidget.el index 19f631f17f35..7a0ca8bd5518 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -34,13 +34,6 @@ (require 'cl-lib) (require 'bookmark) -(defcustom xwidget-webkit-scroll-behavior 'native - "Scrolling behavior of the webkit instance. -The possible values are: `native' or `image'." - :version "25.1" - :group 'frames ; TODO add xwidgets group if more options are added - :type '(choice (const native) (const image))) - (declare-function make-xwidget "xwidget.c" (type title width height arguments &optional buffer)) (declare-function xwidget-set-adjustment "xwidget.c" @@ -141,40 +134,24 @@ Interactively, URL defaults to the string looking like a url around point." "Keymap for `xwidget-webkit-mode'.") (defun xwidget-webkit-scroll-up () - "Scroll webkit up. -Depending on the value of `xwidget-webkit-scroll-behavior', -this scrolls in `native' fashion, or like `image-mode' would." + "Scroll webkit up." (interactive) - (if (eq xwidget-webkit-scroll-behavior 'native) - (xwidget-set-adjustment (xwidget-webkit-last-session) 'vertical t 50) - (image-scroll-up))) + (xwidget-set-adjustment (xwidget-webkit-last-session) 'vertical t 50)) (defun xwidget-webkit-scroll-down () - "Scroll webkit down. -Depending on the value of `xwidget-webkit-scroll-behavior', -this scrolls in `native' fashion, or like `image-mode' would." + "Scroll webkit down." (interactive) - (if (eq xwidget-webkit-scroll-behavior 'native) - (xwidget-set-adjustment (xwidget-webkit-last-session) 'vertical t -50) - (image-scroll-down))) + (xwidget-set-adjustment (xwidget-webkit-last-session) 'vertical t -50)) (defun xwidget-webkit-scroll-forward () - "Scroll webkit forwards. -Depending on the value of `xwidget-webkit-scroll-behavior', -this scrolls in `native' fashion, or like `image-mode' would." + "Scroll webkit forwards." (interactive) - (if (eq xwidget-webkit-scroll-behavior 'native) - (xwidget-set-adjustment (xwidget-webkit-last-session) 'horizontal t 50) - (xwidget-webkit-scroll-forward))) ; FIXME infloop! + (xwidget-set-adjustment (xwidget-webkit-last-session) 'horizontal t 50)) (defun xwidget-webkit-scroll-backward () - "Scroll webkit backwards. -Depending on the value of `xwidget-webkit-scroll-behavior', -this scrolls in `native' fashion, or like `image-mode' would." + "Scroll webkit backwards." (interactive) - (if (eq xwidget-webkit-scroll-behavior 'native) - (xwidget-set-adjustment (xwidget-webkit-last-session) 'horizontal t -50) - (xwidget-webkit-scroll-backward))) ; FIXME infloop! + (xwidget-set-adjustment (xwidget-webkit-last-session) 'horizontal t -50)) ;; The xwidget event needs to go into a higher level handler @@ -417,9 +394,7 @@ For example, use this to display an anchor." (defun xwidget-webkit-adjust-size-dispatch () "Adjust size according to mode." (interactive) - (if (eq xwidget-webkit-scroll-behavior 'native) - (xwidget-webkit-adjust-size-to-window) - (xwidget-webkit-adjust-size-to-content)) + (xwidget-webkit-adjust-size-to-window) ;; The recenter is intended to correct a visual glitch. ;; It errors out if the buffer isn't visible, but then we don't get ;; the glitch, so silence errors. diff --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp index 71646821a593..d0ab8afa2186 100644 --- a/msdos/sed1v2.inp +++ b/msdos/sed1v2.inp @@ -15,32 +15,24 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # ---------------------------------------------------------------------- -s/^#.*// s/^[ \f\t][ \f\t]*$// s/^ / / s/\.h\.in/.h-in/ -/^MAKE *=/s/^/# / /^SHELL *=/s/^/# / /^srcdir *=/s/@[^@\n]*@/./ -/^abs_builddir *=/s|@abs_builddir@|../src| -/^VPATH *=/s/@[^@\n]*@/./ -/^CC *=/s/@[^@\n]*@/gcc/ -/^CPP *=/s/@[^@\n]*@/gcc -e/ +/^top_srcdir *=/s/@[^@\n]*@/../ +/^CC *=/s/@[^@\n]*@/gcc -std=gnu99/ /^CFLAGS *=/s/@[^@\n]*@/-O2 -gcoff/ /^ALL_CFLAGS *=/s/@[^@\n]*@//g /^ALL_CFLAGS *=/s/ -I\.//g /^CPPFLAGS *=/s|@[^@\n]*@|-I../msdos| /^LDFLAGS *=/s/@[^@\n]*@// -/^LD_FIRSTFLAG *=/s/@[^@\n]*@// -/^LIBS *=/s/@[^@\n]*@// -/^LIBES *=/,/^ *$/ { - s/@[^@\n]*@//g -} /^LIBOBJS *=/s/@[^@\n]*@// /^C_SWITCH_MACHINE *=/s/@C_SWITCH_MACHINE@// /^C_SWITCH_SYSTEM *=/s/@C_SWITCH_SYSTEM@// /^GNUSTEP_CFLAGS *=/s/@GNUSTEP_CFLAGS@// /^C_SWITCH_X_SITE *=/s/@C_SWITCH_X_SITE@// +/^PNG_CFLAGS *=/s/@PNG_CFLAGS@// /^WARN_CFLAGS *=/s/@WARN_CFLAGS@// /^WERROR_CFLAGS *=/s/@WERROR_CFLAGS@// /^PROFILING_CFLAGS *=/s/@PROFILING_CFLAGS@// @@ -64,6 +56,7 @@ s/ *@LIBPNG@// s/ *@LIBGIF@// s/ *@LIBXPM@// /^XFT_LIBS *=/s/@XFT_LIBS@// +/^XCB_LIBS *=/s/@XCB_LIBS@// /^FONTCONFIG_CFLAGS *=/s/@FONTCONFIG_CFLAGS@// /^FONTCONFIG_LIBS *=/s/@FONTCONFIG_LIBS@// /^FREETYPE_CFLAGS *=/s/@FREETYPE_CFLAGS@// @@ -78,7 +71,8 @@ s/ *@LIBXPM@// /^NOTIFY_OBJ *=/s/@NOTIFY_OBJ@// /^SETTINGS_CFLAGS *=/s/@SETTINGS_CFLAGS@// /^SETTINGS_LIBS *=/s/@SETTINGS_LIBS@// -/^GFILENOTIFY_LIBS *=/s/@GFILENOTIFY_LIBS@// +/^NOTIFY_LIBS *=/s/@NOTIFY_LIBS@// +/^NOTIFY_CFLAGS *=/s/@NOTIFY_CFLAGS@// /^GTK_OBJ *=/s/@GTK_OBJ@// /^LIBS_TERMCAP *=/s/@LIBS_TERMCAP@// /^TERMCAP_OBJ *=/s/@TERMCAP_OBJ@/termcap.o tparam.o/ @@ -92,7 +86,7 @@ s/ *@LIBXPM@// /^XGSELOBJ *=/s/@XGSELOBJ@// /^TOOLKIT_LIBW *=/s/@TOOLKIT_LIBW@// /^LIBSOUND *=/s/@LIBSOUND@// -/^LIBS_GNUSTEP *=/s/@LIBS_GNUSTEP@// +/^LIBS_GNUSTEP *=/s/=.*$/=/ /^CFLAGS_SOUND *=/s/@CFLAGS_SOUND@// /^RSVG_LIBS *=/s/@RSVG_LIBS@// /^RSVG_CFLAGS *=/s/@RSVG_CFLAGS@// @@ -101,15 +95,23 @@ s/ *@LIBXPM@// /^LIBXML2_LIBS *=/s/@LIBXML2_LIBS@// /^LIBXML2_CFLAGS *=/s/@LIBXML2_CFLAGS@// /^WIDGET_OBJ *=/s/@WIDGET_OBJ@// +/^XWIDGETS_OBJ *=/s/@XWIDGETS_OBJ@// +/^WEBKIT_LIBS *=/s/@WEBKIT_LIBS@// +/^WEBKIT_CFLAGS *=/s/@WEBKIT_CFLAGS@// +/^CAIRO_LIBS *=/s/@CAIRO_LIBS@// +/^CAIRO_CFLAGS *=/s/@CAIRO_CFLAGS@// +/^XFIXES_LIBS *=/s/@XFIXES_LIBS@// +/^XFIXES_CFLAGS *=/s/@XFIXES_CFLAGS@// /^CYGWIN_OBJ *=/s/@CYGWIN_OBJ@// /^WINDOW_SYSTEM_OBJ *=/s/@WINDOW_SYSTEM_OBJ@// /^MSDOS_OBJ *=/s/= */= dosfns.o msdos.o w16select.o/ /^NS_OBJ *=/s/@NS_OBJ@// /^NS_OBJC_OBJ *=/s/@NS_OBJC_OBJ@// -/^GNU_OBJC_CFLAGS*=/s/@GNU_OBJC_CFLAGS@// +/^GNU_OBJC_CFLAGS*=/s/=.*$/=/ /^LIBRESOLV *=/s/@LIBRESOLV@// +/^LIBMODULES *=/s/@LIBMODULES@// +/^MODULES_OBJ *=/s/@MODULES_OBJ@// /^LIBSELINUX_LIBS *=/s/@LIBSELINUX_LIBS@// -/^LIB_PTHREAD_SIGMASK *=/s/@[^@\n]*@// /^LIB_CLOCK_GETTIME *=/s/@[^@\n]*@//g /^LIB_TIMER_TIME *=/s/@[^@\n]*@//g /^LIB_EXECINFO *=/s/@[^@\n]*@//g @@ -145,65 +147,61 @@ s/ *@LIBXPM@// /^W32_LIBS *=/s/@W32_LIBS@// /^version *=/s/@[^@\n]*@// /^EMACSRES *=/s/@EMACSRES@// -/^EMACS_MANIFEST *=/s/@EMACS_MANIFEST@// /^W32_RES_LINK *=/s/@W32_RES_LINK@// /^CM_OBJ *=/s/@CM_OBJ@/cm.o/ /^@SET_MAKE@$/s/@SET_MAKE@// -/^TEMACS_POST_LINK *=/s/@TEMACS_POST_LINK@/stubedit temacs.exe minstack=1024k/ /^ADDSECTION *=/s/@ADDSECTION@// -/^ [ ]*\$(libsrc)\/make-docfile.*>.*\/DOC/s!make-docfile!make-docfile -o $(etc)/DOC! -/^ [ ]*\$(libsrc)\/make-docfile.*>.*gl.tmp/s!make-docfile!make-docfile -o gl.tmp! -/^.\$(libsrc)\/make-doc/s!>.*$!! -/^ [ ]*\$(libsrc)\/make-docfile /s!`[^`]*`!$(lisp); cd ../src! -/^[ ]*$/d -/^\$(leimdir)\/leim-list.el: /s/bootstrap-emacs\$(EXEEXT)/temacs$(EXEEXT) $(BOOTSTRAPEMACS)/ +/^AM_DEFAULT_VERBOSITY *=/s/@AM_DEFAULT_VERBOSITY@/1/ +/^[Aa][Mm]_/s/@AM_V@/$(V)/ +/^[Aa][Mm]_/s/@AM_DEFAULT_V@/$(AM_DEFAULT_VERBOSITY)/ +/^AUTO_DEPEND *=/s/@AUTO_DEPEND@/yes/ +/^PAXCTL_dumped *=/s/=.*$/=/ +/^PAXCTL_notdumped *=/s/=.*$/=/ +/^lisp\.mk:/,/^$/c\ +lisp.mk: $(lispsource)/loadup.el\ + @rm -f $@\ + ${AM_V_GEN}printf 'shortlisp = \\n' > $@\ + ${AM_V_GEN}sed -n 's/^[ \t]*(load "\([^"]*\)".*/\1/p' $< | sed -e "s/$/.elc \/" -e "s/\.el\.elc/.el/" >> $@\ + ${AM_V_GEN}djecho "" >> $@ + +#" + +/^ [ ]*\$(AM_V_at)\$(libsrc)\/make-docfile -d/s!make-docfile!make-docfile -o $(etc)/DOC! +/ > \$(etc)\/DOC *$/s/ >.*$// +/^ [ ]*\$(AM_V_GLOBALS)\$(libsrc)\/make-docfile.*>.*globals.tmp/s!make-docfile!make-docfile -o globals.tmp! +/^ [ ]*\$(AM_V_GLOBALS)\$(libsrc)\/make-doc/s!>.*$!! +/^\$(libsrc)\/make-docfile\$(EXEEXT): /i\ + cd ../src +/^\$(leimdir)\/leim-list.el: /s/bootstrap-emacs\$(EXEEXT)/b-emacs$(EXEEXT)/ /^ if test -f/,/^ fi$/c\ command.com /c if exist .gdbinit rm -f _gdbinit -/^ *test "X\$(PAXCTL)" = X/d -/^ *test "\$(CANNOT_DUMP)" = "yes"/d -/^ if test "\$(CANNOT_DUMP)" =/,/^ else /d -/^ *\$(SETFATTR) -n/d -/^ -\{0,1\} *ln /s/bootstrap-emacs\$(EXEEXT).*$/bootstrap-emacs$(EXEEXT)/ +/^ *ifneq (\$(PAXCTL_notdumped),)/,/^ *endif/d +/^ *ifneq (\$(PAXCTL_dumped),)/,/^ *endif/d +/^ *ln /s/ln /cp / +/^ *\$(SETFATTR_if_present) -n/d /^ fi/d +/^ *\$(RUN_TEMACS) /i\ + stubedit temacs.exe minstack=1024k /^ *LC_ALL=C \$(RUN_TEMACS)/i\ stubedit temacs.exe minstack=1024k /^ *LC_ALL=C.*\$(RUN_TEMACS)/s/LC_ALL=C/set &;/ /-batch -l loadup/a\ stubify emacs\ - stubedit emacs.exe minstack=2048k -s/ || exit 1\; \\$// -s/ || true\; \\$// + stubedit emacs.exe minstack=3072k s/ @true *$/ @rem/ s/^ [^ ]*move-if-change / update / -/^ echo[ ][ ]*timestamp/s/echo /djecho / +/^ [^ ]*echo[ ][ ]*timestamp/s/echo /djecho / /^ .*djecho timestamp/a\ - @rm -f gl.tmp -/^ cd ..\/leim && \$(MAKE)/i\ - $(RUN_TEMACS) -batch -l loadup dump\ - stubify emacs\ - stubedit emacs.exe minstack=2048k\ - rm -f b-emacs$(EXEEXT)\ - cp emacs$(EXEEXT) b-emacs$(EXEEXT) -/^ cd ..\/leim && \$(MAKE)/c\ - $(MAKE) $(MFLAGS) -C ../leim leim-list.el EMACS=$(bootstrap_exe) -/^ cd ..\/admin\/unidata && \$(MAKE)/c\ - $(MAKE) $(MFLAGS) -C ../admin/unidata all EMACS="../$(bootstrap_exe)" -/^ cd \$(lib) && \$(MAKE)/c\ - $(MAKE) $(MFLAGS) -C $(lib) libgnu.a -/^RUN_TEMACS *=/s|`/bin/pwd`|.| + @rm -f globals.tmp /^ *@\$(MKDEPDIR) *$/d /^ mv \.\/\.gdbinit/d /^ if test -f/,/^ fi$/c\ command.com /c if exist .gdbinit rm -f _gdbinit /^ #/d -/^ cd.*make-docfile/s!$!; cd ../src! /^ @: /d /^ -\{0,1\} *ln /s/ln /cp / /^[ ]touch /s/touch/djecho $@ >/ s/@YMF_PASS_LDFLAGS@/flags/ -s/@lisp_frag@// -s/@deps_frag@// -s/@ns_frag@// s/@PRE_EDIT_LDFLAGS@// s/@POST_EDIT_LDFLAGS@// s/bootstrap-emacs/b-emacs/ @@ -211,21 +209,24 @@ s/bootstrap-temacs/b-temacs/ s/bootstrap-doc/b-doc/ /rm -f bootstrap-emacs/s/b-emacs/b-emacs b-emacs.exe/ s/echo.*buildobj.lst/dj&/ -/ --load loadup bootstrap/i\ - stubedit temacs.exe minstack=1024k / --load loadup bootstrap/a\ stubify emacs /^ mv -f emacs/a\ stubedit b-emacs.exe minstack=3072k\ djecho bootlisp > bootlisp /^ -\{0,1\}rm -f/s/\\#/#/ -/^ @\{0,1\}cd ..\/lisp;.*[^\]$/s|$|\; cd ../src| -/^ *THEFILE=/s|$|\; cd ../src| /^ echo.* buildobj.h/s|echo |djecho | -/^buildobj\.h:/,/^ mv /{ - /^ *for /,/^ *done /c\ +/^buildobj\.h:/,/^ *\$(AM_V_at)mv /{ + /^ *\$(AM_V_GEN)for /,/^ *done /c\ djecho "$(ALLOBJS)" | sed -e 's/^ */"/' -e 's/ *$$/"/' -e 's/ */", "/g' >>$@.tmp } +# Remove or replace dependencies we cannot have +/^\.PRECIOUS: /s!\.\./config.status !! +/^\.\.\/config.status: /d +/^Makefile: /s!\.\./config.status !! +/^\$(top_srcdir)\/aclocal\.m4 /,/^doc\.o:/c\ +\ +doc.o: buildobj.h # Make the GCC command line fit one screen line /^[ ][ ]*\$(GNUSTEP_CFLAGS)/d /^[ ][ ]*\$(GCONF_CFLAGS)/d @@ -233,7 +234,13 @@ s/echo.*buildobj.lst/dj&/ s/\$(LIBOTF_CFLAGS) \$(M17N_FLT_CFLAGS) \$(DEPFLAGS) // s/ \$(C_SWITCH_X_SITE)// s/ \$(DBUS_CFLAGS)// -s| -I\$(srcdir)/../lib|| +s/ \$(PNG_CFLAGS) // +s/ \$(XINERAMA_CFLAGS)// +s/ \$(XFIXES_CFLAGS)// +s/ \$(FREETYPE_CFLAGS)// +s/ \$(FONTCONFIG_CFLAGS)// +s| -I\$(srcdir)/\.\./lib|| +s| -I\$(top_srcdir)/lib|| # Add our local inttypes.h to prerequisites where needed /^lread\.o:/s|lread\.c|& ../msdos/inttypes.h| /^ *test "X/d diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp index aa948fd39f88..47bead0d2d9e 100644 --- a/msdos/sed2v2.inp +++ b/msdos/sed2v2.inp @@ -64,9 +64,9 @@ /^#undef PACKAGE_NAME/s/^.*$/#define PACKAGE_NAME ""/ /^#undef PACKAGE_STRING/s/^.*$/#define PACKAGE_STRING ""/ /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/ -/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION ""/ +/^#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.0.93"/ +/^#undef VERSION/s/^.*$/#define VERSION "25.1.90"/ /^#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/ @@ -82,7 +82,6 @@ /^#undef HAVE_SIGNED_SIG_ATOMIC_T *$/s/^.*$/#define HAVE_SIGNED_SIG_ATOMIC_T 1/ /^#undef HAVE_SIGNED_WINT_T *$/s/^.*$/#define HAVE_SIGNED_WINT_T 1/ /^#undef HAVE_UNSIGNED_LONG_LONG_INT *$/s/^.*$/#define HAVE_UNSIGNED_LONG_LONG_INT 1/ -/^#undef HAVE_WCHAR_H *$/s/^.*$/#define HAVE_WCHAR_H 1/ /^#undef DEVICE_SEP *$/s/^.*$/#define DEVICE_SEP ':'/ /^#undef IS_DIRECTORY_SEP *$/s,^.*$,#define IS_DIRECTORY_SEP(_c_) ((_c_) == '/' || (_c_) == '\\\\'), /^#undef IS_DEVICE_SEP *$/s/^.*$/#define IS_DEVICE_SEP(_c_) ((_c_) == ':')/ @@ -91,6 +90,7 @@ /^#undef NULL_DEVICE *$/s/^.*$/#define NULL_DEVICE "nul"/ /^#undef SEPCHAR *$/s/^.*$/#define SEPCHAR '\;'/ /^#undef USER_FULL_NAME *$/s/^.*$/#define USER_FULL_NAME (getenv ("NAME"))/ +/^# *undef _GNU_SOURCE *$/s/^.*$/#define _GNU_SOURCE 1/ /^#undef inline/s/^.*$/#define inline __inline__/ /^#undef my_strftime/s/^.*$/#define my_strftime nstrftime/ /^#undef restrict/s/^.*$/#define restrict __restrict/ @@ -101,6 +101,7 @@ s/^#undef STACK_DIRECTION *$/#define STACK_DIRECTION -1/ s/^#undef EMACS_CONFIGURATION *$/#define EMACS_CONFIGURATION "i386-pc-msdosdjgpp"/ s/^#undef EMACS_CONFIG_OPTIONS *$/#define EMACS_CONFIG_OPTIONS "msdos"/ +s/^#undef EMACS_CONFIG_FEATURES *$/#define EMACS_CONFIG_FEATURES ""/ s/^#undef PROTOTYPES *$/#define PROTOTYPES 1/ s/^#undef POINTER_TYPE *$/#define POINTER_TYPE void/ /^#undef HAVE_INTTYPES_H/c\ @@ -115,12 +116,14 @@ s/^#undef POINTER_TYPE *$/#define POINTER_TYPE void/ #else\ #undef HAVE_STDINT_H\ #endif +s/^#undef HAVE_C_VARARRAYS *$/#define HAVE_C_VARARRAYS 1/ s/^#undef HAVE_DECL_STRTOLL *$/#define HAVE_DECL_STRTOLL 1/ s/^#undef HAVE_DECL_STRTOULL *$/#define HAVE_DECL_STRTOULL 1/ s/^#undef HAVE_DECL_STRTOIMAX *$/#define HAVE_DECL_STRTOIMAX 1/ s/^#undef HAVE_DECL_STRTOUMAX *$/#define HAVE_DECL_STRTOUMAX 1/ s/^#undef HAVE_STRTOLL *$/#define HAVE_STRTOLL 1/ s/^#undef HAVE_STRTOULL *$/#define HAVE_STRTOULL 1/ +s/^#undef HAVE_PUTENV *$/#define HAVE_PUTENV 1/ /^#undef HAVE_SIGSET_T *$/s/^.*$/#define HAVE_SIGSET_T 1/ /^#undef HAVE_SNPRINTF/c\ #if __DJGPP__ > 2 || __DJGPP_MINOR__ > 3\ diff --git a/msdos/sed3v2.inp b/msdos/sed3v2.inp index 711f8fedba6e..49f2b7619841 100644 --- a/msdos/sed3v2.inp +++ b/msdos/sed3v2.inp @@ -15,11 +15,8 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # ---------------------------------------------------------------------- -/^# DIST: /d /^SHELL *=/s/^/# / -/^CC *=/s/=.*$/=gcc/ -s/-DVERSION[^ ]* // -/^configname *=/s/=.*$/=msdos/ +/^CC *=/s/=.*$/=gcc -std=gnu99/ /^archlibdir *=/s!=.*$!=/emacs/bin! /^bindir *=/s!=.*$!=/emacs/bin! /^libdir *=/s!=.*$!=/emacs/bin! @@ -38,12 +35,17 @@ s/-DVERSION[^ ]* // /^LIB_CLOCK_GETTIME *=/s/@[^@\n]*@//g /^LIB_TIMER_TIME *=/s/@[^@\n]*@//g /^CFLAGS *=/s!=.*$!=-O2 -g! +/^CPPFLAGS *=/s/@CPPFLAGS@// +/^LDFLAGS *=/s/@LDFLAGS@// /^C_SWITCH_SYSTEM *=/s!=.*$!=-DMSDOS -I../msdos! /^C_SWITCH_MACHINE *=/s/@C_SWITCH_MACHINE@// /^WARN_CFLAGS *=/s/@WARN_CFLAGS@// /^WERROR_CFLAGS *=/s/@WERROR_CFLAGS@// /^UPDATE_MANIFEST *=/s/@UPDATE_MANIFEST@// /^PROFILING_CFLAGS *=/s/@PROFILING_CFLAGS@// +/^AM_DEFAULT_VERBOSITY *=/s/@AM_DEFAULT_VERBOSITY@/1/ +/^[Aa][Mm]_/s/@AM_V@/$(V)/ +/^[Aa][Mm]_/s/@AM_DEFAULT_V@/$(AM_DEFAULT_VERBOSITY)/ /^ALLOCA *=/s!@ALLOCA@!! /^EXEEXT *=/s!@EXEEXT@!.exe! /^CLIENTW *=/s/@CLIENTW@// @@ -56,9 +58,6 @@ s/-DVERSION[^ ]* // /^GETOPT_H *=/s!@GETOPT_H@!getopt.h! /^GETOPTOBJS *=/s!@GETOPTOBJS@!getopt.o getopt1.o! /^INSTALLABLES/s/emacsclient[^ ]* *// -s!^ \./! ! /^UTILITIES *=/,/^$/{ s/movemail[^ ]* *// } -/^insrcdir=/s/^.*$/\#&/ -/^ *\$(insrcdir) ||/s,\$(insrcdir) ||,command.com /c if not exist $(/ /^NEXT_AS_FIRST_DIRECTIVE_GETOPT_H *=/s/@[^@\n]*@// /^NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H *=/s/@[^@\n]*@// -/^NEXT_AS_FIRST_DIRECTIVE_STDARG_H *=/s/@[^@\n]*@// -/^NEXT_AS_FIRST_DIRECTIVE_STDDEF_H *=/s/@[^@\n]*@// +/^NEXT_AS_FIRST_DIRECTIVE_STDDEF_H *=/s/@[^@\n]*@// /^NEXT_AS_FIRST_DIRECTIVE_STDINT_H *=/s/@[^@\n]*@// /^NEXT_AS_FIRST_DIRECTIVE_STDIO_H *=/s/@[^@\n]*@// /^NEXT_AS_FIRST_DIRECTIVE_STDLIB_H *=/s/@[^@\n]*@// @@ -288,9 +289,8 @@ am__cd = cd /^NEXT_ERRNO_H *=/s/@[^@\n]*@// /^NEXT_FCNTL_H *=/s/@[^@\n]*@// /^NEXT_GETOPT_H *=/s/@[^@\n]*@// -/^NEXT_STDARG_H *=/s/@[^@\n]*@// /^NEXT_SIGNAL_H *=/s/@[^@\n]*@// -/^NEXT_STDDEF_H *=/s/@[^@\n]*@// +/^NEXT_STDDEF_H *=/s/@[^@\n]*@// /^NEXT_STDIO_H *=/s/@[^@\n]*@// /^NEXT_STDINT_H *=/s/@[^@\n]*@// /^NEXT_STDLIB_H *=/s/@[^@\n]*@// @@ -307,7 +307,8 @@ am__cd = cd /^PTHREAD_H_DEFINES_STRUCT_TIMESPEC *=/s/@[^@\n]*@/0/ /^PTRDIFF_T_SUFFIX *=/s/@[^@\n]*@// /^RANLIB *=/s/@[^@\n]*@/ranlib/ -# We never want any gnulib replacement functions +/^REPLACE_MKTIME *=/s/@[^@\n]*@/1/ +# We don't want any other gnulib replacement functions /^REPLACE_[^ =]* *= *@/s/@[^@\n]*@/0/ /^SIG_ATOMIC_T_SUFFIX *=/s/@SIG_ATOMIC_T_SUFFIX@// /^SIZE_T_SUFFIX *=/s/@SIZE_T_SUFFIX@/u/ @@ -316,15 +317,14 @@ am__cd = cd /^DIRENT_H *=/s/@[^@\n]*@// /^ERRNO_H *=/s/@[^@\n]*@// /^EXECINFO_H *=/s/@[^@\n]*@/execinfo.h/ -/^STDBOOL_H *=/s/@[^@\n]*@// /^STDALIGN_H *=/s/@[^@\n]*@/stdalign.h/ -/^STDARG_H *=/s/@[^@\n]*@// -/^STDDEF_H *=/s/@[^@\n]*@// +/^STDDEF_H *=/s/@[^@\n]*@/stddef.h/ /^STDINT_H *=/s/@[^@\n]*@/stdint.h/ /^SYS_TIME_H_DEFINES_STRUCT_TIMESPEC *=/s/@[^@\n]*@/0/ /^TIME_H_DEFINES_STRUCT_TIMESPEC *=/s/@[^@\n]*@/0/ /^UNISTD_H_HAVE_WINSOCK2_H *=/s/@[^@\n]*@/0/ /^UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS *=/s/@[^@\n]*@/0/ +/^UNISTD_H_DEFINES_STRUCT_TIMESPEC *=/s/@[^@\n]*@/0/ /^UNDEFINE_STRTOK_R *=/s/@UNDEFINE_STRTOK_R@/0/ /^WCHAR_T_SUFFIX *=/s/@WCHAR_T_SUFFIX@/h/ /^WINT_T_SUFFIX *=/s/@WINT_T_SUFFIX@// @@ -334,7 +334,7 @@ am__cd = cd /am__append_[1-9][0-9]* *=.*gettext\.h/s/@[^@\n]*@/\#/ /am__append_2 *=.*verify\.h/s/@[^@\n]*@// /^@gl_GNULIB_ENABLED_tempname_TRUE@/s/@[^@\n]*@// -/^gl_LIBOBJS *=/s/@[^@\n]*@/getopt.o getopt1.o memrchr.o sig2str.o time_r.o getloadavg.o pthread_sigmask.o mkostemp.o fpending.o fdatasync.o execinfo.o/ +/^gl_LIBOBJS *=/s/@[^@\n]*@/getopt.o getopt1.o memrchr.o sig2str.o time_r.o time_rz.o timegm.o mktime.o getloadavg.o pthread_sigmask.o mkostemp.o fpending.o fdatasync.o execinfo.o/ /^am__append_[1-9][0-9]* *=/,/^[^ ]/{ s/ *inttypes\.h// s| *sys/select\.h|| @@ -342,13 +342,13 @@ am__cd = cd } /^am_libgnu_a_OBJECTS *=/,/^[^ ]/{ s/allocator\.\$(OBJEXT) // - s/binary-io\.\$(OBJEXT) // s/careadlinkat\.\$(OBJEXT) // s/pipe2\.\$(OBJEXT) // s/acl-errno-valid\.\$(OBJEXT) // - s/file-has-acl\.\$(OBJEXT) // + s/acl-internal\.\$(OBJEXT) // + s/get-permissions\.\$(OBJEXT) // + s/set-permissions\.\$(OBJEXT) // s/qcopy-acl\.\$(OBJEXT) // - s/qset-acl\.\$(OBJEXT) // s/openat-die\.\$(OBJEXT) // s/save-cwd\.\$(OBJEXT) // } @@ -396,13 +396,9 @@ s/^@GL_GENERATE_ERRNO_H_TRUE@/\#/ s/^@GL_GENERATE_ERRNO_H_FALSE@// s/^@GL_GENERATE_EXECINFO_H_TRUE@// s/^@GL_GENERATE_EXECINFO_H_FALSE@/\#/ -s/^@GL_GENERATE_STDBOOL_H_TRUE@/\#/ -s/^@GL_GENERATE_STDBOOL_H_FALSE@// s/^@GL_GENERATE_STDALIGN_H_TRUE@// s/^@GL_GENERATE_STDALIGN_H_FALSE@/\#/ -s/^@GL_GENERATE_STDARG_H_TRUE@/\#/ -s/^@GL_GENERATE_STDARG_H_FALSE@/\#/ -s/^@GL_GENERATE_STDDEF_H_TRUE@/\#/ +s/^@GL_GENERATE_STDDEF_H_TRUE@// s/^@GL_GENERATE_STDDEF_H_FALSE@/\#/ s/^@GL_GENERATE_STDINT_H_TRUE@// s/^@GL_GENERATE_STDINT_H_FALSE@/\#/ diff --git a/msdos/sedlisp.inp b/msdos/sedlisp.inp index 7fa476eb072c..17aa168e843b 100644 --- a/msdos/sedlisp.inp +++ b/msdos/sedlisp.inp @@ -23,5 +23,9 @@ export FNCASE=y /^lisp *=/s|\$(srcdir)|$(CURDIR)| /^srcdir *=/s|@srcdir@|.| /^top_srcdir *=/s|@top_srcdir@|./..| +/^EXEEXT *=/s/@EXEEXT@/.exe/ /^XARGS_LIMIT *=/s|@XARGS_LIMIT@|| +/^AM_DEFAULT_VERBOSITY *=/s/@AM_DEFAULT_VERBOSITY@/1/ +/^[Aa][Mm]_/s/@AM_V@/$(V)/ +/^[Aa][Mm]_/s/@AM_DEFAULT_V@/$(AM_DEFAULT_VERBOSITY)/ diff --git a/nextstep/INSTALL b/nextstep/INSTALL index dd690abf1b1b..3740346acd5e 100644 --- a/nextstep/INSTALL +++ b/nextstep/INSTALL @@ -19,7 +19,7 @@ In the top-level directory, use: ./configure --with-ns -(On Mac OS X, --with-ns is enabled by default.) +(On macOS, --with-ns is enabled by default.) This will compile all the files, but emacs will not be able to be run except in -nw (terminal) mode. diff --git a/nextstep/Makefile.in b/nextstep/Makefile.in index 9aa034ad98d2..d6e128256130 100644 --- a/nextstep/Makefile.in +++ b/nextstep/Makefile.in @@ -35,12 +35,12 @@ MKDIR_P = @MKDIR_P@ ## Emacs.app. ns_appdir = @ns_appdir@ -## GNUstep: ns_appdir; OS X: ns_appdir/Contents/MacOS +## GNUstep: ns_appdir; macOS: ns_appdir/Contents/MacOS ns_appbindir = @ns_appbindir@ ## GNUstep/Emacs.base or Cocoa/Emacs.base. ns_appsrc = @ns_appsrc@ ## GNUstep: GNUstep/Emacs.base/Resources/Info-gnustep.plist -## OS X: Cocoa/Emacs.base/Contents/Info.plist +## macOS: Cocoa/Emacs.base/Contents/Info.plist ns_check_file = @ns_appdir@/@ns_check_file@ .PHONY: all diff --git a/nextstep/README b/nextstep/README index 7a1a0921cd8d..6d37bb7b2d26 100644 --- a/nextstep/README +++ b/nextstep/README @@ -1,8 +1,8 @@ - NS -- the Cocoa interface for OS X and compatible systems - --------------------------------------------------------- + NS -- the Cocoa interface for macOS and compatible systems + ---------------------------------------------------------- This directory contains files needed to build Emacs on system based on -NextStep (NS), including OS X (Mac) and GNUstep, using the Cocoa API. +NextStep (NS), including macOS and GNUstep, using the Cocoa API. HISTORY @@ -14,14 +14,14 @@ OpenStep and then Rhapsody, which became Mac OS X. In 2004 it was adapted to GNUstep, a free OpenStep implementation, and in 2008 it was merged to the GNU Emacs trunk and released with Emacs 23. Around the same time a separate Mac-only port using the Carbon APIs and -descending from a 2001 MacOS 8/9 port of Emacs 21 was removed. (It +descending from a 2001 Mac OS 8/9 port of Emacs 21 was removed. (It remains available externally under the name "mac".) OVERVIEW OF COCOA AND OBJECTIVE-C Cocoa is an API for the Objective-C language, an objective oriented -superset of C. Anybody with experience with iOS or modern OS X +superset of C. Anybody with experience with iOS or modern macOS application development should feel at home. A method call in Objective-C differs from most other languages in the @@ -58,11 +58,11 @@ Classes are declared like the following: * Don't use macros and types intended for the XCode Interface Builder, like 'IBAction'. -* The NS interface should work on all version of OS X from 10.6.8 - (Snow Leopard) to the latest official release. +* The NS interface should work on all version of macOS from Mac OS X + 10.6.8 (Snow Leopard) to the latest official release. -* Under OS X, it is possible to build Emacs using NS, X11, or console - only. A new OS X feature should work in all appropriate builds. +* Under macOS, it is possible to build Emacs using NS, X11, or console + only. A new macOS feature should work in all appropriate builds. TRACING SUPPORT @@ -76,7 +76,7 @@ uncomment the lines defining symbols starting with 'NSTRACE_GROUP'. GNUSTEP AND OTHER COMPATIBLE SYSTEMS -The NS interface works on system compatible with OS X, for example +The NS interface works on systems compatible with macOS, for example GNUstep. Even though they are less frequently used, this is important for a number of reasons: @@ -84,7 +84,7 @@ for a number of reasons: look-and-feel as the rest of the system. * This allows other Emacs developers to test their changes on the NS - interface without having access to an OS X machine. + interface without having access to a macOS machine. * If a feature in the NS interface work on free systems like GNUstep, this meets the FSF requirement that features in GNU software should diff --git a/nextstep/templates/Emacs.desktop.in b/nextstep/templates/Emacs.desktop.in index 170f195f2701..4fed1e3b1590 100644 --- a/nextstep/templates/Emacs.desktop.in +++ b/nextstep/templates/Emacs.desktop.in @@ -4,7 +4,7 @@ Type=Application Version=@version@ Categories=GNUstep Name=Emacs -Comment=GNU Emacs for NeXT/Open/GNUstep and OS X +Comment=GNU Emacs for NeXT/Open/GNUstep and macOS Icon=emacs.tiff Exec=openapp Emacs.app #TryExec=Emacs.app diff --git a/nextstep/templates/Info-gnustep.plist.in b/nextstep/templates/Info-gnustep.plist.in index 679eb4fa4350..1fd31849ab8d 100644 --- a/nextstep/templates/Info-gnustep.plist.in +++ b/nextstep/templates/Info-gnustep.plist.in @@ -1,11 +1,11 @@ { - ApplicationDescription = "GNU Emacs for GNUstep / OS X"; + ApplicationDescription = "GNU Emacs for GNUstep / macOS"; ApplicationIcon = emacs.tiff; ApplicationName = Emacs; ApplicationRelease = "@version@"; Authors = ( "Adrian Robert (GNUstep)", - "Christophe de Dinechin (MacOS X)", + "Christophe de Dinechin (macOS)", "Scott Bender (OpenStep)", "Christian Limpach (NeXTstep)", "Carl Edman (NeXTstep)", diff --git a/nextstep/templates/Info.plist.in b/nextstep/templates/Info.plist.in index dcd2fe341679..686b8047dfbf 100644 --- a/nextstep/templates/Info.plist.in +++ b/nextstep/templates/Info.plist.in @@ -504,7 +504,7 @@ along with GNU Emacs. If not, see . - + UTExportedTypeDeclarations diff --git a/nt/INSTALL b/nt/INSTALL index 99a2f3988f91..7bf544cf6ea9 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://ftp.gnu.org/gnu/emacs/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 + ftp.gnu.org. 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://ftp.gnu.org/gnu/emacs/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 ftp.gnu.org. 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://ftp.gnu.org/gnu/emacs/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://ftp.gnu.org/gnu/emacs/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://ftp.gnu.org/gnu/emacs/windows/ For runtime support of libxml2, you will also need to install the libiconv "development" tarball, because the libiconv headers need to @@ -784,6 +793,16 @@ 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 and on ftp.gnu.org; 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.) + This file is part of GNU Emacs. diff --git a/nt/INSTALL.W64 b/nt/INSTALL.W64 index e109c6f0f234..40670a6a8782 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 71a0738969a0..af3751149589 100644 --- a/nt/README.W32 +++ b/nt/README.W32 @@ -1,27 +1,38 @@ Copyright (C) 2001-2016 Free Software Foundation, Inc. See the end of the file for license conditions. - Emacs for Windows + Emacs version 25.1.90 for MS-Windows - This README.W32 file describes how to set up and run a precompiled - distribution of GNU Emacs for Windows. You can find the precompiled - distribution on the ftp.gnu.org server and its mirrors: + This README file describes how to set up and run a precompiled + distribution of the latest version of GNU Emacs for MS-Windows. You + can find the precompiled distribution on the ftp.gnu.org server and + its mirrors: - ftp://ftp.gnu.org/gnu/emacs/windows/ + ftp://ftp.gnu.org/gnu/emacs/windows/ This server contains other distributions, including the full Emacs source distribution, as well as older releases of Emacs for Windows. Information on how to compile Emacs from sources on Windows is in the files README and INSTALL in the nt/ sub-directory of the - top-level Emacs directory in the source distribution. If you - received this file as part of the Emacs source distribution, and are - looking for information on how to build Emacs on MS-Windows, please - read those 2 files and not this one. + top-level Emacs directory in the source distribution, as is this + file under the name README.W32. If you received this file as part + of the Emacs source distribution, and are looking for information on + how to build Emacs on MS-Windows, please read those 2 files and not + this one. * Preliminaries + There are two binary distributions named + emacs-VER-x86_64-w64-mingw32.zip and emacs-VER-i686-w64-mingw32.zip, + where VER is the Emacs version. These are 64-bit and 32-bit builds, + respectively. If you are running a 32-bit version of MS-Windows, + you need to install the 32-bit build; users of 64-bit Windows can + use either build, but we recommend to install the 64-bit one, as it + will be able to edit larger buffers and will generally run faster. + The binary distribution has these top-level directories: + + bin + libexec + share @@ -30,32 +41,42 @@ See the end of the file for license conditions. * Setting up Emacs To install Emacs, simply unpack the binary package into a directory - of your choice. To complete the installation process, you can - optionally run the program addpm.exe in the bin subdirectory. This - will put an icon for Emacs in the Start Menu under - "Start -> Programs -> Gnu Emacs". - - Some users have reported that the Start Menu item is not created for - them. If this happens, just create your own shortcut to runemacs.exe, - eg. by dragging it on to the desktop or the Start button. - - Note that running addpm is now an optional step; Emacs is able to - locate all of its files without needing any information to be set in - the environment or the registry, although such settings will still - be obeyed if present. This is convenient for running Emacs on a - machine which disallows registry changes, or on which software - should not be installed. For instance, you can now run Emacs - directly from a CD or USB flash drive without copying or installing - anything on the machine itself. + of your choice. If you use the Windows Explorer and its "Extract" + action, by default this will be in a top-level directory with the + same name as the zip file. + + We also provide a set of optional dependencies, in + emacs-MVER-x86_64-deps.zip or emacs-MVER-i686-deps.zip respectively, + where MVER is the major Emacs version that should use these + libraries. These provide Emacs with a number of additional optional + capabilities, described in detail below. To use these, unpack them + directly over the emacs directory structure. Note that, if + extracting with the Windows Explorer, you will have to override the + directory where it wants to put the file with the same directory + where you extracted the Emacs binary package. + + Finally, and also optionally, you can run the program addpm.exe in + the bin subdirectory which will place an icon for Emacs on the start + page. (This is no longer needed in latest versions of Emacs, so we + recommend you not do that, as running addpm.exe will insert entries + into the Registry which might get in the way if you upgrade to later + versions without updating those entries, or would like to uninstall + Emacs.) + + Emacs is completely portable. You can create your own shortcut to + runemacs.exe and place this wherever you find it convenient (the + desktop and/or the Taskbar), or run it from a USB or network drive + without copying or installing anything on the machine itself. * Prerequisites for Windows 9X - To run Emacs on Windows 9X (Windows 95/98/Me), you will need to have - the Microsoft Layer for Unicode (MSLU) installed. It can be - downloaded from the Microsoft site, and comes in a form of a single - dynamic library called UNICOWS.DLL. If this library is not - accessible to Emacs, it will pop up a dialog saying that it cannot - find the library, and will refuse to start up. + The 32-bit build supports MS-Windows 9X (Windows 95/98/Me). To run + Emacs on these versions of Windows, you will need to have the + Microsoft Layer for Unicode (MSLU) installed. It can be downloaded + from the Microsoft site, and comes in a form of a single dynamic + library called UNICOWS.DLL. If this library is not accessible to + Emacs on Windows 9X, it will pop up a dialog saying that it cannot + find the UNICOWS library, and will refuse to start up. * Starting Emacs @@ -69,7 +90,7 @@ See the end of the file for license conditions. If you want to use Emacs in tty or character mode within a command window, you can start it by typing "emacs -nw" at the command prompt. (Obviously, you need to ensure that the Emacs bin subdirectory is in - your PATH first, or specify the path to emacs.exe.) The -nw + your Path first, or specify the path to emacs.exe.) The -nw (non-windowed) mode of operation is most useful if you have a telnet server on your machine, allowing you to run Emacs remotely. @@ -93,8 +114,8 @@ See the end of the file for license conditions. + emacsclientw.exe - A version of emacsclient that does not open a command-line window. - + addpm.exe - A basic installer that creates Start Menu icons for Emacs. - Running this is optional. + + addpm.exe - A basic installer that adds Emacs to "Start" menus and + adds Emacs-related entries to the Windows Registry. + ctags.exe, etags.exe - Tools for generating tag files. See the `Tags' node of the Emacs manual. @@ -128,133 +149,106 @@ See the end of the file for license conditions. + update-game-score.exe - A utility for updating the score files of Emacs games. -* Image support +* Optional dependency libraries Emacs has built in support for XBM and PPM/PGM/PBM images, and the libXpm library is bundled, providing XPM support (required for color - toolbar icons and splash screen). Source for libXpm should be available - from the same place from which you got this binary distribution. - - Emacs can also support some other image formats with appropriate - 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 - - 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. - - 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. - Here are some specific comments about each image type: - - PNG: requires the PNG reference library 1.4 or later, which will - be named libpngNN.dll or libpngNN-NN.dll. LibPNG requires zlib, - which should come from the same source as you got libpng. - Starting with Emacs 23.3, the precompiled Emacs binaries are - built with libpng 1.4.x and later, and are incompatible with - earlier versions of libpng DLLs. So if you have libpng 1.2.x, - the PNG support will not work, and you will have to download - newer versions. - - JPEG: requires the Independent JPEG Group's libjpeg 6b or later, - which will be called jpeg62.dll, libjpeg.dll, jpeg-62.dll or jpeg.dll. - - TIFF: requires libTIFF 3.0 or later, which will be called libtiffN.dll - or libtiff-N.dll or libtiff.dll. - - GIF: requires libungif or giflib 4.1 or later, which will be - called libgif-6.dll, giflib4.dll, libungif4.dll or libungif.dll. - - SVG: requires librsvg 2.x whose DLL will be called - librsvg-2-2.dll. SVG also requires several dependency DLLs, - such as Pango, Cairo, and Glib, all of them found on the - above-mentioned sites. If you download from the ezwinports - site, you need only librsvg-2.nn.mm-x-w32-bin.zip, it comes with - all the other dependencies bundled. - - If you have image support DLLs under different names, customize the - value of `dynamic-library-alist'. - -* GnuTLS support - - GnuTLS provides SSL/TLS network support for Emacs (https, imaps and - so on.) - - In order to support GnuTLS at runtime, Emacs must be able to find - the relevant DLLs during startup; failure to do so is not an error, - 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/. - -* libxml2 support - - libxml2 provides HTML parsing support for Emacs, which is necessary - to use the built-in eww browser. - - In order to support libxml2 at runtime, a libxml2-enabled Emacs must - be able to find the relevant DLLs during startup; failure to do so - is not an error, but libxml2 features won't be available to the - running session. - - You can get pre-built binaries (including any required DLL and the - header files) at http://sourceforge.net/projects/ezwinports/files/. + toolbar icons and splash screen). Source for libXpm should be + available from the same place from which you got this binary + distribution. + + Emacs has a number of optional features which need additional + libraries. These are provided in a separate bundle of dependencies, + as described above, and enable support for the following: + + - displaying inline images of many types (PNG, JPEG, GIF, TIFF, SVG) + - SSL/TLS secure network communications (HTTPS, IMAPS, etc.) + - HTML and XML parsing (necessary for the built-in EWW browser) + - built-in decompression of compressed text + + The optional dependency libraries are in emacs-MVER-x86_64-deps.zip + (64-bit) and emacs-MVER-i686-deps.zip (32-bit), and their sources + are in emacs-MVER-deps-mingw-w64-src.zip, where MVER is the major + version of Emacs that should use these dependencies. Note that a + 64-bit Emacs will only work with the 64-bit dependencies, and the + 32-bit Emacs only with the 32-bit dependencies. + + Newer/updated builds for these optional libraries are available at + http://msys2.github.io/ and + http://sourceforge.net/projects/ezwinports/files/ (but you shouldn't + need these except in emergencies). + + If you install the libraries in a directory different from where you + have the Emacs executable programs, we recommend to add the + directory with DLLs to your Path, so that Emacs will be able to find + those DLLs when needed. + +* Installing Emacs with an existing MSYS2 installation + + You may also use Emacs with an existing MSYS2 installation by simply + unpacking the Emacs distribution over MSYS2. You can then use the + 'pacman' utility to install dependencies. You should not use the + optional dependencies bundle from this site, as this will overwrite + MSYS2 files (the dependency bundle derives from MSYS2, but may be a + different version). + + Some of the optional libraries need to be of certain versions to + work with your Emacs binary. Make sure you install those versions + of dependencies, and no others. Emacs variables such as + libpng-version and libjpeg-version tell what versions of the + corresponding libraries are expected by Emacs. (We recommend that + you use the dependency bundle, where these issues are always + resolved.) + + 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-giflib + mingw-w64-x86_64-gnutls + mingw-w64-x86_64-libjpeg-turbo + mingw-w64-x86_64-libpng + mingw-w64-x86_64-librsvg + mingw-w64-x86_64-libtiff + mingw-w64-x86_64-libxml2 + mingw-w64-x86_64-xpm-nox + + You can type any subset of this list. 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 manually download all their dependencies as well. * Uninstalling Emacs If you should need to uninstall Emacs, simply delete all the files and subdirectories from the directory where it was unpacked (Emacs does not install or update any files in system directories or - anywhere else). If you ran the addpm.exe program to create the - registry entries and the Start menu icon, then you can remove the - registry entries using regedit. All of the settings are written - under the Software\GNU\Emacs key in HKEY_LOCAL_MACHINE, or if you - didn't have administrator privileges when you installed, the same - key in HKEY_CURRENT_USER. Just delete the whole Software\GNU\Emacs - key. - - The Start menu entry can be removed by right-clicking on the Taskbar - and selecting Properties, then using the Remove option on the Start - Menu Programs page. (If you installed under an account with - administrator privileges, then you need to click the Advanced button - and look for the Gnu Emacs menu item under All Users.) - -* Troubleshooting - - Unpacking the distributions + anywhere else). - If you encounter trouble trying to run Emacs, there are a number of - possible causes. Check the following for indications that the - distribution was not corrupted by the tools used to unpack it: + If you ran the addpm.exe program to create the Start menu icon, this + can be removed by right-clicking and "Uninstall". - * Be sure to disable CR/LF translation or the executables will - be unusable. Older versions of WinZipNT would enable this - translation by default. If you are using WinZipNT, disable it. - (I don't have WinZipNT myself, and I do not know the specific - commands necessary to disable it.) + Finally, addpm.exe also creates a few registry entries; these can be + safely left, but if you really wish to remove them, all of the + settings are written under the Software\GNU\Emacs key in + HKEY_LOCAL_MACHINE, or if you didn't have administrator privileges + when you installed, the same key in HKEY_CURRENT_USER. Just delete + the whole Software\GNU\Emacs key. - * Check that filenames were not truncated to 8.3. For example, - there should be a file lisp\abbrevlist.elc; if this has been - truncated to abbrevli.elc, your distribution has been corrupted - while unpacking and Emacs will not start. - - * On Windows 9X, make sure you have the UNICOWS.DLL library either - in the same directory where you have emacs.exe or in the - directory where system-wide DLLs are kept. +* Troubleshooting - If you believe you have unpacked the distributions correctly and are - still encountering problems, see the section on Further Information - below. + Some known problems and their solutions can be found in the file + etc\PROBLEMS in the unpacked Emacs distribution. Virus scanners @@ -263,6 +257,12 @@ See the end of the file for license conditions. McAfee's Vshield, turn off "Scan all files" (WinGuard) or "boot sector scanning" (McAfee exclusion properties). + Windows 9X + + On Windows 9X, make sure you have the UNICOWS.DLL library either in + the same directory where you have emacs.exe or in the directory + where system-wide DLLs are kept. + * Further information The Emacs User manual describes Windows-specific issues in the @@ -275,42 +275,32 @@ See the end of the file for license conditions. http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Microsoft-Windows - In addition to the manual, there is a mailing list for discussing - issues related to the Windows port of Emacs. For information about - the list, see this Web page: + In addition to the manual, there is a mailing list for help with + Emacs here: - http://lists.gnu.org/mailman/listinfo/help-emacs-windows - - To ask questions on the mailing list, send email to - help-emacs-windows@gnu.org. (You don't need to subscribe for that.) - To subscribe to the list or unsubscribe from it, fill the form you - find at http://lists.gnu.org/mailman/listinfo/help-emacs-windows as - explained there. + http://lists.gnu.org/mailman/listinfo/help-gnu-emacs - Another valuable source of information and help which should not be - overlooked is the various Usenet news groups dedicated to Emacs. - These are particularly good for help with general issues which aren't - specific to the Windows port of Emacs. The main news groups to use - for seeking help are: + To ask questions on this mailing list, send email to + help-gnu-emacs@gnu.org. - gnu.emacs.help - comp.emacs + A mailing list for issues specifically related to the MS-Windows port + of Emacs is here: - There are also fairly regular postings and announcements of new or - updated Emacs packages on this group: + http://lists.gnu.org/mailman/listinfo/help-emacs-windows - gnu.emacs.sources + To ask questions on this mailing list, send email to + help-emacs-windows@gnu.org. * Reporting bugs If you encounter a bug in this port of Emacs, we would like to hear about it. First check the FAQ on the web page above to see if the bug is already known and if there are any workarounds. Then check whether - the bug has something to do with code in your .emacs file, e.g. by + the bug has something to do with code in your `.emacs' file, e.g. by invoking Emacs with the "-Q" option. If you decide that it is a bug in Emacs, use the built in bug - reporting facility to report it (from the menu; Help -> Send Bug Report). + reporting facility to report it (from the menu: Help -> Send Bug Report). If you have not yet configured Emacs for mail, then when you press C-c C-c to send the report, it will ask you to paste the text of the report into your mail client. If the bug is related to subprocesses, diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h index d1534336c490..b4eb56222423 100644 --- a/nt/inc/ms-w32.h +++ b/nt/inc/ms-w32.h @@ -146,6 +146,7 @@ extern char *getenv (); in its system headers, and is not really compatible with values lower than 0x0500, so leave it alone. */ #ifndef MINGW_W64 +# undef _WIN32_WINNT # define _WIN32_WINNT 0x0400 #endif diff --git a/nt/inc/sys/stat.h b/nt/inc/sys/stat.h index 45bc2ea1e0c5..ea14f0754710 100644 --- a/nt/inc/sys/stat.h +++ b/nt/inc/sys/stat.h @@ -30,6 +30,14 @@ along with GNU Emacs. If not, see . */ # define __MINGW_NOTHROW #endif +/* Prevent the MinGW stat.h header from being included, ever. */ +#ifndef _SYS_STAT_H +# define _SYS_STAT_H +#endif +#ifndef _INC_STAT_H +# define _INC_STAT_H +#endif + #include #include diff --git a/src/.gdbinit b/src/.gdbinit index a4e9f7093862..9160ffa439e0 100644 --- a/src/.gdbinit +++ b/src/.gdbinit @@ -1267,8 +1267,7 @@ break terminate_due_to_signal tbreak init_sys_modes commands silent - xgetptr globals.f_Vinitial_window_system - xsymname $ptr + xsymname globals.f_Vinitial_window_system xgetptr $symname set $tem = (struct Lisp_String *) $ptr set $tem = (char *) $tem->data diff --git a/src/ChangeLog.12 b/src/ChangeLog.12 index b2df482ba775..a1ebd30c8ecd 100644 --- a/src/ChangeLog.12 +++ b/src/ChangeLog.12 @@ -4382,7 +4382,7 @@ * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506). - * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of + * nsterm.m (ns_update_auto_hide_menu_bar): Remove definition of MAC_OS_X_VERSION_10_6. (syms_of_nsterm): Remove comment about Panther and above for ns-antialias-text. diff --git a/src/Makefile.in b/src/Makefile.in index 1f0df6f3ec84..d54670932d37 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -114,8 +114,9 @@ TEMACS_LDFLAGS = $(LD_SWITCH_SYSTEM) $(LD_SWITCH_SYSTEM_TEMACS) ## around this, newer ones setfattr. See Bug#11398 and Bug#16343. PAXCTL = @PAXCTL@ SETFATTR = @SETFATTR@ -PAXCTL_if_present = $(or $(PAXCTL),: paxctl) -SETFATTR_if_present = $(or $(SETFATTR),: setfattr) +## Commands to set PaX flags on dumped and not-dumped instances of Emacs. +PAXCTL_dumped = @PAXCTL_dumped@ +PAXCTL_notdumped = @PAXCTL_notdumped@ ## Some systems define this to request special libraries. LIBS_SYSTEM=@LIBS_SYSTEM@ @@ -532,7 +533,9 @@ ifeq ($(CANNOT_DUMP),yes) ln -f temacs$(EXEEXT) $@ else LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump - $(PAXCTL_if_present) -zex $@ + ifneq ($(PAXCTL_dumped),) + $(PAXCTL_dumped) $@ + endif ln -f $@ bootstrap-emacs$(EXEEXT) endif @@ -594,8 +597,9 @@ temacs$(EXEEXT): $(LIBXMENU) $(ALLOBJS) \ -o temacs $(ALLOBJS) $(lib)/libgnu.a $(W32_RES_LINK) $(LIBES) $(MKDIR_P) $(etc) ifneq ($(CANNOT_DUMP),yes) - $(PAXCTL_if_present) -r $@ - $(SETFATTR_if_present) -n user.pax.flags -v er $@ + ifneq ($(PAXCTL_notdumped),) + $(PAXCTL_notdumped) $@ + endif endif ## The following oldxmenu-related rules are only (possibly) used if @@ -734,7 +738,9 @@ ifeq ($(CANNOT_DUMP),yes) ln -f temacs$(EXEEXT) $@ else $(RUN_TEMACS) --batch --load loadup bootstrap - $(PAXCTL_if_present) -zex emacs$(EXEEXT) + ifneq ($(PAXCTL_dumped),) + $(PAXCTL_dumped) emacs$(EXEEXT) + endif mv -f emacs$(EXEEXT) $@ endif @: Compile some files earlier to speed up further compilation. diff --git a/src/alloc.c b/src/alloc.c index 4c9cbf107247..6be0263a8169 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -468,6 +468,11 @@ static void *pure_alloc (size_t, int); ? ((x) + (y) - 1) - ((x) + (y) - 1) % (y) \ : ((x) + (y) - 1) & ~ ((y) - 1)) +/* Bug#23764 */ +#ifdef ALIGN +# undef ALIGN +#endif + /* Return PTR rounded up to the next multiple of ALIGNMENT. */ static void * @@ -1410,8 +1415,8 @@ lmalloc (size_t size) if (laligned (p, size)) break; free (p); - size_t bigger; - if (! INT_ADD_WRAPV (size, GCALIGNMENT, &bigger)) + size_t bigger = size + GCALIGNMENT; + if (size < bigger) size = bigger; } @@ -1427,8 +1432,8 @@ lrealloc (void *p, size_t size) p = realloc (p, size); if (laligned (p, size)) break; - size_t bigger; - if (! INT_ADD_WRAPV (size, GCALIGNMENT, &bigger)) + size_t bigger = size + GCALIGNMENT; + if (size < bigger) size = bigger; } @@ -5579,7 +5584,11 @@ compact_font_caches (void) for (t = terminal_list; t; t = t->next_terminal) { Lisp_Object cache = TERMINAL_FONT_CACHE (t); - if (CONSP (cache)) + /* Inhibit compacting the caches if the user so wishes. Some of + the users don't mind a larger memory footprint, but do mind + slower redisplay. */ + if (!inhibit_compacting_font_caches + && CONSP (cache)) { Lisp_Object entry; @@ -6005,7 +6014,7 @@ mark_glyph_matrix (struct glyph_matrix *matrix) all the references contained in it. */ #define LAST_MARKED_SIZE 500 -static Lisp_Object last_marked[LAST_MARKED_SIZE]; +Lisp_Object last_marked[LAST_MARKED_SIZE] EXTERNALLY_VISIBLE; static int last_marked_index; /* For debugging--call abort when we cdr down this many @@ -6894,7 +6903,8 @@ sweep_misc (void) else if (mblk->markers[i].m.u_any.type == Lisp_Misc_User_Ptr) { struct Lisp_User_Ptr *uptr = &mblk->markers[i].m.u_user_ptr; - uptr->finalizer (uptr->p); + if (uptr->finalizer) + uptr->finalizer (uptr->p); } #endif /* Set the type of the freed object to Lisp_Misc_Free. diff --git a/src/atimer.c b/src/atimer.c index 70d9bf52bc27..64c9e8ab6cb4 100644 --- a/src/atimer.c +++ b/src/atimer.c @@ -30,6 +30,10 @@ along with GNU Emacs. If not, see . */ # include #endif +#ifdef MSDOS +#include "msdos.h" +#endif + /* Free-list of atimer structures. */ static struct atimer *free_atimers; diff --git a/src/bidi.c b/src/bidi.c index c23ff954356c..c2208cd12c28 100644 --- a/src/bidi.c +++ b/src/bidi.c @@ -2498,10 +2498,10 @@ typedef struct bpa_stack_entry { And finally, cross-reference these two: - fgrep -w -f brackets.txt decompositions.txt + grep -Fw -f brackets.txt decompositions.txt where "decompositions.txt" was produced by the 1st script, and - "brackets.txt" by the 2nd script. In the output of fgrep, look + "brackets.txt" by the 2nd script. In the output of grep, look only for decompositions that don't begin with some compatibility formatting tag, such as "". Only decompositions that consist solely of character codepoints are relevant to bidi @@ -2977,15 +2977,13 @@ bidi_resolve_neutral (struct bidi_it *bidi_it) /* N1-N2/Retaining */ || type == WEAK_BN) { - if (bidi_it->next_for_neutral.type != UNKNOWN_BT) + if (bidi_it->next_for_neutral.type != UNKNOWN_BT + && (bidi_it->next_for_neutral.charpos > bidi_it->charpos + /* PDI defines an eos, so it's OK for it to serve as its + own next_for_neutral. */ + || (bidi_it->next_for_neutral.charpos == bidi_it->charpos + && bidi_it->type == PDI))) { - /* Make sure the data for resolving neutrals we are - about to use is valid. */ - eassert (bidi_it->next_for_neutral.charpos > bidi_it->charpos - /* PDI defines an eos, so it's OK for it to - serve as its own next_for_neutral. */ - || (bidi_it->next_for_neutral.charpos == bidi_it->charpos - && bidi_it->type == PDI)); type = bidi_resolve_neutral_1 (bidi_it->prev_for_neutral.type, bidi_it->next_for_neutral.type, current_level); diff --git a/src/buffer.c b/src/buffer.c index f06d7e08e49c..89f4479740ad 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -2231,7 +2231,9 @@ advance_to_char_boundary (ptrdiff_t byte_pos) DEFUN ("buffer-swap-text", Fbuffer_swap_text, Sbuffer_swap_text, 1, 1, 0, - doc: /* Swap the text between current buffer and BUFFER. */) + doc: /* Swap the text between current buffer and BUFFER. +Using this function from `save-excursion' might produce surprising +results, see Info node `(elisp)Swapping Text'. */) (Lisp_Object buffer) { struct buffer *other_buffer; @@ -6233,6 +6235,8 @@ Values are interpreted as follows: (hbar . HEIGHT) display a horizontal bar cursor with height HEIGHT ANYTHING ELSE display a hollow box cursor +WIDTH and HEIGHT can't exceed the frame's canonical character size. + When the buffer is displayed in a non-selected window, the cursor's appearance is instead controlled by the variable `cursor-in-non-selected-windows'. */); diff --git a/src/buffer.h b/src/buffer.h index 87b7cee44132..a53ef12f35e1 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/callint.c b/src/callint.c index 3bcf2c8476ba..c0afc7b20bd9 100644 --- a/src/callint.c +++ b/src/callint.c @@ -41,20 +41,24 @@ For example, write (defun foo (arg buf) "Doc string" (interactive "P\\nbbuffer: ") .... ) to make ARG be the raw prefix argument, and set BUF to an existing buffer, when `foo' is called as a command. -The "call" to `interactive' is actually a declaration rather than a function; - it tells `call-interactively' how to read arguments - to pass to the function. -When actually called, `interactive' just returns nil. - -Usually the argument of `interactive' is a string containing a code letter - followed optionally by a prompt. (Some code letters do not use I/O to get - the argument and do not use prompts.) To get several arguments, concatenate - the individual strings, separating them by newline characters. -Prompts are passed to format, and may use % escapes to print the + +The "call" to `interactive' is actually a declaration rather than a + function; it tells `call-interactively' how to read arguments to pass + to the function. When actually called, `interactive' just returns + nil. + +Usually the argument of `interactive' is a string containing a code + letter followed optionally by a prompt. (Some code letters do not + use I/O to get the argument and do not use prompts.) To pass several + arguments to the command, concatenate the individual strings, + separating them by newline characters. + +Prompts are passed to `format', and may use % escapes to print the arguments that have already been read. If the argument is not a string, it is evaluated to get a list of - arguments to pass to the function. -Just `(interactive)' means pass no args when calling interactively. + arguments to pass to the command. +Just `(interactive)' means pass no arguments to the command when + calling interactively. Code letters available are: a -- Function name: symbol with a function definition. @@ -99,7 +103,7 @@ If the string begins with `^' and `shift-select-mode' is non-nil, Emacs first calls the function `handle-shift-selection'. You may use `@', `*', and `^' together. They are processed in the order that they appear, before reading any arguments. -usage: (interactive &optional ARGS) */ +usage: (interactive &optional ARG-DESCRIPTOR) */ attributes: const) (Lisp_Object args) { @@ -268,7 +272,7 @@ invoke it. If KEYS is omitted or nil, the return value of { /* `args' will contain the array of arguments to pass to the function. `visargs' will contain the same list but in a nicer form, so that if we - pass it to `Fformat' it will be understandable to a human. */ + pass it to `Fformat_message' it will be understandable to a human. */ Lisp_Object *args, *visargs; Lisp_Object specs; Lisp_Object filter_specs; @@ -833,7 +837,10 @@ invoke it. If KEYS is omitted or nil, the return value of kset_last_command (current_kboard, save_last_command); { - Lisp_Object val = Ffuncall (nargs, args); + Lisp_Object val; + specbind (Qcommand_debug_status, Qnil); + + val = Ffuncall (nargs, args); val = unbind_to (speccount, val); SAFE_FREE (); return val; @@ -890,6 +897,7 @@ syms_of_callint (void) DEFSYM (Qhandle_shift_selection, "handle-shift-selection"); DEFSYM (Qread_number, "read-number"); DEFSYM (Qfuncall_interactively, "funcall-interactively"); + DEFSYM (Qcommand_debug_status, "command-debug-status"); DEFSYM (Qenable_recursive_minibuffers, "enable-recursive-minibuffers"); DEFSYM (Qmouse_leave_buffer_hook, "mouse-leave-buffer-hook"); diff --git a/src/callproc.c b/src/callproc.c index db602f538c95..76b5caa44656 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -1005,6 +1005,13 @@ create_temp_file (ptrdiff_t nargs, Lisp_Object *args, DEFUN ("call-process-region", Fcall_process_region, Scall_process_region, 3, MANY, 0, doc: /* Send text from START to END to a synchronous process running PROGRAM. + +START and END are normally buffer positions specifying the part of the +buffer to send to the process. +If START is nil, that means to use the entire buffer contents; END is +ignored. +If START is a string, then send that string to the process +instead of any buffer contents; END is ignored. The remaining arguments are optional. Delete the text if fourth arg DELETE is non-nil. @@ -1099,7 +1106,7 @@ add_env (char **env, char **new_env, char *string) char *p = *ep, *q = string; while (ok) { - if (*q != *p) + if (*p && *q != *p) break; if (*q == 0) /* The string is a lone variable name; keep it for now, we diff --git a/src/category.c b/src/category.c index 4397f662ba9e..831579740805 100644 --- a/src/category.c +++ b/src/category.c @@ -336,6 +336,8 @@ The category is changed only for table TABLE, which defaults to the current buffer's category table. CHARACTER can be either a single character or a cons representing the lower and upper ends of an inclusive character range to modify. +CATEGORY must be a category name (a character between ` ' and `~'). +Use `describe-categories' to see existing category names. If optional fourth argument RESET is non-nil, then delete CATEGORY from the category set instead of adding it. */) (Lisp_Object character, Lisp_Object category, Lisp_Object table, Lisp_Object reset) diff --git a/src/character.h b/src/character.h index bc3e15578440..a94ec6d22dd7 100644 --- a/src/character.h +++ b/src/character.h @@ -237,7 +237,8 @@ enum #define CHAR_HEAD_P(byte) (((byte) & 0xC0) != 0x80) /* How many bytes a character that starts with BYTE occupies in a - multibyte form. */ + multibyte form. Unlike MULTIBYTE_LENGTH below, this macro does not + validate the multibyte form, but looks only at its first byte. */ #define BYTES_BY_CHAR_HEAD(byte) \ (!((byte) & 0x80) ? 1 \ : !((byte) & 0x20) ? 2 \ @@ -247,7 +248,9 @@ enum /* The byte length of multibyte form at unibyte string P ending at - PEND. If STR doesn't point to a valid multibyte form, return 0. */ + PEND. If the string doesn't point to a valid multibyte form, + return 0. Unlike BYTES_BY_CHAR_HEAD, this macro validates the + multibyte form. */ #define MULTIBYTE_LENGTH(p, pend) \ (p >= pend ? 0 \ @@ -263,7 +266,8 @@ enum : 0) -/* Like MULTIBYTE_LENGTH, but don't check the ending address. */ +/* Like MULTIBYTE_LENGTH, but don't check the ending address. The + multibyte form is still validated, unlike BYTES_BY_CHAR_HEAD. */ #define MULTIBYTE_LENGTH_NO_CHECK(p) \ (!((p)[0] & 0x80) ? 1 \ @@ -304,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) \ @@ -324,15 +325,7 @@ enum /* Like STRING_CHAR, but set ACTUAL_LEN to the length of multibyte - form. - - Note: This macro returns the actual length of the character's - multibyte sequence as it is stored in a buffer or string. The - character it returns might have a different codepoint that has a - different multibyte sequence of a different length, due to possible - unification of CJK characters inside string_char. Therefore do NOT - assume that the length returned by this macro is identical to the - length of the multibyte sequence of the character it returns. */ + form. */ #define STRING_CHAR_AND_LENGTH(p, actual_len) \ (!((p)[0] & 0x80) \ diff --git a/src/cmds.c b/src/cmds.c index 1e44dddfbf6e..4003d8bfa47e 100644 --- a/src/cmds.c +++ b/src/cmds.c @@ -447,7 +447,7 @@ internal_self_insert (int c, EMACS_INT n) string = concat2 (string, tem); } - replace_range (PT, PT + chars_to_delete, string, 1, 1, 1); + replace_range (PT, PT + chars_to_delete, string, 1, 1, 1, 0); Fforward_char (make_number (n)); } else if (n > 1) diff --git a/src/coding.c b/src/coding.c index 9f709bea24ce..3e4af722e4c1 100644 --- a/src/coding.c +++ b/src/coding.c @@ -122,7 +122,7 @@ END-OF-LINE FORMAT How text end-of-line is encoded depends on operating system. For instance, Unix's format is just one byte of LF (line-feed) code, whereas DOS's format is two-byte sequence of `carriage-return' and - `line-feed' codes. MacOS's format is usually one byte of + `line-feed' codes. Classic Mac OS's format is usually one byte of `carriage-return'. Since text character encoding and end-of-line encoding are diff --git a/src/conf_post.h b/src/conf_post.h index d0f04b637002..d8070fad8e7b 100644 --- a/src/conf_post.h +++ b/src/conf_post.h @@ -34,6 +34,17 @@ along with GNU Emacs. If not, see . */ #include +/* GNUC_PREREQ (V, W, X) is true if this is GNU C version V.W.X or later. + It can be used in a preprocessor expression. */ +#ifndef __GNUC_MINOR__ +# define GNUC_PREREQ(v, w, x) false +#elif ! defined __GNUC_PATCHLEVEL__ +# define GNUC_PREREQ(v, w, x) ((v) < __GNUC__ + ((w) <= __GNUC_MINOR__)) +#else +# define GNUC_PREREQ(v, w, x) \ + ((v) < __GNUC__ + ((w) <= __GNUC_MINOR__ + ((x) <= __GNUC_PATCHLEVEL__))) +#endif + /* The type of bool bitfields. Needed to compile Objective-C with standard GCC. It was also needed to port to pre-C99 compilers, although we don't care about that any more. */ @@ -145,6 +156,9 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */ # define HAVE_LSTAT 1 #else # define lstat stat +/* DJGPP 2.03 and older don't have the next two. */ +# define EOVERFLOW ERANGE +# define SIZE_MAX 4294967295U #endif /* We must intercept 'opendir' calls to stash away the directory name, @@ -178,7 +192,7 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */ #endif #endif /* MSDOS */ -/* Mac OS X / GNUstep need a bit more pure memory. Of the existing knobs, +/* macOS / GNUstep need a bit more pure memory. Of the existing knobs, SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems. */ #ifdef HAVE_NS #if defined NS_IMPL_GNUSTEP diff --git a/src/data.c b/src/data.c index 2574cbbd7645..3a51129d1820 100644 --- a/src/data.c +++ b/src/data.c @@ -629,7 +629,12 @@ global value outside of any lexical scope. */) return (EQ (valcontents, Qunbound) ? Qnil : Qt); } -/* FIXME: Make it an alias for function-symbol! */ +/* FIXME: It has been previously suggested to make this function an + alias for symbol-function, but upon discussion at Bug#23957, + there is a risk breaking backward compatibility, as some users of + fboundp may expect `t' in particular, rather than any true + value. An alias is still welcome so long as the compatibility + issues are addressed. */ DEFUN ("fboundp", Ffboundp, Sfboundp, 1, 1, 0, doc: /* Return t if SYMBOL's function definition is not void. */) (register Lisp_Object symbol) diff --git a/src/dbusbind.c b/src/dbusbind.c index d3a32c003415..56bfd7164a4b 100644 --- a/src/dbusbind.c +++ b/src/dbusbind.c @@ -943,7 +943,7 @@ xd_get_connection_references (DBusConnection *connection) static DBusConnection* xd_lisp_dbus_to_dbus (Lisp_Object bus) { - return (DBusConnection *) (intptr_t) XFASTINT (bus); + return (DBusConnection *) XSAVE_POINTER (bus, 0); } /* Return D-Bus connection address. BUS is either a Lisp symbol, @@ -1187,7 +1187,7 @@ this connection to those buses. */) XD_SIGNAL1 (build_string ("Cannot add watch functions")); /* Add bus to list of registered buses. */ - XSETFASTINT (val, (intptr_t) connection); + val = make_save_ptr (connection); xd_registered_buses = Fcons (Fcons (bus, val), xd_registered_buses); /* Cleanup. */ diff --git a/src/deps.mk b/src/deps.mk index 0295e705a9c4..72f68cabfc36 100644 --- a/src/deps.mk +++ b/src/deps.mk @@ -35,7 +35,7 @@ ### Code: atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \ - globals.h ../lib/unistd.h $(config_h) + globals.h ../lib/unistd.h msdos.h $(config_h) bidi.o: bidi.c buffer.h character.h dispextern.h msdos.h lisp.h \ globals.h $(config_h) buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \ @@ -92,7 +92,7 @@ editfns.o: editfns.c window.h buffer.h systime.h $(INTERVALS_H) character.h \ emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \ termhooks.h buffer.h atimer.h systime.h $(INTERVALS_H) lisp.h $(config_h) \ globals.h ../lib/unistd.h window.h dispextern.h keyboard.h keymap.h \ - frame.h coding.h gnutls.h msdos.h unexec.h + frame.h coding.h gnutls.h msdos.h dosfns.h unexec.h fileio.o: fileio.c window.h buffer.h systime.h $(INTERVALS_H) character.h \ coding.h msdos.h blockinput.h atimer.h lisp.h $(config_h) frame.h \ commands.h globals.h ../lib/unistd.h diff --git a/src/dired.c b/src/dired.c index e21b2273f791..dba575ce4c2e 100644 --- a/src/dired.c +++ b/src/dired.c @@ -424,8 +424,7 @@ DEFUN ("file-name-all-completions", Ffile_name_all_completions, These are all file names in directory DIRECTORY which begin with FILE. This function ignores some of the possible completions as determined -by the variables `completion-regexp-list' and -`completion-ignored-extensions', which see. `completion-regexp-list' +by `completion-regexp-list', which see. `completion-regexp-list' is matched against file and directory names relative to DIRECTORY. */) (Lisp_Object file, Lisp_Object directory) { diff --git a/src/dispextern.h b/src/dispextern.h index 70358724024c..7b9ae78dcd3b 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -1541,7 +1541,8 @@ struct glyph_string large vertical space. The heuristics is in the factor of 3. We ignore the ascent and descent values reported by such fonts, and instead go by the values reported for individual glyphs. */ -#define FONT_TOO_HIGH(ft) ((ft)->ascent + (ft)->descent > 3*(ft)->pixel_size) +#define FONT_TOO_HIGH(ft) \ + ((ft)->pixel_size > 0 && (ft)->ascent + (ft)->descent > 3*(ft)->pixel_size) /*********************************************************************** diff --git a/src/doc.c b/src/doc.c index 7cdb0d03a81c..36d18b99b05c 100644 --- a/src/doc.c +++ b/src/doc.c @@ -750,7 +750,7 @@ Otherwise, return a new string. */) unsigned char const *start; ptrdiff_t length, length_byte; Lisp_Object name; - bool multibyte; + bool multibyte, pure_ascii; ptrdiff_t nchars; if (NILP (string)) @@ -764,6 +764,11 @@ Otherwise, return a new string. */) enum text_quoting_style quoting_style = text_quoting_style (); multibyte = STRING_MULTIBYTE (string); + /* Pure-ASCII unibyte input strings should produce unibyte strings + if substitution doesn't yield non-ASCII bytes, otherwise they + should produce multibyte strings. */ + pure_ascii = SBYTES (string) == count_size_as_multibyte (SDATA (string), + SCHARS (string)); nchars = 0; /* KEYMAP is either nil (which means search all the active keymaps) @@ -945,8 +950,11 @@ Otherwise, return a new string. */) subst_string: start = SDATA (tem); - length = SCHARS (tem); length_byte = SBYTES (tem); + if (multibyte || pure_ascii) + length = SCHARS (tem); + else + length = length_byte; subst: nonquotes_changed = true; subst_quote: @@ -965,11 +973,15 @@ Otherwise, return a new string. */) } } else if ((strp[0] == '`' || strp[0] == '\'') - && quoting_style == CURVE_QUOTING_STYLE) + && quoting_style == CURVE_QUOTING_STYLE + && (multibyte || pure_ascii)) { start = (unsigned char const *) (strp[0] == '`' ? uLSQM : uRSQM); - length = 1; length_byte = sizeof uLSQM - 1; + if (multibyte || pure_ascii) + length = 1; + else + length = length_byte; idx = strp - SDATA (string) + 1; goto subst_quote; } diff --git a/src/doprnt.c b/src/doprnt.c index 506bbc3df354..9d8b783565fd 100644 --- a/src/doprnt.c +++ b/src/doprnt.c @@ -46,15 +46,15 @@ along with GNU Emacs. If not, see . */ ignored %s and %c conversions. (See below for the detailed documentation of what is supported.) However, this is okay, as this function is supposed to be called from `error' and similar functions, and thus does not need to - support features beyond those in `Fformat', which is used by `error' on the - Lisp level. */ + support features beyond those in `Fformat_message', which is used + by `error' on the Lisp level. */ /* In the FORMAT argument this function supports ` and ' as directives that output left and right quotes as per ‘text-quoting style’. It also supports the following %-sequences: %s means print a string argument. - %S is silently treated as %s, for loose compatibility with `Fformat'. + %S is treated as %s, for loose compatibility with `Fformat_message'. %d means print a `signed int' argument in decimal. %o means print an `unsigned int' argument in octal. %x means print an `unsigned int' argument in hex. diff --git a/src/dosfns.h b/src/dosfns.h index 9fbf7eda1926..849fb91a7afd 100644 --- a/src/dosfns.h +++ b/src/dosfns.h @@ -24,6 +24,10 @@ along with GNU Emacs. If not, see . */ extern unsigned char dos_country_info[DOS_COUNTRY_INFO]; extern int dos_memory_info (unsigned long *, unsigned long *, unsigned long *, unsigned long *); +void dos_cleanup (void); +void syms_of_dosfns (void); +void init_dosfns (void); + #ifndef HAVE_X_WINDOWS extern int msdos_stdcolor_idx (const char *); extern Lisp_Object msdos_stdcolor_name (int); diff --git a/src/editfns.c b/src/editfns.c index 94b949583adb..5cc4a67ab19b 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -1029,7 +1029,14 @@ usage: (save-current-buffer &rest BODY) */) DEFUN ("buffer-size", Fbuffer_size, Sbuffer_size, 0, 1, 0, doc: /* Return the number of characters in the current buffer. -If BUFFER, return the number of characters in that buffer instead. */) +If BUFFER is not nil, return the number of characters in that buffer +instead. + +This does not take narrowing into account; to count the number of +characters in the accessible portion of the current buffer, use +`(- (point-max) (point-min))', and to count the number of characters +in some other BUFFER, use +`(with-current-buffer BUFFER (- (point-max) (point-min)))'. */) (Lisp_Object buffer) { if (NILP (buffer)) @@ -1574,21 +1581,28 @@ time_arith (Lisp_Object a, Lisp_Object b, } DEFUN ("time-add", Ftime_add, Stime_add, 2, 2, 0, - doc: /* Return the sum of two time values A and B, as a time value. */) + doc: /* Return the sum of two time values A and B, as a time value. +A nil value for either argument stands for the current time. +See `current-time-string' for the various forms of a time value. */) (Lisp_Object a, Lisp_Object b) { return time_arith (a, b, time_add); } DEFUN ("time-subtract", Ftime_subtract, Stime_subtract, 2, 2, 0, - doc: /* Return the difference between two time values A and B, as a time value. */) + doc: /* Return the difference between two time values A and B, as a time value. +Use `float-time' to convert the difference into elapsed seconds. +A nil value for either argument stands for the current time. +See `current-time-string' for the various forms of a time value. */) (Lisp_Object a, Lisp_Object b) { return time_arith (a, b, time_subtract); } DEFUN ("time-less-p", Ftime_less_p, Stime_less_p, 2, 2, 0, - doc: /* Return non-nil if time value T1 is earlier than time value T2. */) + doc: /* Return non-nil if time value T1 is earlier than time value T2. +A nil value for either argument stands for the current time. +See `current-time-string' for the various forms of a time value. */) (Lisp_Object t1, Lisp_Object t2) { int t1len, t2len; @@ -1966,11 +1980,13 @@ emacs_nmemftime (char *s, size_t maxsize, const char *format, } DEFUN ("format-time-string", Fformat_time_string, Sformat_time_string, 1, 3, 0, - doc: /* Use FORMAT-STRING to format the time TIME, or now if omitted. + doc: /* Use FORMAT-STRING to format the time TIME, or now if omitted or nil. TIME is specified as (HIGH LOW USEC PSEC), as returned by -`current-time' or `file-attributes'. The obsolete form (HIGH . LOW) -is also still accepted. The optional ZONE is omitted or nil for Emacs -local time, t for Universal Time, `wall' for system wall clock time, +`current-time' or `file-attributes'. +It can also be a single integer number of seconds since the epoch. +The obsolete form (HIGH . LOW) is also still accepted. +The optional ZONE is omitted or nil for Emacs local time, +t for Universal Time, `wall' for system wall clock time, or a string as in the TZ environment variable. The value is a copy of FORMAT-STRING, but with certain constructs replaced @@ -2047,7 +2063,11 @@ format_time_string (char const *format, ptrdiff_t formatlen, USE_SAFE_ALLOCA; timezone_t tz = tzlookup (zone, false); - tmp = emacs_localtime_rz (tz, &t.tv_sec, tmp); + /* On some systems, like 32-bit MinGW, tv_sec of struct timespec is + a 64-bit type, but time_t is a 32-bit type. emacs_localtime_rz + expects a pointer to time_t value. */ + time_t tsec = t.tv_sec; + tmp = emacs_localtime_rz (tz, &tsec, tmp); if (! tmp) { xtzfree (tz); @@ -2083,7 +2103,9 @@ DEFUN ("decode-time", Fdecode_time, Sdecode_time, 0, 2, 0, doc: /* Decode a time value as (SEC MINUTE HOUR DAY MONTH YEAR DOW DST UTCOFF). The optional SPECIFIED-TIME should be a list of (HIGH LOW . IGNORED), as from `current-time' and `file-attributes', or nil to use the -current time. The obsolete form (HIGH . LOW) is also still accepted. +current time. +It can also be a single integer number of seconds since the epoch. +The obsolete form (HIGH . LOW) is also still accepted. The optional ZONE is omitted or nil for Emacs local time, t for Universal Time, `wall' for system wall clock time, or a string as in the TZ environment variable. @@ -2208,8 +2230,10 @@ which provide a much more powerful and general facility. If SPECIFIED-TIME is given, it is a time to format instead of the current time. The argument should have the form (HIGH LOW . IGNORED). Thus, you can use times obtained from `current-time' and from -`file-attributes'. SPECIFIED-TIME can also have the form (HIGH . LOW), -but this is considered obsolete. +`file-attributes'. SPECIFIED-TIME can also be a single integer +number of seconds since the epoch. +SPECIFIED-TIME can also have the form (HIGH . LOW), but this is +considered obsolete. The optional ZONE is omitted or nil for Emacs local time, t for Universal Time, `wall' for system wall clock time, or a string as in @@ -2287,8 +2311,9 @@ NAME is a string giving the name of the time zone. If SPECIFIED-TIME is given, the time zone offset is determined from it instead of using the current time. The argument should have the form \(HIGH LOW . IGNORED). Thus, you can use times obtained from -`current-time' and from `file-attributes'. SPECIFIED-TIME can also -have the form (HIGH . LOW), but this is considered obsolete. +`current-time' and from `file-attributes'. SPECIFIED-TIME can also be +a single integer number of seconds since the epoch. SPECIFIED-TIME can +also have the form (HIGH . LOW), but this is considered obsolete. Optional second arg ZONE is omitted or nil for the local time zone, or a string as in the TZ environment variable. @@ -2306,7 +2331,10 @@ the data it can't find. */) zone_name = format_time_string ("%Z", sizeof "%Z" - 1, value, zone, &local_tm); - if (HAVE_TM_GMTOFF || gmtime_r (&value.tv_sec, &gmt_tm)) + /* gmtime_r expects a pointer to time_t, but tv_sec of struct + timespec on some systems (MinGW) is a 64-bit field. */ + time_t tsec = value.tv_sec; + if (HAVE_TM_GMTOFF || gmtime_r (&tsec, &gmt_tm)) { long int offset = (HAVE_TM_GMTOFF ? tm_gmtoff (&local_tm) @@ -2484,7 +2512,7 @@ insert1 (Lisp_Object arg) DEFUN ("insert", Finsert, Sinsert, 0, MANY, 0, doc: /* Insert the arguments, either strings or characters, at point. -Point and before-insertion markers move forward to end up +Point and after-insertion markers move forward to end up after the inserted text. Any other markers at the point of insertion remain before the text. @@ -2508,7 +2536,7 @@ usage: (insert &rest ARGS) */) DEFUN ("insert-and-inherit", Finsert_and_inherit, Sinsert_and_inherit, 0, MANY, 0, doc: /* Insert the arguments at point, inheriting properties from adjoining text. -Point and before-insertion markers move forward to end up +Point and after-insertion markers move forward to end up after the inserted text. Any other markers at the point of insertion remain before the text. @@ -2882,10 +2910,13 @@ DEFUN ("compare-buffer-substrings", Fcompare_buffer_substrings, Scompare_buffer_ 6, 6, 0, doc: /* Compare two substrings of two buffers; return result as number. Return -N if first string is less after N-1 chars, +N if first string is -greater after N-1 chars, or 0 if strings match. Each substring is -represented as three arguments: BUFFER, START and END. That makes six -args in all, three for each substring. - +greater after N-1 chars, or 0 if strings match. +The first substring is in BUFFER1 from START1 to END1 and the second +is in BUFFER2 from START2 to END2. +All arguments may be nil. If BUFFER1 or BUFFER2 is nil, the current +buffer is used. If START1 or START2 is nil, the value of `point-min' +in the respective buffers is used. If END1 or END2 is nil, the value +of `point-max' in the respective buffers is used. The value of `case-fold-search' in the current buffer determines whether case is significant or ignored. */) (Lisp_Object buffer1, Lisp_Object start1, Lisp_Object end1, Lisp_Object buffer2, Lisp_Object start2, Lisp_Object end2) @@ -3193,7 +3224,7 @@ Both characters must have the same length of multi-byte form. */) /* replace_range is less efficient, because it moves the gap, but it handles combining correctly. */ replace_range (pos, pos + 1, string, - 0, 0, 1); + 0, 0, 1, 0); pos_byte_next = CHAR_TO_BYTE (pos); if (pos_byte_next > pos_byte) /* Before combining happened. We should not increment @@ -3406,7 +3437,7 @@ It returns the number of characters changed. */) /* This is less efficient, because it moves the gap, but it should handle multibyte characters correctly. */ string = make_multibyte_string ((char *) str, 1, str_len); - replace_range (pos, pos + 1, string, 1, 0, 1); + replace_range (pos, pos + 1, string, 1, 0, 1, 0); len = str_len; } else @@ -3447,7 +3478,7 @@ It returns the number of characters changed. */) { string = Fmake_string (make_number (1), val); } - replace_range (pos, pos + len, string, 1, 0, 1); + replace_range (pos, pos + len, string, 1, 0, 1, 0); pos_byte += SBYTES (string); pos += SCHARS (string); cnt += SCHARS (string); @@ -3666,10 +3697,11 @@ In batch mode, the message is printed to the standard error stream, followed by a newline. The first argument is a format control string, and the rest are data -to be formatted under control of the string. See `format' for details. +to be formatted under control of the string. See `format-message' for +details. -Note: Use (message "%s" VALUE) to print the value of expressions and -variables to avoid accidentally interpreting `%' as format specifiers. +Note: (message "%s" VALUE) displays the string VALUE without +interpreting format characters like `%', `\\=`', and `\\=''. If the first argument is nil or the empty string, the function clears any existing message; this lets the minibuffer contents show. See @@ -3697,7 +3729,8 @@ DEFUN ("message-box", Fmessage_box, Smessage_box, 1, MANY, 0, doc: /* Display a message, in a dialog box if possible. If a dialog box is not available, use the echo area. The first argument is a format control string, and the rest are data -to be formatted under control of the string. See `format' for details. +to be formatted under control of the string. See `format-message' for +details. If the first argument is nil or the empty string, clear any existing message; let the minibuffer contents show. @@ -3728,7 +3761,8 @@ If this command was invoked with the mouse, use a dialog box if `use-dialog-box' is non-nil. Otherwise, use the echo area. The first argument is a format control string, and the rest are data -to be formatted under control of the string. See `format' for details. +to be formatted under control of the string. See `format-message' for +details. If the first argument is nil or the empty string, clear any existing message; let the minibuffer contents show. @@ -3806,7 +3840,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 @@ -4995,7 +5030,7 @@ Transposing beyond buffer boundaries is an error. */) start2_addr = BYTE_POS_ADDR (start2_byte); memcpy (temp, start1_addr, len1_byte); memcpy (start1_addr, start2_addr, len2_byte); - memcpy (start1_addr + len2_byte, start1_addr + len1_byte, len_mid); + memmove (start1_addr + len2_byte, start1_addr + len1_byte, len_mid); memcpy (start1_addr + len2_byte + len_mid, temp, len1_byte); SAFE_FREE (); diff --git a/src/emacs-module.c b/src/emacs-module.c index eca5af739b92..a28fe57b12dc 100644 --- a/src/emacs-module.c +++ b/src/emacs-module.c @@ -142,8 +142,8 @@ static emacs_value const module_nil = 0; or a pointer to handle non-local exits. The function must have an ENV parameter. The function will return the specified value if a signal or throw is caught. */ -// TODO: Have Fsignal check for CATCHER_ALL so we only have to install -// one handler. +/* TODO: Have Fsignal check for CATCHER_ALL so we only have to install + one handler. */ #define MODULE_HANDLE_NONLOCAL_EXIT(retval) \ MODULE_SETJMP (CONDITION_CASE, module_handle_signal, retval); \ MODULE_SETJMP (CATCHER_ALL, module_handle_throw, retval) @@ -163,7 +163,7 @@ static emacs_value const module_nil = 0; code after the macro may longjmp back into the macro, which means its local variable C must stay live in later code. */ -// TODO: Make backtraces work if this macros is used. +/* TODO: Make backtraces work if this macros is used. */ #define MODULE_SETJMP_1(handlertype, handlerfunc, retval, c, dummy) \ if (module_non_local_exit_check (env) != emacs_funcall_exit_return) \ diff --git a/src/emacs.c b/src/emacs.c index d1d649dfcfdb..16cf6cc0e4d3 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -54,6 +54,7 @@ along with GNU Emacs. If not, see . */ #ifdef MSDOS #include +#include "dosfns.h" #endif #ifdef HAVE_WINDOW_SYSTEM @@ -673,6 +674,26 @@ main (int argc, char **argv) stack_base = &dummy; +#if defined HAVE_PERSONALITY_LINUX32 && defined __PPC64__ + /* This code partly duplicates the HAVE_PERSONALITY_LINUX32 code + below. This duplication is planned to be fixed in a later + Emacs release. */ +# define ADD_NO_RANDOMIZE 0x0040000 + int pers = personality (0xffffffff); + if (! (pers & ADD_NO_RANDOMIZE) + && 0 <= personality (pers | ADD_NO_RANDOMIZE)) + { + /* Address randomization was enabled, but is now disabled. + Re-execute Emacs to get a clean slate. */ + execvp (argv[0], argv); + + /* If the exec fails, warn the user and then try without a + clean slate. */ + perror (argv[0]); + } +# undef ADD_NO_RANDOMIZE +#endif + #ifndef CANNOT_DUMP might_dump = !initialized; #endif @@ -695,6 +716,9 @@ main (int argc, char **argv) to have non-stub implementations of APIs we need to convert file names between UTF-8 and the system's ANSI codepage. */ maybe_load_unicows_dll (); + /* Initialize the codepage for file names, needed to decode + non-ASCII file names during startup. */ + w32_init_file_name_codepage (); #endif /* This has to be done before module_init is called below, so that the latter could use the thread ID of the main thread. */ @@ -783,7 +807,7 @@ main (int argc, char **argv) dumping = !initialized && (strcmp (argv[argc - 1], "dump") == 0 || strcmp (argv[argc - 1], "bootstrap") == 0); -#ifdef HAVE_PERSONALITY_LINUX32 +#if defined HAVE_PERSONALITY_LINUX32 && !defined __PPC64__ if (dumping && ! getenv ("EMACS_HEAP_EXEC")) { /* Set this so we only do this once. */ @@ -800,7 +824,7 @@ main (int argc, char **argv) /* If the exec fails, try to dump anyway. */ emacs_perror (argv[0]); } -#endif /* HAVE_PERSONALITY_LINUX32 */ +#endif #if defined (HAVE_SETRLIMIT) && defined (RLIMIT_STACK) && !defined (CYGWIN) /* Extend the stack space available. Don't do that if dumping, @@ -1146,7 +1170,7 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem /* Called before syms_of_fileio, because it sets up Qerror_condition. */ syms_of_data (); - syms_of_fns (); /* Before syms_of_charset which uses hashtables. */ + syms_of_fns (); /* Before syms_of_charset which uses hash tables. */ syms_of_fileio (); /* Before syms_of_coding to initialize Vgc_cons_threshold. */ syms_of_alloc (); @@ -2391,7 +2415,7 @@ Special values: `gnu' compiled for a GNU Hurd system. `gnu/linux' compiled for a GNU/Linux system. `gnu/kfreebsd' compiled for a GNU system with a FreeBSD kernel. - `darwin' compiled for Darwin (GNU-Darwin, Mac OS X, ...). + `darwin' compiled for Darwin (GNU-Darwin, macOS, ...). `ms-dos' compiled as an MS-DOS application. `windows-nt' compiled as a native W32 application. `cygwin' compiled using the Cygwin library. diff --git a/src/eval.c b/src/eval.c index fe6460d53bba..b94712d45795 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); @@ -2820,9 +2825,11 @@ funcall_lambda (Lisp_Object fun, ptrdiff_t nargs, { if (EQ (XCAR (fun), Qclosure)) { - fun = XCDR (fun); /* Drop `closure'. */ + Lisp_Object cdr = XCDR (fun); /* Drop `closure'. */ + if (! CONSP (cdr)) + xsignal1 (Qinvalid_function, fun); + fun = cdr; lexenv = XCAR (fun); - CHECK_LIST_CONS (fun, fun); } else lexenv = Qnil; diff --git a/src/fileio.c b/src/fileio.c index dfab3de9e94b..d94805f316b2 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -1063,8 +1063,6 @@ filesystem tree, not (expand-file-name ".." dirname). */) if (!(newdir = egetenv ("HOME"))) newdir = newdirlim = ""; nm++; - /* `egetenv' may return a unibyte string, which will bite us since - we expect the directory to be multibyte. */ #ifdef WINDOWSNT if (newdir[0]) { @@ -1072,11 +1070,14 @@ filesystem tree, not (expand-file-name ".." dirname). */) filename_from_ansi (newdir, newdir_utf8); tem = make_unibyte_string (newdir_utf8, strlen (newdir_utf8)); + newdir = SSDATA (tem); } else #endif tem = build_string (newdir); newdirlim = newdir + SBYTES (tem); + /* `egetenv' may return a unibyte string, which will bite us + if we expect the directory to be multibyte. */ if (multibyte && !STRING_MULTIBYTE (tem)) { hdir = DECODE_FILE (tem); @@ -1105,8 +1106,7 @@ filesystem tree, not (expand-file-name ".." dirname). */) newdir = pw->pw_dir; /* `getpwnam' may return a unibyte string, which will - bite us since we expect the directory to be - multibyte. */ + bite us when we expect the directory to be multibyte. */ tem = make_unibyte_string (newdir, strlen (newdir)); newdirlim = newdir + SBYTES (tem); if (multibyte && !STRING_MULTIBYTE (tem)) @@ -2664,13 +2664,13 @@ file_directory_p (char const *file) DEFUN ("file-accessible-directory-p", Ffile_accessible_directory_p, Sfile_accessible_directory_p, 1, 1, 0, - doc: /* Return t if file FILENAME names a directory you can open. -For the value to be t, FILENAME must specify the name of a directory as a file, -and the directory must allow you to open files in it. In order to use a -directory as a buffer's current directory, this predicate must return true. -A directory name spec may be given instead; then the value is t -if the directory so specified exists and really is a readable and -searchable directory. */) + doc: /* Return t if FILENAME names a directory you can open. +For the value to be t, FILENAME must specify the name of a directory +as a file, and the directory must allow you to open files in it. In +order to use a directory as a buffer's current directory, this +predicate must return true. A directory name spec may be given +instead; then the value is t if the directory so specified exists and +really is a readable and searchable directory. */) (Lisp_Object filename) { Lisp_Object absname; @@ -3436,6 +3436,9 @@ by calling `format-decode', which see. */) if (!NILP (BVAR (current_buffer, read_only))) Fbarf_if_buffer_read_only (Qnil); + if (!NILP (Ffboundp (Qundo_auto__undoable_change_no_timer))) + call0 (Qundo_auto__undoable_change_no_timer); + val = Qnil; p = Qnil; orig_filename = Qnil; @@ -4641,7 +4644,8 @@ DEFUN ("write-region", Fwrite_region, Swrite_region, 3, 7, When called from a program, requires three arguments: START, END and FILENAME. START and END are normally buffer positions specifying the part of the buffer to write. -If START is nil, that means to use the entire buffer contents. +If START is nil, that means to use the entire buffer contents; END is +ignored. If START is a string, then output that string to the file instead of any buffer contents; END is ignored. @@ -5797,6 +5801,8 @@ syms_of_fileio (void) which gives a list of operations it handles. */ DEFSYM (Qoperations, "operations"); + DEFSYM (Qundo_auto__undoable_change_no_timer, "undo-auto--undoable-change-no-timer"); + DEFSYM (Qexpand_file_name, "expand-file-name"); DEFSYM (Qsubstitute_in_file_name, "substitute-in-file-name"); DEFSYM (Qdirectory_file_name, "directory-file-name"); diff --git a/src/filelock.c b/src/filelock.c index bc3a6209a8d9..6c60c3e8e1cc 100644 --- a/src/filelock.c +++ b/src/filelock.c @@ -53,6 +53,8 @@ along with GNU Emacs. If not, see . */ #include "w32.h" /* for dostounix_filename */ #endif +#ifndef MSDOS + #ifdef HAVE_UTMP_H #include #endif @@ -69,8 +71,9 @@ along with GNU Emacs. If not, see . */ /* Normally use a symbolic link to represent a lock. The strategy: to lock a file FN, create a symlink .#FN in FN's - directory, with link data `user@host.pid'. This avoids a single - mount (== failure) point for lock files. + directory, with link data USER@HOST.PID:BOOT. This avoids a single + mount (== failure) point for lock files. The :BOOT is omitted if + the boot time is not available. When the host in the lock data is the current host, we can check if the pid is valid with kill. @@ -99,13 +102,11 @@ along with GNU Emacs. If not, see . */ This is compatible with the locking scheme used by Interleaf (which has contributed this implementation for Emacs), and was designed by - Ethan Jacobson, Kimbo Mundy, and others. - - --karl@cs.umb.edu/karl@hq.ileaf.com. + Karl Berry, Ethan Jacobson, Kimbo Mundy, and others. On some file systems, notably those of MS-Windows, symbolic links - do not work well, so instead of a symlink .#FN -> 'user@host.pid', - the lock is a regular file .#FN with contents 'user@host.pid'. To + do not work well, so instead of a symlink .#FN -> USER@HOST.PID:BOOT, + the lock is a regular file .#FN with contents USER@HOST.PID:BOOT. To establish a lock, a nonce file is created and then renamed to .#FN. On MS-Windows this renaming is atomic unless the lock is forcibly acquired. On other systems the renaming is atomic if the lock is @@ -296,8 +297,8 @@ enum { MAX_LFINFO = 8 * 1024 }; typedef struct { - /* Location of '@', '.', ':' in USER. If there's no colon, COLON - points to the end of USER. */ + /* Location of '@', '.', and ':' (or equivalent) in USER. If there's + no colon or equivalent, COLON points to the end of USER. */ char *at, *dot, *colon; /* Lock file contents USER@HOST.PID with an optional :BOOT_TIME @@ -555,7 +556,7 @@ current_lock_owner (lock_info_type *owner, char *lfname) if (!dot) return -1; - /* The PID is everything from the last `.' to the `:'. */ + /* The PID is everything from the last '.' to the ':' or equivalent. */ if (! c_isdigit (dot[1])) return -1; errno = 0; @@ -563,7 +564,8 @@ current_lock_owner (lock_info_type *owner, char *lfname) if (errno == ERANGE) pid = -1; - /* After the `:', if there is one, comes the boot time. */ + /* After the ':' or equivalent, if there is one, comes the boot time. */ + char *boot = owner->colon + 1; switch (owner->colon[0]) { case 0: @@ -571,10 +573,19 @@ current_lock_owner (lock_info_type *owner, char *lfname) lfinfo_end = owner->colon; break; + case '\357': + /* Treat "\357\200\242" (U+F022 in UTF-8) as if it were ":" (Bug#24656). + This works around a bug in the Linux CIFS kernel client, which can + mistakenly transliterate ':' to U+F022 in symlink contents. + See . */ + if (! (boot[0] == '\200' && boot[1] == '\242')) + return -1; + boot += 2; + /* Fall through. */ case ':': - if (! c_isdigit (owner->colon[1])) + if (! c_isdigit (boot[0])) return -1; - boot_time = strtoimax (owner->colon + 1, &lfinfo_end, 10); + boot_time = strtoimax (boot, &lfinfo_end, 10); break; default: @@ -742,6 +753,19 @@ unlock_file (Lisp_Object fn) SAFE_FREE (); } +#else /* MSDOS */ +void +lock_file (Lisp_Object fn) +{ +} + +void +unlock_file (Lisp_Object fn) +{ +} + +#endif /* MSDOS */ + void unlock_all_files (void) { @@ -805,6 +829,9 @@ The value is nil if the FILENAME is not locked, t if it is locked by you, else a string saying which user has locked it. */) (Lisp_Object filename) { +#ifdef MSDOS + return Qnil; +#else Lisp_Object ret; char *lfname; int owner; @@ -825,6 +852,7 @@ t if it is locked by you, else a string saying which user has locked it. */) SAFE_FREE (); return ret; +#endif } void diff --git a/src/floatfns.c b/src/floatfns.c index c1bd25877e3f..f514fcbea8cb 100644 --- a/src/floatfns.c +++ b/src/floatfns.c @@ -185,8 +185,8 @@ If X is zero, both parts (SGNFCAND and EXP) are zero. */) } DEFUN ("ldexp", Fldexp, Sldexp, 2, 2, 0, - doc: /* Return X * 2**EXP, as a floating point number. -EXP must be an integer. */) + doc: /* Return SGNFCAND * 2**EXPONENT, as a floating point number. +EXPONENT must be an integer. */) (Lisp_Object sgnfcand, Lisp_Object exponent) { CHECK_NUMBER (exponent); diff --git a/src/fns.c b/src/fns.c index 47ed2d822074..d5a1f74d0d80 100644 --- a/src/fns.c +++ b/src/fns.c @@ -33,7 +33,7 @@ along with GNU Emacs. If not, see . */ #include "window.h" static void sort_vector_copy (Lisp_Object, ptrdiff_t, - Lisp_Object [restrict], Lisp_Object [restrict]); + Lisp_Object *restrict, Lisp_Object *restrict); static bool internal_equal (Lisp_Object, Lisp_Object, int, bool, Lisp_Object); DEFUN ("identity", Fidentity, Sidentity, 1, 1, 0, @@ -224,7 +224,7 @@ Like in `substring', negative values are counted from the end. The strings are compared by the numeric values of their characters. For instance, STR1 is "less than" STR2 if its first differing character has a smaller numeric value. If IGNORE-CASE is non-nil, -characters are converted to lower-case before comparing them. Unibyte +characters are converted to upper-case before comparing them. Unibyte strings are converted to multibyte for comparison. The value is t if the strings (or specified portions) match. @@ -403,8 +403,7 @@ the codeset part of the locale cannot be \"UTF-8\" on MS-Windows. If your system does not support a locale environment, this function behaves like `string-equal'. -Do NOT use this function to compare file names for equality, only -for sorting them. */) +Do NOT use this function to compare file names for equality. */) (Lisp_Object s1, Lisp_Object s2, Lisp_Object locale, Lisp_Object ignore_case) { #if defined __STDC_ISO_10646__ || defined WINDOWSNT @@ -2762,17 +2761,24 @@ require_unwind (Lisp_Object old_value) DEFUN ("require", Frequire, Srequire, 1, 3, 0, doc: /* If feature FEATURE is not loaded, load it from FILENAME. -If FEATURE is not a member of the list `features', then the feature -is not loaded; so load the file FILENAME. -If FILENAME is omitted, the printname of FEATURE is used as the file name, -and `load' will try to load this name appended with the suffix `.elc', -`.el', or the system-dependent suffix for dynamic module files, in that -order. The name without appended suffix will not be used. -See `get-load-suffixes' for the complete list of suffixes. -If the optional third argument NOERROR is non-nil, -then return nil if the file is not found instead of signaling an error. -Normally the return value is FEATURE. -The normal messages at start and end of loading FILENAME are suppressed. */) +If FEATURE is not a member of the list `features', then the feature is +not loaded; so load the file FILENAME. + +If FILENAME is omitted, the printname of FEATURE is used as the file +name, and `load' will try to load this name appended with the suffix +`.elc', `.el', or the system-dependent suffix for dynamic module +files, in that order. The name without appended suffix will not be +used. See `get-load-suffixes' for the complete list of suffixes. + +The directories in `load-path' are searched when trying to find the +file name. + +If the optional third argument NOERROR is non-nil, then return nil if +the file is not found instead of signaling an error. Normally the +return value is FEATURE. + +The normal messages at start and end of loading FILENAME are +suppressed. */) (Lisp_Object feature, Lisp_Object filename, Lisp_Object noerror) { Lisp_Object tem; diff --git a/src/font.c b/src/font.c index 2519599bc636..b85956f225c9 100644 --- a/src/font.c +++ b/src/font.c @@ -5430,6 +5430,19 @@ Set it to nil to enable logging. If the environment variable EMACS_FONT_LOG is set at startup, it defaults to nil. */); Vfont_log = Qnil; + DEFVAR_BOOL ("inhibit-compacting-font-caches", inhibit_compacting_font_caches, + doc: /* +If non-nil, don't compact font caches during GC. +Some large fonts cause lots of consing and trigger GC. If they +are removed from the font caches, they will need to be opened +again during redisplay, which slows down redisplay. If you +see font-related delays in displaying some special characters, +and cannot switch to a smaller font for those characters, set +this variable non-nil. +Disabling compaction of font caches might enlarge the Emacs memory +footprint in sessions that use lots of different fonts. */); + inhibit_compacting_font_caches = 0; + #ifdef HAVE_WINDOW_SYSTEM #ifdef HAVE_FREETYPE syms_of_ftfont (); diff --git a/src/fontset.c b/src/fontset.c index dc037a807cd2..74e7df5ae096 100644 --- a/src/fontset.c +++ b/src/fontset.c @@ -883,7 +883,8 @@ face_for_char (struct frame *f, struct face *face, int c, if (ASCII_CHAR_P (c) || CHAR_BYTE8_P (c)) return face->ascii_face->id; - if (c > 0 && EQ (CHAR_TABLE_REF (Vchar_script_table, c), Qsymbol)) + if (use_default_font_for_symbols /* let the user disable this feature */ + && c > 0 && EQ (CHAR_TABLE_REF (Vchar_script_table, c), Qsymbol)) { /* Fonts often have characters for punctuation and other symbols, even if they don't match the 'symbol' script. So @@ -2112,6 +2113,16 @@ This affects how a composite character which contains such a character is displayed on screen. */); Vuse_default_ascent = Qnil; + DEFVAR_BOOL ("use-default-font-for-symbols", use_default_font_for_symbols, + doc: /* +If non-nil, use the default face's font for symbols and punctuation. + +By default, Emacs will try to use the default face's font for +displaying symbol and punctuation characters, disregarding the +fontsets, if the default font can display the character. +Set this to nil to make Emacs honor the fontsets instead. */); + use_default_font_for_symbols = 1; + DEFVAR_LISP ("ignore-relative-composition", Vignore_relative_composition, doc: /* Char table of characters which are not composed relatively. diff --git a/src/frame.c b/src/frame.c index 53ff05965c15..854f72e64b47 100644 --- a/src/frame.c +++ b/src/frame.c @@ -509,10 +509,13 @@ adjust_frame_size (struct frame *f, int new_width, int new_height, int inhibit, block_input (); #ifdef MSDOS - /* We only can set screen dimensions to certain values supported - by our video hardware. Try to find the smallest size greater - or equal to the requested dimensions. */ - dos_set_window_size (&new_lines, &new_cols); + /* We only can set screen dimensions to certain values supported by + our video hardware. Try to find the smallest size greater or + equal to the requested dimensions, while accounting for the fact + that the menu-bar lines are not counted in the frame height. */ + int dos_new_lines = new_lines + FRAME_TOP_MARGIN (f); + dos_set_window_size (&dos_new_lines, &new_cols); + new_lines = dos_new_lines - FRAME_TOP_MARGIN (f); #endif if (new_windows_width != old_windows_width) @@ -1305,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; @@ -5085,7 +5088,7 @@ Setting this variable does not affect existing frames, only new ones. */); doc: /* Default position of vertical scroll bars on this window-system. */); #ifdef HAVE_WINDOW_SYSTEM #if defined (HAVE_NTGUI) || defined (NS_IMPL_COCOA) || (defined (USE_GTK) && defined (USE_TOOLKIT_SCROLL_BARS)) - /* MS-Windows, Mac OS X, and GTK have scroll bars on the right by + /* MS-Windows, macOS, and GTK have scroll bars on the right by default. */ Vdefault_frame_scroll_bars = Qright; #else diff --git a/src/gfilenotify.c b/src/gfilenotify.c index 3b1f2fc516ac..30d0753f7e76 100644 --- a/src/gfilenotify.c +++ b/src/gfilenotify.c @@ -105,7 +105,7 @@ dir_monitor_callback (GFileMonitor *monitor, /* Store it into the input event queue. */ kbd_buffer_store_event (&event); - // XD_DEBUG_MESSAGE ("%s", XD_OBJECT_TO_STRING (event.arg)); + /* XD_DEBUG_MESSAGE ("%s", XD_OBJECT_TO_STRING (event.arg)); */ } /* Cancel monitor if file or directory is deleted. */ diff --git a/src/gmalloc.c b/src/gmalloc.c index 00b836413196..fb2861c18ac5 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c @@ -39,12 +39,8 @@ License along with this library. If not, see . #include #endif -#ifdef WINDOWSNT -#include /* for sbrk */ -#endif - #ifdef emacs -extern void emacs_abort (void); +extern _Noreturn void emacs_abort (void) NO_INLINE; #endif /* If HYBRID_MALLOC is defined, then temacs will use malloc, @@ -63,6 +59,7 @@ extern void emacs_abort (void); #undef malloc #undef realloc #undef calloc +#undef aligned_alloc #undef free #define malloc gmalloc #define realloc grealloc @@ -99,9 +96,9 @@ extern void *calloc (size_t nmemb, size_t size) ATTRIBUTE_MALLOC_SIZE ((1,2)); extern void free (void *ptr); /* Allocate SIZE bytes allocated to ALIGNMENT bytes. */ -#ifdef MSDOS extern void *aligned_alloc (size_t, size_t); extern void *memalign (size_t, size_t); +#ifdef MSDOS extern int posix_memalign (void **, size_t, size_t); #endif @@ -110,10 +107,6 @@ extern int posix_memalign (void **, size_t, size_t); extern void malloc_enable_thread (void); #endif -#ifdef emacs -extern void emacs_abort (void); -#endif - /* The allocator divides the heap into blocks of fixed size; large requests receive one or more whole blocks, and small requests receive a fragment of a block. Fragment sizes are powers of two, @@ -1690,7 +1683,9 @@ License along with this library. If not, see . or (US mail) as Mike Haertel c/o Free Software Foundation. */ /* Allocate SIZE bytes on a page boundary. */ +#ifndef HAVE_DECL_VALLOC extern void *valloc (size_t); +#endif #if defined _SC_PAGESIZE || !defined HAVE_GETPAGESIZE # include "getpagesize.h" @@ -1773,7 +1768,7 @@ hybrid_aligned_alloc (size_t alignment, size_t size) #endif } #endif - + void * hybrid_realloc (void *ptr, size_t size) { diff --git a/src/gtkutil.c b/src/gtkutil.c index e791e6ac3171..e323216bb792 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -185,7 +185,7 @@ xg_display_open (char *display_name, Display **dpy) { GdkDisplay *gdpy; - unrequest_sigio (); // See comment in x_display_ok, xterm.c. + unrequest_sigio (); /* See comment in x_display_ok, xterm.c. */ gdpy = gdk_display_open (display_name); request_sigio (); if (!gdpy_def && gdpy) @@ -2370,7 +2370,7 @@ make_widget_for_menu_item (const char *utf8_label, const char *utf8_key) in the group. On exit, *GROUP contains the radio item group. Unfortunately, keys don't line up as nicely as in Motif, - but the MacOS X version doesn't either, so I guess that is OK. */ + but the macOS version doesn't either, so I guess that is OK. */ static GtkWidget * make_menu_item (const char *utf8_label, diff --git a/src/image.c b/src/image.c index e8418b840c60..6a62235673a9 100644 --- a/src/image.c +++ b/src/image.c @@ -3712,7 +3712,7 @@ xpm_load (struct frame *f, struct image *img) } #ifdef USE_CAIRO - // Load very specific Xpm:s. + /* Load very specific Xpm:s. */ if (rc == XpmSuccess && img->ximg->format == ZPixmap && img->ximg->bits_per_pixel == 32 @@ -3736,7 +3736,7 @@ xpm_load (struct frame *f, struct image *img) int maskidx = mid ? i * img->mask_img->bytes_per_line + k/8 : 0; int mask = mid ? mid[maskidx] & (1 << (k % 8)) : 1; - if (mask) od[idx] = id[idx] + 0xff000000; // ff => full alpha + if (mask) od[idx] = id[idx] + 0xff000000; /* ff => full alpha */ else od[idx] = bgcolor; } } @@ -7979,7 +7979,8 @@ gif_load (struct frame *f, struct image *img) { img->lisp_data = Fcons (make_number (ext->Function), - Fcons (make_unibyte_string (ext->Bytes, ext->ByteCount), + Fcons (make_unibyte_string ((char *) ext->Bytes, + ext->ByteCount), img->lisp_data)); if (ext->Function == GIF_LOCAL_DESCRIPTOR_EXTENSION && ext->ByteCount == 4) @@ -8884,13 +8885,13 @@ and `imagemagick-types-inhibit'. */) { Lisp_Object typelist = Qnil; size_t numf = 0; - ExceptionInfo ex; + ExceptionInfo *ex; char **imtypes; size_t i; - GetExceptionInfo(&ex); - imtypes = GetMagickList ("*", &numf, &ex); - DestroyExceptionInfo(&ex); + ex = AcquireExceptionInfo (); + imtypes = GetMagickList ("*", &numf, ex); + DestroyExceptionInfo (ex); for (i = 0; i < numf; i++) { @@ -8993,10 +8994,27 @@ svg_image_p (Lisp_Object object) return fmt[SVG_FILE].count + fmt[SVG_DATA].count == 1; } +/* Some versions of glib's gatomic.h define MemoryBarrier, but MinGW + w32api 3.18 and later has its own definition. The following gross + hack avoids the clash. */ +# ifdef WINDOWSNT +# if (__W32API_MAJOR_VERSION + (__W32API_MINOR_VERSION >= 18)) >= 4 +# define W32_SAVE_MINGW_VERSION __MINGW_MAJOR_VERSION +# undef __MINGW_MAJOR_VERSION +# define __MINGW_MAJOR_VERSION 4 +# endif +# endif + # include # ifdef WINDOWSNT +# ifdef W32_SAVE_MINGW_VERSION +# undef __MINGW_MAJOR_VERSION +# define __MINGW_MAJOR_VERSION W32_SAVE_MINGW_VERSION +# undef W32_SAVE_MINGW_VERSION +# endif + /* SVG library functions. */ DEF_DLL_FN (RsvgHandle *, rsvg_handle_new, (void)); DEF_DLL_FN (void, rsvg_handle_get_dimensions, diff --git a/src/indent.c b/src/indent.c index 0ef8903501d6..578dac83df5d 100644 --- a/src/indent.c +++ b/src/indent.c @@ -2027,6 +2027,7 @@ whether or not it is currently displayed in some window. */) struct position pos; pos = *vmotion (PT, PT_BYTE, XINT (lines), w); SET_PT_BOTH (pos.bufpos, pos.bytepos); + it.vpos = pos.vpos; } else { diff --git a/src/insdel.c b/src/insdel.c index 4ad1074f5f79..fc3f19fd5814 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -1268,7 +1268,9 @@ adjust_after_insert (ptrdiff_t from, ptrdiff_t from_byte, /* Replace the text from character positions FROM to TO with NEW, If PREPARE, call prepare_to_modify_buffer. If INHERIT, the newly inserted text should inherit text properties - from the surrounding non-deleted text. */ + from the surrounding non-deleted text. + If ADJUST_MATCH_DATA, then adjust the match data before calling + signal_after_change. */ /* Note that this does not yet handle markers quite right. Also it needs to record a single undo-entry that does a replacement @@ -1279,7 +1281,8 @@ adjust_after_insert (ptrdiff_t from, ptrdiff_t from_byte, void replace_range (ptrdiff_t from, ptrdiff_t to, Lisp_Object new, - bool prepare, bool inherit, bool markers) + bool prepare, bool inherit, bool markers, + bool adjust_match_data) { ptrdiff_t inschars = SCHARS (new); ptrdiff_t insbytes = SBYTES (new); @@ -1426,6 +1429,9 @@ replace_range (ptrdiff_t from, ptrdiff_t to, Lisp_Object new, MODIFF++; CHARS_MODIFF = MODIFF; + if (adjust_match_data) + update_search_regs (from, to, from + SCHARS (new)); + signal_after_change (from, nchars_del, GPT - from); update_compositions (from, GPT, CHECK_BORDER); } diff --git a/src/keyboard.c b/src/keyboard.c index e3858a5d8dc0..f24d86e8833b 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -70,6 +70,11 @@ along with GNU Emacs. If not, see . */ #include TERM_HEADER #endif /* HAVE_WINDOW_SYSTEM */ +/* Work around GCC bug 54561. */ +#if GNUC_PREREQ (4, 3, 0) +# pragma GCC diagnostic ignored "-Wclobbered" +#endif + /* Variables for blockinput.h: */ /* Positive if interrupt input is blocked right now. */ @@ -681,6 +686,14 @@ recursive_edit_1 (void) specbind (Qinhibit_redisplay, Qnil); redisplaying_p = 0; + /* This variable stores buffers that have changed so that an undo + boundary can be added. specbind this so that changes in the + recursive edit will not result in undo boundaries in buffers + changed before we entered there recursive edit. + See Bug #23632. + */ + specbind (Qundo_auto__undoably_changed_buffers, Qnil); + val = command_loop (); if (EQ (val, Qt)) Fsignal (Qquit, Qnil); @@ -10956,6 +10969,8 @@ syms_of_keyboard (void) DEFSYM (Qpost_command_hook, "post-command-hook"); DEFSYM (Qundo_auto__add_boundary, "undo-auto--add-boundary"); + DEFSYM (Qundo_auto__undoably_changed_buffers, + "undo-auto--undoably-changed-buffers"); DEFSYM (Qdeferred_action_function, "deferred-action-function"); DEFSYM (Qdelayed_warnings_hook, "delayed-warnings-hook"); @@ -11649,7 +11664,8 @@ suppressed only after special commands that leave DEFVAR_LISP ("minibuffer-message-timeout", Vminibuffer_message_timeout, doc: /* How long to display an echo-area message when the minibuffer is active. -If the value is not a number, such messages don't time out. */); +If the value is a number, it should be specified in seconds. +If the value is not a number, such messages never time out. */); Vminibuffer_message_timeout = make_number (2); DEFVAR_LISP ("throw-on-input", Vthrow_on_input, diff --git a/src/keymap.c b/src/keymap.c index 8ab4c6c27ae5..c975aad27d8d 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -1737,10 +1737,12 @@ bindings; see the description of `lookup-key' for more details about this. */) DEFUN ("define-prefix-command", Fdefine_prefix_command, Sdefine_prefix_command, 1, 3, 0, doc: /* Define COMMAND as a prefix command. COMMAND should be a symbol. -A new sparse keymap is stored as COMMAND's function definition and its value. -If a second optional argument MAPVAR is given, the map is stored as -its value instead of as COMMAND's value; but COMMAND is still defined -as a function. +A new sparse keymap is stored as COMMAND's function definition and its +value. +This prepares COMMAND for use as a prefix key's binding. +If a second optional argument MAPVAR is given, it should be a symbol. +The map is then stored as MAPVAR's value instead of as COMMAND's +value; but COMMAND is still defined as a function. The third optional argument NAME, if given, supplies a menu name string for the map. This is required to use the keymap as a menu. This function returns COMMAND. */) diff --git a/src/kqueue.c b/src/kqueue.c index c848b7ff1af9..49ca0c95e27f 100644 --- a/src/kqueue.c +++ b/src/kqueue.c @@ -264,8 +264,6 @@ kqueue_compare_dir_list (Lisp_Object watch_object) report_file_error ("New list not empty", new_dl); if (! NILP (pending_dl)) report_file_error ("Pending events list not empty", pending_dl); - // if (! NILP (deleted_dl)) - // report_file_error ("Deleted events list not empty", deleted_dl); /* Replace old directory listing with the new one. */ XSETCDR (Fnthcdr (make_number (3), watch_object), diff --git a/src/lisp.h b/src/lisp.h index 6a98adbda9c6..25f811e06efe 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3516,7 +3516,7 @@ extern void adjust_after_insert (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t); extern void adjust_markers_for_delete (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t); -extern void replace_range (ptrdiff_t, ptrdiff_t, Lisp_Object, bool, bool, bool); +extern void replace_range (ptrdiff_t, ptrdiff_t, Lisp_Object, bool, bool, bool, bool); extern void replace_range_2 (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, const char *, ptrdiff_t, ptrdiff_t, bool); extern void syms_of_insdel (void); @@ -3994,6 +3994,8 @@ extern Lisp_Object make_temp_name (Lisp_Object, bool); /* Defined in search.c. */ extern void shrink_regexp_cache (void); extern void restore_search_regs (void); +extern void update_search_regs (ptrdiff_t oldstart, + ptrdiff_t oldend, ptrdiff_t newend); extern void record_unwind_save_match_data (void); struct re_registers; extern struct re_pattern_buffer *compile_pattern (Lisp_Object, diff --git a/src/lread.c b/src/lread.c index 91469230b7e9..b978e6ed09f9 100644 --- a/src/lread.c +++ b/src/lread.c @@ -46,6 +46,10 @@ along with GNU Emacs. If not, see . */ #ifdef MSDOS #include "msdos.h" +#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 5 +# define INFINITY __builtin_inf() +# define NAN __builtin_nan("") +#endif #endif #ifdef HAVE_NS @@ -1408,7 +1412,7 @@ directories, make sure the PREDICATE function returns `dir-ok' for them. */) PREDICATE t means the files are binary. PREDICATE non-nil and non-t means don't open the files, just look for one that satisfies the predicate. In this case, - return 1 on success. The predicate can be a lisp function or + return -2 on success. The predicate can be a lisp function or an integer to pass to `access' (in which case file-name-handlers are ignored). @@ -2496,7 +2500,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list) c = READCHAR; if (c == '(') { - /* Accept extended format for hashtables (extensible to + /* Accept extended format for hash tables (extensible to other types), e.g. #s(hash-table size 2 test equal data (k1 v1 k2 v2)) */ Lisp_Object tmp = read_list (0, readcharfun); @@ -2542,10 +2546,10 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list) if (!NILP (params[param_count + 1])) param_count += 2; - /* This is the hashtable data. */ + /* This is the hash table data. */ data = Fplist_get (tmp, Qdata); - /* Now use params to make a new hashtable and fill it. */ + /* Now use params to make a new hash table and fill it. */ ht = Fmake_hash_table (param_count, params); while (CONSP (data)) @@ -2553,7 +2557,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list) key = XCAR (data); data = XCDR (data); if (!CONSP (data)) - error ("Odd number of elements in hashtable data"); + error ("Odd number of elements in hash table data"); val = XCAR (data); data = XCDR (data); Fputhash (key, val, ht); @@ -2841,7 +2845,18 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list) if (c == '=') { /* Make a placeholder for #n# to use temporarily. */ - AUTO_CONS (placeholder, Qnil, Qnil); + /* Note: We used to use AUTO_CONS to allocate + placeholder, but that is a bad idea, since it + will place a stack-allocated cons cell into + the list in read_objects, which is a + staticpro'd global variable, and thus each of + its elements is marked during each GC. A + stack-allocated object will become garbled + when its stack slot goes out of scope, and + some other function reuses it for entirely + different purposes, which will cause crashes + in GC. */ + Lisp_Object placeholder = Fcons (Qnil, Qnil); Lisp_Object cell = Fcons (make_number (n), placeholder); read_objects = Fcons (cell, read_objects); @@ -4504,6 +4519,7 @@ were read in. */); doc: /* List of directories to search for files to load. Each element is a string (directory file name) or nil (meaning `default-directory'). +This list is consulted by the `require' function. Initialized during startup as described in Info node `(elisp)Library Search'. Use `directory-file-name' when adding items to this path. However, Lisp programs that process this list should tolerate directories both with diff --git a/src/macfont.h b/src/macfont.h index 6630fb526b7a..8f734527a467 100644 --- a/src/macfont.h +++ b/src/macfont.h @@ -1,4 +1,4 @@ -/* Interface definition for Mac OSX Core text font backend. +/* Interface definition for macOS Core text font backend. Copyright (C) 2009-2016 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/src/macfont.m b/src/macfont.m index 04456283fa18..ed7c1e3bd7aa 100644 --- a/src/macfont.m +++ b/src/macfont.m @@ -1,4 +1,4 @@ -/* Font driver on Mac OSX Core text. +/* Font driver on macOS Core text. Copyright (C) 2009-2016 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -1005,7 +1005,7 @@ static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char, and those start with ".". NULL means the cache has been invalidated. Otherwise, the value is CFArray of CFStrings and the elements are sorted in the canonical order (CTFontManagerCompareFontFamilyNames on -OS X 10.6 and later). */ +Mac OS X 10.6 and later). */ static CFArrayRef macfont_available_families_cache = NULL; @@ -4042,7 +4042,7 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no void syms_of_macfont (void) { - /* Core Text, for Mac OS X. */ + /* Core Text, for macOS. */ DEFSYM (Qmac_ct, "mac-ct"); macfont_driver.type = Qmac_ct; register_font_driver (&macfont_driver, NULL); diff --git a/src/marker.c b/src/marker.c index 030083002f40..febdb17689a5 100644 --- a/src/marker.c +++ b/src/marker.c @@ -412,8 +412,7 @@ Returns nil if MARKER points into a dead buffer. */) } DEFUN ("marker-position", Fmarker_position, Smarker_position, 1, 1, 0, - doc: /* Return the position MARKER points at, as a character number. -Returns nil if MARKER points nowhere. */) + doc: /* Return the position of MARKER, or nil if it points nowhere. */) (Lisp_Object marker) { CHECK_MARKER (marker); diff --git a/src/minibuf.c b/src/minibuf.c index 238a04a8ad24..3d34635c6c0f 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -1817,8 +1817,8 @@ DEFUN ("assoc-string", Fassoc_string, Sassoc_string, 2, 3, 0, This returns the first element of LIST whose car matches the string or symbol KEY, or nil if no match exists. When performing the comparison, symbols are first converted to strings, and unibyte -strings to multibyte. If the optional arg CASE-FOLD is non-nil, case -is ignored. +strings to multibyte. If the optional arg CASE-FOLD is non-nil, both +KEY and the elements of LIST are upcased for comparison. Unlike `assoc', KEY can also match an entry in LIST consisting of a single string, rather than a cons cell whose car is a string. */) @@ -1966,7 +1966,9 @@ controls the behavior, rather than this variable. */); DEFVAR_BOOL ("enable-recursive-minibuffers", enable_recursive_minibuffers, doc: /* Non-nil means to allow minibuffer commands while in the minibuffer. -This variable makes a difference whenever the minibuffer window is active. */); +This variable makes a difference whenever the minibuffer window is active. +Also see `minibuffer-depth-indicator-mode', which may be handy if this +variable is non-nil. */); enable_recursive_minibuffers = 0; DEFVAR_LISP ("minibuffer-completion-table", Vminibuffer_completion_table, diff --git a/src/msdos.c b/src/msdos.c index 84e8c39ec0cd..62411ea2f6d2 100644 --- a/src/msdos.c +++ b/src/msdos.c @@ -59,6 +59,12 @@ along with GNU Emacs. If not, see . */ #include /* for _USE_LFN */ #include /* for cputs */ +#if (__DJGPP__ + (__DJGPP_MINOR__ > 3)) >= 3 +#define SYS_ENVIRON _environ +#else +#define SYS_ENVIRON environ +#endif + #include "msdos.h" #include "systime.h" #include "frame.h" @@ -422,8 +428,6 @@ static unsigned long screen_old_address = 0; /* Segment and offset of the virtual screen. If 0, DOS/V is NOT loaded. */ static unsigned short screen_virtual_segment = 0; static unsigned short screen_virtual_offset = 0; -extern Lisp_Object Qcursor_type; -extern Lisp_Object Qbar, Qhbar; /* The screen colors of the current frame, which serve as the default colors for newly-created frames. */ @@ -1384,11 +1388,6 @@ IT_delete_glyphs (struct frame *f, int n) /* This was copied from xfaces.c */ -extern Lisp_Object Qbackground_color; -extern Lisp_Object Qforeground_color; -Lisp_Object Qreverse; -extern Lisp_Object Qtitle; - /* IT_set_terminal_modes is called when emacs is started, resumed, and whenever the screen is redrawn! */ @@ -3710,7 +3709,7 @@ dos_ttcooked (void) file TEMPOUT and stderr to TEMPERR. */ int -run_msdos_command (unsigned char **argv, const char *working_dir, +run_msdos_command (char **argv, const char *working_dir, int tempin, int tempout, int temperr, char **envv) { char *saveargv1, *saveargv2, *lowcase_argv0, *pa, *pl; @@ -3796,8 +3795,8 @@ run_msdos_command (unsigned char **argv, const char *working_dir, ; if (*cmnd) { - extern char **environ; - char **save_env = environ; + extern char **SYS_ENVIRON; + char **save_env = SYS_ENVIRON; int save_system_flags = __system_flags; /* Request the most powerful version of `system'. We need @@ -3809,16 +3808,16 @@ run_msdos_command (unsigned char **argv, const char *working_dir, | __system_handle_null_commands | __system_emulate_chdir); - environ = envv; + SYS_ENVIRON = envv; result = system (cmnd); __system_flags = save_system_flags; - environ = save_env; + SYS_ENVIRON = save_env; } else result = 0; /* emulate Unixy shell behavior with empty cmd line */ } else - result = spawnve (P_WAIT, argv[0], (char **)argv, envv); + result = spawnve (P_WAIT, argv[0], argv, envv); dup2 (inbak, 0); dup2 (outbak, 1); @@ -4085,11 +4084,14 @@ sys_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *efds, gettime (&t); clnow = make_timespec (t.tv_sec, t.tv_nsec); cldiff = timespec_sub (clnow, cllast); + /* Stop when timeout value is about to cross zero. */ + if (timespec_cmp (*timeout, cldiff) <= 0) + { + timeout->tv_sec = 0; + timeout->tv_nsec = 0; + return 0; + } *timeout = timespec_sub (*timeout, cldiff); - - /* Stop when timeout value crosses zero. */ - if (timespec_sign (*timeout) <= 0) - return 0; cllast = clnow; dos_yield_time_slice (); } diff --git a/src/msdos.h b/src/msdos.h index 863ca486e8d4..0c3ba2bfa16e 100644 --- a/src/msdos.h +++ b/src/msdos.h @@ -41,8 +41,12 @@ void mouse_on (void); void mouse_off (void); void mouse_moveto (int, int); +void IT_set_frame_parameters (struct frame *, Lisp_Object); + #include #include +#include +#include #if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4 int readlink (const char *, char *, size_t); @@ -50,6 +54,16 @@ int readlink (const char *, char *, size_t); ssize_t readlinkat (int, const char *, char *, size_t); int fstatat (int, char const *, struct stat *, int); int unsetenv (const char *); +int faccessat (int, const char *, int, int); +void msdos_fatal_signal (int); +void syms_of_msdos (void); +int pthread_sigmask (int, const sigset_t *, sigset_t *); +int dos_keysns (void); +int dos_keyread (void); +int run_msdos_command (char **, const char *, int, int, int, char **); + +void syms_of_win16select (void); + /* Constants. */ #define EINPROGRESS 112 diff --git a/src/nsfns.m b/src/nsfns.m index ea099081a7ff..82bb84a147a0 100644 --- a/src/nsfns.m +++ b/src/nsfns.m @@ -1,4 +1,4 @@ -/* Functions for the NeXT/Open/GNUstep and MacOSX window system. +/* Functions for the NeXT/Open/GNUstep and macOS window system. Copyright (C) 1989, 1992-1994, 2005-2006, 2008-2016 Free Software Foundation, Inc. @@ -22,7 +22,7 @@ Originally by Carl Edman Updated by Christian Limpach (chris@nice.ch) OpenStep/Rhapsody port by Scott Bender (sbender@harmony-ds.com) -MacOSX/Aqua port by Christophe de Dinechin (descubes@earthlink.net) +macOS/Aqua port by Christophe de Dinechin (descubes@earthlink.net) GNUstep port and post-20 update by Adrian Robert (arobert@cogsci.ucsd.edu) */ @@ -942,7 +942,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side x_icon (struct frame *f, Lisp_Object parms) /* -------------------------------------------------------------------------- Strangely-named function to set icon position parameters in frame. - This is irrelevant under OS X, but might be needed under GNUstep, + This is irrelevant under macOS, but might be needed under GNUstep, depending on the window manager used. Note, this is not a standard frame parameter-setter; it is called directly from x-create-frame. -------------------------------------------------------------------------- */ @@ -2060,7 +2060,7 @@ and GNUstep implementations ("distributor-specific release [svcs setAutoenablesItems: NO]; #ifdef NS_IMPL_COCOA - [svcs update]; /* on OS X, converts from '/' structure */ + [svcs update]; /* on macOS, converts from '/' structure */ #endif ret = interpret_services_menu (svcs, Qnil, ret); @@ -3125,7 +3125,7 @@ - (NSString *)panel: (id)sender userEnteredFilename: (NSString *)filename (setq ns-icon-type-alist (append ns-icon-type-alist - '((\"^\\\\*\\\\(Group\\\\*$\\\\|Summary \\\\|Article\\\\*$\\\\)\" + \\='((\"^\\\\*\\\\(Group\\\\*$\\\\|Summary \\\\|Article\\\\*$\\\\)\" . \"Gnus\")))) When you miniaturize a Group, Summary or Article frame, Gnus.tiff will diff --git a/src/nsfont.m b/src/nsfont.m index 92e7d1154bf9..4f95ee3a1a82 100644 --- a/src/nsfont.m +++ b/src/nsfont.m @@ -1,4 +1,4 @@ -/* Font back-end driver for the NeXT/Open/GNUstep and MacOSX window system. +/* Font back-end driver for the NeXT/Open/GNUstep and macOS window system. See font.h Copyright (C) 2006-2016 Free Software Foundation, Inc. @@ -500,7 +500,7 @@ but also for ascii (which causes unnecessary font substitution). */ { NSCharacterSet *fset = [[fontMgr fontWithFamily: family traits: 0 weight: 5 size: 12.0] coveredCharacterSet]; - /* Some fonts on OS X, maybe many on GNUstep, return nil. */ + /* Some fonts on macOS, maybe many on GNUstep, return nil. */ if (fset == nil) fset = [NSCharacterSet characterSetWithRange: NSMakeRange (0, 127)]; diff --git a/src/nsimage.m b/src/nsimage.m index 5b2534b90072..66aecd4289d7 100644 --- a/src/nsimage.m +++ b/src/nsimage.m @@ -1,4 +1,4 @@ -/* Image support for the NeXT/Open/GNUstep and MacOSX window system. +/* Image support for the NeXT/Open/GNUstep and macOS window system. Copyright (C) 1989, 1992-1994, 2005-2006, 2008-2016 Free Software Foundation, Inc. @@ -21,7 +21,7 @@ Originally by Carl Edman Updated by Christian Limpach (chris@nice.ch) OpenStep/Rhapsody port by Scott Bender (sbender@harmony-ds.com) -MacOSX/Aqua port by Christophe de Dinechin (descubes@earthlink.net) +macOS/Aqua port by Christophe de Dinechin (descubes@earthlink.net) GNUstep port and post-20 update by Adrian Robert (arobert@cogsci.ucsd.edu) */ diff --git a/src/nsmenu.m b/src/nsmenu.m index 7d340e8ec835..f73c184dce7c 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -1,4 +1,4 @@ -/* NeXT/Open/GNUstep and MacOSX Cocoa menu and toolbar module. +/* NeXT/Open/GNUstep and macOS Cocoa menu and toolbar module. Copyright (C) 2007-2016 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -93,7 +93,7 @@ /* -------------------------------------------------------------------------- Update menubar. Three cases: 1) ! deep_p, submenu = nil: Fresh switch onto a frame -- either set up - just top-level menu strings (OS X), or goto case (2) (GNUstep). + just top-level menu strings (macOS), or goto case (2) (GNUstep). 2) deep_p, submenu = nil: Recompute all submenus. 3) deep_p, submenu = non-nil: Update contents of a single submenu. -------------------------------------------------------------------------- */ @@ -584,7 +584,7 @@ - (void)menuNeedsUpdate: (NSMenu *)menu return; /*fprintf (stderr, "Updating menu '%s'\n", [[self title] UTF8String]); NSLog (@"%@\n", event); */ #ifdef NS_IMPL_GNUSTEP - /* Don't know how to do this for anything other than OSX >= 10.5 + /* Don't know how to do this for anything other than Mac OS X 10.5 and later. This is wrong, as it might run Lisp code in the event loop. */ ns_update_menubar (frame, true, self); #endif @@ -645,7 +645,7 @@ - (NSMenuItem *)addItemWithWidgetValue: (void *)wvptr keyEq = [self parseKeyEquiv: wv->key]; #ifdef NS_IMPL_COCOA - /* OS X just ignores modifier strings longer than one character */ + /* macOS just ignores modifier strings longer than one character */ if (keyEquivModMask == 0) title = [title stringByAppendingFormat: @" (%@)", keyEq]; #endif @@ -1057,9 +1057,9 @@ - (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f /* Check if this is a separator. */ if (EQ (TOOLPROP (TOOL_BAR_ITEM_TYPE), Qt)) { - /* Skip separators. Newer OSX don't show them, and on GNUstep they - are wide as a button, thus overflowing the toolbar most of - the time. */ + /* Skip separators. Newer macOS don't show them, and on + GNUstep they are wide as a button, thus overflowing the + toolbar most of the time. */ continue; } diff --git a/src/nsselect.m b/src/nsselect.m index eba23932e65f..b7c9148ee050 100644 --- a/src/nsselect.m +++ b/src/nsselect.m @@ -1,4 +1,4 @@ -/* NeXT/Open/GNUstep / MacOSX Cocoa selection processing for emacs. +/* NeXT/Open/GNUstep / macOS Cocoa selection processing for emacs. Copyright (C) 1993-1994, 2005-2006, 2008-2016 Free Software Foundation, Inc. @@ -21,7 +21,7 @@ Originally by Carl Edman Updated by Christian Limpach (chris@nice.ch) OpenStep/Rhapsody port by Scott Bender (sbender@harmony-ds.com) -MacOSX/Aqua port by Christophe de Dinechin (descubes@earthlink.net) +macOS/Aqua port by Christophe de Dinechin (descubes@earthlink.net) GNUstep port and post-20 update by Adrian Robert (arobert@cogsci.ucsd.edu) */ diff --git a/src/nsterm.h b/src/nsterm.h index 0aea9cca112e..4b246bd3d0f0 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -380,9 +380,9 @@ char const * nstrace_fullscreen_type_name (int); #endif #ifdef NS_IMPL_GNUSTEP BOOL applicationDidFinishLaunchingCalled; +#endif @public int nextappdefined; -#endif } - (void)logNotification: (NSNotification *)notification; - (void)antialiasThresholdDidChange:(NSNotification *)notification; diff --git a/src/nsterm.m b/src/nsterm.m index 34c5395b630d..4f99a13c44e7 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -1,4 +1,4 @@ -/* NeXT/Open/GNUstep / MacOSX communication module. -*- coding: utf-8 -*- +/* NeXT/Open/GNUstep / macOS communication module. -*- coding: utf-8 -*- Copyright (C) 1989, 1993-1994, 2005-2006, 2008-2016 Free Software Foundation, Inc. @@ -22,7 +22,7 @@ Originally by Carl Edman Updated by Christian Limpach (chris@nice.ch) OpenStep/Rhapsody port by Scott Bender (sbender@harmony-ds.com) -MacOSX/Aqua port by Christophe de Dinechin (descubes@earthlink.net) +macOS/Aqua port by Christophe de Dinechin (descubes@earthlink.net) GNUstep port and post-20 update by Adrian Robert (arobert@cogsci.ucsd.edu) */ @@ -250,7 +250,7 @@ - (NSColor *)colorUsingDefaultColorSpace 0x1B, 0x1B /* escape */ }; -/* On OS X picks up the default NSGlobalDomain AppleAntiAliasingThreshold, +/* On macOS picks up the default NSGlobalDomain AppleAntiAliasingThreshold, the maximum font size to NOT antialias. On GNUstep there is currently no way to control this behavior. */ float ns_antialias_threshold; @@ -587,7 +587,7 @@ - (NSColor *)colorUsingDefaultColorSpace void ns_init_locale (void) -/* OS X doesn't set any environment variables for the locale when run +/* macOS doesn't set any environment variables for the locale when run from the GUI. Get the locale from the OS and set LANG. */ { NSLocale *locale = [NSLocale currentLocale]; @@ -596,7 +596,7 @@ - (NSColor *)colorUsingDefaultColorSpace @try { - /* It seems OS X should probably use UTF-8 everywhere. + /* It seems macOS should probably use UTF-8 everywhere. 'localeIdentifier' does not specify the encoding, and I can't find any way to get the OS to tell us which encoding to use, so hard-code '.UTF-8'. */ @@ -718,7 +718,7 @@ Free a pool and temporary objects it refers to (callable from C) /* A screen margin between 1 and DOCK_IGNORE_LIMIT (inclusive) is - assumed to contain a hidden dock. OS X currently use 4 pixels for + assumed to contain a hidden dock. macOS currently use 4 pixels for this, however, to be future compatible, a larger value is used. */ #define DOCK_IGNORE_LIMIT 6 @@ -731,7 +731,7 @@ Free a pool and temporary objects it refers to (callable from C) struct EmacsMargins margins = ns_screen_margins(screen); - /* OS X (currently) reserved 4 pixels along the edge where a hidden + /* macOS (currently) reserved 4 pixels along the edge where a hidden dock is located. Unfortunately, it's not possible to find the location and information about if the dock is hidden. Instead, it is assumed that if the margin of an edge is less than @@ -748,7 +748,7 @@ Free a pool and temporary objects it refers to (callable from C) { margins.top = 0; } - /* Note: This doesn't occur in current versions of OS X, but + /* Note: This doesn't occur in current versions of macOS, but included for completeness and future compatibility. */ if (margins.bottom <= DOCK_IGNORE_LIMIT) { @@ -1027,7 +1027,7 @@ static NSRect constrain_frame_rect(NSRect frameRect, bool isFullscreen) #ifdef NS_IMPL_COCOA if ([view isFullscreen] && [view fsIsNative]) { - // Fix reappearing tool bar in fullscreen for OSX 10.7 + // Fix reappearing tool bar in fullscreen for Mac OS X 10.7 BOOL tbar_visible = FRAME_EXTERNAL_TOOL_BAR (f) ? YES : NO; NSToolbar *toolbar = [FRAME_NS_VIEW (f) toolbar]; if (! tbar_visible != ! [toolbar isVisible]) @@ -1612,7 +1612,12 @@ static void hide_bell () [[view window] orderOut: NSApp]; [[view window] setFrame: t display: NO]; } + + /* Processing input while Emacs is being minimized can cause a + crash, so block it for the duration. */ + block_input(); [[view window] miniaturize: NSApp]; + unblock_input(); } /* Free X resources of frame F. */ @@ -1981,8 +1986,8 @@ static void hide_bell () } else if ([nsname isEqualToString: @"ns_selection_fg_color"]) { - /* NOTE: OSX applications normally don't set foreground selection, but - text may be unreadable if we don't. + /* NOTE: macOS applications normally don't set foreground + selection, but text may be unreadable if we don't. */ if ((new = [NSColor selectedTextColor]) != nil) { @@ -3913,8 +3918,8 @@ overwriting cursor (usually when cursor on a tab) */ { NSTRACE_WHEN (NSTRACE_GROUP_EVENTS, "ns_send_appdefined(%d)", value); -#ifdef NS_IMPL_GNUSTEP // GNUstep needs postEvent to happen on the main thread. + // Cocoa needs nextEventMatchingMask to happen on the main thread too. if (! [[NSThread currentThread] isMainThread]) { EmacsApp *app = (EmacsApp *)NSApp; @@ -3924,7 +3929,6 @@ overwriting cursor (usually when cursor on a tab) */ waitUntilDone:YES]; return; } -#endif /* Only post this event if we haven't already posted one. This will end the [NXApp run] main loop after having processed all events queued at @@ -3933,7 +3937,7 @@ overwriting cursor (usually when cursor on a tab) */ #ifdef NS_IMPL_COCOA if (! send_appdefined) { - /* OSX 10.10.1 swallows the AppDefined event we are sending ourselves + /* OS X 10.10.1 swallows the AppDefined event we are sending ourselves in certain situations (rapid incoming events). So check if we have one, if not add one. */ NSEvent *appev = [NSApp nextEventMatchingMask:NSApplicationDefinedMask @@ -4812,7 +4816,7 @@ static Lisp_Object ns_string_to_lispmod (const char *s) [outerpool release]; outerpool = [[NSAutoreleasePool alloc] init]; - /* count object allocs (About, click icon); on OS X use ObjectAlloc tool */ + /* count object allocs (About, click icon); on macOS use ObjectAlloc tool */ /*GSDebugAllocationActive (YES); */ block_input (); @@ -4941,7 +4945,7 @@ Needs to be here because ns_initialize_display_info () uses AppKit classes. ns_app_name = [[NSProcessInfo processInfo] processName]; - /* Set up OS X app menu */ + /* Set up macOS app menu */ NSTRACE_MSG ("Menu init"); @@ -5013,7 +5017,7 @@ Needs to be here because ns_initialize_display_info () uses AppKit classes. selector: @selector (trackingNotification:) name: NSMenuDidEndTrackingNotification object: mainMenu]; } -#endif /* MAC OS X menu setup */ +#endif /* macOS menu setup */ /* Register our external input/output types, used for determining applicable services and also drag/drop eligibility. */ @@ -5241,7 +5245,7 @@ - (void)sendEvent: (NSEvent *)theEvent #ifdef NS_IMPL_COCOA /* If no dialog and none of our frames have focus and it is a move, skip it. - It is a mouse move in an auxiliary menu, i.e. on the top right on OSX, + It is a mouse move in an auxiliary menu, i.e. on the top right on macOS, such as Wifi, sound, date or similar. This prevents "spooky" highlighting in the frame under the menu. */ if (type == NSMouseMoved && [NSApp modalWindow] == nil) @@ -5537,12 +5541,10 @@ - (void)timeout_handler: (NSTimer *)timedEntry ns_send_appdefined (-2); } -#ifdef NS_IMPL_GNUSTEP - (void)sendFromMainThread:(id)unused { ns_send_appdefined (nextappdefined); } -#endif - (void)fd_handler:(id)unused /* -------------------------------------------------------------------------- @@ -5782,7 +5784,7 @@ - (void)keyDown: (NSEvent *)theEvent NSTRACE ("[EmacsView keyDown:]"); - /* Rhapsody and OS X give up and down events for the arrow keys */ + /* Rhapsody and macOS give up and down events for the arrow keys */ if (ns_fake_keydown == YES) ns_fake_keydown = NO; else if ([theEvent type] != NSKeyDown) @@ -6016,7 +6018,7 @@ flag set (this is probably a bug in the OS). #ifdef NS_IMPL_COCOA -/* Needed to pick up Ctrl-tab and possibly other events that OS X has +/* Needed to pick up Ctrl-tab and possibly other events that Mac OS X decided not to send key-down for. See http://osdir.com/ml/editors.vim.mac/2007-10/msg00141.html This only applies on Tiger and earlier. @@ -7174,8 +7176,8 @@ - (void)windowDidEnterFullScreen /* provided for direct calls */ #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 unsigned val = (unsigned)[NSApp presentationOptions]; - // OSX 10.7 bug fix, the menu won't appear without this. - // val is non-zero on other OSX versions. + // Mac OS X 10.7 bug fix, the menu won't appear without this. + // val is non-zero on other macOS versions. if (val == 0) { NSApplicationPresentationOptions options @@ -7599,7 +7601,7 @@ - (void)drawRect: (NSRect)rect unblock_input (); /* - drawRect: may be called (at least in OS X 10.5) for invisible + drawRect: may be called (at least in Mac OS X 10.5) for invisible views as well for some reason. Thus, do not infer visibility here. @@ -8121,7 +8123,7 @@ + (CGFloat) scrollerWidth [self setEnabled: YES]; /* Ensure auto resizing of scrollbars occurs within the emacs frame's view - locked against the top and bottom edges, and right edge on OS X, where + locked against the top and bottom edges, and right edge on macOS, where scrollers are on right. */ #ifdef NS_IMPL_GNUSTEP [self setAutoresizingMask: NSViewMaxXMargin | NSViewHeightSizable]; @@ -8728,14 +8730,14 @@ Convert an X font name (XLFD) to an NS font name. DEFVAR_LISP ("ns-auto-hide-menu-bar", ns_auto_hide_menu_bar, doc: /* Non-nil means that the menu bar is hidden, but appears when the mouse is near. -Only works on OSX 10.6 or later. */); +Only works on Mac OS X 10.6 or later. */); ns_auto_hide_menu_bar = Qnil; DEFVAR_BOOL ("ns-use-native-fullscreen", ns_use_native_fullscreen, - doc: /*Non-nil means to use native fullscreen on OSX >= 10.7. + doc: /*Non-nil means to use native fullscreen on Mac OS X 10.7 and later. Nil means use fullscreen the old (< 10.7) way. The old way works better with -multiple monitors, but lacks tool bar. This variable is ignored on OSX < 10.7. -Default is t for OSX >= 10.7, nil otherwise. */); +multiple monitors, but lacks tool bar. This variable is ignored on +Mac OS X < 10.7. Default is t for 10.7 and later, nil otherwise. */); #ifdef HAVE_NATIVE_FS ns_use_native_fullscreen = YES; #else @@ -8750,9 +8752,9 @@ Nil means use fullscreen the old (< 10.7) way. The old way works better with ns_use_fullscreen_animation = NO; DEFVAR_BOOL ("ns-use-srgb-colorspace", ns_use_srgb_colorspace, - doc: /*Non-nil means to use sRGB colorspace on OSX >= 10.7. + doc: /*Non-nil means to use sRGB colorspace on Mac OS X 10.7 and later. Note that this does not apply to images. -This variable is ignored on OSX < 10.7 and GNUstep. */); +This variable is ignored on Mac OS X < 10.7 and GNUstep. */); ns_use_srgb_colorspace = YES; /* TODO: move to common code */ diff --git a/src/process.c b/src/process.c index dd508836f790..e6ea2fbe8f72 100644 --- a/src/process.c +++ b/src/process.c @@ -151,6 +151,18 @@ bool inhibit_sentinels; # define SOCK_CLOEXEC 0 #endif +/* True if ERRNUM represents an error where the system call would + block if a blocking variant were used. */ +static bool +would_block (int errnum) +{ +#ifdef EWOULDBLOCK + if (EWOULDBLOCK != EAGAIN && errnum == EWOULDBLOCK) + return true; +#endif + return errnum == EAGAIN; +} + #ifndef HAVE_ACCEPT4 /* Emulate GNU/Linux accept4 and socket well enough for this module. */ @@ -928,7 +940,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 +964,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); @@ -1108,7 +1120,9 @@ See `set-process-sentinel' for more info on sentinels. */) DEFUN ("set-process-window-size", Fset_process_window_size, Sset_process_window_size, 3, 3, 0, - doc: /* Tell PROCESS that it has logical window size HEIGHT and WIDTH. */) + doc: /* Tell PROCESS that it has logical window size WIDTH by HEIGHT. +Value is t if PROCESS was successfully told about the window size, +nil otherwise. */) (Lisp_Object process, Lisp_Object height, Lisp_Object width) { CHECK_PROCESS (process); @@ -1179,13 +1193,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; @@ -1252,7 +1266,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) @@ -4085,19 +4099,6 @@ Data that is unavailable is returned as nil. */) #endif } -/* If program file NAME starts with /: for quoting a magic - name, remove that, preserving the multibyteness of NAME. */ - -Lisp_Object -remove_slash_colon (Lisp_Object name) -{ - return - ((SBYTES (name) > 2 && SREF (name, 0) == '/' && SREF (name, 1) == ':') - ? make_specified_string (SSDATA (name) + 2, SCHARS (name) - 2, - SBYTES (name) - 2, STRING_MULTIBYTE (name)) - : name); -} - /* Turn off input and output for process PROC. */ static void @@ -4273,15 +4274,7 @@ server_accept_connection (Lisp_Object server, int channel) if (s < 0) { int code = errno; - - if (code == EAGAIN) - return; -#ifdef EWOULDBLOCK - if (code == EWOULDBLOCK) - return; -#endif - - if (!NILP (ps->log)) + if (!would_block (code) && !NILP (ps->log)) call3 (ps->log, server, Qnil, concat3 (build_string ("accept failed with code"), Fnumber_to_string (make_number (code)), @@ -4698,12 +4691,8 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, int nread = read_process_output (proc, wait_proc->infd); if (nread < 0) { - if (errno == EIO || errno == EAGAIN) - break; -#ifdef EWOULDBLOCK - if (errno == EWOULDBLOCK) - break; -#endif + if (errno == EIO || would_block (errno)) + break; } else { @@ -4922,16 +4911,22 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, haven't lowered our timeout due to timers or SIGIO and have waited a long amount of time due to repeated timers. */ + struct timespec huge_timespec + = make_timespec (TYPE_MAXIMUM (time_t), 2 * TIMESPEC_RESOLUTION); + struct timespec cmp_time = huge_timespec; if (wait < TIMEOUT) break; - struct timespec cmp_time - = (wait == TIMEOUT - ? end_time - : (!process_skipped && got_some_output > 0 - && (timeout.tv_sec > 0 || timeout.tv_nsec > 0)) - ? got_output_end_time - : invalid_timespec ()); - if (timespec_valid_p (cmp_time)) + if (wait == TIMEOUT) + cmp_time = end_time; + if (!process_skipped && got_some_output > 0 + && (timeout.tv_sec > 0 || timeout.tv_nsec > 0)) + { + if (!timespec_valid_p (got_output_end_time)) + break; + if (timespec_cmp (got_output_end_time, cmp_time) < 0) + cmp_time = got_output_end_time; + } + if (timespec_cmp (cmp_time, huge_timespec) < 0) { now = current_timespec (); if (timespec_cmp (cmp_time, now) <= 0) @@ -5078,11 +5073,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, if (do_display) redisplay_preserve_echo_area (12); } -#ifdef EWOULDBLOCK - else if (nread == -1 && errno == EWOULDBLOCK) - ; -#endif - else if (nread == -1 && errno == EAGAIN) + else if (nread == -1 && would_block (errno)) ; #ifdef WINDOWSNT /* FIXME: Is this special case still needed? */ @@ -5806,11 +5797,7 @@ send_process (Lisp_Object proc, const char *buf, ptrdiff_t len, if (rv < 0) { - if (errno == EAGAIN -#ifdef EWOULDBLOCK - || errno == EWOULDBLOCK -#endif - ) + if (would_block (errno)) /* Buffer is full. Wait, accepting input; that may allow the program to finish doing output and read more. */ @@ -6161,8 +6148,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) @@ -7118,6 +7105,19 @@ add_timer_wait_descriptor (int fd) #endif /* HAVE_TIMERFD */ +/* If program file NAME starts with /: for quoting a magic + name, remove that, preserving the multibyteness of NAME. */ + +Lisp_Object +remove_slash_colon (Lisp_Object name) +{ + return + ((SBYTES (name) > 2 && SREF (name, 0) == '/' && SREF (name, 1) == ':') + ? make_specified_string (SSDATA (name) + 2, SCHARS (name) - 2, + SBYTES (name) - 2, STRING_MULTIBYTE (name)) + : name); +} + /* Add DESC to the set of keyboard input descriptors. */ void @@ -7643,13 +7643,6 @@ The variable takes effect when `start-process' is called. */); defsubr (&Sset_process_filter_multibyte); defsubr (&Sprocess_filter_multibyte_p); -#endif /* subprocesses */ - - defsubr (&Sget_buffer_process); - defsubr (&Sprocess_inherit_coding_system_flag); - defsubr (&Slist_system_processes); - defsubr (&Sprocess_attributes); - { Lisp_Object subfeatures = Qnil; const struct socket_options *sopt; @@ -7684,4 +7677,10 @@ The variable takes effect when `start-process' is called. */); Fprovide (intern_c_string ("make-network-process"), subfeatures); } +#endif /* subprocesses */ + + defsubr (&Sget_buffer_process); + defsubr (&Sprocess_inherit_coding_system_flag); + defsubr (&Slist_system_processes); + defsubr (&Sprocess_attributes); } diff --git a/src/regex.c b/src/regex.c index 164eb4612ae0..56b18e6b5bb1 100644 --- a/src/regex.c +++ b/src/regex.c @@ -152,6 +152,8 @@ /* Converts the pointer to the char to BEG-based offset from the start. */ # define PTR_TO_OFFSET(d) POS_AS_IN_BUFFER (POINTER_TO_OFFSET (d)) +/* Strings are 0-indexed, buffers are 1-indexed; we pun on the boolean + result to get the right base index. */ # define POS_AS_IN_BUFFER(p) ((p) + (NILP (re_match_object) || BUFFERP (re_match_object))) # define RE_MULTIBYTE_P(bufp) ((bufp)->multibyte) @@ -4887,8 +4889,8 @@ WEAK_ALIAS (__re_match, re_match) #endif /* not emacs */ #ifdef emacs -/* In Emacs, this is the string or buffer in which we - are matching. It is used for looking up syntax properties. */ +/* In Emacs, this is the string or buffer in which we are matching. + See the declaration in regex.h for details. */ Lisp_Object re_match_object; #endif diff --git a/src/regex.h b/src/regex.h index 817167a07cad..51f4424ce94f 100644 --- a/src/regex.h +++ b/src/regex.h @@ -168,8 +168,12 @@ extern reg_syntax_t re_syntax_options; #ifdef emacs # include "lisp.h" -/* In Emacs, this is the string or buffer in which we - are matching. It is used for looking up syntax properties. */ +/* In Emacs, this is the string or buffer in which we are matching. + It is used for looking up syntax properties. + + If the value is a Lisp string object, we are matching text in that + string; if it's nil, we are matching text in the current buffer; if + it's t, we are matching text in a C string. */ extern Lisp_Object re_match_object; #endif diff --git a/src/search.c b/src/search.c index f39df6784c3a..9f55d728362a 100644 --- a/src/search.c +++ b/src/search.c @@ -308,12 +308,20 @@ looking_at_1 (Lisp_Object string, bool posix) re_match_object = Qnil; +#ifdef REL_ALLOC + /* Prevent ralloc.c from relocating the current buffer while + searching it. */ + r_alloc_inhibit_buffer_relocation (1); +#endif i = re_match_2 (bufp, (char *) p1, s1, (char *) p2, s2, PT_BYTE - BEGV_BYTE, (NILP (Vinhibit_changing_match_data) ? &search_regs : NULL), ZV_BYTE - BEGV_BYTE); immediate_quit = 0; +#ifdef REL_ALLOC + r_alloc_inhibit_buffer_relocation (0); +#endif if (i == -2) matcher_overflow (); @@ -561,8 +569,16 @@ fast_looking_at (Lisp_Object regexp, ptrdiff_t pos, ptrdiff_t pos_byte, buf = compile_pattern (regexp, 0, Qnil, 0, multibyte); immediate_quit = 1; +#ifdef REL_ALLOC + /* Prevent ralloc.c from relocating the current buffer while + searching it. */ + r_alloc_inhibit_buffer_relocation (1); +#endif len = re_match_2 (buf, (char *) p1, s1, (char *) p2, s2, pos_byte, NULL, limit_byte); +#ifdef REL_ALLOC + r_alloc_inhibit_buffer_relocation (0); +#endif immediate_quit = 0; return len; @@ -1213,6 +1229,12 @@ search_buffer (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte, } re_match_object = Qnil; +#ifdef REL_ALLOC + /* Prevent ralloc.c from relocating the current buffer while + searching it. */ + r_alloc_inhibit_buffer_relocation (1); +#endif + while (n < 0) { ptrdiff_t val; @@ -1254,6 +1276,9 @@ search_buffer (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte, else { immediate_quit = 0; +#ifdef REL_ALLOC + r_alloc_inhibit_buffer_relocation (0); +#endif return (n); } n++; @@ -1296,11 +1321,17 @@ search_buffer (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte, else { immediate_quit = 0; +#ifdef REL_ALLOC + r_alloc_inhibit_buffer_relocation (0); +#endif return (0 - n); } n--; } immediate_quit = 0; +#ifdef REL_ALLOC + r_alloc_inhibit_buffer_relocation (0); +#endif return (pos); } else /* non-RE case */ @@ -1999,12 +2030,26 @@ boyer_moore (EMACS_INT n, unsigned char *base_pat, if (i + direction == 0) { ptrdiff_t position, start, end; +#ifdef REL_ALLOC + ptrdiff_t cursor_off; +#endif cursor -= direction; position = pos_byte + cursor - p2 + ((direction > 0) ? 1 - len_byte : 0); +#ifdef REL_ALLOC + /* set_search_regs might call malloc, which could + cause ralloc.c relocate buffer text. We need to + update pointers into buffer text due to that. */ + cursor_off = cursor - p2; +#endif set_search_regs (position, len_byte); +#ifdef REL_ALLOC + p_limit = BYTE_POS_ADDR (limit); + p2 = BYTE_POS_ADDR (pos_byte); + cursor = p2 + cursor_off; +#endif if (NILP (Vinhibit_changing_match_data)) { @@ -2164,12 +2209,17 @@ DEFUN ("search-backward", Fsearch_backward, Ssearch_backward, 1, 4, doc: /* Search backward from point for STRING. Set point to the beginning of the occurrence found, and return point. An optional second argument bounds the search; it is a buffer position. -The match found must not extend before that position. + The match found must not begin before that position. A value of nil + means search to the beginning of the accessible portion of the buffer. Optional third argument, if t, means if fail just return nil (no error). - If not nil and not t, position at limit of search and return nil. -Optional fourth argument COUNT, if non-nil, means to search for COUNT - successive occurrences. If COUNT is negative, search forward, - instead of backward, for -COUNT occurrences. + If not nil and not t, position at limit of search and return nil. +Optional fourth argument COUNT, if a positive number, means to search + for COUNT successive occurrences. If COUNT is negative, search + forward, instead of backward, for -COUNT occurrences. A value of + nil means the same as 1. +With COUNT positive, the match found is the COUNTth to last one (or + last, if COUNT is 1 or nil) in the buffer located entirely before + the origin of the search; correspondingly with COUNT negative. Search case-sensitivity is determined by the value of the variable `case-fold-search', which see. @@ -2184,13 +2234,17 @@ DEFUN ("search-forward", Fsearch_forward, Ssearch_forward, 1, 4, "MSearch: ", doc: /* Search forward from point for STRING. Set point to the end of the occurrence found, and return point. An optional second argument bounds the search; it is a buffer position. -The match found must not extend after that position. A value of nil is - equivalent to (point-max). + The match found must not end after that position. A value of nil + means search to the end of the accessible portion of the buffer. Optional third argument, if t, means if fail just return nil (no error). If not nil and not t, move to limit of search and return nil. -Optional fourth argument COUNT, if non-nil, means to search for COUNT - successive occurrences. If COUNT is negative, search backward, - instead of forward, for -COUNT occurrences. +Optional fourth argument COUNT, if a positive number, means to search + for COUNT successive occurrences. If COUNT is negative, search + backward, instead of forward, for -COUNT occurrences. A value of + nil means the same as 1. +With COUNT positive, the match found is the COUNTth one (or first, + if COUNT is 1 or nil) in the buffer located entirely after the + origin of the search; correspondingly with COUNT negative. Search case-sensitivity is determined by the value of the variable `case-fold-search', which see. @@ -2204,14 +2258,19 @@ See also the functions `match-beginning', `match-end' and `replace-match'. */) DEFUN ("re-search-backward", Fre_search_backward, Sre_search_backward, 1, 4, "sRE search backward: ", doc: /* Search backward from point for match for regular expression REGEXP. -Set point to the beginning of the match, and return point. -The match found is the one starting last in the buffer -and yet ending before the origin of the search. +Set point to the beginning of the occurrence found, and return point. An optional second argument bounds the search; it is a buffer position. -The match found must start at or after that position. + The match found must not begin before that position. A value of nil + means search to the beginning of the accessible portion of the buffer. Optional third argument, if t, means if fail just return nil (no error). - If not nil and not t, move to limit of search and return nil. -Optional fourth argument is repeat count--search for successive occurrences. + If not nil and not t, position at limit of search and return nil. +Optional fourth argument COUNT, if a positive number, means to search + for COUNT successive occurrences. If COUNT is negative, search + forward, instead of backward, for -COUNT occurrences. A value of + nil means the same as 1. +With COUNT positive, the match found is the COUNTth to last one (or + last, if COUNT is 1 or nil) in the buffer located entirely before + the origin of the search; correspondingly with COUNT negative. Search case-sensitivity is determined by the value of the variable `case-fold-search', which see. @@ -2228,10 +2287,17 @@ DEFUN ("re-search-forward", Fre_search_forward, Sre_search_forward, 1, 4, doc: /* Search forward from point for regular expression REGEXP. Set point to the end of the occurrence found, and return point. An optional second argument bounds the search; it is a buffer position. -The match found must not extend after that position. + The match found must not end after that position. A value of nil + means search to the end of the accessible portion of the buffer. Optional third argument, if t, means if fail just return nil (no error). If not nil and not t, move to limit of search and return nil. -Optional fourth argument is repeat count--search for successive occurrences. +Optional fourth argument COUNT, if a positive number, means to search + for COUNT successive occurrences. If COUNT is negative, search + backward, instead of forward, for -COUNT occurrences. A value of + nil means the same as 1. +With COUNT positive, the match found is the COUNTth one (or first, + if COUNT is 1 or nil) in the buffer located entirely after the + origin of the search; correspondingly with COUNT negative. Search case-sensitivity is determined by the value of the variable `case-fold-search', which see. @@ -2247,14 +2313,19 @@ DEFUN ("posix-search-backward", Fposix_search_backward, Sposix_search_backward, "sPosix search backward: ", doc: /* Search backward from point for match for regular expression REGEXP. Find the longest match in accord with Posix regular expression rules. -Set point to the beginning of the match, and return point. -The match found is the one starting last in the buffer -and yet ending before the origin of the search. +Set point to the beginning of the occurrence found, and return point. An optional second argument bounds the search; it is a buffer position. -The match found must start at or after that position. + The match found must not begin before that position. A value of nil + means search to the beginning of the accessible portion of the buffer. Optional third argument, if t, means if fail just return nil (no error). - If not nil and not t, move to limit of search and return nil. -Optional fourth argument is repeat count--search for successive occurrences. + If not nil and not t, position at limit of search and return nil. +Optional fourth argument COUNT, if a positive number, means to search + for COUNT successive occurrences. If COUNT is negative, search + forward, instead of backward, for -COUNT occurrences. A value of + nil means the same as 1. +With COUNT positive, the match found is the COUNTth to last one (or + last, if COUNT is 1 or nil) in the buffer located entirely before + the origin of the search; correspondingly with COUNT negative. Search case-sensitivity is determined by the value of the variable `case-fold-search', which see. @@ -2272,10 +2343,17 @@ DEFUN ("posix-search-forward", Fposix_search_forward, Sposix_search_forward, 1, Find the longest match in accord with Posix regular expression rules. Set point to the end of the occurrence found, and return point. An optional second argument bounds the search; it is a buffer position. -The match found must not extend after that position. + The match found must not end after that position. A value of nil + means search to the end of the accessible portion of the buffer. Optional third argument, if t, means if fail just return nil (no error). If not nil and not t, move to limit of search and return nil. -Optional fourth argument is repeat count--search for successive occurrences. +Optional fourth argument COUNT, if a positive number, means to search + for COUNT successive occurrences. If COUNT is negative, search + backward, instead of forward, for -COUNT occurrences. A value of + nil means the same as 1. +With COUNT positive, the match found is the COUNTth one (or first, + if COUNT is 1 or nil) in the buffer located entirely after the + origin of the search; correspondingly with COUNT negative. Search case-sensitivity is determined by the value of the variable `case-fold-search', which see. @@ -2591,6 +2669,7 @@ since only regular expressions have distinguished subexpressions. */) const unsigned char *add_stuff = NULL; ptrdiff_t add_len = 0; ptrdiff_t idx = -1; + ptrdiff_t begbyte; if (str_multibyte) { @@ -2653,11 +2732,10 @@ since only regular expressions have distinguished subexpressions. */) set up ADD_STUFF and ADD_LEN to point to it. */ if (idx >= 0) { - ptrdiff_t begbyte = CHAR_TO_BYTE (search_regs.start[idx]); + begbyte = CHAR_TO_BYTE (search_regs.start[idx]); add_len = CHAR_TO_BYTE (search_regs.end[idx]) - begbyte; if (search_regs.start[idx] < GPT && GPT < search_regs.end[idx]) move_gap_both (search_regs.start[idx], begbyte); - add_stuff = BYTE_POS_ADDR (begbyte); } /* Now the stuff we want to add to SUBSTED @@ -2670,6 +2748,11 @@ since only regular expressions have distinguished subexpressions. */) add_len - (substed_alloc_size - substed_len), STRING_BYTES_BOUND, 1); + /* We compute this after the call to xpalloc, because that + could cause buffer text be relocated when ralloc.c is used. */ + if (idx >= 0) + add_stuff = BYTE_POS_ADDR (begbyte); + /* Now add to the end of SUBSTED. */ if (add_stuff) { @@ -2684,10 +2767,25 @@ since only regular expressions have distinguished subexpressions. */) xfree (substed); } + /* The functions below modify the buffer, so they could trigger + various modification hooks (see signal_before_change and + signal_after_change). If these hooks clobber the match data we + error out since otherwise this will result in confusing bugs. */ + ptrdiff_t sub_start = search_regs.start[sub]; + ptrdiff_t sub_end = search_regs.end[sub]; + unsigned num_regs = search_regs.num_regs; + newpoint = search_regs.start[sub] + SCHARS (newtext); + /* Replace the old text with the new in the cleanest possible way. */ replace_range (search_regs.start[sub], search_regs.end[sub], - newtext, 1, 0, 1); - newpoint = search_regs.start[sub] + SCHARS (newtext); + newtext, 1, 0, 1, 1); + /* Update saved data to match adjustment made by replace_range. */ + { + ptrdiff_t change = newpoint - sub_end; + if (sub_start >= sub_end) + sub_start += change; + sub_end += change; + } if (case_action == all_caps) Fupcase_region (make_number (search_regs.start[sub]), @@ -2696,25 +2794,10 @@ since only regular expressions have distinguished subexpressions. */) Fupcase_initials_region (make_number (search_regs.start[sub]), make_number (newpoint)); - /* Adjust search data for this change. */ - { - ptrdiff_t oldend = search_regs.end[sub]; - ptrdiff_t oldstart = search_regs.start[sub]; - ptrdiff_t change = newpoint - search_regs.end[sub]; - ptrdiff_t i; - - for (i = 0; i < search_regs.num_regs; i++) - { - if (search_regs.start[i] >= oldend) - search_regs.start[i] += change; - else if (search_regs.start[i] > oldstart) - search_regs.start[i] = oldstart; - if (search_regs.end[i] >= oldend) - search_regs.end[i] += change; - else if (search_regs.end[i] > oldstart) - search_regs.end[i] = oldstart; - } - } + if (search_regs.start[sub] != sub_start + || search_regs.end[sub] != sub_end + || search_regs.num_regs != num_regs) + error ("Match data clobbered by buffer modification hooks"); /* Put point back where it was in the text. */ if (opoint <= 0) @@ -3056,6 +3139,27 @@ restore_search_regs (void) } } +/* Called from replace-match via replace_range. */ +void +update_search_regs (ptrdiff_t oldstart, ptrdiff_t oldend, ptrdiff_t newend) +{ + /* Adjust search data for this change. */ + ptrdiff_t change = newend - oldend; + ptrdiff_t i; + + for (i = 0; i < search_regs.num_regs; i++) + { + if (search_regs.start[i] >= oldend) + search_regs.start[i] += change; + else if (search_regs.start[i] > oldstart) + search_regs.start[i] = oldstart; + if (search_regs.end[i] >= oldend) + search_regs.end[i] += change; + else if (search_regs.end[i] > oldstart) + search_regs.end[i] = oldstart; + } +} + static void unwind_set_match_data (Lisp_Object list) { @@ -3342,6 +3446,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 diff --git a/src/syntax.c b/src/syntax.c index 8e14bf3fb1d6..6e133ad9c279 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -2171,63 +2171,51 @@ skip_syntaxes (bool forwardp, Lisp_Object string, Lisp_Object lim) ptrdiff_t start_point = PT; ptrdiff_t pos = PT; ptrdiff_t pos_byte = PT_BYTE; - unsigned char *p = PT_ADDR, *endp, *stop; - - if (forwardp) - { - endp = (XINT (lim) == GPT) ? GPT_ADDR : CHAR_POS_ADDR (XINT (lim)); - stop = (pos < GPT && GPT < XINT (lim)) ? GPT_ADDR : endp; - } - else - { - endp = CHAR_POS_ADDR (XINT (lim)); - stop = (pos >= GPT && GPT > XINT (lim)) ? GAP_END_ADDR : endp; - } + unsigned char *p, *endp, *stop; immediate_quit = 1; SETUP_SYNTAX_TABLE (pos, forwardp ? 1 : -1); + if (forwardp) { - if (multibyte) + while (true) { - while (1) + p = BYTE_POS_ADDR (pos_byte); + endp = XINT (lim) == GPT ? GPT_ADDR : CHAR_POS_ADDR (XINT (lim)); + stop = pos < GPT && GPT < XINT (lim) ? GPT_ADDR : endp; + + do { int nbytes; if (p >= stop) { if (p >= endp) - break; + goto done; p = GAP_END_ADDR; stop = endp; } - c = STRING_CHAR_AND_LENGTH (p, nbytes); + if (multibyte) + c = STRING_CHAR_AND_LENGTH (p, nbytes); + else + c = *p, nbytes = 1; if (! fastmap[SYNTAX (c)]) - break; + goto done; p += nbytes, pos++, pos_byte += nbytes; - UPDATE_SYNTAX_TABLE_FORWARD (pos); - } - } - else - { - while (1) - { - if (p >= stop) - { - if (p >= endp) - break; - p = GAP_END_ADDR; - stop = endp; - } - if (! fastmap[SYNTAX (*p)]) - break; - p++, pos++, pos_byte++; - UPDATE_SYNTAX_TABLE_FORWARD (pos); } + while (!parse_sexp_lookup_properties + || pos < gl_state.e_property); + + update_syntax_table_forward (pos + gl_state.offset, + false, gl_state.object); } } else { + p = BYTE_POS_ADDR (pos_byte); + endp = CHAR_POS_ADDR (XINT (lim)); + stop = pos >= GPT && GPT > XINT (lim) ? GAP_END_ADDR : endp; + if (multibyte) { while (1) @@ -2269,6 +2257,7 @@ skip_syntaxes (bool forwardp, Lisp_Object string, Lisp_Object lim) } } + done: SET_PT_BOTH (pos, pos_byte); immediate_quit = 0; @@ -3079,7 +3068,7 @@ but before count is used up, nil is returned. */) DEFUN ("backward-prefix-chars", Fbackward_prefix_chars, Sbackward_prefix_chars, 0, 0, 0, doc: /* Move point backward over any number of chars with prefix syntax. -This includes chars with expression prefix syntax class (') and those with +This includes chars with expression prefix syntax class (\\=') and those with the prefix syntax flag (p). */) (void) { @@ -3109,8 +3098,9 @@ the prefix syntax flag (p). */) opoint = pos; opoint_byte = pos_byte; - if (pos + 1 > beg) - DEC_BOTH (pos, pos_byte); + if (pos <= beg) + break; + DEC_BOTH (pos, pos_byte); } SET_PT_BOTH (opoint, opoint_byte); @@ -3712,7 +3702,7 @@ In both cases, LIMIT bounds the search. */); Vfind_word_boundary_function_table = Fmake_char_table (Qnil, Qnil); DEFVAR_BOOL ("comment-end-can-be-escaped", Vcomment_end_can_be_escaped, - doc: /* Non-nil means an escaped ender inside a comment doesn'tend the comment. */); + doc: /* Non-nil means an escaped ender inside a comment doesn't end the comment. */); Vcomment_end_can_be_escaped = 0; DEFSYM (Qcomment_end_can_be_escaped, "comment-end-can-be-escaped"); Fmake_variable_buffer_local (Qcomment_end_can_be_escaped); diff --git a/src/sysdep.c b/src/sysdep.c index 460166d119eb..3f941c2000c3 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -2106,27 +2106,35 @@ void init_random (void) { random_seed v; - if (! (EQ (emacs_gnutls_global_init (), Qt) - && gnutls_rnd (GNUTLS_RND_NONCE, &v, sizeof v) == 0)) - { - bool success = false; -#ifndef WINDOWSNT - int fd = emacs_open ("/dev/urandom", O_RDONLY | O_BINARY, 0); - if (0 <= fd) - { - success = emacs_read (fd, &v, sizeof v) == sizeof v; - emacs_close (fd); - } + bool success = false; + + /* First, try seeding the PRNG from the operating system's entropy + source. This approach is both fast and secure. */ +#ifdef WINDOWSNT + success = w32_init_random (&v, sizeof v) == 0; #else - success = w32_init_random (&v, sizeof v) == 0; + int fd = emacs_open ("/dev/urandom", O_RDONLY, 0); + if (0 <= fd) + { + success = emacs_read (fd, &v, sizeof v) == sizeof v; + close (fd); + } #endif - if (! success) - { - /* Fall back to current time value + PID. */ - struct timespec t = current_timespec (); - v = getpid () ^ t.tv_sec ^ t.tv_nsec; - } + + /* If that didn't work, try using GnuTLS, which is secure, but on + some systems, can be somewhat slow. */ + if (!success) + success = EQ (emacs_gnutls_global_init (), Qt) + && gnutls_rnd (GNUTLS_RND_NONCE, &v, sizeof v) == 0; + + /* If _that_ didn't work, just use the current time value and PID. + It's at least better than XKCD 221. */ + if (!success) + { + struct timespec t = current_timespec (); + v = getpid () ^ t.tv_sec ^ t.tv_nsec; } + set_random_seed (v); } @@ -2337,7 +2345,7 @@ posix_close (int fd, int flag) closed, and retrying the close could inadvertently close a file descriptor allocated by some other thread. In other systems (e.g., HP/UX) FD is not closed. And in still other systems - (e.g., OS X, Solaris), maybe FD is closed, maybe not, and in a + (e.g., macOS, Solaris), maybe FD is closed, maybe not, and in a multithreaded program there can be no way to tell. So, in this case, pretend that the close succeeded. This works diff --git a/src/undo.c b/src/undo.c index be5b27020540..ed69a62844ce 100644 --- a/src/undo.c +++ b/src/undo.c @@ -31,25 +31,21 @@ along with GNU Emacs. If not, see . */ an undo-boundary. */ static Lisp_Object pending_boundary; -/* Record point as it was at beginning of this command (if necessary) - and prepare the undo info for recording a change. - Prepare the undo info for recording a change. */ +/* Prepare the undo info for recording a change. */ static void prepare_record (void) { /* Allocate a cons cell to be the undo boundary after this command. */ if (NILP (pending_boundary)) pending_boundary = Fcons (Qnil, Qnil); - - if (MODIFF <= SAVE_MODIFF) - record_first_change (); } -/* Record point as it was at beginning of this command. - PT is the position of point that will naturally occur as a result of the - undo record that will be added just after this command terminates. */ +/* Record point, if necessary, as it was at beginning of this command. + BEG is the position of point that will naturally occur as a result + of the undo record that will be added just after this command + terminates. */ static void -record_point (ptrdiff_t pt) +record_point (ptrdiff_t beg) { /* Don't record position of pt when undo_inhibit_record_point holds. */ if (undo_inhibit_record_point) @@ -57,16 +53,28 @@ record_point (ptrdiff_t pt) bool at_boundary; + /* Check whether we are at a boundary now, in case we record the + first change. FIXME: This check is currently dependent on being + called before record_first_change, but could be made not to by + ignoring timestamp undo entries */ at_boundary = ! CONSP (BVAR (current_buffer, undo_list)) || NILP (XCAR (BVAR (current_buffer, undo_list))); - prepare_record (); + /* If this is the first change since save, then record this.*/ + if (MODIFF <= SAVE_MODIFF) + record_first_change (); - /* If we are just after an undo boundary, and - point wasn't at start of deleted range, record where it was. */ - if (at_boundary) + /* We may need to record point if we are immediately after a + boundary, so that this will be restored correctly after undo. We + do not need to do this if point is at the start of a change + region since it will be restored there anyway, and we must not do + this if the buffer has changed since the last command, since the + value of point that we have will be for that buffer, not this.*/ + if (at_boundary + && point_before_last_command_or_undo != beg + && buffer_before_last_command_or_undo == current_buffer ) bset_undo_list (current_buffer, - Fcons (make_number (pt), + Fcons (make_number (point_before_last_command_or_undo), BVAR (current_buffer, undo_list))); } @@ -85,6 +93,8 @@ record_insert (ptrdiff_t beg, ptrdiff_t length) prepare_record (); + record_point (beg); + /* If this is following another insertion and consecutive with it in the buffer, combine the two. */ if (CONSP (BVAR (current_buffer, undo_list))) @@ -120,9 +130,7 @@ record_marker_adjustments (ptrdiff_t from, ptrdiff_t to) register struct Lisp_Marker *m; register ptrdiff_t charpos, adjustment; - /* Allocate a cons cell to be the undo boundary after this command. */ - if (NILP (pending_boundary)) - pending_boundary = Fcons (Qnil, Qnil); + prepare_record(); for (m = BUF_MARKERS (current_buffer); m; m = m->next) { @@ -163,19 +171,17 @@ record_delete (ptrdiff_t beg, Lisp_Object string, bool record_markers) if (EQ (BVAR (current_buffer, undo_list), Qt)) return; - if (point_before_last_command_or_undo != beg - && buffer_before_last_command_or_undo == current_buffer) - record_point (point_before_last_command_or_undo); + prepare_record (); + + record_point (beg); if (PT == beg + SCHARS (string)) { XSETINT (sbeg, -beg); - prepare_record (); } else { XSETFASTINT (sbeg, beg); - prepare_record (); } /* primitive-undo assumes marker adjustments are recorded @@ -234,9 +240,7 @@ record_property_change (ptrdiff_t beg, ptrdiff_t length, if (EQ (BVAR (buf, undo_list), Qt)) return; - /* Allocate a cons cell to be the undo boundary after this command. */ - if (NILP (pending_boundary)) - pending_boundary = Fcons (Qnil, Qnil); + prepare_record(); if (MODIFF <= SAVE_MODIFF) record_first_change (); diff --git a/src/unexmacosx.c b/src/unexmacosx.c index bdacc8b540bc..f755f7fafd9a 100644 --- a/src/unexmacosx.c +++ b/src/unexmacosx.c @@ -1,4 +1,4 @@ -/* Dump Emacs in Mach-O format for use on Mac OS X. +/* Dump Emacs in Mach-O format for use on macOS. Copyright (C) 2001-2016 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -24,7 +24,7 @@ along with GNU Emacs. If not, see . */ Mach-O format: the file loader.h, man pages for Mach-O and ld, old NEXTSTEP documents of the Mach-O format. The tool otool dumps the mach header (-h option) and the load commands (-l option) in a - Mach-O file. The tool nm on Mac OS X displays the symbol table in + Mach-O file. The tool nm on macOS displays the symbol table in a Mach-O file. For examples of unexec for the Mach-O format, see the file unexnext.c in the GNU Emacs distribution, the file unexdyld.c in the Darwin port of GNU Emacs 20.7, and unexdyld.c in @@ -33,7 +33,7 @@ along with GNU Emacs. If not, see . */ Read that to see what they do. This file was written completely from scratch, making use of information from the above sources. */ -/* The Mac OS X implementation of unexec makes use of Darwin's `zone' +/* The macOS implementation of unexec makes use of Darwin's `zone' memory allocator. All calls to malloc, realloc, and free in Emacs are redirected to unexec_malloc, unexec_realloc, and unexec_free in this file. When temacs is run, all memory requests are handled in @@ -49,7 +49,7 @@ along with GNU Emacs. If not, see . */ block must be obtained by malloc and the old contents copied to it. */ -/* Peculiarity of the Mach-O files generated by ld in Mac OS X +/* Peculiarity of the Mach-O files generated by ld in macOS (possible causes of future bugs if changed). The file offset of the start of the __TEXT segment is zero. Since @@ -118,9 +118,9 @@ along with GNU Emacs. If not, see . */ #include -/* LC_DATA_IN_CODE is not defined in mach-o/loader.h on OS X 10.7. +/* LC_DATA_IN_CODE is not defined in mach-o/loader.h on Mac OS X 10.7. But it is used if we build with "Command Line Tools for Xcode 4.5 - (OS X Lion) - September 2012". */ + (Mac OS X Lion) - September 2012". */ #ifndef LC_DATA_IN_CODE #define LC_DATA_IN_CODE 0x29 /* table of non-instructions in __text */ #endif diff --git a/src/w16select.c b/src/w16select.c index 434a59878938..208cfccf11a1 100644 --- a/src/w16select.c +++ b/src/w16select.c @@ -65,8 +65,6 @@ unsigned get_clipboard_data (unsigned, void *, unsigned, int); unsigned close_clipboard (void); unsigned clipboard_compact (unsigned); -Lisp_Object QCLIPBOARD, QPRIMARY; - /* The segment address and the size of the buffer in low memory used to move data between us and WinOldAp module. */ static struct { @@ -719,8 +717,7 @@ variable is set, it is used for the next communication only. After the communication, this variable is set to nil. */); Vnext_selection_coding_system = Qnil; - QPRIMARY = intern ("PRIMARY"); staticpro (&QPRIMARY); - QCLIPBOARD = intern ("CLIPBOARD"); staticpro (&QCLIPBOARD); + DEFSYM (QCLIPBOARD, "CLIPBOARD"); } #endif /* MSDOS */ diff --git a/src/w32.c b/src/w32.c index c26f14593f1e..7c57693cf3d3 100644 --- a/src/w32.c +++ b/src/w32.c @@ -1493,6 +1493,16 @@ w32_valid_pointer_p (void *p, int size) /* Current codepage for encoding file names. */ static int file_name_codepage; +/* Initialize the codepage used for decoding file names. This is + needed to undo the value recorded during dumping, which might not + be correct when we run the dumped Emacs. */ +void +w32_init_file_name_codepage (void) +{ + file_name_codepage = CP_ACP; + w32_ansi_code_page = CP_ACP; +} + /* Produce a Windows ANSI codepage suitable for encoding file names. Return the information about that codepage in CP_INFO. */ int @@ -1509,12 +1519,13 @@ codepage_for_filenames (CPINFO *cp_info) if (NILP (current_encoding)) current_encoding = Vdefault_file_name_coding_system; - if (!EQ (last_file_name_encoding, current_encoding)) + if (!EQ (last_file_name_encoding, current_encoding) + || NILP (last_file_name_encoding)) { /* Default to the current ANSI codepage. */ file_name_codepage = w32_ansi_code_page; - if (NILP (current_encoding)) + if (!NILP (current_encoding)) { char *cpname = SSDATA (SYMBOL_NAME (current_encoding)); char *cp = NULL, *end; @@ -1543,6 +1554,9 @@ codepage_for_filenames (CPINFO *cp_info) if (!GetCPInfo (file_name_codepage, &cp)) emacs_abort (); } + + /* Cache the new value. */ + last_file_name_encoding = current_encoding; } if (cp_info) *cp_info = cp; @@ -2773,10 +2787,13 @@ init_environment (char ** argv) } if (strcmp (env_vars[i].name, "HOME") == 0 && !appdata) Vdelayed_warnings_list - = Fcons (listn (CONSTYPE_HEAP, 2, - intern ("initialization"), - build_string ("Setting HOME to C:\\ by default is deprecated")), - Vdelayed_warnings_list); + = Fcons + (listn (CONSTYPE_HEAP, 2, + intern ("initialization"), build_string + ("Use of `C:\\.emacs' without defining `HOME'\n" + "in the environment is deprecated, " + "see `Windows HOME' in the Emacs manual.")), + Vdelayed_warnings_list); } if (lpval) diff --git a/src/w32.h b/src/w32.h index 42a1c423ce73..08b88f5f5a00 100644 --- a/src/w32.h +++ b/src/w32.h @@ -195,6 +195,7 @@ extern int filename_from_ansi (const char *, char *); extern int filename_to_ansi (const char *, char *); extern int filename_from_utf16 (const wchar_t *, char *); extern int filename_to_utf16 (const char *, wchar_t *); +extern void w32_init_file_name_codepage (void); extern int codepage_for_filenames (CPINFO *); extern Lisp_Object ansi_encode_filename (Lisp_Object); extern int w32_copy_file (const char *, const char *, int, int, int); diff --git a/src/w32fns.c b/src/w32fns.c index c57b5a188b23..27c0d65fbd07 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -6934,7 +6934,7 @@ value of DIR as in previous invocations; this is standard Windows behavior. */) } new_file_details_w; #ifdef NTGUI_UNICODE - wchar_t filename_buf_w[32*1024 + 1]; // NT kernel maximum + wchar_t filename_buf_w[32*1024 + 1]; /* NT kernel maximum */ OPENFILENAMEW * file_details_w = &new_file_details_w.details; const int use_unicode = 1; #else /* not NTGUI_UNICODE */ diff --git a/src/w32heap.c b/src/w32heap.c index 6643b439a267..3e628d54c42a 100644 --- a/src/w32heap.c +++ b/src/w32heap.c @@ -129,18 +129,18 @@ static DWORD_PTR committed = 0; /* The maximum block size that can be handled by a non-growable w32 heap is limited by the MaxBlockSize value below. - This point deserves and explanation. + This point deserves an explanation. - The W32 heap allocator can be used for a growable - heap or a non-growable one. + The W32 heap allocator can be used for a growable heap or a + non-growable one. A growable heap is not compatible with a fixed base address for the heap. Only a non-growable one is. One drawback of non-growable heaps is that they can hold only objects smaller than a certain - size (the one defined below). Most of the largest blocks are GC'ed - before dumping. In any case and to be safe, we implement a simple + size (the one defined below). Most of the larger blocks are GC'ed + before dumping. In any case, and to be safe, we implement a simple first-fit allocation algorithm starting at the end of the - dumped_data[] array like depicted below: + dumped_data[] array as depicted below: ---------------------------------------------- | | | | @@ -273,7 +273,7 @@ init_heap (void) else { /* Find the RtlCreateHeap function. Headers for this function - are provided with the w32 ddk, but the function is available + are provided with the w32 DDK, but the function is available in ntdll.dll since XP. */ HMODULE hm_ntdll = LoadLibrary ("ntdll.dll"); RtlCreateHeap_Proc s_pfn_Rtl_Create_Heap diff --git a/src/w32term.c b/src/w32term.c index 51743f8f94da..7b74ae03ad03 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -7157,7 +7157,10 @@ specified by `file-name-coding-system'. This variable is set to non-nil by default when Emacs runs on Windows systems of the NT family, including W2K, XP, Vista, Windows 7 and Windows 8. It is set to nil on Windows 9X. */); - w32_unicode_filenames = 0; + if (os_subtype == OS_9X) + w32_unicode_filenames = 0; + else + w32_unicode_filenames = 1; /* FIXME: The following variable will be (hopefully) removed diff --git a/src/window.c b/src/window.c index 733cf75d1321..8d86f7f08157 100644 --- a/src/window.c +++ b/src/window.c @@ -7269,8 +7269,8 @@ same combination. Other values are reserved for future use. -This variable takes no effect if the variable `window-combination-limit' is -non-nil. */); +A specific split operation may ignore the value of this variable if it +is affected by a non-nil value of `window-combination-limit'. */); Vwindow_combination_resize = Qnil; DEFVAR_LISP ("window-combination-limit", Vwindow_combination_limit, diff --git a/src/window.h b/src/window.h index 0cfff88be51d..4845f757e3b5 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) \ diff --git a/src/xdisp.c b/src/xdisp.c index cc2c951ce5c1..f575b27fec5f 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -6298,9 +6298,10 @@ forward_to_next_line_start (struct it *it, bool *skipped_p, } else { - while (get_next_display_element (it) - && !newline_found_p) + while (!newline_found_p) { + if (!get_next_display_element (it)) + break; newline_found_p = ITERATOR_AT_END_OF_LINE_P (it); if (newline_found_p && it->bidi_p && bidi_it_prev) *bidi_it_prev = it->bidi_it; @@ -8805,6 +8806,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 +8826,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 +8899,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 +8927,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 +9115,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); @@ -16122,6 +16163,7 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) bool last_line_misfit = false; ptrdiff_t beg_unchanged, end_unchanged; int frame_line_height; + void *itdata = NULL; SET_TEXT_POS (lpoint, PT, PT_BYTE); opoint = lpoint; @@ -16843,6 +16885,11 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) /* Run scroll hooks. */ startp = run_window_scroll_functions (window, it.current.pos); + /* We invoke try_window and try_window_reusing_current_matrix below, + and they manipulate the bidi cache. Save and restore the cache + state of our iterator, so we could continue using it after that. */ + itdata = bidi_shelve_cache (); + /* Redisplay the window. */ bool use_desired_matrix = false; if (!current_matrix_up_to_date_p @@ -16857,6 +16904,8 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) = try_window_reusing_current_matrix (w))) use_desired_matrix = (try_window (window, startp, 0) == 1); + bidi_unshelve_cache (itdata, false); + /* If new fonts have been loaded (due to fontsets), give up. We have to start a new redisplay since we need to re-adjust glyph matrices. */ @@ -24412,7 +24461,7 @@ calc_pixel_width_or_height (double *res, struct it *it, Lisp_Object prop, } if (FRAME_WINDOW_P (it->f) && valid_xwidget_spec_p (prop)) { - // TODO: Don't return dummy size. + /* TODO: Don't return dummy size. */ return OK_PIXELS (100); } #endif @@ -28438,8 +28487,7 @@ display_and_set_cursor (struct window *w, bool on, } glyph = NULL; - if (!glyph_row->exact_window_width_line_p - || (0 <= hpos && hpos < glyph_row->used[TEXT_AREA])) + if (0 <= hpos && hpos < glyph_row->used[TEXT_AREA]) glyph = glyph_row->glyphs[TEXT_AREA] + hpos; eassert (input_blocked_p ()); diff --git a/src/xfaces.c b/src/xfaces.c index ac1370003dfa..5077cb2d9446 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -2678,9 +2678,10 @@ FRAME 0 means change the face on all frames, and change the default { if (NILP (frame)) frame = selected_frame; - f = XFRAME (frame); CHECK_LIVE_FRAME (frame); + f = XFRAME (frame); + lface = lface_from_face_name (f, face, false); /* If a frame-local face doesn't exist yet, create one. */ @@ -6502,8 +6503,8 @@ REPLACEMENT is a face specification, i.e. one of the following: (3) a list in which each element has the form of (1) or (2). List values for REPLACEMENT are merged to form the final face -specification, with earlier entries taking precedence, in the same as -as in the `face' text property. +specification, with earlier entries taking precedence, in the same way +as with the `face' text property. Face-name remapping cycles are suppressed; recursive references use the underlying face instead of the remapped face. So a remapping of diff --git a/src/xfns.c b/src/xfns.c index b22af5c830d0..7c1bb1c2819d 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -4287,7 +4287,7 @@ x_get_monitor_attributes_xrandr (struct x_display_info *dpyinfo) n_monitors = resources->noutput; monitors = xzalloc (n_monitors * sizeof *monitors); -#ifdef RANDR13_LIBRARY +#if RANDR13_LIBRARY if (randr13_avail) pxid = XRRGetOutputPrimary (dpy, dpyinfo->root_window); #endif diff --git a/src/xftfont.c b/src/xftfont.c index 7926325419c1..34c6f7d3e42a 100644 --- a/src/xftfont.c +++ b/src/xftfont.c @@ -395,6 +395,24 @@ xftfont_open (struct frame *f, Lisp_Object entity, int pixel_size) font->ascent = xftfont->ascent; font->descent = xftfont->descent; + /* The following workaround is unnecessary on most systems, and + causes annoying differences in glyph height between regular and + bold fonts (see bug#22383). However, with some fonts, such as + monaco, removing the workaround results in overlapping vertical + space of a line, see bug#23360. As long as the way to reconcile + these opposites is not known, we provide a user option to work + around the problem. */ + if (pixel_size >= 5 + && xft_font_ascent_descent_override) + { + /* The above condition is a dirty workaround because + XftTextExtents8 behaves strangely for some fonts + (e.g. "Dejavu Sans Mono") when pixel_size is less than 5. */ + if (font->ascent < extents.y) + font->ascent = extents.y; + if (font->descent < extents.height - extents.y) + font->descent = extents.height - extents.y; + } font->height = font->ascent + font->descent; if (XINT (AREF (entity, FONT_SIZE_INDEX)) == 0) @@ -733,6 +751,12 @@ syms_of_xftfont (void) DEFSYM (QCembolden, ":embolden"); DEFSYM (QClcdfilter, ":lcdfilter"); + DEFVAR_BOOL ("xft-font-ascent-descent-override", + xft_font_ascent_descent_override, + doc: /* Non-nil means override the ascent and descent values for Xft font driver. +This is needed with some fonts to correct vertical overlap of glyphs. */); + xft_font_ascent_descent_override = 0; + ascii_printable[0] = 0; xftfont_driver = ftfont_driver; diff --git a/src/xml.c b/src/xml.c index b1175d14a1af..612b16c4c532 100644 --- a/src/xml.c +++ b/src/xml.c @@ -181,6 +181,7 @@ parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, Lisp_Object result = Qnil; const char *burl = ""; ptrdiff_t istart, iend, istart_byte, iend_byte; + unsigned char *buftext; xmlCheckVersion (LIBXML_VERSION); @@ -200,18 +201,32 @@ parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, burl = SSDATA (base_url); } + buftext = BYTE_POS_ADDR (istart_byte); +#ifdef REL_ALLOC + /* Prevent ralloc.c from relocating the current buffer while libxml2 + functions below read its text. */ + r_alloc_inhibit_buffer_relocation (1); +#endif if (htmlp) - doc = htmlReadMemory ((char *) BYTE_POS_ADDR (istart_byte), + doc = htmlReadMemory ((char *)buftext, iend_byte - istart_byte, burl, "utf-8", HTML_PARSE_RECOVER|HTML_PARSE_NONET| HTML_PARSE_NOWARNING|HTML_PARSE_NOERROR| HTML_PARSE_NOBLANKS); else - doc = xmlReadMemory ((char *) BYTE_POS_ADDR (istart_byte), + doc = xmlReadMemory ((char *)buftext, iend_byte - istart_byte, burl, "utf-8", XML_PARSE_NONET|XML_PARSE_NOWARNING| XML_PARSE_NOBLANKS |XML_PARSE_NOERROR); +#ifdef REL_ALLOC + r_alloc_inhibit_buffer_relocation (0); +#endif + /* If the assertion below fails, malloc was called inside the above + libxml2 functions, and ralloc.c caused relocation of buffer text, + so we could have read from unrelated memory. */ + eassert (buftext == BYTE_POS_ADDR (istart_byte)); + if (doc != NULL) { Lisp_Object r = Qnil; diff --git a/src/xselect.c b/src/xselect.c index 123e46374a28..ff6dc3287cfa 100644 --- a/src/xselect.c +++ b/src/xselect.c @@ -693,7 +693,7 @@ x_reply_selection_request (struct selection_input_event *event, : format_bytes); XFlush (display); had_errors_p = x_had_errors_p (display); - // See comment above about property_change_reply. + /* See comment above about property_change_reply. */ set_property_change_object (cs->wait_object); unblock_input (); @@ -1393,7 +1393,7 @@ receive_incremental_selection (struct x_display_info *dpyinfo, wait_object = expect_property_change (display, window, property, PropertyNewValue); XFlush (display); - // See comment in x_reply_selection_request about property_change_reply. + /* See comment in x_reply_selection_request about property_change_reply. */ set_property_change_object (wait_object); unblock_input (); @@ -1433,7 +1433,8 @@ receive_incremental_selection (struct x_display_info *dpyinfo, XDeleteProperty (display, window, property); wait_object = expect_property_change (display, window, property, PropertyNewValue); - // See comment in x_reply_selection_request about property_change_reply. + /* See comment in x_reply_selection_request about + property_change_reply. */ set_property_change_object (wait_object); XFlush (display); unblock_input (); diff --git a/src/xsmfns.c b/src/xsmfns.c index 42e23401c7da..d54a94df877d 100644 --- a/src/xsmfns.c +++ b/src/xsmfns.c @@ -170,7 +170,7 @@ smc_save_yourself_CB (SmcConn smcConn, char *smid_opt, *chdir_opt = NULL; Lisp_Object user_login_name = Fuser_login_name (Qnil); - // Must have these. + /* Must have these. */ if (! STRINGP (Vinvocation_name) || ! STRINGP (user_login_name)) return; diff --git a/src/xterm.c b/src/xterm.c index 2f8e07759093..213a527d55d1 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -7897,7 +7897,13 @@ handle_one_xevent (struct x_display_info *dpyinfo, record_asynch_buffer_change (); #ifdef USE_GTK + /* xg_frame_resized does the wrong thing with Gtk+ 3.20.3 or later. + For earlier Gtk+ versions it is unclear whether + xg_frame_resized is useful, so leave it in for now. + See Bug#23144. */ +# if ! GTK_CHECK_VERSION (3, 20, 3) xg_frame_resized (f, -1, -1); +# endif #endif } goto OTHER; @@ -11944,7 +11950,7 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) #else /* not USE_X_TOOLKIT */ XSetLocaleModifiers (""); - unrequest_sigio (); // See comment in x_display_ok. + unrequest_sigio (); /* See comment in x_display_ok. */ dpy = XOpenDisplay (SSDATA (display_name)); request_sigio (); #endif /* not USE_X_TOOLKIT */ diff --git a/test/ChangeLog.1 b/test/ChangeLog.1 index 3520f13df609..367ca74b7b92 100644 --- a/test/ChangeLog.1 +++ b/test/ChangeLog.1 @@ -79,7 +79,7 @@ * indent/js-indent-first-initialiser-dynamic.js: New tests for `js-indent-first-initialiser'. -2015-03-10 Przemyslaw Wojnowski +2015-03-10 Przemysław Wojnowski * automated/cl-lib-tests.el: Add tests for plusp, second, ... (cl-lib-test-plusp, cl-lib-test-minusp) diff --git a/test/automated/character-fold-tests.el b/test/automated/char-fold-tests.el similarity index 53% rename from test/automated/character-fold-tests.el rename to test/automated/char-fold-tests.el index c611217712ef..485254aa6cfa 100644 --- a/test/automated/character-fold-tests.el +++ b/test/automated/char-fold-tests.el @@ -1,4 +1,4 @@ -;;; character-fold-tests.el --- Tests for character-fold.el -*- lexical-binding: t; -*- +;;; char-fold-tests.el --- Tests for char-fold.el -*- lexical-binding: t; -*- ;; Copyright (C) 2013-2016 Free Software Foundation, Inc. @@ -20,42 +20,42 @@ ;;; Code: (require 'ert) -(require 'character-fold) +(require 'char-fold) -(defun character-fold--random-word (n) +(defun char-fold--random-word (n) (mapconcat (lambda (_) (string (+ 9 (random 117)))) (make-list n nil) "")) -(defun character-fold--test-search-with-contents (contents string) +(defun char-fold--test-search-with-contents (contents string) (with-temp-buffer (insert contents) (goto-char (point-min)) - (should (search-forward-regexp (character-fold-to-regexp string) nil 'noerror)) + (should (search-forward-regexp (char-fold-to-regexp string) nil 'noerror)) (goto-char (point-min)) - (should (character-fold-search-forward string nil 'noerror)) - (should (character-fold-search-backward string nil 'noerror)))) + (should (char-fold-search-forward string nil 'noerror)) + (should (char-fold-search-backward string nil 'noerror)))) -(ert-deftest character-fold--test-consistency () +(ert-deftest char-fold--test-consistency () (dotimes (n 30) - (let ((w (character-fold--random-word n))) + (let ((w (char-fold--random-word n))) ;; A folded string should always match the original string. - (character-fold--test-search-with-contents w w)))) + (char-fold--test-search-with-contents w w)))) -(ert-deftest character-fold--test-lax-whitespace () +(ert-deftest char-fold--test-lax-whitespace () (dotimes (n 40) - (let ((w1 (character-fold--random-word n)) - (w2 (character-fold--random-word n)) + (let ((w1 (char-fold--random-word n)) + (w2 (char-fold--random-word n)) (search-spaces-regexp "\\s-+")) - (character-fold--test-search-with-contents + (char-fold--test-search-with-contents (concat w1 "\s\n\s\t\f\t\n\r\t" w2) (concat w1 " " w2)) - (character-fold--test-search-with-contents + (char-fold--test-search-with-contents (concat w1 "\s\n\s\t\f\t\n\r\t" w2) (concat w1 (make-string 10 ?\s) w2))))) -(defun character-fold--test-match-exactly (string &rest strings-to-match) - (let ((re (concat "\\`" (character-fold-to-regexp string) "\\'"))) +(defun char-fold--test-match-exactly (string &rest strings-to-match) + (let ((re (concat "\\`" (char-fold-to-regexp string) "\\'"))) (dolist (it strings-to-match) (should (string-match re it))) ;; Case folding @@ -64,49 +64,49 @@ (should (string-match (upcase re) (downcase it))) (should (string-match (downcase re) (upcase it))))))) -(ert-deftest character-fold--test-some-defaults () +(ert-deftest char-fold--test-some-defaults () (dolist (it '(("ffl" . "ffl") ("ffi" . "ffi") ("fi" . "fi") ("ff" . "ff") ("ä" . "ä"))) - (character-fold--test-search-with-contents (cdr it) (car it)) - (let ((multi (char-table-extra-slot character-fold-table 0)) - (character-fold-table (make-char-table 'character-fold-table))) - (set-char-table-extra-slot character-fold-table 0 multi) - (character-fold--test-match-exactly (car it) (cdr it))))) - -(ert-deftest character-fold--test-fold-to-regexp () - (let ((character-fold-table (make-char-table 'character-fold-table)) - (multi (make-char-table 'character-fold-table))) - (set-char-table-extra-slot character-fold-table 0 multi) - (aset character-fold-table ?a "xx") - (aset character-fold-table ?1 "44") - (aset character-fold-table ?\s "-!-") - (character-fold--test-match-exactly "a1a1" "xx44xx44") - (character-fold--test-match-exactly "a1 a 1" "xx44-!--!-xx-!-44") + (char-fold--test-search-with-contents (cdr it) (car it)) + (let ((multi (char-table-extra-slot char-fold-table 0)) + (char-fold-table (make-char-table 'char-fold-table))) + (set-char-table-extra-slot char-fold-table 0 multi) + (char-fold--test-match-exactly (car it) (cdr it))))) + +(ert-deftest char-fold--test-fold-to-regexp () + (let ((char-fold-table (make-char-table 'char-fold-table)) + (multi (make-char-table 'char-fold-table))) + (set-char-table-extra-slot char-fold-table 0 multi) + (aset char-fold-table ?a "xx") + (aset char-fold-table ?1 "44") + (aset char-fold-table ?\s "-!-") + (char-fold--test-match-exactly "a1a1" "xx44xx44") + (char-fold--test-match-exactly "a1 a 1" "xx44-!--!-xx-!-44") (aset multi ?a '(("1" . "99") ("2" . "88") ("12" . "77"))) - (character-fold--test-match-exactly "a" "xx") - (character-fold--test-match-exactly "a1" "xx44" "99") - (character-fold--test-match-exactly "a12" "77" "xx442" "992") - (character-fold--test-match-exactly "a2" "88") + (char-fold--test-match-exactly "a" "xx") + (char-fold--test-match-exactly "a1" "xx44" "99") + (char-fold--test-match-exactly "a12" "77" "xx442" "992") + (char-fold--test-match-exactly "a2" "88") (aset multi ?1 '(("2" . "yy"))) - (character-fold--test-match-exactly "a1" "xx44" "99") - (character-fold--test-match-exactly "a12" "77" "xx442" "992") + (char-fold--test-match-exactly "a1" "xx44" "99") + (char-fold--test-match-exactly "a12" "77" "xx442" "992") ;; Support for this case is disabled. See function definition or: ;; https://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02562.html - ;; (character-fold--test-match-exactly "a12" "xxyy") + ;; (char-fold--test-match-exactly "a12" "xxyy") )) -(ert-deftest character-fold--speed-test () +(ert-deftest char-fold--speed-test () (dolist (string (append '("tty-set-up-initial-frame-face" "tty-set-up-initial-frame-face-frame-faceframe-faceframe-faceframe-face") - (mapcar #'character-fold--random-word '(10 50 100 + (mapcar #'char-fold--random-word '(10 50 100 50 100)))) (message "Testing %s" string) ;; Make sure we didn't just fallback on the trivial search. (should-not (string= (regexp-quote string) - (character-fold-to-regexp string))) + (char-fold-to-regexp string))) (with-temp-buffer (save-excursion (insert string)) (let ((time (time-to-seconds (current-time)))) @@ -114,11 +114,11 @@ ;; created a lot of redundant paths in the regexp. Because of ;; that, if a really long string "almost" matches, the regexp ;; engine took a long time to realize that it doesn't match. - (should-not (character-fold-search-forward (concat string "c") nil 'noerror)) + (should-not (char-fold-search-forward (concat string "c") nil 'noerror)) ;; Ensure it took less than a second. (should (< (- (time-to-seconds (current-time)) time) 1)))))) -(provide 'character-fold-tests) -;;; character-fold-tests.el ends here +(provide 'char-fold-tests) +;;; char-fold-tests.el ends here diff --git a/test/automated/data-tests.el b/test/automated/data-tests.el index 9ca5ac533339..0a292336f35b 100644 --- a/test/automated/data-tests.el +++ b/test/automated/data-tests.el @@ -4,18 +4,18 @@ ;; This file is part of GNU Emacs. -;; This program is free software: you can redistribute it and/or -;; modify it under the terms of the GNU General Public License as -;; published by the Free Software Foundation, either version 3 of the -;; License, or (at your option) any later version. -;; -;; This program is distributed in the hope that it will be useful, but -;; WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; General Public License for more details. -;; +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + ;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see `http://www.gnu.org/licenses/'. +;; along with GNU Emacs. If not, see . ;;; Commentary: diff --git a/test/automated/data/xref/file1.txt b/test/automated/data/xref/file1.txt new file mode 100644 index 000000000000..5d7cc5444430 --- /dev/null +++ b/test/automated/data/xref/file1.txt @@ -0,0 +1,2 @@ +foo foo +bar diff --git a/test/automated/data/xref/file2.txt b/test/automated/data/xref/file2.txt new file mode 100644 index 000000000000..9f075f260046 --- /dev/null +++ b/test/automated/data/xref/file2.txt @@ -0,0 +1,2 @@ + +bar diff --git a/test/automated/electric-tests.el b/test/automated/electric-tests.el index 107b2e79fb61..afd707667b85 100644 --- a/test/automated/electric-tests.el +++ b/test/automated/electric-tests.el @@ -584,5 +584,13 @@ baz\"\"" (skip-chars-backward "\"") (mark-sexp -1))) + +;;; Electric quotes +(define-electric-pair-test electric-quote-string + "" "'" :expected-string "'" :expected-point 2 + :fixture-fn #'electric-quote-local-mode + :bindings '((electric-quote-string . t)) + :test-in-comments nil :test-in-strings nil) + (provide 'electric-tests) ;;; electric-tests.el ends here diff --git a/test/automated/f90.el b/test/automated/f90.el index fece86ca1d82..29c608847f16 100644 --- a/test/automated/f90.el +++ b/test/automated/f90.el @@ -255,4 +255,22 @@ end program prog") (forward-line -2) (should (= 5 (current-indentation))))) +(ert-deftest f90-test-bug25039 () + "Test for http://debbugs.gnu.org/25039 ." + (with-temp-buffer + (f90-mode) + (insert "program prog +select type (a) +class is (c1) +x = 1 +type is (t1) +x = 2 +end select +end program prog") + (f90-indent-subprogram) + (forward-line -3) + (should (= 2 (current-indentation))) ; type is + (forward-line -2) + (should (= 2 (current-indentation))))) ; class is + ;;; f90.el ends here diff --git a/test/automated/font-parse-tests.el b/test/automated/font-parse-tests.el index 6274253360f8..9f730d3148c7 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) diff --git a/test/automated/isearch-tests.el b/test/automated/isearch-tests.el index 48c342403c92..52f312d0b97c 100644 --- a/test/automated/isearch-tests.el +++ b/test/automated/isearch-tests.el @@ -28,5 +28,13 @@ (isearch-update) (should (equal isearch--current-buffer (current-buffer))))) +(ert-deftest isearch--test-done () + ;; Normal operation. + (isearch-update) + (isearch-done) + (should-not isearch--current-buffer) + ;; Bug #21091: let `isearch-done' work without `isearch-update'. + (isearch-done)) + (provide 'isearch-tests) ;;; isearch-tests.el ends here diff --git a/test/automated/package-test.el b/test/automated/package-test.el index 558064547417..c4c856f30315 100644 --- a/test/automated/package-test.el +++ b/test/automated/package-test.el @@ -475,8 +475,15 @@ Must called from within a `tar-mode' buffer." (package-initialize) (package-import-keyring keyring) (package-refresh-contents) - (should (package-install 'signed-good)) - (should-error (package-install 'signed-bad)) + (let ((package-check-signature 'allow-unsigned)) + (should (package-install 'signed-good)) + (should-error (package-install 'signed-bad))) + (let ((package-check-signature t)) + (should (package-install 'signed-good)) + (should-error (package-install 'signed-bad))) + (let ((package-check-signature nil)) + (should (package-install 'signed-good)) + (should (package-install 'signed-bad))) ;; Check if the installed package status is updated. (let ((buf (package-list-packages))) (package-menu-refresh) diff --git a/test/automated/python-tests.el b/test/automated/python-tests.el index ec93c01059c1..f6564dd58cc6 100644 --- a/test/automated/python-tests.el +++ b/test/automated/python-tests.el @@ -614,6 +614,42 @@ something (should (eq (car (python-indent-context)) :after-line)) (should (= (python-indent-calculate-indentation) 0)))) +(ert-deftest python-indent-after-async-block-1 () + "Test PEP492 async def." + (python-tests-with-temp-buffer + " +async def foo(a, b, c=True): +" + (should (eq (car (python-indent-context)) :no-indent)) + (should (= (python-indent-calculate-indentation) 0)) + (goto-char (point-max)) + (should (eq (car (python-indent-context)) :after-block-start)) + (should (= (python-indent-calculate-indentation) 4)))) + +(ert-deftest python-indent-after-async-block-2 () + "Test PEP492 async with." + (python-tests-with-temp-buffer + " +async with foo(a) as mgr: +" + (should (eq (car (python-indent-context)) :no-indent)) + (should (= (python-indent-calculate-indentation) 0)) + (goto-char (point-max)) + (should (eq (car (python-indent-context)) :after-block-start)) + (should (= (python-indent-calculate-indentation) 4)))) + +(ert-deftest python-indent-after-async-block-3 () + "Test PEP492 async for." + (python-tests-with-temp-buffer + " +async for a in sequencer(): +" + (should (eq (car (python-indent-context)) :no-indent)) + (should (= (python-indent-calculate-indentation) 0)) + (goto-char (point-max)) + (should (eq (car (python-indent-context)) :after-block-start)) + (should (= (python-indent-calculate-indentation) 4)))) + (ert-deftest python-indent-after-backslash-1 () "The most common case." (python-tests-with-temp-buffer @@ -1493,6 +1529,26 @@ class C(object): (beginning-of-line) (point)))))) +(ert-deftest python-nav-beginning-of-defun-3 () + (python-tests-with-temp-buffer + " +class C(object): + + async def m(self): + return await self.c() + + async def c(self): + pass +" + (python-tests-look-at "self.c()") + (should (= (save-excursion + (python-nav-beginning-of-defun) + (point)) + (save-excursion + (python-tests-look-at "async def m" -1) + (beginning-of-line) + (point)))))) + (ert-deftest python-nav-end-of-defun-1 () (python-tests-with-temp-buffer " @@ -2396,6 +2452,13 @@ if x: (line-beginning-position) (line-end-position)) "abcdef"))))) +(ert-deftest python-bob-infloop-avoid () + "Test that strings at BOB don't confuse syntax analysis. Bug#24905" + (python-tests-with-temp-buffer + " \"\n" + (goto-char (point-min)) + (font-lock-fontify-buffer))) + ;;; Shell integration diff --git a/test/automated/ruby-mode-tests.el b/test/automated/ruby-mode-tests.el index 7e85fb83eddf..52126a3bdf14 100644 --- a/test/automated/ruby-mode-tests.el +++ b/test/automated/ruby-mode-tests.el @@ -146,6 +146,9 @@ VALUES-PLIST is a list with alternating index and value elements." (ert-deftest ruby-slash-char-literal-is-not-mistaken-for-regexp () (ruby-assert-state "?/" 3 nil)) +(ert-deftest ruby-regexp-is-not-mistaken-for-slash-symbol () + (ruby-assert-state "x = /foo:/" 3 nil)) + (ert-deftest ruby-indent-simple () (ruby-should-indent-buffer "if foo diff --git a/test/automated/simple-test.el b/test/automated/simple-test.el index 12ebc75ea928..c41d01075edf 100644 --- a/test/automated/simple-test.el +++ b/test/automated/simple-test.el @@ -310,6 +310,55 @@ (= 6 (undo-test-point-after-forward-kill)))) +(defmacro simple-test-undo-with-switched-buffer (buffer &rest body) + (declare (indent 1) (debug t)) + (let ((before-buffer (make-symbol "before-buffer"))) + `(let ((,before-buffer (current-buffer))) + (unwind-protect + (progn + (switch-to-buffer ,buffer) + ,@body) + (switch-to-buffer ,before-buffer))))) + +;; This tests for a regression in emacs 25.0 see bug #23632 +(ert-deftest simple-test-undo-extra-boundary-in-tex () + (should + (string= + "" + (simple-test-undo-with-switched-buffer + "temp.tex" + (latex-mode) + ;; This macro calls `latex-insert-block' + (execute-kbd-macro + (read-kbd-macro + " +C-c C-o ;; latex-insert-block +RET ;; newline +C-/ ;; undo +" + )) + (buffer-substring-no-properties + (point-min) + (point-max)))))) + +(ert-deftest missing-record-point-in-undo () + "Check point is being restored correctly. + +See Bug#21722." + (should + (= 5 + (with-temp-buffer + (generate-new-buffer " *temp*") + (emacs-lisp-mode) + (setq buffer-undo-list nil) + (insert "(progn (end-of-line) (insert \"hello\"))") + (beginning-of-line) + (forward-char 4) + (undo-boundary) + (eval-defun nil) + (undo-boundary) + (undo) + (point))))) (provide 'simple-test) ;;; simple-test.el ends here diff --git a/test/automated/subr-tests.el b/test/automated/subr-tests.el index 7906a207a96a..ce212903c9d3 100644 --- a/test/automated/subr-tests.el +++ b/test/automated/subr-tests.el @@ -61,6 +61,15 @@ (quote (0 font-lock-keyword-face)))))))) +(ert-deftest number-sequence-test () + (should (= (length + (number-sequence (1- most-positive-fixnum) most-positive-fixnum)) + 2)) + (should (= (length + (number-sequence + (1+ most-negative-fixnum) most-negative-fixnum -1)) + 2))) + (ert-deftest string-comparison-test () (should (string-lessp "abc" "acb")) (should (string-lessp "aBc" "abc")) diff --git a/test/automated/tramp-tests.el b/test/automated/tramp-tests.el index a12ee387576c..34d8d6ad495b 100644 --- a/test/automated/tramp-tests.el +++ b/test/automated/tramp-tests.el @@ -1598,7 +1598,99 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'." ;; Cleanup. (ignore-errors (delete-file tmp-name))))) -(ert-deftest tramp-test29-vc-registered () +(defun tramp-test--shell-command-to-string-asynchronously (command) + "Like `shell-command-to-string', but for asynchronous processes." + (with-temp-buffer + (async-shell-command command (current-buffer)) + ;; Suppress nasty messages. + (set-process-sentinel (get-buffer-process (current-buffer)) nil) + (while (get-buffer-process (current-buffer)) + (accept-process-output (get-buffer-process (current-buffer)) 0.1)) + (accept-process-output) + (buffer-substring-no-properties (point-min) (point-max)))) + +;; This test is inspired by Bug#23952. +(ert-deftest tramp-test29-environment-variables () + "Check that remote processes set / unset environment variables properly." + :tags '(:expensive-test) + (skip-unless (tramp--test-enabled)) + (skip-unless + (eq + (tramp-find-foreign-file-name-handler tramp-test-temporary-file-directory) + 'tramp-sh-file-name-handler)) + + (dolist (this-shell-command-to-string + '(;; Synchronously. + shell-command-to-string + ;; Asynchronously. + tramp-test--shell-command-to-string-asynchronously)) + + (let ((default-directory tramp-test-temporary-file-directory) + (shell-file-name "/bin/sh") + (envvar (concat "VAR_" (upcase (md5 (current-time-string))))) + kill-buffer-query-functions) + + (unwind-protect + ;; Set a value. + (let ((process-environment + (cons (concat envvar "=foo") process-environment))) + ;; Default value. + (should + (string-match + "foo" + (funcall + this-shell-command-to-string + (format "echo -n ${%s:?bla}" envvar)))))) + + (unwind-protect + ;; Set the empty value. + (let ((process-environment + (cons (concat envvar "=") process-environment))) + ;; Value is null. + (should + (string-match + "bla" + (funcall + this-shell-command-to-string + (format "echo -n ${%s:?bla}" envvar)))) + ;; Variable is set. + (should + (string-match + (regexp-quote envvar) + (funcall this-shell-command-to-string "set"))))) + + ;; We force a reconnect, in order to have a clean environment. + (tramp-cleanup-connection + (tramp-dissect-file-name tramp-test-temporary-file-directory) + 'keep-debug 'keep-password) + (unwind-protect + ;; Unset the variable. + (let ((tramp-remote-process-environment + (cons (concat envvar "=foo") + tramp-remote-process-environment))) + ;; Set the initial value, we want to unset below. + (should + (string-match + "foo" + (funcall + this-shell-command-to-string + (format "echo -n ${%s:?bla}" envvar)))) + (let ((process-environment + (cons envvar process-environment))) + ;; Variable is unset. + (should + (string-match + "bla" + (funcall + this-shell-command-to-string + (format "echo -n ${%s:?bla}" envvar)))) + ;; Variable is unset. + (should-not + (string-match + (regexp-quote envvar) + (funcall this-shell-command-to-string "set"))))))))) + +(ert-deftest tramp-test30-vc-registered () "Check `vc-registered'." :tags '(:expensive-test) (skip-unless (tramp--test-enabled)) @@ -1667,7 +1759,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'." ;; Cleanup. (ignore-errors (delete-directory tmp-name1 'recursive))))) -(ert-deftest tramp-test30-make-auto-save-file-name () +(ert-deftest tramp-test31-make-auto-save-file-name () "Check `make-auto-save-file-name'." (skip-unless (tramp--test-enabled)) @@ -1921,7 +2013,7 @@ Several special characters do not work properly there." (ignore-errors (delete-directory tmp-name2 'recursive))))) (defun tramp--test-special-characters () - "Perform the test in `tramp-test31-special-characters*'." + "Perform the test in `tramp-test32-special-characters*'." ;; Newlines, slashes and backslashes in file names are not ;; supported. So we don't test. And we don't test the tab ;; character on Windows or Cygwin, because the backslash is @@ -1962,13 +2054,13 @@ Several special characters do not work properly there." "{foo}bar{baz}")) ;; These tests are inspired by Bug#17238. -(ert-deftest tramp-test31-special-characters () +(ert-deftest tramp-test32-special-characters () "Check special characters in file names." (skip-unless (tramp--test-enabled)) (tramp--test-special-characters)) -(ert-deftest tramp-test31-special-characters-with-stat () +(ert-deftest tramp-test32-special-characters-with-stat () "Check special characters in file names. Use the `stat' command." :tags '(:expensive-test) @@ -1987,7 +2079,7 @@ Use the `stat' command." tramp-connection-properties))) (tramp--test-special-characters))) -(ert-deftest tramp-test31-special-characters-with-perl () +(ert-deftest tramp-test32-special-characters-with-perl () "Check special characters in file names. Use the `perl' command." :tags '(:expensive-test) @@ -2009,7 +2101,7 @@ Use the `perl' command." tramp-connection-properties))) (tramp--test-special-characters))) -(ert-deftest tramp-test31-special-characters-with-ls () +(ert-deftest tramp-test32-special-characters-with-ls () "Check special characters in file names. Use the `ls' command." :tags '(:expensive-test) @@ -2032,7 +2124,7 @@ Use the `ls' command." (tramp--test-special-characters))) (defun tramp--test-utf8 () - "Perform the test in `tramp-test32-utf8*'." + "Perform the test in `tramp-test33-utf8*'." (let* ((utf8 (if (and (eq system-type 'darwin) (memq 'utf-8-hfs (coding-system-list))) 'utf-8-hfs 'utf-8)) @@ -2046,13 +2138,13 @@ Use the `ls' command." "银河系漫游指南系列" "Автостопом по гала́ктике"))) -(ert-deftest tramp-test32-utf8 () +(ert-deftest tramp-test33-utf8 () "Check UTF8 encoding in file names and file contents." (skip-unless (tramp--test-enabled)) (tramp--test-utf8)) -(ert-deftest tramp-test32-utf8-with-stat () +(ert-deftest tramp-test33-utf8-with-stat () "Check UTF8 encoding in file names and file contents. Use the `stat' command." :tags '(:expensive-test) @@ -2071,7 +2163,7 @@ Use the `stat' command." tramp-connection-properties))) (tramp--test-utf8))) -(ert-deftest tramp-test32-utf8-with-perl () +(ert-deftest tramp-test33-utf8-with-perl () "Check UTF8 encoding in file names and file contents. Use the `perl' command." :tags '(:expensive-test) @@ -2093,7 +2185,7 @@ Use the `perl' command." tramp-connection-properties))) (tramp--test-utf8))) -(ert-deftest tramp-test32-utf8-with-ls () +(ert-deftest tramp-test33-utf8-with-ls () "Check UTF8 encoding in file names and file contents. Use the `ls' command." :tags '(:expensive-test) @@ -2116,7 +2208,7 @@ Use the `ls' command." (tramp--test-utf8))) ;; This test is inspired by Bug#16928. -(ert-deftest tramp-test33-asynchronous-requests () +(ert-deftest tramp-test34-asynchronous-requests () "Check parallel asynchronous requests. Such requests could arrive from timers, process filters and process sentinels. They shall not disturb each other." @@ -2206,7 +2298,7 @@ process sentinels. They shall not disturb each other." (dolist (buf buffers) (ignore-errors (kill-buffer buf))))))) -(ert-deftest tramp-test34-recursive-load () +(ert-deftest tramp-test35-recursive-load () "Check that Tramp does not fail due to recursive load." (skip-unless (tramp--test-enabled)) @@ -2229,7 +2321,7 @@ process sentinels. They shall not disturb each other." (mapconcat 'shell-quote-argument load-path " -L ") (shell-quote-argument code))))))) -(ert-deftest tramp-test35-unload () +(ert-deftest tramp-test36-unload () "Check that Tramp and its subpackages unload completely. Since it unloads Tramp, it shall be the last test to run." ;; Mark as failed until all symbols are unbound. @@ -2277,8 +2369,8 @@ Since it unloads Tramp, it shall be the last test to run." ;; * Fix `tramp-test15-copy-directory' for `smb'. Using tar in a pipe ;; doesn't work well when an interactive password must be provided. ;; * Fix `tramp-test27-start-file-process' on MS Windows (`process-send-eof'?). -;; * Fix Bug#16928. Set expected error of `tramp-test33-asynchronous-requests'. -;; * Fix `tramp-test35-unload' (Not all symbols are unbound). Set +;; * Fix Bug#16928. Set expected error of `tramp-test34-asynchronous-requests'. +;; * Fix `tramp-test36-unload' (Not all symbols are unbound). Set ;; expected error. (defun tramp-test-all (&optional interactive) diff --git a/test/automated/viper-tests.el b/test/automated/viper-tests.el new file mode 100644 index 000000000000..0d6095b2c922 --- /dev/null +++ b/test/automated/viper-tests.el @@ -0,0 +1,161 @@ +;;; viper-tests.el --- tests for viper. + +;; Copyright (C) 2016 Free Software Foundation, Inc. + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary: + +;;; Code: + + +(require 'viper) + +(defun viper-test-undo-kmacro (kmacro) + "In a clean viper buffer, run KMACRO and return `buffer-string'. + +This function makes as many attempts as possible to clean up +after itself, although it will leave a buffer called +*viper-test-buffer* if it fails (this is deliberate!)." + (let ( + ;; Viper just turns itself off during batch use. + (noninteractive nil) + ;; Switch off start up message or it will chew the key presses. + (viper-inhibit-startup-message 't) + ;; Select an expert-level for the same reason. + (viper-expert-level 5) + ;; viper loads this even with -q so make sure it's empty! + (viper-custom-file-name (make-temp-file "viper-tests" nil ".elc")) + (before-buffer (current-buffer))) + (unwind-protect + (progn + ;; viper-mode is essentially global, so set it here. + (viper-mode) + ;; We must switch to buffer because we are using a keyboard macro + ;; which appears to not go to the current-buffer but what ever is + ;; currently taking keyboard events. We use a named buffer because + ;; then we can see what it in it if it all goes wrong. + (switch-to-buffer + (get-buffer-create + "*viper-test-buffer*")) + (erase-buffer) + ;; The new buffer fails to enter vi state so set it. + (viper-change-state-to-vi) + ;; Run the macro. + (execute-kbd-macro kmacro) + (let ((rtn + (buffer-substring-no-properties + (point-min) + (point-max)))) + ;; Kill the buffer iff the macro succeeds. + (kill-buffer) + rtn)) + ;; Switch everything off and restore the buffer. + (toggle-viper-mode) + (delete-file viper-custom-file-name) + (switch-to-buffer before-buffer)))) + +(ert-deftest viper-test-go () + "Test that this file is running." + (should t)) + +(ert-deftest viper-test-fix () + "Test that the viper kmacro fixture is working." + (should + (viper-test-undo-kmacro []))) + +(ert-deftest viper-test-undo-1 () + "Test for VI like undo behaviour. + +Insert 1, then 2 on consecutive lines, followed by undo. This +should leave just 1 in the buffer. + +Test for Bug #22295" + (should + (equal + "1\n" + (viper-test-undo-kmacro + [ + ?a + ?1 + escape + ?o + ?2 + escape + ?u + ] + )))) + +(ert-deftest viper-test-undo-2 () + "Test for VI like undo behaviour. + +Insert \"1 2 3 4 5\" then delete the 2, then the 4, and undo. +Should restore the 4, but leave the 2 deleted. + +Test for Bug #22295" + (should + (equal + "1 3 4 5\n" + (viper-test-undo-kmacro + [ + ?i + ?1 ? ?2 ? ?3 ? ?4 ? ?5 + escape + ?F ?2 ?d ?w + ?w ?d ?w + ?u + ])))) + +(ert-deftest viper-test-undo-3 () + "Test for VI like undo behaviour. + +Insert \"1 2 3 4 5 6\", delete the 2, then the 3 4 and 5. +Should restore the 3 4 and 5 but not the 2. + +Test for Bug #22295" + (should + (equal + "1 3 4 5 6\n" + (viper-test-undo-kmacro + [ + ;; Insert this lot. + ?i ?1 ? ?2 ? ?3 ? ?4 ? ?5 ? ?6 + escape + ;; Start of line. + ?0 + ;; Move to 2, delete + ?w ?d ?w + ;; Delete 3 4 5 + ?. ?. ?. + ;; Undo del 5, then + ?u ?. ?. + ])))) + + +(ert-deftest viper-test-undo-4() + (should + (equal + "" + (viper-test-undo-kmacro + [ + ?i ?1 escape + ?o ?2 escape + ?o ?3 escape + ?u ?. ?. + ]) + ))) + +;;; viper-tests.el ends here diff --git a/test/automated/xref-tests.el b/test/automated/xref-tests.el new file mode 100644 index 000000000000..079b196aa8b0 --- /dev/null +++ b/test/automated/xref-tests.el @@ -0,0 +1,91 @@ +;;; xref-tests.el --- tests for xref + +;; Copyright (C) 2016 Free Software Foundation, Inc. + +;; Author: Dmitry Gutov + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary: + +;;; Code: + +(require 'xref) +(require 'cl-lib) + +(defvar xref-tests-data-dir + (expand-file-name "data/xref/" + (file-name-directory (or load-file-name (buffer-file-name))))) + +(ert-deftest xref-collect-matches-finds-none-for-some-regexp () + (should (null (xref-collect-matches "zzz" "*" xref-tests-data-dir nil)))) + +(ert-deftest xref-collect-matches-finds-some-for-bar () + (let* ((matches (xref-collect-matches "bar" "*" xref-tests-data-dir nil)) + (locs (cl-sort (mapcar #'xref-item-location matches) + #'string< + :key #'xref-location-group))) + (should (= 2 (length matches))) + (should (string-match-p "file1\\.txt\\'" (xref-location-group (nth 0 locs)))) + (should (string-match-p "file2\\.txt\\'" (xref-location-group (nth 1 locs)))))) + +(ert-deftest xref-collect-matches-finds-two-matches-on-the-same-line () + (let* ((matches (xref-collect-matches "foo" "*" xref-tests-data-dir nil)) + (locs (mapcar #'xref-item-location matches))) + (should (= 2 (length matches))) + (should (string-match-p "file1\\.txt\\'" (xref-location-group (nth 0 locs)))) + (should (string-match-p "file1\\.txt\\'" (xref-location-group (nth 1 locs)))) + (should (equal 1 (xref-location-line (nth 0 locs)))) + (should (equal 1 (xref-location-line (nth 1 locs)))) + (should (equal 0 (xref-file-location-column (nth 0 locs)))) + (should (equal 4 (xref-file-location-column (nth 1 locs)))))) + +(ert-deftest xref-collect-matches-finds-an-empty-line-regexp-match () + (let* ((matches (xref-collect-matches "^$" "*" xref-tests-data-dir nil)) + (locs (mapcar #'xref-item-location matches))) + (should (= 1 (length matches))) + (should (string-match-p "file2\\.txt\\'" (xref-location-group (nth 0 locs)))) + (should (equal 1 (xref-location-line (nth 0 locs)))) + (should (equal 0 (xref-file-location-column (nth 0 locs)))))) + +(ert-deftest xref--buf-pairs-iterator-groups-markers-by-buffers-1 () + (let* ((xrefs (xref-collect-matches "foo" "*" xref-tests-data-dir nil)) + (iter (xref--buf-pairs-iterator xrefs)) + (cons (funcall iter :next))) + (should (null (funcall iter :next))) + (should (string-match "file1\\.txt\\'" (buffer-file-name (car cons)))) + (should (= 2 (length (cdr cons)))))) + +(ert-deftest xref--buf-pairs-iterator-groups-markers-by-buffers-2 () + (let* ((xrefs (xref-collect-matches "bar" "*" xref-tests-data-dir nil)) + (iter (xref--buf-pairs-iterator xrefs)) + (cons1 (funcall iter :next)) + (cons2 (funcall iter :next))) + (should (null (funcall iter :next))) + (should-not (equal (car cons1) (car cons2))) + (should (= 1 (length (cdr cons1)))) + (should (= 1 (length (cdr cons2)))))) + +(ert-deftest xref--buf-pairs-iterator-cleans-up-markers () + (let* ((xrefs (xref-collect-matches "bar" "*" xref-tests-data-dir nil)) + (iter (xref--buf-pairs-iterator xrefs)) + (cons1 (funcall iter :next)) + (cons2 (funcall iter :next))) + (funcall iter :cleanup) + (should (null (marker-position (car (nth 0 (cdr cons1)))))) + (should (null (marker-position (cdr (nth 0 (cdr cons1)))))) + (should (null (marker-position (car (nth 0 (cdr cons2)))))) + (should (null (marker-position (cdr (nth 0 (cdr cons2)))))))) diff --git a/test/etags/CTAGS.good b/test/etags/CTAGS.good index 19bc0bef6576..d392b691dcb7 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 58661bbf600b..873914474e21 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 ecfa7d19885a..7f24d06432c3 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 5f84aa9a0c66..f8bd93330e22 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 12e2a6549cf2..9db5e3833a22 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 98de4f2c2fbe..982682d01027 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 f5e0ad4407fa..cf402ae50d77 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, diff --git a/test/indent/js.js b/test/indent/js.js index 61c7b440ea30..b40d47b3e5da 100644 --- a/test/indent/js.js +++ b/test/indent/js.js @@ -53,6 +53,14 @@ var p = { var evens = [e for each (e in range(0, 21)) if (ed % 2 == 0)]; +var funs = [ + function() { + for (;;) { + } + }, + function(){}, +]; + !b !=b !==b @@ -95,6 +103,12 @@ Foobar console.log(num); }); +var z = [ + ...iterableObj, + 4, + 5 +] + var arr = [ -1, 2, -3, 4 +