Lines Matching refs:nq

213 	Namval_t	*nq = pp->ptype->np;
217 cp = nv_name(nq);
218 if((ap = nv_arrayptr(nq)) && !(ap->nelem&ARRAY_UNDEF) && (sub= nv_getsub(nq)))
297 Namval_t *nq = nv_namptr(dp->nodes,i);
299 if(fp=nv_hasdisc(nq,&chtype_disc))
300 nv_disc(nq, fp, NV_POP);
301 if(nv_isattr(nq,NV_REF))
303 nq->nvalue.nrp = nrp++;
304 nv_setsize(nq,0);
305 if(strchr(nq->nvname,'.'))
306 nq->nvalue.nrp->np = findref(dp->nodes,i);
308 nq->nvalue.nrp->np = nv_namptr(pp->childfun.ttype->nodes,i);
309 nq->nvalue.nrp->root = sh.last_root;
310 nq->nvalue.nrp->table = pp->np;
311 nq ->nvflag = NV_REF|NV_NOFREE|NV_MINIMAL;
314 if(nq->nvalue.cp || nq->nvfun)
316 const char *data = nq->nvalue.cp;
317 if(nq->nvfun)
320 if(nv_isarray(nq))
321 nq->nvalue.cp = 0;
322 nq->nvfun = 0;
323 if(nv_isarray(nq) && ((flag&NV_IARRAY) || nv_type(np)))
324 clone_all_disc(np,nq,flag&~NV_TYPE);
326 clone_all_disc(np,nq,flag);
331 if(nq->nvalue.cp >= pp->data && nq->nvalue.cp < (char*)pp +pp->fun.dsize)
332 nq->nvalue.cp = dp->data + (nq->nvalue.cp-pp->data);
335 nq->nvalue.cp = dp->data + (data-pp->data);
337 else if(!nq->nvfun && pp->childfun.ttype!=pp->childfun.ptype)
340 if(nr->nvalue.cp!=nq->nvalue.cp)
342 if(i=nv_size(nq))
344 const char *cp = nq->nvalue.cp;
345 nq->nvalue.cp = (char*)malloc(i);
346 memcpy((char*)nq->nvalue.cp,cp,i);
349 nq->nvalue.cp = strdup(nq->nvalue.cp);
350 nv_offattr(nq,NV_NOFREE);
353 else if(nq->nvalue.cp==Empty)
354 nv_offattr(nq,NV_NOFREE);
358 nv_disc(nq, &dp->childfun.fun, NV_LAST);
366 register Namval_t *nq, *nr;
406 nq = nv_namptr(dp->nodes,i);
410 nq = nq->nvalue.nrp->np;
414 if(nq->nvalue.cp || !nv_isvtree(nq) || nv_isattr(nq,NV_RDONLY))
426 stakputs(nq->nvname);
436 if(nv_isattr(nq,NV_RDONLY) && (nq->nvalue.cp || nv_isattr(nq,NV_INTEGER)))
437 errormsg(SH_DICT,ERROR_exit(1),e_readonly, nq->nvname);
438 if(nv_isref(nq))
439 nq = nv_refnode(nq);
440 if((size = nv_datasize(nr,(size_t*)0)) && size==nv_datasize(nq,(size_t*)0))
441 memcpy((char*)nq->nvalue.cp,nr->nvalue.cp,size);
451 nv_putsub(nq,cp,ARRAY_ADD|ARRAY_NOSCOPE);
455 Namval_t *mq = (Namval_t*)((*ap->fun)(nq,NIL(char*),NV_ACURRENT));
463 nv_putval(nq,cp,0);
469 nv_putval(nq,nv_getval(nr),NV_RDONLY);
480 else if(nv_isattr(nq,NV_RDONLY) && !nq->nvalue.cp && !nv_isattr(nq,NV_INTEGER))
481 errormsg(SH_DICT,ERROR_exit(1),e_required,nq->nvname,nv_name(mp));
500 Namval_t *nq=0;
509 while((nq=nv_namptr(base,++i)) && memcmp(nq->nvname,np->nvname,m)==0)
511 if(nq->nvname[m]=='.' && memcmp(name,&nq->nvname[m+1],n)==0 && nq->nvname[m+n+1]==0)
514 nq = 0;
518 nq = nv_namptr(dp->nodes,i);
519 if((n==0||memcmp(name,nq->nvname,n)==0) && nq->nvname[n]==0)
521 while(nv_isref(nq))
522 nq = nq->nvalue.nrp->np;
526 nq = 0;
528 if(nq)
538 return(nq);
542 return(nq);
547 Namval_t *nq;
548 if(val && (nq=nv_open(val,sh.var_tree,NV_VARNAME|NV_ARRAY|NV_NOADD|NV_NOFAIL)))
551 if((pp=nv_hasdisc(nq,fp->disc)) && pp->type==fp->type)
554 if(!nq->nvenv)
557 nv_clone(nq,np,NV_IARRAY);
565 Namval_t *nq;
572 nq = nv_namptr(dp->nodes,i);
573 if(ap=nv_arrayptr(nq))
575 if(!nv_hasdisc(nq,&type_disc))
576 _nv_unset(nq,flag|NV_TYPE|nv_isattr(nq,NV_RDONLY));
618 Namval_t *np,*nq,*tp;
682 nq = nv_namptr(dp->nodes,i);
683 if(tp=nv_type(nq))
685 Namfun_t *pp = nv_hasdisc(nq,&type_disc);
686 sfprintf(out,"\t[+%s?%s.\n",nq->nvname,tp->nvname);
687 n = strlen(nq->nvname);
688 while((cp=nv_namptr(dp->nodes,i+1)->nvname) && memcmp(cp,nq->nvname,n)==0 && cp[n]=='.')
694 nv_attribute(nq,sp,(char*)0,1);
696 if(!nv_isattr(nq,NV_REF))
697 cp = sh_fmtq(nv_getval(nq));
702 sfprintf(out,"\t[+%s?%s, default value is %s.\n",nq->nvname,*buffer?buffer:"string",cp);
704 sfprintf(out,"\t[+%s?%s.\n",nq->nvname,*buffer?buffer:"string");
725 if((nq = nv_search(stakptr(offset),sh.fun_tree,0)) && nq->nvalue.cp)
726 cp = nq->nvalue.rp->help;
727 if(nq && nv_isattr(nq,NV_STATICF))
747 Namval_t *np=0,*nq;
776 nq = nv_namptr(pp->nodes,i);
777 if(memcmp(nq->nvname, sp, cp-sp-1)==0)
779 np = nq;
849 Namval_t *mp=nodes[0], *bp=0, *np, *nq, **mnodes=nodes;
889 nq = nv_namptr(qp->nodes,j);
890 if(strcmp(nq->nvname,&np->nvname[m])==0)
954 nq = nv_namptr(pp->nodes,0);
955 nq->nvname = cp;
956 nv_onattr(nq,NV_MINIMAL);
993 nq = nv_namptr(pp->nodes,j);
994 if(strcmp(nq->nvname,&np->nvname[m])==0)
1003 nv_putval(nq,sp,0);
1010 nq = nv_namptr(pp->nodes,0);
1011 nq->nvfun = 0;
1012 nv_putval(nq,(val?val:0),nv_isattr(np,~(NV_IMPORT|NV_EXPORT|NV_ARRAY)));
1013 nq->nvflag = np->nvflag|NV_NOFREE|NV_MINIMAL;
1026 nq = nv_namptr(pp->nodes,k);
1030 nq = nq->nvalue.nrp->np;
1035 memcpy((char*)nq->nvalue.cp,nr->nvalue.cp,size=nv_datasize(nr,(size_t*)0));
1038 nq->nvalue.cp = nr->nvalue.cp;
1039 nv_onattr(nq,NV_NOFREE);
1055 nq = nv_namptr(pp->nodes,k);
1068 nq->nvname = cp;
1075 nq->nvsize = np->nvsize;
1076 nq->nvflag = (np->nvflag&~(NV_IMPORT|NV_EXPORT))|NV_NOFREE|NV_MINIMAL;
1085 clone_all_disc(np,nq,NV_RDONLY);
1088 nv_disc(nq, &pp->childfun.fun, NV_LAST);
1092 if(fp=nv_hasdisc(nq,&chtype_disc))
1093 nv_disc(nq, &pp->childfun.fun, NV_LAST);
1094 if(tp = (Namtype_t*)nv_hasdisc(nq, &type_disc))
1100 nq = nv_namptr(pp->nodes,++k);
1101 nq->nvname = cp;
1103 nq->nvflag = nr->nvflag;
1109 nq->nvalue.cp = pp->data+offset;
1110 memcpy((char*)nq->nvalue.cp,nr->nvalue.cp,dsize);
1111 nv_onattr(nq,NV_NOFREE);
1114 nq->nvalue.cp = strdup(nr->nvalue.cp);
1115 nv_disc(nq, &pp->childfun.fun, NV_LAST);
1117 nq->nvsize = nr->nvsize;
1135 nq = nv_namptr(pp->nodes,++j);
1136 if(strcmp(nq->nvname,cname)==0)
1138 sfprintf(sfstderr,"%s found at k=%d\n",nq->nvname,k);
1139 if(nq->nvalue.cp>=pp->data && nq->nvalue.cp< (char*)pp->names)
1140 memcpy((char*)nq->nvalue.cp,np->nvalue.cp,nv_datasize(np,0));
1149 nq->nvfun = np->nvfun;
1151 nv_disc(nq, &pp->childfun.fun, NV_LAST);
1152 if(nq->nvfun)
1154 for(fp=nq->nvfun; fp; fp = fp->next)
1157 nq->nvalue.cp = np->nvalue.cp;
1160 nq->nvalue.cp = pp->data+offset;
1165 nv_onattr(nq,NV_INT16P);
1169 memcpy((char*)nq->nvalue.cp,sp,dsize);
1171 memset((char*)nq->nvalue.cp,' ',dsize);
1175 if(!nq->nvalue.cp && nq->nvfun== &pp->childfun.fun)
1176 nq->nvalue.cp = Empty;
1290 Namval_t *nq;
1295 nq = nv_namptr(pp->nodes,i);
1296 if((dp=(Namtype_t*)nv_hasdisc(nq,&type_disc)) && dp->cp)
1297 sh_fun(dp->cp,nq, (char**)0);
1430 Namval_t *mp, *nq, *nr, *tp;
1482 nq = nv_namptr(pp->nodes,i++);
1483 nq->nvname = cp;
1484 nq->nvalue.cp = pp->data + fp->offset;
1485 nv_onattr(nq,NV_MINIMAL|NV_NOFREE);
1495 clone_all_disc(tp,nq,NV_RDONLY);
1496 nq->nvflag = tp->nvflag|NV_MINIMAL|NV_NOFREE;
1497 nq->nvsize = tp->nvsize;
1498 if(dp = (Namtype_t*)nv_hasdisc(nq,&type_disc))
1502 if(nv_hasdisc(nq,&chtype_disc))
1503 nv_disc(nq, &pp->childfun.fun, NV_LAST);
1504 sp = (char*)nq->nvalue.cp;
1509 nq = nv_namptr(pp->nodes,i++);
1510 nq->nvname = cp;
1519 nq->nvalue.cp = sp + (nr->nvalue.cp-dp->data);
1521 nq->nvflag = nr->nvflag;
1522 nq->nvsize = nr->nvsize;
1528 nv_onattr(nq,NV_NOFREE|NV_RDONLY|NV_INTEGER);
1530 nv_onattr(nq,NV_INT16P);
1532 nv_onattr(nq,NV_INT64);
1534 nv_onattr(nq,NV_UNSIGN);