Module Name:    othersrc
Committed By:   agc
Date:           Sat Jun  1 22:25:10 UTC 2013

Modified Files:
        othersrc/external/historical/eawk/bin: Makefile expected
        othersrc/external/historical/eawk/extend: Makefile
Added Files:
        othersrc/external/historical/eawk/extend/bufgap: Makefile bufgap.c
            shlib_version

Log Message:
Add a bufgap extension, based on the buffer gap routines in othersrc.

Only compile in extensinos if we have the appropriate infrastructure in place -
needs to be revisited for cross-building (if ever that were to happen).


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 othersrc/external/historical/eawk/bin/Makefile \
    othersrc/external/historical/eawk/bin/expected
cvs rdiff -u -r1.1 -r1.2 othersrc/external/historical/eawk/extend/Makefile
cvs rdiff -u -r0 -r1.1 \
    othersrc/external/historical/eawk/extend/bufgap/Makefile \
    othersrc/external/historical/eawk/extend/bufgap/bufgap.c \
    othersrc/external/historical/eawk/extend/bufgap/shlib_version

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: othersrc/external/historical/eawk/bin/Makefile
diff -u othersrc/external/historical/eawk/bin/Makefile:1.1 othersrc/external/historical/eawk/bin/Makefile:1.2
--- othersrc/external/historical/eawk/bin/Makefile:1.1	Fri May 31 05:56:36 2013
+++ othersrc/external/historical/eawk/bin/Makefile	Sat Jun  1 22:25:10 2013
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.1 2013/05/31 05:56:36 agc Exp $
+# $NetBSD: Makefile,v 1.2 2013/06/01 22:25:10 agc Exp $
 
 .include <bsd.own.mk>
 
@@ -60,9 +60,9 @@ t test: ${PROG}
 	@echo "13. Testing foreign external call"
 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGEST} ./${PROG} 'BEGIN { use("digest"); buf = "abc"; print SHA512_Data(buf, 3) }'
 	@echo "14. Testing regexps"
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
+	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' m2
 	@echo "14. Testing regexps with offsets"
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG"); } { if (regexec(r, $$0, a) == 0) printf("a[0] %d, a[1] %d: %s\n", a[0], a[1], $$0)}' Makefile
+	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG"); } { if (regexec(r, $$0, a) == 0) printf("a[0] %d, a[1] %d: %s\n", a[0], a[1], $$0)}' m2
 	@echo "15. Testing stat"
 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); ok = stat("/etc/passwd", st); printf("mode %o\n", st["st_mode"])}'
 	@echo "16. Testing stat"
@@ -74,9 +74,9 @@ t test: ${PROG}
 	@echo "18. Testing bitwise and and octal constants"
 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); stat("/etc/passwd", st); printf("%o\n", and(st["st_mode"], 0777)) }'
 	@echo "19. Testing constants and basic regexps"
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_BASIC); } { if (regexec(r, $$0) == 0) print }' Makefile
+	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_BASIC); } { if (regexec(r, $$0) == 0) print }' m2
 	@echo "20. Testing constants and extended regexps"
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
+	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' m2
 	@echo "21. Testing getaddrinfo"
 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); addr["ai_family"] = PF_UNSPEC; if (getaddrinfo("www.netbsd.org", "http", addr) == 0) print addr["ai_protocol"] }'
 	@echo "21. Testing getaddrinfo address returned"
@@ -98,9 +98,9 @@ t test: ${PROG}
 	@echo "28. Testing http"
 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C}:${LIB_HTTP} ./${PROG} 'BEGIN { use("c"); use("http"); http = http_alloc(); url = http_asget(http, "http://www.netbsd.org/index.html";, 0, 40000); print url}'
 	@echo "29. Testing netdiff"
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); diff_file(d, "Makefile", "Makefile", 0); }'
+	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); diff_file(d, "m2", "m2", 0); }'
 	@echo "30. Testing netdiff with diffs"
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); if (diff_file(d, "Makefile", "m2", 0)) { s = diff_get_diffs(d); print s } }'
+	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); if (diff_file(d, "Makefile", "m2", 0)) { s = diff_get_diffs(d); print s } }' | env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'NR > 2 { print }'
 	@echo "30. Testing unidiff with diffs"
 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); diff_set_var(d, "format", "unified"); diff_set_var(d, "context", "3"); if (diff_file(d, "Makefile", "m2", 'u')) { s = diff_get_diffs(d); print s } }' | env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'NR > 2 { print }'
 	@echo "31. Testing hmac"
Index: othersrc/external/historical/eawk/bin/expected
diff -u othersrc/external/historical/eawk/bin/expected:1.1 othersrc/external/historical/eawk/bin/expected:1.2
--- othersrc/external/historical/eawk/bin/expected:1.1	Fri May 31 05:56:36 2013
+++ othersrc/external/historical/eawk/bin/expected	Sat Jun  1 22:25:10 2013
@@ -110,87 +110,7 @@ ba7816bf8f01cfea414140de5dae2223b00361a3
 13. Testing foreign external call
 ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
 14. Testing regexps
