GNU bug report logs -
#15628
24.3.50; ns-get-selection-internal quits on unsupported pasteboard content on OS X
Previous Next
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
View this message in rfc822 format
2013/10/16 Jan Djärv <jan.h.d <at> swipnet.se>:
> Hello.
>
> I've removed the FQuit in trunk.
Great, thank you!
> 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.