Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Nov 2001 01:47:39 +0200
From:      Sheldon Hearn <sheldonh@starjuice.net>
To:        Akinori MUSHA <knu@FreeBSD.org>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/share/man/man1 builtin.1 src/bin/sh Makefile builtins.def sh.1 src/bin/test test.1 test.c 
Message-ID:  <99546.1006040859@axl.seasidesoftware.co.za>
In-Reply-To: Your message of "Sat, 17 Nov 2001 11:10:11 PST." <200111171910.fAHJABJ92986@freefall.freebsd.org> 

next in thread | previous in thread | raw e-mail | index | archive | help


On Sat, 17 Nov 2001 11:10:11 PST, Akinori MUSHA wrote:

>   I don't drop the printf builtin while I'm here because some /etc/rc.*
>   scripts seem to use it before mounting /usr where printf(1) resides.

The only place seems to be in rc.network6 (although a simple grep shows
lots of false hits elsewhere in embedded awk(1) scripts).

		ipv4_in_hexformat=`printf "%x:%x\n" \
			$(($1*256 + $2)) $(($3*256 + $4))`

Using the hexprint function given below, the above fragment would be
rewritten as follows (with extra variables required only for the
purposes of sane indentation):

		hexfrag1=`hexprint $(($1*256 + $2))`
		hexfrag2=`hexprint $(($3*256 + $4))`
		ipv4_in_hexformat="${hexfrag1}:${hexfrag2}"

Of course, this only makes sense with test(1) as a builtin, since you're
replacing a single call to printf(1) with multiple calls to test(1).

Ciao,
Sheldon.

hexdig () {
	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
}

hexprint () {
	val=$1
	str=''

	dig=`hexdig $((${val} & 15))`
	str=${dig}${str}
	val=$((${val} >> 4))
	while [ ${val} -gt 0 ]; do
		dig=`hexdig $((${val} & 15))`
		str=${dig}${str}
		val=$((${val} >> 4))
	done

	echo ${str}
}

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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