1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
#! /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;
|