| #include	"mk.h" | 
 |  | 
 | Arc * | 
 | newarc(Node *n, Rule *r, char *stem, Resub *match) | 
 | { | 
 | 	Arc *a; | 
 |  | 
 | 	a = (Arc *)Malloc(sizeof(Arc)); | 
 | 	a->n = n; | 
 | 	a->r = r; | 
 | 	a->stem = strdup(stem); | 
 | 	rcopy(a->match, match, NREGEXP); | 
 | 	a->next = 0; | 
 | 	a->flag = 0; | 
 | 	a->prog = r->prog; | 
 | 	return(a); | 
 | } | 
 |  | 
 | void | 
 | dumpa(char *s, Arc *a) | 
 | { | 
 | 	char buf[1024]; | 
 |  | 
 | 	Bprint(&bout, "%sArc@%p: n=%p r=%p flag=0x%x stem='%s'", | 
 | 		s, a, a->n, a->r, a->flag, a->stem); | 
 | 	if(a->prog) | 
 | 		Bprint(&bout, " prog='%s'", a->prog); | 
 | 	Bprint(&bout, "\n"); | 
 |  | 
 | 	if(a->n){ | 
 | 		snprint(buf, sizeof(buf), "%s    ", (*s == ' ')? s:""); | 
 | 		dumpn(buf, a->n); | 
 | 	} | 
 | } | 
 |  | 
 | void | 
 | nrep(void) | 
 | { | 
 | 	Symtab *sym; | 
 | 	Word *w; | 
 |  | 
 | 	sym = symlook("NREP", S_VAR, 0); | 
 | 	if(sym){ | 
 | 		w = sym->u.ptr; | 
 | 		if (w && w->s && *w->s) | 
 | 			nreps = atoi(w->s); | 
 | 	} | 
 | 	if(nreps < 1) | 
 | 		nreps = 1; | 
 | 	if(DEBUG(D_GRAPH)) | 
 | 		Bprint(&bout, "nreps = %d\n", nreps); | 
 | } |