@@ -104,17 +104,17 @@ it is interested in.
104104
105105Requesting data is done by sending an escape code of the form::
106106
107- OSC _dnd_code ; t=r ; MIME type ST
107+ OSC _dnd_code ; t=r:r=request_id ; MIME type ST
108108
109109This will request data for the specified MIME type. The terminal must respond
110110with a series of escape codes of the form::
111111
112- OSC _dnd_code ; t=r ; base64 encoded data ST
112+ OSC _dnd_code ; t=r:r=request_id ; base64 encoded data ST
113113
114114End of data is indicated by an empty payload. If some error occurs while
115115getting the data, the terminal must send an escape code of the form::
116116
117- OSC _dnd_code ; t=R ; POSIX error name ST
117+ OSC _dnd_code ; t=R:r=request_id ; POSIX error name ST
118118
119119Here POSIX error name is a POSIX symbolic error name such as ``ENOENT `` or
120120``EIO `` or the value ``EUNKNOWN `` for an unknown error. Note that if a client
@@ -138,27 +138,27 @@ clients can first request the :rfc:`text/uri-list <2483>` MIME
138138type to get a list of dropped URIs. For every URI in the list, they can
139139send the terminal emulator a data request of the form::
140140
141- OSC _dnd_code ; t=s ; text/uri-list:idx ST
141+ OSC _dnd_code ; t=s:r=request_id ; text/uri-list:idx ST
142142
143143Here ``idx `` is the zero based index into the array of MIME types in
144144the ``text/uri-list `` entry. The terminal will then read the file and
145145transmit the data as for a normal MIME data request.
146146
147- Terminals must reply with ``t=R ; ENOENT `` if the index is out of bounds.
147+ Terminals must reply with ``t=R:r=request_id ; ENOENT `` if the index is out of bounds.
148148If the client does not first request the ``text/uri-list `` MIME type or that
149149MIME type is not present in the drop, the terminal must reply with
150- ``t=R ; EINVAL ``. Terminals must support at least ``file:// `` URIs.
150+ ``t=R:r=request_id ; EINVAL ``. Terminals must support at least ``file:// `` URIs.
151151If the client requests an entry that is not a supported URI type the
152- terminal must reply with ``t=R ; EUNKNOWN ``.
152+ terminal must reply with ``t=R:r=request_id ; EUNKNOWN ``.
153153
154154Terminals must ONLY send data for regular files. Symbolic links must be
155155resolved and the corresponding file read. If the terminal does not have
156- permission to read the file it must reply with ``t=R ; EPERM ``. Terminals
157- must respond with ``t=R ; EINVAL `` if the file is not a regular file after
158- resolving symlinks and ``t=R ; ENOENT `` if the file does not exist. If an
159- I/O error occurs the terminal must send ``t=R ; EIO ``.
156+ permission to read the file it must reply with ``t=R:r=request_id ; EPERM ``. Terminals
157+ must respond with ``t=R:r=request_id ; EINVAL `` if the file is not a regular file after
158+ resolving symlinks and ``t=R:r=request_id ; ENOENT `` if the file does not exist. If an
159+ I/O error occurs the terminal must send ``t=R:r=request_id ; EIO ``.
160160
161- For security reasons, terminals must reply with ``t=R ; EPERM `` if the drag
161+ For security reasons, terminals must reply with ``t=R:r=request_id ; EPERM `` if the drag
162162originated in the same window as the drop, this prevents malicious programs
163163from reading files on the computer by starting their own drag. This is a
164164defense in depth feature since drags can only be started by the terminal, but
@@ -168,7 +168,7 @@ it helps in case of accidental drag starts and drops into the same window.
168168Reading remote directories
169169+++++++++++++++++++++++++++
170170
171- If the file is actually a directory the terminal must respond with ``t=d:x=idx ; payload ``.
171+ If the file is actually a directory the terminal must respond with ``t=d:x=idx:r=request_id ; payload ``.
172172Here payload is a null byte separated list of entries in the directory that are
173173either regular files, directories or symlinks. The payload must be base64
174174encoded and might be chunked if the directory has a lot of entries. The first
@@ -180,10 +180,10 @@ number.
180180
181181``idx `` is an arbitrary 32 bit integer that acts as a handle to this
182182directory. The client can now read the files in this directory using requests of the form
183- ``t=d:x=idx:y=num ``, here ``num `` is the index into the list of
183+ ``t=d:x=idx:y=num:r=request_id ``, here ``num `` is the index into the list of
184184directory entries previously transmitted to the client. Here, ``1 `` will
185185correspond to the first entry in the directory. Once the client is done
186- reading a directory it should transmit ``t=d:x=idx `` to the terminal. The
186+ reading a directory it should transmit ``t=d:x=idx:r=request_id `` to the terminal. The
187187terminal can then free any resources associated with that directory. The
188188directory handle is now invalid and terminals must return ``EINVAL `` if the
189189client sends a request using and invalid directory handle. It is recommended
@@ -352,7 +352,7 @@ Key Value Default Description
352352 ``P `` - Change drag image or start drag
353353 ``e `` - a drag offer event occurred
354354
355- ``m`` Chunking indicator ``0`` ``0`` or ``i ``
355+ ``m`` Chunking indicator ``0`` ``0`` or ``1 ``
356356
357357``i `` Postive integer ``0 `` This id is for use by multiplexers.
358358 When it is set, all responses from
@@ -363,6 +363,8 @@ Key Value Default Description
363363 means rejected, ``1 `` means copy and
364364 ``2 `` means move.
365365
366+ ``r `` Positive integer ``0 `` The request id
367+
366368**Keys for location **
367369-----------------------------------------------------------
368370``x `` Integer ``0 `` Cell x-coordinate origin is 0, 0 at top left of screen
0 commit comments