Subject: NS: clipboard-kill-ring-save and clipboard-yank etc. not available

From: David Reitter <[email-masked]>
Date: Sun, 1 Mar 2009 22:13:47 -0500

A number of functions such as `clipboard-kill-ring-save' are not  
available in the NS port because term/ns-win.el unbinds them.
It took me a long time to figure out, because they are pre-loaded in  
menu-bar.el and present in `load-history'.

In the interest of compatibility with existing Emacs 22 code, and also  
with Emacs 23 code written on other platforms, these functions should  
exist and do what they're documented to do.

Note that commands like `ns-copy-including-secondary' are bound to  
menu bar items and to shortcuts such as Command-C (when CUA mode is  
off), but they are not documented.  I would happily write some  
docstrings, but it isn't clear to me why one would always want to set  
the secondary "cut buffer" in this situation.

term/ns-win.el:

;; Must come after keybindings.

(fmakunbound 'clipboard-yank)
(fmakunbound 'clipboard-kill-ring-save)
(fmakunbound 'clipboard-kill-region)
(fmakunbound 'menu-bar-enable-clipboard)

...

(defun ns-copy-including-secondary ()
   (interactive)
   (call-interactively 'kill-ring-save)
   (ns-store-cut-buffer-internal 'SECONDARY
				(buffer-substring (point) (mark t))))
(defun ns-paste-secondary ()
   (interactive)
   (insert (ns-get-cut-buffer-internal 'SECONDARY)))