From 43bb0be61a0788045f90d9df5d378506cbbab422 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Tue, 8 Jul 2014 11:27:46 +0300 Subject: [PATCH] * lisp/simple.el (transpose-chars): Don't move point into read-only area. Fixes: debbugs:17829 --- lisp/ChangeLog | 5 +++++ lisp/simple.el | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index cc864810c8c..26699e0ff4d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2014-07-08 Juri Linkov + + * simple.el (transpose-chars): Don't move point into read-only area. + (Bug#17829) + 2014-07-08 Juri Linkov * window.el (with-displayed-buffer-window): New macro. diff --git a/lisp/simple.el b/lisp/simple.el index 6fd50197a10..5da662c2124 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -5934,7 +5934,9 @@ With prefix arg ARG, effect is to take character before point and drag it forward past ARG other characters (backward if ARG negative). If no argument and at end of line, the previous two chars are exchanged." (interactive "*P") - (and (null arg) (eolp) (forward-char -1)) + (when (and (null arg) (eolp) (not (bobp)) + (not (get-text-property (1- (point)) 'read-only))) + (forward-char -1)) (transpose-subr 'forward-char (prefix-numeric-value arg))) (defun transpose-words (arg) -- 2.39.5