summaryrefslogtreecommitdiff
path: root/Src/Modules
diff options
context:
space:
mode:
authorAxel Beckert <abe@deuxchevaux.org>2016-12-04 04:32:03 +0100
committerAxel Beckert <abe@deuxchevaux.org>2016-12-04 04:32:03 +0100
commit3e439c3863f14c82f70666804c8570a13b3732e6 (patch)
tree07036c43e0f3f9242bb6dd42cd2a849ec8ea8aca /Src/Modules
parent2aedc4b88fd0e87b89583983951b04b96f48efd3 (diff)
parent7b7e84f0815ed22a0ee348a217776529035dccf3 (diff)
downloadzsh-3e439c3863f14c82f70666804c8570a13b3732e6.tar.gz
zsh-3e439c3863f14c82f70666804c8570a13b3732e6.zip
Merge tag 'zsh-5.2-test-1' into debian
Diffstat (limited to 'Src/Modules')
-rw-r--r--Src/Modules/curses.c36
-rw-r--r--Src/Modules/datetime.c2
-rw-r--r--Src/Modules/db_gdbm.c2
-rw-r--r--Src/Modules/files.c2
-rw-r--r--Src/Modules/langinfo.c2
-rw-r--r--Src/Modules/mapfile.c2
-rw-r--r--Src/Modules/mathfunc.c6
-rw-r--r--Src/Modules/newuser.c4
-rw-r--r--Src/Modules/param_private.c20
-rw-r--r--Src/Modules/parameter.c7
-rw-r--r--Src/Modules/pcre.c4
-rw-r--r--Src/Modules/regex.c2
-rw-r--r--Src/Modules/socket.c2
-rw-r--r--Src/Modules/stat.c2
-rw-r--r--Src/Modules/system.c10
-rw-r--r--Src/Modules/system.mdd7
-rw-r--r--Src/Modules/tcp.c4
-rw-r--r--Src/Modules/termcap.c4
-rw-r--r--Src/Modules/terminfo.c4
-rw-r--r--Src/Modules/zftp.c8
-rw-r--r--Src/Modules/zpty.c2
-rw-r--r--Src/Modules/zselect.c2
-rw-r--r--Src/Modules/zutil.c29
23 files changed, 94 insertions, 69 deletions
diff --git a/Src/Modules/curses.c b/Src/Modules/curses.c
index 64329f643..63c6748f5 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
@@ -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;
@@ -324,7 +324,7 @@ zcurses_color(const char *color)
return (short)zc->number;
}
- return (short)-1;
+ return (short)-2;
}
static Colorpairnode
@@ -350,13 +350,25 @@ zcurses_colorget(const char *nam, char *colorpair)
}
*bg = '\0';
- f = zcurses_color(cp);
- b = zcurses_color(bg+1);
- if (f==-1 || b==-1) {
- if (f == -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)
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);
@@ -419,7 +431,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 +820,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 +1508,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 +1705,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..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
@@ -599,7 +603,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/param_private.c b/Src/Modules/param_private.c
index e13813c3d..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 };
/*
@@ -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);
diff --git a/Src/Modules/parameter.c b/Src/Modules/parameter.c
index 04d448529..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) {
@@ -2190,7 +2185,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..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;
@@ -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..afaec262a 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;
@@ -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)
@@ -834,7 +834,7 @@ enables_(Module m, int **enables)
/**/
int
-boot_(Module m)
+boot_(UNUSED(Module m))
{
return 0;
}
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 </dev/null 2>&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
diff --git a/Src/Modules/tcp.c b/Src/Modules/tcp.c
index 9fc1b29a2..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
@@ -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..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)
};
@@ -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..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;
}
@@ -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/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/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 376cd8402..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];
@@ -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;
@@ -1833,7 +1836,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 +1863,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);
@@ -1990,7 +1995,7 @@ enables_(Module m, int **enables)
/**/
int
-boot_(Module m)
+boot_(UNUSED(Module m))
{
return 0;
}