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 <[email protected]>
+ * 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