commit 151b202cf0b5ad3dd28941dcf60c20e5e2adab67 (HEAD, refs/remotes/origin/master) Author: Juri Linkov Date: Wed Apr 7 19:47:09 2021 +0300 Don't set isearch-success in isearch-wrap functions * lisp/comint.el (comint-history-isearch-wrap): * lisp/simple.el (minibuffer-history-isearch-wrap): Don't set isearch-success to t, so isearch-repeat won't skip the beginning of the wrapped match with (forward-char (if isearch-forward 1 -1)). diff --git a/lisp/comint.el b/lisp/comint.el index 4f13ff31ac..9cbcfc03fa 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -1627,7 +1627,6 @@ or to the last history element for a backward search." (if isearch-forward (comint-goto-input (1- (ring-length comint-input-ring))) (comint-goto-input nil)) - (setq isearch-success t) (goto-char (if isearch-forward (comint-line-beginning-position) (point-max)))) (defun comint-history-isearch-push-state () diff --git a/lisp/isearch.el b/lisp/isearch.el index a828c569aa..4b4f44bdff 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -1887,8 +1887,6 @@ Use `isearch-exit' to quit without signaling." (setq count (1+ count)) ;; Increment to force repeat (setq isearch-wrapped t) (if isearch-wrap-function - ;; Note that some wrap functions change the value of - ;; isearch-success, so it's handled above before this call. (funcall isearch-wrap-function) (goto-char (if isearch-forward (point-min) (point-max))))))) ;; Stop looping on failure diff --git a/lisp/simple.el b/lisp/simple.el index c48e644345..999755a642 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -2798,7 +2798,6 @@ or to the last history element for a backward search." (if isearch-forward (goto-history-element (length (minibuffer-history-value))) (goto-history-element 0)) - (setq isearch-success t) (goto-char (if isearch-forward (minibuffer-prompt-end) (point-max)))) (defun minibuffer-history-isearch-push-state () commit 67628c9b2bc2b2f3e3fca2bf3e1e7357f38a2dd5 Merge: 70b452e2bc 2f5f30671a Author: Glenn Morris Date: Wed Apr 7 07:50:17 2021 -0700 Merge from origin/emacs-27 2f5f30671a (origin/emacs-27) Fix broken links in autorevert.el 673c02f6d0 * lisp/international/ja-dic-cnv.el (skkdic-convert): Doc fix. commit 70b452e2bc5b3a122dce73ae361224cc29751ed4 Merge: 0bd538f890 e2d199aa44 Author: Glenn Morris Date: Wed Apr 7 07:50:17 2021 -0700 ; Merge from origin/emacs-27 The following commit was skipped: e2d199aa44 Fix crash when using menus and tramp on NS commit 0bd538f8908120c9202bc1d70b66e8b9ea90a0e0 Merge: b66e2a7b66 3ec93bb7c2 Author: Glenn Morris Date: Wed Apr 7 07:50:13 2021 -0700 Merge from origin/emacs-27 3ec93bb7c2 Improve doc strings in replace.el commit b66e2a7b66711be35cd9cb5e5a9d1021cef32c4a Author: Stefan Kangas Date: Wed Apr 7 14:30:54 2021 +0200 Clarify obsoletion messages for easy-menu-{add,remove} * lisp/emacs-lisp/easymenu.el (easy-menu-remove, easy-menu-add): Clarify obsoletion messages. diff --git a/lisp/emacs-lisp/easymenu.el b/lisp/emacs-lisp/easymenu.el index 87b34e7cd5..f6661541a1 100644 --- a/lisp/emacs-lisp/easymenu.el +++ b/lisp/emacs-lisp/easymenu.el @@ -494,14 +494,16 @@ To implement dynamic menus, either call this from `menu-bar-update-hook' or use a menu filter." (easy-menu-add-item map path (easy-menu-create-menu name items) before)) -(define-obsolete-function-alias 'easy-menu-remove #'ignore "28.1" +(defalias 'easy-menu-remove #'ignore "Remove MENU from the current menu bar. Contrary to XEmacs, this is a nop on Emacs since menus are automatically \(de)activated when the corresponding keymap is (de)activated. \(fn MENU)") +(make-obsolete 'easy-menu-remove "this was always a no-op in Emacs \ +and can be safely removed." "28.1") -(define-obsolete-function-alias 'easy-menu-add #'ignore "28.1" +(defalias 'easy-menu-add #'ignore "Add the menu to the menubar. On Emacs this is a nop, because menus are already automatically activated when the corresponding keymap is activated. On XEmacs @@ -511,6 +513,8 @@ You should call this once the menu and keybindings are set up completely and menu filter functions can be expected to work. \(fn MENU &optional MAP)") +(make-obsolete 'easy-menu-add "this was always a no-op in Emacs \ +and can be safely removed." "28.1") (defun add-submenu (menu-path submenu &optional before in-menu) "Add submenu SUBMENU in the menu at MENU-PATH. commit 5d456136169468e78c877ead2a3e279d9ebc7e4c Author: Stefan Kangas Date: Wed Apr 7 13:35:59 2021 +0200 Update whois-server-tld * lisp/net/net-utils.el (whois-server-tld): Update and add some missing entries. diff --git a/lisp/net/net-utils.el b/lisp/net/net-utils.el index 3a561a0ea5..24f2aba8b8 100644 --- a/lisp/net/net-utils.el +++ b/lisp/net/net-utils.el @@ -857,9 +857,14 @@ and `network-connection-service-alist', which see." ;; FIXME: modern whois clients include a much better tld <-> whois server ;; list, Emacs should probably avoid specifying the server as the client ;; will DTRT anyway... -rfr +;; I'm not sure about the above FIXME. It seems to me that we should +;; just check the Root Zone Database maintained at: +;; https://www.iana.org/domains/root/db +;; For example: whois -h whois.iana.org .se | grep whois (defcustom whois-server-tld - '(("rs.internic.net" . "com") - ("whois.publicinterestregistry.net" . "org") + '(("whois.verisign-grs.com" . "com") + ("whois.verisign-grs.com" . "net") + ("whois.pir.org" . "org") ("whois.ripe.net" . "be") ("whois.ripe.net" . "de") ("whois.ripe.net" . "dk") @@ -867,10 +872,13 @@ and `network-connection-service-alist', which see." ("whois.ripe.net" . "fi") ("whois.ripe.net" . "fr") ("whois.ripe.net" . "uk") + ("whois.iis.se" . "se") + ("whois.iis.nu" . "nu") ("whois.apnic.net" . "au") ("whois.apnic.net" . "ch") ("whois.apnic.net" . "hk") ("whois.apnic.net" . "jp") + ("whois.eu" . "eu") ("whois.nic.gov" . "gov") ("whois.nic.mil" . "mil")) "Alist to map top level domains to whois servers." commit 55f0576ebd4601fbf8e5e7ba9ab14e00fa2821b0 Author: Mattias EngdegÄrd Date: Wed Apr 7 13:11:43 2021 +0200 Fix mistakes in bytecomp-tests * test/lisp/emacs-lisp/bytecomp-tests.el (byte-opt-testsuite-arith-data): Fix typos and avoid errors that made the tests less powerful than intended. diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el b/test/lisp/emacs-lisp/bytecomp-tests.el index 5147cd2688..0f7a0ccc85 100644 --- a/test/lisp/emacs-lisp/bytecomp-tests.el +++ b/test/lisp/emacs-lisp/bytecomp-tests.el @@ -364,17 +364,17 @@ '((a c) (b c) (7 c) (-3 c) (nil nil) (t c) (q c) (r c) (s c) (t c) (x "a") (x "c") (x c) (x d) (x e))) - (mapcar (lambda (x) (cond ((member '(a . b) x) 1) - ((equal x '(c)) 2))) + (mapcar (lambda (x) (ignore-errors (cond ((member '(a . b) x) 1) + ((equal x '(c)) 2)))) '(((a . b)) a b (c) (d))) - (mapcar (lambda (x) (cond ((memq '(a . b) x) 1) - ((equal x '(c)) 2))) + (mapcar (lambda (x) (ignore-errors (cond ((memq '(a . b) x) 1) + ((equal x '(c)) 2)))) '(((a . b)) a b (c) (d))) - (mapcar (lambda (x) (cond ((member '(a b) x) 1) - ((equal x '(c)) 2))) + (mapcar (lambda (x) (ignore-errors (cond ((member '(a b) x) 1) + ((equal x '(c)) 2)))) '(((a b)) a b (c) (d))) - (mapcar (lambda (x) (cond ((memq '(a b) x) 1) - ((equal x '(c)) 2))) + (mapcar (lambda (x) (ignore-errors (cond ((memq '(a b) x) 1) + ((equal x '(c)) 2)))) '(((a b)) a b (c) (d))) (assoc 'b '((a 1) (b 2) (c 3))) @@ -396,7 +396,7 @@ x) (let ((x 1) (bytecomp-test-var 2) (y 3)) - (list x bytecomp-test-var (bytecomp-get-test-var) y)) + (list x bytecomp-test-var (bytecomp-test-get-var) y)) (progn (defvar d) @@ -430,7 +430,7 @@ (list s x i)) (let ((x 2)) - (list (or (bytecomp-identity 'a) (setq x 3)) x))) + (list (or (bytecomp-test-identity 'a) (setq x 3)) x))) "List of expression for test. Each element will be executed by interpreter and with bytecompiled code, and their results compared.") commit 2f5f30671a122aeed0a78dbee8f541dda5a6d4c2 (refs/remotes/origin/emacs-27) Author: Damien Cassou Date: Tue Apr 6 19:31:56 2021 +0200 Fix broken links in autorevert.el * lisp/autorevert.el (global-auto-revert-non-file-buffers): Fix broken links. (Bug#47621) diff --git a/lisp/autorevert.el b/lisp/autorevert.el index c857d2c957..3fe7a00cf2 100644 --- a/lisp/autorevert.el +++ b/lisp/autorevert.el @@ -227,10 +227,10 @@ modes, etc., of files. You may still sometimes want to revert them manually. Use this option with care since it could lead to excessive auto-reverts. -For more information, see Info node `(emacs)Autorevert'." +For more information, see Info node `(emacs)Auto Revert'." :group 'auto-revert :type 'boolean - :link '(info-link "(emacs)Autorevert")) + :link '(info-link "(emacs)Auto Revert")) (defcustom global-auto-revert-ignore-modes () "List of major modes Global Auto-Revert Mode should not check." commit 673c02f6d0228337ba320e429111538e1d30fea3 Author: Glenn Morris Date: Mon Apr 5 08:49:07 2021 -0700 * lisp/international/ja-dic-cnv.el (skkdic-convert): Doc fix. diff --git a/lisp/international/ja-dic-cnv.el b/lisp/international/ja-dic-cnv.el index 8e5dccd0de..a5082f630c 100644 --- a/lisp/international/ja-dic-cnv.el +++ b/lisp/international/ja-dic-cnv.el @@ -323,11 +323,9 @@ (insert ")\n\n"))) (defun skkdic-convert (filename &optional dirname) - "Generate Emacs Lisp file form Japanese dictionary file FILENAME. + "Generate Emacs Lisp file from Japanese dictionary file FILENAME. The format of the dictionary file should be the same as SKK dictionaries. -Optional argument DIRNAME if specified is the directory name under which -the generated Emacs Lisp is saved. -The name of generated file is specified by the variable `ja-dic-filename'." +Saves the output as `ja-dic-filename', in directory DIRNAME (if specified)." (interactive "FSKK dictionary file: ") (let* ((coding-system-for-read 'euc-japan) (skkbuf (get-buffer-create " *skkdic-unannotated*")) commit e2d199aa44a92e50f480e0aa265f96a144d57a60 Author: Alan Third Date: Sat Jan 2 22:27:53 2021 +0000 Fix crash when using menus and tramp on NS ; Fixes bug#24472, bug#37557 and bug#37922. * src/nsterm.m (ns_select): Don't drain outerpool in this function. (cherry picked from commit f14869cd70e61b1908ec88a5e3d4bf21c7d538a0) diff --git a/src/nsterm.m b/src/nsterm.m index b8658a05da..26cc948614 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -4633,8 +4633,22 @@ in certain situations (rapid incoming events). thread_select(pselect, 0, NULL, NULL, NULL, &t, sigmask); } - [outerpool release]; - outerpool = [[NSAutoreleasePool alloc] init]; + /* FIXME: This draining of outerpool causes a crash when a buffer + running over tramp is displayed and the user tries to use the + menus. I believe some other autorelease pool's lifetime + straddles this call causing a violation of autorelease pool + nesting. There's no good reason to keep these here since the + pool will be drained some other time anyway, but removing them + leaves the menus sometimes not opening until the user moves their + mouse pointer, but that's better than a crash. + + There must be something about running external processes like + tramp that interferes with the modal menu code. + + See bugs 24472, 37557, 37922. */ + + // [outerpool release]; + // outerpool = [[NSAutoreleasePool alloc] init]; send_appdefined = YES; commit 3ec93bb7c240edd6e06647a75df31acc6ce600dd Author: Eli Zaretskii Date: Sat Apr 3 10:16:34 2021 +0300 Improve doc strings in replace.el * lisp/replace.el (occur, list-matching-lines-prefix-face) (list-matching-lines-jump-to-current-line): Doc fixes. diff --git a/lisp/replace.el b/lisp/replace.el index 416d9f1d1e..43534d23bb 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -1386,15 +1386,22 @@ If the value is nil, don't highlight the buffer names specially." (defcustom list-matching-lines-jump-to-current-line nil "If non-nil, \\[list-matching-lines] shows the current line highlighted. -Set the point right after such line when there are matches after it." +The current line for this purpose is the line of the original buffer +which was current when \\[list-matching-lines] was invoked. +Point in the `*Occur*' buffer will be set right after such line when +there are matches after it." :type 'boolean :group 'matching :version "26.1") (defcustom list-matching-lines-prefix-face 'shadow "Face used by \\[list-matching-lines] to show the prefix column. -If the face doesn't differ from the default face, -don't highlight the prefix with line numbers specially." +The prefix column is the part of display that precedes the actual +contents of the line; it normally shows the line number. \(For +multiline matches, the prefix column shows the line number for the +first line and whitespace for the rest of the lines.\) +If this face will display the same as the default face, the prefix +column will not be highlighted speciall." :type 'face :group 'matching :version "24.4") @@ -1471,11 +1478,24 @@ REGION must be a list of (START . END) positions as returned by `region-bounds'. The lines are shown in a buffer named `*Occur*'. -It serves as a menu to find any of the occurrences in this buffer. +That buffer can serve as a menu for finding any of the matches for REGEXP +in the current buffer. \\\\[describe-mode] in that buffer will explain how. -If `list-matching-lines-jump-to-current-line' is non-nil, then show -the current line highlighted with `list-matching-lines-current-line-face' -and set point at the first match after such line. + +Matches for REGEXP are shown in the face determined by the +variable `list-matching-lines-face'. +Names of buffers with matched lines are shown in the face determined +by the variable `list-matching-lines-buffer-name-face'. +The line numbers of the matching lines are shown in the face +determined by the variable `list-matching-lines-prefix-face'. + +If `list-matching-lines-jump-to-current-line' is non-nil, then the +line in the current buffer which was current when the command was +invoked will be shown in the `*Occur*' buffer highlighted with +the `list-matching-lines-current-line-face', with point at the end +of that line. (If the current line doesn't match REGEXP, it will +nonetheless be inserted into the `*Occur*' buffer between the 2 +closest lines that do match REGEXP.) If REGEXP contains upper case characters (excluding those preceded by `\\') and `search-upper-case' is non-nil, the matching is case-sensitive.