Hi Ralf, Ralf Wildenhues <[EMAIL PROTECTED]> writes:
> Hello Mark, everyone, > > I'm all for making gnulib-tool portable in practice (and not only in > theory), if only to avoid further such bug reports; but this patch > definitely changes the semantics (the `!' "binds" higher than `||', > if one can reasonably speak about "binding" in shell grammar). Good catch. > Suggested patch below. OK? I like your change as I think it makes it easier to understand. I suggest you add quotes around $module (i.e., "$module") to be consistent with all of the other uses (see for example the case in func_verify_nontests_module()). Thanks! -- Mark Index: gnulib-tool =================================================================== RCS file: /sources/gnulib/gnulib/gnulib-tool,v retrieving revision 1.137 diff -u -p -r1.137 gnulib-tool --- gnulib-tool 15 Aug 2006 11:52:39 -0000 1.137 +++ gnulib-tool 21 Aug 2006 08:27:14 -0000 @@ -629,15 +629,14 @@ func_all_modules () # verifies a module name func_verify_module () { - if ! { test -f "$gnulib_dir/modules/$module" \ + if { test -f "$gnulib_dir/modules/$module" \ || { test -n "$local_gnulib_dir" && test -d "$local_gnulib_dir/modules" \ - && test -f "$local_gnulib_dir/modules/$module"; }; } \ - || test "CVS" = "$module" \ - || test "ChangeLog" = "$module" \ - || test "COPYING" = "$module" \ - || test "README" = "$module" \ - || test "TEMPLATE" = "$module" \ - || test "TEMPLATE-TESTS" = "$module"; then + && test -f "$local_gnulib_dir/modules/$module"; }; } && + case "$module" in + CVS | ChangeLog | COPYING | README | TEMPLATE | TEMPLATE-TESTS) false;; + *) :;; + esac + then :; else echo "gnulib-tool: module $module doesn't exist" 1>&2 module= fi