Lines Matching defs:mode

942  * <mode> can be a number, plus or more of symbolic constants
945 * not already array and the ARRAY_ADD bit of <mode> is not set.
950 Namval_t *nv_putsub(Namval_t *np,register char *sp,register long mode)
953 register int size = (mode&ARRAY_MASK);
976 if(size==0 && !(mode&ARRAY_FILL))
983 ap->header.nelem |= (mode&(ARRAY_SCAN|ARRAY_NOCHILD|ARRAY_UNDEF|ARRAY_NOSCOPE));
1001 if((mode&ARRAY_SCAN) && (ap->cur--,!nv_nextsub(np)))
1003 if(mode&(ARRAY_FILL|ARRAY_ADD))
1005 if(!(mode&ARRAY_ADD))
1029 else if(!(mode&ARRAY_SCAN))
1034 if(sp && !(mode&ARRAY_ADD) && !ap->val[size].cp)
1040 if(!(mode&ARRAY_FILL))
1042 ap->header.nelem |= (mode&(ARRAY_SCAN|ARRAY_NOCHILD|ARRAY_UNDEF|ARRAY_NOSCOPE));
1045 if(mode&ARRAY_SETSUB)
1050 (*ap->header.fun)(np, sp, (mode&ARRAY_ADD)?NV_AADD:0);
1051 if(!(mode&(ARRAY_SCAN|ARRAY_ADD)) && !(*ap->header.fun)(np,NIL(char*),NV_ACURRENT))
1054 else if(mode&ARRAY_SCAN)
1056 else if(mode&ARRAY_UNDEF)
1058 if((mode&ARRAY_SCAN) && !nv_nextsub(np))
1067 char *nv_endsubscript(Namval_t *np, register char *cp, int mode)
1074 if(c=='\\' && (!(mode&NV_SUBQUOTE) || (c=cp[1])=='[' || c==']' || c=='\\' || c=='*' || c=='@'))
1092 if(mode && np)
1098 if((mode&NV_ASSIGN) && (cp[1]=='=' || cp[1]=='+'))
1099 mode |= NV_ADD;
1100 nv_putsub(np, sp, ((mode&NV_ADD)?ARRAY_ADD:0)|(cp[1]&&(mode&NV_ADD)?ARRAY_FILL:mode&ARRAY_FILL));
1183 void *nv_associative(register Namval_t *np,const char *sp,int mode)
1187 switch(mode)
1275 if(mode)
1276 mode = NV_ADD|HASH_NOSCOPE;
1278 mode = HASH_NOSCOPE;
1279 if(*sp==0 && sh_isoption(SH_XTRACE) && (mode&NV_ADD))
1283 if((mp || (mp=nv_search(sp,ap->header.table,mode))) && nv_isnull(mp) && (mode&NV_ADD))
1287 if((mode&NV_ADD) && nv_type(np))
1307 else if(!mp && *sp && mode==0)