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:
parent
1fdf5102be
commit
c5eb971bec
@ -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>
|
2010-05-09 Michael R. Mauger <mmaug@yahoo.com>
|
||||||
|
|
||||||
* progmodes/sql.el: Version 2.1
|
* progmodes/sql.el: Version 2.1
|
||||||
|
@ -780,6 +780,10 @@ Repeating prefix key when region is active works as a single prefix key."
|
|||||||
(setq mark-active nil)
|
(setq mark-active nil)
|
||||||
(run-hooks 'deactivate-mark-hook)))
|
(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
|
;; The current register prefix
|
||||||
(defvar cua--register nil)
|
(defvar cua--register nil)
|
||||||
@ -1039,10 +1043,7 @@ of text."
|
|||||||
(setq s (car u))
|
(setq s (car u))
|
||||||
(setq s (car u) e (cdr u)))))))
|
(setq s (car u) e (cdr u)))))))
|
||||||
(cond ((and s e (<= s e) (= s (mark t)))
|
(cond ((and s e (<= s e) (= s (mark t)))
|
||||||
(setq cua--repeat-replace-text
|
(setq cua--repeat-replace-text (cua--filter-buffer-noprops s e)))
|
||||||
(filter-buffer-substring s e))
|
|
||||||
(set-text-properties 0 (length cua--repeat-replace-text)
|
|
||||||
nil cua--repeat-replace-text))
|
|
||||||
((and (null s) (eq u elt)) ;; nothing inserted
|
((and (null s) (eq u elt)) ;; nothing inserted
|
||||||
(setq cua--repeat-replace-text
|
(setq cua--repeat-replace-text
|
||||||
""))
|
""))
|
||||||
|
@ -137,9 +137,8 @@ With prefix argument, don't jump to global mark when cancelling it."
|
|||||||
(let ((src-buf (current-buffer)))
|
(let ((src-buf (current-buffer)))
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(if (equal (marker-buffer cua--global-mark-marker) src-buf)
|
(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))
|
(goto-char (marker-position cua--global-mark-marker))
|
||||||
(set-text-properties 0 (length text) text)
|
|
||||||
(insert text))
|
(insert text))
|
||||||
(set-buffer (marker-buffer cua--global-mark-marker))
|
(set-buffer (marker-buffer cua--global-mark-marker))
|
||||||
(goto-char (marker-position 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))
|
(if (and (< start (marker-position cua--global-mark-marker))
|
||||||
(< (marker-position cua--global-mark-marker) end))
|
(< (marker-position cua--global-mark-marker) end))
|
||||||
(message "Can't move region into itself")
|
(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))
|
(p1 (copy-marker start))
|
||||||
(p2 (copy-marker end)))
|
(p2 (copy-marker end)))
|
||||||
(goto-char (marker-position cua--global-mark-marker))
|
(goto-char (marker-position cua--global-mark-marker))
|
||||||
(set-text-properties 0 (length text) text)
|
|
||||||
(insert text)
|
(insert text)
|
||||||
(cua--activate-global-mark)
|
(cua--activate-global-mark)
|
||||||
(delete-region (marker-position p1) (marker-position p2))
|
(delete-region (marker-position p1) (marker-position p2))
|
||||||
|
@ -625,7 +625,7 @@ If command is repeated at same position, delete the rectangle."
|
|||||||
(if (not (cua--rectangle-virtual-edges))
|
(if (not (cua--rectangle-virtual-edges))
|
||||||
(cua--rectangle-operation nil nil nil nil nil ; do not tabify
|
(cua--rectangle-operation nil nil nil nil nil ; do not tabify
|
||||||
'(lambda (s e l r)
|
'(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
|
(cua--rectangle-operation nil 1 nil nil nil ; do not tabify
|
||||||
'(lambda (s e l r v)
|
'(lambda (s e l r v)
|
||||||
(let ((copy t) (bs 0) (as 0) row)
|
(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))
|
(setq as (- r (max (current-column) l))
|
||||||
e (point)))
|
e (point)))
|
||||||
(setq row (if (and copy (> e s))
|
(setq row (if (and copy (> e s))
|
||||||
(filter-buffer-substring s e nil t)
|
(cua--filter-buffer-noprops s e)
|
||||||
""))
|
""))
|
||||||
(when (> bs 0)
|
(when (> bs 0)
|
||||||
(setq row (concat (make-string bs ?\s) row)))
|
(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)
|
'(lambda (s e l r)
|
||||||
(cond
|
(cond
|
||||||
((re-search-forward "0x\\([0-9a-fA-F]+\\)" e t)
|
((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))
|
(n (string-to-number txt 16))
|
||||||
(fmt (format "0x%%0%dx" (length txt))))
|
(fmt (format "0x%%0%dx" (length txt))))
|
||||||
(replace-match (format fmt (+ n increment)))))
|
(replace-match (format fmt (+ n increment)))))
|
||||||
((re-search-forward "\\( *-?[0-9]+\\)" e t)
|
((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" ""))
|
(prefix (if (= (aref txt 0) ?0) "0" ""))
|
||||||
(n (string-to-number txt 10))
|
(n (string-to-number txt 10))
|
||||||
(fmt (format "%%%s%dd" prefix (length txt))))
|
(fmt (format "%%%s%dd" prefix (length txt))))
|
||||||
|
Loading…
Reference in New Issue
Block a user