-PROG=		eawk
-t test: ${PROG}
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} -F: '/^#/ { next } { print $$1 }' /etc/passwd
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} -F: '/^#/ { next } { print $$1 ":" $$5 }' /etc/passwd
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'BEGIN { print "hello world" }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'BEGIN { a = 3405691582; b = 3405697037; printf("%d\n", xor(a, b)) }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'BEGIN { a = 0xcafebabe; b = 0xcafed00d; print xor(a, b) }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} '/PRO\x47/ { print }' in1
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} '/PRO\x47[^[:space:]]/ { print }' in1
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGEST} ./${PROG} 'BEGIN { use("digest"); buf = "abc"; print SHA1Data(buf, 3) }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGEST} ./${PROG} 'BEGIN { use("digest"); buf = "abc"; print sha3(buf, 3) }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGEST} ./${PROG} 'BEGIN { use("digest"); buf = "abc"; print SHA1Data(buf) }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGEST} ./${PROG} 'BEGIN { use("digest"); buf = "abc"; print SHA1Data(buf, 3) }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGEST} ./${PROG} 'BEGIN { use("digest"); buf = "abc"; print SHA256_Data(buf, 3) }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGEST} ./${PROG} 'BEGIN { use("digest"); buf = "abc"; print SHA512_Data(buf, 3) }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG"); } { if (regexec(r, $$0, a) == 0) printf("a[0] %d, a[1] %d: %s\n", a[0], a[1], $$0)}' Makefile
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); ok = stat("/etc/passwd", st); printf("mode %o\n", st["st_mode"])}'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); ok = stat("/etc/passwd", st); printf("mode %d\n", st["st_size"])}'
-	@if [ $$(env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'BEGIN {  t = systime(); print t }') -ne $$(date +%s) ]; then echo "wrong time!"; fi
-	@ct=$$(env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'BEGIN { print strftime() }'); d="$$(date '+%a %b %e %H:%M:%S %Y')"; if [ "$${ct}" != "$${d}" ]; then echo "wrong ctime!"; fi
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); stat("/etc/passwd", st); printf("%o\n", and(st["st_mode"], 0777)) }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_BASIC); } { if (regexec(r, $$0) == 0) print }' Makefile
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); addr["ai_family"] = PF_UNSPEC; if (getaddrinfo("www.netbsd.org", "http", addr) == 0) print addr["ai_protocol"] }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); addr["ai_family"] = PF_INET; if (getaddrinfo("www.netbsd.org", "http", addr) == 0) print addr["ai_addr"] }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); addr["ai_family"] = PF_INET; if (getaddrinfo("www.netbsd.org", "http", addr) == 0) print addr["ai_addr"] }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_SOUNDEX} ./${PROG} 'BEGIN { use("soundex"); } { print $$0 " " soundex($$0) " " metaphone($$0) }' ${.CURDIR}/../extend/soundex/words
-	@echo "Another fine mess you got me into" | env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_BASE64} ./${PROG} 'BEGIN { use("base64"); } { print $$0 " " b64encode($$0) " " b85encode($$0) }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIRENT} ./${PROG} 'BEGIN { use("dirent"); d = opendir("."); while (readdir(d, ent)) print ent["d_name"] }' | sort
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); a["yoyo"] = "yoyo"; a["zzzz"] = "helpme"; a["11"] = "eleven"; a["56789"] = "another fine mess"; a["a"] = "hallelujah"; a["a234567890123456789"] = "0"; n = asort(a, sorted); for (i = 1 ; i <= n ; i++) print i " " sorted[i] }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); a["iyoyo"] = "yoyo"; a["izzzz"] = "helpme"; a["i11"] = "eleven"; a["i56789"] = "another fine mess"; a["a"] = "hallelujah"; a["a234567890123456789"] = "0"; n = asorti(a, sorted); for (i = 1 ; i <= n ; i++) print i " " sorted[i] " " a[sorted[i]] }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIRENT}:${LIB_C} ./${PROG} 'BEGIN { use("c"); use("dirent"); d = opendir("."); while (readdir(d, ent)) if (fnmatch("M*", ent["d_name"], FNM_PATHNAME) == 0) print ent["d_name"] }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C}:${LIB_HTTP} ./${PROG} 'BEGIN { use("c"); use("http"); http = http_alloc(); url = http_asget(http, "http://www.netbsd.org/index.html";, 0, 40000); print url}'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); diff_file(d, "Makefile", "Makefile", 0); }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); if (diff_file(d, "Makefile", "m2", 0)) { s = diff_get_diffs(d); print s } }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); diff_set_var(d, "format", "unified"); diff_set_var(d, "context", "3"); if (diff_file(d, "Makefile", "m2", 'u')) { s = diff_get_diffs(d); print s } }' | env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'NR > 2 { print }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_HMAC} ./${PROG} 'BEGIN { use("hmac"); mac = hmac("sha1", "akey", "the quick brown fox jumps over the lazy dog"); print hmac_bin2str(mac) }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DB} ./${PROG} 'BEGIN { use("db"); db = dbopen("/etc/pwd.db", O_RDONLY, 0666, "hash"); for (f = R_FIRST ; s = dbseq(db, s, f) ; f = R_NEXT) print s; }'
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DB} ./${PROG} 'BEGIN { s="\x20a\x20b\x20c"; printf(",%s,\n", s) }'
 14. Testing regexps with offsets
