summaryrefslogtreecommitdiff
path: root/Src
diff options
context:
space:
mode:
authorSebastian Gniazdowski <sgniazdowski@gmail.com>2018-10-17 00:08:01 +0200
committerPeter Stephenson <p.stephenson@samsung.com>2018-10-23 09:33:55 +0100
commit5556e00c657f6f51fbae6596fb53dd751888f30f (patch)
tree06929237c53197410bebbb9790f119a5233a66cb /Src
parent07d06c9fb9fa161929abb4d9f20b5398ef948554 (diff)
downloadzsh-5556e00c657f6f51fbae6596fb53dd751888f30f.tar.gz
zsh-5556e00c657f6f51fbae6596fb53dd751888f30f.zip
43695: minor but simple optmiisation to use existing string length
Diffstat (limited to 'Src')
-rw-r--r--Src/lex.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/Src/lex.c b/Src/lex.c
index 44ad88043..fa29da3a2 100644
--- a/Src/lex.c
+++ b/Src/lex.c
@@ -1626,7 +1626,7 @@ parsestrnoerr(char **s)
zcontext_save();
untokenize(*s);
- inpush(dupstring(*s), 0, NULL);
+ inpush(dupstring_wlen(*s, l), 0, NULL);
strinbeg(0);
lexbuf.len = 0;
lexbuf.ptr = tokstr = *s;
@@ -1658,7 +1658,7 @@ parse_subscript(char *s, int sub, int endchar)
if (!*s || *s == endchar)
return 0;
zcontext_save();
- untokenize(t = dupstring(s));
+ untokenize(t = dupstring_wlen(s, l));
inpush(t, 0, NULL);
strinbeg(0);
/*
@@ -1674,7 +1674,7 @@ parse_subscript(char *s, int sub, int endchar)
* length preservation.
*/
lexbuf.len = 0;
- lexbuf.ptr = tokstr = dupstring(s);
+ lexbuf.ptr = tokstr = dupstring_wlen(s, l);
lexbuf.siz = l + 1;
err = dquote_parse(endchar, sub);
toklen = (int)(lexbuf.ptr - tokstr);
@@ -1713,7 +1713,7 @@ parse_subst_string(char *s)
return 0;
zcontext_save();
untokenize(s);
- inpush(dupstring(s), 0, NULL);
+ inpush(dupstring_wlen(s, l), 0, NULL);
strinbeg(0);
lexbuf.len = 0;
lexbuf.ptr = tokstr = s;