>Number: 180328 >Category: bin >Synopsis: awk(1) fails to treat var as integer >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Jul 05 17:20:01 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Steffen >Release: 10 >Organization: >Environment: FreeBSD fbsd10 10.0-CURRENT FreeBSD 10.0-CURRENT #0: Sun Jun 23 02:55:37 UTC 2013 r...@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64 >Description: Note first that this problem also occurs for Mac OS X Snow Leopard and NetBSD current. I have not yet tested GNU awk. I use awk(1) to generate test data from Unicode text files. . i think the best is i show it:
## Input producers io_unicode_data() { < unicode/UnicodeData.txt ${TAWK} ' BEGIN {FS = ";" ; OFS = ";"} # There are no comments in this, but.. /^[[:space:]]*[^#]+$/ { i = $2 # Ranges must become unrolled, otherwise step on if (i !~ /, First>/) { $2 = "" print next } r1 = sprintf("%d", "0x" $1) getline r2 = sprintf("%d", "0x" $1) $2 = "" # This gets around a bug in at least "awk version 20070501" as found # on Slow Leopard: there the range F0000-FFFFD, and only that one, # will *not* be evaluated unless we do this (once property test came) # XXX presumably the type system is a bit weird; check other AWKs! sprintf("%X %X", r1, r2) [ this is it; UnicodeData.txt contains multiple ranges, but only this one will be "omitted" without sprintf(), the while() will simply not execute otherwise. ] while (r1 <= r2) { $1 = sprintf("%X", r1) printf "%s\n", $0 ++r1 } } ' } >How-To-Repeat: well..; git clone my S-CText and run `make ucd' with and without the line `sprintf("%X %X", r1, r2)', compare the resulting `test/sa/t_props.dat' files. >Fix: >Release-Note: >Audit-Trail: >Unformatted: _______________________________________________ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"