emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/delsel.el,v


From: Martin Rudalics
Subject: [Emacs-diffs] Changes to emacs/lisp/delsel.el,v
Date: Thu, 24 Jan 2008 09:46:08 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Martin Rudalics <m061211>       08/01/24 09:46:08

Index: delsel.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/delsel.el,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- delsel.el   8 Jan 2008 20:44:57 -0000       1.44
+++ delsel.el   24 Jan 2008 09:46:08 -0000      1.45
@@ -113,7 +113,23 @@
         ;; stop safe_run_hooks from clearing out pre-command-hook.
         (and (eq inhibit-quit 'pre-command-hook)
              (setq inhibit-quit 'delete-selection-dummy))
-        (signal 'file-supersession (cdr data)))))))
+        (signal 'file-supersession (cdr data)))
+       (text-read-only
+        ;; This signal may come either from `delete-active-region' or
+        ;; `self-insert-command' (when `overwrite-mode' is non-nil).
+        ;; To avoid clearing out `pre-command-hook' we handle this case
+        ;; by issuing a simple message.  Note, however, that we do not
+        ;; handle all related problems: When read-only text ends before
+        ;; the end of the region, the latter is not deleted but any
+        ;; subsequent insertion will succeed.  We could avoid this case
+        ;; by doing a (setq this-command 'ignore) here.  This would,
+        ;; however, still not handle the case where read-only text ends
+        ;; precisely where the region starts: In that case the deletion
+        ;; would succeed but the subsequent insertion would fail with a
+        ;; text-read-only error.  To handle that case we would have to
+        ;; investigate text properties at both ends of the region and
+        ;; skip the deletion when inserting text is forbidden there.
+        (message "Text is read-only") (ding))))))
 
 (put 'self-insert-command 'delete-selection t)
 (put 'self-insert-iso 'delete-selection t)




reply via email to

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