Hi Michael, > On Feb 12, 2024, at 4:14 PM, Michael Albinus wrote: > > Sean Devlin > writes: > >> Hi folks, > > Hi Sean, > >> This is a feature request. >> >> Tramp lets you define a method for out-of-band file copying with the >> tramp-methods keys tramp-copy-program, tramp-copy-args, and so on. >> >> Currently, there is no way to customize the format of remote file >> paths. The function tramp-make-copy-program-file-name is responsible for >> this job, and it is hard-coded to format files as USER@HOST:FILE. > > No. USER@HOST:FILE is only taken if the remote file name contains a > user. Otherwise, it takes > HOST:FILE. You’re correct, my mistake. > >> I was working on a custom Tramp method, and I ran into problems setting >> up OOB copying due to this limitation. >> >> It would be great if there were a key you could set in tramp-methods to >> override this logic. For example, maybe something like: >> >> (tramp-copy-format-file-name my-tramp-make-copy-program-file-name) >> >> Where my-tramp-make-copy-program-file-name is a function taking a vector >> as input and returning a string of the formatted file name (similar to >> tramp-make-copy-program-file-name). >> >> Alternately, maybe a format string (or something similar to >> tramp-login-args/tramp-copy-args) would be sufficient. In my case, I >> just need to add a constant prefix to the remote file name, so a format >> string would be fine. > > Could you pls show your custom method spec, and what > tramp-copy-format-file-name returns for it? Tramp-copy-format-file-name was just a proposal for how this feature might work; it doesn’t exist in my own custom method spec. The copy parameters for my method look like so: (defconst tramp-mymethod '("mymethod" ... (tramp-copy-program “my-copy-program") (tramp-copy-args ((“-id" "%h"))))) Invocations of the copy program look like: my-copy-program -id HOST SRC-FILE DEST-FILE The HOST is not a DNS name in this case; instead, it’s an identifier for a sort of abstract container. For SRC-FILE and DEST-FILE, “remote” file paths just have a fixed prefix string, i.e. it’s not dependent on the “host” name or the user. So all I really need is a way to format “remote” file paths like: (format "myprefix:%s" localname) The current hack I use to implement this is to advise tramp-make-copy-file-name as described in my other message. Thanks for your help! > >> Thanks! > > Best regards, Michael.