]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/term.el (term-mouse-paste): Yank primary selection (Bug#6845).
authorChong Yidong <cyd@stupidchicken.com>
Sun, 21 Aug 2011 17:56:19 +0000 (13:56 -0400)
committerChong Yidong <cyd@stupidchicken.com>
Sun, 21 Aug 2011 17:56:19 +0000 (13:56 -0400)
lisp/ChangeLog
lisp/term.el

index 6de159536a131b339f0d4bd7516f2d21d37f3aa1..e110b96263707eeb3cab4c0c6d07ca78006b7cd2 100644 (file)
@@ -1,5 +1,7 @@
 2011-08-21  Chong Yidong  <cyd@stupidchicken.com>
 
+       * term.el (term-mouse-paste): Yank primary selection (Bug#6845).
+
        * emacs-lisp/find-func.el (find-function-noselect): New arg
        lisp-only.
 
index 6d7f6f5c5358a5f5115b634628df580453d5b8f2..361ff685396f9968ffae3779dbe903f0c4ef8252 100644 (file)
@@ -1227,9 +1227,9 @@ without any interpretation."
                              (make-string 1 char)
                            (format "\e%c" char)))))
 
-(defun term-mouse-paste (click arg)
-  "Insert the last stretch of killed text at the position clicked on."
-  (interactive "e\nP")
+(defun term-mouse-paste (click)
+  "Insert the primary selection at the position clicked on."
+  (interactive "e")
   (if (featurep 'xemacs)
       (term-send-raw-string
        (or (condition-case () (x-get-selection) (error ()))
@@ -1238,10 +1238,17 @@ without any interpretation."
     (run-hooks 'mouse-leave-buffer-hook)
     (setq this-command 'yank)
     (mouse-set-point click)
-    (term-send-raw-string (current-kill (cond
-                                        ((listp arg) 0)
-                                        ((eq arg '-) -1)
-                                        (t (1- arg)))))))
+    (term-send-raw-string
+     (or (cond  ; From `mouse-yank-primary':
+         ((eq system-type 'windows-nt)
+          (or (x-get-selection 'PRIMARY)
+              (x-get-selection-value)))
+         ((fboundp 'x-get-selection-value)
+          (or (x-get-selection-value)
+              (x-get-selection 'PRIMARY)))
+         (t
+          (x-get-selection 'PRIMARY)))
+        (error "No selection is available")))))
 
 (defun term-paste ()
   "Insert the last stretch of killed text at point."