Peter Maydell <[email protected]> writes:

> If clean-includes is creating a git commit for its changes,
> currently it says only "created with scripts/clean-includes".
> Add the command line arguments the user passed us, as useful
> extra information.
>
> Signed-off-by: Peter Maydell <[email protected]>
> ---
>  scripts/clean-includes | 25 ++++++++++++++++++++++++-
>  1 file changed, 24 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/clean-includes b/scripts/clean-includes
> index a45421d2ff..b16eec0a5c 100755
> --- a/scripts/clean-includes
> +++ b/scripts/clean-includes
> @@ -42,6 +42,28 @@
>  GIT=no
>  DUPHEAD=no
>  
> +# Save the original arguments in case we want to put them in
> +# a git commit message, quoted for the shell so that we handle
> +# args with spaces/metacharacters correctly.
> +# The quote_sh() function is the same one we use in configure.

Not quite, configure's is

   quote_sh() {
       printf "%s" "$1" | sed "s,','\\\\'',g; s,.*,'&',"
   }

> +
> +quote_sh() {
> +    for arg in "$@"; do
> +        printf "%s" "$arg" | sed "s,','\\\\'',g; s,.*,'&',"
> +    done
> +}

Is the loop intentional?  We seem to always call the function with
exactly one argument.

> +
> +quote_args() {
> +    while [ $# -gt 0 ]; do
> +        printf "%s" "$(quote_sh "$1")"
> +        shift
> +        if [ $# -gt 0 ]; then
> +            printf " "
> +        fi
> +    done
> +}
> +
> +QUOTEDARGS="$(quote_args "$@")"
>  
>  while true
>  do
> @@ -198,7 +220,8 @@ if [ "$GIT" = "yes" ]; then
>      git commit --signoff -F - <<EOF
>  $GITSUBJ: Clean up includes
>  
> -This commit was created with scripts/clean-includes.
> +This commit was created with scripts/clean-includes:
> + ./scripts/clean-includes $QUOTEDARGS
>  
>  All .c should include qemu/osdep.h first.  The script performs three
>  related cleanups:


Reply via email to