[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: master 0ad1c0d: * lisp/net/tramp.el (tramp-handle-make-process): Han
From: |
Michael Albinus |
Subject: |
Re: master 0ad1c0d: * lisp/net/tramp.el (tramp-handle-make-process): Handle shell commands. |
Date: |
Fri, 18 Dec 2020 17:02:29 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> BTW, what would go wrong if you did
> (setq command (mapcar #'tramp-shell-quote-argument command))?
Tried that, didn't work. Imagine, you call "M-x rgrep" on a remote
machine. This ends up in a make-process call with :command
--8<---------------cut here---------------start------------->8---
("/bin/sh" "-c" "find . -type d \\( -path \\*/SCCS -o -path \\*/RCS -o -path
\\*/CVS -o -path \\*/MCVS -o -path \\*/.src -o -path \\*/.svn -o -path \\*/.git
-o -path \\*/.hg -o -path \\*/.bzr -o -path \\*/_MTN -o -path \\*/_darcs -o
-path \\*/\\{arch\\} \\) -prune -o \\! -type d \\( -name .\\#\\* -o -name \\*.o
-o -name \\*\\~ -o -name \\*.bin -o -name \\*.lbin -o -name \\*.so -o -name
\\*.a -o -name \\*.ln -o -name \\*.blg -o -name \\*.bbl -o -name \\*.elc -o
-name \\*.lof -o -name \\*.glo -o -name \\*.idx -o -name \\*.lot -o -name
\\*.fmt -o -name \\*.tfm -o -name \\*.class -o -name \\*.fas -o -name \\*.lib
-o -name \\*.mem -o -name \\*.x86f -o -name \\*.sparcf -o -name \\*.dfsl -o
-name \\*.pfsl -o -name \\*.d64fsl -o -name \\*.p64fsl -o -name \\*.lx64fsl -o
-name \\*.lx32fsl -o -name \\*.dx64fsl -o -name \\*.dx32fsl -o -name
\\*.fx64fsl -o -name \\*.fx32fsl -o -name \\*.sx64fsl -o -name \\*.sx32fsl -o
-name \\*.wx64fsl -o -name \\*.wx32fsl -o -name \\*.fasl -o -name \\*.ufsl -o
-name \\*.fsl -o -name \\*.dxl -o -name \\*.lo -o -name \\*.la -o -name \\*.gmo
-o -name \\*.mo -o -name \\*.toc -o -name \\*.aux -o -name \\*.cp -o -name
\\*.fn -o -name \\*.ky -o -name \\*.pg -o -name \\*.tp -o -name \\*.vr -o -name
\\*.cps -o -name \\*.fns -o -name \\*.kys -o -name \\*.pgs -o -name \\*.tps -o
-name \\*.vrs -o -name \\*.pyc -o -name \\*.pyo \\) -prune -o -type f \\(
-name \\*.cc -o -name \\*.cxx -o -name \\*.cpp -o -name \\*.C -o -name \\*.CC
-o -name \\*.c\\+\\+ \\) -exec grep --color -i -nH --null -e a \\{\\} +")
--8<---------------cut here---------------end--------------->8---
As you see, three arguments "/bin/sh" "-c" and "find ...". If I do your
proposal, Tramp would send finally
--8<---------------cut here---------------start------------->8---
ssh -q -o ControlMaster=auto -o ControlPath='tramp.%C' -o ControlPersist=no -e
none detlef /bin/sh -c find\\\ .\\\ -type\\\ d\\\ \\\\\\\(\\\ -path\\\
\\\\\\\*/SCCS\\\ -o\\\ -path\\\ \\\\\\\*/RCS\\\ -o\\\ -path\\\ \\\\\\\*/CVS\\\
-o\\\ -path\\\ \\\\\\\*/MCVS\\\ -o\\\ -path\\\ \\\\\\\*/.src\\\ -o\\\ -path\\\
\\\\\\\*/.svn\\\ -o\\\ -path\\\ \\\\\\\*/.git\\\ -o\\\ -path\\\ \\\\\\\*/.hg\\\
-o\\\ -path\\\ \\\\\\\*/.bzr\\\ -o\\\ -path\\\ \\\\\\\*/_MTN\\\ -o\\\ -path\\\
\\\\\\\*/_darcs\\\ -o\\\ -path\\\ \\\\\\\*/\\\\\\\{arch\\\\\\\}\\\ \\\\\\\)\\\
-prune\\\ -o\\\ \\\\\\\!\\\ -type\\\ d\\\ \\\\\\\(\\\ -name\\\
.\\\\\\\#\\\\\\\*\\\ -o\\\ -name\\\ \\\\\\\*.o\\\ -o\\\ -name\\\
\\\\\\\*\\\\\\\~\\\ -o\\\ -name\\\ \\\\\\\*.bin\\\ -o\\\ -name\\\
\\\\\\\*.lbin\\\ -o\\\ -name\\\ \\\\\\\*.so\\\ -o\\\ -name\\\ \\\\\\\*.a\\\
-o\\\ -name\\\ \\\\\\\*.ln\\\ -o\\\ -name\\\ \\\\\\\*.blg\\\ -o\\\ -name\\\
\\\\\\\*.bbl\\\ -o\\\ -name\\\ \\\\\\\*.elc\\\ -o\\\ -name\\\ \\\\\\\*.lof\\\
-o\\\ -name\\\ \\\\\\\*.glo\\\ -o\\\ -name\\\ \\\\\\\*.idx\\\ -o\\\ -name\\\
\\\\\\\*.lot\\\ -o\\\ -name\\\ \\\\\\\*.fmt\\\ -o\\\ -name\\\ \\\\\\\*.tfm\\\
-o\\\ -name\\\ \\\\\\\*.class\\\ -o\\\ -name\\\ \\\\\\\*.fas\\\ -o\\\ -name\\\
\\\\\\\*.lib\\\ -o\\\ -name\\\ \\\\\\\*.mem\\\ -o\\\ -name\\\ \\\\\\\*.x86f\\\
-o\\\ -name\\\ \\\\\\\*.sparcf\\\ -o\\\ -name\\\ \\\\\\\*.dfsl\\\ -o\\\
-name\\\ \\\\\\\*.pfsl\\\ -o\\\ -name\\\ \\\\\\\*.d64fsl\\\ -o\\\ -name\\\
\\\\\\\*.p64fsl\\\ -o\\\ -name\\\ \\\\\\\*.lx64fsl\\\ -o\\\ -name\\\
\\\\\\\*.lx32fsl\\\ -o\\\ -name\\\ \\\\\\\*.dx64fsl\\\ -o\\\ -name\\\
\\\\\\\*.dx32fsl\\\ -o\\\ -name\\\ \\\\\\\*.fx64fsl\\\ -o\\\ -name\\\
\\\\\\\*.fx32fsl\\\ -o\\\ -name\\\ \\\\\\\*.sx64fsl\\\ -o\\\ -name\\\
\\\\\\\*.sx32fsl\\\ -o\\\ -name\\\ \\\\\\\*.wx64fsl\\\ -o\\\ -name\\\
\\\\\\\*.wx32fsl\\\ -o\\\ -name\\\ \\\\\\\*.fasl\\\ -o\\\ -name\\\
\\\\\\\*.ufsl\\\ -o\\\ -name\\\ \\\\\\\*.fsl\\\ -o\\\ -name\\\ \\\\\\\*.dxl\\\
-o\\\ -name\\\ \\\\\\\*.lo\\\ -o\\\ -name\\\ \\\\\\\*.la\\\ -o\\\ -name\\\
\\\\\\\*.gmo\\\ -o\\\ -name\\\ \\\\\\\*.mo\\\ -o\\\ -name\\\ \\\\\\\*.toc\\\
-o\\\ -name\\\ \\\\\\\*.aux\\\ -o\\\ -name\\\ \\\\\\\*.cp\\\ -o\\\ -name\\\
\\\\\\\*.fn\\\ -o\\\ -name\\\ \\\\\\\*.ky\\\ -o\\\ -name\\\ \\\\\\\*.pg\\\
-o\\\ -name\\\ \\\\\\\*.tp\\\ -o\\\ -name\\\ \\\\\\\*.vr\\\ -o\\\ -name\\\
\\\\\\\*.cps\\\ -o\\\ -name\\\ \\\\\\\*.fns\\\ -o\\\ -name\\\ \\\\\\\*.kys\\\
-o\\\ -name\\\ \\\\\\\*.pgs\\\ -o\\\ -name\\\ \\\\\\\*.tps\\\ -o\\\ -name\\\
\\\\\\\*.vrs\\\ -o\\\ -name\\\ \\\\\\\*.pyc\\\ -o\\\ -name\\\ \\\\\\\*.pyo\\\
\\\\\\\)\\\ -prune\\\ -o\\\ \\\ -type\\\ f\\\ \\\\\\\(\\\ -name\\\
\\\\\\\*.cc\\\ -o\\\ -name\\\ \\\\\\\*.cxx\\\ -o\\\ -name\\\ \\\\\\\*.cpp\\\
-o\\\ -name\\\ \\\\\\\*.C\\\ -o\\\ -name\\\ \\\\\\\*.CC\\\ -o\\\ -name\\\
\\\\\\\*.c\\\\\\\+\\\\\\\+\\\ \\\\\\\)\\\ -exec\\\ grep\\\ --color\\\ -i\\\
-nH\\\ --null\\\ -e\\\ a\\\ \\\\\\\{\\\\\\\}\\\ \\\+
--8<---------------cut here---------------end--------------->8---
This gives the error
--8<---------------cut here---------------start------------->8---
/bin/sh: 1: find . -type d \( -path \*/SCCS -o -path \*/RCS -o -path \*/CVS -o
-path \*/MCVS -o -path \*/.src -o -path \*/.svn -o -path \*/.git -o -path
\*/.hg -o -path \*/.bzr -o -path \*/_MTN -o -path \*/_darcs -o -path
\*/\{arch\} \) -prune -o \! -type d \( -name .\#\* -o -name \*.o -o -name \*\~
-o -name \*.bin -o -name \*.lbin -o -name \*.so -o -name \*.a -o -name \*.ln -o
-name \*.blg -o -name \*.bbl -o -name \*.elc -o -name \*.lof -o -name \*.glo -o
-name \*.idx -o -name \*.lot -o -name \*.fmt -o -name \*.tfm -o -name \*.class
-o -name \*.fas -o -name \*.lib -o -name \*.mem -o -name \*.x86f -o -name
\*.sparcf -o -name \*.dfsl -o -name \*.pfsl -o -name \*.d64fsl -o -name
\*.p64fsl -o -name \*.lx64fsl -o -name \*.lx32fsl -o -name \*.dx64fsl -o -name
\*.dx32fsl -o -name \*.fx64fsl -o -name \*.fx32fsl -o -name \*.sx64fsl -o -name
\*.sx32fsl -o -name \*.wx64fsl -o -name \*.wx32fsl -o -name \*.fasl -o -name
\*.ufsl -o -name \*.fsl -o -name \*.dxl -o -name \*.lo -o -name \*.la -o -name
\*.gmo -o -name \*.mo -o -name \*.toc -o -name \*.aux -o -name \*.cp -o -name
\*.fn -o -name \*.ky -o -name \*.pg -o -name \*.tp -o -name \*.vr -o -name
\*.cps -o -name \*.fns -o -name \*.kys -o -name \*.pgs -o -name \*.tps -o -name
\*.vrs -o -name \*.pyc -o -name \*.pyo \) -prune -o -type f \( -name \*.cc -o
-name \*.cxx -o -name \*.cpp -o -name \*.C -o -name \*.CC -o -name \*.c\+\+ \)
-exec grep --color -i -nH --null -e a \{\} +: not found
--8<---------------cut here---------------end--------------->8---
> Stefan
Best regards, Michael.
- Re: master 0ad1c0d: * lisp/net/tramp.el (tramp-handle-make-process): Handle shell commands., Stefan Monnier, 2020/12/18
- Re: master 0ad1c0d: * lisp/net/tramp.el (tramp-handle-make-process): Handle shell commands., Michael Albinus, 2020/12/18
- Re: master 0ad1c0d: * lisp/net/tramp.el (tramp-handle-make-process): Handle shell commands., Stefan Monnier, 2020/12/18
- Re: master 0ad1c0d: * lisp/net/tramp.el (tramp-handle-make-process): Handle shell commands., Stefan Monnier, 2020/12/18
- Re: master 0ad1c0d: * lisp/net/tramp.el (tramp-handle-make-process): Handle shell commands.,
Michael Albinus <=
- Re: master 0ad1c0d: * lisp/net/tramp.el (tramp-handle-make-process): Handle shell commands., Stefan Monnier, 2020/12/18
- Re: master 0ad1c0d: * lisp/net/tramp.el (tramp-handle-make-process): Handle shell commands., Michael Albinus, 2020/12/18
- Re: master 0ad1c0d: * lisp/net/tramp.el (tramp-handle-make-process): Handle shell commands., Stefan Monnier, 2020/12/18
- Re: master 0ad1c0d: * lisp/net/tramp.el (tramp-handle-make-process): Handle shell commands., Michael Albinus, 2020/12/19
- Re: master 0ad1c0d: * lisp/net/tramp.el (tramp-handle-make-process): Handle shell commands., Michael Albinus, 2020/12/20
- Re: master 0ad1c0d: * lisp/net/tramp.el (tramp-handle-make-process): Handle shell commands., Stefan Monnier, 2020/12/20
- Re: master 0ad1c0d: * lisp/net/tramp.el (tramp-handle-make-process): Handle shell commands., Andreas Schwab, 2020/12/18