-a[0] 1, a[1] 5: PROG=		eawk
-a[0] 11, a[1] 15: t test: ${PROG}
-a[0] 41, a[1] 45: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} -F: '/^#/ { next } { print $$1 }' /etc/passwd
-a[0] 41, a[1] 45: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} -F: '/^#/ { next } { print $$1 ":" $$5 }' /etc/passwd
-a[0] 41, a[1] 45: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'BEGIN { print "hello world" }'
-a[0] 41, a[1] 45: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'BEGIN { a = 3405691582; b = 3405697037; printf("%d\n", xor(a, b)) }'
-a[0] 41, a[1] 45: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'BEGIN { a = 0xcafebabe; b = 0xcafed00d; print xor(a, b) }'
-a[0] 41, a[1] 45: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} '/PRO\x47/ { print }' in1
-a[0] 41, a[1] 45: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} '/PRO\x47[^[:space:]]/ { print }' in1
-a[0] 55, a[1] 59: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGEST} ./${PROG} 'BEGIN { use("digest"); buf = "abc"; print SHA1Data(buf, 3) }'
-a[0] 55, a[1] 59: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGEST} ./${PROG} 'BEGIN { use("digest"); buf = "abc"; print sha3(buf, 3) }'
-a[0] 55, a[1] 59: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGEST} ./${PROG} 'BEGIN { use("digest"); buf = "abc"; print SHA1Data(buf) }'
-a[0] 55, a[1] 59: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGEST} ./${PROG} 'BEGIN { use("digest"); buf = "abc"; print SHA1Data(buf, 3) }'
-a[0] 55, a[1] 59: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGEST} ./${PROG} 'BEGIN { use("digest"); buf = "abc"; print SHA256_Data(buf, 3) }'
-a[0] 55, a[1] 59: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGEST} ./${PROG} 'BEGIN { use("digest"); buf = "abc"; print SHA512_Data(buf, 3) }'
-a[0] 50, a[1] 54: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
-a[0] 50, a[1] 54: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG"); } { if (regexec(r, $$0, a) == 0) printf("a[0] %d, a[1] %d: %s\n", a[0], a[1], $$0)}' Makefile
-a[0] 50, a[1] 54: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); ok = stat("/etc/passwd", st); printf("mode %o\n", st["st_mode"])}'
-a[0] 50, a[1] 54: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); ok = stat("/etc/passwd", st); printf("mode %d\n", st["st_size"])}'
-a[0] 49, a[1] 53: 	@if [ $$(env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'BEGIN {  t = systime(); print t }') -ne $$(date +%s) ]; then echo "wrong time!"; fi
-a[0] 47, a[1] 51: 	@ct=$$(env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'BEGIN { print strftime() }'); d="$$(date '+%a %b %e %H:%M:%S %Y')"; if [ "$${ct}" != "$${d}" ]; then echo "wrong ctime!"; fi
-a[0] 50, a[1] 54: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); stat("/etc/passwd", st); printf("%o\n", and(st["st_mode"], 0777)) }'
-a[0] 50, a[1] 54: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_BASIC); } { if (regexec(r, $$0) == 0) print }' Makefile
-a[0] 50, a[1] 54: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
-a[0] 50, a[1] 54: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); addr["ai_family"] = PF_UNSPEC; if (getaddrinfo("www.netbsd.org", "http", addr) == 0) print addr["ai_protocol"] }'
-a[0] 50, a[1] 54: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); addr["ai_family"] = PF_INET; if (getaddrinfo("www.netbsd.org", "http", addr) == 0) print addr["ai_addr"] }'
-a[0] 50, a[1] 54: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); addr["ai_family"] = PF_INET; if (getaddrinfo("www.netbsd.org", "http", addr) == 0) print addr["ai_addr"] }'
-a[0] 56, a[1] 60: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_SOUNDEX} ./${PROG} 'BEGIN { use("soundex"); } { print $$0 " " soundex($$0) " " metaphone($$0) }' ${.CURDIR}/../extend/soundex/words
-a[0] 98, a[1] 102: 	@echo "Another fine mess you got me into" | env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_BASE64} ./${PROG} 'BEGIN { use("base64"); } { print $$0 " " b64encode($$0) " " b85encode($$0) }'
-a[0] 55, a[1] 59: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIRENT} ./${PROG} 'BEGIN { use("dirent"); d = opendir("."); while (readdir(d, ent)) print ent["d_name"] }' | sort
-a[0] 50, a[1] 54: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); a["yoyo"] = "yoyo"; a["zzzz"] = "helpme"; a["11"] = "eleven"; a["56789"] = "another fine mess"; a["a"] = "hallelujah"; a["a234567890123456789"] = "0"; n = asort(a, sorted); for (i = 1 ; i <= n ; i++) print i " " sorted[i] }'
-a[0] 50, a[1] 54: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); a["iyoyo"] = "yoyo"; a["izzzz"] = "helpme"; a["i11"] = "eleven"; a["i56789"] = "another fine mess"; a["a"] = "hallelujah"; a["a234567890123456789"] = "0"; n = asorti(a, sorted); for (i = 1 ; i <= n ; i++) print i " " sorted[i] " " a[sorted[i]] }'
-a[0] 64, a[1] 68: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIRENT}:${LIB_C} ./${PROG} 'BEGIN { use("c"); use("dirent"); d = opendir("."); while (readdir(d, ent)) if (fnmatch("M*", ent["d_name"], FNM_PATHNAME) == 0) print ent["d_name"] }'
-a[0] 62, a[1] 66: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C}:${LIB_HTTP} ./${PROG} 'BEGIN { use("c"); use("http"); http = http_alloc(); url = http_asget(http, "http://www.netbsd.org/index.html";, 0, 40000); print url}'
-a[0] 56, a[1] 60: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); diff_file(d, "Makefile", "Makefile", 0); }'
-a[0] 56, a[1] 60: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); if (diff_file(d, "Makefile", "m2", 0)) { s = diff_get_diffs(d); print s } }'
-a[0] 56, a[1] 60: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); diff_set_var(d, "format", "unified"); diff_set_var(d, "context", "3"); if (diff_file(d, "Makefile", "m2", 'u')) { s = diff_get_diffs(d); print s } }' | env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'NR > 2 { print }'
-a[0] 53, a[1] 57: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_HMAC} ./${PROG} 'BEGIN { use("hmac"); mac = hmac("sha1", "akey", "the quick brown fox jumps over the lazy dog"); print hmac_bin2str(mac) }'
-a[0] 51, a[1] 55: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DB} ./${PROG} 'BEGIN { use("db"); db = dbopen("/etc/pwd.db", O_RDONLY, 0666, "hash"); for (f = R_FIRST ; s = dbseq(db, s, f) ; f = R_NEXT) print s; }'
-a[0] 51, a[1] 55: 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DB} ./${PROG} 'BEGIN { s="\x20a\x20b\x20c"; printf(",%s,\n", s) }'
 15. Testing stat
 mode 100644
 16. Testing stat
@@ -202,8 +122,8 @@ wrong ctime!
 644
 19. Testing constants and basic regexps
 CPPFLAGS+=	-I${.CURDIR}/../dist
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_BASIC); } { if (regexec(r, $$0) == 0) print }' Makefile
-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
+	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PRoG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_BASIC); } { if (regexec(r, $$0) == 0) print }' Makefile
+	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PRoG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
 20. Testing constants and extended regexps
 SRCS=		main.c
 WARNS=		5
@@ -791,7 +711,7 @@ Makefile
 
 
     <!-- ##### Footer ##### -->
-    <!-- $NetBSD: expected,v 1.1 2013/05/31 05:56:36 agc Exp $ -->
+    <!-- $NetBSD: expected,v 1.2 2013/06/01 22:25:10 agc Exp $ -->
     <div class="rowOfBoxes">
       <div id="footer">
 	<div id="footerLogo">
@@ -821,6 +741,8 @@ Makefile
 
 29. Testing netdiff
 30. Testing netdiff with diffs
+---
+> # $NetBSD: expected,v 1.2 2013/06/01 22:25:10 agc Exp $
 5c5
 < PROG=		eawk
 ---
@@ -892,11 +814,11 @@ Makefile
 ---
 > 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGESTS} ./${PRoG} 'BEGIN { use("digests"); buf = "abc"; print SHA512_Data(buf, 3) }'
 63c60
-< 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
+< 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' m2
 ---
 > 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PRoG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PRoG", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
 65c62
-< 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG"); } { if (regexec(r, $$0, a) == 0) printf("a[0] %d, a[1] %d: %s\n", a[0], a[1], $$0)}' Makefile
+< 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG"); } { if (regexec(r, $$0, a) == 0) printf("a[0] %d, a[1] %d: %s\n", a[0], a[1], $$0)}' m2
 ---
 > 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PRoG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PRoG"); } { if (regexec(r, $$0, a) == 0) printf("a[0] %d, a[1] %d: %s\n", a[0], a[1], $$0)}' Makefile
 67c64
@@ -920,11 +842,11 @@ Makefile
 ---
 > 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PRoG} 'BEGIN { use("c"); stat("/etc/passwd", st); printf("%o\n", and(st["st_mode"], 0777)) }'
 77c74
-< 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_BASIC); } { if (regexec(r, $$0) == 0) print }' Makefile
+< 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_BASIC); } { if (regexec(r, $$0) == 0) print }' m2
 ---
 > 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PRoG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_BASIC); } { if (regexec(r, $$0) == 0) print }' Makefile
 79c76
-< 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
+< 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' m2
 ---
 > 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PRoG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
 81c78
@@ -968,9 +890,9 @@ Makefile
 ---
 > 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C}:${LIB_HTTP} ./${PRoG} 'BEGIN { use("c"); use("http"); http = http_alloc(); url = http_asget(http, "http://www.netbsd.org/index.html";, 0, 40000); print url}'
 101,111c98
-< 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); diff_file(d, "Makefile", "Makefile", 0); }'
+< 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); diff_file(d, "m2", "m2", 0); }'
 < 	@echo "30. Testing netdiff with diffs"
-< 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); if (diff_file(d, "Makefile", "m2", 0)) { s = diff_get_diffs(d); print s } }'
+< 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); if (diff_file(d, "Makefile", "m2", 0)) { s = diff_get_diffs(d); print s } }' | env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'NR > 2 { print }'
 < 	@echo "30. Testing unidiff with diffs"
 < 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); diff_set_var(d, "format", "unified"); diff_set_var(d, "context", "3"); if (diff_file(d, "Makefile", "m2", 'u')) { s = diff_get_diffs(d); print s } }' | env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'NR > 2 { print }'
 < 	@echo "31. Testing hmac"
@@ -983,7 +905,9 @@ Makefile
 > 	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PRoG} 'BEGIN { use("netdiff"); d = diff_init(); diff_file(d, "Makefile", "Makefile", 0); }'
 
 30. Testing unidiff with diffs
-@@ -2,7 +2,7 @@
+@@ -1,8 +1,8 @@
+-# $NetBSD: expected,v 1.2 2013/06/01 22:25:10 agc Exp $
++# $NetBSD: expected,v 1.2 2013/06/01 22:25:10 agc Exp $
  
  .include <bsd.own.mk>
  
@@ -1054,10 +978,10 @@ Makefile
 -	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGEST} ./${PROG} 'BEGIN { use("digest"); buf = "abc"; print SHA512_Data(buf, 3) }'
 +	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_DIGESTS} ./${PRoG} 'BEGIN { use("digests"); buf = "abc"; print SHA512_Data(buf, 3) }'
  	@echo "14. Testing regexps"
--	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
+-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' m2
 +	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PRoG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PRoG", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
  	@echo "14. Testing regexps with offsets"
--	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG"); } { if (regexec(r, $$0, a) == 0) printf("a[0] %d, a[1] %d: %s\n", a[0], a[1], $$0)}' Makefile
+-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PROG"); } { if (regexec(r, $$0, a) == 0) printf("a[0] %d, a[1] %d: %s\n", a[0], a[1], $$0)}' m2
 +	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PRoG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "PRoG"); } { if (regexec(r, $$0, a) == 0) printf("a[0] %d, a[1] %d: %s\n", a[0], a[1], $$0)}' Makefile
  	@echo "15. Testing stat"
 -	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); ok = stat("/etc/passwd", st); printf("mode %o\n", st["st_mode"])}'
@@ -1075,10 +999,10 @@ Makefile
 -	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); stat("/etc/passwd", st); printf("%o\n", and(st["st_mode"], 0777)) }'
 +	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PRoG} 'BEGIN { use("c"); stat("/etc/passwd", st); printf("%o\n", and(st["st_mode"], 0777)) }'
  	@echo "19. Testing constants and basic regexps"
--	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_BASIC); } { if (regexec(r, $$0) == 0) print }' Makefile
+-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_BASIC); } { if (regexec(r, $$0) == 0) print }' m2
 +	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PRoG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_BASIC); } { if (regexec(r, $$0) == 0) print }' Makefile
  	@echo "20. Testing constants and extended regexps"
--	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
+-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' m2
 +	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PRoG} 'BEGIN { use("c"); r = alloc("regex_t"); regcomp(r, "S+=", REG_EXTENDED); } { if (regexec(r, $$0) == 0) print }' Makefile
  	@echo "21. Testing getaddrinfo"
 -	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C} ./${PROG} 'BEGIN { use("c"); addr["ai_family"] = PF_UNSPEC; if (getaddrinfo("www.netbsd.org", "http", addr) == 0) print addr["ai_protocol"] }'
@@ -1111,9 +1035,9 @@ Makefile
 -	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C}:${LIB_HTTP} ./${PROG} 'BEGIN { use("c"); use("http"); http = http_alloc(); url = http_asget(http, "http://www.netbsd.org/index.html";, 0, 40000); print url}'
 +	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_C}:${LIB_HTTP} ./${PRoG} 'BEGIN { use("c"); use("http"); http = http_alloc(); url = http_asget(http, "http://www.netbsd.org/index.html";, 0, 40000); print url}'
  	@echo "29. Testing netdiff"
--	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); diff_file(d, "Makefile", "Makefile", 0); }'
+-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); diff_file(d, "m2", "m2", 0); }'
 -	@echo "30. Testing netdiff with diffs"
--	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); if (diff_file(d, "Makefile", "m2", 0)) { s = diff_get_diffs(d); print s } }'
+-	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); if (diff_file(d, "Makefile", "m2", 0)) { s = diff_get_diffs(d); print s } }' | env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'NR > 2 { print }'
 -	@echo "30. Testing unidiff with diffs"
 -	@env LD_LIBRARY_PATH=${LIBEAWKDIR}:${LIB_NETDIFF} ./${PROG} 'BEGIN { use("netdiff"); d = diff_init(); diff_set_var(d, "format", "unified"); diff_set_var(d, "context", "3"); if (diff_file(d, "Makefile", "m2", 'u')) { s = diff_get_diffs(d); print s } }' | env LD_LIBRARY_PATH=${LIBEAWKDIR} ./${PROG} 'NR > 2 { print }'
 -	@echo "31. Testing hmac"

Index: othersrc/external/historical/eawk/extend/Makefile
diff -u othersrc/external/historical/eawk/extend/Makefile:1.1 othersrc/external/historical/eawk/extend/Makefile:1.2
--- othersrc/external/historical/eawk/extend/Makefile:1.1	Fri May 31 05:56:37 2013
+++ othersrc/external/historical/eawk/extend/Makefile	Sat Jun  1 22:25:10 2013
@@ -1,19 +1,38 @@
-# $NetBSD: Makefile,v 1.1 2013/05/31 05:56:37 agc Exp $
+# $NetBSD: Makefile,v 1.2 2013/06/01 22:25:10 agc Exp $
 
 SUBDIR+=	base64
+.if exists(/usr/include/bufgap.h)
+SUBDIR+=	bufgap
+.endif
 SUBDIR+=	c
+.if exists(/usr/include/circa.h)
 SUBDIR+=	circa
+.endif
 SUBDIR+=	db
 SUBDIR+=	digest
 SUBDIR+=	dirent
+.if exists(/usr/include/getopt2.h)
 SUBDIR+=	getopt2
+.endif
+.if exists(/usr/include/hmac.h)
 SUBDIR+=	hmac
+.endif
+.if exists(/usr/include/http.h)
 SUBDIR+=	http
+.endif
+.if exists(/usr/include/mat.h)
 SUBDIR+=	mat
+.endif
+.if exists(/usr/include/netdiff.h)
 SUBDIR+=	netdiff
+.endif
 SUBDIR+=	netpgp
