diff options
Diffstat (limited to 'src/backend/utils/mb/mbutils.c')
-rw-r--r-- | src/backend/utils/mb/mbutils.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c index 541f9c2a5d3..a670bcce624 100644 --- a/src/backend/utils/mb/mbutils.c +++ b/src/backend/utils/mb/mbutils.c @@ -4,7 +4,7 @@ * (currently mule internal code (mic) is used) * Tatsuo Ishii * - * $PostgreSQL: pgsql/src/backend/utils/mb/mbutils.c,v 1.49 2005/03/07 04:30:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/mb/mbutils.c,v 1.50 2005/07/10 21:13:59 tgl Exp $ */ #include "postgres.h" @@ -489,16 +489,21 @@ pg_mbstrlen(const unsigned char *mbstr) } /* returns the length (counted as a wchar) of a multibyte string - (not necessarily NULL terminated) */ + * (not necessarily NULL terminated) + */ int pg_mbstrlen_with_len(const unsigned char *mbstr, int limit) { int len = 0; - int l; + + /* optimization for single byte encoding */ + if (pg_database_encoding_max_length() == 1) + return limit; while (limit > 0 && *mbstr) { - l = pg_mblen(mbstr); + int l = pg_mblen(mbstr); + limit -= l; mbstr += l; len++; |