unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* menu-bar.el: x-selection-exists-p
@ 2009-03-03  4:24 David Reitter
  2009-03-03 14:15 ` Stefan Monnier
  0 siblings, 1 reply; 2+ messages in thread
From: David Reitter @ 2009-03-03  4:24 UTC (permalink / raw)
  To: Emacs-Devel devel

menu-bar.el contains two uses of `x-selection-exists-p', which is not  
defined if Emacs was built with "--without-x".

The first appears to disable the Paste menu item permanently; the  
second one calls the function even if it doesn't exist (even though  
I'm not sure if the `menu-enable' property on `clipboard-yank'  does  
what it appears to do).

Are the below  changes OK, and is it OK to check this in at this point?



Index: menu-bar.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/menu-bar.el,v
retrieving revision 1.350
diff -c -r1.350 menu-bar.el
*** menu-bar.el	14 Jan 2009 23:11:12 -0000	1.350
--- menu-bar.el	3 Mar 2009 04:11:59 -0000
***************
*** 459,466 ****
   	      :enable (and
   		       ;; Emacs compiled --without-x doesn't have
   		       ;; x-selection-exists-p.
! 		       (fboundp 'x-selection-exists-p)
! 		       (x-selection-exists-p) (not buffer-read-only))
   	      :help "Paste (yank) text most recently cut/copied"))
   (define-key menu-bar-edit-menu [copy]
     '(menu-item "Copy" menu-bar-kill-ring-save
--- 485,493 ----
   	      :enable (and
   		       ;; Emacs compiled --without-x doesn't have
   		       ;; x-selection-exists-p.
! 		       (if (fboundp 'x-selection-exists-p)
! 			   (x-selection-exists-p) t)
! 		       (not buffer-read-only))
   	      :help "Paste (yank) text most recently cut/copied"))
   (define-key menu-bar-edit-menu [copy]
     '(menu-item "Copy" menu-bar-kill-ring-save
***************
*** 495,503 ****
        '(and mark-active (not buffer-read-only)))
   (put 'clipboard-kill-ring-save 'menu-enable 'mark-active)
   (put 'clipboard-yank 'menu-enable
!      '(and (or (and (fboundp 'x-selection-exists-p)
! 		    (x-selection-exists-p))
! 	       (x-selection-exists-p 'CLIPBOARD))
   	   (not buffer-read-only)))

   (defun clipboard-yank ()
--- 527,535 ----
        '(and mark-active (not buffer-read-only)))
   (put 'clipboard-kill-ring-save 'menu-enable 'mark-active)
   (put 'clipboard-yank 'menu-enable
!      '(and (if (fboundp 'x-selection-exists-p)
! 	       (or (x-selection-exists-p)
! 		   (x-selection-exists-p 'CLIPBOARD)))
   	   (not buffer-read-only)))

   (defun clipboard-yank ()





^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: menu-bar.el: x-selection-exists-p
  2009-03-03  4:24 menu-bar.el: x-selection-exists-p David Reitter
@ 2009-03-03 14:15 ` Stefan Monnier
  0 siblings, 0 replies; 2+ messages in thread
From: Stefan Monnier @ 2009-03-03 14:15 UTC (permalink / raw)
  To: David Reitter; +Cc: Emacs-Devel devel

> Are the below  changes OK, and is it OK to check this in at this point?

The second change is OK (I'd fold the "if" into that "and", but that's
just me).  The first doesn't seem quite right: I think it should test
something like:
  
  (or (and (fboundp 'x-selection-exists-p) (x-selection-exists-p))
      kill-ring)

to better reflect the fact that `yank' either uses the selection or the
kill-ring.

Thanks for spotting this.


        Stefan




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-03-03 14:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-03  4:24 menu-bar.el: x-selection-exists-p David Reitter
2009-03-03 14:15 ` Stefan Monnier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).