+.if exists(/usr/include/progress.h)
 SUBDIR+=	progress
+.endif
+.if exists(/usr/include/rs.h)
 SUBDIR+=	rs
+.endif
 SUBDIR+=	soundex
 SUBDIR+=	termcap
 

Added files:

Index: othersrc/external/historical/eawk/extend/bufgap/Makefile
diff -u /dev/null othersrc/external/historical/eawk/extend/bufgap/Makefile:1.1
--- /dev/null	Sat Jun  1 22:25:10 2013
+++ othersrc/external/historical/eawk/extend/bufgap/Makefile	Sat Jun  1 22:25:10 2013
@@ -0,0 +1,16 @@
+#	$NetBSD: Makefile,v 1.1 2013/06/01 22:25:10 agc Exp $
+
+.include <bsd.own.mk>
+
+DIST=	${.CURDIR}/../../dist
+.PATH:	${DIST}
+
+LIB=	eawk-bufgap
+SRCS=	bufgap.c
+CPPFLAGS+=	-I. -I${DIST}
+MKMAN=	no
+LDADD+=	-lbufgap
+
+WARNS=	5
+
+.include <bsd.lib.mk>
Index: othersrc/external/historical/eawk/extend/bufgap/bufgap.c
diff -u /dev/null othersrc/external/historical/eawk/extend/bufgap/bufgap.c:1.1
--- /dev/null	Sat Jun  1 22:25:10 2013
+++ othersrc/external/historical/eawk/extend/bufgap/bufgap.c	Sat Jun  1 22:25:10 2013
@@ -0,0 +1,477 @@
+/*-
+ * Copyright (c) 2013 Alistair Crooks <a...@netbsd.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include <bufgap.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "eawk.h"
+
+#ifndef USE_ARG
+#define USE_ARG(x)  /*LINTED*/(void)&x
+#endif
+
+/* convert number to ptr */
+static int64_t
+p2num(void *p)
+{
+	union {
+		void	*p;
+		int64_t	 n;
+	} u;
+
+	u.p = p;
+	return u.n;
+}
+
+/* convert ptr to number */
+static void *
+n2ptr(int64_t n)
+{
+	union {
+		void	*p;
+		int64_t	 n;
+	} u;
+
+	u.n = n;
+	return u.p;
+}
+
+/* define the constants which relate to the CPP definitions */
+static int
+eawk_bufgap_constants(eawk_t *eawk)
+{
+	/* bufgap constants */
+	eawk_define_constant(eawk, "BGByte", BGByte);
+	eawk_define_constant(eawk, "BGChar", BGChar);
+	eawk_define_constant(eawk, "BGLine", BGLine);
+	eawk_define_constant(eawk, "BGFromBOF", BGFromBOF);
+	eawk_define_constant(eawk, "BGFromHere", BGFromHere);
+	eawk_define_constant(eawk, "BGFromEOF", BGFromEOF);
+	return 1;
+}
+
+/* extension module to provide bufgap functionality to eawk */
+
+/* accept function */
+static awkcell_t *
+eawk_bufgap_bufgap_alloc(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	eawk_t		*eawk = (eawk_t *)veawk;
+	void		*v;
+
+	USE_ARG(name);
+	USE_ARG(argc);
+	USE_ARG(a);
+	v = calloc(1, sizeof(bufgap_t));
+	/* return code */
+	eawk_setfval(eawk, eawk->fp->retval, (awknum_t)p2num(v));
+	return eawk->fp->retval;
+}
+
+/* open function */
+static awkcell_t *
+eawk_bufgap_bufgap_open(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	bufgap_t	*b;
+	eawk_t		*eawk = (eawk_t *)veawk;
+	char		*f;
+	int		 rc;
+
+	USE_ARG(name);
+	rc = 0;
+	if (argc == 2) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		f = eawk_getsval(eawk, a[1]);
+		rc = bufgap_open(b, f);
+	}
+	eawk_setfval(eawk, eawk->fp->retval, (awknum_t)rc);
+	return eawk->fp->retval;
+}
+
+/* close function */
+static awkcell_t *
+eawk_bufgap_bufgap_close(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	bufgap_t	*b;
+	eawk_t		*eawk = (eawk_t *)veawk;
+
+	USE_ARG(name);
+	if (argc == 1) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		bufgap_close(b);
+	}
+	eawk_setfval(eawk, eawk->fp->retval, (awknum_t)1);
+	return eawk->fp->retval;
+}
+
+/* forwards function */
+static awkcell_t *
+eawk_bufgap_bufgap_forwards(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	bufgap_t	*b;
+	uint64_t	 off;
+	eawk_t		*eawk = (eawk_t *)veawk;
+	int		 type;
+	int		 rc;
+
+	USE_ARG(name);
+	rc = 0;
+	if (argc == 3) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		off = (uint64_t)eawk_getfval(eawk, a[1]);
+		type = (int)eawk_getfval(eawk, a[2]);
+		rc = bufgap_forwards(b, off, type);
+	}
+	eawk_setfval(eawk, eawk->fp->retval, (awknum_t)rc);
+	return eawk->fp->retval;
+}
+
+/* backwards function */
+static awkcell_t *
+eawk_bufgap_bufgap_backwards(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	bufgap_t	*b;
+	uint64_t	 off;
+	eawk_t		*eawk = (eawk_t *)veawk;
+	int		 type;
+	int		 rc;
+
+	USE_ARG(name);
+	rc = 0;
+	if (argc == 3) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		off = (uint64_t)eawk_getfval(eawk, a[1]);
+		type = (int)eawk_getfval(eawk, a[2]);
+		rc = bufgap_backwards(b, off, type);
+	}
+	eawk_setfval(eawk, eawk->fp->retval, (awknum_t)rc);
+	return eawk->fp->retval;
+}
+
+/* seek function */
+static awkcell_t *
+eawk_bufgap_bufgap_seek(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	bufgap_t	*b;
+	int64_t	 	 off;
+	eawk_t		*eawk = (eawk_t *)veawk;
+	int		 whence;
+	int		 type;
+	int		 rc;
+
+	USE_ARG(name);
+	rc = 0;
+	if (argc == 4) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		off = (uint64_t)eawk_getfval(eawk, a[1]);
+		whence = (int)eawk_getfval(eawk, a[2]);
+		type = (int)eawk_getfval(eawk, a[3]);
+		rc = bufgap_seek(b, off, whence, type);
+	}
+	eawk_setfval(eawk, eawk->fp->retval, (awknum_t)rc);
+	return eawk->fp->retval;
+}
+
+/* getstr function */
+static awkcell_t *
+eawk_bufgap_bufgap_getstr(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	bufgap_t	*b;
+	eawk_t		*eawk = (eawk_t *)veawk;
+	char		*s;
+
+	USE_ARG(name);
+	s = NULL;
+	if (argc == 1) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		s = bufgap_getstr(b);
+	}
+	eawk_setsval(eawk, eawk->fp->retval, (s) ? s : "");
+	return eawk->fp->retval;
+}
+
+/* seek function */
+static awkcell_t *
+eawk_bufgap_bufgap_getbin(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	bufgap_t	*b;
+	eawk_t		*eawk = (eawk_t *)veawk;
+	size_t		 cc;
+	char		*buf;
+	int		 rc;
+
+	USE_ARG(name);
+	rc = 0;
+	buf = NULL;
+	if (argc == 2) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		cc = (size_t)eawk_getfval(eawk, a[1]);
+		buf = calloc(1, cc);
+		rc = bufgap_getbin(b, buf, cc);
+        }
+        /* return code */
+        eawk_setsvalN(eawk, eawk->fp->retval, buf, (size_t)rc);
+	if (argc == 2) {
+		free(buf);
+	}
+	return eawk->fp->retval;
+}
+
+/* seek function */
+static awkcell_t *
+eawk_bufgap_bufgap_tell(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	bufgap_t	*b;
+	int64_t		 rc;
+	eawk_t		*eawk = (eawk_t *)veawk;
+	int		 whence;
+	int		 type;
+
+	USE_ARG(name);
+	rc = 0;
+	if (argc == 3) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		whence = (int)eawk_getfval(eawk, a[1]);
+		type = (int)eawk_getfval(eawk, a[2]);
+		rc = bufgap_tell(b, whence, type);
+	}
+	eawk_setfval(eawk, eawk->fp->retval, (awknum_t)rc);
+	return eawk->fp->retval;
+}
+
+/* size function */
+static awkcell_t *
+eawk_bufgap_bufgap_size(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	bufgap_t	*b;
+	int64_t		 rc;
+	eawk_t		*eawk = (eawk_t *)veawk;
+	int		 type;
+
+	USE_ARG(name);
+	rc = 0;
+	if (argc == 2) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		type = (int)eawk_getfval(eawk, a[1]);
+		rc = bufgap_size(b, type);
+	}
+	eawk_setfval(eawk, eawk->fp->retval, (awknum_t)rc);
+	return eawk->fp->retval;
+}
+
+/* insert function */
+static awkcell_t *
+eawk_bufgap_bufgap_insert(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	const char	*s;
+	bufgap_t	*b;
+	int64_t		 rc;
+	eawk_t		*eawk = (eawk_t *)veawk;
+	int		 len;
+
+	USE_ARG(name);
+	rc = 0;
+	if (argc == 3) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		s = (const char *)eawk_getsval(eawk, a[1]);
+		len = (int)eawk_getfval(eawk, a[2]);
+		rc = bufgap_insert(b, s, len);
+	}
+	eawk_setfval(eawk, eawk->fp->retval, (awknum_t)rc);
+	return eawk->fp->retval;
+}
+
+/* delete function */
+static awkcell_t *
+eawk_bufgap_bufgap_delete(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	uint64_t	 len;
+	bufgap_t	*b;
+	int64_t		 rc;
+	eawk_t		*eawk = (eawk_t *)veawk;
+
+	USE_ARG(name);
+	rc = 0;
+	if (argc == 2) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		len = (uint64_t)eawk_getfval(eawk, a[1]);
+		rc = bufgap_delete(b, len);
+	}
+	eawk_setfval(eawk, eawk->fp->retval, (awknum_t)rc);
+	return eawk->fp->retval;
+}
+
+/* peek function */
+static awkcell_t *
+eawk_bufgap_bufgap_peek(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	bufgap_t	*b;
+	int64_t	 	 len;
+	eawk_t		*eawk = (eawk_t *)veawk;
+	int		 rc;
+
+	USE_ARG(name);
+	rc = 0;
+	if (argc == 2) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		len = (uint64_t)eawk_getfval(eawk, a[1]);
+		rc = bufgap_peek(b, len);
+	}
+	eawk_setfval(eawk, eawk->fp->retval, (awknum_t)rc);
+	return eawk->fp->retval;
+}
+
+/* gettext function */
+static awkcell_t *
+eawk_bufgap_bufgap_gettext(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	bufgap_t	*b;
+	int64_t		 from;
+	int64_t		 to;
+	eawk_t		*eawk = (eawk_t *)veawk;
+	char		*s;
+
+	USE_ARG(name);
+	s = NULL;
+	if (argc == 3) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		from = (int64_t)eawk_getfval(eawk, a[1]);
+		to = (int64_t)eawk_getfval(eawk, a[2]);
+		s = bufgap_gettext(b, from, to);
+	}
+	eawk_setsval(eawk, eawk->fp->retval, (s) ? s : "");
+	return eawk->fp->retval;
+}
+
+/* getline function */
+static awkcell_t *
+eawk_bufgap_bufgap_getline(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	bufgap_t	*b;
+	int64_t		 n;
+	eawk_t		*eawk = (eawk_t *)veawk;
+	char		*s;
+
+	USE_ARG(name);
+	s = NULL;
+	if (argc == 2) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		n = (int64_t)eawk_getfval(eawk, a[1]);
+		s = bufgap_getline(b, n);
+	}
+	eawk_setsval(eawk, eawk->fp->retval, (s) ? s : "");
+	return eawk->fp->retval;
+}
+
+/* write function */
+static awkcell_t *
+eawk_bufgap_bufgap_write(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	bufgap_t	*b;
+	eawk_t		*eawk = (eawk_t *)veawk;
+	FILE		*fp;
+	int		 rc;
+
+	USE_ARG(name);
+	rc = 0;
+	fp = NULL;
+	if (argc == 2) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		fp = n2ptr((int64_t)eawk_getfval(eawk, a[1]));
+		rc = bufgap_write(b, fp);
+	}
+	eawk_setfval(eawk, eawk->fp->retval, (awknum_t)rc);
+	return eawk->fp->retval;
+}
+
+/* dirty function */
+static awkcell_t *
+eawk_bufgap_bufgap_dirty(void *veawk, char *name, int argc, awkcell_t **a)
+{
+	bufgap_t	*b;
+	eawk_t		*eawk = (eawk_t *)veawk;
+	int		 rc;
+
+	USE_ARG(name);
+	rc = 0;
+	if (argc == 1) {
+		/* get data off stack */
+		b = n2ptr((int64_t)eawk_getfval(eawk, a[0]));
+		rc = bufgap_dirty(b);
+	}
+	eawk_setfval(eawk, eawk->fp->retval, (awknum_t)rc);
+	return eawk->fp->retval;
+}
+
+
+/**************************************************************/
+/* now the glue to register functions when use("bufgap") is called */
+/**************************************************************/
+
+int eawk_use_bufgap(eawk_t */*eawk*/);
+
+/* register bufgap functions */
+int
+eawk_use_bufgap(eawk_t *eawk)
+{
+	if (eawk_find_lib(eawk, "bufgap") < 0) {
+		eawk_bufgap_constants(eawk);
+		eawk_register_func(eawk, "bufgap", "bufgap_alloc", eawk_bufgap_bufgap_alloc);
+		eawk_register_func(eawk, "bufgap", "bufgap_open", eawk_bufgap_bufgap_open);
+		eawk_register_func(eawk, "bufgap", "bufgap_close", eawk_bufgap_bufgap_close);
+		eawk_register_func(eawk, "bufgap", "bufgap_forwards", eawk_bufgap_bufgap_forwards);
+		eawk_register_func(eawk, "bufgap", "bufgap_backwards", eawk_bufgap_bufgap_backwards);
+		eawk_register_func(eawk, "bufgap", "bufgap_seek", eawk_bufgap_bufgap_seek);
+		eawk_register_func(eawk, "bufgap", "bufgap_getstr", eawk_bufgap_bufgap_getstr);
+		eawk_register_func(eawk, "bufgap", "bufgap_getbin", eawk_bufgap_bufgap_getbin);
+		eawk_register_func(eawk, "bufgap", "bufgap_tell", eawk_bufgap_bufgap_tell);
+		eawk_register_func(eawk, "bufgap", "bufgap_size", eawk_bufgap_bufgap_size);
+		eawk_register_func(eawk, "bufgap", "bufgap_insert", eawk_bufgap_bufgap_insert);
+		eawk_register_func(eawk, "bufgap", "bufgap_delete", eawk_bufgap_bufgap_delete);
+		eawk_register_func(eawk, "bufgap", "bufgap_peek", eawk_bufgap_bufgap_peek);
+		eawk_register_func(eawk, "bufgap", "bufgap_gettext", eawk_bufgap_bufgap_gettext);
+		eawk_register_func(eawk, "bufgap", "bufgap_getline", eawk_bufgap_bufgap_getline);
+		eawk_register_func(eawk, "bufgap", "bufgap_write", eawk_bufgap_bufgap_write);
+		eawk_register_func(eawk, "bufgap", "bufgap_dirty", eawk_bufgap_bufgap_dirty);
+	}
+	return 1;
+}
Index: othersrc/external/historical/eawk/extend/bufgap/shlib_version
diff -u /dev/null othersrc/external/historical/eawk/extend/bufgap/shlib_version:1.1
--- /dev/null	Sat Jun  1 22:25:10 2013
+++ othersrc/external/historical/eawk/extend/bufgap/shlib_version	Sat Jun  1 22:25:10 2013
@@ -0,0 +1,2 @@
+major=0
+minor=0

Reply via email to