GNU bug report logs - #15628
24.3.50; ns-get-selection-internal quits on unsupported pasteboard content on OS X

Previous Next

Packages: ns, emacs;

Reported by: Sebastian Wiesner <lunaryorn <at> gmail.com>

Date: Wed, 16 Oct 2013 07:13:02 UTC

Severity: normal

Found in version 24.3.50

Done: Jan Djärv <jan.h.d <at> swipnet.se>

Bug is archived. No further changes may be made.

Full log


Message #10 received at 15628-done <at> debbugs.gnu.org (full text, mbox):

From: Jan Djärv <jan.h.d <at> swipnet.se>
To: Sebastian Wiesner <lunaryorn <at> gmail.com>
Cc: 15628-done <at> debbugs.gnu.org
Subject: Re: bug#15628: 24.3.50;
 ns-get-selection-internal quits on unsupported pasteboard content on
 OS X
Date: Wed, 16 Oct 2013 18:56:30 +0200
Hello.

I've removed the FQuit in trunk.

	Jan D.

16 okt 2013 kl. 09:11 skrev Sebastian Wiesner <lunaryorn <at> gmail.com>:

> 
> On OS X 10.8, "ns-get-selection-internal" calls quit on unsupported
> pasteboard content, such as images.
> 
> This behaviour breaks all yanking and killing.  The quit signal
> interrupts "kill-new" and "current-kill" while these functions try to
> retrieve the pasteboard content via "ns-get-pasteboard" (called by
> "x-selection-value", which is the default "interprogram-paste-function"
> on OS X), which internally calls "ns-get-selection-internal".
> 
> Hence, "kill-new" fails to save the given kill to the kill ring, and
> "current-kill" fails to pop the latest kill from the kill ring.
> 
> To reproduce, start Emacs, set "save-interprogram-paste-before-kill" to
> t, copy an image (e.g. from an iPhoto Library), and then try to yank or
> kill.  For the latter, the following stacktrace is given with
> "debug-on-quit":
> 
> Debugger entered--Lisp error: (quit "empty or unsupported pasteboard type")
>  ns-get-selection-internal(CLIPBOARD)
>  ns-get-pasteboard()
>  x-selection-value()
>  kill-new(#("elisp-slime-nav" 0 15 (fontified t face font-lock-constant-face)))
>  copy-region-as-kill(39166 39181)
>  kill-ring-save(39166 39181)
>  #<subr call-interactively>(kill-ring-save nil nil)
>  ad-Advice-call-interactively(#<subr call-interactively> kill-ring-save nil nil)
>  apply(ad-Advice-call-interactively #<subr call-interactively> (kill-ring-save nil nil))
>  call-interactively(kill-ring-save nil nil)
>  command-execute(kill-ring-save)
> 
> This unfortunate interaction makes "save-interprogram-paste-before-kill"
> nearly useless on OS X, because the user always needs to inspect the
> pasteboard manually and remove content unsupported by Emacs before being
> able to reliably kill and yank.
> 
> I think "ns-get-selection-interal" should simply ignore unknown
> pasteboard content, or at least respect a user option to ignore unknown
> pasteboard content.  This unknown content is of no use to Emacs anyway,
> so there is no point in even trying to put it onto the kill ring.
> 
> 





This bug report was last modified 11 years and 222 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.