From 9348c19b8250cd885a0bac8b2e97b93127ac8e61 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 9 Mar 2026 10:34:05 -0400 Subject: [PATCH] Use single-arg form of `signal` to re-throw an error * lisp/vc/smerge-mode.el (smerge-extend): * lisp/vc/diff-mode.el (diff-beginning-of-file-and-junk): * lisp/transient.el (transient--with-emergency-exit): * lisp/textmodes/tex-mode.el (latex-forward-sexp): * lisp/tar-mode.el (tar-mode): * lisp/savehist.el (savehist--reload): * lisp/progmodes/octave.el (inferior-octave-resync-dirs): * lisp/progmodes/js.el (js--re-search-forward): * lisp/plstore.el (plstore--decrypt): * lisp/net/dbus.el (dbus-ignore-errors, dbus-register-signal) (dbus-handle-event): * lisp/mouse.el (mouse-drag-track, mouse-drag-region-rectangle): * lisp/minibuffer.el (completion-pcm--find-all-completions): * lisp/mail/rfc2231.el (rfc2231-parse-string): * lisp/mail/rfc2047.el (rfc2047-encode-region): * lisp/jit-lock.el (jit-lock-fontify-now): * lisp/international/ja-dic-utl.el (skkdic-lookup-key): * lisp/gnus/nnselect.el (nnselect-generate-artlist): * lisp/gnus/mml-sec.el (mml-secure-epg-encrypt, mml-secure-epg-sign): * lisp/gnus/mail-source.el (mail-source-fetch-pop) (mail-source-check-pop): * lisp/gnus/gnus-art.el (gnus-article-read-summary-keys): * lisp/files.el (basic-save-buffer-2, files--ensure-directory) (files--force, copy-directory): * lisp/eshell/esh-io.el (eshell-output-object-to-target): * lisp/epa.el (epa-decrypt-file, epa-verify-file, epa-sign-file) (epa-encrypt-file, epa-decrypt-region, epa-verify-region) (epa-sign-region, epa-encrypt-region, epa-delete-keys) (epa-export-keys, epa-insert-keys): * lisp/emacs-lisp/package.el (package--unless-error): * lisp/emacs-lisp/multisession.el (multisession--read-file-value): * lisp/emacs-lisp/lisp.el (up-list-default-function): * lisp/desktop.el (desktop-kill): * lisp/calendar/time-date.el (date-to-time): * lisp/calendar/appt.el (appt-display-message): * lisp/calc/calc.el (calc-do): * lisp/bookmark.el (bookmark-handle-bookmark): * src/fileio.c (report_file_errno): * lisp/vc/vc.el (vc-checkout, vc-pull): Use `(signal err)` instead of `(signal (car err) (cdr err))`. --- lisp/bookmark.el | 2 +- lisp/calc/calc.el | 2 +- lisp/calendar/appt.el | 2 +- lisp/calendar/time-date.el | 2 +- lisp/desktop.el | 2 +- lisp/emacs-lisp/lisp.el | 2 +- lisp/emacs-lisp/multisession.el | 2 +- lisp/emacs-lisp/package.el | 3 +-- lisp/epa.el | 22 +++++++++++----------- lisp/eshell/esh-io.el | 2 +- lisp/files.el | 8 ++++---- lisp/gnus/gnus-art.el | 2 +- lisp/gnus/mail-source.el | 4 ++-- lisp/gnus/mml-sec.el | 4 ++-- lisp/gnus/nnselect.el | 3 +-- lisp/international/ja-dic-utl.el | 2 +- lisp/jit-lock.el | 2 +- lisp/mail/rfc2047.el | 2 +- lisp/mail/rfc2231.el | 2 +- lisp/minibuffer.el | 2 +- lisp/mouse.el | 4 ++-- lisp/net/dbus.el | 6 +++--- lisp/plstore.el | 2 +- lisp/progmodes/js.el | 2 +- lisp/progmodes/octave.el | 2 +- lisp/savehist.el | 2 +- lisp/tar-mode.el | 2 +- lisp/textmodes/tex-mode.el | 2 +- lisp/transient.el | 2 +- lisp/vc/diff-mode.el | 2 +- lisp/vc/smerge-mode.el | 2 +- lisp/vc/vc.el | 4 ++-- src/fileio.c | 3 +-- 33 files changed, 52 insertions(+), 55 deletions(-) diff --git a/lisp/bookmark.el b/lisp/bookmark.el index c75a8d33da3..1113144f87a 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el @@ -1381,7 +1381,7 @@ then offer interactively to relocate BOOKMARK-NAME-OR-RECORD." (message "Bookmark not relocated; consider removing it (%s)." bookmark-name-or-record) - (signal (car err) (cdr err)))))))))) + (signal err))))))))) ;; Added by db. (when (stringp bookmark-name-or-record) (setq bookmark-current-bookmark bookmark-name-or-record)) diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el index 6a23f860123..98bf1e4c2a4 100644 --- a/lisp/calc/calc.el +++ b/lisp/calc/calc.el @@ -1688,7 +1688,7 @@ See calc-keypad for details." (error (substitute-command-keys "Computation got stuck or ran too long. Type \\`M' to increase the limit")) (setq calc-aborted-prefix nil) - (signal (car err) (cdr err))))) + (signal err)))) (when calc-aborted-prefix (calc-record "" calc-aborted-prefix)) (and calc-start-time diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el index df8e28319e5..f12a51c3dc9 100644 --- a/lisp/calendar/appt.el +++ b/lisp/calendar/appt.el @@ -232,7 +232,7 @@ also calls `beep' for an audible reminder." time string) (wrong-type-argument (if (not (listp mins)) - (signal (car err) (cdr err)) + (signal err) (message "Argtype error in `appt-disp-window-function' - \ update it for multiple appts?") ;; Fallback to just displaying the first appt, as we used to. diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el index bd1e7a88f16..83764074eec 100644 --- a/lisp/calendar/time-date.el +++ b/lisp/calendar/time-date.el @@ -161,7 +161,7 @@ If DATE lacks time zone information, local time is assumed." (encode-time parsed)) (error (if (equal err '(error "Specified time is not representable")) - (signal (car err) (cdr err)) + (signal err) (error "Invalid date: %s" date))))) ;;;###autoload diff --git a/lisp/desktop.el b/lisp/desktop.el index df98079b1c2..f478cf2307b 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el @@ -812,7 +812,7 @@ is nil, ask the user where to save the desktop." (desktop-save desktop-dirname t) (file-error (unless (yes-or-no-p "Error while saving the desktop. Ignore? ") - (signal (car err) (cdr err)))))) + (signal err))))) (desktop--on-kill) t) diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index 5cbd4213028..936d5f91a06 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el @@ -331,7 +331,7 @@ On error, location of point is unspecified." (if no-syntax-crossing ;; Assume called interactively; don't signal an error. (user-error "At top level") - (signal (car err) (cdr err))))))) + (signal err)))))) (setq arg (- arg inc))))) (defun kill-sexp (&optional arg interactive) diff --git a/lisp/emacs-lisp/multisession.el b/lisp/emacs-lisp/multisession.el index f3cc4b73338..8df3d9e4b22 100644 --- a/lisp/emacs-lisp/multisession.el +++ b/lisp/emacs-lisp/multisession.el @@ -295,7 +295,7 @@ DOC should be a doc string, and ARGS are keywords as applicable to (setq i (1+ i) last-error err) (sleep-for (+ 0.1 (/ (float (random 10)) 10)))))) - (signal (car last-error) (cdr last-error))))) + (signal last-error)))) (defun multisession--object-file-name (object) (expand-file-name diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index c30f7758df4..706614e9df1 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -1219,8 +1219,7 @@ errors signaled by ERROR-FORM or by BODY). (when (condition-case ,err (progn ,@before-body t) (error (funcall error-function) - (unless noerror - (signal (car ,err) (cdr ,err))))) + (unless noerror (signal ,err)))) (funcall ,body))))) (cl-defun package--with-response-buffer-1 (url body &key async file error-function noerror &allow-other-keys) diff --git a/lisp/epa.el b/lisp/epa.el index 8d3315891b4..09208a0a3cc 100644 --- a/lisp/epa.el +++ b/lisp/epa.el @@ -702,7 +702,7 @@ If you do not specify PLAIN-FILE, this functions prompts for the value to use." (epg-decrypt-file context decrypt-file plain-file) (error (epa-display-error context) - (signal (car error) (cdr error)))) + (signal error))) (message "Decrypting %s...wrote %s" (file-name-nondirectory decrypt-file) (file-name-nondirectory plain-file)) (if (epg-context-result-for context 'verify) @@ -727,7 +727,7 @@ If you do not specify PLAIN-FILE, this functions prompts for the value to use." (epg-verify-file context file plain) (error (epa-display-error context) - (signal (car error) (cdr error)))) + (signal error))) (message "Verifying %s...done" (file-name-nondirectory file)) (if (epg-context-result-for context 'verify) (epa-display-info (epg-verify-result-to-string @@ -798,7 +798,7 @@ If no one is selected, default secret key is used. " (epg-sign-file context file signature mode) (error (epa-display-error context) - (signal (car error) (cdr error)))) + (signal error))) (message "Signing %s...wrote %s" (file-name-nondirectory file) (file-name-nondirectory signature)))) @@ -828,7 +828,7 @@ If no one is selected, symmetric encryption will be performed. "))) (epg-encrypt-file context file recipients cipher) (error (epa-display-error context) - (signal (car error) (cdr error)))) + (signal error))) (message "Encrypting %s...wrote %s" (file-name-nondirectory file) (file-name-nondirectory cipher)))) @@ -870,7 +870,7 @@ For example: (setq plain (epg-decrypt-string context (buffer-substring start end))) (error (epa-display-error context) - (signal (car error) (cdr error)))) + (signal error))) (message "Decrypting...done") (setq plain (decode-coding-string plain @@ -969,7 +969,7 @@ For example: (get-text-property start 'epa-coding-system-used))))) (error (epa-display-error context) - (signal (car error) (cdr error)))) + (signal error))) (message "Verifying...done") (setq plain (decode-coding-string plain @@ -1077,7 +1077,7 @@ If no one is selected, default secret key is used. " mode)) (error (epa-display-error context) - (signal (car error) (cdr error)))) + (signal error))) (message "Signing...done") (delete-region start end) (goto-char start) @@ -1155,7 +1155,7 @@ If no one is selected, symmetric encryption will be performed. ") sign)) (error (epa-display-error context) - (signal (car error) (cdr error)))) + (signal error))) (message "Encrypting...done") (delete-region start end) (goto-char start) @@ -1185,7 +1185,7 @@ If no one is selected, symmetric encryption will be performed. ") (epg-delete-keys context keys allow-secret) (error (epa-display-error context) - (signal (car error) (cdr error)))) + (signal error))) (message "Deleting...done") (apply #'epa--list-keys epa-list-keys-arguments))) @@ -1273,7 +1273,7 @@ If no one is selected, symmetric encryption will be performed. ") (epg-export-keys-to-file context keys file) (error (epa-display-error context) - (signal (car error) (cdr error)))) + (signal error))) (message "Exporting to %s...done" (file-name-nondirectory file)))) ;;;###autoload @@ -1290,7 +1290,7 @@ If no one is selected, default public key is exported. "))) (insert (epg-export-keys-to-string context keys)) (error (epa-display-error context) - (signal (car error) (cdr error)))))) + (signal error))))) (provide 'epa) diff --git a/lisp/eshell/esh-io.el b/lisp/eshell/esh-io.el index 7c0b878e3cf..ea7dbb2e122 100644 --- a/lisp/eshell/esh-io.el +++ b/lisp/eshell/esh-io.el @@ -751,7 +751,7 @@ Returns what was actually sent, or nil if nothing was sent.") ;; here. Maybe `process-send-string' should handle SIGPIPE even ;; in batch mode (bug#66186). (if (process-live-p target) - (signal (car err) (cdr err)) + (signal err) (signal 'eshell-pipe-broken (list target))))) object) diff --git a/lisp/files.el b/lisp/files.el index edbeb43e9b9..54d21a8a5be 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -6276,7 +6276,7 @@ Before and after saving the buffer, this function runs (when save-silently (message nil))) ;; If we failed, restore the buffer's modtime. (error (set-visited-file-modtime old-modtime) - (signal (car err) (cdr err)))) + (signal err))) ;; Since we have created an entirely new file, ;; make sure it gets the right permission bits set. (setq setmodes @@ -6680,7 +6680,7 @@ Return non-nil if DIR is already a directory." (make-directory-internal dir) (error (or (file-directory-p dir) - (signal (car err) (cdr err)))))) + (signal err))))) (defun make-directory (dir &optional parents) "Create the directory DIR and optionally any nonexistent parent dirs. @@ -6753,7 +6753,7 @@ This acts like (apply FN ARGS) except it returns NO-SUCH if it is non-nil and if FN fails due to a missing file or directory." (condition-case err (apply fn args) - (file-missing (or no-such (signal (car err) (cdr err)))))) + (file-missing (or no-such (signal err))))) (defun delete-file (filename &optional trash) "Delete file named FILENAME. If it is a symlink, remove the symlink. @@ -6994,7 +6994,7 @@ into NEWNAME instead." (make-directory (directory-file-name newname) parents) (error (or (file-directory-p newname) - (signal (car err) (cdr err))))))) + (signal err)))))) ;; Copy recursively. (dolist (file diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 56473f81f06..301dec87cf7 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -6946,7 +6946,7 @@ not have a face in `gnus-article-boring-faces'." (set-window-hscroll win new-sum-hscroll)))) (set-window-configuration owin) (if err - (signal (car err) (cdr err)) + (signal err) (ding)))))))) (defun gnus-article-read-summary-send-keys () diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el index bc1c7272283..a1e954d5367 100644 --- a/lisp/gnus/mail-source.el +++ b/lisp/gnus/mail-source.el @@ -831,7 +831,7 @@ Deleting old (> %s day(s)) incoming mail file `%s'." diff bfile) (setq mail-source-password-cache (delq (assoc from mail-source-password-cache) mail-source-password-cache)) - (signal (car err) (cdr err))))))))) + (signal err)))))))) (if result (progn (when (eq authentication 'password) @@ -896,7 +896,7 @@ Deleting old (> %s day(s)) incoming mail file `%s'." diff bfile) (setq mail-source-password-cache (delq (assoc from mail-source-password-cache) mail-source-password-cache)) - (signal (car err) (cdr err))))))))) + (signal err)))))))) (if result ;; Inform display-time that we have new mail. (setq mail-source-new-mail-available (> result 0)) diff --git a/lisp/gnus/mml-sec.el b/lisp/gnus/mml-sec.el index 700a99fe5d8..85b7d3a879c 100644 --- a/lisp/gnus/mml-sec.el +++ b/lisp/gnus/mml-sec.el @@ -939,7 +939,7 @@ If no one is selected, symmetric encryption will be performed. " mml-secure-secret-key-id-list nil) (error (mml-secure-clear-secret-key-id-list) - (signal (car error) (cdr error)))) + (signal error))) cipher)) (defun mml-secure-sender-sign-query (protocol sender) @@ -1029,7 +1029,7 @@ Returns non-nil if the user has chosen to use SENDER." mml-secure-secret-key-id-list nil) (error (mml-secure-clear-secret-key-id-list) - (signal (car error) (cdr error)))) + (signal error))) (if (epg-context-result-for context 'sign) (setq micalg (epg-new-signature-digest-algorithm (car (epg-context-result-for context 'sign))))) diff --git a/lisp/gnus/nnselect.el b/lisp/gnus/nnselect.el index b90a6c8b235..71bac870aca 100644 --- a/lisp/gnus/nnselect.el +++ b/lisp/gnus/nnselect.el @@ -346,8 +346,7 @@ group info." gnus-newsgroup-selection)) ;; Don't swallow gnus-search errors; the user should be made ;; aware of them. - (gnus-search-error - (signal (car err) (cdr err))) + (gnus-search-error (signal err)) (error (gnus-error 3 diff --git a/lisp/international/ja-dic-utl.el b/lisp/international/ja-dic-utl.el index 3f6500669a4..66e402c12db 100644 --- a/lisp/international/ja-dic-utl.el +++ b/lisp/international/ja-dic-utl.el @@ -115,7 +115,7 @@ The library `ja-dic' can't be loaded. This might indicate a problem with your Emacs installation, as LEIM (Libraries of Emacs Input Method) should normally always be installed together with Emacs."))) - (signal (car err) (cdr err))))) + (signal err)))) (let ((vec (make-vector len 0)) (i 0) diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el index d78c1d03deb..ac692340e74 100644 --- a/lisp/jit-lock.el +++ b/lisp/jit-lock.el @@ -449,7 +449,7 @@ Defaults to the whole buffer. END can be out of bounds." ;; on-the-fly jit-locking), make sure the fontification ;; will be performed before displaying the block again. (quit (put-text-property start next 'fontified nil) - (signal (car err) (cdr err)))))) + (signal err))))) ;; In case we fontified more than requested, take ;; advantage of the good news. diff --git a/lisp/mail/rfc2047.el b/lisp/mail/rfc2047.el index a48b876443b..3961c2a1e25 100644 --- a/lisp/mail/rfc2047.el +++ b/lisp/mail/rfc2047.el @@ -543,7 +543,7 @@ Dynamically bind `rfc2047-encoding-type' to change that." (setq last-encoded nil))))) (error (if (or debug-on-quit debug-on-error) - (signal (car err) (cdr err)) + (signal err) (error "Invalid data for rfc2047 encoding: %s" (replace-regexp-in-string "[ \t\n]+" " " orig-text)))))))) (unless dont-fold diff --git a/lisp/mail/rfc2231.el b/lisp/mail/rfc2231.el index d096176a9b1..70f73018674 100644 --- a/lisp/mail/rfc2231.el +++ b/lisp/mail/rfc2231.el @@ -176,7 +176,7 @@ must never cause a Lisp error." (error (setq parameters nil) (when signal-error - (signal (car err) (cdr err))))) + (signal err)))) ;; Now collect and concatenate continuation parameters. (let ((cparams nil) diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 1ac83134dbe..13d0e712821 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -4634,7 +4634,7 @@ filter out additional entries (because TABLE might not obey PRED)." (if between (list between)) pattern)) (setq prefix subprefix))) (if (and (null all) firsterror) - (signal (car firsterror) (cdr firsterror)) + (signal firsterror) (list pattern all prefix suffix))))) (defun completion-pcm-all-completions (string table pred point) diff --git a/lisp/mouse.el b/lisp/mouse.el index a6d553b60a1..24fe57cdc50 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -2025,7 +2025,7 @@ The region will be defined with mark and point." (pop-mark))))) ;; Cleanup on errors (error (funcall cleanup) - (signal (car err) (cdr err)))))) + (signal err))))) (defun mouse--drag-set-mark-and-point (start click click-count) (let* ((range (mouse-start-end start click click-count)) @@ -2790,7 +2790,7 @@ This must be bound to a button-down mouse event." ;; Clean up in case something went wrong. (error (setq track-mouse old-track-mouse) (setq mouse-fine-grained-tracking old-mouse-fine-grained-tracking) - (signal (car err) (cdr err)))))) + (signal err))))) ;; The drag event must be bound to something but does not need any effect, ;; as everything takes place in `mouse-drag-region-rectangle'. diff --git a/lisp/net/dbus.el b/lisp/net/dbus.el index 7c92980e5a9..0c748e76fcf 100644 --- a/lisp/net/dbus.el +++ b/lisp/net/dbus.el @@ -245,7 +245,7 @@ Otherwise, return result of last form in BODY, or all other errors." (declare (indent 0) (debug t)) `(condition-case err (progn ,@body) - (dbus-error (when dbus-debug (signal (car err) (cdr err)))))) + (dbus-error (when dbus-debug (signal err))))) (defvar dbus-event-error-functions '(dbus-notice-synchronous-call-errors @@ -878,7 +878,7 @@ Example: "AddMatch" rule) (dbus-error (if (not (string-match-p "eavesdrop" rule)) - (signal (car err) (cdr err)) + (signal err) ;; The D-Bus spec says we shall fall back to a rule without eavesdrop. (when dbus-debug (message "Removing eavesdrop from rule %s" rule)) (setq rule (replace-regexp-in-string ",eavesdrop='true'" "" rule t t)) @@ -1234,7 +1234,7 @@ If the HANDLER returns a `dbus-error', it is propagated as return message." ;; Propagate D-Bus error messages. (run-hook-with-args 'dbus-event-error-functions event err) (when dbus-debug - (signal (car err) (cdr err)))))) + (signal err))))) (defun dbus-event-bus-name (event) "Return the bus name the event is coming from. diff --git a/lisp/plstore.el b/lisp/plstore.el index 08c9f5a423e..0964e6ccaf6 100644 --- a/lisp/plstore.el +++ b/lisp/plstore.el @@ -432,7 +432,7 @@ accordingly." plstore-passphrase-alist))) (if entry (setcdr entry nil))) - (signal (car error) (cdr error)))) + (signal error))) (plstore--set-secret-alist plstore (car (read-from-string plain))) (plstore--merge-secret plstore) (plstore--set-encrypted-data plstore nil)))) diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index 44c54a60757..a5e1d8ac023 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el @@ -849,7 +849,7 @@ macro as normal text." (search-failed (goto-char saved-point) (unless noerror - (signal (car err) (cdr err))))))) + (signal err)))))) (defun js--re-search-backward-inner (regexp &optional bound count) diff --git a/lisp/progmodes/octave.el b/lisp/progmodes/octave.el index d5e1dc39790..18800e29aa5 100644 --- a/lisp/progmodes/octave.el +++ b/lisp/progmodes/octave.el @@ -995,7 +995,7 @@ directory and makes this the current buffer's default directory." (progn (cd (car inferior-octave-output-list)) t) - (error (unless noerror (signal (car err) (cdr err)))))) + (error (unless noerror (signal err))))) (defcustom inferior-octave-minimal-columns 80 "The minimal column width for the inferior Octave process." diff --git a/lisp/savehist.el b/lisp/savehist.el index 03f0889ef58..8f46adbeb95 100644 --- a/lisp/savehist.el +++ b/lisp/savehist.el @@ -235,7 +235,7 @@ Be careful to do it while preserving the current history data." ;; effectively destroy the user's data at the next save. (setq savehist-mode nil) (savehist-uninstall) - (signal (car errvar) (cdr errvar)))) + (signal errvar))) ;; In case we're loading the file late, there was info in the history ;; variables that may have been overwritten by the info extracted from diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el index 8cad7472089..e7400e81e00 100644 --- a/lisp/tar-mode.el +++ b/lisp/tar-mode.el @@ -879,7 +879,7 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. ;; tar data. Rather than show a mysterious empty buffer, let's ;; revert to fundamental-mode. (fundamental-mode) - (signal (car err) (cdr err))))) + (signal err)))) (autoload 'woman-tar-extract-file "woman" "In tar mode, run the WoMan man-page browser on this file." t) diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index 9385207f767..86a4b1d006e 100644 --- a/lisp/textmodes/tex-mode.el +++ b/lisp/textmodes/tex-mode.el @@ -1874,7 +1874,7 @@ Mark is left at original location." (progn (latex-backward-sexp-1) (1+ arg))))) (scan-error (goto-char pos) - (signal (car err) (cdr err)))))) + (signal err))))) (defun latex-syntax-after () "Like (char-syntax (char-after)) but aware of multi-char elements." diff --git a/lisp/transient.el b/lisp/transient.el index a7e2e5daa23..e77fef1f98a 100644 --- a/lisp/transient.el +++ b/lisp/transient.el @@ -64,7 +64,7 @@ ,(macroexp-progn body)) ((debug error) (transient--emergency-exit ,id) - (signal (car err) (cdr err))))) + (signal err)))) (defun transient--exit-and-debug (&rest args) (transient--emergency-exit :debugger) diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el index 559310ff770..86095780f67 100644 --- a/lisp/vc/diff-mode.el +++ b/lisp/vc/diff-mode.el @@ -981,7 +981,7 @@ data such as \"Index: ...\" and such." ;; File starts *after* the starting point: we really weren't in ;; a file diff but elsewhere. (goto-char orig) - (signal (car err) (cdr err))))) + (signal err)))) (defun diff-file-kill (&optional delete) "Kill current file's hunks. diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el index c0f6fd426c1..3744ec501ec 100644 --- a/lisp/vc/smerge-mode.el +++ b/lisp/vc/smerge-mode.el @@ -1444,7 +1444,7 @@ region, or with a numeric prefix. By default it uses a numeric prefix of 1." ;; conflicts instead! (condition-case err (smerge-match-conflict) - (error (if (not (markerp otherpos)) (signal (car err) (cdr err)) + (error (if (not (markerp otherpos)) (signal err) (goto-char (prog1 otherpos (setq otherpos (point-marker)))) (smerge-match-conflict)))) (let ((beg (match-beginning 0)) diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index a1546cbc65a..37d2bc3612f 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -2045,7 +2045,7 @@ After check-out, runs the normal hook `vc-checkout-hook'." (when t (let ((buf (get-file-buffer file))) (when buf (with-current-buffer buf (read-only-mode -1))))) - (signal (car err) (cdr err)))) + (signal err))) `((vc-state . ,(if (or (eq (vc-checkout-model backend (list file)) 'implicit) nil) 'up-to-date @@ -4695,7 +4695,7 @@ tip revision are merged into the working file." (and-let* ((fileset (vc-deduce-fileset 'not-state-changing 'allow-unregistered))) (vc-find-backend-function (car fileset) 'pull))) - (signal (car ret) (cdr ret)))) + (signal ret))) (:success (setq backend (car ret) files (cadr ret) fn (vc-find-backend-function backend 'pull)))) diff --git a/src/fileio.c b/src/fileio.c index cc6590130f7..beb020810be 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -286,8 +286,7 @@ void report_file_errno (char const *string, Lisp_Object name, int errorno) { Lisp_Object data = get_file_errno_data (string, name, errorno); - - xsignal (Fcar (data), Fcdr (data)); + xsignal (data, Qnil); } /* Signal a file-access failure that set errno. STRING describes the