Mercurial > hg > xemacs-beta
changeset 5571:5273dd66a1ba
Strip extent information when passing text to external programs, select.el
lisp/ChangeLog addition:
2011-09-21 Aidan Kehoe <kehoea@parhasard.net>
* select.el (select-convert-to-text):
* select.el (select-convert-to-utf-8-text):
Ignore extent information in these functions, other programs can't
do anything useful with it, and it actively interferes when
copying from an ERC buffer to external programs--
#'encode-coding-string complains that the string is read-only,
which is arguably in itself a separate problem, since it allocates
a new string there's no reason for it ever to throw that error.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Wed, 21 Sep 2011 19:14:15 +0100 |
parents | 6c76f5b7e2e3 |
children | c17a46ac63af |
files | lisp/ChangeLog lisp/select.el |
diffstat | 2 files changed, 23 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sun Sep 11 16:05:05 2011 +0100 +++ b/lisp/ChangeLog Wed Sep 21 19:14:15 2011 +0100 @@ -1,3 +1,14 @@ +2011-09-21 Aidan Kehoe <kehoea@parhasard.net> + + * select.el (select-convert-to-text): + * select.el (select-convert-to-utf-8-text): + Ignore extent information in these functions, other programs can't + do anything useful with it, and it actively interferes when + copying from an ERC buffer to external programs-- + #'encode-coding-string complains that the string is read-only, + which is arguably in itself a separate problem, since it allocates + a new string there's no reason for it ever to throw that error. + 2011-09-11 Aidan Kehoe <kehoea@parhasard.net> * cl-macs.el (cl-defsubst-expand):
--- a/lisp/select.el Sun Sep 11 16:05:05 2011 +0100 +++ b/lisp/select.el Wed Sep 21 19:14:15 2011 +0100 @@ -456,14 +456,14 @@ ;; append handlers and buffer-kill handlers. (defun select-convert-to-text (selection type value) (cond ((stringp value) - value) + (substring-no-properties value)) ((extentp value) (save-excursion (set-buffer (extent-object value)) (save-restriction (widen) - (buffer-substring (extent-start-position value) - (extent-end-position value))))) + (buffer-substring-no-properties (extent-start-position value) + (extent-end-position value))))) ((and (consp value) (markerp (car value)) (markerp (cdr value))) @@ -476,7 +476,7 @@ (error "selection is in a killed buffer"))) (save-restriction (widen) - (buffer-substring (car value) (cdr value))))) + (buffer-substring-no-properties (car value) (cdr value))))) (t nil))) (defun select-convert-to-timestamp (selection type value) @@ -485,16 +485,18 @@ (defun select-convert-to-utf-8-text (selection type value) (cond ((stringp value) - (cons 'UTF8_STRING (encode-coding-string value 'utf-8))) + (cons 'UTF8_STRING (encode-coding-string + (substring-no-properties value) 'utf-8))) ((extentp value) (save-excursion (set-buffer (extent-object value)) (save-restriction (widen) (cons 'UTF8_STRING - (encode-coding-string - (buffer-substring (extent-start-position value) - (extent-end-position value)) 'utf-8))))) + (encode-coding-string (buffer-substring-no-properties + (extent-start-position value) + (extent-end-position value)) + 'utf-8))))) ((and (consp value) (markerp (car value)) (markerp (cdr value))) @@ -508,8 +510,8 @@ (save-restriction (widen) (cons 'UTF8_STRING (encode-coding-string - (buffer-substring (car value) (cdr value)) - 'utf-8))))) + (buffer-substring-no-properties + (car value) (cdr value)) 'utf-8))))) (t nil))) (defun select-coerce-to-text (selection type value)