Commit 8eee8101 authored by Jan Djärv's avatar Jan Djärv
Browse files

(x-last-cut-buffer-coding): New variable.

(x-select-text): Set it.
(x-cut-buffer-or-selection-value): Check also x-last-cut-buffer-coding
when checking for newness.
parent 83dc6995
2006-11-20 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* term/x-win.el (x-last-cut-buffer-coding): New variable.
(x-select-text): Set it.
(x-cut-buffer-or-selection-value): Check also x-last-cut-buffer-coding
when checking for newness.
2006-11-19 Juanma Barranquero <lekktu@gmail.com>
 
* subr.el (posn-image):
......@@ -2138,6 +2138,8 @@ The actual text stored in the X cut buffer is what encoded from this value.")
(defvar x-last-selected-text-cut-encoded nil
"The value of the X cut buffer last time we selected or pasted text.
This is the actual text stored in the X cut buffer.")
(defvar x-last-cut-buffer-coding 'iso-latin-1
"The coding we last used to encode/decode the text from the X cut buffer")
(defvar x-cut-buffer-max 20000 ; Note this value is overridden below.
"Max number of characters to put in the cut buffer.
......@@ -2163,6 +2165,7 @@ in the clipboard."
x-last-selected-text-cut-encoded ""))
(t
(setq x-last-selected-text-cut text
x-last-cut-buffer-coding 'iso-latin-1
x-last-selected-text-cut-encoded
;; ICCCM says cut buffer always contain ISO-Latin-1
(encode-coding-string text 'iso-latin-1))
......@@ -2331,20 +2334,28 @@ order until succeed.")
;; from what we remebered them to be last time we did a
;; cut/paste operation.
(setq cut-text
(cond;; check cut buffer
((or (not cut-text) (string= cut-text ""))
(setq x-last-selected-text-cut nil))
(t
;; We can not compare x-last-selected-text-cut-encoded with
;; cut-text because the next-selection-coding-system may have changed
;; so we need to re-decode anyway.
(setq x-last-selected-text-cut-encoded cut-text
(let ((next-coding (or next-selection-coding-system 'iso-latin-1)))
(cond;; check cut buffer
((or (not cut-text) (string= cut-text ""))
(setq x-last-selected-text-cut nil))
;; This short cut doesn't work because x-get-cut-buffer
;; always returns a newly created string.
;; ((eq cut-text x-last-selected-text-cut) nil)
((and (string= cut-text x-last-selected-text-cut-encoded)
(eq x-last-cut-buffer-coding next-coding))
;; See the comment above. No need of this recording.
;; Record the newer string,
;; so subsequent calls can use the `eq' test.
;; (setq x-last-selected-text-cut cut-text)
nil)
(t
(setq x-last-selected-text-cut-encoded cut-text
x-last-cut-buffer-coding next-coding
x-last-selected-text-cut
;; ICCCM says cut buffer always contain ISO-Latin-1, but
;; use next-selection-coding-system if not nil.
(decode-coding-string
cut-text
(or next-selection-coding-system 'iso-latin-1))))))
cut-text next-coding))))))
;; As we have done one selection, clear this now.
(setq next-selection-coding-system nil)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment