summary refs log tree commit diff
diff options
context:
space:
mode:
authorBarton E. Schaefer <schaefer@zsh.org>2018-03-25 18:01:25 -0700
committerBarton E. Schaefer <schaefer@zsh.org>2018-03-25 18:01:25 -0700
commit9bc391105ffc9a430668373388badd369e314415 (patch)
tree5ee326529906f93222f7cd2a4452785c91ebb7ad
parent3b7d6a558fcd36d333b9e41a7c12ee5b6e6014fa (diff)
downloadzsh-9bc391105ffc9a430668373388badd369e314415.tar.gz
zsh-9bc391105ffc9a430668373388badd369e314415.tar.xz
zsh-9bc391105ffc9a430668373388badd369e314415.zip
42480: optimize $#var for single-byte character sets
-rw-r--r--ChangeLog4
-rw-r--r--Src/utils.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 1664600cf..4ac19f9d9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2018-03-25  Barton E. Schaefer  <schaefer@zsh.org>
+
+	* 42480: Src/utils.c: optimize $#var for single-byte character sets
+
 2018-03-25  Peter Stephenson  <p.w.stephenson@ntlworld.com>
 
 	* 42505: README. Etc/FAQ.yo: prepare for 5.5 release.
diff --git a/Src/utils.c b/Src/utils.c
index 998b16220..6517e15b8 100644
--- a/Src/utils.c
+++ b/Src/utils.c
@@ -5496,7 +5496,7 @@ mb_metastrlenend(char *ptr, int width, char *eptr)
     wchar_t wc;
     int num, num_in_char, complete;
 
-    if (!isset(MULTIBYTE))
+    if (!isset(MULTIBYTE) || MB_CUR_MAX == 1)
 	return eptr ? (int)(eptr - ptr) : ztrlen(ptr);
 
     laststart = ptr;