From: Alexander Kurtz <kurtz.alex@googlemail.com>
To: The development of GNU GRUB <grub-devel@gnu.org>
Subject: Re: [PATCH] add proper variable quoting to grub-mkconfig_lib (Debian bug #612417)
Date: Sat, 09 Apr 2011 16:32:11 +0200 [thread overview]
Message-ID: <1302359531.3199.3.camel@localhost> (raw)
In-Reply-To: <4D9F1141.7090504@gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 318 bytes --]
Am Freitag, den 08.04.2011, 15:44 +0200 schrieb Vladimir 'φ-coder/phcoder' Serbinenko:
> The (big) patch is mostly fine except:
> -Please don't add brances where not needed
> -Please don't add quoting to constants like x since x or "x" are
> strictly identical.
Better now?
Best regards
Alexander Kurtz
[-- Attachment #1.2: quote-big-adjusted.patch --]
[-- Type: text/x-patch, Size: 6205 bytes --]
diff -Naur bazaar/util/grub-mkconfig_lib.in big-adjusted/util/grub-mkconfig_lib.in
--- bazaar/util/grub-mkconfig_lib.in 2011-04-08 18:17:27.789166000 +0200
+++ big-adjusted/util/grub-mkconfig_lib.in 2011-04-09 15:23:57.974913718 +0200
@@ -16,19 +16,19 @@
transform="@program_transform_name@"
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datarootdir=@datarootdir@
-datadir=@datadir@
-bindir=@bindir@
-sbindir=@sbindir@
-pkgdatadir=${datadir}/`echo @PACKAGE_TARNAME@ | sed "${transform}"`
+prefix="@prefix@"
+exec_prefix="@exec_prefix@"
+datarootdir="@datarootdir@"
+datadir="@datadir@"
+bindir="@bindir@"
+sbindir="@sbindir@"
+pkgdatadir="${datadir}/`echo "@PACKAGE_TARNAME@" | sed "${transform}"`"
if test "x$grub_probe" = x; then
- grub_probe=${sbindir}/`echo grub-probe | sed ${transform}`
+ grub_probe="${sbindir}/`echo grub-probe | sed "${transform}"`"
fi
if test "x$grub_mkrelpath" = x; then
- grub_mkrelpath=${bindir}/`echo grub-mkrelpath | sed ${transform}`
+ grub_mkrelpath="${bindir}/`echo grub-mkrelpath | sed "${transform}"`"
fi
if $(which gettext >/dev/null 2>/dev/null) ; then
@@ -44,20 +44,20 @@
make_system_path_relative_to_its_root ()
{
- ${grub_mkrelpath} $1
+ "${grub_mkrelpath}" "$1"
}
is_path_readable_by_grub ()
{
- path=$1
+ path="$1"
# abort if path doesn't exist
- if test -e $path ; then : ;else
+ if test -e "$path" ; then : ;else
return 1
fi
# abort if file is in a filesystem we can't read
- if ${grub_probe} -t fs $path > /dev/null 2>&1 ; then : ; else
+ if "${grub_probe}" -t fs "$path" > /dev/null 2>&1 ; then : ; else
return 1
fi
@@ -72,24 +72,24 @@
convert_system_path_to_grub_path ()
{
- path=$1
+ path="$1"
grub_warn "convert_system_path_to_grub_path() is deprecated. Use prepare_grub_to_access_device() instead."
# abort if GRUB can't access the path
- if is_path_readable_by_grub ${path} ; then : ; else
+ if is_path_readable_by_grub "${path}" ; then : ; else
return 1
fi
- if drive=`${grub_probe} -t drive $path` ; then : ; else
+ if drive="`"${grub_probe}" -t drive "$path"`" ; then : ; else
return 1
fi
- if relative_path=`make_system_path_relative_to_its_root $path` ; then : ; else
+ if relative_path="`make_system_path_relative_to_its_root "$path"`" ; then : ; else
return 1
fi
- echo ${drive}${relative_path}
+ echo "${drive}${relative_path}"
}
save_default_entry ()
@@ -103,15 +103,15 @@
prepare_grub_to_access_device ()
{
- device=$1
+ device="$1"
# Abstraction modules aren't auto-loaded.
- abstraction="`${grub_probe} --device ${device} --target=abstraction`"
+ abstraction="`"${grub_probe}" --device "${device}" --target=abstraction`"
for module in ${abstraction} ; do
echo "insmod ${module}"
done
- partmap="`${grub_probe} --device ${device} --target=partmap`"
+ partmap="`"${grub_probe}" --device "${device}" --target=partmap`"
for module in ${partmap} ; do
case "${module}" in
netbsd | openbsd)
@@ -121,15 +121,15 @@
esac
done
- fs="`${grub_probe} --device ${device} --target=fs`"
+ fs="`"${grub_probe}" --device "${device}" --target=fs`"
for module in ${fs} ; do
echo "insmod ${module}"
done
# If there's a filesystem UUID that GRUB is capable of identifying, use it;
# otherwise set root as per value in device.map.
- echo "set root='`${grub_probe} --device ${device} --target=drive`'"
- if fs_uuid="`${grub_probe} --device ${device} --target=fs_uuid 2> /dev/null`" ; then
+ echo "set root='`"${grub_probe}" --device "${device}" --target=drive`'"
+ if fs_uuid="`"${grub_probe}" --device "${device}" --target=fs_uuid 2> /dev/null`" ; then
echo "search --no-floppy --fs-uuid --set=root ${fs_uuid}"
fi
}
@@ -149,21 +149,21 @@
version_test_numeric ()
{
- local a=$1
- local cmp=$2
- local b=$3
+ local a="$1"
+ local cmp="$2"
+ local b="$3"
if [ "$a" = "$b" ] ; then
- case $cmp in
+ case "$cmp" in
ge|eq|le) return 0 ;;
gt|lt) return 1 ;;
esac
fi
if [ "$cmp" = "lt" ] ; then
- c=$a
- a=$b
- b=$c
+ c="$a"
+ a="$b"
+ b="$c"
fi
- if (echo $a ; echo $b) | sort -n | head -n 1 | grep -qx $b ; then
+ if (echo "$a" ; echo "$b") | sort -n | head -n 1 | grep -qx "$b" ; then
return 0
else
return 1
@@ -172,25 +172,25 @@
version_test_gt ()
{
- local a=`echo $1 | sed -e "s/[^-]*-//"`
- local b=`echo $2 | sed -e "s/[^-]*-//"`
+ local a="`echo "$1" | sed -e "s/[^-]*-//"`"
+ local b="`echo "$2" | sed -e "s/[^-]*-//"`"
local cmp=gt
if [ "x$b" = "x" ] ; then
return 0
fi
- case $a:$b in
+ case "$a:$b" in
*.old:*.old) ;;
- *.old:*) a=`echo -n $a | sed -e s/\.old$//` ; cmp=gt ;;
- *:*.old) b=`echo -n $b | sed -e s/\.old$//` ; cmp=ge ;;
+ *.old:*) a="`echo -n "$a" | sed -e 's/\.old$//'`" ; cmp=gt ;;
+ *:*.old) b="`echo -n "$b" | sed -e 's/\.old$//'`" ; cmp=ge ;;
esac
- version_test_numeric $a $cmp $b
- return $?
+ version_test_numeric "$a" "$cmp" "$b"
+ return "$?"
}
version_find_latest ()
{
local a=""
- for i in $@ ; do
+ for i in "$@" ; do
if version_test_gt "$i" "$a" ; then
a="$i"
fi
@@ -202,7 +202,7 @@
# printf; so this turns ' into \'. Note that you must use the output of
# this function in a printf format string.
gettext_quoted () {
- $gettext "$@" | sed "s/'/'\\\\\\\\''/g"
+ "$gettext" "$@" | sed "s/'/'\\\\\\\\''/g"
}
# Run the first argument through gettext_quoted, and then pass that and all
@@ -211,13 +211,13 @@
gettext_printf () {
local format="$1"
shift
- printf "$(gettext_quoted "$format")" "$@"
+ printf "`gettext_quoted "$format"`" "$@"
}
uses_abstraction () {
- device=$1
+ device="$1"
- abstraction="`${grub_probe} --device ${device} --target=abstraction`"
+ abstraction="`"${grub_probe}" --device "${device}" --target=abstraction`"
for module in ${abstraction}; do
if test "x${module}" = "x$2"; then
return 0
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2011-04-09 14:32 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-05 12:55 [PATCH] add proper variable quoting to grub-mkconfig_lib (Debian bug #612417) Alexander Kurtz
2011-04-05 19:16 ` Nicolas de Pesloüan
2011-04-05 19:30 ` Colin Watson
2011-04-05 19:32 ` Alexander Kurtz
2011-04-05 19:47 ` Colin Watson
2011-04-05 20:07 ` Nicolas de Pesloüan
2011-04-05 20:53 ` Colin Watson
2011-04-05 21:27 ` Nicolas de Pesloüan
2011-04-06 15:31 ` Alexander Kurtz
2011-04-06 18:14 ` Nicolas de Pesloüan
2011-04-06 19:31 ` Colin Watson
2011-04-06 19:42 ` Nicolas de Pesloüan
2011-04-08 13:44 ` Vladimir 'φ-coder/phcoder' Serbinenko
2011-04-09 14:32 ` Alexander Kurtz [this message]
2011-04-10 13:33 ` Vladimir 'φ-coder/phcoder' Serbinenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1302359531.3199.3.camel@localhost \
--to=kurtz.alex@googlemail.com \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.