Yasuhito FUTATSUKI wrote on Tue, 02 Mar 2021 03:21 +00:00:
> On 2021/03/02 0:41, Daniel Shahaf wrote:
> > Yasuhito FUTATSUKI wrote on Mon, Mar 01, 2021 at 10:55:51 +0900:
> >> +++ subversion/tests/cmdline/svneditor.sh.in       (working copy)
> >> @@ -0,0 +1,40 @@
> >> +print_python_path()
> >> +{
> >> +cat <<"_SVN_EOF"
> >> +@PYTHON@x
> >> +_SVN_EOF
> >> +}
> > 
> > I don't see any value of @PYTHON@ that would benefit from being
> > carefully unescaped like this, since Makefile.in already assumes that
> > @PYTHON@ can be used either bare or in double quotes:
> 
> Then, it is just same for expansion of @abs_srcdir@. As the use of
> abs_srcdir in Makefile is not quoted, expansion of @abs_srcdir@ in
> svneditor.sh can be used without quotes, putting aside which is
> good embedding path statically or setting it at run time.
> 

+1

> >> +python="$(print_python_path)"
> >> +python="${python%x}"
> >> +
> >> +script_dir="`cd $(dirname "$0"); pwd`"
> >> +
> > 
> > If «$0» needs quoting, then quotes are needed around the «$(…)»
> > construct as well.
> 
> Sure. And the result of the observation above, bare $0 can be used here,
> unless the scripts are moved or copied to another place.

I don't agree with this part.  If we use a bare $0 and someone tries to
update the build system to support $abs_srcdir/$abs_builddir with spaces
(this was looked into at some point in the past), they'll have one more
mole to whack; and if someone cribs the code from this script into
another script where the assumption 'The dirname of $0 doesn't include
spaces' doesn't hold, they'll have to notice the the double quotes'
absence and add them, or else they'll have a bug waiting to manifest;
whereas if we double-quote the $0, there's no downside.

> To launch svneditor.py script $script_dir can be relative path, this
> can be simply,
> 
>     script_dir=`dirname "$0"`
> 
> Thus, a launcher script (without file header) can be
> 
> [[[
> script_dir=`dirname "$0"`
> exec @PYTHON@ "$script_dir"/svneditor.py "$@"
> ]]]
> 

+1.001

> or one in previous revision of patch (B).

+1

Cheers,

Daniel

Reply via email to