aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/varchar.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-09-25 15:51:02 +0000
committerBruce Momjian <bruce@momjian.us>1998-09-25 15:51:02 +0000
commitbd041d82bfaec4ba90dfe99ba2de675bd9a7e36f (patch)
tree1566a95d2dccac55857a03f3cf54b0a9d90dae55 /src/backend/utils/adt/varchar.c
parentd73f73af6e23277b7b5da8b96b151596f0a233d6 (diff)
downloadpostgresql-bd041d82bfaec4ba90dfe99ba2de675bd9a7e36f.tar.gz
postgresql-bd041d82bfaec4ba90dfe99ba2de675bd9a7e36f.zip
multi-byte fix from Tatsuo Ishii
Diffstat (limited to 'src/backend/utils/adt/varchar.c')
-rw-r--r--src/backend/utils/adt/varchar.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c
index b6b14cb922e..8d2352358a0 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.40 1998/09/25 01:46:21 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.41 1998/09/25 15:51:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -147,14 +147,7 @@ bpchar(char *s, int32 len)
if ((len == -1) || (len == VARSIZE(s)))
return s;
-#ifdef MULTIBYTE
- /* truncate multi-byte string in a way not to break
- multi-byte boundary */
- rlen = pg_mbcliplen(VARDATA(s), len - VARHDRSZ, len - VARHDRSZ);
- len = rlen + VARHDRSZ;
-#else
rlen = len - VARHDRSZ;
-#endif
if (rlen > 4096)
elog(ERROR, "bpchar: length of char() must be less than 4096");
@@ -167,7 +160,13 @@ bpchar(char *s, int32 len)
result = (char *) palloc(len);
VARSIZE(result) = len;
r = VARDATA(result);
+#ifdef MULTIBYTE
+ /* truncate multi-byte string in a way not to break
+ multi-byte boundary */
+ slen = pg_mbcliplen(VARDATA(s), rlen, rlen);
+#else
slen = VARSIZE(s) - VARHDRSZ;
+#endif
s = VARDATA(s);
#ifdef STRINGDEBUG