GNU bug report logs - #77731
[PATCH] Add yank-media-handler for copied files from file manager

Previous Next

Package: emacs;

Reported by: Visuwesh <visuweshm <at> gmail.com>

Date: Fri, 11 Apr 2025 09:29:01 UTC

Severity: normal

Tags: patch

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Visuwesh <visuweshm <at> gmail.com>
Cc: luangruo <at> yahoo.com, 77731 <at> debbugs.gnu.org
Subject: bug#77731: [PATCH] Add yank-media-handler for copied files from file manager
Date: Sat, 26 Apr 2025 14:25:39 +0300
Ping!  How can we make progress with this issue?

> From: Visuwesh <visuweshm <at> gmail.com>
> Cc: Eli Zaretskii <eliz <at> gnu.org>,  77731 <at> debbugs.gnu.org
> Date: Fri, 11 Apr 2025 18:41:08 +0530
> 
> [வெள்ளி ஏப்ரல் 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 9 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.