bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#28797: 26.0.90; Improve printing of error on catching file-error in


From: Noam Postavsky
Subject: bug#28797: 26.0.90; Improve printing of error on catching file-error in dired
Date: Thu, 12 Oct 2017 23:16:28 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.60 (gnu/linux)

severity 28797 minor
tags 28797 + patch
quit

Kaushal Modi <kaushal.modi@gmail.com> writes:

> 1. Improving the format of error messages generated by catching error
> signals from C, so that the errors look almost like readable English
> instead of a dump of a list.
> 2. Those errors should generate a backtrace.. right now, a user needs
> to update the debug-on-message variable to force back traces for such
> messages which is, first: more cumbersome than doing M-x
> toggle-debug-on-error and then recreating the error, and second: not
> a common knowledge.

Here's a patch, uses error-message-string for #1,
condition-case-unless-debug for #2.

>From a150d99f8e278e9b90240e4b0c460ca974b32aeb Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs@gmail.com>
Date: Thu, 12 Oct 2017 23:12:00 -0400
Subject: [PATCH v1] Improve dired deletion error handling (Bug#28797)

* lisp/dired.el (dired-internal-do-deletions): Use
condition-case-unless-debug.  Use `error-message-string' to produce a
human readable error message.
---
 lisp/dired.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lisp/dired.el b/lisp/dired.el
index 9e09d349f7..b24fea703a 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -3132,7 +3132,7 @@ dired-internal-do-deletions
            (while l
              (goto-char (cdr (car l)))
              (let ((inhibit-read-only t))
-               (condition-case err
+               (condition-case-unless-debug err
                    (let ((fn (car (car l))))
                      (dired-delete-file fn dired-recursive-deletes trash)
                      ;; if we get here, removing worked
@@ -3143,7 +3143,7 @@ dired-internal-do-deletions
                       #'dired-delete-entry fn))
                   (quit (throw '--delete-cancel (message "OK, canceled")))
                  (error ;; catch errors from failed deletions
-                  (dired-log "%s\n" err)
+                  (dired-log "%s: %s\n" (car err) (error-message-string err))
                   (setq failures (cons (car (car l)) failures)))))
              (setq l (cdr l)))
            (if (not failures)
-- 
2.11.0


reply via email to

[Prev in Thread] Current Thread [Next in Thread]