summaryrefslogtreecommitdiff
path: root/lang/gawk
diff options
context:
space:
mode:
authorminskim <minskim>2005-01-30 05:34:16 +0000
committerminskim <minskim>2005-01-30 05:34:16 +0000
commit6069317d3f30fbcaf4384bccaa54a837459c42fd (patch)
treebfba33d64a053d01cf262908fdefc04d8cb55697 /lang/gawk
parent43d75b8050d38de77645ce01530bcdeb576f732d (diff)
downloadpkgsrc-6069317d3f30fbcaf4384bccaa54a837459c42fd.tar.gz
Fix two bugs in gawk bracket handling under UTF-8 locale. Patches
borrowed from Debian. Reported by Hiramatsu Yoshifumi and Kibum Han on tech-pkg@. Bump PKGREVISION.
Diffstat (limited to 'lang/gawk')
-rw-r--r--lang/gawk/Makefile4
-rw-r--r--lang/gawk/distinfo3
-rw-r--r--lang/gawk/patches/patch-aa49
3 files changed, 53 insertions, 3 deletions
diff --git a/lang/gawk/Makefile b/lang/gawk/Makefile
index 2568a0ce8db..267262e5ba8 100644
--- a/lang/gawk/Makefile
+++ b/lang/gawk/Makefile
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.26 2004/10/14 03:24:21 minskim Exp $
+# $NetBSD: Makefile,v 1.27 2005/01/30 05:34:16 minskim Exp $
#
DISTNAME= gawk-3.1.4
-PKGREVISION= 1
+PKGREVISION= 2
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_GNU:=gawk/}
EXTRACT_SUFX= .tar.bz2
diff --git a/lang/gawk/distinfo b/lang/gawk/distinfo
index 7d03229af12..a13b4417821 100644
--- a/lang/gawk/distinfo
+++ b/lang/gawk/distinfo
@@ -1,6 +1,7 @@
-$NetBSD: distinfo,v 1.12 2004/08/26 00:00:20 wiz Exp $
+$NetBSD: distinfo,v 1.13 2005/01/30 05:34:16 minskim Exp $
SHA1 (gawk-3.1.4.tar.bz2) = ba50753eca7518d5a13fa9a1e1333562cd8477ca
Size (gawk-3.1.4.tar.bz2) = 1732494 bytes
+SHA1 (patch-aa) = 52740979223e5e9f36ea1f6d758399a946a1ea29
SHA1 (patch-ab) = c0ffd2cc29104e5fefb123a353388d991dc62635
SHA1 (patch-af) = dac29f99def7a70f17aaeb1cb3662ce48008755c
diff --git a/lang/gawk/patches/patch-aa b/lang/gawk/patches/patch-aa
new file mode 100644
index 00000000000..c10e33f49e6
--- /dev/null
+++ b/lang/gawk/patches/patch-aa
@@ -0,0 +1,49 @@
+$NetBSD: patch-aa,v 1.7 2005/01/30 05:34:16 minskim Exp $
+
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=266519
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=277122
+
+--- dfa.c.orig 2004-07-26 09:11:41.000000000 -0500
++++ dfa.c
+@@ -634,7 +634,7 @@ parse_bracket_exp_mb ()
+ work_mbc->coll_elems[work_mbc->ncoll_elems++] = elem;
+ }
+ }
+- wc = WEOF;
++ wc = wc1 = WEOF;
+ }
+ else
+ /* We treat '[' as a normal character here. */
+@@ -2871,6 +2871,14 @@ dfaexec (struct dfa *d, char const *begi
+ if (MB_CUR_MAX > 1)
+ {
+ int remain_bytes, i;
++#if 0
++ /*
++ * This caching can get things wrong:
++
++ printf "ab\n\tb\n" | LC_ALL=de_DE.UTF-8 ./gawk '/^[ \t]/ { print }'
++
++ * should print \tb but doesn't
++ */
+ buf_begin -= buf_offset;
+ if (buf_begin <= (unsigned char const *)begin && (unsigned char const *) end <= buf_end) {
+ buf_offset = (unsigned char const *)begin - buf_begin;
+@@ -2878,6 +2886,7 @@ dfaexec (struct dfa *d, char const *begi
+ buf_end = end;
+ goto go_fast;
+ }
++#endif
+
+ buf_offset = 0;
+ buf_begin = begin;
+@@ -2916,7 +2925,9 @@ dfaexec (struct dfa *d, char const *begi
+ mblen_buf[i] = 0;
+ inputwcs[i] = 0; /* sentinel */
+ }
++#if 0
+ go_fast:
++#endif
+ #endif /* MBS_SUPPORT */
+
+ for (;;)