diff options
48 files changed, 1327 insertions, 173 deletions
diff --git a/ChangeLog.3 b/ChangeLog.3 index fc41c1f7dc3..c5bc7b3120d 100644 --- a/ChangeLog.3 +++ b/ChangeLog.3 @@ -1,3 +1,1091 @@ +2020-04-14 Mattias Engdegård <mattiase@acm.org> + + Fix edge case errors in filename-matching regexps + + These changes fix actual or latent bugs in regexps that match + file names, such as PATTERN arguments to 'directory-files'. See + https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg00265.html + + * admin/authors.el (authors-obsolete-files-regexps) + (authors-renamed-files-regexps): + * lisp/auth-source-pass.el (auth-source-pass-entries): + * lisp/calendar/todo-mode.el (todo-show, todo-find-filtered-items-file) + (todo-filter-items, todo-reset-nondiary-marker, todo-reset-done-string) + (todo-reset-comment-string, todo-reset-highlight-item): + * lisp/cedet/semantic/db-ebrowse.el (semanticdb-load-ebrowse-caches): + * lisp/cedet/semantic/texi.el (semantic-texi-associated-files): + * lisp/cedet/srecode/map.el (srecode-map-update-map): + * lisp/dired.el (dired-re-no-dot): + * lisp/emacs-lisp/autoload.el (update-directory-autoloads): + * lisp/emacs-lisp/shadow.el (load-path-shadows-find): + * lisp/files.el (auto-mode-alist, directory-files-no-dot-files-regexp): + * lisp/finder.el (finder-compile-keywords): + * lisp/generic-x.el (inetd-conf-generic-mode, named-boot-generic-mode) + (resolve-conf-generic-mode, etc-modules-conf-generic-mode): + * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview) + (gnus-agent-regenerate-group, gnus-agent-update-files-total-fetched-for): + * lisp/gnus/gnus-cache.el (gnus-cache-articles-in-group): + * lisp/gnus/gnus-score.el (gnus-score-search-global-directories): + * lisp/gnus/gnus-util.el (gnus-delete-directory): + * lisp/gnus/gnus-uu.el (gnus-uu-dir-files): + * lisp/gnus/nndraft.el (nndraft-request-group): + * lisp/gnus/nnmh.el (nnmh-request-group, nnmh-request-create-group): + (nnmh-request-delete-group, nnmh-active-number, nnmh-update-gnus-unreads): + * lisp/gnus/nnspool.el (nnspool-request-group): + * lisp/gnus/spam-stat.el (spam-stat-process-directory) + (spam-stat-test-directory): + * lisp/help-fns.el (help-fns--first-release): + * lisp/help.el (view-emacs-news): + * lisp/international/quail.el (quail-update-leim-list-file): + * lisp/international/titdic-cnv.el (batch-titdic-convert): + * lisp/mail/mspools.el (mspools-set-vm-spool-files) + (mspools-get-spool-files): + * lisp/mail/rmail.el (rmail-secondary-file-regexp) + (rmail-speedbar-match-folder-regexp): + * lisp/net/ange-ftp.el (ange-ftp-delete-directory): + * lisp/net/tramp.el (tramp-use-absolute-autoload-file-names): + * lisp/obsolete/gulp.el (gulp-send-requests): + * lisp/obsolete/vc-arch.el (vc-arch-trim-revlib): + * lisp/org/ob-core.el (org-babel-remove-temporary-directory): + * lisp/progmodes/ebnf2ps.el (ebnf-file-suffix-regexp, ebnf-style-database): + * lisp/progmodes/executable.el (executable-command-find-posix-p): + * lisp/startup.el (command-line): + * lisp/textmodes/refer.el (refer-get-bib-files): + * lisp/url/url-about.el (url-probe-protocols): + * lisp/vc/vc-rcs.el (vc-rcs-register, vc-rcs-unregister): + * test/lisp/net/tramp-archive-tests.el + (tramp-archive-test19-directory-files-and-attributes): + * test/lisp/net/tramp-tests.el (tramp-test19-directory-files-and-attributes): + Replace ^ and $ with \` and \', respectively. + Use (rx (or (not ".") "...")), translated into "[^.]\\|\\.\\.\\.", + to match anything but "." and "..", instead of several incorrect + regexps. + +2020-04-14 Eli Zaretskii <eliz@gnu.org> + + Clarify the doc string of 'yank' + + * lisp/simple.el (yank): Mention 'current-kill' in the doc string, + so that people could find all the gory details of what is "the most + recent kill" for this purpose. (Bug#40375) + +2020-04-14 Amin Bandali <bandali@gnu.org> + + New function erc-track-switch-buffer-other-window + + * lisp/erc/erc-track.el (erc-track-switch-buffer): Factor out the + implementation from here ... + (erc-track--switch-buffer): ... to here. + (erc-track-switch-buffer-other-window): New function, like + `erc-track-switch-buffer', but uses `switch-to-buffer-other-window' + instead, to open the buffer in another window. + +2020-04-14 Amin Bandali <bandali@gnu.org> + + New function erc-switch-to-buffer-other-window + + * lisp/erc/erc.el (erc-switch-to-buffer): Factor out the buffer choice + implementation from here ... + (erc--switch-to-buffer): ... to here. + (erc-switch-to-buffer-other-window): New function, like + `erc-switch-to-buffer', but uses `switch-to-buffer-other-window' + instead, to open the buffer in another window. + +2020-04-13 Štěpán Němec <stepnem@gmail.com> + + Clarify documentation on inhibit-modification-hooks intended usage + + Cf. bug#40332 and the discussion at + https://lists.gnu.org/archive/html/emacs-devel/2020-03/msg00921.html + + * doc/lispref/text.texi (Change Hooks): + * src/insdel.c (syms_of_insdel): Clarify the intended usage of + 'inhibit-modification-hooks'. + +2020-04-13 Štěpán Němec <stepnem@gmail.com> + + gnus-shorten-url: Improve and avoid args-out-of-range error + + 'gnus-shorten-url' (used by 'gnus-summary-browse-url') ignored + fragment identifiers and didn't check substring bounds, in some cases + leading to runtime errors, e.g.: + + (gnus-shorten-url "https://some.url.with/path/and#also_a_long_target" 40) + ;; => Lisp error: (args-out-of-range "/path/and" -18 nil) + + This commit makes it account for #fragments and fixes faulty string + computation. (bug#39980) + + Do not merge to master, where the helper is put to subr-x.el. + + * lisp/gnus/gnus-sum.el (gnus--string-truncate-left): New helper + function (copied from 'ediff-truncate-string-left'). + (gnus-shorten-url): Use it and don't drop #fragments. + +2020-04-13 Eli Zaretskii <eliz@gnu.org> + + Minor wording change in Introduction to Programming in Emacs Lisp + + * doc/lispintro/emacs-lisp-intro.texi (Prevent confusion): Mention + that dynamic scoping is only the default in Emacs Lisp, not the + only scoping rule. (Bug#40594) + +2020-04-13 Eli Zaretskii <eliz@gnu.org> + + Fix 'flymake-show-diagnostics-buffer' when line numbers are displayed + + * lisp/progmodes/flymake.el (flymake--diagnostics-buffer-entries): + Do nothing if 'flymake--diagnostics-buffer-source' is not a + buffer. (Bug#40529) + +2020-04-12 Eli Zaretskii <eliz@gnu.org> + + Fix last changes describing mail commands + + * doc/emacs/sending.texi (Sending Mail): Fix the description of + the behavior of 'C-x m' without prefix argument. (Bug#40561) + +2020-04-12 João Távora <joaotavora@gmail.com> + + Do setup Flymake in file-less Elisp buffers + + (Bug#40573) + + * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Change + condition for setting flymake-diagnostic-functions. + +2020-04-12 Philipp Stephani <phst@google.com> + + Fix error message for ‘cl-struct-unknown-slot’ (bug#39995) + + * lisp/emacs-lisp/cl-macs.el (cl-struct-unknown-slot): Remove spurious + format specifiers. + +2020-04-12 Eli Zaretskii <eliz@gnu.org> + + Fix and improve documentation of mail-related features + + * lisp/simple.el (compose-mail): Clarify the effect of the + CONTINUE argument. + * lisp/mail/sendmail.el (mail-from-style): Update the RFC value in + the obsolescence warning text. + + * doc/emacs/sending.texi (Sending Mail): Fix the description of + the behavior of 'C-x m' wrt prefix argument. + (Mail Headers): Remove the description of 'mail-from-style'. + + * etc/NEWS: Mention that 'mail-from-style' is obsolete. + + (Bug#40561) + +2020-04-12 Martin Rudalics <rudalics@gmx.at> + + Fix build failure with Fx_gtk_debug + + * src/xfns.c (Fx_gtk_debug, Sx_gtk_debug): Define only for GTK + versions >= 3.14.0 so gtk_window_set_interactive_debugging is + defined. Reported by Andreas Schwab <schwab@linux-m68k.org>. + +2020-04-11 Alan Mackenzie <acm@muc.de> + + Mention jit-lock deferred as an alternative to fast-but-imprecise-scrolling + + * doc/emacs/display.texi (Scrolling): Add a paragraph on using jit-lock + deferred fontification as a way of obviating Emacs hanging after + auto-repeated scrolling. + +2020-04-10 Stefan Monnier <monnier@iro.umontreal.ca> + + * doc/lispref/keymaps.texi (Extended Menu Items): Tweak :key-sequence + + Don't make it sound like `:key-sequence nil` is any different than the + absence of `:key-sequence`. And the performance advantage of + `:key-sequence` disappeared long ago. + +2020-04-10 Eli Zaretskii <eliz@gnu.org> + + Fix redisplay when scrolling under redisplay-dont-pause + + * src/dispnew.c (update_window): Reset the window's + 'must_be_updated_p' flag if the window's update was completed + without interruption. This fixes redisplay glitches when + 'redisplay-dont-pause' is nil, at least on MS-Windows, because + 'expose_window' doesn't redraw the exposed rectangle when the + window's 'must_be_updated_p' flag is set. + +2020-04-09 Eli Zaretskii <eliz@gnu.org> + + Fix face extension in pulse.el + + * lisp/cedet/pulse.el (pulse-reset-face): Propagate the :extend + attribute of FACE to the face used for displaying the pulse. + Reported by Adam Porter <adam@alphapapa.net>. + +2020-04-09 Michael Albinus <michael.albinus@gmx.de> + + * doc/misc/tramp.texi (Bug Reports): Avoid line breaks in traces. + +2020-04-09 Eli Zaretskii <eliz@gnu.org> + + Avoid assertion violation in intervals.c + + * src/intervals.c (delete_interval): Allow negative values of + LENGTH (i). This happens when delete_interval is called from + set_intervals_multibyte_1, because the caller zeroes out the + total_length field of the interval to be deleted. See + https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg00131.html + for more details. See also a related old discussion at + https://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00399.html. + +2020-04-08 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'jit-lock-contextually' + + * lisp/jit-lock.el (jit-lock-contextually): Clarify the jit-lock + operation when 'jit-lock-contextually' is non-nil and non-t. + + * doc/lispref/modes.texi (Syntactic Font Lock) + (Other Font Lock Variables): Document the relation between + 'jit-lock-register', 'font-lock-keywords-only', and syntactic + refontification. + +2020-04-08 Dmitry Gutov <dgutov@yandex.ru> + + Speed up 'resize-mode' child frames a little + + * src/gtkutil.c (xg_frame_set_char_size): Skip resizing if the + target dimensions are unchanged for child frames with + 'resize-mode' resize policy as well. + +2020-04-06 Martin Rudalics <rudalics@gmx.at> + + Fix some problems with moving and resizing child frames + + (1) Provide new option 'x-gtk-resize-child-frames' which allows + to either hide a child frame during resizing or asks GTK to + resize it "immediately". This is needed because desktops like + GNOME shell otherwise won't allow resizing child frames at all. + (2) Do not try to synchronize the position of a child frame + after moving it. Needed because the present implementation + introduces a 0.5 secs delay which makes dragging child frames + virtually impossible with Lucid and Motif toolkits on desktops + like GNOME shell that use invisible outer frame borders. + + For further information see the thread starting with + https://lists.gnu.org/archive/html/emacs-devel/2020-01/msg00343.html + + * src/frame.c (syms_of_frame): New symbol Qxg_frame_set_char_size_4. + * src/gtkutil.c (xg_frame_set_char_size): Hide child frame + during resizing when 'x-gtk-resize-child-frames' equals 'hide'. + * src/xfns.c (x_set_parent_frame, Fx_create_frame): Set + gtk_container_resize_mode to GTK_RESIZE_IMMEDIATE for child + frames when'x-gtk-resize-child-frames' equals 'resize-mode'. + (Fx_gtk_debug): New function to toggle interactive GTK debugging + from within Emacs. + (syms_of_xfns): New symbols Qhide and Qresize_mode. + (x-gtk-resize-child-frames): New option that allows to resize + child frames on desktops like GNOME shell (with the mutter WM) + that otherwise refuse to resize them. + * src/xterm.c (x_set_offset): Don't x_sync_with_move for child + frames, it makes moving child frames virtually impossible with + the Lucid and Motif toolkits. + +2020-04-05 Philipp Stephani <phst@google.com> + + Fix syntax error in man page. + + * doc/man/emacs.1.in: Fix syntax of --script argument. The Info + manual states that --script has to be followed by a space, and the + syntax with the equals sign doesn't actually work. + +2020-04-05 Noam Postavsky <npostavs@gmail.com> + + Handle filling of indented ChangeLog function entries + + * lisp/vc/log-edit.el (log-edit-fill-entry): Relax regexp a bit to + recognize function entries with leading blanks. + * test/lisp/vc/log-edit-tests.el: New test. + +2020-04-05 Noam Postavsky <npostavs@gmail.com> + + Fix void-variable n-reb in re-builder (Bug#40409) + + * lisp/emacs-lisp/re-builder.el (reb-while): Take the current value of + the counter instead of its name. + (reb-mark-non-matching-parenthesis): Bind n-reb to 0 at the start and + don't wrongly treat it as dynamicly bound. + +2020-04-03 Philipp Stephani <phst@google.com> + + Fix small bug in copy_string_contents. + + * src/emacs-module.c (module_copy_string_contents): Fix incorrect + variable use. In this branch 'lisp_str_utf8' is always nil, so it + makes little sense to add it as error data. + +2020-04-03 Eli Zaretskii <eliz@gnu.org> + + Fix invocations of gpg from Gnus + + * lisp/epg-config.el (epg-config--make-gpg-configuration): Bind + coding-system-for-read/write to 'undecided', to countermand + possible values of 'no-conversion' or somesuch by the callers. + (Bug#40248) + +2020-04-03 Martin Rudalics <rudalics@gmx.at> + + Don't draw GTK's internal border and tab bar on top of each other + + * src/xterm.c (x_clear_under_internal_border): For GTK builds + have 'margin' count in the height of the tab bar to avoid that + tab bar and internal border are drawn on top of each other. + +2020-04-03 Amin Bandali <bandali@gnu.org> + + Tweak htmlfontify's generated output + + * lisp/htmlfontify.el (hfy-default-header): declare the character + encoding for the generated HTML file. This helps browsers display + UTF-8 characters like the copyright symbol correctly. + (hfy-sprintf-stylesheet): apply the default style to all of the text + consistently, so that unstyled bits (which are not wrapped in span + tags and are directly part of the surrounding pre tag's "innerHTML") + have a look consistent with the rest of the document. + +2020-03-30 Dmitry Gutov <dgutov@yandex.ru> + + Handle project--files-in-directory finding no files better + + * lisp/progmodes/project.el (project--find-regexp-in-files): + Signal user-error when passed an empty list of files. + + * lisp/progmodes/xref.el (xref-matches-in-files): + Make sure FILES is not empty. + +2020-03-30 Alan Mackenzie <acm@muc.de> + + Let imenu to work on the menu bar when its list is a single non-nested member. + + * lisp/imenu.el (imenu-update-menubar): No longer accept a list of length 1 as + being sufficient evidence for a nested list structure. Instead, additionally + check whether or not certain elements are atoms. + +2020-03-30 Juri Linkov <juri@linkov.net> + + * lisp/image/image-converter.el: Fix customization of image-converter. + + * lisp/image/image-converter.el (image-convert-p): Update + image-converter-regexp when image-converter was customized (bug#39994). + +2020-03-29 Andreas Schwab <schwab@linux-m68k.org> + + Fix url-cookie.el for lexical binding + + * lisp/url/url-cookie.el (url-cookie-handle-set-cookie): Use setq + instead of set to modify lexical binding. + +2020-03-29 Noam Postavsky <npostavs@gmail.com> + + Don't suggest setting face-remapping-alist to a literal (Bug#39812) + + * src/xfaces.c (syms_of_xfaces) <face-remapping-alist>: Use copy-tree + in the costring example code, and note why. + +2020-03-27 Mattias Engdegård <mattiase@acm.org> + + Calc: don't treat nil as an integer (bug#40155) + + Make Math-num-integerp return false for nil, following Math-integerp + which was changed in the bignum reform. This fixes a crash in + calc-graph-fast. + + Reported by Narendra Joshi. + + * lisp/calc/calc-macs.el (Math-num-integerp): Not true for nil. + * test/lisp/calc/calc-tests.el (calc-Math-integerp): New tests. + +2020-03-25 Eli Zaretskii <eliz@gnu.org> + + * lisp/files.el (directory-files-recursively): Doc fix. (Bug#40202) + +2020-03-25 Michael Albinus <michael.albinus@gmx.de> + + Document how to disable Tramp file archives + + * doc/misc/tramp.texi (Archive file names): Explain how to disable + file archives. + +2020-03-24 Lars Ingebrigtsen <larsi@gnus.org> + + Don't add repeated xlmns:xlink declarations in svg-create + + * lisp/svg.el (svg-create): Fix previous unconditional addition of + the xmlns:xlink declaration -- callers may already add one, and + having it twice is something most svg libraries doesn't like. + +2020-03-23 Mattias Engdegård <mattiase@acm.org> + + Calc: Declare dynamic variable bound in lexbind code (bug#40185) + + * lisp/calc/calc.el: Declare math-comp-selected as dynamic. + +2020-03-23 Eli Zaretskii <eliz@gnu.org> + + Don't build the Gnulib 'utimens' module on MinGW + + * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_utimens): Omit the + 'utimens' module in the MinGW build: 'utimens' is not used by + Emacs, and 'fdutimens' is implemented in w32.c. + +2020-03-23 Phillip Lord <phillip.lord@russet.org.uk> + + Add Harfbuzz dependency + + * admin/nt/dist-build/build-dep-zips.py: Add harfbuzz as a dependency. + +2020-03-23 Noam Postavsky <npostavs@gmail.com> + + Don't signal during backtrace unrewind (Bug#40088) + + backtrace_eval_unrewind is used to temporarily reverse + let-bindings (it's called with a positive argument to reverse + bindings, and then a negative argument to re-apply them) by + backtrace--locals and backtrace-eval. For the SPECPDL_LET_DEFAULT and + SPECPDL_LET_LOCAL cases (which occur for let-bindings on buffer-local + variables), the code calls Fdefault_value and Fbuffer_local_value on + the symbol. + + For symbols which are unbound at top-level, the first (with positive + argument) call to backtrace_eval_unrewind will set the symbol's value + to unbound (putting the current value in the specpdl's "old value" + slot). On the second (with negative argument) call, + backtrace_eval_unrewind attempts to retrieve the symbol's value with + Fdefault_value or Fbuffer_local_value, but that raises a void-variable + signal. This interrupts the restoration of the let-bindings, so any + other variables more recent on the stack will now have the wrong + value. + + * src/data.c (default_value): Make non-static. + * src/lisp.h: Declare it. + * src/eval.c (backtrace_eval_unrewind): Replace the calls to + Fdefault_value and Fbuffer_local_value with default_value and + buffer_local_value, respectively. The latter do exactly the same as + the former, except if the symbol's value is Qunbound they just return + it instead of signaling void-variable. + +2020-03-23 Noam Postavsky <npostavs@gmail.com> + + Fix a couple of problems in changelog generating functions + + * lisp/vc/diff-mode.el (diff-add-log-current-defuns): If there is a + scan-error when calling end-of-defun, go to end of hunk. This can + easily happen since we are calling end-of-defun on a partial code + fragment from a diff. + * lisp/vc/log-edit.el (log-edit-generate-changelog-from-diff): Bind + display-buffer-overriding-action around the log-edit-show-diff call + only. Otherwise, it can affect, for example, debugger windows + triggered by the diff-add-log-current-defuns call. + +2020-03-23 Noam Postavsky <npostavs@gmail.com> + + Fix cl-concatenate (Bug#40180) + + * lisp/emacs-lisp/cl-extra.el (cl-concatenate): Use apply, to avoid + adding extra nesting of args. + * test/lisp/emacs-lisp/cl-extra-tests.el (cl-concatenate): New test. + +2020-03-21 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of project.el commands + + * lisp/progmodes/project.el (project-find-regexp): Require 'grep' + to be able to call 'grep-read-files'. + (project-search, project-query-replace-regexp): Doc fixes. + + * doc/emacs/maintaining.texi (Projects): New section. + * doc/emacs/emacs.texi (Top): Add "Projects" to the detailed menu. + +2020-03-20 Zhu Zihao <all_but_last@163.com> (tiny change) + + Make svg images with links valid + + * lisp/svg.el (svg-create): Specify xlink namespace for svg images + (bug#40010). + +2020-03-20 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el (tab-line-new-button-show): New defcustom. + + * lisp/tab-line.el (tab-line-format-template): Use tab-line-new-button-show. + (tab-line-new-tab-choice): Remove choice 'nil' with "No button". + (tab-line-separator): Add docstring. + +2020-03-19 Lars Ingebrigtsen <larsi@gnus.org> + + Don't have exif bugging out on short strings + + * lisp/image/exif.el (exif--direct-ascii-value): New function + (bug#40127). + (exif--parse-directory): Use it to get the correct values for + in-directory (i.e., shorter than 4 octets) strings. + +2020-03-19 Robert Pluim <rpluim@gmail.com> + + Use correct registry name for windows-1251 charset + + * src/ftfont.c (fc_charset_table): The registry to use to lookup + windows-1251 charset is microsoft-cp1251, not windows-1251. + (Bug#40097) + +2020-03-19 Amin Bandali <bandali@gnu.org> + + ERC: Update maintainer address + +2020-03-18 Philipp Stephani <phst@google.com> + + Remove raw carriage return characters from test file. + + This protects against tools that mangle newline characters in text + files. + + * test/lisp/electric-tests.el (electric-pair-mode-newline-between-parens) + (electric-layout-mode-newline-between-parens-without-e-p-m) + (electric-layout-mode-newline-between-parens-without-e-p-m-2): Escape + carriage return characters. + +2020-03-17 Robert Pluim <rpluim@gmail.com> + + Recalculate default font when switching font backend + + This is an updated version of the patch by Dmitry Antipov + <dmantipov@yandex.ru> in + <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=23386#43>. + + Fixes Bug#23386 + + * src/dispextern.h (struct redisplay_interface): New member + default_font_parameter. + * src/xterm.h: Add prototype for x_default_font_parameter. + * src/xterm.c (x_redisplay_interface): Initialize + default_font_parameter member. + * src/xfns.c (x_default_font_parameter): Make non-static. + * src/w32term.h: Add prototype for w32_default_font_parameter + * src/w32fns.c (w32_default_font_parameter): Make non-static. + * src/w32term.c (w32_redisplay_interface): Initialize + default_font_parameter member. + * src/nsterm.m (ns_redisplay_interface): Add dummy + ns_default_font_parameter (there is currently only one possible font + backend on macOS). Initialize default_font_parameter member. + * src/frame.c (gui_set_font_backend): Recalculate default font using + RIF default_font_parameter to avoid crash when changing font backend. + +2020-03-17 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el: Fix tab-line-format and tab-line-format-template. + + * lisp/tab-line.el (tab-line-format): Use buffer-name in the cache key + instead of just buffer object to invalidate the cache on buffer renaming. + (tab-line-format-template): Always leave the separator after the last tab + like tab-bar.el already does. + +2020-03-16 Stefan Monnier <monnier@iro.umontreal.ca> + + * etc/NEWS: Make the `--eval` example slightly more precise + +2020-03-15 Juri Linkov <juri@linkov.net> + + * lisp/image/image-converter.el: Support more ImageMagick versions (bug#39994) + + * lisp/image/image-converter.el (image-converter--probe): Match + a possible additional second column in some ImageMagick versions + of "convert -list format". + +2020-03-14 Eli Zaretskii <eliz@gnu.org> + + Support Unicode 13.0 + + * admin/unidata/BidiBrackets.txt: + * admin/unidata/BidiMirroring.txt: + * admin/unidata/Blocks.txt: + * admin/unidata/NormalizationTest.txt: + * admin/unidata/SpecialCasing.txt: + * admin/unidata/UnicodeData.txt: + * admin/unidata/copyright.html: + * test/manual/BidiCharacterTest.txt: Updated files imported from + Unicode v13.0. + + * admin/unidata/blocks.awk: Add "Symbols for Legacy Computing" to + known aliases. + + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Add new scripts. + * lisp/international/characters.el: Set syntax for Symbols for + Legacy Computing characters. Update setting of char-width-table. + * lisp/international/mule-cmds.el (ucs-names): Update ranges of + characters for which we want names in 'ucs-names'. + + * test/lisp/international/ucs-normalize-tests.el + (ucs-normalize-tests--failing-lines-part1) + (ucs-normalize-tests--failing-lines-part2): Update according to + 'ucs-normalize-check-failing-lines'. + +2020-03-14 Lars Ingebrigtsen <larsi@gnus.org> + + Fix regression in wisent-total-conflicts + + * lisp/cedet/semantic/wisent/comp.el (wisent-total-conflicts): + There may not be a current source file. In that case, don't try + to keep track of the number of expected conflicts (bug#39911). + +2020-03-14 Alan Mackenzie <acm@muc.de> + + * lisp/progmodes/cc-defs.el (c-version): update to 5.34.1 for Emacs 27.1 + + Don't merge to master. + +2020-03-14 Philipp Stephani <phst@google.com> + + * lisp/textmodes/fill.el (fill-nobreak-predicate): Fix documentation. + +2020-03-14 Stefan Kangas <stefankangas@gmail.com> + + Improve Package Menu hiding docstrings + + * lisp/emacs-lisp/package.el (package-menu-toggle-hiding): Add + reference to 'package-menu-hidden-regexps'. + * lisp/emacs-lisp/package.el (package-menu-hide-package): Improve + docstring to say that hiding is saved in a user option. Fix a + typo. (Bug#39436) + +2020-03-14 Eli Zaretskii <eliz@gnu.org> + + Fix display of Big5 characters when using Fontconfig + + * src/ftfont.c (fc_charset_table): Fix the value of the big-5 + representative codepoint. Reported by Brian Schack + <bschack-cocoa@usa.net>. (Bug#40057) + + * src/macfont.m (cf_charset_table): Adjust the comment. + +2020-03-13 Eli Zaretskii <eliz@gnu.org> + + Fix a recent documentation change + + * doc/emacs/frames.texi (Mouse Commands): More detailed + description of how tilting the mouse-wheel works. + + * lisp/mwheel.el (mouse-wheel-tilt-scroll) + (mouse-wheel-flip-direction): Fix the wording of doc strings. + (Bug#39979) + +2020-03-13 Eli Zaretskii <eliz@gnu.org> + + Fix last change + + * lisp/tab-bar.el (tab-bar-new-button-show): Fix wording of the + doc string. + +2020-03-13 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el: Last-minute changes. + + * lisp/tab-bar.el (tab-bar-mode): Check for non-nil + tab-bar-new-button and tab-bar-close-button. + (tab-bar-new-button-show): New defcustom. + (tab-bar-make-keymap-1): Check for tab-bar-new-button-show. + (tab-bar-separator): Add docstring. + +2020-03-12 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/subr.el (cancel-change-group): Fix bug#39680 + + Don't re-use an existing `pending-undo-list` even if (eq last-command 'undo) + since there might have been changes to the buffer since that `undo` command + and the `pending-undo-list` can hence be invalid for the current + buffer contents. + +2020-03-12 İ. Göktuğ Kayaalp <self@gkayaalp.com> + + Improve docs for horizontal scrolling with mouse and touchpad (Bug#39979) + + * lisp/mwheel.el (mouse-wheel-tilt-scroll, + mouse-wheel-flip-direction): Improve docstrings. + * doc/emacs/frames.texi (Mouse Commands): Mention touchpads. + +2020-03-10 Juri Linkov <juri@linkov.net> + + * lisp/emacs-lisp/package.el (package-install): Fix typo in docstring. + +2020-03-09 Paul Eggert <eggert@cs.ucla.edu> + + Port .gdbinit to clang with -gdwarf-4 + + * src/.gdbinit (xgetsym): Port to clang with -gdwarf-4, which + doesn’t output the type of lispsym anywhere other than emacs.o + (Bug#39962). + +2020-03-09 Mattias Engdegård <mattiase@acm.org> + + Simplify rx example in manual + + * doc/lispref/searching.texi (Rx Notation): + Use the 'not' shorthand introduced in Emacs 27. + +2020-03-09 Paul Eggert <eggert@cs.ucla.edu> + + * src/timefns.c: Add comments. + +2020-03-08 Paul Eggert <eggert@cs.ucla.edu> + + * src/timefns.c: Add comments. + +2020-03-08 Andrew Eggenberger <andrew.eggenberger@gmail.com> (tiny change) + + Eliminate use of cl-concatenate in 'seq' package + + Fixes (Bug#39761) by making cl-extra dependent on seq rather than + vice versa. + * lisp/emacs-lisp/seq.el (seq-concatenate): Move cl-concatenate's + code here instead of calling it. + * lisp/emacs-lisp/cl-extra.el (cl-concatenate): Use cl-concatenate. + +2020-03-07 Paul Eggert <eggert@cs.ucla.edu> + + Fix bug with JIT stealth timers + + * lisp/emacs-lisp/timer.el (run-at-time): Don’t assume that Lisp + time values must be conses (Bug#39944). + +2020-03-07 Paul Eggert <eggert@cs.ucla.edu> + + * doc/lispref/os.texi (time-subtract): Doc fix. + +2020-03-07 Alan Third <alan@idiocy.org> + + NS port documentation updates + + * doc/emacs/macos.texi (Mac / GNUstep Customization): Document some + more of the ns- variables and remove incorrect font back-end + information. + * etc/NEWS: Update the documentation status of macOS news entries. + +2020-03-07 João Távora <joaotavora@gmail.com> + + Let fido-mode users force a minibuffer-exit + + * lisp/icomplete.el (icomplete-fido-exit): + Add FORCE arg. Rewrite docstring. (bug#38992) + +2020-03-07 Dmitry Gutov <dgutov@yandex.ru> + + icomplete-fido-exit: New command for the M-j binding + + * lisp/icomplete.el (icomplete-fido-exit): New command. + (icomplete-fido-mode-map): Use it (bug#38992). + +2020-03-07 Dmitry Gutov <dgutov@yandex.ru> + + minibuffer-force-complete-and-exit: Allow input with no matches + + * lisp/minibuffer.el (minibuffer--require-match): New variable. + (completing-read-default): Bind it to the REQUIRE-MATCH value. + (minibuffer-force-complete-and-exit): Consult it to allow input + with no matches when a match is not required (bug#38992). + + * lisp/icomplete.el (icomplete-exhibit): Use it to render the + correct parens around matches. + +2020-03-07 Eli Zaretskii <eliz@gnu.org> + + Document that 'byte-compile-dynamic' is obsolete + + * doc/lispref/compile.texi (Dynamic Loading): Document that this + is deprecated. + + * etc/NEWS: mark the 'byte-compile-dynamic' entry as documented. + +2020-03-07 Eli Zaretskii <eliz@gnu.org> + + Document the changes in 'read-answer' + + * doc/lispref/minibuf.texi (Multiple Queries): Document the + fact that 'read-answer' can now accept non-character input + events. + +2020-03-07 Eli Zaretskii <eliz@gnu.org> + + Document changes in lexical-binding + + * doc/lispref/variables.texi (Using Lexical Binding): Document + that lexical-binding is now turned on by default in more cases. + + * etc/NEWS: Fix wording of the NEWS entry about the above, and mark it + as fully documented. + +2020-03-06 Amin Bandali <mab@gnu.org> + + Update ERC mailing list address + + * lisp/erc/erc.el (erc-official-location): As part of bringing ERC + under the Emacs umbrella, erc-discuss has been renamed to emacs-erc, + and will be *the* mailing list for discussions and announcements about + ERC going forward. The other two lists, erc-announce and erc-commit, + are now retired. For more details, see the announcement at + <https://lists.gnu.org/archive/html/emacs-erc/2020-03/msg00001.html>. + +2020-03-06 Roland Winkler <winkler@gnu.org> + + Use regexp-opt to define bibtex-autokey-transcriptions. (Bug#39686) + +2020-03-06 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'table-generate-source' + + * lisp/textmodes/table.el (table-generate-source): Doc fix. + (Bug#39935) + + * etc/NEWS: Fix wording of the 'table-generate-source' entry and + mark it as documented. + +2020-03-06 Eli Zaretskii <eliz@gnu.org> + + Attempt to avoid rare segfaults in show_mouse_face + + * src/xdisp.c (show_mouse_face): Don't display the active region + if called on a frame different from the one recorded in HLINFO. + (Bug#37671) + +2020-03-05 Eli Zaretskii <eliz@gnu.org> + + Avoid crashes when a fontset has strange entries + + * src/fontset.c (reorder_font_vector): Skip nil entries in the + loop that assigns scores to rfont_def's. + (fontset_compare_rfontdef): Cope with nil. This has the effect of + moving any nil entries to the end of the font-group, and avoids + crashing if an element other than the last in the font-group is + nil. (Bug#39892) + +2020-03-05 Mattias Engdegård <mattiase@acm.org> + + Fix rx error with ? and ?? + + The ? and ?? rx operators are special in that they can be written as + characters (space and '?' respectively). This confused the definition + look-up mechanism in rare cases. + + * lisp/emacs-lisp/rx.el (rx--expand-def): Don't look up non-symbols. + * test/lisp/emacs-lisp/rx-tests.el (rx-charset-or): Test. + +2020-03-05 Mattias Engdegård <mattiase@acm.org> + + * lisp/emacs-lisp/rx.el (rx--string-to-intervals): Fix error string. + +2020-03-05 Justin Burkett <justin@burkett.cc> (tiny change) + + Fix args in 'window-text-pixel-size' call in 'fit-window-to-buffer' + + * lisp/window.el (fit-window-to-buffer): Fix arguments in + 'window-text-pixel-size' call. + +2020-03-04 João Távora <joaotavora@gmail.com> + + Have pulse.el preserve existing overlay priorities + + (Bug#39821) + + * lisp/cedet/pulse.el (pulse-momentary-highlight-overlay): Save + overlay priority. + (pulse-momentary-unhighlight): Restore. + +2020-03-04 Alan Mackenzie <acm@muc.de> + + CC Mode: Fix the handling of two adjacent after-change-functionses. + + The bug involved failing to set c-new-END correctly, which lead to an + args-out-of-range error when after-change-functions was invoked twice without + an intervening invocation of before-change-functions. + + * lisp/progmodes/cc-mode.el (c-after-change): Correct a coding error in the + handling of c-just-done-before-change. + +2020-03-04 Alan Mackenzie <acm@muc.de> + + Fix combine-change-calls-1 for when buffer-undo-list is t + + * lisp/subr.el (combine-change-calls-1): Bind before/after-change-functions to + nil also when buffer-undo-list is t. + +2020-03-04 Mattias Engdegård <mattiase@acm.org> + + Don't misinterpret doc string as initial value + + * lisp/loadhist.el (loadhist--restore-autoload): + * lisp/progmodes/vhdl-mode.el (vhdl-font-lock-keywords-0): + Prevent the doc string from being used as initial value. + +2020-03-04 Stefan Kangas <stefankangas@gmail.com> + + Bump checkdoc-version to match library header + + * lisp/emacs-lisp/checkdoc.el (checkdoc-version): Bump version. + +2020-03-04 Noam Postavsky <npostavs@gmail.com> + + Explain how to unset mode bindings (Bug#39802) + + * doc/emacs/custom.texi (Init Rebinding): Explain that passing nil to + define-key will unbind keys, and extend the example accordingly. + +2020-03-04 Noam Postavsky <npostavs@gmail.com> + + Fix describe-variable on values with circular syntax (Bug#39805) + + * lisp/help-fns.el (describe-variable): Set syntax tables before + calling pp-buffer. + +2020-03-04 Juri Linkov <juri@linkov.net> + + Improve documentation of next-error-highlight-no-select (bug#38778) + + * doc/emacs/building.texi (Compilation Mode): + Mention next-error-highlight-no-select. + + * lisp/simple.el (next-error-highlight): Add reference to + next-error-highlight-no-select. + (next-error-highlight-no-select): Add reference to + next-error-highlight. + +2020-03-03 Andreas Schwab <schwab@linux-m68k.org> + + Fix implicit declaration of getenv and atol + + * src/gtkutil.c: Include <stdlib.h>. + +2020-03-03 Eli Zaretskii <eliz@gnu.org> + + Fix handling MS-Windows keyboard input above the BMP + + * src/w32term.c (w32_read_socket): If we get a WM_UNICHAR message + with a surrogate codepoint, assemble the corresponding character + code above the BMP from its UTF-16 encoding, communicated in two + consecutive WM_UNICHAR messages. + +2020-03-03 Mattias Engdegård <mattiase@acm.org> + + * etc/NEWS: More complete description of rx 'not' changes. + +2020-03-02 Juri Linkov <juri@linkov.net> + + * doc/emacs/mini.texi (Yes or No Prompts): 'y-or-n-p' now uses the minibuffer. + +2020-03-02 Robert Pluim <rpluim@gmail.com> + + Don't attempt to cache glyph metrics for FONT_INVALID_CODE + + This was causing massive slowdown in redisplay when eg #xfe0f + (VARIATION SELECTOR-16) was present, as the cache ended up very large, + unused, and being recreated on every call to font_fill_lglyph_metrics + (Bug#39133). + + * src/composite.c (fill_gstring_body): Hoist FONT_OBJECT_P check out + of loop. Calculate glyph code and check for FONT_INVALID_CODE before + calling font_fill_lglyph_metrics. Pass glyph code to it. + + * src/font.c (font_fill_lglyph_metrics): Add code parameter, move + glyph code calculation up the call stack into fill_gstring_body. + + * src/font.h: Adjust font_fill_lglyph_metrics prototype. + +2020-03-01 Sergey Trofimov <sarg@sarg.org.ru> (tiny change) + + Fix fit-frame-to-buffer for multi-monitor setup + + * lisp/window.el (fit-frame-to-buffer): Call + 'frame-monitor-attributes' instead of + 'display-monitor-attributes-list'. Fix geometry calculations for + multiple monitors. + +2020-03-01 Mattias Engdegård <mattiase@acm.org> + + rx: Improve 'or' compositionality (bug#37659) + + Perform 'regexp-opt' on nested 'or' forms, and after expansion of + user-defined and 'eval' forms. Characters are now turned into strings + for wider 'regexp-opt' scope. This preserves the longest-match + semantics for string in 'or' forms over composition. + + * doc/lispref/searching.texi (Rx Constructs): Document. + * lisp/emacs-lisp/rx.el (rx--normalise-or-arg) + (rx--all-string-or-args): New. + (rx--translate-or): Normalise arguments first, and check for strings + in subforms. + (rx--expand-eval): Extracted from rx--translate-eval. + (rx--translate-eval): Call rx--expand-eval. + * test/lisp/emacs-lisp/rx-tests.el (rx-or, rx-def-in-or): Add tests. + * etc/NEWS: Announce. + +2020-02-29 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el: Fix auto-hscrolling (bug#39649) + + Distinguish offsets between manual-vs-automatic scrolling + as integers-vs-floats instead of positive-vs-negative integers. + + * lisp/tab-line.el (tab-line-format-template): Use 'numberp' + instead of 'integerp', and 'truncate' instead of 'abs'. + (tab-line-format): When the window-buffer was updated, set window-parameter + to float to enable auto-hscroll after it was disabled on manual scrolling. + (tab-line-auto-hscroll-buffer): New variable with internal buffer. + (tab-line-auto-hscroll): Erase in tab-line-auto-hscroll-buffer. + Use 'numberp' instead of 'integerp', 'truncate' instead of 'abs', + and 'float' instead of '-'. + (tab-line-hscroll): Use 'numberp' instead of 'integerp', + and 'truncate' instead of 'abs'. + +2020-02-29 Mattias Engdegård <mattiase@acm.org> + + Fix rx charset generation + + * lisp/emacs-lisp/rx.el (rx--charset-p): Don't overquote. + (rx--generate-alt): Generate '.' for negated newline. + * test/lisp/emacs-lisp/rx-tests.el (rx-any, rx-charset-or): Test. + +2020-02-28 Mattias Engdegård <mattiase@acm.org> + + Fix overquoting in mule.el + + * lisp/international/mule.el (sgml-xml-auto-coding-function): + Remove accidental quote. + +2020-02-28 Paul Eggert <eggert@cs.ucla.edu> + + * src/timefns.c (time_arith): Omit incorrect comment. + +2020-02-28 Mattias Engdegård <mattiase@acm.org> + + * lisp/vc/vc-cvs.el (vc-cvs-ignore): Copy-edit doc string + +2020-02-28 Štěpán Němec <stepnem@gmail.com> + + checkdoc: Don't mistake "cf." for sentence end + + * lisp/emacs-lisp/checkdoc.el (checkdoc-sentencespace-region-engine): + Recognize "cf." as an abbreviation, not a sentence end. + +2020-02-27 Nicolas Petton <nicolas@petton.fr> + + Bump Emacs version to 27.0.90 + + * README: + * configure.ac: + * msdos/sed2v2.inp: + * nt/README.W32: Bump Emacs version. + +2020-02-27 Nicolas Petton <nicolas@petton.fr> + + * etc/AUTHORS: Update. + 2020-02-27 Nicolas Petton <nicolas@petton.fr> * admin/authors.el (authors-ignored-files): Fix entries. @@ -139450,7 +140538,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit 9261b1ed49755284bb9dc194b6c2a9b407151ee5 (inclusive). +commit 4acdd7fe58ae9f94102afeca67b0383141d597da (inclusive). See ChangeLog.2 for earlier changes. ;; Local Variables: diff --git a/admin/authors.el b/admin/authors.el index dc42bc72ef3..fd17a3394d8 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -207,6 +207,11 @@ files.") ("Yoshinori Koseki" "KOSEKI Yoshinori" "小関 吉則") ("Yutaka NIIBE" "NIIBE Yutaka") (nil "stardiviner") + (nil "lin.sun") + ("Nitish Chinta" "nitishch") + ("Carlos Pita" "memeplex") + ("Vinicius Jose Latorre" "viniciusjl") + ("Gaby Launay" "galaunay") ) "Alist of author aliases. @@ -278,7 +283,7 @@ If REALNAME is nil, ignore that author.") (defvar authors-obsolete-files-regexps - '(".*loaddefs.el$" ; not obsolete, but auto-generated + '(".*loaddefs\\.el$" ; not obsolete, but auto-generated "\\.\\(bzr\\|cvs\\|git\\)ignore$" ; obsolete or uninteresting "\\.arch-inventory$" "ChangeLog\\(\\.[0-9]+\\)?\\'" @@ -288,9 +293,9 @@ If REALNAME is nil, ignore that author.") "\\`\\(indent\\|automated\\)\\'" "indent/" "mod-test/" "-resources/" "unidata/.*\\.txt\\'" - "BidiCharacterTest.txt" + "BidiCharacterTest\\.txt" ;; TODO lib/? Matches other things? - "build-aux/" "m4/" "Emacs.xcodeproj" "mapfiles" "\\.map\\'" + "build-aux/" "m4/" "Emacs\\.xcodeproj" "mapfiles" "\\.map\\'" "preferences\\.\\(nib\\|gorm\\)" ;; Generated files that have since been removed. "\\(refcard\\(-de\\|-pl\\)?\\|calccard\\|dired-ref\\|orgcard\\|\ @@ -1183,7 +1188,7 @@ ediff\\|emerge\\|log-edit\\|log-view\\|pcvs\\|smerge-mode\\|vc\\)\\.el\\'" ("\\`org-\\(ascii\\|beamer\\|html\\|icalendar\\|jsinfo\\|latex\ \\|odt\\|publish\\)\\.el\\'" "ox-\\1.el") ;; From test/ to test/automated/. - ("comint-testsuite.el" "automated/\\&") + ("comint-testsuite\\.el" "automated/\\&") ("\\`\\(bytecomp\\|font-parse\\|icalendar\\|occur\\|newsticker\\)\ -testsuite\\.el" "\\1-tests.el") ("automated/flymake/warnpred/\\(Makefile\\|test\\.\\(?:c\\|pl\\)\\)\\'" diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index af2f3acd467..5ec23a9c876 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -5871,25 +5871,26 @@ which window parameters (if any) are saved by this function. @defun set-window-configuration configuration This function restores the configuration of windows and buffers as -specified by @var{configuration}, for the frame that @var{configuration} -was created for. - -The argument @var{configuration} must be a value that was previously -returned by @code{current-window-configuration}. The configuration is -restored in the frame from which @var{configuration} was made, whether -that frame is selected or not. In some rare cases this may trigger -execution of the @code{window-size-change-functions} (@pxref{Window -Hooks}) even if the size of windows did not change at all. The -@code{window-configuration-change-hook} functions will be called if and -only if at least one window was added to or deleted from the frame. - -If the frame from which @var{configuration} was saved is dead, all this -function does is restore the three variables @code{window-min-height}, -@code{window-min-width} and @code{minibuffer-scroll-window}. In this -case, the function returns @code{nil}. Otherwise, it returns @code{t}. - -Here is a way of using this function to get the same effect -as @code{save-window-excursion}: +specified by @var{configuration}, for the frame that +@var{configuration} was created for, regardless of whether that frame +is selected or not. The argument @var{configuration} must be a value +that was previously returned by @code{current-window-configuration} +for that frame. + +If the frame from which @var{configuration} was saved is dead, all +this function does is to restore the value of the variable +@code{minibuffer-scroll-window} and to adjust the value returned by +@code{minibuffer-selected-window}. In this case, the function returns +@code{nil}. Otherwise, it returns @code{t}. + +If the buffer of a window of @var{configuration} has been killed since +@var{configuration} was made, that window is, as a rule, removed from +the restored configuration. However, if that window is the last +window remaining in the restored configuration, another live buffer is +shown in it. + +Here is a way of using this function to get the same effect as +@code{save-window-excursion}: @example @group diff --git a/etc/AUTHORS b/etc/AUTHORS index ab0cbeefc83..aff24a8d8d3 100644 --- a/etc/AUTHORS +++ b/etc/AUTHORS @@ -97,11 +97,11 @@ Alakazam Petrofsky: changed hanoi.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 follow.el display.texi subr.el +and changed cc-mode.texi bytecomp.el display.texi follow.el subr.el edebug.el progmodes/compile.el programs.texi syntax.texi modes.texi font-lock.el isearch.el text.texi help.el ispell.el lread.c syntax.c windows.texi .dir-locals.el control.texi cus-start.el - and 147 other files + and 148 other files Alan Modra: changed unexelf.c @@ -113,9 +113,9 @@ Alan Shutko: changed diary-lib.el calendar.el bindings.el cal-hebrew.el Alan Third: wrote dabbrev-tests.el image-transforms-tests.el and changed nsterm.m nsterm.h nsfns.m nsmenu.m ns-win.el nsimage.m - image.c macfont.m configure.ac frame.el xdisp.c display.texi image.el - macos.texi xterm.c Info.plist.in conf_post.h dispextern.h frame.c - frame.h frames.texi and 21 other files + image.c macfont.m configure.ac frame.el xdisp.c macos.texi display.texi + image.el xterm.c Info.plist.in conf_post.h dispextern.h frame.c frame.h + frames.texi and 21 other files Alastair Burt: changed gnus-art.el smiley.el @@ -235,12 +235,11 @@ Alp Aker: changed nsfont.m nsterm.m buff-menu.el nsfns.m nsmenu.m Ami Fischman: changed bindings.el calendar.el diary-lib.el print.c savehist.el vc-git.el -Amin Bandali: changed erc-button.el erc-desktop-notifications.el - erc-autoaway.el erc-compat.el erc-fill.el erc-ibuffer.el erc-imenu.el - erc-join.el erc-lang.el erc-list.el erc-log.el erc-match.el - erc-notify.el erc-pcomplete.el erc-replace.el erc-ring.el - erc-services.el erc-sound.el erc-speedbar.el erc-spelling.el - erc-stamp.el and 4 other files +Amin Bandali: changed erc.el erc-button.el erc-desktop-notifications.el + erc-track.el erc-autoaway.el erc-compat.el erc-fill.el erc-ibuffer.el + erc-imenu.el erc-join.el erc-lang.el erc-list.el erc-log.el + erc-match.el erc-notify.el erc-pcomplete.el erc-replace.el erc-ring.el + erc-services.el erc-sound.el erc-speedbar.el and 5 other files Anand Mitra: changed gnus-sum.el @@ -298,7 +297,7 @@ Andreas Rottmann: changed emacsclient.1 emacsclient.c misc.texi server.el Andreas Schwab: changed configure.ac lisp.h xdisp.c process.c alloc.c coding.c Makefile.in files.el fileio.c keyboard.c lread.c xterm.c fns.c editfns.c emacs.c src/Makefile.in print.c eval.c font.c xfns.c sysdep.c - and 650 other files + and 651 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 @@ -332,6 +331,8 @@ and changed nnir.el gnus-sum.el nnimap.el gnus-msg.el gnus.texi Andrew Csillag: wrote m4-mode.el +Andrew Eggenberger: changed cl-extra.el seq.el + Andrew G Cohen: changed gnus-sum.el gnus-art.el Andrew Hall: changed paren.el @@ -695,8 +696,8 @@ Carl Edman: co-wrote ns-win.el Carl Henrik Lunde: changed format-spec.el -Carlos Pita: changed erc-pcomplete.el image-mode.el progmodes/python.el - sh-script.el +Carlos Pita: changed progmodes/python.el erc-pcomplete.el fringe.c + gtkutil.c image-mode.el keyboard.c sh-script.el Carsten Bormann: changed ibmrs6000.h latin-post.el @@ -1354,9 +1355,9 @@ Dmitry Gutov: wrote elisp-mode-tests.el jit-lock-tests.el json-tests.el vc-hg-tests.el xref-tests.el and changed ruby-mode.el xref.el project.el vc-git.el elisp-mode.el etags.el ruby-mode-tests.el js.el package.el vc-hg.el vc.el - symref/grep.el log-edit.el dired-aux.el simple.el menu-bar.el - minibuffer.el package-test.el progmodes/grep.el vc-svn.el eldoc.el - and 110 other files + symref/grep.el log-edit.el dired-aux.el simple.el minibuffer.el + menu-bar.el package-test.el progmodes/grep.el vc-svn.el eldoc.el + and 111 other files Dmitry Kurochkin: changed isearch.el @@ -1444,7 +1445,7 @@ Eli Zaretskii: wrote [bidirectional display in xdisp.c] and changed xdisp.c msdos.c w32.c display.texi w32fns.c simple.el files.el fileio.c keyboard.c w32term.c w32proc.c emacs.c files.texi text.texi dispnew.c frames.texi lisp.h dispextern.h window.c process.c - term.c and 1184 other files + term.c and 1187 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 @@ -2039,7 +2040,7 @@ Ian Lance Taylor: changed sco4.h Ian T Zimmerman: wrote gametree.el and changed ange-ftp.el desktop.el tex-mode.el -İ. Göktuğ Kayaalp: changed eww.el vc-rcs.el +İ. Göktuğ Kayaalp: changed eww.el frames.texi mwheel.el vc-rcs.el Igor Kuzmin: wrote cconv.el @@ -2433,7 +2434,7 @@ and changed flymake.el flymake-proc.el icomplete.el minibuffer.el flymake-tests.el flymake.texi elisp-mode.el flymake-elisp.el electric.el flymake-ui.el text.texi json-tests.el tex-mode.el errors-and-warnings.c json.c xref.el auth-source-pass.el linum.el - maintaining.texi message.el progmodes/python.el and 29 other files + maintaining.texi message.el progmodes/python.el and 30 other files Jochen Hein: changed gnus-art.el @@ -2713,13 +2714,15 @@ Juri Linkov: wrote files-x.el misearch.el replace-tests.el tab-bar.el and changed isearch.el info.el simple.el replace.el dired.el dired-aux.el progmodes/grep.el progmodes/compile.el startup.el subr.el diff-mode.el files.el menu-bar.el faces.el bindings.el display.texi image-mode.el - desktop.el comint.el minibuffer.el search.texi and 418 other files + desktop.el comint.el minibuffer.el search.texi and 419 other files Jussi Lahdenniemi: changed w32fns.c ms-w32.h msdos.texi w32.c w32.h w32console.c w32heap.c w32inevt.c w32term.h Justin Bogner: changed fortune.el +Justin Burkett: changed window.el + Justin Gordon: changed ox-md.el Justin Sheehy: changed gnus-sum.el nntp.el @@ -3119,8 +3122,6 @@ Liam Stitt: changed url-file.el url-vars.el Liang Wang: changed etags.el -Lin Sun: changed makefile-edit.el - Lixin Chin: changed bibtex.el Lloyd Zusman: changed mml.el pgg-gpg.el @@ -3348,9 +3349,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 xdisp.c - w32fns.c frames.texi xterm.c w32term.c frame.el xfns.c display.texi + w32fns.c xterm.c frames.texi w32term.c xfns.c frame.el display.texi help.el buffer.c window.h cus-start.el frame.h dispnew.c mouse.el - nsfns.m dired.el and 209 other files + nsfns.m gtkutil.c and 209 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 @@ -3450,10 +3451,10 @@ Matt Hodges: changed textmodes/table.el faces.el iswitchb.el simple.el locate.el paragraphs.el pcomplete.el repeat.el and 3 other files Mattias Engdegård: changed rx.el searching.texi rx-tests.el autorevert.el - regexp-opt.el calc-tests.el filenotify.el subr.el progmodes/compile.el - files.el mouse.el bytecomp.el compile-tests.el autorevert-tests.el - byte-opt.el bytecomp-tests.el calc-alg.el compilation.txt font.c - regex-emacs.c regexp-opt-tests.el and 121 other files + calc-tests.el regexp-opt.el filenotify.el subr.el files.el + progmodes/compile.el mouse.el bytecomp.el compile-tests.el + autorevert-tests.el byte-opt.el bytecomp-tests.el calc-alg.el + compilation.txt dired.el font.c regex-emacs.c and 161 other files Matt Lundin: changed org-agenda.el org.el org-bibtex.el org-footnote.el ox-publish.el org-bbdb.el org-datetree.el org-gnus.el @@ -3854,7 +3855,7 @@ Nil Geisweiller: changed flymake.el Nils Ackermann: changed message.el nnmh.el reftex-vars.el -Nitish Chandra: changed simple.el +Nitish Chinta: changed progmodes/python.el sendmail.el simple.el N. Jackson: changed emacs.texi forms.texi @@ -3870,10 +3871,10 @@ Noah Lavine: changed tramp.el Noah Swainland: changed calc.el Noam Postavsky: changed progmodes/python.el lisp-mode.el bytecomp.el - lisp-mode-tests.el term.el xdisp.c cl-macs.el eval.c - emacs-lisp/debug.el simple.el data.c modes.texi subr.el elisp-mode.el - ert.el help-fns.el isearch.el processes.texi cl-print.el ffap.el - print.c and 357 other files + lisp-mode-tests.el term.el xdisp.c eval.c cl-macs.el data.c + emacs-lisp/debug.el simple.el help-fns.el modes.texi subr.el + elisp-mode.el ert.el isearch.el processes.texi cl-print.el diff-mode.el + ffap.el and 359 other files Nobuyoshi Nakada: co-wrote ruby-mode.el and changed ruby-mode-tests.el @@ -4168,15 +4169,15 @@ Philipp Stephani: wrote callint-tests.el checkdoc-tests.el lread-tests.el mouse-tests.el xt-mouse-tests.el and changed emacs-module.c emacs-module-tests.el json.c json-tests.el eval.c mod-test.c lisp.h lread.c nsterm.m configure.ac bytecomp.el - internals.texi gtkutil.c emacs-module.h.in files.el alloc.c electric.el - test/Makefile.in editfns.c electric-tests.el emacs.c - and 126 other files + internals.texi gtkutil.c emacs-module.h.in files.el alloc.c + electric-tests.el electric.el test/Makefile.in editfns.c emacs.c + and 127 other files Phillip Lord: wrote ps-print-tests.el -and changed build-zips.sh lisp/Makefile.in undo.c simple.el - build-dep-zips.py test/Makefile.in Makefile Makefile.in emacs.nsi - keyboard.c viper-cmd.el README-windows-binaries README.W32 - elisp-mode-tests.el ldefs-clean.el loadup.el README-scripts autoload.el +and changed build-zips.sh lisp/Makefile.in undo.c build-dep-zips.py + simple.el test/Makefile.in Makefile Makefile.in emacs.nsi keyboard.c + viper-cmd.el README-windows-binaries README.W32 elisp-mode-tests.el + ldefs-clean.el loadup.el README-scripts autoload.el automated/Makefile.in cmds.c dired.el and 171 other files Phil Sainty: wrote autoload-longlines-mode-tests.el @@ -4412,11 +4413,11 @@ Roberto Rodríguez: changed glossary.texi widget.texi Robert P. Goldman: changed org.texi ob-exp.el org.el ox-latex.el Robert Pluim: wrote nsm-tests.el -and changed process.c gtkutil.c processes.texi vc-git.el configure.ac - ftfont.c network-stream.el nsm.el process-tests.el files.texi font.c - ftcrfont.c gnus-icalendar.el gnutls.el gtkutil.h - network-stream-tests.el text.texi w32.c xfns.c xftfont.c auth.texi - and 83 other files +and changed process.c ftfont.c gtkutil.c processes.texi vc-git.el + configure.ac font.c network-stream.el nsm.el process-tests.el xfns.c + dispextern.h files.texi ftcrfont.c gnus-icalendar.el gnutls.el + gtkutil.h network-stream-tests.el nsterm.m text.texi w32.c + and 90 other files Robert Thorpe: changed cus-start.el indent.el @@ -4649,6 +4650,8 @@ and changed ob-maxima.el ob-octave.el Sergey Poznyakoff: changed rmail.el mh-mime.el rmail.texi smtpmail.el +Sergey Trofimov: changed window.el + Sergey Vinokurov: changed emacs-module-tests.el emacs-module.c mod-test.c Sergio Durigan Junior: changed eudcb-bbdb.el gdb-mi.el @@ -4772,7 +4775,7 @@ Stefan Kangas: wrote bookmark-tests.el delim-col-tests.el morse-tests.el and changed bookmark.el package.el efaq.texi package.texi ibuffer.el mwheel.el cperl-mode.el fns.c gud.el simple.el subr.el autoinsert.el comint-tests.el cus-edit.el delim-col.el dired-aux.el dired-x.el - em-term.el ert.texi flow-fill.el frames.texi and 146 other files + em-term.el ert.texi flow-fill.el frames.texi and 147 other files Stefan Merten: co-wrote rst.el @@ -4806,10 +4809,11 @@ Stefan Wiens: changed gnus-sum.el Steinar Bang: changed gnus-setup.el imap.el -Štěpán Němec: changed INSTALL calc-ext.el cl.texi comint.el edebug.texi - font-lock.el functions.texi leim-ext.el loading.texi maps.texi - mark.texi message.texi mini.texi minibuf.texi misc.texi programs.texi - subr.el tips.texi url-vars.el url.texi vc-git.el and 3 other files +Štěpán Němec: changed INSTALL calc-ext.el checkdoc.el cl.texi comint.el + edebug.texi font-lock.el functions.texi gnus-sum.el insdel.c + leim-ext.el loading.texi maps.texi mark.texi message.texi mini.texi + minibuf.texi misc.texi programs.texi subr.el text.texi + and 7 other files Stephan Stahl: changed which-func.el buff-menu.el buffer.c dired-x.texi ediff-mult.el @@ -5567,6 +5571,8 @@ Zhang Weize: wrote ob-plantuml.el Zhongwei Yao: changed tramp-adb.el +Zhu Zihao: changed svg.el + Zoltan Kemenczy: changed gud.el Zoran Milojevic: changed avoid.el diff --git a/etc/NEWS.27 b/etc/NEWS.27 index f4edfaf9bec..aba3028184b 100644 --- a/etc/NEWS.27 +++ b/etc/NEWS.27 @@ -1647,6 +1647,16 @@ adjacent to an apostrophe, like "nick's". *** Set 'erc-button-url-regexp' to 'browse-url-button-regexp' which better handles surrounding pair of parentheses. +--- +*** New function 'erc-switch-to-buffer-other-window' +which is like 'erc-switch-to-buffer', but opens the buffer in another +window. + +--- +*** New function 'erc-track-switch-buffer-other-window' +which is like 'erc-track-switch-buffer', but opens the buffer in +another window. + ** EUDC --- diff --git a/lisp/auth-source-pass.el b/lisp/auth-source-pass.el index e2a6bfefb5d..ba66d0bb5df 100644 --- a/lisp/auth-source-pass.el +++ b/lisp/auth-source-pass.el @@ -190,7 +190,7 @@ CONTENTS is the contents of a password-store formatted file." (let ((store-dir (expand-file-name auth-source-pass-filename))) (mapcar (lambda (file) (file-name-sans-extension (file-relative-name file store-dir))) - (directory-files-recursively store-dir "\\.gpg$")))) + (directory-files-recursively store-dir "\\.gpg\\'")))) (defun auth-source-pass--find-match (host user port) "Return password-store entry data matching HOST, USER and PORT. diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el index 6d8fe9c998f..a49f428a3c8 100644 --- a/lisp/calendar/todo-mode.el +++ b/lisp/calendar/todo-mode.el @@ -707,7 +707,7 @@ and done items are always shown on visiting a category." shortf todo-show-first))) (when (eq todo-show-first 'regexp) (let ((rxfiles (directory-files todo-directory t - ".*\\.todr$" t))) + "\\.todr\\'" t))) (when (and rxfiles (> (length rxfiles) 1)) (let ((rxf (mapcar #'todo-short-file-name rxfiles))) (setq fi-file (todo-absolute-file-name @@ -4054,7 +4054,7 @@ regexp items." (defun todo-find-filtered-items-file () "Choose a filtered items file and visit it." (interactive) - (let ((files (directory-files todo-directory t "\\.tod[rty]$" t)) + (let ((files (directory-files todo-directory t "\\.tod[rty]\\'" t)) falist file) (dolist (f files) (let ((sf-name (todo-short-file-name f)) @@ -4187,7 +4187,7 @@ multifile commands for further details." (regexp ".todr"))))) (multi (> (length flist) 1)) (rxfiles (when regexp - (directory-files todo-directory t ".*\\.todr$" t))) + (directory-files todo-directory t "\\.todr\\'" t))) (file-exists (or (file-exists-p fname) rxfiles)) bufname) (cond ((and top new (natnump new)) @@ -6154,7 +6154,7 @@ the empty string (i.e., no time string)." "The :set function for user option `todo-nondiary-marker'." (let* ((oldvalue (symbol-value symbol)) (files (append todo-files todo-archives - (directory-files todo-directory t "\\.tod[rty]$" t)))) + (directory-files todo-directory t "\\.tod[rty]\\'" t)))) (custom-set-default symbol value) ;; Need to reset these to get font-locking right. (setq todo-nondiary-start (nth 0 todo-nondiary-marker) @@ -6207,7 +6207,7 @@ the empty string (i.e., no time string)." "The :set function for user option `todo-done-string'." (let ((oldvalue (symbol-value symbol)) (files (append todo-files todo-archives - (directory-files todo-directory t "\\.todr$" t)))) + (directory-files todo-directory t "\\.todr\\'" t)))) (custom-set-default symbol value) ;; Need to reset this to get font-locking right. (setq todo-done-string-start @@ -6236,7 +6236,7 @@ the empty string (i.e., no time string)." "The :set function for user option `todo-comment-string'." (let ((oldvalue (symbol-value symbol)) (files (append todo-files todo-archives - (directory-files todo-directory t "\\.todr$" t)))) + (directory-files todo-directory t "\\.todr\\'" t)))) (custom-set-default symbol value) (when (not (equal value oldvalue)) (dolist (f files) @@ -6262,7 +6262,7 @@ the empty string (i.e., no time string)." "The :set function for user option `todo-highlight-item'." (let ((oldvalue (symbol-value symbol)) (files (append todo-files todo-archives - (directory-files todo-directory t "\\.tod[rty]$" t)))) + (directory-files todo-directory t "\\.tod[rty]\\'" t)))) (custom-set-default symbol value) (when (not (equal value oldvalue)) (dolist (f files) diff --git a/lisp/cedet/semantic/db-ebrowse.el b/lisp/cedet/semantic/db-ebrowse.el index 214291797db..6262efb5b8f 100644 --- a/lisp/cedet/semantic/db-ebrowse.el +++ b/lisp/cedet/semantic/db-ebrowse.el @@ -181,7 +181,9 @@ is specified by `semanticdb-default-save-directory'." "Load all semanticdb controlled EBROWSE caches." (interactive) (let ((f (directory-files semanticdb-default-save-directory - t (concat semanticdb-ebrowse-default-file-name "-load.el$") t))) + t (concat semanticdb-ebrowse-default-file-name + "-load\\.el\\'") + t))) (while f (load (car f) nil t) (setq f (cdr f))) diff --git a/lisp/cedet/semantic/texi.el b/lisp/cedet/semantic/texi.el index 760cb192159..8e8d362ceb5 100644 --- a/lisp/cedet/semantic/texi.el +++ b/lisp/cedet/semantic/texi.el @@ -495,7 +495,7 @@ that start with that symbol." (setq tabs (cdr tabs))) r)) (t - (directory-files default-directory nil "\\.texi$")) + (directory-files default-directory nil "\\.texi\\'")) ))) ;; Turns out this might not be useful. diff --git a/lisp/cedet/srecode/map.el b/lisp/cedet/srecode/map.el index 784ebffe17c..dc949200968 100644 --- a/lisp/cedet/srecode/map.el +++ b/lisp/cedet/srecode/map.el @@ -327,7 +327,7 @@ if that file is NEW, otherwise assume the mode has not changed." ;; 4) - Find new files and add them to the map. (dolist (dir srecode-map-load-path) (when (file-exists-p dir) - (dolist (f (directory-files dir t "\\.srt$")) + (dolist (f (directory-files dir t "\\.srt\\'")) (when (and (not (backup-file-name-p f)) (not (auto-save-file-name-p f)) (file-readable-p f)) diff --git a/lisp/dired.el b/lisp/dired.el index 62e232b79fd..9583d5d809e 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -3236,7 +3236,7 @@ Any other value means to ask for each directory." :group 'dired) ;; Match anything but `.' and `..'. -(defvar dired-re-no-dot "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*") +(defvar dired-re-no-dot (rx (or (not ".") "..."))) ;; Delete file, possibly delete a directory and all its files. ;; This function is useful outside of dired. One could change its name diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el index e9f76583272..ede4edcd57e 100644 --- a/lisp/emacs-lisp/autoload.el +++ b/lisp/emacs-lisp/autoload.el @@ -1047,7 +1047,7 @@ write its autoloads into the specified file instead." ;; what is the suffix for the underlying OS. (unless (string-match "\\.\\(elc\\|so\\|dll\\)" suf) (push suf tmp))) - (concat "^[^=.].*" (regexp-opt tmp t) "\\'"))) + (concat "\\`[^=.].*" (regexp-opt tmp t) "\\'"))) (files (apply #'nconc (mapcar (lambda (dir) (directory-files (expand-file-name dir) diff --git a/lisp/emacs-lisp/shadow.el b/lisp/emacs-lisp/shadow.el index f0a4870a698..4ff129e367a 100644 --- a/lisp/emacs-lisp/shadow.el +++ b/lisp/emacs-lisp/shadow.el @@ -99,7 +99,8 @@ See the documentation for `list-load-path-shadows' for further information." (setq true-names (append true-names (list dir))) (setq dir (directory-file-name (or pp "."))) (setq curr-files (if (file-accessible-directory-p dir) - (directory-files dir nil ".\\.elc?\\(\\.gz\\)?$" t))) + (directory-files dir nil + "\\.elc?\\(?:\\.gz\\)?\\'" t))) (and curr-files (not noninteractive) (message "Checking %d files in %s..." (length curr-files) dir)) diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el index db8ccbb4a79..41d8fc1a98f 100644 --- a/lisp/erc/erc-track.el +++ b/lisp/erc/erc-track.el @@ -921,11 +921,7 @@ is relative to `erc-track-switch-direction'." (setq offset 0))) (car (nth offset erc-modified-channels-alist)))) -(defun erc-track-switch-buffer (arg) - "Switch to the next active ERC buffer, or if there are no active buffers, -switch back to the last non-ERC buffer visited. Next is defined by -`erc-track-switch-direction', a negative argument will reverse this." - (interactive "p") +(defun erc-track--switch-buffer (fun arg) (if (not erc-track-mode) (message (concat "Enable the ERC track module if you want to use the" " tracking minor mode")) @@ -934,12 +930,30 @@ switch back to the last non-ERC buffer visited. Next is defined by (unless (eq major-mode 'erc-mode) (setq erc-track-last-non-erc-buffer (current-buffer))) ;; and jump to the next active channel - (switch-to-buffer (erc-track-get-active-buffer arg))) + (funcall fun (erc-track-get-active-buffer arg))) ;; if no active channels, switch back to what we were doing before ((and erc-track-last-non-erc-buffer - erc-track-switch-from-erc - (buffer-live-p erc-track-last-non-erc-buffer)) - (switch-to-buffer erc-track-last-non-erc-buffer))))) + erc-track-switch-from-erc + (buffer-live-p erc-track-last-non-erc-buffer)) + (funcall fun erc-track-last-non-erc-buffer))))) + +(defun erc-track-switch-buffer (arg) + "Switch to the next active ERC buffer. +If there are no active ERC buffers, switch back to the last +non-ERC buffer visited. The order of buffers is defined by +`erc-track-switch-direction', and a negative argument will +reverse it." + (interactive "p") + (erc-track--switch-buffer 'switch-to-buffer arg)) + +(defun erc-track-switch-buffer-other-window (arg) + "Switch to the next active ERC buffer in another window. +If there are no active ERC buffers, switch back to the last +non-ERC buffer visited. The order of buffers is defined by +`erc-track-switch-direction', and a negative argument will +reverse it." + (interactive "p") + (erc-track--switch-buffer 'switch-to-buffer-other-window arg)) (provide 'erc-track) diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 5c63382d86f..cc5226bf6ed 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -1762,29 +1762,38 @@ nil." res))) (define-obsolete-function-alias 'erc-iswitchb 'erc-switch-to-buffer "25.1") +(defun erc--switch-to-buffer (&optional arg) + (read-buffer "Switch to ERC buffer: " + (when (boundp 'erc-modified-channels-alist) + (buffer-name (caar (last erc-modified-channels-alist)))) + t + ;; Only allow ERC buffers in the same session. + (let ((proc (unless arg erc-server-process))) + (lambda (bufname) + (let ((buf (if (consp bufname) + (cdr bufname) (get-buffer bufname)))) + (when buf + (erc--buffer-p buf (lambda () t) proc) + (with-current-buffer buf + (and (derived-mode-p 'erc-mode) + (or (null proc) + (eq proc erc-server-process)))))))))) (defun erc-switch-to-buffer (&optional arg) - "Prompt for a ERC buffer to switch to. -When invoked with prefix argument, use all erc buffers. Without prefix -ARG, allow only buffers related to same session server. + "Prompt for an ERC buffer to switch to. +When invoked with prefix argument, use all ERC buffers. Without +prefix ARG, allow only buffers related to same session server. If `erc-track-mode' is in enabled, put the last element of `erc-modified-channels-alist' in front of the buffer list." (interactive "P") - (switch-to-buffer - (read-buffer "Switch to ERC buffer: " - (when (boundp 'erc-modified-channels-alist) - (buffer-name (caar (last erc-modified-channels-alist)))) - t - ;; Only allow ERC buffers in the same session. - (let ((proc (unless arg erc-server-process))) - (lambda (bufname) - (let ((buf (if (consp bufname) - (cdr bufname) (get-buffer bufname)))) - (when buf - (erc--buffer-p buf (lambda () t) proc) - (with-current-buffer buf - (and (derived-mode-p 'erc-mode) - (or (null proc) - (eq proc erc-server-process))))))))))) + (switch-to-buffer (erc--switch-to-buffer arg))) +(defun erc-switch-to-buffer-other-window (&optional arg) + "Prompt for an ERC buffer to switch to in another window. +When invoked with prefix argument, use all ERC buffers. Without +prefix ARG, allow only buffers related to same session server. +If `erc-track-mode' is in enabled, put the last element of +`erc-modified-channels-alist' in front of the buffer list." + (interactive "P") + (switch-to-buffer-other-window (erc--switch-to-buffer arg))) (defun erc-channel-list (proc) "Return a list of channel buffers. diff --git a/lisp/files.el b/lisp/files.el index f49be4f21d8..04c271d7966 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2668,7 +2668,7 @@ since only a single case-insensitive search through the alist is made." ("\\.pas\\'" . pascal-mode) ("\\.\\(dpr\\|DPR\\)\\'" . delphi-mode) ("\\.ad[abs]\\'" . ada-mode) - ("\\.ad[bs].dg\\'" . ada-mode) + ("\\.ad[bs]\\.dg\\'" . ada-mode) ("\\.\\([pP]\\([Llm]\\|erl\\|od\\)\\|al\\)\\'" . perl-mode) ("Imakefile\\'" . makefile-imake-mode) ("Makeppfile\\(?:\\.mk\\)?\\'" . makefile-makepp-mode) ; Put this before .mk @@ -2819,7 +2819,7 @@ ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|CBR\\|7Z\\)\\'" . archive-mo ("\\.properties\\(?:\\.[a-zA-Z0-9._-]+\\)?\\'" . conf-javaprop-mode) ("\\.toml\\'" . conf-toml-mode) ("\\.desktop\\'" . conf-desktop-mode) - ("/\\.redshift.conf\\'" . conf-windows-mode) + ("/\\.redshift\\.conf\\'" . conf-windows-mode) ("\\`/etc/\\(?:DIR_COLORS\\|ethers\\|.?fstab\\|.*hosts\\|lesskey\\|login\\.?de\\(?:fs\\|vperm\\)\\|magic\\|mtab\\|pam\\.d/.*\\|permissions\\(?:\\.d/.+\\)?\\|protocols\\|rpc\\|services\\)\\'" . conf-space-mode) ("\\`/etc/\\(?:acpid?/.+\\|aliases\\(?:\\.d/.+\\)?\\|default/.+\\|group-?\\|hosts\\..+\\|inittab\\|ksysguarddrc\\|opera6rc\\|passwd-?\\|shadow-?\\|sysconfig/.+\\)\\'" . conf-mode) ;; ChangeLog.old etc. Other change-log-mode entries are above; @@ -5753,7 +5753,7 @@ If called interactively, then PARENTS is non-nil." (write-region "" nil filename nil 0)) (defconst directory-files-no-dot-files-regexp - "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*" + "[^.]\\|\\.\\.\\." "Regexp matching any file name except \".\" and \"..\".") (defun files--force (no-such fn &rest args) diff --git a/lisp/finder.el b/lisp/finder.el index dc14b27a753..f04d73e098f 100644 --- a/lisp/finder.el +++ b/lisp/finder.el @@ -188,7 +188,7 @@ from; the default is `load-path'." ;; Allow compressed files also. (setq package--builtins nil) (setq finder-keywords-hash (make-hash-table :test 'eq)) - (let* ((el-file-regexp "^\\([^=].*\\)\\.el\\(\\.\\(gz\\|Z\\)\\)?$") + (let* ((el-file-regexp "\\`\\([^=].*\\)\\.el\\(\\.\\(gz\\|Z\\)\\)?\\'") (file-count 0) (files (cl-loop for d in (or dirs load-path) when (file-exists-p (directory-file-name d)) diff --git a/lisp/generic-x.el b/lisp/generic-x.el index d49193ccfc5..cd24f497c96 100644 --- a/lisp/generic-x.el +++ b/lisp/generic-x.el @@ -1430,7 +1430,7 @@ like an INI file. You can add this hook to `find-file-hook'." "nowait" "internal") '(("^\\([-A-Za-z0-9_]+\\)" 1 font-lock-type-face)) - '("/etc/inetd.conf\\'") + '("/etc/inetd\\.conf\\'") (list (function (lambda () @@ -1630,7 +1630,7 @@ like an INI file. You can add this hook to `find-file-hook'." (2 font-lock-variable-name-face) (3 font-lock-constant-face))) ;; List of additional automode-alist expressions - '("/etc/named.boot\\'") + '("/etc/named\\.boot\\'") ;; List of set up functions to call nil)) @@ -1667,7 +1667,7 @@ like an INI file. You can add this hook to `find-file-hook'." ;; List of additional font-lock-expressions nil ;; List of additional auto-mode-alist expressions - '("/etc/resolv[e]?.conf\\'") + '("/etc/resolve?\\.conf\\'") ;; List of set up functions to call nil)) @@ -1803,7 +1803,7 @@ like an INI file. You can add this hook to `find-file-hook'." ;; List of additional font-lock-expressions nil ;; List of additional automode-alist expressions - '("/etc/modules.conf" "/etc/conf.modules") + '("/etc/modules\\.conf" "/etc/conf\\.modules") ;; List of set up functions to call nil)) diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el index 80bf21bb443..1ed5000eb36 100644 --- a/lisp/gnus/gnus-agent.el +++ b/lisp/gnus/gnus-agent.el @@ -2074,7 +2074,7 @@ doesn't exist, to valid the overview buffer." (file-attributes (directory-files-and-attributes (gnus-agent-article-name "" gnus-agent-read-agentview) - nil "^[0-9]+$" t))) + nil "\\`[0-9]+\\'" t))) (while file-attributes (let ((fa (pop file-attributes))) (unless (file-attribute-type (cdr fa)) @@ -3850,7 +3850,8 @@ If REREAD is not nil, downloaded articles are marked as unread." (sort (delq nil (mapcar (lambda (name) (and (not (file-directory-p (nnheader-concat dir name))) (string-to-number name))) - (directory-files dir nil "^[0-9]+$" t))) + (directory-files + dir nil "\\`[0-9]+\\'" t))) '>) (progn (gnus-make-directory dir) nil))) nov-arts @@ -4110,7 +4111,7 @@ agent has fetched." (setq delta sum)) (let ((sum (- (nth 2 entry))) (info (directory-files-and-attributes - path nil "^-?[0-9]+$" t)) + path nil "\\`-?[0-9]+\\'" t)) file) (while (setq file (pop info)) (cl-incf sum (float (or (file-attribute-size (cdr file)) 0)))) diff --git a/lisp/gnus/gnus-cache.el b/lisp/gnus/gnus-cache.el index 8b9acfe0510..02a8ea723d3 100644 --- a/lisp/gnus/gnus-cache.el +++ b/lisp/gnus/gnus-cache.el @@ -501,7 +501,7 @@ Returns the list of articles removed." (when (file-exists-p dir) (setq articles (sort (mapcar (lambda (name) (string-to-number name)) - (directory-files dir nil "^[0-9]+$" t)) + (directory-files dir nil "\\`[0-9]+\\'" t)) '<)) ;; Update the cache active file, just to synch more. (if articles diff --git a/lisp/gnus/gnus-score.el b/lisp/gnus/gnus-score.el index 41b63e23232..46b70eaf275 100644 --- a/lisp/gnus/gnus-score.el +++ b/lisp/gnus/gnus-score.el @@ -2981,7 +2981,7 @@ The list is determined from the variable `gnus-score-file-alist'." (if (file-directory-p (car files)) (setq out (nconc (directory-files (car files) t - (concat (gnus-score-file-regexp) "$")))) + (concat (gnus-score-file-regexp) "\\'")))) (push (car files) out)) (setq files (cdr files))) (setq gnus-internal-global-score-files out))) diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index 83a85161aa0..f0d328d334f 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el @@ -768,7 +768,7 @@ nil. See also `gnus-bind-print-variables'." If there's no subdirectory, delete DIRECTORY as well." (when (file-directory-p directory) (let ((files (directory-files - directory t "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")) + directory t (rx (or (not ".") "...")))) file dir) (while files (setq file (pop files)) diff --git a/lisp/gnus/gnus-uu.el b/lisp/gnus/gnus-uu.el index 4037221f496..af37df07f97 100644 --- a/lisp/gnus/gnus-uu.el +++ b/lisp/gnus/gnus-uu.el @@ -1674,7 +1674,7 @@ Gnus might fail to display all of it.") did-unpack)) (defun gnus-uu-dir-files (dir) - (let ((dirs (directory-files dir t "[^/][^\\.][^\\.]?$")) + (let ((dirs (directory-files dir t (rx (or (not ".") "...")))) files file) (while dirs (if (file-directory-p (setq file (car dirs))) diff --git a/lisp/gnus/nndraft.el b/lisp/gnus/nndraft.el index e5dda990d6b..a3c26ea4ac0 100644 --- a/lisp/gnus/nndraft.el +++ b/lisp/gnus/nndraft.el @@ -219,7 +219,7 @@ are generated if and only if they are also in `message-draft-headers'." (nnheader-re-read-dir pathname) (setq dir (mapcar (lambda (name) (string-to-number (substring name 1))) (ignore-errors (directory-files - pathname nil "^#[0-9]+#$" t)))) + pathname nil "\\`#[0-9]+#\\'" t)))) (dolist (n dir) (unless (file-exists-p (setq file (expand-file-name (int-to-string n) pathname))) diff --git a/lisp/gnus/nnmh.el b/lisp/gnus/nnmh.el index d2f63bd3db1..581a408009d 100644 --- a/lisp/gnus/nnmh.el +++ b/lisp/gnus/nnmh.el @@ -172,7 +172,7 @@ as unread by Gnus.") (setq dir (sort (mapcar 'string-to-number - (directory-files pathname nil "^[0-9]+$" t)) + (directory-files pathname nil "\\`[0-9]+\\'" t)) '<)) (cond (dir @@ -360,7 +360,7 @@ as unread by Gnus.") (nnmh-possibly-change-directory group server) (let ((articles (mapcar 'string-to-number (directory-files - nnmh-current-directory nil "^[0-9]+$")))) + nnmh-current-directory nil "\\`[0-9]+\\'")))) (when articles (setcar active (apply 'min articles)) (setcdr active (apply 'max articles)))))) @@ -371,7 +371,7 @@ as unread by Gnus.") ;; Delete all articles in GROUP. (if (not force) () ; Don't delete the articles. - (let ((articles (directory-files nnmh-current-directory t "^[0-9]+$"))) + (let ((articles (directory-files nnmh-current-directory t "\\`[0-9]+\\'"))) (while articles (when (file-writable-p (car articles)) (nnheader-message 5 "Deleting article %s in %s..." @@ -485,7 +485,7 @@ as unread by Gnus.") ;; Find the highest number in the group. (let ((files (sort (mapcar 'string-to-number - (directory-files dir nil "^[0-9]+$")) + (directory-files dir nil "\\`[0-9]+\\'")) '>))) (when files (setcdr active (car files))))) @@ -509,7 +509,7 @@ as unread by Gnus.") (let* ((dir nnmh-current-directory) (files (sort (mapcar 'string-to-number (directory-files nnmh-current-directory - nil "^[0-9]+$" t)) + nil "\\`[0-9]+\\'" t)) '<)) (nnmh-file (concat dir ".nnmh-articles")) new articles) diff --git a/lisp/gnus/nnspool.el b/lisp/gnus/nnspool.el index da13a56001b..33b68fa989e 100644 --- a/lisp/gnus/nnspool.el +++ b/lisp/gnus/nnspool.el @@ -260,7 +260,7 @@ there.") t) ;; Yes, completely empty spool directories *are* possible. ;; Fix by Sudish Joseph <joseph@cis.ohio-state.edu> - (when (setq dir (directory-files pathname nil "^[0-9]+$" t)) + (when (setq dir (directory-files pathname nil "\\`[0-9]+\\'" t)) (setq dir (sort (mapcar 'string-to-number dir) '<))) (if dir (nnheader-insert diff --git a/lisp/gnus/spam-stat.el b/lisp/gnus/spam-stat.el index 2e03608b5df..3da45a2b623 100644 --- a/lisp/gnus/spam-stat.el +++ b/lisp/gnus/spam-stat.el @@ -557,7 +557,7 @@ check the variable `spam-stat-score-data'." (defun spam-stat-process-directory (dir func) "Process all the regular files in directory DIR using function FUNC." - (let* ((files (directory-files dir t "^[^.]")) + (let* ((files (directory-files dir t "\\`[^.]")) (max (/ (length files) 100.0)) (count 0)) (with-temp-buffer @@ -601,7 +601,7 @@ If VERBOSE is non-nil display names of files detected as spam or non-spam in a temporary buffer. If it is the symbol `ham', display non-spam files; otherwise display spam files." (interactive "DDirectory: ") - (let* ((files (directory-files dir t "^[^.]")) + (let* ((files (directory-files dir t "\\`[^.]")) display-files buffer-score (total (length files)) diff --git a/lisp/help-fns.el b/lisp/help-fns.el index cc00c722ccc..0a99b8d6a36 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -623,7 +623,7 @@ FILE is the file where FUNCTION was probably defined." ;; of the *packages* in which the function is defined. (let* ((name (symbol-name symbol)) (re (concat "\\_<" (regexp-quote name) "\\_>")) - (news (directory-files data-directory t "\\`NEWS.[1-9]")) + (news (directory-files data-directory t "\\`NEWS\\.[1-9]")) (place nil) (first nil)) (with-temp-buffer diff --git a/lisp/help.el b/lisp/help.el index e40ed479e0d..b7d867eb70e 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -361,7 +361,7 @@ With argument, display info only for the selected version." (setq res (cons (match-string-no-properties 1) res))))) (cons "NEWS" (directory-files data-directory nil - "^NEWS\\.[0-9][-0-9]*$" nil))) + "\\`NEWS\\.[0-9][-0-9]*\\'" nil))) (sort (delete-dups res) #'string>))) (current (car all-versions))) (setq version (completing-read diff --git a/lisp/international/quail.el b/lisp/international/quail.el index 193b1d7c2c2..3299cc55a28 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el @@ -3059,7 +3059,7 @@ of each directory." (while quail-dirs (setq dirname (car quail-dirs)) (when dirname - (setq pkg-list (directory-files dirname 'full "\\.el$")) + (setq pkg-list (directory-files dirname 'full "\\.el\\'")) (while pkg-list (with-temp-buffer (insert-file-contents (car pkg-list)) diff --git a/lisp/international/titdic-cnv.el b/lisp/international/titdic-cnv.el index eec20ee3294..a6dcd02dc68 100644 --- a/lisp/international/titdic-cnv.el +++ b/lisp/international/titdic-cnv.el @@ -553,7 +553,7 @@ To get complete usage, invoke \"emacs -batch -f batch-titdic-convert -h\"." (if (file-directory-p filename) (progn (message "Converting all tit files in the directory %s" filename) - (setq files (directory-files filename t "\\.tit$"))) + (setq files (directory-files filename t "\\.tit\\'"))) (setq files (list filename))) (while files (setq file (expand-file-name (car files))) diff --git a/lisp/mail/mspools.el b/lisp/mail/mspools.el index 9c0c3fe5ca9..94b0886c75f 100644 --- a/lisp/mail/mspools.el +++ b/lisp/mail/mspools.el @@ -223,7 +223,7 @@ your primary spool is. If this fails, set it to something like ;; So I create a vm-spool-files entry for each of those mail drops (mapcar 'file-name-sans-extension (directory-files mspools-folder-directory nil - (format "^[^.]+\\.%s" mspools-suffix))) + (format "\\`[^.]+\\.%s" mspools-suffix))) )) )) @@ -357,7 +357,7 @@ nil." (if (null mspools-folder-directory) (error "Set `mspools-folder-directory' to where the spool files are")) (setq folders (directory-files mspools-folder-directory nil - (format "^[^.]+\\.%s$" mspools-suffix))) + (format "\\`[^.]+\\.%s\\'" mspools-suffix))) (setq folders (mapcar 'mspools-size-folder folders)) (setq folders (delq nil folders)) (setq mspools-files folders) diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 40d34702e4e..44cde7cb5a9 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -474,7 +474,7 @@ the frame where you have the RMAIL buffer displayed." :type 'directory :group 'rmail-files) ;;;###autoload -(defcustom rmail-secondary-file-regexp (purecopy "\\.xmail$") +(defcustom rmail-secondary-file-regexp (purecopy "\\.xmail\\'") "Regexp for which files are secondary Rmail files." :type 'regexp :group 'rmail-files) @@ -4364,7 +4364,8 @@ This has an effect only if a summary buffer exists." (font-lock-fontify-region (point-min) (point-max))))))) ;;; Speedbar support for RMAIL files. -(defcustom rmail-speedbar-match-folder-regexp "^[A-Z0-9]+\\(\\.[A-Z0-9]+\\)?$" +(defcustom rmail-speedbar-match-folder-regexp + "\\`[A-Z0-9]+\\(\\.[A-Z0-9]+\\)?\\'" "Regexp matching Rmail folder names to be displayed in Speedbar. Enabling this permits Speedbar to display your folders for easy browsing, and moving of messages." diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el index e2d4d7dd057..bf20128b612 100644 --- a/lisp/net/ange-ftp.el +++ b/lisp/net/ange-ftp.el @@ -4170,8 +4170,7 @@ directory, so that Emacs will know its current contents." (ange-ftp-delete-directory file recursive trash) (delete-file file trash))) ;; We do not want to delete "." and "..". - (directory-files - dir 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*"))) + (directory-files dir 'full (rx (or (not ".") "..."))))) (if parsed (let* ((host (nth 0 parsed)) (user (nth 1 parsed)) diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index a16085d7fb0..c8fdc5d7285 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -2464,7 +2464,7 @@ remote file names." (regexp-opt (mapcar #'file-name-sans-extension - (directory-files dir nil "^tramp.+\\.elc?$")) + (directory-files dir nil "\\`tramp.+\\.elc?\\'")) 'paren)))) (mapatoms (lambda (atom) diff --git a/lisp/obsolete/gulp.el b/lisp/obsolete/gulp.el index 6589ede69db..08ab3884d41 100644 --- a/lisp/obsolete/gulp.el +++ b/lisp/obsolete/gulp.el @@ -94,7 +94,7 @@ is left in the `*gulp*' buffer at the end." (interactive "DRequest updates for Lisp directory: \nP") (with-current-buffer (get-buffer-create gulp-tmp-buffer) (let ((m-p-alist (gulp-create-m-p-alist - (directory-files dir nil "^[^=].*\\.el$" t) + (directory-files dir nil "\\`[^=].*\\.el\\'" t) dir)) ;; Temporarily inhibit undo in the *gulp* buffer. (buffer-undo-list t) diff --git a/lisp/obsolete/vc-arch.el b/lisp/obsolete/vc-arch.el index b186a5c52a2..bcdefac5187 100644 --- a/lisp/obsolete/vc-arch.el +++ b/lisp/obsolete/vc-arch.el @@ -597,18 +597,20 @@ CALLBACK expects (ENTRIES &optional MORE-TO-COME); see (unless (file-writable-p rl-dir) (error "No writable revlib directory found")) (message "Revlib at %s" rl-dir) - (let* ((archives (directory-files rl-dir 'full "[^.]\\|...")) + (let* ((archives (directory-files rl-dir 'full (rx (or (not ".") "...")))) (categories (apply 'append (mapcar (lambda (dir) (when (file-directory-p dir) - (directory-files dir 'full "[^.]\\|..."))) + (directory-files dir 'full + (rx (or (not ".") "..."))))) archives))) (branches (apply 'append (mapcar (lambda (dir) (when (file-directory-p dir) - (directory-files dir 'full "[^.]\\|..."))) + (directory-files dir 'full + (rx (or (not ".") "..."))))) categories))) (versions (apply 'append diff --git a/lisp/org/ob-core.el b/lisp/org/ob-core.el index a5ad97a468b..debc27cfbff 100644 --- a/lisp/org/ob-core.el +++ b/lisp/org/ob-core.el @@ -3055,7 +3055,7 @@ of `org-babel-temporary-directory'." (delete-file file))) ;; We do not want to delete "." and "..". (directory-files org-babel-temporary-directory 'full - "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")) + (rx (or (not ".") "...")))) (delete-directory org-babel-temporary-directory)) (error (message "Failed to remove temporary Org-babel directory %s" diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el index f7ac9d36032..28e7667cda1 100644 --- a/lisp/progmodes/ebnf2ps.el +++ b/lisp/progmodes/ebnf2ps.el @@ -1883,7 +1883,7 @@ It's only used when `ebnf-syntax' is `iso-ebnf'." :group 'ebnf-syntactic) -(defcustom ebnf-file-suffix-regexp "\\.[Bb][Nn][Ff]$" +(defcustom ebnf-file-suffix-regexp "\\.[Bb][Nn][Ff]\\'" "Specify file name suffix that contains EBNF. See `ebnf-eps-directory' command." @@ -2715,7 +2715,7 @@ Used in functions `ebnf-reset-style', `ebnf-push-style' and (ebnf-syntax . 'ebnf) (ebnf-iso-alternative-p . nil) (ebnf-iso-normalize-p . nil) - (ebnf-file-suffix-regexp . "\\.[Bb][Nn][Ff]$") + (ebnf-file-suffix-regexp . "\\.[Bb][Nn][Ff]\\'") (ebnf-eps-prefix . "ebnf--") (ebnf-eps-header-font . '(11 Helvetica "Black" "White" bold)) (ebnf-eps-header . nil) diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el index b42e6f73ab9..bae2bb66403 100644 --- a/lisp/progmodes/executable.el +++ b/lisp/progmodes/executable.el @@ -155,7 +155,7 @@ See `compilation-error-regexp-alist'.") If PROGRAM is non-nil, use that instead of \"find\"." ;; Pick file to search from location we know (let* ((dir (file-truename data-directory)) - (file (car (directory-files dir nil "^[^.]")))) + (file (car (directory-files dir nil "\\`[^.]")))) (with-temp-buffer (call-process (or program "find") nil diff --git a/lisp/simple.el b/lisp/simple.el index 7c8ac413d35..abf5ee26251 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -5146,10 +5146,11 @@ property, in the way that `yank' does." (defun yank (&optional arg) "Reinsert (\"paste\") the last stretch of killed text. -More precisely, reinsert the most recent kill, which is the -stretch of killed text most recently killed OR yanked. Put point -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. +More precisely, reinsert the most recent kill, which is the stretch of +text most recently killed OR yanked, as returned by `current-kill' (which +see). Put point 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. This command honors the `yank-handled-properties' and diff --git a/lisp/startup.el b/lisp/startup.el index 1f545c66922..5af264e3ef7 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -1373,10 +1373,10 @@ please check its value") ((not (eq system-type 'windows-nt)) (concat "~" init-file-user "/.emacs")) ;; Else deal with the Windows situation. - ((directory-files "~" nil "^\\.emacs\\(\\.elc?\\)?$") + ((directory-files "~" nil "\\`\\.emacs\\(\\.elc?\\)?\\'") ;; Prefer .emacs on Windows. "~/.emacs") - ((directory-files "~" nil "^_emacs\\(\\.elc?\\)?$") + ((directory-files "~" nil "\\`_emacs\\(\\.elc?\\)?\\'") ;; Also support _emacs for compatibility, but warn about it. (push `(initialization ,(format-message diff --git a/lisp/textmodes/refer.el b/lisp/textmodes/refer.el index 2865b422732..8d8223a7326 100644 --- a/lisp/textmodes/refer.el +++ b/lisp/textmodes/refer.el @@ -377,7 +377,7 @@ found on the last `refer-find-entry' or `refer-find-next-entry'." dir files) (while (setq dir (car dirs)) (setq files - (append (directory-files dir t "\\.bib$") + (append (directory-files dir t "\\.bib\\'") files)) (setq dirs (cdr dirs))) files)) diff --git a/lisp/url/url-about.el b/lisp/url/url-about.el index 59c233b58cf..5fe817cc0e8 100644 --- a/lisp/url/url-about.el +++ b/lisp/url/url-about.el @@ -37,7 +37,7 @@ (mapc (lambda (f) (if (string-match "url-\\(.*\\).el$" f) (push (match-string 1 f) schemes))) - (directory-files d nil "^url-.*\\.el$"))) + (directory-files d nil "\\`url-.*\\.el\\'"))) load-path) (put 'url-extension-protocols 'schemes schemes) schemes))))) diff --git a/lisp/vc/vc-rcs.el b/lisp/vc/vc-rcs.el index 00796e5d63f..273f37c10d6 100644 --- a/lisp/vc/vc-rcs.el +++ b/lisp/vc/vc-rcs.el @@ -247,7 +247,7 @@ to the RCS command." (setq subdir (expand-file-name "RCS" (file-name-directory file))))) (not (directory-files (file-name-directory file) - nil ".*,v$" t)) + nil ",v\\'" t)) (yes-or-no-p "Create RCS subdirectory? ") (make-directory subdir)) (apply #'vc-do-command "*vc*" 0 "ci" file @@ -312,8 +312,7 @@ whether to remove it." (and (string= (file-name-nondirectory (directory-file-name dir)) "RCS") ;; check whether RCS dir is empty, i.e. it does not ;; contain any files except "." and ".." - (not (directory-files dir nil - "^\\([^.]\\|\\.[^.]\\|\\.\\.[^.]\\).*")) + (not (directory-files dir nil (rx (or (not ".") "...")))) (yes-or-no-p (format "Directory %s is empty; remove it? " dir)) (delete-directory dir))))) diff --git a/src/nsterm.m b/src/nsterm.m index 3ce223307ba..2f181eafd03 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -5837,6 +5837,21 @@ ns_term_shutdown (int sig) #endif #ifdef NS_IMPL_COCOA + /* Some functions/methods in CoreFoundation/Foundation increase the + maximum number of open files for the process in their first call. + We make dummy calls to them and then reduce the resource limit + here, since pselect cannot handle file descriptors that are + greater than or equal to FD_SETSIZE. */ + CFSocketGetTypeID (); + CFFileDescriptorGetTypeID (); + [[NSFileHandle alloc] init]; + struct rlimit rlim; + if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 + && rlim.rlim_cur > FD_SETSIZE) + { + rlim.rlim_cur = FD_SETSIZE; + setrlimit (RLIMIT_NOFILE, &rlim); + } if ([NSApp activationPolicy] == NSApplicationActivationPolicyProhibited) { /* Set the app's activation policy to regular when we run outside of a bundle. This is already done for us by Info.plist when we diff --git a/test/lisp/net/tramp-archive-tests.el b/test/lisp/net/tramp-archive-tests.el index b3fc129ef08..8c75d91bb58 100644 --- a/test/lisp/net/tramp-archive-tests.el +++ b/test/lisp/net/tramp-archive-tests.el @@ -668,7 +668,7 @@ This tests also `access-file', `file-readable-p' and `file-regular-p'." (setq attr (directory-files-and-attributes tmp-name 'full)) (dolist (elt attr) (should (equal (file-attributes (car elt)) (cdr elt)))) - (setq attr (directory-files-and-attributes tmp-name nil "^b")) + (setq attr (directory-files-and-attributes tmp-name nil "\\`b")) (should (equal (mapcar #'car attr) '("bar")))) ;; Cleanup. diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el index 7db9ad42f1b..49668258407 100644 --- a/test/lisp/net/tramp-tests.el +++ b/test/lisp/net/tramp-tests.el @@ -3350,7 +3350,7 @@ They might differ only in time attributes or directory size." (tramp--test-file-attributes-equal-p (file-attributes (car elt)) (cdr elt)))) - (setq attr (directory-files-and-attributes tmp-name2 nil "^b")) + (setq attr (directory-files-and-attributes tmp-name2 nil "\\`b")) (should (equal (mapcar #'car attr) '("bar" "boz")))) ;; Cleanup. |
