diff mbox

[RESENT,v2] scripts/crosstool-NG.sh.in: patch regex to work with BSD grep

Message ID 1413912022-25263-1-git-send-email-andreas@biessmann.de
State Accepted
Headers show

Commit Message

Andreas Bießmann Oct. 21, 2014, 5:20 p.m. UTC
From: "Jason T. Masker" <jason@masker.net>

BSD grep does not interpret a null alteration. It complains about an
empty sub-expression, e.g.:

$ grep --version && grep -E '^(# |)CT_' .config
grep (BSD grep) 2.5.1-FreeBSD
grep: empty (sub)expression

This patch replaces the null alteration with a zero or once quantifier
which works with both BSD & GNU grep.

$ grep --version && grep -E '^(# )?CT_' .config
grep (BSD grep) 2.5.1-FreeBSD
CT_CONFIGURE_has_xz=y
CT_CONFIGURE_has_svn=y
...
$ ggrep --version && ggrep -E '^(# )?CT_' .config
ggrep (GNU grep) 2.20
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Mike Haertel and others, see
<http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.
CT_CONFIGURE_has_xz=y
CT_CONFIGURE_has_svn=y
...

Signed-off-by: Jason T. Masker <jason@masker.net>
Tested-by: Andreas Bießmann <andreas@biessmann.de>
---
This is just a resent cause the original message could not be applied
properly. I also add my Tested-by, tested on OS X 10.10.

since v1:
 * adopt commit message

Jason's v2/v3 messge:
 * Updated patch to also fix change another occurrence, found in
   kconfig/kconfig.mk.

 kconfig/kconfig.mk         | 2 +-
 scripts/crosstool-NG.sh.in | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Bryan Hundven Dec. 5, 2014, 11:15 a.m. UTC | #1
Andreas, Jason,

On Tue, Oct 21, 2014 at 10:20 AM, Andreas Bießmann <andreas@biessmann.de> wrote:
> From: "Jason T. Masker" <jason@masker.net>
>
> BSD grep does not interpret a null alteration. It complains about an
> empty sub-expression, e.g.:
>
> $ grep --version && grep -E '^(# |)CT_' .config
> grep (BSD grep) 2.5.1-FreeBSD
> grep: empty (sub)expression
>
> This patch replaces the null alteration with a zero or once quantifier
> which works with both BSD & GNU grep.
>
> $ grep --version && grep -E '^(# )?CT_' .config
> grep (BSD grep) 2.5.1-FreeBSD
> CT_CONFIGURE_has_xz=y
> CT_CONFIGURE_has_svn=y
> ...
> $ ggrep --version && ggrep -E '^(# )?CT_' .config
> ggrep (GNU grep) 2.20
> Copyright (C) 2014 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
>
> Written by Mike Haertel and others, see
> <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.
> CT_CONFIGURE_has_xz=y
> CT_CONFIGURE_has_svn=y
> ...
>
> Signed-off-by: Jason T. Masker <jason@masker.net>
> Tested-by: Andreas Bießmann <andreas@biessmann.de>
> ---
> This is just a resent cause the original message could not be applied
> properly. I also add my Tested-by, tested on OS X 10.10.
>
> since v1:
>  * adopt commit message
>
> Jason's v2/v3 messge:
>  * Updated patch to also fix change another occurrence, found in
>    kconfig/kconfig.mk.
>
>  kconfig/kconfig.mk         | 2 +-
>  scripts/crosstool-NG.sh.in | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kconfig/kconfig.mk b/kconfig/kconfig.mk
> index cb9f91c..06e022c 100644
> --- a/kconfig/kconfig.mk
> +++ b/kconfig/kconfig.mk
> @@ -38,7 +38,7 @@ defconfig:
>  # Always be silent, the stdout an be >.config
>  extractconfig:
>         @$(awk) 'BEGIN { dump=0; }                                                  \
> -                dump==1 && $$0~/^\[.....\][[:space:]]+(# |)CT_/ {                  \
> +                dump==1 && $$0~/^\[.....\][[:space:]]+(# )?CT_/ {                  \
>                      $$1="";                                                        \
>                      gsub("^[[:space:]]","");                                       \
>                      print;                                                         \
> diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in
> index cd65d5b..53ac552 100644
> --- a/scripts/crosstool-NG.sh.in
> +++ b/scripts/crosstool-NG.sh.in
> @@ -125,7 +125,7 @@ CT_DoLog INFO "Build started ${CT_STAR_DATE_HUMAN}"
>  # We really need to extract from ,config and not .config.2, as we
>  # do want the kconfig's values, not our mangled config with arrays.
>  CT_DoStep DEBUG "Dumping user-supplied crosstool-NG configuration"
> -CT_DoExecLog DEBUG ${grep} -E '^(# |)CT_' .config
> +CT_DoExecLog DEBUG ${grep} -E '^(# )?CT_' .config
>  CT_EndStep
>
>  CT_DoLog DEBUG "Unsetting and unexporting MAKEFLAGS"
> --
> 1.9.3 (Apple Git-50)
>
>
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq
>

I've accepted this version of the patch.
Thanks goes to both of you!

Cheers,

-Bryan
/me squints at the regular expression a few times... sticks thumbs up
:D ... runs away

--
For unsubscribe information see http://sourceware.org/lists.html#faq
diff mbox

Patch

diff --git a/kconfig/kconfig.mk b/kconfig/kconfig.mk
index cb9f91c..06e022c 100644
--- a/kconfig/kconfig.mk
+++ b/kconfig/kconfig.mk
@@ -38,7 +38,7 @@  defconfig:
 # Always be silent, the stdout an be >.config
 extractconfig:
 	@$(awk) 'BEGIN { dump=0; }                                                  \
-	         dump==1 && $$0~/^\[.....\][[:space:]]+(# |)CT_/ {                  \
+	         dump==1 && $$0~/^\[.....\][[:space:]]+(# )?CT_/ {                  \
 	             $$1="";                                                        \
 	             gsub("^[[:space:]]","");                                       \
 	             print;                                                         \
diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in
index cd65d5b..53ac552 100644
--- a/scripts/crosstool-NG.sh.in
+++ b/scripts/crosstool-NG.sh.in
@@ -125,7 +125,7 @@  CT_DoLog INFO "Build started ${CT_STAR_DATE_HUMAN}"
 # We really need to extract from ,config and not .config.2, as we
 # do want the kconfig's values, not our mangled config with arrays.
 CT_DoStep DEBUG "Dumping user-supplied crosstool-NG configuration"
-CT_DoExecLog DEBUG ${grep} -E '^(# |)CT_' .config
+CT_DoExecLog DEBUG ${grep} -E '^(# )?CT_' .config
 CT_EndStep
 
 CT_DoLog DEBUG "Unsetting and unexporting MAKEFLAGS"