emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem copying large text under X


From: Kim F. Storm
Subject: Re: Problem copying large text under X
Date: Thu, 04 Nov 2004 14:18:58 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/21.3.50 (gnu/linux)

"Jan D." <address@hidden> writes:

>>
>> After a (long) while, it does seem to terminate the clipboard protocol
>> and things are back to normal performance.
>>
>> It could seem like the clipboard program (KDE klipper) is slow,
>> but it does seem to get the whole data eventually.
>
> FWIW, klipper on KDE 3.3 does not seem to have this problem, it
> completes almost instantly.

So does it here -- but it seem to immediately requst the same selection
again.  Actually this happens even if I just copy 3 bytes with M-w.

Here's output when I enable TRACE_SELECTION in xselect.c

6469:  XInternAtom LENGTH
6469:  XInternAtom FILE_NAME
6469:  XInternAtom CHARACTER_POSITION
6469:  XInternAtom LINE_NUMBER
6469:  XInternAtom COLUMN_NUMBER
6469:  XInternAtom OWNER_OS
6469:  XInternAtom HOST_NAME
6469:  XInternAtom USER
6469:  XInternAtom CLASS
6469:  XInternAtom NAME
6469: Sending all 76 bytes
6469: Sending all 3 bytes
6469:  XInternAtom LENGTH
6469:  XInternAtom FILE_NAME
6469:  XInternAtom CHARACTER_POSITION
6469:  XInternAtom LINE_NUMBER
6469:  XInternAtom COLUMN_NUMBER
6469:  XInternAtom OWNER_OS
6469:  XInternAtom HOST_NAME
6469:  XInternAtom USER
6469:  XInternAtom CLASS
6469:  XInternAtom NAME
6469: Sending all 76 bytes
6469: Sending all 3 bytes

etc. etc. etc.

So copying to the clipboard works fin -- it just sends it again
forever, because it's asked to do so!!!

Look very much like a bug in klipper, but parhaps there's a way
to make it stop.

Here's the trace for the full xdisp.c [there's additional trace output
that I added, but I suppose you get the picture].

GOT SELECTION REQUEST
GOT SELECTION REQUEST - OK
6160: x_handle_selection_event
6160: x_handle_selection_request
6160:  XInternAtom LENGTH
6160:  XInternAtom FILE_NAME
6160:  XInternAtom CHARACTER_POSITION
6160:  XInternAtom LINE_NUMBER
6160:  XInternAtom COLUMN_NUMBER
6160:  XInternAtom OWNER_OS
6160:  XInternAtom HOST_NAME
6160:  XInternAtom USER
6160:  XInternAtom CLASS
6160:  XInternAtom NAME
6160: Sending all 76 bytes
GOT SELECTION REQUEST
GOT SELECTION REQUEST - OK
6160: x_handle_selection_event
6160: x_handle_selection_request
6160: x_start_queuing_selection_requests 1
6160: Start sending 670817 bytes incrementally (_QT_SELECTION)
6160: Set _QT_SELECTION to number of bytes to send
6160: Send SelectionNotify event
6160: Waiting for ACK (deletion of _QT_SELECTION)
6160:   Waiting 20 secs, 0 usecs
6160: Expected deletion of property _QT_SELECTION
6160: Got ACK
6160: Sending increment of 262040 bytes
6160: Set _QT_SELECTION to increment data
6160: Waiting for increment ACK (deletion of _QT_SELECTION)
6160:   Waiting 20 secs, 0 usecs
6160: Expected deletion of property _QT_SELECTION
6160: Sending increment of 262040 bytes
6160: Set _QT_SELECTION to increment data
6160: Waiting for increment ACK (deletion of _QT_SELECTION)
6160:   Waiting 20 secs, 0 usecs
6160: Expected deletion of property _QT_SELECTION
6160: Sending increment of 146737 bytes
6160: Set _QT_SELECTION to increment data
6160: Waiting for increment ACK (deletion of _QT_SELECTION)
6160:   Waiting 20 secs, 0 usecs
6160: Expected deletion of property _QT_SELECTION
6160: Set _QT_SELECTION to a 0-length chunk to indicate EOF
6160: Done sending incrementally
6160: x_stop_queuing_selection_requests 1
GOT SELECTION REQUEST
GOT SELECTION REQUEST - OK
6160: x_handle_selection_event
6160: x_handle_selection_request
6160:  XInternAtom LENGTH
6160:  XInternAtom FILE_NAME
6160:  XInternAtom CHARACTER_POSITION
6160:  XInternAtom LINE_NUMBER
6160:  XInternAtom COLUMN_NUMBER
6160:  XInternAtom OWNER_OS
6160:  XInternAtom HOST_NAME
6160:  XInternAtom USER
6160:  XInternAtom CLASS
6160:  XInternAtom NAME
6160: Sending all 76 bytes
GOT SELECTION REQUEST
GOT SELECTION REQUEST - OK
6160: x_handle_selection_event
6160: x_handle_selection_request
6160: x_start_queuing_selection_requests 1
6160: Start sending 670817 bytes incrementally (_QT_SELECTION)
6160: Set _QT_SELECTION to number of bytes to send

etc. etc. ad infinum.


I think I have found various problems in the synchronization and
queuing of event between xterm.c, keyboard.c, and xselect.c, but
fixing those problems don't fix this problem.

--
Kim F. Storm  http://www.cua.dk





reply via email to

[Prev in Thread] Current Thread [Next in Thread]