On 11/13/25 11:56, Alyssa Ross wrote: > Demi Marie Obenour writes: > >> On 11/13/25 07:23, Alyssa Ross wrote: >>> Demi Marie Obenour writes: >>> >>>> No other functional change intended. >>>> >>>> Signed-off-by: Demi Marie Obenour >>>> --- >>>> scripts/run-qemu.sh | 24 ++++++++++++++---------- >>>> 1 file changed, 14 insertions(+), 10 deletions(-) >>> >>> This is a lot of changes all in one, without individual explanation. >>> I'd appreciate it if they could be broken up and explained, because I'm >>> going to have to ask what the purpose of each change is. >>> >>>> diff --git a/scripts/run-qemu.sh b/scripts/run-qemu.sh >>>> index 64fd29259ab108bc547cb7c74623ae9dc288b3b7..9c6c8193bbeba5916038c82d8f76992051719c19 100755 >>>> --- a/scripts/run-qemu.sh >>>> +++ b/scripts/run-qemu.sh >>>> @@ -1,11 +1,15 @@ >>>> -#!/bin/sh -ue >>>> +#!/bin/sh -- >>> >>> The idea here is to be robust against the script being invoked with >>> argv[0] set to "-c" or something? >> >> Correct. > > Seems a little paranoid but I suppose it doesn't hurt. I'd take a > treewide change that did this for every /bin/sh shebang. Will do later. >>>> +if [ -n ${ARCH+test} ]; then >>>> + ARCH=$(uname -m) >>>> +fi >>>> >>>> -case "${ARCH:="$(uname -m)"}" in >>>> +case $ARCH in >>>> aarch64) >>>> machine=virt,accel=kvm:tcg,gic-version=3,iommu=smmuv3 >>>> ;; >>> >>> Why is this better? >> >> If uname exits with a non-zero status, the script will exit rather >> than continuing. > > I see — makes sense. And why is the check not just the following? > > if [ -z "${ARCH-}" ]; then That works just as well. >>>> - set -- "$@" -append "${append:+$append }$1" >>>> + set -- "$@" -append ${append:+"$append "}"$1" >>>> i=$((i + 2)) >>>> shift >>>> continue >>> >>> Don't understand this one. We've gone from one set of quotes to two >>> sequential ones. >> >> I remember reading that the first version might not conform to POSIX. >> I'm not sure if it matters though. > > POSIX says[1]: > >> If a parameter expansion occurs inside double-quotes: >> >> * Pathname expansion shall not be performed on the results of the expansion. >> >> * Field splitting shall not be performed on the results of the expansion. > > Seems desirable to me. > > [1]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_02 I recall reading about shells not properly handling ${append:+"$append"} properly when the whole expansion is itself quoted The double quotes around "$append" prevent it from being expanded. -- Sincerely, Demi Marie Obenour (she/her/hers)