Lines Matching +defs:val +defs:sp
50 union Value val[1]; /* array of value holders */
115 memset(ar->val, 0, ar->maxi*sizeof(char*));
116 ar->bits = (unsigned char*)&ar->val[ar->maxi];
143 return (ap->header.fixed || ((ap->cur<aq->maxi) && aq->val[ap->cur].cp));
145 return ((ap->cur<aq->maxi) && aq->val[ap->cur].cp);
190 while(i>0 && ap->val[--i].cp==0);
229 up = &(ap->val[ap->cur]);
250 up = &(ap->val[ap->cur]);
360 up = &(ap->val[ap->cur]);
490 ar->bits = (unsigned char*)&ar->val[ar->maxi];
509 ar->val[ar->cur].np = mq;
526 ar->val[ar->cur].cp = 0;
532 ar->val[ar->cur].cp = 0;
571 np->nvalue.s = *np->nvalue.sp;
614 aq->val[aq->cur].cp = 0;
644 aq->val[aq->cur].cp = 0;
698 aq->val[aq->cur].cp = 0;
791 ap->bits = (unsigned char*)&ap->val[newsize];
798 ap->val[i].cp = arp->val[i].cp;
823 ap->val[0].np = mp;
831 else if((ap->val[0].cp=np->nvalue.cp))
849 ap->val[i].cp = 0;
913 if(save_ap->val[dot].cp)
924 up->cp = save_ap->val[dot].cp;
925 save_ap->val[dot].cp = 0;
1094 if(!ap->val[dot].cp && !(ap->header.nelem&ARRAY_NOSCOPE))
1099 if(aq->val[dot].cp)
1104 Namval_t *mp = aq->val[dot].np;
1119 * Set an array subscript for node <np> given the subscript <sp>
1129 Namval_t *nv_putsub(Namval_t *np,register char *sp,register long mode)
1140 if(sp)
1143 if(ap && ap->xp && !strmatch(sp,"+([0-9])"))
1146 nv_putval(mp, sp,0);
1150 size = (int)sh_arith(shp,(char*)sp);
1171 mp = ap->val[oldsize].np;
1196 ap->val[n].cp = 0;
1201 if(!ap->val[n].cp)
1203 ap->val[n].cp = Empty;
1209 memset(&ap->val[size],0,n*sizeof(union Value));
1211 else if(!ap->val[size].cp)
1215 ap->val[size].cp = Empty;
1224 nv_putsub(ap->val[size].np,NIL(char*),ARRAY_UNDEF);
1225 if(sp && !(mode&ARRAY_ADD) && !ap->val[size].cp)
1280 if(sp)
1284 (*ap->header.fun)(np, sp, NV_ASETSUB);
1287 (*ap->header.fun)(np, sp, (mode&ARRAY_ADD)?NV_AADD:0);
1441 register char *sp = cp+1;
1460 stakwrite(sp,1+cp-sp);
1461 sh_trim(sp=stakptr(count));
1470 if(array_fixed_init(np,sp,cp+1))
1485 cp = array_fixed(np,sp,cp,mode);
1488 nv_putsub(np, sp, ((mode&NV_ADD)?ARRAY_ADD:0)|(cp[1]&&(mode&NV_ADD)?ARRAY_FILL:mode&ARRAY_FILL));
1515 return(ap->val[ap->cur].np);
1598 while(--sub>0 && ap->val[sub].cp==0);
1605 void *nv_associative(register Namval_t *np,const char *sp,int mode)
1674 ap->cur = (Namval_t*)sp;
1690 if(sp)
1694 if(sp==(char*)np)
1701 if(*sp==0 && sh_isoption(SH_XTRACE) && (mode&NV_ADD))
1703 if(sh.subshell && (mp=nv_search(sp,ap->header.table,0)) && nv_isnull(mp))
1705 if((mp || (mp=nv_search(sp,ap->header.table,mode))) && nv_isnull(mp) && (mode&NV_ADD))
1713 if(!ap->header.scope || !nv_search(sp,dtvnext(ap->header.table),0))
1725 fake.nvname = (char*)sp;
1729 else if(!mp && *sp && mode==0)
1730 mp = nv_search(sp,ap->header.table,NV_ADD|HASH_NOSCOPE);
1765 while(--arg0>0 && ap->val[arg0].cp==0 && aq->val[arg0].cp==0);