diff mbox series

kbuild: Add a space after `!` to prevent parsing as file pattern

Message ID 20180816001350.7516-1-mforney@mforney.org (mailing list archive)
State New, archived
Headers show
Series kbuild: Add a space after `!` to prevent parsing as file pattern | expand

Commit Message

Michael Forney Aug. 16, 2018, 12:13 a.m. UTC
Some shells use !(pattern|...|pattern) to match file names not
containing the specified patterns. This may result in output like

  $ ./scripts/clang-version.sh gcc
  ./scripts/clang-version.sh[18]: COPYING: not found
  printf: %d __clang_major__: conversion error
  printf: %d __clang_minor__: conversion error
  printf: %d __clang_patchlevel__: conversion error
  00000
  $

and set CONFIG_CLANG_VERSION to the invalid value '00000'.

POSIX says[0]

  If the pipeline begins with the reserved word ! and command1 is a
  subshell command, the application shall ensure that the ( operator at
  the beginning of command1 is separated from the ! by one or more
  <blank> characters. The behavior of the reserved word ! immediately
  followed by the ( operator is unspecified.

So, just add a <blank> to prevent this.

[0] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_02

Signed-off-by: Michael Forney <mforney@mforney.org>
---
 scripts/clang-version.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Masahiro Yamada Aug. 17, 2018, 1:55 a.m. UTC | #1
2018-08-16 9:13 GMT+09:00 Michael Forney <mforney@mforney.org>:
> Some shells use !(pattern|...|pattern) to match file names not
> containing the specified patterns. This may result in output like
>
>   $ ./scripts/clang-version.sh gcc
>   ./scripts/clang-version.sh[18]: COPYING: not found
>   printf: %d __clang_major__: conversion error
>   printf: %d __clang_minor__: conversion error
>   printf: %d __clang_patchlevel__: conversion error
>   00000
>   $
>
> and set CONFIG_CLANG_VERSION to the invalid value '00000'.
>
> POSIX says[0]
>
>   If the pipeline begins with the reserved word ! and command1 is a
>   subshell command, the application shall ensure that the ( operator at
>   the beginning of command1 is separated from the ! by one or more
>   <blank> characters. The behavior of the reserved word ! immediately
>   followed by the ( operator is unspecified.
>
> So, just add a <blank> to prevent this.
>
> [0] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_02
>
> Signed-off-by: Michael Forney <mforney@mforney.org>

Applied to linux-kbuild. Thanks!


> ---
>  scripts/clang-version.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/clang-version.sh b/scripts/clang-version.sh
> index dbf0a31eb111..e65fbc3079d4 100755
> --- a/scripts/clang-version.sh
> +++ b/scripts/clang-version.sh
> @@ -12,7 +12,7 @@
>
>  compiler="$*"
>
> -if !( $compiler --version | grep -q clang) ; then
> +if ! ( $compiler --version | grep -q clang) ; then
>         echo 0
>         exit 1
>  fi
> --
> 2.17.1
>
diff mbox series

Patch

diff --git a/scripts/clang-version.sh b/scripts/clang-version.sh
index dbf0a31eb111..e65fbc3079d4 100755
--- a/scripts/clang-version.sh
+++ b/scripts/clang-version.sh
@@ -12,7 +12,7 @@ 
 
 compiler="$*"
 
-if !( $compiler --version | grep -q clang) ; then
+if ! ( $compiler --version | grep -q clang) ; then
 	echo 0
 	exit 1
 fi