From 1d98f77a9be240662d84c7c2014019571f7eda1b Mon Sep 17 00:00:00 2001 From: Jun T Date: Mon, 25 Jan 2016 08:27:48 -0800 Subject: Jun T.: 37759: save more function pointers from realparamtab when hacking in their replacements Restoring from the original external symbols fails for some dynamic link schemes (e.g. 64bit Cygwin). --- Src/Modules/param_private.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'Src/Modules') diff --git a/Src/Modules/param_private.c b/Src/Modules/param_private.c index e13813c3d..2f51cb099 100644 --- a/Src/Modules/param_private.c +++ b/Src/Modules/param_private.c @@ -490,7 +490,7 @@ wrap_private(Eprog prog, FuncWrap w, char *name) return 1; } -static HashNode (*getparamnode) _((HashTable, const char *)); +static GetNodeFunc getparamnode; /**/ static HashNode @@ -567,6 +567,8 @@ static struct features module_features = { }; static struct builtin save_local; +static GetNodeFunc save_getnode2; +static ScanFunc save_printnode; static struct reswd reswd_private = {{NULL, "private", 0}, TYPESET}; /**/ @@ -577,6 +579,8 @@ setup_(UNUSED(Module m)) /* Horrible, horrible hack */ getparamnode = realparamtab->getnode; + save_getnode2 = realparamtab->getnode2; + save_printnode = realparamtab->printnode; realparamtab->getnode = getprivatenode; realparamtab->getnode2 = getprivatenode2; realparamtab->printnode = printprivatenode; @@ -624,8 +628,8 @@ cleanup_(Module m) removehashnode(reswdtab, "private"); realparamtab->getnode = getparamnode; - realparamtab->getnode2 = gethashnode2; - realparamtab->printnode = printparamnode; + realparamtab->getnode2 = save_getnode2; + realparamtab->printnode = save_printnode; deletewrapper(m, wrapper); return setfeatureenables(m, &module_features, NULL); -- cgit v1.2.3 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". --- ChangeLog | 5 +++++ Src/Modules/zutil.c | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'Src/Modules') diff --git a/ChangeLog b/ChangeLog index 5e6b148a9..8a8666c1d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,11 @@ 2016-01-26 Barton E. Schaefer + * 37802: Doc/Zsh/mod_zutil.yo: Clarify zparseopts description. + + * 37802: Src/Modules/zutil.c: zparseopts "X::" specifier should + also look for the optional argument in the word after "-X". + * 37785: Src/params.c: skip autoload parameters for "typeset -p" 2016-01-25 Barton E. Schaefer 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') 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') 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 a4020e10a33f3f78681a2e18fb7add56338d4e81 Mon Sep 17 00:00:00 2001 From: Jun-ichi Takimoto Date: Wed, 3 Feb 2016 01:24:56 +0900 Subject: 37868: add 'static' to file local variables --- ChangeLog | 8 ++++++++ Src/Modules/curses.c | 2 +- Src/Modules/param_private.c | 10 +++++----- Src/Modules/tcp.c | 2 +- Src/Modules/termcap.c | 2 +- Src/Modules/zftp.c | 8 ++++---- Src/Zle/complist.c | 2 +- Src/Zle/zle_misc.c | 2 +- Src/Zle/zle_utils.c | 4 ++-- Src/cond.c | 3 ++- Src/exec.c | 2 -- Src/glob.c | 2 +- Src/jobs.c | 6 +++--- Src/params.c | 2 +- Src/prompt.c | 2 +- Src/utils.c | 4 ++-- 16 files changed, 34 insertions(+), 27 deletions(-) (limited to 'Src/Modules') diff --git a/ChangeLog b/ChangeLog index d4adbe886..a8e76e238 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2016-02-03 Jun-ichi Takimoto + + * 37868: Src/Modules/curses.c, Src/Modules/param_private.c, + Src/Modules/tcp.c, Src/Modules/termcap.c, Src/Modules/zftp.c, + Src/Zle/complist.c, Src/Zle/zle_misc.c, Src/Zle/zle_utils.c, + Src/cond.c, Src/exec.c, Src/glob.c, Src/jobs.c, Src/params.c, + Src/prompt.c, Src/utils.c: add 'static' to file local variables. + 2016-01-31 Barton E. Schaefer * 37859: Src/text.c: NULL-terminate cond_binary_ops static array. diff --git a/Src/Modules/curses.c b/Src/Modules/curses.c index b8a79ed11..a04841a85 100644 --- a/Src/Modules/curses.c +++ b/Src/Modules/curses.c @@ -202,7 +202,7 @@ static const struct zcurses_mouse_event zcurses_mouse_map[] = { { 0, 0, 0 } }; -mmask_t zcurses_mouse_mask = ALL_MOUSE_EVENTS; +static mmask_t zcurses_mouse_mask = ALL_MOUSE_EVENTS; #endif diff --git a/Src/Modules/param_private.c b/Src/Modules/param_private.c index 2f51cb099..86416c5c5 100644 --- a/Src/Modules/param_private.c +++ b/Src/Modules/param_private.c @@ -42,19 +42,19 @@ struct gsu_closure { void *g; }; -const struct gsu_scalar scalar_private_gsu = +static const struct gsu_scalar scalar_private_gsu = { pps_getfn, pps_setfn, pps_unsetfn }; -const struct gsu_integer integer_private_gsu = +static const struct gsu_integer integer_private_gsu = { ppi_getfn, ppi_setfn, ppi_unsetfn }; -const struct gsu_float float_private_gsu = +static const struct gsu_float float_private_gsu = { ppf_getfn, ppf_setfn, ppf_unsetfn }; -const struct gsu_array array_private_gsu = +static const struct gsu_array array_private_gsu = { ppa_getfn, ppa_setfn, ppa_unsetfn }; -const struct gsu_hash hash_private_gsu = +static const struct gsu_hash hash_private_gsu = { pph_getfn, pph_setfn, pph_unsetfn }; /* diff --git a/Src/Modules/tcp.c b/Src/Modules/tcp.c index 5af68834f..dec12142b 100644 --- a/Src/Modules/tcp.c +++ b/Src/Modules/tcp.c @@ -208,7 +208,7 @@ freehostent(UNUSED(struct hostent *ptr)) /**/ #endif /* !HAVE_GETIPNODEBYNAME */ -LinkList ztcp_sessions; +static LinkList ztcp_sessions; /* "allocate" a tcp_session */ static Tcp_session diff --git a/Src/Modules/termcap.c b/Src/Modules/termcap.c index 29c28360c..60a6e138a 100644 --- a/Src/Modules/termcap.c +++ b/Src/Modules/termcap.c @@ -295,7 +295,7 @@ scantermcap(UNUSED(HashTable ht), ScanFunc func, int flags) } } -struct paramdef partab[] = { +static struct paramdef partab[] = { SPECIALPMDEF("termcap", PM_READONLY, NULL, gettermcap, scantermcap) }; diff --git a/Src/Modules/zftp.c b/Src/Modules/zftp.c index b4081df5f..deed35e2f 100644 --- a/Src/Modules/zftp.c +++ b/Src/Modules/zftp.c @@ -344,10 +344,10 @@ static int zfsesscnt; */ /* flags for alarm set, alarm gone off */ -int zfalarmed, zfdrrrring; +static int zfalarmed, zfdrrrring; /* remember old alarm status */ -time_t oaltime; -unsigned int oalremain; +static time_t oaltime; +static unsigned int oalremain; /* * Where to jump to when the alarm goes off. This is much @@ -357,7 +357,7 @@ unsigned int oalremain; * * gcc -O gives apparently spurious `may be clobbered by longjmp' warnings. */ -jmp_buf zfalrmbuf; +static jmp_buf zfalrmbuf; /* The signal handler itself */ diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c index 0ccb88505..06a07a4e8 100644 --- a/Src/Zle/complist.c +++ b/Src/Zle/complist.c @@ -113,7 +113,7 @@ static Cmgroup *mgtab, *mgtabp; * Allow us to keep track of pointer arithmetic for mgtab; could * just as well have been for mtab but wasn't. */ -int mgtabsize; +static int mgtabsize; #endif /* diff --git a/Src/Zle/zle_misc.c b/Src/Zle/zle_misc.c index 0483f758d..25f65b39c 100644 --- a/Src/Zle/zle_misc.c +++ b/Src/Zle/zle_misc.c @@ -1497,7 +1497,7 @@ struct suffixset { }; /* The list of suffix structures */ -struct suffixset *suffixlist; +static struct suffixset *suffixlist; /* Shell function to call to remove the suffix. */ diff --git a/Src/Zle/zle_utils.c b/Src/Zle/zle_utils.c index a2c88102a..68794c66a 100644 --- a/Src/Zle/zle_utils.c +++ b/Src/Zle/zle_utils.c @@ -587,7 +587,7 @@ struct zle_position { }; /* LIFO stack of positions */ -struct zle_position *zle_positions; +static struct zle_position *zle_positions; /* * Save positions including cursor, end-of-line and @@ -1412,7 +1412,7 @@ zlong undo_changeno; /* If positive, don't undo beyond this point */ -zlong undo_limitno; +static zlong undo_limitno; /**/ void diff --git a/Src/cond.c b/Src/cond.c index c5ab65eea..0381fe94b 100644 --- a/Src/cond.c +++ b/Src/cond.c @@ -30,7 +30,8 @@ #include "zsh.mdh" #include "cond.pro" -int tracingcond; +/**/ +int tracingcond; /* updated by execcond() in exec.c */ static char *condstr[COND_MOD] = { "!", "&&", "||", "==", "!=", "<", ">", "-nt", "-ot", "-ef", "-eq", diff --git a/Src/exec.c b/Src/exec.c index 352615c83..b60fc90bd 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -4518,8 +4518,6 @@ spawnpipes(LinkList l, int nullexec) } } -extern int tracingcond; - /* evaluate a [[ ... ]] */ /**/ diff --git a/Src/glob.c b/Src/glob.c index 69de15544..2051016ec 100644 --- a/Src/glob.c +++ b/Src/glob.c @@ -306,7 +306,7 @@ statfullpath(const char *s, struct stat *st, int l) /* This may be set by qualifier functions to an array of strings to insert * into the list instead of the original string. */ -char **inserts; +static char **inserts; /* add a match to the list */ diff --git a/Src/jobs.c b/Src/jobs.c index b47ba8c60..2a9dbe7d6 100644 --- a/Src/jobs.c +++ b/Src/jobs.c @@ -1970,9 +1970,9 @@ struct bgstatus { }; typedef struct bgstatus *Bgstatus; /* The list of those entries */ -LinkList bgstatus_list; +static LinkList bgstatus_list; /* Count of entries. Reaches value of _SC_CHILD_MAX and stops. */ -long bgstatus_count; +static long bgstatus_count; /* * Remove and free a bgstatus entry. @@ -2372,7 +2372,7 @@ bin_fg(char *name, char **argv, Options ops, int func) return retval; } -const struct { +static const struct { const char *name; int num; } alt_sigs[] = { diff --git a/Src/params.c b/Src/params.c index a1f0292cc..76ed61c39 100644 --- a/Src/params.c +++ b/Src/params.c @@ -416,7 +416,7 @@ IPDEF10("pipestatus", pipestatus_gsu), * and $@, this is not readonly. This parameter is not directly * visible in user space. */ -initparam argvparam_pm = IPDEF9F("", &pparams, NULL, \ +static initparam argvparam_pm = IPDEF9F("", &pparams, NULL, \ PM_ARRAY|PM_SPECIAL|PM_DONTIMPORT); #undef BR diff --git a/Src/prompt.c b/Src/prompt.c index be067ee7e..831c4f948 100644 --- a/Src/prompt.c +++ b/Src/prompt.c @@ -1831,7 +1831,7 @@ struct colour_sequences { char *end; /* Escape sequence terminator */ char *def; /* Code to reset default colour */ }; -struct colour_sequences fg_bg_sequences[2]; +static struct colour_sequences fg_bg_sequences[2]; /* * We need a buffer for colour sequence composition. It may diff --git a/Src/utils.c b/Src/utils.c index 053731cfa..de4af5a51 100644 --- a/Src/utils.c +++ b/Src/utils.c @@ -56,12 +56,12 @@ typedef struct widechar_array *Widechar_array; * The wordchars variable turned into a wide character array. * This is much more convenient for testing. */ -struct widechar_array wordchars_wide; +static struct widechar_array wordchars_wide; /* * The same for the separators (IFS) array. */ -struct widechar_array ifs_wide; +static struct widechar_array ifs_wide; /* Function to set one of the above from the multibyte array */ -- cgit v1.2.3 From 222dea055c622822ff24a2fa14564231bf3323d0 Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Sat, 23 Apr 2016 14:20:16 -0700 Subject: Mikael Berthe: 38307: PCRE segfault when parenthesized group matches nothing unposted: regression test for 38307 --- ChangeLog | 7 +++++++ Src/Modules/pcre.c | 2 +- Test/V07pcre.ztst | 7 +++++++ 3 files changed, 15 insertions(+), 1 deletion(-) (limited to 'Src/Modules') diff --git a/ChangeLog b/ChangeLog index 4fa96e7fa..e8bfad8c8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2016-04-23 Barton E. Schaefer + + * Mikael Berthe: 38307: Src/Modules/pcre.c: PCRE segfault when + parenthesized group matches nothing (cf. 37515) + + * unposted: Test/V07pcre.ztst: regression test for 38307 + 2016-04-22 Barton E. Schaefer * 38306: Src/builtin.c: in printf formats, treat a missing diff --git a/Src/Modules/pcre.c b/Src/Modules/pcre.c index e23ab57f5..5fd67963d 100644 --- a/Src/Modules/pcre.c +++ b/Src/Modules/pcre.c @@ -228,7 +228,7 @@ zpcre_get_substrings(char *arg, int *ovec, int ret, char *matchvar, /* Find the start offset */ MB_CHARINIT(); leftlen = ipair[0]; - while (leftlen) { + while (leftlen > 0) { offs++; clen = MB_CHARLEN(ptr, leftlen); ptr += clen; diff --git a/Test/V07pcre.ztst b/Test/V07pcre.ztst index 39077564c..ad1770712 100644 --- a/Test/V07pcre.ztst +++ b/Test/V07pcre.ztst @@ -130,3 +130,10 @@ 0:pcre_match -b and pcre_match -n >78884; ZPCRE_OP: 25 30 >90210; ZPCRE_OP: 31 36 + +# Subshell because crash on failure + ( setopt re_match_pcre + [[ test.txt =~ '^(.*_)?(test)' ]] + echo $match[2] ) +0:regression for segmentation fault, workers/38307 +>test -- cgit v1.2.3 From 7fc0c2d57db1c0ee71f66ff73ab5655294a245c0 Mon Sep 17 00:00:00 2001 From: Sebastian Gniazdowski Date: Thu, 28 Apr 2016 22:24:27 +0200 Subject: 39354: zcurses fix for colour management Alter internal return code so as not to mask curses error code. --- ChangeLog | 5 +++++ Src/Modules/curses.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'Src/Modules') diff --git a/ChangeLog b/ChangeLog index b8eba08f6..9577b14d3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-04-29 Peter Stephenson + + * Sebastian: 39354: Src/Modules/curses.c: alter internal return + code so as not to mask curses error code. + 2016-04-26 Barton E. Schaefer * 38350 (cf. Glenn Smith: 38348): Src/exec.c: Remove-all warning diff --git a/Src/Modules/curses.c b/Src/Modules/curses.c index a04841a85..7fff858f4 100644 --- a/Src/Modules/curses.c +++ b/Src/Modules/curses.c @@ -324,7 +324,7 @@ zcurses_color(const char *color) return (short)zc->number; } - return (short)-1; + return (short)-2; } static Colorpairnode @@ -353,10 +353,10 @@ zcurses_colorget(const char *nam, char *colorpair) f = zcurses_color(cp); b = zcurses_color(bg+1); - if (f==-1 || b==-1) { - if (f == -1) + if (f==-2 || b==-2) { + if (f == -2) zwarnnam(nam, "foreground color `%s' not known", cp); - if (b == -1) + if (b == -2) zwarnnam(nam, "background color `%s' not known", bg+1); *bg = '/'; zsfree(cp); -- cgit v1.2.3 From fea013b8e8cc3b2d8e7ca59c1f32b27cdf376155 Mon Sep 17 00:00:00 2001 From: Sebastian Gniazdowski Date: Fri, 29 Apr 2016 13:34:19 +0200 Subject: 38356: allow integers as curses colours --- ChangeLog | 5 ++++- Doc/Zsh/mod_curses.yo | 6 +++++- Src/Modules/curses.c | 16 ++++++++++++++-- 3 files changed, 23 insertions(+), 4 deletions(-) (limited to 'Src/Modules') diff --git a/ChangeLog b/ChangeLog index 9577b14d3..29d2c386b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,9 @@ 2016-04-29 Peter Stephenson - * Sebastian: 39354: Src/Modules/curses.c: alter internal return + * Sebastian: 38356: Src/Modules/curses.c, Doc/Zsh/mod_curses.yo: + allow integers as colours in curses. + + * Sebastian: 38354: Src/Modules/curses.c: alter internal return code so as not to mask curses error code. 2016-04-26 Barton E. Schaefer diff --git a/Doc/Zsh/mod_curses.yo b/Doc/Zsh/mod_curses.yo index 8104572a6..72dc4094a 100644 --- a/Doc/Zsh/mod_curses.yo +++ b/Doc/Zsh/mod_curses.yo @@ -111,7 +111,11 @@ Each var(fg_col)tt(/)var(bg_col) attribute (to be read as for character output. The color tt(default) is sometimes available (in particular if the library is ncurses), specifying the foreground or background color with which the terminal started. The color pair -tt(default/default) is always available. +tt(default/default) is always available. To use more than the 8 named +colors (red, green, etc.) construct the var(fg_col)tt(/)var(bg_col) +pairs where var(fg_col) and var(bg_col) are decimal integers, e.g +tt(128/200). The maximum color value is 254 if the terminal supports +256 colors. tt(bg) overrides the color and other attributes of all characters in the window. Its usual use is to set the background initially, but it will diff --git a/Src/Modules/curses.c b/Src/Modules/curses.c index 7fff858f4..63c6748f5 100644 --- a/Src/Modules/curses.c +++ b/Src/Modules/curses.c @@ -350,8 +350,20 @@ zcurses_colorget(const char *nam, char *colorpair) } *bg = '\0'; - f = zcurses_color(cp); - b = zcurses_color(bg+1); + + // cp/bg can be {number}/{number} or {name}/{name} + + if( cp[0] >= '0' && cp[0] <= '9' ) { + f = atoi(cp); + } else { + f = zcurses_color(cp); + } + + if( (bg+1)[0] >= '0' && (bg+1)[0] <= '9' ) { + b = atoi(bg+1); + } else { + b = zcurses_color(bg+1); + } if (f==-2 || b==-2) { if (f == -2) -- cgit v1.2.3 From dcffad8326878c1a4c539b9b32c6b497f4032e5d Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Fri, 3 Jun 2016 10:28:03 +0100 Subject: 38586: Metafication problem with $functions If treated as a complete associative array or scanned (retrieving individual values was not affected), it incorrectly unmetafied the value so multibyte characters got confused. Add test. --- ChangeLog | 6 ++++++ Src/Modules/parameter.c | 5 ----- Test/D07multibyte.ztst | 9 +++++++++ 3 files changed, 15 insertions(+), 5 deletions(-) (limited to 'Src/Modules') diff --git a/ChangeLog b/ChangeLog index ed3610df2..385ea2d86 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2016-06-03 Peter Stephenson + + * 38586: Src/Modules/parameter.c, Test/D07multibyte.ztst: + Don't unmetafy values for $functions when passing back + within parameter framework. + 2016-06-03 Daniel Shahaf * 38577: Completion/Unix/Type/_signals: Don't complete SIGEXIT diff --git a/Src/Modules/parameter.c b/Src/Modules/parameter.c index edb051785..98bcaba6e 100644 --- a/Src/Modules/parameter.c +++ b/Src/Modules/parameter.c @@ -487,11 +487,6 @@ scanfunctions(UNUSED(HashTable ht), ScanFunc func, int flags, int dis) strcat(pm.u.str, " \"$@\""); } else pm.u.str = dyncat(start, t); - /* - * TBD: Is this unmetafy correct? Surely as this - * is a parameter value it stays metafied? - */ - unmetafy(pm.u.str, NULL); zsfree(t); if (shf->redir) { diff --git a/Test/D07multibyte.ztst b/Test/D07multibyte.ztst index 39ba5ef8b..dedf2417a 100644 --- a/Test/D07multibyte.ztst +++ b/Test/D07multibyte.ztst @@ -553,3 +553,12 @@ 0:${(q+)...} with printable multibyte characters >ホ >'She said "ホ". I said "You can'\''t '\''ホ'\'' me!' + +# This will silently succeed if zsh/parameter isn't available + (zmodload zsh/parameter >/dev/null 2>&1 + f() { + : $(:) + "↓" + } + : $functions) +0:Multibtye handled of functions parameter -- cgit v1.2.3 From fff00804002735067aef56e09e36074235077e20 Mon Sep 17 00:00:00 2001 From: Jun-ichi Takimoto Date: Tue, 19 Jul 2016 14:54:59 +0900 Subject: 38862: strptime(3) requires _XOPEN_SOURCE on Cygwin --- ChangeLog | 5 +++++ Src/Modules/datetime.c | 3 +++ 2 files changed, 8 insertions(+) (limited to 'Src/Modules') diff --git a/ChangeLog b/ChangeLog index 909101a2d..0d7c8328e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-07-19 Jun-ichi Takimoto + + * 38862: Src/Modules/datetime.c: strptime(3) requires _XOPEN_SOURCE + on Cygwin (newlib-2.4 or later) + 2016-07-18 Peter Stephenson * 38879: Src/glob.c, Test/D07multibyte.ztst: Ensure file names diff --git a/Src/Modules/datetime.c b/Src/Modules/datetime.c index bb82c542f..b924392c5 100644 --- a/Src/Modules/datetime.c +++ b/Src/Modules/datetime.c @@ -27,6 +27,9 @@ * */ +#ifdef __CYGWIN__ +#define _XOPEN_SOURCE +#endif #include "datetime.mdh" #include "datetime.pro" #include -- 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') 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 From 4b2810ab2d6be3d1cf811e53d3b4f57630821108 Mon Sep 17 00:00:00 2001 From: Jun-ichi Takimoto Date: Sat, 20 Aug 2016 23:52:01 +0900 Subject: 39064: use scalbn() instead of scalb() (mathfunc.c) --- ChangeLog | 5 +++++ Src/Modules/mathfunc.c | 4 ++++ configure.ac | 1 + 3 files changed, 10 insertions(+) (limited to 'Src/Modules') diff --git a/ChangeLog b/ChangeLog index e224beebf..65263033a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-08-20 Jun-ichi Takimoto + + * 39064: configure.ac, Src/Modules/mathfuc.c: use scalbn() instead + of scalb() + 2016-08-20 Daniel Shahaf * 39074: Completion/Unix/Command/_ip: _ip-neighbour: Fix typo in diff --git a/Src/Modules/mathfunc.c b/Src/Modules/mathfunc.c index 451b3cfeb..a7e8b294c 100644 --- a/Src/Modules/mathfunc.c +++ b/Src/Modules/mathfunc.c @@ -411,7 +411,11 @@ math_func(char *name, int argc, mnumber *argv, int id) break; case MF_SCALB: +#ifdef HAVE_SCALBN + retd = scalbn(argd, argi); +#else retd = scalb(argd, argi); +#endif break; #ifdef HAVE_SIGNGAM diff --git a/configure.ac b/configure.ac index bac62a638..0e0bd535a 100644 --- a/configure.ac +++ b/configure.ac @@ -1305,6 +1305,7 @@ AC_CHECK_FUNCS(strftime strptime mktime timelocal \ setlocale \ uname \ signgam tgamma \ + scalbn \ putenv getenv setenv unsetenv xw\ brk sbrk \ pathconf sysconf \ -- cgit v1.2.3 From 8d188728171dfe764562b7d4e81fbfdc212897e4 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Wed, 7 Sep 2016 11:47:23 +0100 Subject: 39217: fix error name generation with GCC. Adapt the same trick as in zsh.mdd to ensure we don't get preprocessor lines in the output. --- ChangeLog | 5 +++++ Src/Modules/system.mdd | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'Src/Modules') diff --git a/ChangeLog b/ChangeLog index e2d9d351b..fbff070d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-09-07 Peter Stephenson + + * 39217: Src/Modules/system.mdd: adapt zsh.mdd to avoid problems + with GCC preprocessor in error names. + 2016-09-06 Barton E. Schaefer * m0viefreak: 38153 (cf. 39135): Completion/Base/Utility/_arguments: diff --git a/Src/Modules/system.mdd b/Src/Modules/system.mdd index eed0c1b9d..00a3e7896 100644 --- a/Src/Modules/system.mdd +++ b/Src/Modules/system.mdd @@ -15,7 +15,12 @@ errnames.c: errnames1.awk errnames2.awk $(dir_top)/config.h @ERRNO_H@ touch errtmp.out; \ else \ $(AWK) -f $(sdir)/errnames1.awk @ERRNO_H@ >errtmp.c; \ - $(CPP) errtmp.c >errtmp.out; \ + case "`$(CPP) --version &1`" in \ + *"Free Software Foundation"*) \ + $(CPP) -P errtmp.c >errtmp.out;; \ + *) \ + $(CPP) errtmp.c >errtmp.out;; \ + esac; \ fi $(AWK) -f $(sdir)/errnames2.awk errtmp.out > $@ rm -f errtmp.c errtmp.out -- cgit v1.2.3 From 26b4508ee339d834a500d940827b31c578d49e3e Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Sun, 11 Sep 2016 17:22:02 -0700 Subject: 39268: "zsystem flock -t 0 ..." tries only once to flock and immediately returns success or failure --- ChangeLog | 5 +++++ Src/Modules/system.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'Src/Modules') diff --git a/ChangeLog b/ChangeLog index c806955f0..05a341def 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-09-11 Barton E. Schaefer + + * 39268: Src/Modules/system.c: "zsystem flock -t 0 ..." tries only + once to flock and immediately returns success or failure + 2016-09-11 Vin Shelton * 39284: Doc/Zsh/compsys.yo: diff --git a/Src/Modules/system.c b/Src/Modules/system.c index 1ee61c00b..afaec262a 100644 --- a/Src/Modules/system.c +++ b/Src/Modules/system.c @@ -521,7 +521,7 @@ static int bin_zsystem_flock(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) { int cloexec = 1, unlock = 0, readlock = 0; - time_t timeout = 0; + zlong timeout = -1; char *fdvar = NULL; #ifdef HAVE_FCNTL_H struct flock lck; @@ -573,7 +573,7 @@ bin_zsystem_flock(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) } else { optarg = *args++; } - timeout = (time_t)mathevali(optarg); + timeout = mathevali(optarg); break; case 'u': @@ -650,7 +650,7 @@ bin_zsystem_flock(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) sleep(1); } } else { - while (fcntl(flock_fd, F_SETLKW, &lck) < 0) { + while (fcntl(flock_fd, timeout == 0 ? F_SETLK : F_SETLKW, &lck) < 0) { if (errflag) return 1; if (errno == EINTR) -- cgit v1.2.3 From f912e83505e586b917748183772140c3f3560fe2 Mon Sep 17 00:00:00 2001 From: Jun-ichi Takimoto Date: Mon, 7 Nov 2016 11:36:17 +0900 Subject: 39728: define _GNU_SOURCE on Cygwin --- ChangeLog | 5 +++++ Src/Modules/datetime.c | 3 --- Src/zsh_system.h | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) (limited to 'Src/Modules') diff --git a/ChangeLog b/ChangeLog index d225597c5..a81a76f1f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-11-07 Jun-ichi Takimoto + + * 39728: Src/zsh_system.h, Src/Modules/datetime.c: define + _GNU_SOURCE on Cygwin + 2016-11-07 Frank Terbeck * 39849: Completion/Unix/Command/_tmux: _tmux: Remove diff --git a/Src/Modules/datetime.c b/Src/Modules/datetime.c index b924392c5..bb82c542f 100644 --- a/Src/Modules/datetime.c +++ b/Src/Modules/datetime.c @@ -27,9 +27,6 @@ * */ -#ifdef __CYGWIN__ -#define _XOPEN_SOURCE -#endif #include "datetime.mdh" #include "datetime.pro" #include diff --git a/Src/zsh_system.h b/Src/zsh_system.h index a9cbf02d0..5339b496f 100644 --- a/Src/zsh_system.h +++ b/Src/zsh_system.h @@ -37,7 +37,7 @@ #endif #endif -#if defined(__linux) || defined(__GNU__) || defined(__GLIBC__) || defined(LIBC_MUSL) +#if defined(__linux) || defined(__GNU__) || defined(__GLIBC__) || defined(LIBC_MUSL) || defined(__CYGWIN__) /* * Turn on numerous extensions. * This is in order to get the functions for manipulating /dev/ptmx. -- cgit v1.2.3