aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/varchar.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-10-06 03:02:29 +0000
committerBruce Momjian <bruce@momjian.us>1998-10-06 03:02:29 +0000
commite1ebac319d1491e54dd8e3e457d48aa766771366 (patch)
tree48a57b8f779c2b8a1d68ef953f4b173168d5c3a6 /src/backend/utils/adt/varchar.c
parentc77a29a14efe69851a087989e3520ed560fa8862 (diff)
downloadpostgresql-e1ebac319d1491e54dd8e3e457d48aa766771366.tar.gz
postgresql-e1ebac319d1491e54dd8e3e457d48aa766771366.zip
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
Diffstat (limited to 'src/backend/utils/adt/varchar.c')
-rw-r--r--src/backend/utils/adt/varchar.c8
1 files changed, 6 insertions, 2 deletions
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