unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#47642: 28.0.50; (error "Selection owner couldn't convert" UTF8_STRING)
@ 2021-04-07 17:51 Jean Louis
  2021-04-07 19:37 ` Eli Zaretskii
  2021-04-07 19:58 ` Juri Linkov
  0 siblings, 2 replies; 9+ messages in thread
From: Jean Louis @ 2021-04-07 17:51 UTC (permalink / raw)
  To: 47642


I never had this error. It now happens in the longer running instance,
it started suddenly. I don;t remember using any chars outside of
ASCII. It is invoked when I pres C-k or C-y -- it started mysteriously
and then after a while it stopped.

I cannot replicate it in 'emacs -Q'.

Debugger entered--Lisp error: (error "Selection owner couldn't convert" UTF8_STRING)
  x-get-selection-internal(CLIPBOARD UTF8_STRING nil nil)
  #f(compiled-function (selection-symbol target-type &optional time-stamp terminal) #<bytecode -0x8b1a39ee5967b2d>)(CLIPBOARD UTF8_STRING)
  apply(#f(compiled-function (selection-symbol target-type &optional time-stamp terminal) #<bytecode -0x8b1a39ee5967b2d>) (CLIPBOARD UTF8_STRING))
  gui-backend-get-selection(CLIPBOARD UTF8_STRING)
  gui-get-selection(CLIPBOARD UTF8_STRING)
  gui--selection-value-internal(CLIPBOARD)
  gui-selection-value()
  kill-new("0786111111 contact-JIJI ")
  kill-region(12 36)
  kill-line(nil)
  funcall-interactively(kill-line nil)
  call-interactively(kill-line nil nil)
  command-execute(kill-line)
  read-string("Last name: " "0786111111 contact-JIJI " nil nil)
  (if area (read-from-buffer value (format "%s ID %s" column id) mode) (read-string comment value nil nil))
  (cond ((member column columns-to-choose-contact) (let* ((query (read-from-minibuffer "Find person: ")) (id (string-to-number (cf-search-id query)))) id)) ((and foreign-key (string= type "integer")) (if (member foreign-table foreign-tables-to-ignore) (read-number comment value) (rcd-db-combo-selection foreign-table))) ((string= type "integer") (read-number comment value)) ((string-match "numeric" type) (read-number comment value)) ((string= type "text") (if area (read-from-buffer value (format "%s ID %s" column id) mode) (read-string comment value nil nil))) ((string= type "date") (read-string comment value nil value)) ((string-match "varying" type) (read-string comment value nil value)) ((string-match "array" type) (read-string comment (if value value "{}") nil value)) ((string= type "timestamp without time zone") (read-string comment value nil value)) ((string= type "timestamp with time zone") (read-string comment value nil value)) ((string= type "boolean") (read-boolean comment value)))
  (let ((new-value (cond ((member column columns-to-choose-contact) (let* ((query ...) (id ...)) id)) ((and foreign-key (string= type "integer")) (if (member foreign-table foreign-tables-to-ignore) (read-number comment value) (rcd-db-combo-selection foreign-table))) ((string= type "integer") (read-number comment value)) ((string-match "numeric" type) (read-number comment value)) ((string= type "text") (if area (read-from-buffer value (format "%s ID %s" column id) mode) (read-string comment value nil nil))) ((string= type "date") (read-string comment value nil value)) ((string-match "varying" type) (read-string comment value nil value)) ((string-match "array" type) (read-string comment (if value value "{}") nil value)) ((string= type "timestamp without time zone") (read-string comment value nil value)) ((string= type "timestamp with time zone") (read-string comment value nil value)) ((string= type "boolean") (read-boolean comment value))))) (rcd-db-update-entry table column id new-value *cf*))
  (let* ((type (rcd-db-column-type table column *cf*)) (comment (rcd-db-column-comment table column *cf*)) (foreign (rcd-db-foreign-table-column table column *cf*)) (value (rcd-db-get-entry table column id *cf*)) (size (if (eq (type-of value) 'string) (length value) nil)) (foreign-key (if foreign t nil)) (foreign-table (or (car foreign) nil)) (area (or (rcd/column-area-p table column *cf*) (and size (> size 80)))) (comment (append-colon-space comment))) (let ((new-value (cond ((member column columns-to-choose-contact) (let* (... ...) id)) ((and foreign-key (string= type "integer")) (if (member foreign-table foreign-tables-to-ignore) (read-number comment value) (rcd-db-combo-selection foreign-table))) ((string= type "integer") (read-number comment value)) ((string-match "numeric" type) (read-number comment value)) ((string= type "text") (if area (read-from-buffer value ... mode) (read-string comment value nil nil))) ((string= type "date") (read-string comment value nil value)) ((string-match "varying" type) (read-string comment value nil value)) ((string-match "array" type) (read-string comment (if value value "{}") nil value)) ((string= type "timestamp without time zone") (read-string comment value nil value)) ((string= type "timestamp with time zone") (read-string comment value nil value)) ((string= type "boolean") (read-boolean comment value))))) (rcd-db-update-entry table column id new-value *cf*)))
  rcd/edit-entry("people" "people_lastname" 359712)
  (let* ((id (tabulated-list-get-id)) (id (split-string id ":")) (table (car id)) (column (car (cdr id))) (id (car (cdr (cdr id)))) (id (string-to-number id)) (point (point))) (rcd/edit-entry table column id) (kill-this-buffer) (rcd-db-tabulated-table-edit table id) (goto-char point))
  rcd-db-tabulated-edit-value()
  funcall-interactively(rcd-db-tabulated-edit-value)
  call-interactively(rcd-db-tabulated-edit-value nil nil)
  command-execute(rcd-db-tabulated-edit-value)



In GNU Emacs 28.0.50 (build 4, x86_64-pc-linux-gnu, X toolkit, cairo version 1.17.4, Xaw3d scroll bars)
 of 2021-04-05 built on protected.rcdrun.com
Repository revision: a44d423a5aaf97790ce95350a38590fbb17b3220
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12010000
Configured using:
 'configure --prefix=/package/text/emacs --with-x-toolkit=lucid'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY
PDUMPER PNG RSVG SOUND THREADS TIFF TOOLKIT_SCROLL_BARS X11 XAW3D XDBE
XIM XPM LUCID ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LANG: de_DE.UTF-8
  value of $XMODIFIERS: @im=exwm-xim
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail
rmail-loaddefs auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json map text-property-search time-date
subr-x seq byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs
cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 53549 8043)
 (symbols 48 7031 1)
 (strings 32 19837 1894)
 (string-bytes 1 640374)
 (vectors 16 13037)
 (vector-slots 8 174775 11503)
 (floats 8 23 51)
 (intervals 56 406 44)
 (buffers 992 11))

-- 
Thanks,
Jean Louis

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns






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

* bug#47642: 28.0.50; (error "Selection owner couldn't convert" UTF8_STRING)
  2021-04-07 17:51 bug#47642: 28.0.50; (error "Selection owner couldn't convert" UTF8_STRING) Jean Louis
@ 2021-04-07 19:37 ` Eli Zaretskii
  2021-04-13  5:37   ` Jean Louis
  2021-04-07 19:58 ` Juri Linkov
  1 sibling, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2021-04-07 19:37 UTC (permalink / raw)
  To: Jean Louis; +Cc: 47642

> From: Jean Louis <bugs@gnu.support>
> Date: Wed, 07 Apr 2021 20:51:05 +0300
> 
> 
> I never had this error. It now happens in the longer running instance,
> it started suddenly. I don;t remember using any chars outside of
> ASCII. It is invoked when I pres C-k or C-y -- it started mysteriously
> and then after a while it stopped.
> 
> I cannot replicate it in 'emacs -Q'.
> 
> Debugger entered--Lisp error: (error "Selection owner couldn't convert" UTF8_STRING)

Why do you think it's an Emacs problem?  The error message points to
an external program, which owns the selection.





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

* bug#47642: 28.0.50; (error "Selection owner couldn't convert" UTF8_STRING)
  2021-04-07 17:51 bug#47642: 28.0.50; (error "Selection owner couldn't convert" UTF8_STRING) Jean Louis
  2021-04-07 19:37 ` Eli Zaretskii
@ 2021-04-07 19:58 ` Juri Linkov
  2021-04-12 10:11   ` Lars Ingebrigtsen
  1 sibling, 1 reply; 9+ messages in thread
From: Juri Linkov @ 2021-04-07 19:58 UTC (permalink / raw)
  To: Jean Louis; +Cc: 47642

> I cannot replicate it in 'emacs -Q'.
>
> Debugger entered--Lisp error: (error "Selection owner couldn't convert" UTF8_STRING)
>   x-get-selection-internal(CLIPBOARD UTF8_STRING nil nil)

I can replicate exactly the same error:

Debugger entered--Lisp error: (error "Selection owner couldn't convert" UTF8_STRING)
  x-get-selection-internal(CLIPBOARD UTF8_STRING nil nil)
  #f(compiled-function (selection-symbol target-type &optional time-stamp terminal) ...)
  apply(#f(compiled-function (selection-symbol target-type &optional time-stamp terminal) ...)
  gui-backend-get-selection(CLIPBOARD UTF8_STRING)
  gui-get-selection(CLIPBOARD UTF8_STRING)
  gui--selection-value-internal(CLIPBOARD)

after copying an image in Gimp, then exiting Gimp, and trying to paste in Emacs.





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

* bug#47642: 28.0.50; (error "Selection owner couldn't convert" UTF8_STRING)
  2021-04-07 19:58 ` Juri Linkov
@ 2021-04-12 10:11   ` Lars Ingebrigtsen
  2021-04-12 16:03     ` Juri Linkov
  0 siblings, 1 reply; 9+ messages in thread
From: Lars Ingebrigtsen @ 2021-04-12 10:11 UTC (permalink / raw)
  To: Juri Linkov; +Cc: Jean Louis, 47642

Juri Linkov <juri@linkov.net> writes:

> after copying an image in Gimp, then exiting Gimp, and trying to paste
> in Emacs.

I was unable to reproduce that (on Debian/bullseye) -- I just get nil
back from

(x-get-selection-internal 'CLIPBOARD 'UTF8_STRING nil nil)

no matter whether Gimp is running or not (after choosing Edit -> Copy).

In any case -- I'm not sure there's anything we can do on the Emacs
side...  except perhaps change the error message?  "Couldn't convert"
isn't really informative.  "Couldn't get selection from selection
owner", perhaps?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#47642: 28.0.50; (error "Selection owner couldn't convert" UTF8_STRING)
  2021-04-12 10:11   ` Lars Ingebrigtsen
@ 2021-04-12 16:03     ` Juri Linkov
  2021-04-13  7:31       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 9+ messages in thread
From: Juri Linkov @ 2021-04-12 16:03 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Jean Louis, 47642

>> after copying an image in Gimp, then exiting Gimp, and trying to paste
>> in Emacs.
>
> I was unable to reproduce that (on Debian/bullseye) -- I just get nil
> back from
>
> (x-get-selection-internal 'CLIPBOARD 'UTF8_STRING nil nil)
>
> no matter whether Gimp is running or not (after choosing Edit -> Copy).

Here is a complete test case with 100% reproducibility:

1. In GIMP 2.10.18 on Ubuntu create a new image
2. Select a rectangle
3. Copy with Ctrl+C or Edit -> Copy

4. in 'emacs -Q' version 28, GTK+ version 3.24.20
5. evaluating (x-get-selection-internal 'CLIPBOARD 'UTF8_STRING nil nil)
   returns nil

6. quit Gimp
7. evaluate the same (x-get-selection-internal 'CLIPBOARD 'UTF8_STRING nil nil)
8. it fails with

Debugger entered--Lisp error: (error "Selection owner couldn't convert" UTF8_STRING)
  x-get-selection-internal(CLIPBOARD UTF8_STRING nil nil)
  (progn (x-get-selection-internal 'CLIPBOARD 'UTF8_STRING nil nil))
  eval((progn (x-get-selection-internal 'CLIPBOARD 'UTF8_STRING nil nil)) t)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)

This is strange since there is no owner anymore, the selection owner was closed.

It's a big problem for me because I customized
save-interprogram-paste-before-kill to t, and I can't
use copy/paste in Emacs anymore after this error,
because I raises the same error on trying to copy a new text,
so even can't overwrite the old unavailable selection
with a new one in Emacs.  Then I need to switch to
some other app, copy some text from it to the clipboard,
that fixes the broken state of copy/paste in Emacs.

> In any case -- I'm not sure there's anything we can do on the Emacs
> side...  except perhaps change the error message?  "Couldn't convert"
> isn't really informative.  "Couldn't get selection from selection
> owner", perhaps?

I wonder why this error should be raised at all
instead of just returning nil?





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

* bug#47642: 28.0.50; (error "Selection owner couldn't convert" UTF8_STRING)
  2021-04-07 19:37 ` Eli Zaretskii
@ 2021-04-13  5:37   ` Jean Louis
  0 siblings, 0 replies; 9+ messages in thread
From: Jean Louis @ 2021-04-13  5:37 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 47642

* Eli Zaretskii <eliz@gnu.org> [2021-04-07 23:03]:
> > From: Jean Louis <bugs@gnu.support>
> > Date: Wed, 07 Apr 2021 20:51:05 +0300
> > 
> > 
> > I never had this error. It now happens in the longer running instance,
> > it started suddenly. I don;t remember using any chars outside of
> > ASCII. It is invoked when I pres C-k or C-y -- it started mysteriously
> > and then after a while it stopped.
> > 
> > I cannot replicate it in 'emacs -Q'.
> > 
> > Debugger entered--Lisp error: (error "Selection owner couldn't convert" UTF8_STRING)
> 
> Why do you think it's an Emacs problem?  The error message points to
> an external program, which owns the selection.

I get it, this is clear and may be closed.






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

* bug#47642: 28.0.50; (error "Selection owner couldn't convert" UTF8_STRING)
  2021-04-12 16:03     ` Juri Linkov
@ 2021-04-13  7:31       ` Lars Ingebrigtsen
  2021-04-13 16:20         ` Juri Linkov
  0 siblings, 1 reply; 9+ messages in thread
From: Lars Ingebrigtsen @ 2021-04-13  7:31 UTC (permalink / raw)
  To: Juri Linkov; +Cc: Jean Louis, 47642

Juri Linkov <juri@linkov.net> writes:

> Here is a complete test case with 100% reproducibility:

I tried the recipe with Gimp 2.10.22 on Debian/bullseye, but I just get
nil, so I guess there's some difference in how this is handled...

> I wonder why this error should be raised at all
> instead of just returning nil?

That's a really good point -- this low-level error surely can't be of
interest to the Emacs user.  So you're right -- it should just return
nil here.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#47642: 28.0.50; (error "Selection owner couldn't convert" UTF8_STRING)
  2021-04-13  7:31       ` Lars Ingebrigtsen
@ 2021-04-13 16:20         ` Juri Linkov
  2021-04-14 18:23           ` Juri Linkov
  0 siblings, 1 reply; 9+ messages in thread
From: Juri Linkov @ 2021-04-13 16:20 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Jean Louis, 47642

[-- Attachment #1: Type: text/plain, Size: 278 bytes --]

>> I wonder why this error should be raised at all
>> instead of just returning nil?
>
> That's a really good point -- this low-level error surely can't be of
> interest to the Emacs user.  So you're right -- it should just return
> nil here.

Here's the patch that does this:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: selection_owner.patch --]
[-- Type: text/x-diff, Size: 1035 bytes --]

diff --git a/src/xselect.c b/src/xselect.c
index 030f624071..cd6d86bdf4 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -1482,14 +1482,21 @@ x_get_window_property_as_lisp_data (struct x_display_info *dpyinfo,
 	= XGetSelectionOwner (display, selection_atom) != 0;
       unblock_input ();
       if (there_is_a_selection_owner)
-	signal_error ("Selection owner couldn't convert",
-		      actual_type
-		      ? list2 (target_type,
-			       x_atom_to_symbol (dpyinfo, actual_type))
-		      : target_type);
+	{
+	  AUTO_STRING (format, "Selection owner couldn't convert: %s");
+	  CALLN (Fmessage, format,
+		 actual_type
+		 ? list2 (target_type,
+			  x_atom_to_symbol (dpyinfo, actual_type))
+		 : target_type);
+	  return Qnil;
+	}
       else
-	signal_error ("No selection",
-		      x_atom_to_symbol (dpyinfo, selection_atom));
+	{
+	  AUTO_STRING (format, "No selection: %s");
+	  CALLN (Fmessage, format, x_atom_to_symbol (dpyinfo, selection_atom));
+	  return Qnil;
+	}
     }
 
   if (actual_type == dpyinfo->Xatom_INCR)

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

* bug#47642: 28.0.50; (error "Selection owner couldn't convert" UTF8_STRING)
  2021-04-13 16:20         ` Juri Linkov
@ 2021-04-14 18:23           ` Juri Linkov
  0 siblings, 0 replies; 9+ messages in thread
From: Juri Linkov @ 2021-04-14 18:23 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Jean Louis, 47642

tags 47642 fixed
close 47642 28.0.50
quit

>>> I wonder why this error should be raised at all
>>> instead of just returning nil?
>>
>> That's a really good point -- this low-level error surely can't be of
>> interest to the Emacs user.  So you're right -- it should just return
>> nil here.
>
> Here's the patch that does this:

Pushed now.





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

end of thread, other threads:[~2021-04-14 18:23 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-07 17:51 bug#47642: 28.0.50; (error "Selection owner couldn't convert" UTF8_STRING) Jean Louis
2021-04-07 19:37 ` Eli Zaretskii
2021-04-13  5:37   ` Jean Louis
2021-04-07 19:58 ` Juri Linkov
2021-04-12 10:11   ` Lars Ingebrigtsen
2021-04-12 16:03     ` Juri Linkov
2021-04-13  7:31       ` Lars Ingebrigtsen
2021-04-13 16:20         ` Juri Linkov
2021-04-14 18:23           ` Juri Linkov

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).