Lines Matching refs:np

52 static int read_tree(Namval_t* np, Sfio_t *iop, int n, Namfun_t *dp)  in read_tree()  argument
61 sfprintf(sh.strbuf,"%s=%c",nv_name(np),0); in read_tree()
69 static Namval_t *create_tree(Namval_t *np,const char *name,int flag,Namfun_t *dp) in create_tree() argument
77 if(np=(*fp->disc->createf)(np,name,flag,fp)) in create_tree()
79 return(np); in create_tree()
82 return((flag&NV_NOADD)?0:np); in create_tree()
85 static Namfun_t *clone_tree(Namval_t *np, Namval_t *mp, int flags, Namfun_t *fp){ in clone_tree() argument
87 if ((flags&NV_MOVE) && nv_type(np)) in clone_tree()
92 walk_tree(np,mp,flags); in clone_tree()
131 static Namfun_t *nextdisc(Namval_t *np) in nextdisc() argument
134 if(nv_isref(np)) in nextdisc()
136 for(fp=np->nvfun;fp;fp=fp->next) in nextdisc()
144 void *nv_diropen(Namval_t *np,const char *name) in nv_diropen() argument
170 np = nv_open(name, dp->root, NV_NOFAIL); in nv_diropen()
172 if(!np || !nv_istable(np)) in nv_diropen()
174 dp->root = nv_dict(np); in nv_diropen()
193 np = dp->hp; in nv_diropen()
211 if(!np) in nv_diropen()
215 np = (*nfp->disc->createf)(nq,last,0,nfp); in nv_diropen()
218 nv_endsubscript(np,nfp->last,NV_NOADD); in nv_diropen()
219 if(nq = nv_opensub(np)) in nv_diropen()
220 np = nq; in nv_diropen()
224 np = nv_search(last,dp->root,0); in nv_diropen()
228 if(np==dp->hp && !next) in nv_diropen()
230 if(np && ((nfp=nextdisc(np)) || nv_istable(np))) in nv_diropen()
236 if(nv_istable(np)) in nv_diropen()
237 dp->root = nv_dict(np); in nv_diropen()
239 dp->root = (Dt_t*)np; in nv_diropen()
243 dp->table = np; in nv_diropen()
246 dp->hp = (*dp->nextnode)(np,(Dt_t*)0,nfp); in nv_diropen()
256 nq = np; in nv_diropen()
257 np = 0; in nv_diropen()
275 register Namval_t *np, *last_table; in nv_dirnext() local
281 while(np=dp->hp) in nv_dirnext()
286 if(nv_isarray(np)) in nv_dirnext()
287 nv_putsub(np,(char*)0, ARRAY_UNDEF); in nv_dirnext()
289 if(nv_isnull(np) && !nv_isarray(np) && !nv_isattr(np,NV_INTEGER)) in nv_dirnext()
300 cp = nv_name(np); in nv_dirnext()
309 dp->hp = (*dp->nextnode)(np,(Dt_t*)0,dp->fun); in nv_dirnext()
314 …if((nfp=nextdisc(np)) && (nfp->disc->getval||nfp->disc->getnum) && nv_isvtree(np) && strcmp(cp,dp-… in nv_dirnext()
316 if(nfp || nv_istable(np)) in nv_dirnext()
319 if(nv_istable(np)) in nv_dirnext()
320 root = nv_dict(np); in nv_dirnext()
322 root = (Dt_t*)np; in nv_dirnext()
337 if(nfp && np->nvfun) in nv_dirnext()
340 Namarr_t *ap = nv_arrayptr(np); in nv_dirnext()
342 nv_putsub(np,(char*)0,ARRAY_SCAN); in nv_dirnext()
346 dp->table = np; in nv_dirnext()
348 dp->hp = (*dp->nextnode)(np,(Dt_t*)0,nfp); in nv_dirnext()
372 static void outtype(Namval_t *np, Namfun_t *fp, Sfio_t* out, const char *prefix) in outtype() argument
377 tp = (*fp->disc->typef)(np,fp); in outtype()
380 if(fp->type || (fp->disc && fp->disc->typef &&(*fp->disc->typef)(np,fp))) in outtype()
382 outtype(np,fp,out,prefix); in outtype()
404 void nv_attribute(register Namval_t *np,Sfio_t *out,char *prefix,int noname) in nv_attribute() argument
412 for(fp=np->nvfun;fp;fp=fp->next) in nv_attribute()
414 if((typep=fp->type) || (fp->disc && fp->disc->typef && (typep=(*fp->disc->typef)(np,fp)))) in nv_attribute()
417 if(!fp && !nv_isattr(np,~(NV_MINIMAL|NV_NOFREE))) in nv_attribute()
421 if(nv_isvtree(np)) in nv_attribute()
423 …else if((!np->nvalue.cp||np->nvalue.cp==Empty) && nv_isattr(np,~NV_NOFREE)==NV_MINIMAL && strcmp(n… in nv_attribute()
429 if ((attr=nv_isattr(np,~NV_NOFREE)) || fp) in nv_attribute()
439 if(nv_isattr(np,NV_REF|NV_TAGGED)==(NV_REF|NV_TAGGED)) in nv_attribute()
475 Namarr_t *ap = nv_arrayptr(np); in nv_attribute()
484 if((ap && (ap->nelem&ARRAY_TREE)) || (!ap && nv_isattr(np,NV_NOFREE))) in nv_attribute()
505 sfprintf(out,"%d ",nv_size(np)); in nv_attribute()
509 if(val==NV_INTEGER && nv_isattr(np,NV_INTEGER)) in nv_attribute()
511 if(nv_size(np) != 10) in nv_attribute()
513 if(nv_isattr(np, NV_DOUBLE)== NV_DOUBLE) in nv_attribute()
519 sfprintf(out,"%d ",nv_size(np)); in nv_attribute()
525 outtype(np,fp,out,prefix); in nv_attribute()
528 sfputr(out,nv_name(np),'\n'); in nv_attribute()
543 void nv_outnode(Namval_t *np, Sfio_t* out, int indent, int special) in nv_outnode() argument
547 Namarr_t *ap = nv_arrayptr(np); in nv_outnode()
552 nv_putsub(np,NIL(char*),ARRAY_SCAN); in nv_outnode()
561 if(array_elem(ap) < nv_aimax(np)+1) in nv_outnode()
565 mp = nv_opensub(np); in nv_outnode()
570 if(!nv_nextsub(np)) in nv_outnode()
572 mp = nv_opensub(np); in nv_outnode()
580 if(!(fmtq = nv_getsub(np))) in nv_outnode()
592 more = nv_nextsub(np); in nv_outnode()
597 ep = nv_getval(mp?mp:np); in nv_outnode()
601 if(!ap && nv_isattr(np,NV_INTEGER|NV_LJUST)==NV_LJUST) in nv_outnode()
603 xp = ep+nv_size(np); in nv_outnode()
607 if(xp < (ep+nv_size(np))) in nv_outnode()
626 more = nv_nextsub(np); in nv_outnode()
640 mp = nv_opensub(np); in nv_outnode()
648 register Namval_t *np, *nq; in outval() local
653 if(!(np=nv_open(vname,wp->root,mode|NV_VARNAME|NV_NOADD|NV_NOASSIGN|NV_NOFAIL|wp->noscope))) in outval()
655 fp = nv_hasdisc(np,&treedisc); in outval()
658 if(nv_isattr(np,NV_BINARY)) in outval()
660 if(fp && np->nvalue.cp && np->nvalue.cp!=Empty) in outval()
667 if(nv_isarray(np)) in outval()
670 if(!special && fp && !nv_isarray(np)) in outval()
675 fp = nv_stack(np,fp); in outval()
676 if(fp = nv_stack(np,NIL(Namfun_t*))) in outval()
678 np->nvfun = 0; in outval()
689 if(nv_isnull(np) && !nv_isarray(np) && !nv_isattr(np,NV_INTEGER)) in outval()
691 if(special || (nv_isarray(np) && nv_arrayptr(np))) in outval()
694 if(array_elem(nv_arrayptr(np))==0) in outval()
697 nq = nv_putsub(np,NIL(char*),ARRAY_SCAN|(wp->out?ARRAY_NOCHILD:0)); in outval()
701 _nv_unset(np,NV_RDONLY); in outval()
702 nv_close(np); in outval()
704 if(sh.subshell==0 && !(wp->flags&NV_RDONLY) && !nv_isattr(np,NV_MINIMAL|NV_NOFREE)) in outval()
705 nv_delete(np,wp->root,0); in outval()
716 if(isarray==0 && nv_isarray(np) && nv_isnull(np)) /* empty array */ in outval()
724 nv_attribute(np,wp->out,"typeset",'='); in outval()
726 …if((np->nvalue.cp && np->nvalue.cp!=Empty) || nv_isattr(np,~(NV_MINIMAL|NV_NOFREE)) || nv_isvtree( in outval()
734 fp = np->nvfun; in outval()
736 np->nvfun = 0; in outval()
737 nv_outnode(np, wp->out, wp->indent, special); in outval()
739 np->nvfun = fp; in outval()
793 Namval_t *np,*tp; in genvalue() local
795 np=nv_open(arg,wp->root,NV_VARNAME|NV_NOADD|NV_NOASSIGN|NV_NOFAIL|wp->noscope); in genvalue()
796 if(!np || (nv_isarray(np) && (!(tp=nv_opensub(np)) || !nv_isvtree(tp)))) in genvalue()
803 if(*cp!='[' && (tp = nv_type(np))) in genvalue()
832 Namval_t *np = nv_open(arg,wp->root,NV_VARNAME|NV_NOADD|NV_NOASSIGN|wp->noscope); in genvalue() local
833 if(!np) in genvalue()
835 if((wp->array = nv_isarray(np)) && (ap=nv_arrayptr(np))) in genvalue()
840 nv_attribute(np,outfile,"typeset",1); in genvalue()
841 nv_close(np); in genvalue()
897 static char *walk_tree(register Namval_t *np, Namval_t *xp, int flags) in walk_tree() argument
910 Namarr_t *arp = nv_arrayptr(np); in walk_tree()
924 stakputs(nv_name(np)); in walk_tree()
925 if(arp && !(arp->nelem&ARRAY_SCAN) && (subscript = nv_getsub(np))) in walk_tree()
927 mp = nv_opensub(np); in walk_tree()
934 mp = np; in walk_tree()
1010 Namfun_t *nv_isvtree(Namval_t *np) in nv_isvtree() argument
1012 if(np) in nv_isvtree()
1013 return(nv_hasdisc(np,&treedisc)); in nv_isvtree()
1020 char *nv_getvtree(register Namval_t *np, Namfun_t *fp) in nv_getvtree() argument
1026 return(nv_getv(np,fp)); in nv_getvtree()
1028 if(nv_isattr(np,NV_BINARY) && !nv_isattr(np,NV_RAW)) in nv_getvtree()
1029 return(nv_getv(np,fp)); in nv_getvtree()
1030 if(nv_isattr(np,NV_ARRAY) && !nv_type(np) && nv_arraychild(np,(Namval_t*)0,0)==np) in nv_getvtree()
1031 return(nv_getv(np,fp)); in nv_getvtree()
1032 if(flags = nv_isattr(np,NV_EXPORT)) in nv_getvtree()
1033 nv_offattr(np,NV_EXPORT); in nv_getvtree()
1036 return(walk_tree(np,(Namval_t*)0,flags)); in nv_getvtree()
1042 static void put_tree(register Namval_t *np, const char *val, int flags,Namfun_t *fp) in put_tree() argument
1046 if(!val && !fp->next && nv_isattr(np,NV_NOFREE)) in put_tree()
1048 if(!nv_isattr(np,(NV_INTEGER|NV_BINARY))) in put_tree()
1061 walk_tree(np,(Namval_t*)0,(flags&NV_NOSCOPE)|1); in put_tree()
1062 nv_clone(mp,np,NV_COMVAR); in put_tree()
1065 walk_tree(np,(Namval_t*)0,(flags&NV_NOSCOPE)|1); in put_tree()
1067 nv_putv(np, val, flags,fp); in put_tree()
1068 if(val && nv_isattr(np,(NV_INTEGER|NV_BINARY))) in put_tree()
1070 if(ap= nv_arrayptr(np)) in put_tree()
1074 fp = nv_stack(np,fp); in put_tree()
1075 if(fp = nv_stack(np,NIL(Namfun_t*))) in put_tree()
1083 void nv_setvtree(register Namval_t *np) in nv_setvtree() argument
1087 sh_assignok(np,1); in nv_setvtree()
1088 if(nv_hasdisc(np, &treedisc)) in nv_setvtree()
1093 nv_stack(np, nfp); in nv_setvtree()