]> git.eshelyaron.com Git - emacs.git/commitdiff
(x-select-text): Remember selected text.
authorRichard M. Stallman <rms@gnu.org>
Fri, 19 Apr 1996 02:40:44 +0000 (02:40 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 19 Apr 1996 02:40:44 +0000 (02:40 +0000)
(x-get-selection-value): Return nil if the clipboard data is
is the same as the remembered selected text.

lisp/term/w32-win.el

index c6d94f092521f1d135fefd1e5c07e3d1f7da9e54..b2c6b923a276759635cb6f2f6a1173b0125c5ee5 100644 (file)
@@ -488,7 +488,8 @@ This is in addition to the primary selection.")
 
 (defun x-select-text (text &optional push)
   (if x-select-enable-clipboard 
-      (win32-set-clipboard-data text)))
+      (win32-set-clipboard-data text))
+  (setq x-last-selected-text text))
     
 ;;; Return the value of the current selection.
 ;;; Consult the selection, then the cut buffer.  Treat empty strings
@@ -501,7 +502,15 @@ This is in addition to the primary selection.")
            (setq text (win32-get-clipboard-data))
          (error (message "win32-get-clipboard-data:%s" c)))
        (if (string= text "") (setq text nil))
-       text)))
+       (cond
+        ((not text) nil)
+        ((eq text x-last-selected-text) nil)
+        ((string= text x-last-selected-text)
+         ;; Record the newer string, so subsequent calls can use the 'eq' test.
+         (setq x-last-selected-text text)
+         nil)
+        (t
+         (setq x-last-selected-text text))))))
 \f
 ;;; Do the actual Windows setup here; the above code just defines
 ;;; functions and variables that we use now.