Ripped from Debian's gawk_3.1.5.dfsg-4.diff.gz #! /bin/sh -e ## 20_eval.c-utf-8-strcat.dpatch ## ## DP: Description: Fix handling of string concatenation with multi-byte strings. (#347490) ## DP: Author: Karel Zak and Aharon Robbins ## DP: Upstream status: Unclear - in discussion ## DP: URL: http://lists.gnu.org/archive/html/bug-gnu-utils/2006-02/msg00023.html ## DP: Date: 2006-02-10 if [ $# -lt 1 ]; then echo "`basename $0`: script expects -patch|-unpatch as argument" >&2 exit 1 fi [ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}" case "$1" in -patch) patch -p1 ${patch_opts} < $0;; -unpatch) patch -R -p1 ${patch_opts} < $0;; *) echo "`basename $0`: script expects -patch|-unpatch as argument" >&2 exit 1;; esac exit 0 @DPATCH@ diff -urNad --exclude=CVS --exclude=.svn ./eval.c /tmp/dpep-work.D8ZI7f/gawk-3.1.5/eval.c --- ./eval.c 2006-04-18 03:07:14.000000000 +0100 +++ /tmp/dpep-work.D8ZI7f/gawk-3.1.5/eval.c 2006-04-18 03:07:52.000000000 +0100 @@ -1176,6 +1176,13 @@ memcpy(l->stptr + l->stlen, r->stptr, r->stlen); l->stlen += r->stlen; l->stptr[l->stlen] = '\0'; +#if defined MBS_SUPPORT + if (l->wstptr != NULL) + free(l->wstptr); + l->wstptr = NULL; + l->wstlen = 0; + l->flags &= ~WSTRCUR; +#endif /* MBS_SUPPORT */ } else { char *nval; size_t nlen = l->stlen + r->stlen + 2;