Lines Matching refs:ap

35 #define is_associative(ap)	array_assoc((Namarr_t*)(ap))  argument
61 static Namarr_t *array_scope(Namval_t *np, Namarr_t *ap, int flags) in array_scope() argument
65 size_t size = ap->hdr.dsize; in array_scope()
67 size = ap->hdr.disc->dsize; in array_scope()
70 memcpy(aq,ap,size); in array_scope()
80 aq->scope = (void*)ap; in array_scope()
86 static int array_unscope(Namval_t *np,Namarr_t *ap) in array_unscope() argument
89 if(!ap->scope) in array_unscope()
91 if(is_associative(ap)) in array_unscope()
92 (*ap->fun)(np, NIL(char*), NV_AFREE); in array_unscope()
93 if((fp = nv_disc(np,(Namfun_t*)ap,NV_POP)) && !(fp->nofree&1)) in array_unscope()
99 static void array_syncsub(Namarr_t *ap, Namarr_t *aq) in array_syncsub() argument
101 ((struct index_array*)ap)->cur = ((struct index_array*)aq)->cur; in array_syncsub()
104 static int array_covered(Namval_t *np, struct index_array *ap) in array_covered() argument
106 struct index_array *aq = (struct index_array*)ap->header.scope; in array_covered()
107 if(!ap->header.fun && aq) in array_covered()
108 return ((ap->cur<aq->maxi) && aq->val[ap->cur].cp); in array_covered()
135 static int arsize(struct index_array *ap, register int maxi) in arsize() argument
137 if(ap && maxi < 2*ap->maxi) in arsize()
138 maxi = 2*ap->maxi; in arsize()
148 register struct index_array *ap = (struct index_array*)nv_arrayptr(np); in array_maxindex() local
149 register int i = ap->maxi; in array_maxindex()
150 if(is_associative(ap)) in array_maxindex()
152 while(i>0 && ap->val[--i].cp==0); in array_maxindex()
158 register struct index_array *ap = (struct index_array*)arp; in array_getup() local
163 if(is_associative(ap)) in array_getup()
177 if(ap->cur >= ap->maxi) in array_getup()
179 up = &(ap->val[ap->cur]); in array_getup()
180 nofree = array_isbit(ap->bits,ap->cur,ARRAY_NOFREE); in array_getup()
194 register struct index_array *ap = (struct index_array*)arp; in nv_arrayisset() local
196 if(is_associative(ap)) in nv_arrayisset()
198 if(ap->cur >= ap->maxi) in nv_arrayisset()
200 up = &(ap->val[ap->cur]); in nv_arrayisset()
211 register struct index_array *ap = (struct index_array*)arp; in array_find() local
216 ap->header.nelem &= ~ARRAY_NOSCOPE; in array_find()
218 ap->header.nelem |= ARRAY_NOSCOPE; in array_find()
219 if(wasundef = ap->header.nelem&ARRAY_UNDEF) in array_find()
221 ap->header.nelem &= ~ARRAY_UNDEF; in array_find()
226 ap->header.nelem |= ARRAY_SCAN; in array_find()
230 if(is_associative(ap)) in array_find()
231 (*ap->header.fun)(np,"0",flag==ARRAY_ASSIGN?NV_AADD:0); in array_find()
233 ap->cur = 0; in array_find()
236 if(is_associative(ap)) in array_find()
255 ap->header.nelem++; in array_find()
263 if(!(ap->header.nelem&ARRAY_SCAN) && ap->cur >= ap->maxi) in array_find()
264 ap = array_grow(np, ap, (int)ap->cur); in array_find()
265 if(ap->cur>=ap->maxi) in array_find()
267 up = &(ap->val[ap->cur]); in array_find()
271 if(!ap->header.table) in array_find()
272 ap->header.table = dtopen(&_Nvdisc,Dtoset); in array_find()
273 sfprintf(sh.strbuf,"%d",ap->cur); in array_find()
275 mp = nv_search(cp, ap->header.table, NV_ADD); in array_find()
279 if(up->np && array_isbit(ap->bits,ap->cur,ARRAY_CHILD)) in array_find()
292 if(!array_covered(np,ap)) in array_find()
293 ap->header.nelem++; in array_find()
305 Namarr_t *ap = nv_arrayptr(np); in nv_arraysettype() local
308 if(!ap->table) in nv_arraysettype()
309 ap->table = dtopen(&_Nvdisc,Dtoset); in nv_arraysettype()
310 if(nq = nv_search(sub, ap->table, NV_ADD)) in nv_arraysettype()
322 ap->nelem |= ARRAY_SCAN; in nv_arraysettype()
329 ap->nelem &= ~ARRAY_SCAN; in nv_arraysettype()
331 ap->nelem |= ARRAY_SCAN; in nv_arraysettype()
345 Namarr_t *ap = (Namarr_t*)fp; in array_clone() local
349 Dt_t *otable=ap->table; in array_clone()
350 struct index_array *aq = (struct index_array*)ap, *ar; in array_clone()
365 nelem = ap->nelem; in array_clone()
368 if((flags&NV_TYPE) && !ap->scope) in array_clone()
370 ap = array_scope(np,ap,flags); in array_clone()
371 return(&ap->hdr); in array_clone()
373 ap = (Namarr_t*)nv_clone_disc(fp,0); in array_clone()
376 ap->scope = 0; in array_clone()
377 ap->nelem = 0; in array_clone()
381 if(ap->table) in array_clone()
383 ap->table = dtopen(&_Nvdisc,Dtoset); in array_clone()
384 if(ap->scope && !(flags&NV_COMVAR)) in array_clone()
386 ap->scope = ap->table; in array_clone()
387 dtview(ap->table, otable->view); in array_clone()
390 mp->nvfun = (Namfun_t*)ap; in array_clone()
395 ar = (struct index_array*)ap; in array_clone()
396 if(!is_associative(ap)) in array_clone()
400 if(ap->fun) in array_clone()
401 (*ap->fun)(np,(char*)np,0); in array_clone()
411 mq = nv_search(name,ap->table,NV_ADD); in array_clone()
415 if(!is_associative(ap)) in array_clone()
421 if((flags&NV_NOFREE) && !is_associative(ap)) in array_clone()
432 if(!is_associative(ap)) in array_clone()
438 if(!is_associative(ap)) in array_clone()
452 aq->header.nelem = ap->nelem = nelem; in array_clone()
453 return(&ap->hdr); in array_clone()
458 register Namarr_t *aq,*ap = (Namarr_t*)disc; in array_getval() local
460 if((mp=array_find(np,ap,ARRAY_LOOKUP))!=np) in array_getval()
462 if(!mp && !is_associative(ap) && (aq=(Namarr_t*)ap->scope)) in array_getval()
464 array_syncsub(aq,ap); in array_getval()
470 return(nv_getv(np,&ap->hdr)); in array_getval()
475 register Namarr_t *aq,*ap = (Namarr_t*)disc; in array_getnum() local
477 if((mp=array_find(np,ap,ARRAY_LOOKUP))!=np) in array_getnum()
479 if(!mp && !is_associative(ap) && (aq=(Namarr_t*)ap->scope)) in array_getnum()
481 array_syncsub(aq,ap); in array_getnum()
487 return(nv_getn(np,&ap->hdr)); in array_getnum()
492 register Namarr_t *ap = (Namarr_t*)dp; in array_putval() local
495 register struct index_array *aq = (struct index_array*)ap; in array_putval()
499 mp = array_find(np,ap,string?ARRAY_ASSIGN:ARRAY_DELETE); in array_putval()
500 scan = ap->nelem&ARRAY_SCAN; in array_putval()
503 if(!is_associative(ap) && string && !(flags&NV_APPEND) && !nv_type(np) && nv_isvtree(mp)) in array_putval()
510 nv_delete(mp,ap->table,0); in array_putval()
517 if(ap->hdr.type && ap->hdr.type!=nv_type(mp)) in array_putval()
518 nv_arraysettype(np,ap->hdr.type,nv_getsub(np),0); in array_putval()
522 ap->nelem |= scan; in array_putval()
528 if(is_associative(ap)) in array_putval()
530 (*ap->fun)(np,NIL(char*),NV_ADELETE); in array_putval()
539 nv_delete(mp,ap->table,0); in array_putval()
541 if(!array_covered(np,(struct index_array*)ap)) in array_putval()
542 ap->nelem--; in array_putval()
545 if(array_elem(ap)==0 && (ap->nelem&ARRAY_SCAN)) in array_putval()
547 if(is_associative(ap)) in array_putval()
548 (*ap->fun)(np, NIL(char*), NV_AFREE); in array_putval()
549 else if(ap->table) in array_putval()
550 dtclose(ap->table); in array_putval()
553 if(!mp || mp!=np || is_associative(ap)) in array_putval()
558 up = array_getup(np,ap,!nofree); in array_putval()
563 nv_putv(np,string,flags,&ap->hdr); in array_putval()
564 if(!is_associative(ap)) in array_putval()
572 if(string && ap->hdr.type && nv_isvtree(np)) in array_putval()
573 nv_arraysettype(np,ap->hdr.type,nv_getsub(np),0); in array_putval()
577 if(ap) in array_putval()
578 ap->nelem &= ~ARRAY_NOSCOPE; in array_putval()
586 if(!is_associative(ap) && aq->xp) in array_putval()
591 if((nfp = nv_disc(np,(Namfun_t*)ap,NV_POP)) && !(nfp->nofree&1)) in array_putval()
602 array_unscope(np,ap); in array_putval()
641 register struct index_array *ap; in array_grow() local
647 ap = new_of(struct index_array,i); in array_grow()
648 memset((void*)ap,0,sizeof(*ap)+i); in array_grow()
649 ap->maxi = newsize; in array_grow()
650 ap->cur = maxi; in array_grow()
651 ap->bits = (unsigned char*)&ap->val[newsize]; in array_grow()
652 memset(ap->bits, 0, newsize); in array_grow()
655 ap->header = arp->header; in array_grow()
656 ap->header.hdr.dsize = sizeof(*ap) + i; in array_grow()
658 ap->val[i].cp = arp->val[i].cp; in array_grow()
659 memcpy(ap->bits, arp->bits, arp->maxi); in array_grow()
660 array_setptr(np,arp,ap); in array_grow()
666 ap->header.hdr.dsize = sizeof(*ap) + i; in array_grow()
668 ap->header.fun = 0; in array_grow()
678 ap->header.table = dtopen(&_Nvdisc,Dtoset); in array_grow()
679 mp = nv_search("0", ap->header.table,NV_ADD); in array_grow()
683 ap->val[0].np = mp; in array_grow()
684 array_setbit(ap->bits,0,ARRAY_CHILD); in array_grow()
691 else if((ap->val[0].cp=np->nvalue.cp)) in array_grow()
698 ap->header.nelem = i; in array_grow()
699 ap->header.hdr.disc = &array_disc; in array_grow()
700 nv_disc(np,(Namfun_t*)ap, NV_FIRST); in array_grow()
705 ap->header.hdr.nofree &= ~1; in array_grow()
709 ap->val[i].cp = 0; in array_grow()
710 return(ap); in array_grow()
723 struct index_array *ap = (struct index_array*)nv_arrayptr(np); in nv_atypeindex() local
726 if(!ap) in nv_atypeindex()
727 ap = array_grow(np,ap,1); in nv_atypeindex()
728 ap->xp = calloc(NV_MINSZ,1); in nv_atypeindex()
729 np = nv_namptr(ap->xp,0); in nv_atypeindex()
753 register Namarr_t *ap; in nv_changearray() local
761 if(!fun || !(ap = nv_arrayptr(np)) || is_associative(ap)) in nv_changearray()
764 nv_stack(np,&ap->hdr); in nv_changearray()
766 ap = (Namarr_t*)((*fun)(np, NIL(char*), NV_AINIT)); in nv_changearray()
767 ap->nelem = 0; in nv_changearray()
768 ap->fun = fun; in nv_changearray()
783 up = (union Value*)((*ap->fun)(np,NIL(char*),0)); in nv_changearray()
790 return(ap); in nv_changearray()
799 register Namarr_t *ap; in nv_setarray() local
803 if(fun && (ap = nv_arrayptr(np))) in nv_setarray()
809 if(!is_associative(ap)) in nv_setarray()
810 ap = nv_changearray(np, fun); in nv_setarray()
811 return(ap); in nv_setarray()
820 if(fun && !ap && (ap = (Namarr_t*)((*fun)(np, NIL(char*), NV_AINIT)))) in nv_setarray()
823 ap->nelem = nelem; in nv_setarray()
824 ap->fun = fun; in nv_setarray()
837 return(ap); in nv_setarray()
848 register Namarr_t *ap = nv_arrayptr(np); in nv_arraychild() local
852 return(ap?array_find(np,ap, ARRAY_LOOKUP):0); in nv_arraychild()
853 if(!ap) in nv_arraychild()
856 ap = nv_arrayptr(np); in nv_arraychild()
858 if(!(up = array_getup(np,ap,0))) in nv_arraychild()
863 ap->nelem |= ARRAY_NOCLONE; in nv_arraychild()
870 ap->nelem &= ~ARRAY_NOCLONE; in nv_arraychild()
875 if(!ap->fun) in nv_arraychild()
877 struct index_array *aq = (struct index_array*)ap; in nv_arraychild()
893 register struct index_array *ap = (struct index_array*)nv_arrayptr(np); in nv_nextsub() local
896 if(!ap || !(ap->header.nelem&ARRAY_SCAN)) in nv_nextsub()
898 if(is_associative(ap)) in nv_nextsub()
901 if(nq=(*ap->header.fun)(np,NIL(char*),NV_ANEXT)) in nv_nextsub()
907 ap->header.nelem &= ~(ARRAY_SCAN|ARRAY_NOCHILD); in nv_nextsub()
910 if(!(ap->header.nelem&ARRAY_NOSCOPE)) in nv_nextsub()
911 ar = (struct index_array*)ap->header.scope; in nv_nextsub()
912 for(dot=ap->cur+1; dot < (unsigned)ap->maxi; dot++) in nv_nextsub()
914 aq = ap; in nv_nextsub()
915 if(!ap->val[dot].cp && !(ap->header.nelem&ARRAY_NOSCOPE)) in nv_nextsub()
922 ap->cur = dot; in nv_nextsub()
934 ap->header.nelem &= ~(ARRAY_SCAN|ARRAY_NOCHILD); in nv_nextsub()
935 ap->cur = 0; in nv_nextsub()
952 register struct index_array *ap = (struct index_array*)nv_arrayptr(np); in nv_putsub() local
954 if(!ap || !ap->header.fun) in nv_putsub()
958 if(ap && ap->xp && !strmatch(sp,"+([0-9])")) in nv_putsub()
960 Namval_t *mp = nv_namptr(ap->xp,0); in nv_putsub()
967 if(size <0 && ap) in nv_putsub()
974 if(!ap || size>=ap->maxi) in nv_putsub()
980 ap = array_grow(np, ap,size); in nv_putsub()
982 ap->header.nelem &= ~ARRAY_UNDEF; in nv_putsub()
983 ap->header.nelem |= (mode&(ARRAY_SCAN|ARRAY_NOCHILD|ARRAY_UNDEF|ARRAY_NOSCOPE)); in nv_putsub()
985 if(array_isbit(ap->bits,oldsize,ARRAY_CHILD)) in nv_putsub()
986 mp = ap->val[oldsize].np; in nv_putsub()
1000 ap->cur = size; in nv_putsub()
1001 if((mode&ARRAY_SCAN) && (ap->cur--,!nv_nextsub(np))) in nv_putsub()
1010 if(!ap->val[n].cp) in nv_putsub()
1012 ap->val[n].cp = Empty; in nv_putsub()
1013 if(!array_covered(np,ap)) in nv_putsub()
1014 ap->header.nelem++; in nv_putsub()
1017 if(n=ap->maxi-ap->maxi) in nv_putsub()
1018 memset(&ap->val[size],0,n*sizeof(union Value)); in nv_putsub()
1020 else if(!ap->val[size].cp) in nv_putsub()
1024 ap->val[size].cp = Empty; in nv_putsub()
1025 if(!array_covered(np,ap)) in nv_putsub()
1026 ap->header.nelem++; in nv_putsub()
1031 ap->header.nelem &= ~ARRAY_SCAN; in nv_putsub()
1032 if(array_isbit(ap->bits,size,ARRAY_CHILD)) in nv_putsub()
1033 nv_putsub(ap->val[size].np,NIL(char*),ARRAY_UNDEF); in nv_putsub()
1034 if(sp && !(mode&ARRAY_ADD) && !ap->val[size].cp) in nv_putsub()
1039 ap->header.nelem &= ~ARRAY_UNDEF; in nv_putsub()
1041 ap->header.nelem &= ~ARRAY_SCAN; in nv_putsub()
1042 ap->header.nelem |= (mode&(ARRAY_SCAN|ARRAY_NOCHILD|ARRAY_UNDEF|ARRAY_NOSCOPE)); in nv_putsub()
1047 (*ap->header.fun)(np, sp, NV_ASETSUB); in nv_putsub()
1050 (*ap->header.fun)(np, sp, (mode&ARRAY_ADD)?NV_AADD:0); in nv_putsub()
1051 if(!(mode&(ARRAY_SCAN|ARRAY_ADD)) && !(*ap->header.fun)(np,NIL(char*),NV_ACURRENT)) in nv_putsub()
1055 (*ap->header.fun)(np,(char*)np,0); in nv_putsub()
1057 (*ap->header.fun)(np, "",0); in nv_putsub()
1094 Namarr_t *ap = nv_arrayptr(np); in nv_endsubscript() local
1096 if(ap) in nv_endsubscript()
1097 scan = ap->nelem&ARRAY_SCAN; in nv_endsubscript()
1102 ap->nelem |= scan; in nv_endsubscript()
1113 register struct index_array *ap = (struct index_array*)nv_arrayptr(np); in nv_opensub() local
1114 if(ap) in nv_opensub()
1116 if(is_associative(ap)) in nv_opensub()
1117 return((Namval_t*)((*ap->header.fun)(np,NIL(char*),NV_ACURRENT))); in nv_opensub()
1118 else if(array_isbit(ap->bits,ap->cur,ARRAY_CHILD)) in nv_opensub()
1119 return(ap->val[ap->cur].np); in nv_opensub()
1127 register struct index_array *ap; in nv_getsub() local
1130 if(!np || !(ap = (struct index_array*)nv_arrayptr(np))) in nv_getsub()
1132 if(is_associative(ap)) in nv_getsub()
1133 return((char*)((*ap->header.fun)(np,NIL(char*),NV_ANAME))); in nv_getsub()
1134 if(ap->xp) in nv_getsub()
1136 np = nv_namptr(ap->xp,0); in nv_getsub()
1137 np->nvalue.s = ap->cur; in nv_getsub()
1140 if((dot = ap->cur)==0) in nv_getsub()
1156 Namarr_t *ap = nv_arrayptr(np); in nv_aindex() local
1157 if(!ap) in nv_aindex()
1159 else if(is_associative(ap)) in nv_aindex()
1161 return(((struct index_array*)(ap))->cur&ARRAY_MASK); in nv_aindex()
1164 int nv_arraynsub(register Namarr_t* ap) in nv_arraynsub() argument
1166 return(array_elem(ap)); in nv_arraynsub()
1171 struct index_array *ap = (struct index_array*)nv_arrayptr(np); in nv_aimax() local
1173 if(!ap || is_associative(&ap->header)) in nv_aimax()
1175 sub = ap->maxi; in nv_aimax()
1176 while(--sub>0 && ap->val[sub].cp==0); in nv_aimax()
1185 register struct assoc_array *ap = (struct assoc_array*)nv_arrayptr(np); in nv_associative() local
1190 if(ap = (struct assoc_array*)calloc(1,sizeof(struct assoc_array))) in nv_associative()
1192 ap->header.table = dtopen(&_Nvdisc,Dtoset); in nv_associative()
1193 ap->cur = 0; in nv_associative()
1194 ap->pos = 0; in nv_associative()
1195 ap->header.hdr.disc = &array_disc; in nv_associative()
1196 nv_disc(np,(Namfun_t*)ap, NV_FIRST); in nv_associative()
1197 ap->header.hdr.dsize = sizeof(struct assoc_array); in nv_associative()
1198 ap->header.hdr.nofree &= ~1; in nv_associative()
1200 return((void*)ap); in nv_associative()
1202 if(ap->cur) in nv_associative()
1204 …if(!ap->header.scope || (Dt_t*)ap->header.scope==ap->header.table || !nv_search(ap->cur->nvname,(D… in nv_associative()
1205 ap->header.nelem--; in nv_associative()
1206 _nv_unset(ap->cur,NV_RDONLY); in nv_associative()
1207 nv_delete(ap->cur,ap->header.table,0); in nv_associative()
1208 ap->cur = 0; in nv_associative()
1210 return((void*)ap); in nv_associative()
1212 ap->pos = 0; in nv_associative()
1213 if(ap->header.scope) in nv_associative()
1215 ap->header.table = dtview(ap->header.table,(Dt_t*)0); in nv_associative()
1216 dtclose(ap->header.scope); in nv_associative()
1217 ap->header.scope = 0; in nv_associative()
1220 dtclose(ap->header.table); in nv_associative()
1221 return((void*)ap); in nv_associative()
1223 if(!ap->pos) in nv_associative()
1225 if((ap->header.nelem&ARRAY_NOSCOPE) && ap->header.scope && dtvnext(ap->header.table)) in nv_associative()
1227 ap->header.scope = dtvnext(ap->header.table); in nv_associative()
1228 ap->header.table->view = 0; in nv_associative()
1230 if(!(ap->pos=ap->cur)) in nv_associative()
1231 ap->pos = (Namval_t*)dtfirst(ap->header.table); in nv_associative()
1234 ap->pos = ap->nextpos; in nv_associative()
1235 for(;ap->cur=ap->pos; ap->pos=ap->nextpos) in nv_associative()
1237 ap->nextpos = (Namval_t*)dtnext(ap->header.table,ap->pos); in nv_associative()
1238 if(ap->cur->nvalue.cp) in nv_associative()
1240 if((ap->header.nelem&ARRAY_NOCHILD) && nv_isattr(ap->cur,NV_CHILD)) in nv_associative()
1242 return((void*)ap); in nv_associative()
1245 if((ap->header.nelem&ARRAY_NOSCOPE) && ap->header.scope && !dtvnext(ap->header.table)) in nv_associative()
1247 ap->header.table->view = (Dt_t*)ap->header.scope; in nv_associative()
1248 ap->header.scope = ap->header.table; in nv_associative()
1252 ap->cur = (Namval_t*)sp; in nv_associative()
1253 return((void*)ap->cur); in nv_associative()
1255 if(ap->cur) in nv_associative()
1256 ap->cur->nvenv = (char*)np; in nv_associative()
1257 return((void*)ap->cur); in nv_associative()
1259 if(ap->cur) in nv_associative()
1262 if(!shp->instance && nv_isnull(ap->cur)) in nv_associative()
1264 return((void*)ap->cur->nvname); in nv_associative()
1271 ap->cur = 0; in nv_associative()
1277 else if(ap->header.nelem&ARRAY_NOSCOPE) in nv_associative()
1281 if(sh.subshell && (mp=nv_search(sp,ap->header.table,0)) && nv_isnull(mp)) in nv_associative()
1282 ap->cur = mp; in nv_associative()
1283 if((mp || (mp=nv_search(sp,ap->header.table,mode))) && nv_isnull(mp) && (mode&NV_ADD)) in nv_associative()
1291 if(!ap->header.scope || !nv_search(sp,dtvnext(ap->header.table),0)) in nv_associative()
1292 ap->header.nelem++; in nv_associative()
1295 if(ap->header.nelem&ARRAY_TREE) in nv_associative()
1300 else if(ap->header.nelem&ARRAY_SCAN) in nv_associative()
1304 ap->pos = mp = (Namval_t*)dtprev(ap->header.table,&fake); in nv_associative()
1305 ap->nextpos = (Namval_t*)dtnext(ap->header.table,mp); in nv_associative()
1308 mp = nv_search(sp,ap->header.table,NV_ADD); in nv_associative()
1310 if(ap->pos && ap->pos==np) in nv_associative()
1311 ap->header.nelem |= ARRAY_SCAN; in nv_associative()
1312 else if(!(ap->header.nelem&ARRAY_SCAN)) in nv_associative()
1313 ap->pos = 0; in nv_associative()
1314 ap->cur = np; in nv_associative()
1316 if(ap->cur) in nv_associative()
1317 return((void*)(&ap->cur->nvalue)); in nv_associative()
1319 return((void*)(&ap->cur)); in nv_associative()
1329 struct index_array *ap=0,*aq; in nv_setvec() local
1332 ap = (struct index_array*)nv_arrayptr(np); in nv_setvec()
1333 if(ap && is_associative(ap)) in nv_setvec()
1338 if(ap) in nv_setvec()
1340 if(!(aq = (struct index_array*)ap->header.scope)) in nv_setvec()
1341 aq = ap; in nv_setvec()
1342 arg0 = ap->maxi; in nv_setvec()
1343 while(--arg0>0 && ap->val[arg0].cp==0 && aq->val[arg0].cp==0); in nv_setvec()