On Sat, 2018-07-07 at 15:17 -0400, Noam Postavsky wrote: > Perhaps we should distinguish between file and non-numeric arguments > though? E.g., I think the file-name-quote might not make sense for > the > commands below: > > > ./esh-proc.el\0202:(put 'eshell/kill 'eshell-no-numeric-conversions > > t) > > ./em-unix.el\0167:(put 'eshell/man 'eshell-no-numeric-conversions > > t) > > ./em-unix.el\0664:(put 'eshell/make 'eshell-no-numeric-conversions > > t) > > ./em-unix.el\01050:(put 'eshell/locate 'eshell-no-numeric- > > conversions > > ./em-unix.el\01059:(put 'eshell/occur 'eshell-no-numeric- > > conversions t) > > ./esh-cmd.el\01185:(put 'eshell/which 'eshell-no-numeric- > > conversions t) > > ./em-tramp.el\097:(put 'eshell/su 'eshell-no-numeric-conversions t) > > ./em-tramp.el\0139:(put 'eshell/sudo 'eshell-no-numeric-conversions > > t) After tracing through the execution of eshell some more, I noticed that eshell sets an escaped text property on the arguments when the user escaped them with `\' or quote characters but there is nothing in eshell that does anything with it apparently. I've attached a new patch that checks for the escaped text property on any single character argumentand. I've also added a new symbol property to the following functions that take filename arguments and use that to check instead of the eshell-no-numeric-conversions property. (eshell/cd) (eshell/pushd) (eshell/popd) (eshell/ls) (eshell/rm) (eshell/mkdir) (eshell/rmdir) (eshell/mv) (eshell/cp) (eshell/ln) (eshell/cat) (eshell/du) (eshell/diff) (eshell/addpath) > > The ChangeLog item should at the beginning, as in, > > * lisp/eshell/esh-cmd.el (eshell-lisp-command): Fix bug#30724 by > checking if "*" and "~" are arguments to the current command ... Thanks for the comments and suggestions, I fixed the commit message in the new patch. -- Jonathan Kyle Mitchell