e91b5670e3
Makes for easier to read code imo, case-in-point there was a duplicate test for `$p = -E` before. While doing this little bit of refactor I changed rest -> kept because that makes more sense, rest sounds like its the rest of params while kept says these are the params that we've kept. I tested for no change in behavior using the following bash script: ``` reset() { cInclude=1 cxxInclude=1 cxxLibrary=1 dontLink=0 isCxx=0 nonFlagArgs=0 params=() } parseParams() { declare -i n=0 nParams=${#params[@]} while (("$n" < "$nParams")); do p=${params[n]} p2=${params[n + 1]:-} # handle `p` being last one case "$p" in -[cSEM] | -MM) dontLink=1 ;; -cc1) cc1=1 ;; -nostdinc) cInclude=0 cxxInclude=0 ;; -nostdinc++) cxxInclude=0 ;; -nostdlib) cxxLibrary=0 ;; -x) case "$p2" in *-header) dontLink=1 ;; c++*) isCxx=1 ;; esac ;; -?*) ;; *) nonFlagArgs=1 ;; # Includes a solitary dash (`-`) which signifies standard input; it is not a flag esac n+=1 done } for p in c S E M MM; do reset params=-$p parseParams [[ $dontLink != 1 ]] && echo "expected dontLink=1 for params:${params[@]}" >&2 && exit 1 done reset params=(-x foo-header) parseParams [[ $dontLink != 1 ]] && echo "expected dontLink=1 for params:${params[@]}" >&2 && exit 1 reset params=(-x c++-foo) parseParams [[ $isCxx != 1 ]] && echo "expected isCxx=1 for params:${params[@]}" >&2 && exit 1 reset params=-nostdlib parseParams [[ $cxxLibrary != 0 ]] && echo "expected cxxLibrary=0 for params:${params[@]}" >&2 && exit 1 reset params=-nostdinc parseParams [[ $cInclude != 0 ]] && echo "expected cInclude=0 for params:${params[@]}" >&2 && exit 1 [[ $cxxInclude != 0 ]] && echo "expected cxxInclude=0 for params:${params[@]}" >&2 && exit 1 reset params=-nostdinc++ parseParams [[ $cxxInclude != 0 ]] && echo "expected cxxInclude=0 for params:${params[@]}" >&2 && exit 1 reset params=-cc1 parseParams [[ $cc1 != 1 ]] && echo "expected cc1=1 for params:${params[@]}" >&2 && exit 1 reset params=- parseParams [[ $nonFlagArgs != 1 ]] && echo "expected nonFlagArgs=1 for params:${params[@]}" >&2 && exit 1 reset params=bleh parseParams [[ $nonFlagArgs != 1 ]] && echo "expected nonFlagArgs=1 for params:${params[@]}" >&2 && exit 1 reset params=-? parseParams [[ $nonFlagArgs != 0 ]] && echo "expected nonFlagArgs=0 for params:${params[@]}" >&2 && exit 1 exit 0 ``` |
||
---|---|---|
.. | ||
add-flags.sh | ||
add-hardening.sh | ||
cc-wrapper.sh | ||
default.nix | ||
fortran-hook.sh | ||
gnat-wrapper.sh | ||
setup-hook.sh |