parent
788d0cbe58
commit
53b268ad4a
|
@ -33,6 +33,7 @@ cInclude=1
|
||||||
expandResponseParams "$@"
|
expandResponseParams "$@"
|
||||||
linkType=$(checkLinkType "${params[@]}")
|
linkType=$(checkLinkType "${params[@]}")
|
||||||
|
|
||||||
|
declare -ag positionalArgs=()
|
||||||
declare -i n=0
|
declare -i n=0
|
||||||
nParams=${#params[@]}
|
nParams=${#params[@]}
|
||||||
while (( "$n" < "$nParams" )); do
|
while (( "$n" < "$nParams" )); do
|
||||||
|
@ -54,6 +55,17 @@ while (( "$n" < "$nParams" )); do
|
||||||
c++*) isCxx=1 ;;
|
c++*) isCxx=1 ;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
|
--) # Everything else is positional args!
|
||||||
|
# See: https://github.com/llvm/llvm-project/commit/ed1d07282cc9d8e4c25d585e03e5c8a1b6f63a74
|
||||||
|
|
||||||
|
# Any positional arg (i.e. any argument after `--`) will be
|
||||||
|
# interpreted as a "non flag" arg:
|
||||||
|
if [[ -v "params[$n]" ]]; then nonFlagArgs=1; fi
|
||||||
|
|
||||||
|
positionalArgs=("${params[@]:$n}")
|
||||||
|
params=("${params[@]:0:$((n - 1))}")
|
||||||
|
break;
|
||||||
|
;;
|
||||||
-?*) ;;
|
-?*) ;;
|
||||||
*) nonFlagArgs=1 ;; # Includes a solitary dash (`-`) which signifies standard input; it is not a flag
|
*) nonFlagArgs=1 ;; # Includes a solitary dash (`-`) which signifies standard input; it is not a flag
|
||||||
esac
|
esac
|
||||||
|
@ -207,6 +219,12 @@ if [ "$cc1" = 1 ]; then
|
||||||
extraBefore=()
|
extraBefore=()
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Finally, if we got any positional args, append them to `extraAfter`
|
||||||
|
# now:
|
||||||
|
if [[ "${#positionalArgs[@]}" -gt 0 ]]; then
|
||||||
|
extraAfter+=(-- "${positionalArgs[@]}")
|
||||||
|
fi
|
||||||
|
|
||||||
# Optionally print debug info.
|
# Optionally print debug info.
|
||||||
if (( "${NIX_DEBUG:-0}" >= 1 )); then
|
if (( "${NIX_DEBUG:-0}" >= 1 )); then
|
||||||
# Old bash workaround, see ld-wrapper for explanation.
|
# Old bash workaround, see ld-wrapper for explanation.
|
||||||
|
|
Loading…
Reference in a new issue