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

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

[debbugs-tracker] bug#20785: closed (user-error for mark-inactive)


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#20785: closed (user-error for mark-inactive)
Date: Thu, 11 Jun 2015 23:20:04 +0000

Your message dated Fri, 12 Jun 2015 02:17:56 +0300
with message-id <address@hidden>
and subject line Re: bug#20785: user-error for mark-inactive
has caused the debbugs.gnu.org bug report #20785,
regarding user-error for mark-inactive
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
20785: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20785
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: user-error for mark-inactive Date: Thu, 11 Jun 2015 02:34:06 +0300 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (x86_64-pc-linux-gnu)
A single remaining case that is too annoying is when the debugger is
called due to a user error while accidentally typing `C-w' (kill-region)
when there is no active mark in the buffer:

Debugger entered--Lisp error: (mark-inactive)
  signal(mark-inactive nil)
  mark()
  byte-code("\300 `\301E\207" [mark region] 3)
  call-interactively(kill-region nil nil)
  command-execute(kill-region)

The following patch avoids this in both cases:

1. when mark-even-if-inactive is non-nil, displays the message:
   "user-error: The mark is not set now, so there is no region"

2. when mark-even-if-inactive is nil, displays the message:
   "mark: The mark is not active now"

diff --git a/lisp/simple.el b/lisp/simple.el
index 1eb0643..31810a4 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4017,7 +4021,7 @@ (defun kill-region (beg end &optional region)
   ;; calling `kill-append'.
   (interactive (list (mark) (point) 'region))
   (unless (and beg end)
-    (error "The mark is not set now, so there is no region"))
+    (user-error "The mark is not set now, so there is no region"))
   (condition-case nil
       (let ((string (if region
                         (funcall region-extract-function 'delete)

diff --git a/lisp/bindings.el b/lisp/bindings.el
index b658914..3672812 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -633,7 +633,7 @@ (setq debug-ignored-errors
       ;; file-supersession should all be user-errors!
       `(beginning-of-line beginning-of-buffer end-of-line
        end-of-buffer end-of-file buffer-read-only
-       file-supersession
+       file-supersession mark-inactive
         user-error ;; That's the main one!
         ))
 



--- End Message ---
--- Begin Message --- Subject: Re: bug#20785: user-error for mark-inactive Date: Fri, 12 Jun 2015 02:17:56 +0300 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (x86_64-pc-linux-gnu)
>> A single remaining case that is too annoying is when the debugger is
>> called due to a user error while accidentally typing `C-w' (kill-region)
>> when there is no active mark in the buffer:
>
> Looks OK to me

Installed.

> (maybe we could also just signal `mark-inactive' instead
> of calling user-error, but either way is OK for me),

I see that `mark-inactive' and user-error in `kill-region'
have different messages:

`mark-inactive' signaled in the function `mark'
has the message only about the mark:

  "The mark is not active now"

whereas the user-error message in `kill-region'
is specific about the region:

  "The mark is not set now, so there is no region"

and I don't see how to merge these messages.


--- End Message ---

reply via email to

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