]> git.eshelyaron.com Git - emacs.git/commitdiff
CUA mode: Fix use of `filter-buffer-substring' (rework previous change).
authorJuanma Barranquero <lekktu@gmail.com>
Mon, 10 May 2010 14:37:59 +0000 (16:37 +0200)
committerJuanma Barranquero <lekktu@gmail.com>
Mon, 10 May 2010 14:37:59 +0000 (16:37 +0200)
* 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.

lisp/ChangeLog
lisp/emulation/cua-base.el
lisp/emulation/cua-gmrk.el
lisp/emulation/cua-rect.el

index 871b51470f8596668ae953ba782bbc3a60e2852b..5176590dc8e75151cc6d488f9e0c762035d6cc53 100644 (file)
@@ -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
index d8b36adf730591f06fb8bb79831546808a2ddf1c..3e434b36213f8024da4eae5e3ac3fc8d17a1d7dd 100644 (file)
@@ -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
                       ""))
index 6c69800d73c3c3a35d9fcbceab26a3baa9a178f5..b67d09c04cf52b0b36f6048742d6c05fd9c38b2b 100644 (file)
@@ -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))
index 4ac8ce58b3e9a1d8f3133241940c5f3f5c4f49b2..2b41f6435ee532e6fed858226cd4809a8dc7f04e 100644 (file)
@@ -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))))