Lines Matching refs:nq

212 	Namval_t	*nq = pp->ptype->np;
216 cp = nv_name(nq);
217 if((ap = nv_arrayptr(nq)) && !(ap->nelem&ARRAY_UNDEF) && (sub= nv_getsub(nq)))
291 Namval_t *nq = nv_namptr(dp->nodes,i);
293 if(fp=nv_hasdisc(nq,&chtype_disc))
294 nv_disc(nq, fp, NV_POP);
295 if(nv_isattr(nq,NV_REF))
297 nq->nvalue.nrp = nrp++;
298 nv_setsize(nq,0);
299 if(strchr(nq->nvname,'.'))
300 nq->nvalue.nrp->np = findref(dp->nodes,i);
302 nq->nvalue.nrp->np = nv_namptr(pp->childfun.ttype->nodes,i);
303 nq->nvalue.nrp->root = sh.last_root;
304 nq->nvalue.nrp->table = pp->np;
305 nq ->nvflag = NV_REF|NV_NOFREE|NV_MINIMAL;
308 if(nq->nvalue.cp || nq->nvfun)
310 const char *data = nq->nvalue.cp;
311 if(nq->nvfun)
314 if(nv_isarray(nq))
315 nq->nvalue.cp = 0;
316 nq->nvfun = 0;
317 if(nv_isarray(nq) && nv_type(np))
318 clone_all_disc(np,nq,flag&~NV_TYPE);
320 clone_all_disc(np,nq,flag);
325 if(nq->nvalue.cp >= pp->data && nq->nvalue.cp < (char*)pp +pp->fun.dsize)
326 nq->nvalue.cp = dp->data + (nq->nvalue.cp-pp->data);
329 nq->nvalue.cp = dp->data + (data-pp->data);
331 else if(!nq->nvfun && pp->childfun.ttype!=pp->childfun.ptype)
334 if(nr->nvalue.cp!=nq->nvalue.cp)
336 if(i=nv_size(nq))
338 const char *cp = nq->nvalue.cp;
339 nq->nvalue.cp = (char*)malloc(i);
340 memcpy((char*)nq->nvalue.cp,cp,i);
343 nq->nvalue.cp = strdup(nq->nvalue.cp);
344 nv_offattr(nq,NV_NOFREE);
350 nv_disc(nq, &dp->childfun.fun, NV_LAST);
358 register Namval_t *nq, *nr;
398 nq = nv_namptr(dp->nodes,i);
402 nq = nq->nvalue.nrp->np;
404 if(nq->nvalue.cp || !nv_isvtree(nq) || nv_isattr(nq,NV_RDONLY))
416 stakputs(nq->nvname);
426 if(nv_isattr(nq,NV_RDONLY) && (nq->nvalue.cp || nv_isattr(nq,NV_INTEGER)))
427 errormsg(SH_DICT,ERROR_exit(1),e_readonly, nq->nvname);
428 if(nv_isref(nq))
429 nq = nv_refnode(nq);
430 if((size = datasize(nr,(size_t*)0)) && size==datasize(nq,(size_t*)0))
431 memcpy((char*)nq->nvalue.cp,nr->nvalue.cp,size);
441 nv_putsub(nq,cp,ARRAY_ADD|ARRAY_NOSCOPE);
445 Namval_t *mq = (Namval_t*)((*ap->fun)(nq,NIL(char*),NV_ACURRENT));
453 nv_putval(nq,cp,0);
459 nv_putval(nq,nv_getval(nr),NV_RDONLY);
470 else if(nv_isattr(nq,NV_RDONLY) && !nq->nvalue.cp && !nv_isattr(nq,NV_INTEGER))
471 errormsg(SH_DICT,ERROR_exit(1),e_required,nq->nvname,nv_name(mp));
490 Namval_t *nq=0;
499 while((nq=nv_namptr(base,++i)) && memcmp(nq->nvname,np->nvname,m)==0)
501 if(nq->nvname[m]=='.' && memcmp(name,&nq->nvname[m+1],n)==0 && nq->nvname[m+n+1]==0)
504 nq = 0;
508 nq = nv_namptr(dp->nodes,i);
509 if((n==0||memcmp(name,nq->nvname,n)==0) && nq->nvname[n]==0)
511 while(nv_isref(nq))
512 nq = nq->nvalue.nrp->np;
516 nq = 0;
518 if(nq)
528 return(nq);
532 return(nq);
537 Namval_t *nq;
538 if(val && (nq=nv_open(val,sh.var_tree,NV_VARNAME|NV_ARRAY|NV_NOADD|NV_NOFAIL)))
541 if((pp=nv_hasdisc(nq,fp->disc)) && pp->type==fp->type)
545 nv_clone(nq,np,0);
553 Namval_t *nq;
560 nq = nv_namptr(dp->nodes,i);
561 if(ap=nv_arrayptr(nq))
563 if(!nv_hasdisc(nq,&type_disc))
564 _nv_unset(nq,flag|NV_TYPE|nv_isattr(nq,NV_RDONLY));
606 Namval_t *np,*nq,*tp;
670 nq = nv_namptr(dp->nodes,i);
671 if(tp=nv_type(nq))
673 Namfun_t *pp = nv_hasdisc(nq,&type_disc);
674 sfprintf(out,"\t[+%s?%s.\n",nq->nvname,tp->nvname);
675 n = strlen(nq->nvname);
676 while((cp=nv_namptr(dp->nodes,i+1)->nvname) && memcmp(cp,nq->nvname,n)==0 && cp[n]=='.')
682 nv_attribute(nq,sp,(char*)0,1);
684 if(!nv_isattr(nq,NV_REF))
685 cp = sh_fmtq(nv_getval(nq));
690 sfprintf(out,"\t[+%s?%s, default value is %s.\n",nq->nvname,*buffer?buffer:"string",cp);
692 sfprintf(out,"\t[+%s?%s.\n",nq->nvname,*buffer?buffer:"string");
713 if((nq = nv_search(stakptr(offset),sh.fun_tree,0)) && nq->nvalue.cp)
714 cp = nq->nvalue.rp->help;
732 Namval_t *np=0,*nq;
761 nq = nv_namptr(pp->nodes,i);
762 if(memcmp(nq->nvname, sp, cp-sp-1)==0)
764 np = nq;
824 Namval_t *mp=nodes[0], *bp=0, *np, *nq, **mnodes=nodes;
858 nq = nv_namptr(qp->nodes,j);
859 if(strcmp(nq->nvname,&np->nvname[m])==0)
923 nq = nv_namptr(pp->nodes,0);
924 nq->nvname = cp;
925 nv_onattr(nq,NV_MINIMAL);
962 nq = nv_namptr(pp->nodes,j);
963 if(strcmp(nq->nvname,&np->nvname[m])==0)
972 nv_putval(nq,sp,0);
979 nq = nv_namptr(pp->nodes,0);
980 nq->nvfun = 0;
981 nv_putval(nq,(val?val:0),nv_isattr(np,~(NV_IMPORT|NV_EXPORT|NV_ARRAY)));
982 nq->nvflag = np->nvflag|NV_NOFREE|NV_MINIMAL;
995 nq = nv_namptr(pp->nodes,k);
999 nq = nq->nvalue.nrp->np;
1004 memcpy((char*)nq->nvalue.cp,nr->nvalue.cp,size=datasize(nr,(size_t*)0));
1007 nq->nvalue.cp = nr->nvalue.cp;
1008 nv_onattr(nq,NV_NOFREE);
1024 nq = nv_namptr(pp->nodes,k);
1037 nq->nvname = cp;
1044 nq->nvsize = np->nvsize;
1045 nq->nvflag = (np->nvflag&~(NV_IMPORT|NV_EXPORT))|NV_NOFREE|NV_MINIMAL;
1054 clone_all_disc(np,nq,NV_RDONLY);
1057 nv_disc(nq, &pp->childfun.fun, NV_LAST);
1061 if(fp=nv_hasdisc(nq,&chtype_disc))
1062 nv_disc(nq, &pp->childfun.fun, NV_LAST);
1063 if(tp = (Namtype_t*)nv_hasdisc(nq, &type_disc))
1069 nq = nv_namptr(pp->nodes,++k);
1070 nq->nvname = cp;
1072 nq->nvflag = nr->nvflag;
1078 nq->nvalue.cp = pp->data+offset;
1079 memcpy((char*)nq->nvalue.cp,nr->nvalue.cp,dsize);
1080 nv_onattr(nq,NV_NOFREE);
1083 nq->nvalue.cp = strdup(nr->nvalue.cp);
1084 nv_disc(nq, &pp->childfun.fun, NV_LAST);
1086 nq->nvsize = nr->nvsize;
1104 nq = nv_namptr(pp->nodes,++j);
1105 if(strcmp(nq->nvname,cname)==0)
1107 sfprintf(sfstderr,"%s found at k=%d\n",nq->nvname,k);
1108 if(nq->nvalue.cp>=pp->data && nq->nvalue.cp< (char*)pp->names)
1109 memcpy((char*)nq->nvalue.cp,np->nvalue.cp,datasize(np,0));
1118 nq->nvfun = np->nvfun;
1120 if(nv_isarray(nq) && !nq->nvfun)
1122 nv_putsub(nq, (char*)0, ARRAY_FILL);
1123 if(nv_isattr(nq,NV_INTEGER))
1124 nv_putval(nq, "0",0);
1126 ((Namarr_t*)nq->nvfun)->nelem--;
1128 nv_disc(nq, &pp->childfun.fun, NV_LAST);
1129 if(nq->nvfun)
1131 for(fp=nq->nvfun; fp; fp = fp->next)
1134 nq->nvalue.cp = np->nvalue.cp;
1137 nq->nvalue.cp = pp->data+offset;
1142 nv_onattr(nq,NV_INT16P);
1146 memcpy((char*)nq->nvalue.cp,sp,dsize);
1148 memset((char*)nq->nvalue.cp,' ',dsize);
1152 if(!nq->nvalue.cp && nq->nvfun== &pp->childfun.fun)
1153 nq->nvalue.cp = Empty;
1267 Namval_t *nq;
1272 nq = nv_namptr(pp->nodes,i);
1273 if((dp=(Namtype_t*)nv_hasdisc(nq,&type_disc)) && dp->cp)
1274 sh_fun(dp->cp,nq, (char**)0);
1400 Namval_t *mp, *nq, *nr, *tp;
1452 nq = nv_namptr(pp->nodes,i++);
1453 nq->nvname = cp;
1454 nq->nvalue.cp = pp->data + fp->offset;
1455 nv_onattr(nq,NV_MINIMAL|NV_NOFREE);
1465 clone_all_disc(tp,nq,NV_RDONLY);
1466 nq->nvflag = tp->nvflag|NV_MINIMAL|NV_NOFREE;
1467 nq->nvsize = tp->nvsize;
1468 if(dp = (Namtype_t*)nv_hasdisc(nq,&type_disc))
1472 if(nv_hasdisc(nq,&chtype_disc))
1473 nv_disc(nq, &pp->childfun.fun, NV_LAST);
1474 sp = (char*)nq->nvalue.cp;
1479 nq = nv_namptr(pp->nodes,i++);
1480 nq->nvname = cp;
1489 nq->nvalue.cp = sp + (nr->nvalue.cp-dp->data);
1491 nq->nvflag = nr->nvflag;
1492 nq->nvsize = nr->nvsize;
1498 nv_onattr(nq,NV_NOFREE|NV_RDONLY|NV_INTEGER);
1500 nv_onattr(nq,NV_INT16P);
1502 nv_onattr(nq,NV_INT64);
1504 nv_onattr(nq,NV_UNSIGN);