diff options
Diffstat (limited to 'src/backend/utils/adt/varchar.c')
-rw-r--r-- | src/backend/utils/adt/varchar.c | 8 |
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 |