1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-10 15:56:18 +00:00

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.
This commit is contained in:
Juanma Barranquero 2010-05-10 16:37:59 +02:00
parent 1fdf5102be
commit c5eb971bec
4 changed files with 20 additions and 12 deletions

View 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

View 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
""))

View 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))

View 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))))