GNU bug report logs -
#77731
[PATCH] Add yank-media-handler for copied files from file manager
Previous Next
Full log
View this message in rfc822 format
[வெள்ளி ஏப்ரல் 11, 2025] Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote:
>> The name and the doc string should be more specific to the file
>> managers for which this is supposed to work. I doubt that these
>> details are general enough to say that any file manager capable of
>> copy/pasting files will behave like that.
>
>> Btw, isn't copy/paste of files similar or maybe even equivalent to
>> drag-n-drop? If so, perhaps a better way would be to use the DND
>> machinery we have in Emacs? Adding Po Lu in case he has opinions or
>> comments about this.
>
> Regrettably not, since the formats concerned differ subtly and DND gives
> a weight to negotiating actions on dropped data that is undue for a
> simple copy/paste operation. The selection formats you must recognize
> are `text/uri-list' (which is identical to its Xdnd variant), FILE_NAME,
> and FILE, which are NULL-separated lists of strings, and numerous ad hoc
> formats defined by file managers and desktop environments.
What's wrong with doing the following?
(defun message--yank-media-copied-files-handler (_ data)
"Attach files copied/cut from the file manager.
DATA is a string where the first line is the operation to
perform: copy or cut. Rest are file: links. The operation is
always ignored, and the files are only attached."
(let ((files (split-string data "[\0\n\r]" t)))
(dnd-handle-multiple-urls (selected-window)
(cdr files)
(pcase (car files)
(`"copy" 'copy)
(`"cut" 'move)
(_ 'private)))))
It calls mml-dnd-attach-file in message-mode buffer.
> If you like, you may implement a rough draft that functions
> satisfactorily with whatever file managers you test, and I shall supply
> its deficiencies as best I can.
Considering that text/uri-list and friends seem to be considered in
others part of the code, is there a function that would parse its
format?
This bug report was last modified 62 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.