# HG changeset patch # User Jim Meyering # Date 1266072697 -3600 # Node ID f95da3d366730eb889493d642abceffc092f4c34 # Parent 6a639f241abdbec7523de1737145381a174c8cd3 init.sh: improve portability and efficiency * tests/init.sh (find_exe_basenames_): Remove unnecessary use of "dummy" in a for loop. Use '!', not '^' to select the complement of a character set used in a "case" statement. Use shell variable manipulation, a la ${...%.exe}, rather than sed. Suggestions from Eric Blake. diff --git a/tests/init.sh b/tests/init.sh --- a/tests/init.sh +++ b/tests/init.sh @@ -102,12 +102,13 @@ feb_fail_=0 feb_result_= feb_sp_= - for feb_file_ in $feb_dir_/*.exe dummy; do + for feb_file_ in $feb_dir_/*.exe; do case $feb_file_ in - dummy) continue;; - *[^-a-zA-Z/0-9_.+]*) feb_fail_=1; break;; - *) feb_file_=$(echo $feb_file_ | sed "s,^$feb_dir_/,,;"'s/\.exe$//') - feb_result_="$feb_result_$feb_sp_$feb_file_";; + *[!-a-zA-Z/0-9_.+]*) feb_fail_=1; break;; + *) # Remove leading file name components as well as the .exe suffix. + feb_file_=${feb_file_##*/} + feb_file_=${feb_file_%.exe} + feb_result_="$feb_result_$feb_sp_$feb_file_";; esac feb_sp_=' ' done @@ -129,7 +130,7 @@ esac base_names_=$(find_exe_basenames_ $1) \ - || { echo "$0 (exe-shim): skipping directory: $1" 1>&2; return 1; } + || { echo "$0 (exe_shim): skipping directory: $1" 1>&2; return 1; } if test -n "$base_names_"; then for base_ in $base_names_; do