|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen/tools/get-fields.sh: Use printf for POSIX compat
On Mon, 14 Dec 2015 13:22:28 -0500
Alex Xu <alex_y_xu@xxxxxxxx> wrote:
> xen/tools/get-fields.sh used echo -n which is not POSIX compatible and
> breaks building with dash (shell). Change it to use printf "%s" which
> is usable everywhere.
>
> Signed-off-by: Alex Xu <alex_y_xu@xxxxxxxx>
> ---
> xen/tools/get-fields.sh | 30 +++++++++++++++---------------
> 1 file changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/xen/tools/get-fields.sh b/xen/tools/get-fields.sh
> index 4547dc2..9c0b286 100644
> --- a/xen/tools/get-fields.sh
> +++ b/xen/tools/get-fields.sh
> @@ -130,9 +130,9 @@ handle_field ()
> echo " \\"
> if [ -z "$4" ]
> then
> - echo -n "$1(_d_)->$3 = (_s_)->$3;"
> + printf "%s" "$1(_d_)->$3 = (_s_)->$3;"
> else
> - echo -n "$1XLAT_${2}_HNDL_$(echo $3 | $SED
> 's,\.,_,g')(_d_, _s_);"
> + printf "%s" "$1XLAT_${2}_HNDL_$(echo $3 |
> $SED 's,\.,_,g')(_d_, _s_);" fi
> elif [ -z "$(echo "$5" | $SED 's,[^{}],,g')" ]
> then
> @@ -142,7 +142,7 @@ for line in sys.stdin.readlines():
> print re.subn(r"\s*(struct|union)\s+(compat_)?(\w+)\s.*", r"\3",
> line)[0].rstrip() ')
> echo " \\"
> - echo -n "${1}XLAT_$tag(&(_d_)->$3, &(_s_)->$3);"
> + printf "%s" "${1}XLAT_$tag(&(_d_)->$3, &(_s_)->$3);"
> else
> local level=1 kind= fields= id= array= arrlvl=1
> array_type= type= token for token in $5
> @@ -156,7 +156,7 @@ for line in sys.stdin.readlines():
> if [ $kind = union ]
> then
> echo " \\"
> - echo -n "${1}switch
> ($(echo $3 | $SED 's,\.,_,g')) {"
> + printf "%s"
> "${1}switch ($(echo $3 | $SED 's,\.,_,g')) {" fi
> fi
> ;;
> @@ -168,7 +168,7 @@ for line in sys.stdin.readlines():
> if [ $level = 1 -a $kind = union ]
> then
> echo " \\"
> - echo -n "$1}"
> + printf "%s" "$1}"
> fi
> ;;
> "[")
> @@ -223,7 +223,7 @@ for line in sys.stdin.readlines():
> if [ $kind = union ]
> then
> echo " \\"
> - echo -n "${1}case
> XLAT_${2}_$(echo $3.$id | $SED 's,\.,_,g'):"
> + printf "%s" "${1}case
> XLAT_${2}_$(echo $3.$id | $SED 's,\.,_,g'):" handle_field "$1 " $2
> $3.$id "$type" "$fields" elif [ -z "$array" -a -z "$array_type" ]
> then
> @@ -239,7 +239,7 @@ for line in sys.stdin.readlines():
> if [ $kind = union ]
> then
> echo " \\"
> - echo -n "$1
> break;"
> + printf "%s" "$1
> break;" fi
> fi
> ;;
> @@ -259,7 +259,7 @@ copy_array ()
> {
> echo " \\"
> echo "${1}if ((_d_)->$2 != (_s_)->$2) \\"
> - echo -n "$1 memcpy((_d_)->$2, (_s_)->$2,
> sizeof((_d_)->$2));"
> + printf "%s" "$1 memcpy((_d_)->$2, (_s_)->$2,
> sizeof((_d_)->$2));" }
>
> handle_array ()
> @@ -268,7 +268,7 @@ handle_array ()
> echo " \\"
> echo "$1{ \\"
> echo "$1 unsigned int $i; \\"
> - echo -n "$1 for ($i = 0; $i < "${4%%;*}"; ++$i) {"
> + printf "%s" "$1 for ($i = 0; $i < "${4%%;*}"; ++$i) {"
> if [ "$4" = "${4#*;}" ]
> then
> handle_field "$1 " $2 $3[$i] "$5" "$6"
> @@ -277,13 +277,13 @@ handle_array ()
> fi
> echo " \\"
> echo "$1 } \\"
> - echo -n "$1}"
> + printf "%s" "$1}"
> }
>
> build_body ()
> {
> echo
> - echo -n "#define XLAT_$1(_d_, _s_) do {"
> + printf "%s" "#define XLAT_$1(_d_, _s_) do {"
> local level=1 fields= id= array= arrlvl=1 array_type= type=
> token for token in $2
> do
> @@ -389,7 +389,7 @@ check_field ()
> struct|union)
> ;;
> [a-zA-Z_]*)
> - echo -n " CHECK_${n#xen_}"
> + printf "%s" "
> CHECK_${n#xen_}" break
> ;;
> *)
> @@ -400,9 +400,9 @@ check_field ()
> done
> elif [ $n = 0 ]
> then
> - echo -n " CHECK_FIELD_($1, $2, $3)"
> + printf "%s" " CHECK_FIELD_($1, $2, $3)"
> else
> - echo -n " CHECK_SUBFIELD_${n}_($1, $2,
> $(echo $3 | $SED 's!\.!, !g'))"
> + printf "%s" " CHECK_SUBFIELD_${n}_($1, $2,
> $(echo $3 | $SED 's!\.!, !g'))" fi
> else
> local level=1 fields= id= token
> @@ -446,7 +446,7 @@ build_check ()
> if [ $level = 1 ]
> then
> kind=$token
> - echo -n " CHECK_SIZE_($kind, $1)"
> + printf "%s" " CHECK_SIZE_($kind,
> $1)" elif [ $level = 2 ]
> then
> fields=" "
Argh, claws mangled the formatting. Please ignore.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |