Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 May 2011 12:22:59 +0000 (UTC)
From:      Jilles Tjoelker <jilles@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r221884 - head/etc
Message-ID:  <201105141222.p4ECMxqm003361@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jilles
Date: Sat May 14 12:22:58 2011
New Revision: 221884
URL: http://svn.freebsd.org/changeset/base/221884

Log:
  network.subr: Use printf(1) builtin for hexprint function.
  
  Now that printf(1) is a shell builtin, there is no need to emulate it
  anymore. The external printf(1) is /usr/bin/printf and therefore may not be
  available in early boot.
  
  It may be faster to use printf directly but the function is useful for
  compatibility.

Modified:
  head/etc/network.subr

Modified: head/etc/network.subr
==============================================================================
--- head/etc/network.subr	Sat May 14 12:16:09 2011	(r221883)
+++ head/etc/network.subr	Sat May 14 12:22:58 2011	(r221884)
@@ -1333,38 +1333,14 @@ get_default_if()
 #	Echo decimal number $arg (single digit) in hexadecimal format.
 hexdigit()
 {
-	if [ $1 -lt 10 ]; then
-		echo $1
-	else
-		case $1 in
-		10)	echo a ;;
-		11)	echo b ;;
-		12)	echo c ;;
-		13)	echo d ;;
-		14)	echo e ;;
-		15)	echo f ;;
-		esac
-	fi
+	printf '%x\n' "$1"
 }
 
 # hexprint arg
 #	Echo decimal number $arg (multiple digits) in hexadecimal format.
 hexprint()
 {
-	local val str dig
-	val=$1
-	str=''
-	dig=`hexdigit $((${val} & 15))`
-	str=${dig}${str}
-	val=$((${val} >> 4))
-
-	while [ ${val} -gt 0 ]; do
-		dig=`hexdigit $((${val} & 15))`
-		str=${dig}${str}
-		val=$((${val} >> 4))
-	done
-
-	echo ${str}
+	printf '%x\n' "$1"
 }
 
 is_wired_interface()



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201105141222.p4ECMxqm003361>