From e1ebac319d1491e54dd8e3e457d48aa766771366 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Tue, 6 Oct 1998 03:02:29 +0000 Subject: Here are the patches against the current source tree. I have run the regression test on a FreeBSD box with both non-MULTIBYTE and MULTIBYTE-enabled, and confirmed that the results are same. However I do not tested on PCs(I don't have access to win). Please let me know if the patches break anything on PCs. Also please note that the patch for varchar.c is a fix for a nasty bug of char(n) types that I introduced and I believe at least this should be applied. Tatsuo Ishii --- src/backend/utils/adt/varchar.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/backend/utils/adt/varchar.c') diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c index 8d2352358a0..6413f488eb8 100644 --- a/src/backend/utils/adt/varchar.c +++ b/src/backend/utils/adt/varchar.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.41 1998/09/25 15:51:02 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.42 1998/10/06 03:02:20 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -163,7 +163,11 @@ bpchar(char *s, int32 len) #ifdef MULTIBYTE /* truncate multi-byte string in a way not to break multi-byte boundary */ - slen = pg_mbcliplen(VARDATA(s), rlen, rlen); + if (VARSIZE(s) > len) { + slen = pg_mbcliplen(VARDATA(s), VARSIZE(s)-VARHDRSZ, rlen); + } else { + slen = VARSIZE(s) - VARHDRSZ; + } #else slen = VARSIZE(s) - VARHDRSZ; #endif -- cgit v1.2.3