1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

(xselect-convert-to-string): Bind `inhibit-read-only' to t.

This commit is contained in:
Luc Teirlinck 2004-05-03 01:24:47 +00:00
parent 294240c35d
commit deae888e00
2 changed files with 42 additions and 36 deletions

View file

@ -177,46 +177,47 @@ Cut buffers are considered obsolete; you should use selections instead."
(setq coding (coding-system-base coding))
(setq coding 'raw-text))
;; Suppress producing escape sequences for compositions.
(remove-text-properties 0 (length str) '(composition nil) str)
(cond
((eq type 'TEXT)
(if (not (multibyte-string-p str))
;; Don't have to encode unibyte string.
(setq type 'STRING)
;; If STR contains only ASCII, Latin-1, and raw bytes,
;; encode STR by iso-latin-1, and return it as type
;; `STRING'. Otherwise, encode STR by CODING. In that
;; case, the returing type depends on CODING.
(let ((charsets (find-charset-string str)))
(setq charsets
(delq 'ascii
(delq 'latin-iso8859-1
(delq 'eight-bit-control
(delq 'eight-bit-graphic charsets)))))
(if charsets
(setq str (encode-coding-string str coding)
type (if (memq coding '(compound-text
compound-text-with-extensions))
'COMPOUND_TEXT
'STRING))
(setq type 'STRING
str (encode-coding-string str 'iso-latin-1))))))
(let ((inhibit-read-only t))
(remove-text-properties 0 (length str) '(composition nil) str)
(cond
((eq type 'TEXT)
(if (not (multibyte-string-p str))
;; Don't have to encode unibyte string.
(setq type 'STRING)
;; If STR contains only ASCII, Latin-1, and raw bytes,
;; encode STR by iso-latin-1, and return it as type
;; `STRING'. Otherwise, encode STR by CODING. In that
;; case, the returing type depends on CODING.
(let ((charsets (find-charset-string str)))
(setq charsets
(delq 'ascii
(delq 'latin-iso8859-1
(delq 'eight-bit-control
(delq 'eight-bit-graphic charsets)))))
(if charsets
(setq str (encode-coding-string str coding)
type (if (memq coding '(compound-text
compound-text-with-extensions))
'COMPOUND_TEXT
'STRING))
(setq type 'STRING
str (encode-coding-string str 'iso-latin-1))))))
((eq type 'COMPOUND_TEXT)
(setq str (encode-coding-string str coding)))
((eq type 'COMPOUND_TEXT)
(setq str (encode-coding-string str coding)))
((eq type 'STRING)
(if (memq coding '(compound-text
compound-text-with-extensions))
(setq str (string-make-unibyte str))
(setq str (encode-coding-string str coding))))
((eq type 'STRING)
(if (memq coding '(compound-text
compound-text-with-extensions))
(setq str (string-make-unibyte str))
(setq str (encode-coding-string str coding))))
((eq type 'UTF8_STRING)
(setq str (encode-coding-string str 'utf-8)))
((eq type 'UTF8_STRING)
(setq str (encode-coding-string str 'utf-8)))
(t
(error "Unknow selection type: %S" type))
))
(t
(error "Unknow selection type: %S" type))
)))
(setq next-selection-coding-system nil)
(cons type str))))