From 8ddcdad0c1559612b72b733e907d10806415d4fb Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Tue, 26 Jan 2016 22:44:14 -0800 Subject: 37802: Clarify zparseopts documention. zparseopts "X::" specifier should also look for the optional argument in the word after "-X". --- Src/Modules/zutil.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'Src/Modules/zutil.c') diff --git a/Src/Modules/zutil.c b/Src/Modules/zutil.c index 376cd8402..d98028a84 100644 --- a/Src/Modules/zutil.c +++ b/Src/Modules/zutil.c @@ -1833,7 +1833,8 @@ bin_zparseopts(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) if (o[1]) { add_opt_val(d, o + 1); break; - } else if (!(d->flags & ZOF_OPT)) { + } else if (!(d->flags & ZOF_OPT) || + (pp[1] && pp[1][0] != '-')) { if (!pp[1]) { zwarnnam(nam, "missing argument for option: %s", d->name); @@ -1859,7 +1860,8 @@ bin_zparseopts(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) if (*e) add_opt_val(d, e); - else if (!(d->flags & ZOF_OPT)) { + else if (!(d->flags & ZOF_OPT) || + (pp[1] && pp[1][0] != '-')) { if (!pp[1]) { zwarnnam(nam, "missing argument for option: %s", d->name); -- cgit v1.2.3 From 572f8c85ab40c2adf389a33ea6f2f91c4a4fbb30 Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Wed, 27 Jan 2016 21:52:25 -0800 Subject: 37810: repair handling of backslashes and of names starting with "+"/":"/"=" in zparseopts option specs --- ChangeLog | 7 ++++++- Src/Modules/zutil.c | 17 ++++++++++------- 2 files changed, 16 insertions(+), 8 deletions(-) (limited to 'Src/Modules/zutil.c') diff --git a/ChangeLog b/ChangeLog index 8a8666c1d..e70ed9d80 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,14 @@ +2016-01-27 Barton E. Schaefer + + * 37810: Src/Modules/zutil.c: repair handling of backslashes and + of names starting with "+"/":"/"=" in zparseopts option specs + 2016-01-26 Eric Cook * 37788: Completion/Zsh/Context/_subscript: fix completion of associative array keys -2016-01-26 Barton E. Schaefer +2016-01-26 Barton E. Schaefer * 37802: Doc/Zsh/mod_zutil.yo: Clarify zparseopts description. diff --git a/Src/Modules/zutil.c b/Src/Modules/zutil.c index d98028a84..12a4c03e9 100644 --- a/Src/Modules/zutil.c +++ b/Src/Modules/zutil.c @@ -1745,13 +1745,15 @@ bin_zparseopts(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) for (p = o; *p; p++) { if (*p == '\\' && p[1]) p++; - else if (*p == '+') { - f |= ZOF_MULT; - *p = '\0'; - p++; - break; - } else if (*p == ':' || *p == '=') - break; + else if (p > o) { /* At least one character of option name */ + if (*p == '+') { + f |= ZOF_MULT; + *p = '\0'; + p++; + break; + } else if (*p == ':' || *p == '=') + break; + } } if (*p == ':') { f |= ZOF_ARG; @@ -1789,6 +1791,7 @@ bin_zparseopts(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) p++; *n++ = *p; } + *n = '\0'; if (get_opt_desc(o)) { zwarnnam(nam, "option defined more than once: %s", o); return 1; -- cgit v1.2.3 From ca3bc0d95d7deab4f5381f12b15047de748c0814 Mon Sep 17 00:00:00 2001 From: Jun-ichi Takimoto Date: Sat, 30 Jan 2016 00:25:53 +0900 Subject: 37838: use UNUSED() consistently --- ChangeLog | 13 +++++++++++++ Src/Builtins/rlimits.c | 2 +- Src/Builtins/sched.c | 2 +- Src/Modules/curses.c | 10 +++++----- Src/Modules/datetime.c | 2 +- Src/Modules/db_gdbm.c | 2 +- Src/Modules/files.c | 2 +- Src/Modules/langinfo.c | 2 +- Src/Modules/mapfile.c | 2 +- Src/Modules/mathfunc.c | 2 +- Src/Modules/newuser.c | 4 ++-- Src/Modules/parameter.c | 2 +- Src/Modules/pcre.c | 2 +- Src/Modules/regex.c | 2 +- Src/Modules/socket.c | 2 +- Src/Modules/stat.c | 2 +- Src/Modules/system.c | 4 ++-- Src/Modules/tcp.c | 2 +- Src/Modules/termcap.c | 2 +- Src/Modules/terminfo.c | 2 +- Src/Modules/zpty.c | 2 +- Src/Modules/zselect.c | 2 +- Src/Modules/zutil.c | 2 +- Src/Zle/compctl.c | 2 +- Src/Zle/computil.c | 2 +- Src/Zle/zle_utils.c | 2 +- Src/Zle/zle_word.c | 2 +- Src/hashtable.c | 2 +- Src/hist.c | 2 +- 29 files changed, 47 insertions(+), 34 deletions(-) (limited to 'Src/Modules/zutil.c') diff --git a/ChangeLog b/ChangeLog index 82ac489e6..f7f8b218e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2016-01-30 Jun-ichi Takimoto + + * 37838: Src/Builtins/rlimits.c, Src/Builtins/sched.c, + Src/Modules/curses.c, Src/Modules/datetime.c, Src/Modules/db_gdbm.c, + Src/Modules/files.c, Src/Modules/langinfo.c, Src/Modules/mapfile.c, + Src/Modules/mathfunc.c, Src/Modules/newuser.c, Src/Modules/parameter.c, + Src/Modules/pcre.c, Src/Modules/regex.c, Src/Modules/socket.c, + Src/Modules/stat.c, Src/Modules/system.c, Src/Modules/tcp.c, + Src/Modules/termcap.c, Src/Modules/terminfo.c, Src/Modules/zpty.c, + Src/Modules/zselect.c, Src/Modules/zutil.c, Src/Zle/compctl.c, + Src/Zle/computil.c, Src/Zle/zle_utils.c, Src/Zle/zle_word.c, + Src/hashtable.c, Src/hist.c: use UNUSED() consistently + 2016-01-29 Daniel Shahaf * 37833: README: Document 37804 in README. diff --git a/Src/Builtins/rlimits.c b/Src/Builtins/rlimits.c index 85ec1811c..8b664e36a 100644 --- a/Src/Builtins/rlimits.c +++ b/Src/Builtins/rlimits.c @@ -1037,7 +1037,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { return 0; } diff --git a/Src/Builtins/sched.c b/Src/Builtins/sched.c index 5d5dac6b7..1b9c68ff4 100644 --- a/Src/Builtins/sched.c +++ b/Src/Builtins/sched.c @@ -411,7 +411,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { addprepromptfn(&checksched); return 0; diff --git a/Src/Modules/curses.c b/Src/Modules/curses.c index 64329f643..b8a79ed11 100644 --- a/Src/Modules/curses.c +++ b/Src/Modules/curses.c @@ -299,7 +299,7 @@ zcurses_free_window(ZCWin w) } static struct zcurses_namenumberpair * -zcurses_attrget(WINDOW *w, char *attr) +zcurses_attrget(UNUSED(WINDOW *w), char *attr) { struct zcurses_namenumberpair *zca; @@ -419,7 +419,7 @@ freecolorpairnode(HashNode hn) *************/ static int -zccmd_init(const char *nam, char **args) +zccmd_init(UNUSED(const char *nam), UNUSED(char **args)) { LinkNode stdscr_win = zcurses_getwindowbyname("stdscr"); @@ -808,7 +808,7 @@ zccmd_border(const char *nam, char **args) static int -zccmd_endwin(const char *nam, char **args) +zccmd_endwin(UNUSED(const char *nam), UNUSED(char **args)) { LinkNode stdscr_win = zcurses_getwindowbyname("stdscr"); @@ -1496,7 +1496,7 @@ zccmd_touch(const char *nam, char **args) /**/ static int -bin_zcurses(char *nam, char **args, Options ops, UNUSED(int func)) +bin_zcurses(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) { char **saargs; struct zcurses_subcommand *zcsc; @@ -1693,7 +1693,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { zcurses_windows = znewlinklist(); diff --git a/Src/Modules/datetime.c b/Src/Modules/datetime.c index 86c61cf1c..bb82c542f 100644 --- a/Src/Modules/datetime.c +++ b/Src/Modules/datetime.c @@ -292,7 +292,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { return 0; } diff --git a/Src/Modules/db_gdbm.c b/Src/Modules/db_gdbm.c index 032963262..8dd60fc0d 100644 --- a/Src/Modules/db_gdbm.c +++ b/Src/Modules/db_gdbm.c @@ -390,7 +390,7 @@ boot_(UNUSED(Module m)) /**/ int -cleanup_(UNUSED(Module m)) +cleanup_(Module m) { return setfeatureenables(m, &module_features, NULL); } diff --git a/Src/Modules/files.c b/Src/Modules/files.c index dbcff6307..6f816bac0 100644 --- a/Src/Modules/files.c +++ b/Src/Modules/files.c @@ -805,7 +805,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { return 0; } diff --git a/Src/Modules/langinfo.c b/Src/Modules/langinfo.c index eb45d161b..520b0370c 100644 --- a/Src/Modules/langinfo.c +++ b/Src/Modules/langinfo.c @@ -498,7 +498,7 @@ boot_(UNUSED(Module m)) /**/ int -cleanup_(UNUSED(Module m)) +cleanup_(Module m) { return setfeatureenables(m, &module_features, NULL); } diff --git a/Src/Modules/mapfile.c b/Src/Modules/mapfile.c index 422c7077c..2503b361e 100644 --- a/Src/Modules/mapfile.c +++ b/Src/Modules/mapfile.c @@ -306,7 +306,7 @@ boot_(UNUSED(Module m)) /**/ int -cleanup_(UNUSED(Module m)) +cleanup_(Module m) { return setfeatureenables(m, &module_features, NULL); } diff --git a/Src/Modules/mathfunc.c b/Src/Modules/mathfunc.c index efadd86ff..451b3cfeb 100644 --- a/Src/Modules/mathfunc.c +++ b/Src/Modules/mathfunc.c @@ -599,7 +599,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { return 0; } diff --git a/Src/Modules/newuser.c b/Src/Modules/newuser.c index efdb2abba..6f0d2e0aa 100644 --- a/Src/Modules/newuser.c +++ b/Src/Modules/newuser.c @@ -41,14 +41,14 @@ setup_(UNUSED(Module m)) /**/ int -features_(Module m, char ***features) +features_(UNUSED(Module m), UNUSED(char ***features)) { return 1; } /**/ int -enables_(Module m, int **enables) +enables_(UNUSED(Module m), UNUSED(int **enables)) { return 0; } diff --git a/Src/Modules/parameter.c b/Src/Modules/parameter.c index 04d448529..edb051785 100644 --- a/Src/Modules/parameter.c +++ b/Src/Modules/parameter.c @@ -2190,7 +2190,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { return 0; } diff --git a/Src/Modules/pcre.c b/Src/Modules/pcre.c index aa5c8ed5b..e23ab57f5 100644 --- a/Src/Modules/pcre.c +++ b/Src/Modules/pcre.c @@ -479,7 +479,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { return 0; } diff --git a/Src/Modules/regex.c b/Src/Modules/regex.c index 16cc77f30..edb7234d4 100644 --- a/Src/Modules/regex.c +++ b/Src/Modules/regex.c @@ -248,7 +248,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { return 0; } diff --git a/Src/Modules/socket.c b/Src/Modules/socket.c index 7c3fb5ebe..c65b7dfce 100644 --- a/Src/Modules/socket.c +++ b/Src/Modules/socket.c @@ -310,7 +310,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { return 0; } diff --git a/Src/Modules/stat.c b/Src/Modules/stat.c index 396177149..66baa1292 100644 --- a/Src/Modules/stat.c +++ b/Src/Modules/stat.c @@ -659,7 +659,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { return 0; } diff --git a/Src/Modules/system.c b/Src/Modules/system.c index 1ab1fb17e..1ee61c00b 100644 --- a/Src/Modules/system.c +++ b/Src/Modules/system.c @@ -439,7 +439,7 @@ bin_sysseek(char *nam, char **args, Options ops, UNUSED(int func)) /**/ static mnumber -math_systell(UNUSED(char *name), int argc, mnumber *argv, UNUSED(int id)) +math_systell(UNUSED(char *name), UNUSED(int argc), mnumber *argv, UNUSED(int id)) { int fd = (argv->type == MN_INTEGER) ? argv->u.l : (int)argv->u.d; mnumber ret; @@ -834,7 +834,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { return 0; } diff --git a/Src/Modules/tcp.c b/Src/Modules/tcp.c index 9fc1b29a2..5af68834f 100644 --- a/Src/Modules/tcp.c +++ b/Src/Modules/tcp.c @@ -732,7 +732,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { ztcp_sessions = znewlinklist(); return 0; diff --git a/Src/Modules/termcap.c b/Src/Modules/termcap.c index cd0e85885..29c28360c 100644 --- a/Src/Modules/termcap.c +++ b/Src/Modules/termcap.c @@ -342,7 +342,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { #ifdef HAVE_TGETENT # ifdef HAVE_SETUPTERM diff --git a/Src/Modules/terminfo.c b/Src/Modules/terminfo.c index 88e326f63..e0439afca 100644 --- a/Src/Modules/terminfo.c +++ b/Src/Modules/terminfo.c @@ -335,7 +335,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { #ifdef USE_TERMINFO_MODULE # ifdef HAVE_SETUPTERM diff --git a/Src/Modules/zpty.c b/Src/Modules/zpty.c index 63ff7578c..0ef753915 100644 --- a/Src/Modules/zpty.c +++ b/Src/Modules/zpty.c @@ -891,7 +891,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { ptycmds = NULL; diff --git a/Src/Modules/zselect.c b/Src/Modules/zselect.c index 30a3f51a5..8c1267240 100644 --- a/Src/Modules/zselect.c +++ b/Src/Modules/zselect.c @@ -307,7 +307,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { return 0; } diff --git a/Src/Modules/zutil.c b/Src/Modules/zutil.c index 12a4c03e9..477575ccd 100644 --- a/Src/Modules/zutil.c +++ b/Src/Modules/zutil.c @@ -1995,7 +1995,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { return 0; } diff --git a/Src/Zle/compctl.c b/Src/Zle/compctl.c index 8381867d0..ce4576297 100644 --- a/Src/Zle/compctl.c +++ b/Src/Zle/compctl.c @@ -3992,7 +3992,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { addhookfunc("compctl_make", (Hookfn) ccmakehookfn); addhookfunc("compctl_cleanup", (Hookfn) cccleanuphookfn); diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c index 60fb096be..e8f0a6fe7 100644 --- a/Src/Zle/computil.c +++ b/Src/Zle/computil.c @@ -4994,7 +4994,7 @@ enables_(Module m, int **enables) /**/ int -boot_(Module m) +boot_(UNUSED(Module m)) { return 0; } diff --git a/Src/Zle/zle_utils.c b/Src/Zle/zle_utils.c index 6e9a98bde..a2c88102a 100644 --- a/Src/Zle/zle_utils.c +++ b/Src/Zle/zle_utils.c @@ -1678,7 +1678,7 @@ viundochange(char **args) /**/ int -splitundo(char **args) +splitundo(UNUSED(char **args)) { if (vistartchange >= 0) { mergeundo(); diff --git a/Src/Zle/zle_word.c b/Src/Zle/zle_word.c index 2e6d75e86..3c1f26c40 100644 --- a/Src/Zle/zle_word.c +++ b/Src/Zle/zle_word.c @@ -153,7 +153,7 @@ emacsforwardword(char **args) /**/ int -viforwardblankwordend(UNUSED(char **args)) +viforwardblankwordend(char **args) { int n = zmult; diff --git a/Src/hashtable.c b/Src/hashtable.c index 0664c3694..2d5af5be0 100644 --- a/Src/hashtable.c +++ b/Src/hashtable.c @@ -558,7 +558,7 @@ printhashtabinfo(HashTable ht) /**/ int -bin_hashinfo(char *nam, char **args, Options ops, int func) +bin_hashinfo(UNUSED(char *nam), UNUSED(char **args), UNUSED(Options ops), UNUSED(int func)) { HashTable ht; diff --git a/Src/hist.c b/Src/hist.c index 7f9e4dbbb..5fc40bd67 100644 --- a/Src/hist.c +++ b/Src/hist.c @@ -468,7 +468,7 @@ herrflush(void) /**/ static int -getsubsargs(char *subline, int *gbalp, int *cflagp) +getsubsargs(UNUSED(char *subline), int *gbalp, int *cflagp) { int del, follow; char *ptr1, *ptr2; -- cgit v1.2.3 From f9b170351136e7e2e04cecf4f1f6c686b0c1324d Mon Sep 17 00:00:00 2001 From: Daniel Shahaf Date: Sat, 30 Jul 2016 10:50:48 +0000 Subject: 38971: Start using the new arrlen_ge() / arrlen_le() helpers. --- ChangeLog | 4 ++++ Src/Modules/terminfo.c | 2 +- Src/Modules/zutil.c | 4 ++-- Src/builtin.c | 6 +++--- Src/params.c | 4 ++-- Src/prompt.c | 6 +++--- Src/utils.c | 2 +- 7 files changed, 16 insertions(+), 12 deletions(-) (limited to 'Src/Modules/zutil.c') diff --git a/ChangeLog b/ChangeLog index bcc9d09bb..28ce9bb71 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2016-08-01 Daniel Shahaf + * 38971: Src/Modules/terminfo.c, Src/Modules/zutil.c, + Src/builtin.c, Src/params.c, Src/prompt.c, Src/utils.c: Start + using the new arrlen_ge() / arrlen_le() helpers. + * 38973: Src/params.c, Src/subst.c, Src/utils.c: Optimize indexing array parameters. diff --git a/Src/Modules/terminfo.c b/Src/Modules/terminfo.c index e0439afca..bbd325899 100644 --- a/Src/Modules/terminfo.c +++ b/Src/Modules/terminfo.c @@ -99,7 +99,7 @@ bin_echoti(char *name, char **argv, UNUSED(Options ops), UNUSED(int func)) return 1; } /* check that the number of arguments provided is not too high */ - if (arrlen(argv) > 9) { + if (arrlen_gt(argv, 9)) { zwarnnam(name, "too many arguments"); return 1; } diff --git a/Src/Modules/zutil.c b/Src/Modules/zutil.c index 477575ccd..d95c0c254 100644 --- a/Src/Modules/zutil.c +++ b/Src/Modules/zutil.c @@ -472,7 +472,7 @@ bin_zstyle(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) Patprog prog; char *pat; - if (arrlen(args) < 2) { + if (arrlen_lt(args, 2)) { zwarnnam(nam, "not enough arguments"); return 1; } @@ -491,7 +491,7 @@ bin_zstyle(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) Style s; char *context, *stylename; - switch (arrlen(args)) { + switch (arrlen_ge(args, 3) ? 3 : arrlen(args)) { case 2: context = args[0]; stylename = args[1]; diff --git a/Src/builtin.c b/Src/builtin.c index bfb9e6929..fb14b2e33 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -3406,7 +3406,7 @@ bin_unset(char *name, char **argv, Options ops, int func) } else { /* start is after the element for reverse index */ int start = vbuf.start - !!(vbuf.flags & VALFLAG_INV); - if (start < arrlen(vbuf.pm->u.arr)) { + if (arrlen_gt(vbuf.pm->u.arr, start)) { char *arr[2]; arr[0] = ""; arr[1] = 0; @@ -5026,7 +5026,7 @@ bin_shift(char *name, char **argv, Options ops, UNUSED(int func)) if (*argv) { for (; *argv; argv++) if ((s = getaparam(*argv))) { - if (num > arrlen(s)) { + if (arrlen_lt(s, num)) { zwarnnam(name, "shift count must be <= $#"); ret++; continue; @@ -5095,7 +5095,7 @@ bin_getopts(UNUSED(char *name), char **argv, UNUSED(Options ops), UNUSED(int fun zoptind = 1; optcind = 0; } - if(zoptind > arrlen(args)) + if (arrlen_lt(args, zoptind)) /* no more options */ return 1; diff --git a/Src/params.c b/Src/params.c index 33f177ecc..0eda7848f 100644 --- a/Src/params.c +++ b/Src/params.c @@ -2225,13 +2225,13 @@ getarrvalue(Value v) v->start += arrlen(s); if (v->end < 0) v->end += arrlen(s) + 1; - if (v->start > arrlen(s) || v->start < 0) + if (arrlen_lt(s, v->start) || v->start < 0) s = arrdup(nular); else s = arrdup(s + v->start); if (v->end <= v->start) s[0] = NULL; - else if (v->end - v->start <= arrlen(s)) + else if (arrlen_ge(s, v->end - v->start)) s[v->end - v->start] = NULL; return s; } diff --git a/Src/prompt.c b/Src/prompt.c index bb2745358..d4f389809 100644 --- a/Src/prompt.c +++ b/Src/prompt.c @@ -395,11 +395,11 @@ putpromptchar(int doprint, int endchar, unsigned int *txtchangep) test = 1; break; case 'v': - if (arrlen(psvar) >= arg) + if (arrlen_ge(psvar, arg)) test = 1; break; case 'V': - if (arrlen(psvar) >= arg) { + if (arrlen_ge(psvar, arg)) { if (*psvar[(arg ? arg : 1) - 1]) test = 1; } @@ -736,7 +736,7 @@ putpromptchar(int doprint, int endchar, unsigned int *txtchangep) arg = 1; else if (arg < 0) arg += arrlen(psvar) + 1; - if (arg > 0 && arrlen(psvar) >= arg) + if (arg > 0 && arrlen_ge(psvar, arg)) stradd(psvar[arg - 1]); break; case 'E': diff --git a/Src/utils.c b/Src/utils.c index 95da96058..0a5954f65 100644 --- a/Src/utils.c +++ b/Src/utils.c @@ -1157,7 +1157,7 @@ finddir(char *s) scanhashtable(nameddirtab, 0, 0, 0, finddir_scan, 0); ares = subst_string_by_hook("zsh_directory_name", "d", finddir_full); - if (ares && arrlen(ares) >= 2 && + if (ares && arrlen_ge(ares, 2) && (len = (int)zstrtol(ares[1], NULL, 10)) > finddir_best) { /* better duplicate this string since it's come from REPLY */ finddir_last = (Nameddir)hcalloc(sizeof(struct nameddir)); -- cgit v1.2.3