Use shell builtins instead of awk and sed.
Avoids problems with awk processing floating point numbers when LC_NUMERIC give a decimal point of ','. Fixes PR/42321
This commit is contained in:
parent
dcfde2a0ef
commit
3f7c0ec34d
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# $NetBSD: osrelease.sh,v 1.117 2009/10/29 06:33:27 apb Exp $
|
||||
# $NetBSD: osrelease.sh,v 1.118 2009/11/15 13:39:00 dsl Exp $
|
||||
#
|
||||
# Copyright (c) 1997 The NetBSD Foundation, Inc.
|
||||
# All rights reserved.
|
||||
|
@ -32,28 +32,43 @@
|
|||
|
||||
# We use the number specified in <sys/param.h>
|
||||
|
||||
AWK=${AWK:-awk}
|
||||
SED=${TOOL_SED:-sed}
|
||||
PARAMH="`dirname $0`"/../sys/param.h
|
||||
release=`$AWK '/^#define[ ]*__NetBSD_Version__/ { print $6 }' $PARAMH`
|
||||
path="./$0"
|
||||
exec < ${path%/*}/../sys/param.h
|
||||
|
||||
# default: return nn.nn.nn
|
||||
# -m: return nn, representing only the major number; however, for -current,
|
||||
while
|
||||
read define ver_tag release comment || exit 1
|
||||
do
|
||||
[ "$define" = "#define" ] || continue;
|
||||
[ "$ver_tag" = "__NetBSD_Version__" ] || continue
|
||||
break
|
||||
done
|
||||
|
||||
# ${release} is [M]Mmm00pp00
|
||||
#
|
||||
# default: return MM.mm.pp
|
||||
# -m: return MM, representing only the major number; however, for -current,
|
||||
# return the next major number (e.g. for 5.99.nn, return 6)
|
||||
# -n: return nn.nn
|
||||
# -s: return nnnnnn (no dots)
|
||||
# -n: return MM.mm
|
||||
# -s: return MMmmpp (no dots)
|
||||
|
||||
release=${release%??}
|
||||
|
||||
rel_MMmm=${release%????}
|
||||
rel_MM=${rel_MMmm%??}
|
||||
rel_mm=${rel_MMmm#${rel_MM}}
|
||||
rel_pp=${release#${rel_MMmm}00}
|
||||
|
||||
case $1 in
|
||||
-m)
|
||||
echo $release | $AWK -F. '{print int($1+$2/100+0.01)}'
|
||||
echo "$(((${rel_MMmm}+1)/100))"
|
||||
;;
|
||||
-n)
|
||||
echo $release | $AWK -F. '{print $1 "." $2}'
|
||||
echo "$rel_MM.$rel_mm"
|
||||
;;
|
||||
-s)
|
||||
echo $release | $SED -e 's,\.,,g'
|
||||
echo "$rel_MM$rel_mm$rel_pp"
|
||||
;;
|
||||
*)
|
||||
echo $release
|
||||
echo "$rel_MM.$rel_mm.$rel_pp"
|
||||
;;
|
||||
esac
|
||||
|
|
Loading…
Reference in New Issue