summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorJuanma Barranquero <lekktu@gmail.com>2010-05-10 16:37:59 +0200
committerJuanma Barranquero <lekktu@gmail.com>2010-05-10 16:37:59 +0200
commit8fd232005f3f74eb96e73b91513f8de8da1d54c4 (patch)
treee4f681ac4a50f69960d151e2e18bca3bca785756 /lisp
parent29b1c77862ebbbbd5b637f766e047fbd7d8dca4d (diff)
downloademacs-8fd232005f3f74eb96e73b91513f8de8da1d54c4.tar.gz
CUA mode: Fix use of `filter-buffer-substring' (rework previous change).
* emulation/cua-base.el (cua--filter-buffer-noprops): New function. (cua-repeat-replace-region): * emulation/cua-rect.el (cua--extract-rectangle, cua-incr-rectangle): * emulation/cua-gmrk.el (cua-copy-region-to-global-mark) (cua-cut-region-to-global-mark): Use it.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog9
-rw-r--r--lisp/emulation/cua-base.el9
-rw-r--r--lisp/emulation/cua-gmrk.el6
-rw-r--r--lisp/emulation/cua-rect.el8
4 files changed, 20 insertions, 12 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index d743bdd44a6..cc1ff887e20 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,12 @@
+2010-05-10 Juanma Barranquero <lekktu@gmail.com>
+
+ Fix use of `filter-buffer-substring' (rework previous change).
+ * emulation/cua-base.el (cua--filter-buffer-noprops): New function.
+ (cua-repeat-replace-region):
+ * emulation/cua-rect.el (cua--extract-rectangle, cua-incr-rectangle):
+ * emulation/cua-gmrk.el (cua-copy-region-to-global-mark)
+ (cua-cut-region-to-global-mark): Use it.
+
2010-05-09 Michael R. Mauger <mmaug@yahoo.com>
* progmodes/sql.el: Version 2.1
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el
index d8b36adf730..3e434b36213 100644
--- a/lisp/emulation/cua-base.el
+++ b/lisp/emulation/cua-base.el
@@ -780,6 +780,10 @@ Repeating prefix key when region is active works as a single prefix key."
(setq mark-active nil)
(run-hooks 'deactivate-mark-hook)))
+(defun cua--filter-buffer-noprops (start end)
+ (let ((str (filter-buffer-substring start end)))
+ (set-text-properties 0 (length str) nil str)
+ str))
;; The current register prefix
(defvar cua--register nil)
@@ -1039,10 +1043,7 @@ of text."
(setq s (car u))
(setq s (car u) e (cdr u)))))))
(cond ((and s e (<= s e) (= s (mark t)))
- (setq cua--repeat-replace-text
- (filter-buffer-substring s e))
- (set-text-properties 0 (length cua--repeat-replace-text)
- nil cua--repeat-replace-text))
+ (setq cua--repeat-replace-text (cua--filter-buffer-noprops s e)))
((and (null s) (eq u elt)) ;; nothing inserted
(setq cua--repeat-replace-text
""))
diff --git a/lisp/emulation/cua-gmrk.el b/lisp/emulation/cua-gmrk.el
index 6c69800d73c..b67d09c04cf 100644
--- a/lisp/emulation/cua-gmrk.el
+++ b/lisp/emulation/cua-gmrk.el
@@ -137,9 +137,8 @@ With prefix argument, don't jump to global mark when cancelling it."
(let ((src-buf (current-buffer)))
(save-excursion
(if (equal (marker-buffer cua--global-mark-marker) src-buf)
- (let ((text (filter-buffer-substring start end)))
+ (let ((text (cua--filter-buffer-noprops start end)))
(goto-char (marker-position cua--global-mark-marker))
- (set-text-properties 0 (length text) text)
(insert text))
(set-buffer (marker-buffer cua--global-mark-marker))
(goto-char (marker-position cua--global-mark-marker))
@@ -162,11 +161,10 @@ With prefix argument, don't jump to global mark when cancelling it."
(if (and (< start (marker-position cua--global-mark-marker))
(< (marker-position cua--global-mark-marker) end))
(message "Can't move region into itself")
- (let ((text (filter-buffer-substring start end))
+ (let ((text (cua--filter-buffer-noprops start end))
(p1 (copy-marker start))
(p2 (copy-marker end)))
(goto-char (marker-position cua--global-mark-marker))
- (set-text-properties 0 (length text) text)
(insert text)
(cua--activate-global-mark)
(delete-region (marker-position p1) (marker-position p2))
diff --git a/lisp/emulation/cua-rect.el b/lisp/emulation/cua-rect.el
index 4ac8ce58b3e..2b41f6435ee 100644
--- a/lisp/emulation/cua-rect.el
+++ b/lisp/emulation/cua-rect.el
@@ -625,7 +625,7 @@ If command is repeated at same position, delete the rectangle."
(if (not (cua--rectangle-virtual-edges))
(cua--rectangle-operation nil nil nil nil nil ; do not tabify
'(lambda (s e l r)
- (setq rect (cons (filter-buffer-substring s e nil t) rect))))
+ (setq rect (cons (cua--filter-buffer-noprops s e) rect))))
(cua--rectangle-operation nil 1 nil nil nil ; do not tabify
'(lambda (s e l r v)
(let ((copy t) (bs 0) (as 0) row)
@@ -643,7 +643,7 @@ If command is repeated at same position, delete the rectangle."
(setq as (- r (max (current-column) l))
e (point)))
(setq row (if (and copy (> e s))
- (filter-buffer-substring s e nil t)
+ (cua--filter-buffer-noprops s e)
""))
(when (> bs 0)
(setq row (concat (make-string bs ?\s) row)))
@@ -1124,12 +1124,12 @@ The length of STRING need not be the same as the rectangle width."
'(lambda (s e l r)
(cond
((re-search-forward "0x\\([0-9a-fA-F]+\\)" e t)
- (let* ((txt (filter-buffer-substring (match-beginning 1) (match-end 1) nil t))
+ (let* ((txt (cua--filter-buffer-noprops (match-beginning 1) (match-end 1)))
(n (string-to-number txt 16))
(fmt (format "0x%%0%dx" (length txt))))
(replace-match (format fmt (+ n increment)))))
((re-search-forward "\\( *-?[0-9]+\\)" e t)
- (let* ((txt (filter-buffer-substring (match-beginning 1) (match-end 1) nil t))
+ (let* ((txt (cua--filter-buffer-noprops (match-beginning 1) (match-end 1)))
(prefix (if (= (aref txt 0) ?0) "0" ""))
(n (string-to-number txt 10))
(fmt (format "%%%s%dd" prefix (length txt))))