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." :group 'erc-buffers :group 'erc-query :type '(choice boolean - (choice :tag "Create pseudo queries for STATUSMSGs" - status))) + (const :tag "Create pseudo queries for STATUSMSGs" status))) (defcustom erc-format-query-as-channel-p t "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'." :modifier-p :maybe) (revert-buffer t t)) -;;;###autoload (autoload 'ibuffer-do-isearch "ibuf-ext") -(define-ibuffer-op ibuffer-do-isearch () +;;;###autoload +(defun ibuffer-do-isearch () "Perform a `isearch-forward' in marked buffers." - (:interactive () - :opstring "searched in" - :complex t - :modifier-p :maybe) + (interactive "" ibuffer-mode) (multi-isearch-buffers (ibuffer-get-marked-buffers))) -;;;###autoload (autoload 'ibuffer-do-isearch-regexp "ibuf-ext") -(define-ibuffer-op ibuffer-do-isearch-regexp () +;;;###autoload +(defun ibuffer-do-isearch-regexp () "Perform a `isearch-forward-regexp' in marked buffers." - (:interactive () - :opstring "searched regexp in" - :complex t - :modifier-p :maybe) + (interactive "" ibuffer-mode) (multi-isearch-buffers-regexp (ibuffer-get-marked-buffers))) ;;;###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'." :language mode :feature 'definition ;; Highlights identifiers in declarations. - `((declaration + `(,@(when (eq mode 'cpp) + '((destructor_name (identifier) @font-lock-function-name-face))) + (declaration declarator: (_) @c-ts-mode--fontify-declarator) (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." (while dlsl (let ((newelt "") tem1 tem2) - (while newelt + (while (and dlsl newelt) ;; We need tem1 because we don't want to prepend ;; `comint-file-name-prefix' repeatedly into newelt via tem2. (setq tem1 (pop dlsl) @@ -1629,10 +1629,14 @@ Returns t if successful." ;; a newline). This is far from fool-proof -- if something ;; outputs incomplete data and then sleeps, we'll think ;; we've received the prompt. - (while (not (let* ((lines (string-lines result)) - (last (car (last lines)))) + (while (not (let* ((lines (string-lines result nil t)) + (last (car (last lines))) + (last-end (if (equal last "") + last + (substring last -1)))) (and (length> lines 0) - (not (equal last "")) + (not (member last '("" "\n"))) + (not (equal last-end "\n")) (or (not prev) (not (equal last prev))) (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) struct image_cache *c = FRAME_IMAGE_CACHE (f); ptrdiff_t i; + /* This function assumes the caller already verified that the frame's + image cache is non-NULL. */ + eassert (c); /* Cache should not be referenced by any frame when freed. */ eassert (c->refcount == 0); 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 value of nil means search to the end of the accessible portion of the buffer. The optional third argument NOERROR indicates how errors are handled - when the search fails. If it is nil or omitted, emit an error; if + when the search fails: if it is nil or omitted, emit an error; if it is t, simply return nil and do nothing; if it is neither nil nor t, move to the limit of search and return nil. 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", { struct frame *f = SELECTED_FRAME (); - if (FIXNUMP (id) && !pfnShell_NotifyIconW) + if (FIXNUMP (id) && pfnShell_NotifyIconW) delete_tray_notification (f, XFIXNUM (id)); 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." (setq test-dir (file-truename test-dir)) (let* ((test-file (concat (file-name-as-directory test-dir) "foo.c")) (replace "bar") - (new-file (string-replace "foo" replace test-file))) + (new-file (string-replace "/foo" (concat "/" replace) test-file))) (write-region "" nil test-file nil 'silent) (let ((buf (find-file-noselect test-dir))) (unwind-protect @@ -141,21 +141,27 @@ wdired-get-filename before and after editing." ;; FIXME: Add a test for a door (indicator ">") only under Solaris? (ert-with-temp-directory test-dir (let* ((dired-listing-switches "-Fl") - (dired-ls-F-marks-symlinks (eq system-type 'darwin)) + (dired-ls-F-marks-symlinks + (or (eq system-type 'darwin) + (featurep 'ls-lisp))) (buf (find-file-noselect test-dir)) proc) (unwind-protect (progn (with-current-buffer buf - (dired-create-empty-file "foo") - (set-file-modes "foo" (file-modes-symbolic-to-number "+x")) + ;; Create a .bat file so that MS-Windows, where the 'x' + ;; bit is not recorded in the filesystem, considers it an + ;; executable. + (dired-create-empty-file "foo.bat") + (set-file-modes "foo.bat" (file-modes-symbolic-to-number "+x")) (skip-unless ;; This check is for wdired, not symbolic links, so skip ;; it when make-symbolic-link fails for any reason (like ;; insufficient privileges). - (ignore-errors (make-symbolic-link "foo" "bar") t)) + (ignore-errors (make-symbolic-link "foo.bat" "bar") t)) (make-directory "foodir") - (dired-smart-shell-command "mkfifo foopipe") + (unless (memq system-type '(windows-nt ms-dos)) + (dired-smart-shell-command "mkfifo foopipe")) (when (featurep 'make-network-process '(:family local)) (setq proc (make-network-process :name "foo"