diff --git a/misc.c b/misc.c index 1e32b6f..45b4b10 100644 --- a/misc.c +++ b/misc.c @@ -29,7 +29,7 @@ #include #endif -__RCSID("$MirOS: src/bin/mksh/misc.c,v 1.115 2009/08/08 13:08:52 tg Exp $"); +__RCSID("$MirOS: src/bin/mksh/misc.c,v 1.116 2009/08/28 21:04:16 tg Exp $"); #undef USE_CHVT /* XXX conditions correct? */ @@ -446,7 +446,7 @@ parse_args(const char **argv, xstrcmp); } if (arrayset) { - set_array(array, arrayset, argv + go.optind); + set_array(array, arrayset > 0 ? true : false, argv + go.optind); for (; argv[go.optind]; go.optind++) ; } diff --git a/sh.h b/sh.h index 6116c61..31a0b8c 100644 --- a/sh.h +++ b/sh.h @@ -134,7 +134,7 @@ #endif #ifdef EXTERN -__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.330 2009/08/28 21:01:26 tg Exp $"); +__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.331 2009/08/28 21:04:17 tg Exp $"); #endif #define MKSH_VERSION "R39 2009/08/08" @@ -1647,7 +1647,7 @@ void change_random(unsigned long); void change_winsz(void); int array_ref_len(const char *); char *arrayname(const char *); -void set_array(const char *, int, const char **); +void set_array(const char *, bool, const char **); enum Test_op { TO_NONOP = 0, /* non-operator */ diff --git a/var.c b/var.c index da319da..d53d97e 100644 --- a/var.c +++ b/var.c @@ -22,7 +22,7 @@ #include "sh.h" -__RCSID("$MirOS: src/bin/mksh/var.c,v 1.82 2009/08/28 21:01:27 tg Exp $"); +__RCSID("$MirOS: src/bin/mksh/var.c,v 1.83 2009/08/28 21:04:18 tg Exp $"); /* * Variables @@ -1315,10 +1315,10 @@ arrayname(const char *str) return (rv); } -/* Set (or overwrite, if !reset) the array variable var to the values in vals. +/* Set (or overwrite, if reset) the array variable var to the values in vals. */ void -set_array(const char *var, int reset, const char **vals) +set_array(const char *var, bool reset, const char **vals) { struct tbl *vp, *vq; uint32_t i; @@ -1330,7 +1330,7 @@ set_array(const char *var, int reset, const char **vals) if ((vp->flag&RDONLY)) errorf("%s: is read only", var); /* This code is quite non-optimal */ - if (reset > 0) + if (reset) /* trash existing values and attributes */ unset(vp, 0); /* todo: would be nice for assignment to completely succeed or