diff options
| author | Eli Zaretskii | 2024-07-13 08:44:49 -0400 |
|---|---|---|
| committer | Eli Zaretskii | 2024-07-13 08:44:49 -0400 |
| commit | 44ae4868d38acf7d8173be39c052b7fc9a7aaefa (patch) | |
| tree | ad05d0568f40b8c775c0e46f9309e7eea03aba8d | |
| parent | 3a26a51c69b064546fd4647a94cdfc2656b201ec (diff) | |
| parent | a6c78ccf5f297e612ff0f2159a7bed3a70637168 (diff) | |
| download | emacs-44ae4868d38acf7d8173be39c052b7fc9a7aaefa.tar.gz emacs-44ae4868d38acf7d8173be39c052b7fc9a7aaefa.zip | |
Merge from origin/emacs-30
a6c78ccf5f2 ; * src/w32fns.c (Fw32_notification_close): Fix typo (bug...
febafe37884 * test/lisp/wdired-tests.el (wdired-test-bug34915): Fix f...
846b79b6d02 Fix 'wdired-test-unfinished-edit-01'
bc154cba130 ; * src/search.c (Fre_search_forward): Clarify doc string...
53291e3d46e Fontify destructor in c++-ts-mode
d77f8a34750 Fix invalid defcustom type for erc-buffers option
d68a4ea3ec6 ; Fix 'ibuffer-do-isearch{-regexp}'
8b1a0f8695a Fix infloop in 'shell-resync-dirs'
ce13eee5ab7 ; * src/image.c (free_image_cache): Add assertion. (Bug#...
| -rw-r--r-- | lisp/erc/erc.el | 3 | ||||
| -rw-r--r-- | lisp/ibuf-ext.el | 18 | ||||
| -rw-r--r-- | lisp/progmodes/c-ts-mode.el | 4 | ||||
| -rw-r--r-- | lisp/shell.el | 12 | ||||
| -rw-r--r-- | src/image.c | 3 | ||||
| -rw-r--r-- | src/search.c | 2 | ||||
| -rw-r--r-- | src/w32fns.c | 2 | ||||
| -rw-r--r-- | test/lisp/wdired-tests.el | 18 |
8 files changed, 35 insertions, 27 deletions
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index e9a7aef0ba8..118adb803c9 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el | |||
| @@ -6033,8 +6033,7 @@ manner implied above, which was lost sometime before ERC 5.4." | |||
| 6033 | :group 'erc-buffers | 6033 | :group 'erc-buffers |
| 6034 | :group 'erc-query | 6034 | :group 'erc-query |
| 6035 | :type '(choice boolean | 6035 | :type '(choice boolean |
| 6036 | (choice :tag "Create pseudo queries for STATUSMSGs" | 6036 | (const :tag "Create pseudo queries for STATUSMSGs" status))) |
| 6037 | status))) | ||
| 6038 | 6037 | ||
| 6039 | (defcustom erc-format-query-as-channel-p t | 6038 | (defcustom erc-format-query-as-channel-p t |
| 6040 | "If non-nil, format text from others in a query buffer like in a channel. | 6039 | "If non-nil, format text from others in a query buffer like in a channel. |
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el index 95ff014aa5b..33b68b96ff2 100644 --- a/lisp/ibuf-ext.el +++ b/lisp/ibuf-ext.el | |||
| @@ -594,22 +594,16 @@ To evaluate a form without viewing the buffer, see `ibuffer-do-eval'." | |||
| 594 | :modifier-p :maybe) | 594 | :modifier-p :maybe) |
| 595 | (revert-buffer t t)) | 595 | (revert-buffer t t)) |
| 596 | 596 | ||
| 597 | ;;;###autoload (autoload 'ibuffer-do-isearch "ibuf-ext") | 597 | ;;;###autoload |
| 598 | (define-ibuffer-op ibuffer-do-isearch () | 598 | (defun ibuffer-do-isearch () |
| 599 | "Perform a `isearch-forward' in marked buffers." | 599 | "Perform a `isearch-forward' in marked buffers." |
| 600 | (:interactive () | 600 | (interactive "" ibuffer-mode) |
| 601 | :opstring "searched in" | ||
| 602 | :complex t | ||
| 603 | :modifier-p :maybe) | ||
| 604 | (multi-isearch-buffers (ibuffer-get-marked-buffers))) | 601 | (multi-isearch-buffers (ibuffer-get-marked-buffers))) |
| 605 | 602 | ||
| 606 | ;;;###autoload (autoload 'ibuffer-do-isearch-regexp "ibuf-ext") | 603 | ;;;###autoload |
| 607 | (define-ibuffer-op ibuffer-do-isearch-regexp () | 604 | (defun ibuffer-do-isearch-regexp () |
| 608 | "Perform a `isearch-forward-regexp' in marked buffers." | 605 | "Perform a `isearch-forward-regexp' in marked buffers." |
| 609 | (:interactive () | 606 | (interactive "" ibuffer-mode) |
| 610 | :opstring "searched regexp in" | ||
| 611 | :complex t | ||
| 612 | :modifier-p :maybe) | ||
| 613 | (multi-isearch-buffers-regexp (ibuffer-get-marked-buffers))) | 607 | (multi-isearch-buffers-regexp (ibuffer-get-marked-buffers))) |
| 614 | 608 | ||
| 615 | ;;;###autoload (autoload 'ibuffer-do-replace-regexp "ibuf-ext") | 609 | ;;;###autoload (autoload 'ibuffer-do-replace-regexp "ibuf-ext") |
diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el index 31dd49dd00c..abc5f19c849 100644 --- a/lisp/progmodes/c-ts-mode.el +++ b/lisp/progmodes/c-ts-mode.el | |||
| @@ -681,7 +681,9 @@ MODE is either `c' or `cpp'." | |||
| 681 | :language mode | 681 | :language mode |
| 682 | :feature 'definition | 682 | :feature 'definition |
| 683 | ;; Highlights identifiers in declarations. | 683 | ;; Highlights identifiers in declarations. |
| 684 | `((declaration | 684 | `(,@(when (eq mode 'cpp) |
| 685 | '((destructor_name (identifier) @font-lock-function-name-face))) | ||
| 686 | (declaration | ||
| 685 | declarator: (_) @c-ts-mode--fontify-declarator) | 687 | declarator: (_) @c-ts-mode--fontify-declarator) |
| 686 | 688 | ||
| 687 | (field_declaration | 689 | (field_declaration |
diff --git a/lisp/shell.el b/lisp/shell.el index e1936ff1119..4d92fe71df4 100644 --- a/lisp/shell.el +++ b/lisp/shell.el | |||
| @@ -1255,7 +1255,7 @@ line output and parses it to form the new directory stack." | |||
| 1255 | (while dlsl | 1255 | (while dlsl |
| 1256 | (let ((newelt "") | 1256 | (let ((newelt "") |
| 1257 | tem1 tem2) | 1257 | tem1 tem2) |
| 1258 | (while newelt | 1258 | (while (and dlsl newelt) |
| 1259 | ;; We need tem1 because we don't want to prepend | 1259 | ;; We need tem1 because we don't want to prepend |
| 1260 | ;; `comint-file-name-prefix' repeatedly into newelt via tem2. | 1260 | ;; `comint-file-name-prefix' repeatedly into newelt via tem2. |
| 1261 | (setq tem1 (pop dlsl) | 1261 | (setq tem1 (pop dlsl) |
| @@ -1629,10 +1629,14 @@ Returns t if successful." | |||
| 1629 | ;; a newline). This is far from fool-proof -- if something | 1629 | ;; a newline). This is far from fool-proof -- if something |
| 1630 | ;; outputs incomplete data and then sleeps, we'll think | 1630 | ;; outputs incomplete data and then sleeps, we'll think |
| 1631 | ;; we've received the prompt. | 1631 | ;; we've received the prompt. |
| 1632 | (while (not (let* ((lines (string-lines result)) | 1632 | (while (not (let* ((lines (string-lines result nil t)) |
| 1633 | (last (car (last lines)))) | 1633 | (last (car (last lines))) |
| 1634 | (last-end (if (equal last "") | ||
| 1635 | last | ||
| 1636 | (substring last -1)))) | ||
| 1634 | (and (length> lines 0) | 1637 | (and (length> lines 0) |
| 1635 | (not (equal last "")) | 1638 | (not (member last '("" "\n"))) |
| 1639 | (not (equal last-end "\n")) | ||
| 1636 | (or (not prev) | 1640 | (or (not prev) |
| 1637 | (not (equal last prev))) | 1641 | (not (equal last prev))) |
| 1638 | (setq prev last)))) | 1642 | (setq prev last)))) |
diff --git a/src/image.c b/src/image.c index 2ee2f3245be..3d761bd48be 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -2306,6 +2306,9 @@ free_image_cache (struct frame *f) | |||
| 2306 | struct image_cache *c = FRAME_IMAGE_CACHE (f); | 2306 | struct image_cache *c = FRAME_IMAGE_CACHE (f); |
| 2307 | ptrdiff_t i; | 2307 | ptrdiff_t i; |
| 2308 | 2308 | ||
| 2309 | /* This function assumes the caller already verified that the frame's | ||
| 2310 | image cache is non-NULL. */ | ||
| 2311 | eassert (c); | ||
| 2309 | /* Cache should not be referenced by any frame when freed. */ | 2312 | /* Cache should not be referenced by any frame when freed. */ |
| 2310 | eassert (c->refcount == 0); | 2313 | eassert (c->refcount == 0); |
| 2311 | 2314 | ||
diff --git a/src/search.c b/src/search.c index dd813eda913..2ff8b0599c4 100644 --- a/src/search.c +++ b/src/search.c | |||
| @@ -2279,7 +2279,7 @@ The optional second argument BOUND is a buffer position that bounds | |||
| 2279 | value of nil means search to the end of the accessible portion of | 2279 | value of nil means search to the end of the accessible portion of |
| 2280 | the buffer. | 2280 | the buffer. |
| 2281 | The optional third argument NOERROR indicates how errors are handled | 2281 | The optional third argument NOERROR indicates how errors are handled |
| 2282 | when the search fails. If it is nil or omitted, emit an error; if | 2282 | when the search fails: if it is nil or omitted, emit an error; if |
| 2283 | it is t, simply return nil and do nothing; if it is neither nil nor | 2283 | it is t, simply return nil and do nothing; if it is neither nil nor |
| 2284 | t, move to the limit of search and return nil. | 2284 | t, move to the limit of search and return nil. |
| 2285 | The optional fourth argument COUNT is a number that indicates the | 2285 | The optional fourth argument COUNT is a number that indicates the |
diff --git a/src/w32fns.c b/src/w32fns.c index 7fc2f598b3e..e5798fdd84f 100644 --- a/src/w32fns.c +++ b/src/w32fns.c | |||
| @@ -10472,7 +10472,7 @@ DEFUN ("w32-notification-close", | |||
| 10472 | { | 10472 | { |
| 10473 | struct frame *f = SELECTED_FRAME (); | 10473 | struct frame *f = SELECTED_FRAME (); |
| 10474 | 10474 | ||
| 10475 | if (FIXNUMP (id) && !pfnShell_NotifyIconW) | 10475 | if (FIXNUMP (id) && pfnShell_NotifyIconW) |
| 10476 | delete_tray_notification (f, XFIXNUM (id)); | 10476 | delete_tray_notification (f, XFIXNUM (id)); |
| 10477 | 10477 | ||
| 10478 | return Qnil; | 10478 | return Qnil; |
diff --git a/test/lisp/wdired-tests.el b/test/lisp/wdired-tests.el index f7bff743058..7c7026354b8 100644 --- a/test/lisp/wdired-tests.el +++ b/test/lisp/wdired-tests.el | |||
| @@ -114,7 +114,7 @@ wdired-mode." | |||
| 114 | (setq test-dir (file-truename test-dir)) | 114 | (setq test-dir (file-truename test-dir)) |
| 115 | (let* ((test-file (concat (file-name-as-directory test-dir) "foo.c")) | 115 | (let* ((test-file (concat (file-name-as-directory test-dir) "foo.c")) |
| 116 | (replace "bar") | 116 | (replace "bar") |
| 117 | (new-file (string-replace "foo" replace test-file))) | 117 | (new-file (string-replace "/foo" (concat "/" replace) test-file))) |
| 118 | (write-region "" nil test-file nil 'silent) | 118 | (write-region "" nil test-file nil 'silent) |
| 119 | (let ((buf (find-file-noselect test-dir))) | 119 | (let ((buf (find-file-noselect test-dir))) |
| 120 | (unwind-protect | 120 | (unwind-protect |
| @@ -141,21 +141,27 @@ wdired-get-filename before and after editing." | |||
| 141 | ;; FIXME: Add a test for a door (indicator ">") only under Solaris? | 141 | ;; FIXME: Add a test for a door (indicator ">") only under Solaris? |
| 142 | (ert-with-temp-directory test-dir | 142 | (ert-with-temp-directory test-dir |
| 143 | (let* ((dired-listing-switches "-Fl") | 143 | (let* ((dired-listing-switches "-Fl") |
| 144 | (dired-ls-F-marks-symlinks (eq system-type 'darwin)) | 144 | (dired-ls-F-marks-symlinks |
| 145 | (or (eq system-type 'darwin) | ||
| 146 | (featurep 'ls-lisp))) | ||
| 145 | (buf (find-file-noselect test-dir)) | 147 | (buf (find-file-noselect test-dir)) |
| 146 | proc) | 148 | proc) |
| 147 | (unwind-protect | 149 | (unwind-protect |
| 148 | (progn | 150 | (progn |
| 149 | (with-current-buffer buf | 151 | (with-current-buffer buf |
| 150 | (dired-create-empty-file "foo") | 152 | ;; Create a .bat file so that MS-Windows, where the 'x' |
| 151 | (set-file-modes "foo" (file-modes-symbolic-to-number "+x")) | 153 | ;; bit is not recorded in the filesystem, considers it an |
| 154 | ;; executable. | ||
| 155 | (dired-create-empty-file "foo.bat") | ||
| 156 | (set-file-modes "foo.bat" (file-modes-symbolic-to-number "+x")) | ||
| 152 | (skip-unless | 157 | (skip-unless |
| 153 | ;; This check is for wdired, not symbolic links, so skip | 158 | ;; This check is for wdired, not symbolic links, so skip |
| 154 | ;; it when make-symbolic-link fails for any reason (like | 159 | ;; it when make-symbolic-link fails for any reason (like |
| 155 | ;; insufficient privileges). | 160 | ;; insufficient privileges). |
| 156 | (ignore-errors (make-symbolic-link "foo" "bar") t)) | 161 | (ignore-errors (make-symbolic-link "foo.bat" "bar") t)) |
| 157 | (make-directory "foodir") | 162 | (make-directory "foodir") |
| 158 | (dired-smart-shell-command "mkfifo foopipe") | 163 | (unless (memq system-type '(windows-nt ms-dos)) |
| 164 | (dired-smart-shell-command "mkfifo foopipe")) | ||
| 159 | (when (featurep 'make-network-process '(:family local)) | 165 | (when (featurep 'make-network-process '(:family local)) |
| 160 | (setq proc (make-network-process | 166 | (setq proc (make-network-process |
| 161 | :name "foo" | 167 | :name "foo" |