diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 9 | ||||
-rw-r--r-- | lisp/emulation/cua-base.el | 9 | ||||
-rw-r--r-- | lisp/emulation/cua-gmrk.el | 6 | ||||
-rw-r--r-- | lisp/emulation/cua-rect.el | 8 |
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)))) |