Lines Matching refs:wp
646 static void outval(char *name, const char *vname, struct Walk *wp) in outval() argument
653 if(!(np=nv_open(vname,wp->root,mode|NV_VARNAME|NV_NOADD|NV_NOASSIGN|NV_NOFAIL|wp->noscope))) in outval()
673 if(!wp->out) in outval()
697 nq = nv_putsub(np,NIL(char*),ARRAY_SCAN|(wp->out?ARRAY_NOCHILD:0)); in outval()
699 if(!wp->out) 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()
711 sfputc(wp->out,'('); in outval()
712 if(wp->indent>=0) in outval()
713 sfputc(wp->out,'\n'); in outval()
718 special |= wp->nofollow; in outval()
719 if(!wp->array && wp->indent>0) in outval()
720 sfnputc(wp->out,'\t',wp->indent); in outval()
724 nv_attribute(np,wp->out,"typeset",'='); in outval()
725 nv_outname(wp->out,name,-1); in outval()
728 if(wp->indent>=0 || isarray!=2) in outval()
729 sfputc(wp->out,(isarray==2?'\n':'=')); in outval()
737 nv_outnode(np, wp->out, wp->indent, special); in outval()
742 if(wp->indent>0) in outval()
744 sfnputc(wp->out,'\t',wp->indent); in outval()
745 sfwrite(wp->out,")\n",2); in outval()
748 sfwrite(wp->out,");",2); in outval()
755 static char **genvalue(char **argv, const char *prefix, int n, struct Walk *wp) in genvalue() argument
758 register Sfio_t *outfile = wp->out; in genvalue()
767 if(outfile && !wp->array) in genvalue()
770 if(wp->indent>=0) in genvalue()
772 wp->indent++; in genvalue()
795 np=nv_open(arg,wp->root,NV_VARNAME|NV_NOADD|NV_NOASSIGN|NV_NOFAIL|wp->noscope); in genvalue()
801 if(wp->indent>=0) in genvalue()
802 sfnputc(outfile,'\t',wp->indent); in genvalue()
818 outval(cp,arg,wp); in genvalue()
821 argv = genvalue(argv,cp,n+m+r,wp); in genvalue()
822 if(wp->indent>=0) in genvalue()
828 …else if(outfile && !wp->nofollow && argv[1] && memcmp(arg,argv[1],l=strlen(arg))==0 && argv[1][l]=… in genvalue()
832 Namval_t *np = nv_open(arg,wp->root,NV_VARNAME|NV_NOADD|NV_NOASSIGN|wp->noscope); in genvalue()
835 if((wp->array = nv_isarray(np)) && (ap=nv_arrayptr(np))) in genvalue()
838 if(wp->indent>0) in genvalue()
839 sfnputc(outfile,'\t',wp->indent); in genvalue()
845 wp->array=0; in genvalue()
848 wp->nofollow=1; in genvalue()
849 argv = genvalue(argv,cp,cp-arg ,wp); in genvalue()
850 sfputc(outfile,wp->indent<0?';':'\n'); in genvalue()
854 if(wp->indent) in genvalue()
855 sfnputc(outfile,'\t',wp->indent); in genvalue()
857 argv = genvalue(++argv,cp,cp-arg ,wp); in genvalue()
862 outval(cp,arg,wp); in genvalue()
863 if(wp->array) in genvalue()
865 if(wp->indent>=0) in genvalue()
866 wp->indent++; in genvalue()
869 wp->array = 0; in genvalue()
875 wp->nofollow = 0; in genvalue()
877 wp->array = 0; in genvalue()
884 outval(".",prefix-n,wp); in genvalue()
887 if(wp->indent>0) in genvalue()
888 sfnputc(outfile,'\t',--wp->indent); in genvalue()