[CRIU] [RFC 10/11] Remove \u and \U GNU-isms from sed command

Pavel Emelyanov xemul at parallels.com
Mon Feb 10 02:40:51 PST 2014


On 02/07/2014 09:04 PM, Christopher Covington wrote:
> This allows building with busybox sed, for example.

After applying this patch compilation breaks on my box:

  CC       protobuf-desc.o
In file included from protobuf-desc.c:97:0:
protobuf-desc-gen.h: In function ‘cr_pb_init’:
protobuf-desc-gen.h:1:1: error: pasting "PB_" and "/" does not give a valid preprocessing token
protobuf-desc-gen.h:1:1: error: ‘PB_’ undeclared (first use in this function)
protobuf-desc-gen.h:1:1: note: each undeclared identifier is reported only once for each function it appears in
protobuf-desc-gen.h:1:1: error: ‘bin’ undeclared (first use in this function)
protobuf-desc-gen.h:1:1: error: expected expression before ‘/’ token

...

This is because the protobuf-desc-get.h contains

$ head -3 protobuf-desc-gen.h 
CR_PB_DESC(/bin, /bin, /bin);
CR_PB_DESC(/boot, /boot, /boot);
CR_PB_DESC(/cgroup, /cgroup, /cgroup);

instead of

$ head -3 protobuf-desc-gen.h 
CR_PB_DESC(INVENTORY, Inventory, inventory);
CR_PB_DESC(STATS, Stats, stats);
CR_PB_DESC(FDINFO, Fdinfo, fdinfo);

> ---
>  scripts/protobuf-gen.sh | 19 +++++++++++++++----
>  1 file changed, 15 insertions(+), 4 deletions(-)
> 
> diff --git a/scripts/protobuf-gen.sh b/scripts/protobuf-gen.sh
> index dad8d12..8e4b3c4 100644
> --- a/scripts/protobuf-gen.sh
> +++ b/scripts/protobuf-gen.sh
> @@ -1,7 +1,18 @@
> +TR="y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/"
> +
>  for x in $(cat include/protobuf-desc.h | \
> -		sed -n '/PB_AUTOGEN_START/,/PB_AUTOGEN_STOP/p' | \
> -		fgrep -v 'PB_AUTOGEN_S' | sed -e 's/,.*$//' -e 's/PB_//'); do
> -	x_la=$(echo $x | tr 'A-Z' 'a-z')
> -	x_uf=$(echo $x_la | sed -e 's/^./\u&/' -e 's/_./\U&/g' -e 's/_//g')
> +		sed -n '/PB_AUTOGEN_START/,/PB_AUTOGEN_STOP/{
> +			/PB_AUTOGET_ST/d;
> +			s/,.*$//;
> +			s/\tPB_//;
> +			p;
> +		}'); do
> +	x_la=$(echo $x | sed $TR)
> +	x_uf=$(echo $x | sed -nr 's/^./&#\\\
> +/; s/_(.)/\\\
> +\1#\\\
> +/g; p' | \
> +		sed -r "/^[A-Z]#\\\\\$/!{ $TR; }" | \
> +		sed -r ':loop; N; s/#?\\\n//; t loop')
>  	echo "CR_PB_DESC($x, $x_uf, $x_la);"
>  done
> 




More information about the CRIU mailing list