Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/cmd/ksh93/bltins/alarm.c
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ static char *setdisc(Namval_t *np, const char *event, Namval_t* action, Namfun_t
/*
* catch assignments and set alarm traps
*/
static void putval(Namval_t* np, const char* val, int flag, Namfun_t* fp)
static void putval(Namval_t* np, const char* val, nvflag_t flag, Namfun_t* fp)
{
struct tevent *tp = (struct tevent*)fp;
double d, x;
Expand Down
4 changes: 2 additions & 2 deletions src/cmd/ksh93/bltins/enum.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ static int enuminfo(Opt_t* op, Sfio_t *out, const char *str, Optdisc_t *fp)
return 0;
}

static Namfun_t *clone_enum(Namval_t* np, Namval_t *mp, int flags, Namfun_t *fp)
static Namfun_t *clone_enum(Namval_t* np, Namval_t *mp, nvflag_t flags, Namfun_t *fp)
{
struct Enum *ep, *pp=(struct Enum*)fp;
NOT_USED(np);
Expand All @@ -160,7 +160,7 @@ static Namfun_t *clone_enum(Namval_t* np, Namval_t *mp, int flags, Namfun_t *fp)
return &ep->hdr;
}

static void put_enum(Namval_t* np,const char *val,int flags,Namfun_t *fp)
static void put_enum(Namval_t* np,const char *val,nvflag_t flags,Namfun_t *fp)
{
struct Enum *ep = (struct Enum*)fp;
const char *v;
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/ksh93/bltins/mkservice.c
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ static char* setdisc(Namval_t* np, const char* event, Namval_t* action, Namfun_t
return nv_setdisc(np, event, action, fp);
}

static void putval(Namval_t* np, const char* val, int flag, Namfun_t* fp)
static void putval(Namval_t* np, const char* val, nvflag_t flag, Namfun_t* fp)
{
Service_t* sp = (Service_t*)fp;
if (!val)
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/ksh93/bltins/read.c
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ int sh_readline(char **names, volatile int fd, int flags, ssize_t size, Sflong_t
int delim = '\n';
int jmpval=0;
int binary;
int oflags=NV_VARNAME;
nvflag_t oflags=NV_VARNAME;
char inquote = 0;
struct checkpt buff;
Edit_t *ep = (struct edit*)sh.ed_context;
Expand Down
38 changes: 22 additions & 16 deletions src/cmd/ksh93/bltins/typeset.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ struct tdata
short aflag;
short pflag;
int argnum;
int scanmask;
nvflag_t scanmask;
Dt_t *scanroot;
char **argnam;
size_t indent;
Expand All @@ -77,9 +77,9 @@ struct tdata
static int print_namval(Sfio_t*, Namval_t*, int, struct tdata*);
static void print_attribute(Namval_t*,void*);
static void print_all(Sfio_t*, Dt_t*, struct tdata*);
static void print_scan(Sfio_t*, int, Dt_t*, int, struct tdata*);
static void print_scan(Sfio_t*, nvflag_t, Dt_t*, int, struct tdata*);
static int unall(int, char**, Dt_t*);
static int setall(char**, int, Dt_t*, struct tdata*);
static int setall(char**, nvflag_t, Dt_t*, struct tdata*);
static void pushname(Namval_t*,void*);
static void(*nullscan)(Namval_t*,void*);

Expand All @@ -92,14 +92,15 @@ static void(*nullscan)(Namval_t*,void*);
#endif
int b_readonly(int argc,char *argv[],Shbltin_t *context)
{
int flag;
int n;
nvflag_t flag;
char *command = argv[0];
struct tdata tdata;
NOT_USED(argc);
NOT_USED(context);
memset(&tdata,0,sizeof(tdata));
tdata.aflag = '-';
while((flag = optget(argv,*command=='e'?sh_optexport:sh_optreadonly))) switch(flag)
while((n = optget(argv,*command=='e'?sh_optexport:sh_optreadonly))) switch(n)
{
case 'p':
tdata.prefix = command;
Expand Down Expand Up @@ -136,7 +137,7 @@ int b_readonly(int argc,char *argv[],Shbltin_t *context)
#endif
int b_alias(int argc,char *argv[],Shbltin_t *context)
{
unsigned flag = NV_NOARRAY|NV_NOSCOPE|NV_ASSIGN;
nvflag_t flag = NV_NOARRAY|NV_NOSCOPE|NV_ASSIGN;
Dt_t *troot;
int rflag=0, xflag=0, n;
struct tdata tdata;
Expand Down Expand Up @@ -221,7 +222,8 @@ int b_alias(int argc,char *argv[],Shbltin_t *context)
#endif
int b_typeset(int argc,char *argv[],Shbltin_t *context)
{
int n, flag = NV_VARNAME|NV_ASSIGN;
int n;
nvflag_t flag = NV_VARNAME|NV_ASSIGN;
struct tdata tdata;
const char *optstring = sh_opttypeset;
Namdecl_t *ntp = (Namdecl_t*)context->ptr;
Expand Down Expand Up @@ -650,12 +652,14 @@ static void print_value(Sfio_t *iop, Namval_t *np, struct tdata *tp)
}
}

static int setall(char **argv,int flag,Dt_t *troot,struct tdata *tp)
static int setall(char **argv,nvflag_t flag,Dt_t *troot,struct tdata *tp)
{
char *name;
char *last = 0;
int nvflags=(flag&(NV_ARRAY|NV_NOARRAY|NV_VARNAME|NV_IDENT|NV_ASSIGN|NV_STATIC|NV_MOVE));
int r=0, ref=0, comvar=(flag&NV_COMVAR),iarray=(flag&NV_IARRAY);
nvflag_t nvflags=(flag&(NV_ARRAY|NV_NOARRAY|NV_VARNAME|NV_IDENT|NV_ASSIGN|NV_STATIC|NV_MOVE));
int r=0, ref=0;
nvflag_t comvar=(flag&NV_COMVAR);
nvflag_t iarray=(flag&NV_IARRAY);
Dt_t *save_vartree = NULL;
#if SHOPT_NAMESPACE
Namval_t *save_namespace = NULL;
Expand Down Expand Up @@ -692,11 +696,11 @@ static int setall(char **argv,int flag,Dt_t *troot,struct tdata *tp)
nvflags |= (NV_NOREF|NV_NOADD|NV_NOFAIL);
while(name = *++argv)
{
unsigned newflag;
Namval_t *np;
nvflag_t newflag;
Namval_t *np;
Namarr_t *ap=0;
Namval_t *mp;
unsigned curflag;
nvflag_t curflag;
if(troot == sh.fun_tree)
{
/*
Expand Down Expand Up @@ -1128,8 +1132,9 @@ Shbltin_f sh_getlib(char* sym, Pathcomp_t* pp)
int b_builtin(int argc,char *argv[],Shbltin_t *context)
{
char *arg=0, *name;
int n, r=0, flag=0;
int n, r=0;
ptrdiff_t offset;
nvflag_t flag=0;
Namval_t *np;
int dlete=0;
struct tdata tdata;
Expand Down Expand Up @@ -1332,7 +1337,8 @@ static int unall(int argc, char **argv, Dt_t *troot)
const char *name;
volatile int r;
Dt_t *dp;
int nflag=0,all=0,isfun,jmpval;
int all=0,isfun,jmpval;
nvflag_t nflag=0;
struct checkpt buff;
NOT_USED(argc);
if(troot==sh.alias_tree)
Expand Down Expand Up @@ -1647,7 +1653,7 @@ static void print_attribute(Namval_t *np,void *data)
* print the nodes in tree <root> which have attributes <flag> set
* if <option> is non-zero, no subscript or value is printed
*/
static void print_scan(Sfio_t *file, int flag, Dt_t *root, int option,struct tdata *tp)
static void print_scan(Sfio_t *file, nvflag_t flag, Dt_t *root, int option,struct tdata *tp)
{
char **argv;
Namval_t *np;
Expand Down
6 changes: 5 additions & 1 deletion src/cmd/ksh93/include/argnod.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,11 @@ struct argnod
struct argnod *ap;
char *cp;
} argchn;
unsigned char argflag;
/*
* argflag must be 8 bits because the code expects that assigning
* to it will mask off any high bits; e.g., ARG_ARITH and friends.
*/
uint8_t argflag;
char argval[4];
};

Expand Down
4 changes: 2 additions & 2 deletions src/cmd/ksh93/include/defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ extern void sh_assignok(Namval_t*,int);
extern struct dolnod *sh_arguse(void);
extern char *sh_checkid(char*,char*);
extern void sh_chktrap(void);
extern void sh_deparse(Sfio_t*,const Shnode_t*,int,int);
extern void sh_deparse(Sfio_t*,const Shnode_t*,nvflag_t,int);
extern int sh_debug(const char*,const char*,const char*,char *const[],int);
extern char **sh_envgen(void);
extern Sfdouble_t sh_arith(const char*);
Expand Down Expand Up @@ -149,7 +149,7 @@ extern void sh_clear_subshell_pwdfd(void);
extern int sh_validate_subpwdfd(void);
#endif /* _lib_openat */
#if SHOPT_NAMESPACE
extern Namval_t *sh_fsearch(const char *,int);
extern Namval_t *sh_fsearch(const char *,nvflag_t);
#endif /* SHOPT_NAMESPACE */

/* malloc related wrappers */
Expand Down
19 changes: 8 additions & 11 deletions src/cmd/ksh93/include/name.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@
#if SHOPT_FIXEDARRAY
# define ARRAY_FIXED ARRAY_NOCLONE /* For index values */
#endif /* SHOPT_FIXEDARRAY */
#define NV_FARRAY 0x10000000 /* fixed-size arrays */
#define NV_ASETSUB 8 /* set subscript */

/* These flags are used as options to array_get() */
Expand Down Expand Up @@ -86,13 +85,11 @@ struct Ufunction

/* The following attributes are for internal use */
#define NV_NOCHANGE (NV_EXPORT|NV_MINIMAL|NV_RDONLY|NV_TAGGED|NV_NOFREE|NV_ARRAY)
#define NV_ATTRIBUTES (~(NV_NOSCOPE|NV_ARRAY|NV_NOARRAY|NV_IDENT|NV_ASSIGN|NV_REF|NV_VARNAME|NV_STATIC))
#define NV_ATTRIBUTES (NV_ARRAY|NV_IDENT|NV_ASSIGN|NV_REF)
#define NV_OPENMASK (NV_APPEND|NV_MOVE|NV_NOARRAY|NV_IARRAY|NV_VARNAME|NV_NOADD|NV_NOSCOPE|NV_NOFAIL|NV_UNATTR|NV_GLOBAL|NV_TYPE|NV_STATIC|NV_COMVAR|NV_ADD|NV_FARRAY)
#define NV_PARAM NV_NODISC /* expansion use positional params */

/* This following are for use with nodes which are not name-values */
#define NV_TYPE 0x1000000
#define NV_STATIC 0x2000000
#define NV_COMVAR 0x4000000
#define NV_FUNCTION (NV_RJUST|NV_FUNCT) /* value is shell function */
#define NV_FPOSIX NV_LJUST /* POSIX function semantics */
#define NV_STATICF NV_INTEGER /* static class function */
Expand Down Expand Up @@ -142,13 +139,13 @@ struct Ufunction
#define array_assoc(ap) ((ap)->fun)

extern ssize_t array_maxindex(Namval_t*);
extern char *nv_endsubscript(Namval_t*, char*, int);
extern char *nv_endsubscript(Namval_t*, char*, nvflag_t);
extern Namfun_t *nv_enforcedisc(Namval_t*);
extern int nv_arrayisset(Namval_t*, Namarr_t*);
extern int nv_arraysettype(Namval_t*, Namval_t*,const char*,int);
extern int nv_arraysettype(Namval_t*, Namval_t*, const char*, nvflag_t);
extern ssize_t nv_aimax(Namval_t*);
extern int nv_atypeindex(Namval_t*, const char*);
extern void nv_setlist(struct argnod*, int, Namval_t*);
extern void nv_setlist(struct argnod*, nvflag_t, Namval_t*);
#if SHOPT_OPTIMIZE
extern void nv_optimize(Namval_t*);
extern void nv_optimize_clear(Namval_t*);
Expand All @@ -163,8 +160,8 @@ extern void nv_setlist(struct argnod*, int, Namval_t*);
extern void nv_outname(Sfio_t*,char*, ptrdiff_t);
extern void nv_unref(Namval_t*);
extern int nv_hasget(Namval_t*);
extern void clone_all_disc(Namval_t*, Namval_t*, int);
extern Namfun_t *nv_clone_disc(Namfun_t*, int);
extern void clone_all_disc(Namval_t*, Namval_t*, nvflag_t);
extern Namfun_t *nv_clone_disc(Namfun_t*, nvflag_t);
extern void *nv_diropen(Namval_t*, const char*, int);
extern char *nv_dirnext(void*);
extern void nv_dirclose(void*);
Expand All @@ -178,7 +175,7 @@ extern Namval_t *nv_mount(Namval_t*, const char *name, Dt_t*);
extern Namval_t *nv_arraychild(Namval_t*, Namval_t*, int);
extern int nv_compare(Dt_t*, void*, void*, Dtdisc_t*);
extern void nv_outnode(Namval_t*,Sfio_t*, int, int);
extern int nv_subsaved(Namval_t*, int);
extern int nv_subsaved(Namval_t*, nvflag_t);
extern void nv_typename(Namval_t*, Sfio_t*);
extern Namval_t *nv_typeparent(Namval_t*);
extern int nv_istable(Namval_t*);
Expand Down
Loading