void initdollopnode(node **p, node **grbg, node *q, long len, long nodei, long *ntips, long *parens, initops whichinit, pointarray treenode, pointarray nodep, Char *str, Char *ch, char **treestr) { /* initializes a node */ /* LM 7/27 I added this function and the commented lines around */ /* treeread() to get the program running, but all 4 move programs*/ /* are improperly integrated into the v4.0 support files. As is */ /* this is a patchwork function */ boolean minusread; double valyew, divisor; switch (whichinit) { case bottom: gnutreenode(grbg, p, nodei, chars, zeros); treenode[nodei - 1] = *p; break; case nonbottom: gnutreenode(grbg, p, nodei, chars, zeros); break; case tip: match_names_to_data (str, treenode, p, spp); break; case length: /* if there is a length, read it and discard value */ processlength(&valyew, &divisor, ch, &minusread, treestr, parens); break; default: /*cases hslength,hsnolength,treewt,unittrwt,iter,*/ break; } } /* initdollopnode */
void initdrawgramnode(node **p, node **grbg, node *q, long len, long nodei, long *ntips, long *parens, initops whichinit, pointarray treenode, pointarray nodep, Char *str, Char *ch, char** treestr) { /* initializes a node */ long i; boolean minusread; double valyew, divisor; switch (whichinit) { case bottom: gnu(grbg, p); (*p)->index = nodei; (*p)->tip = false; for (i=0;i<MAXNCH;i++) (*p)->nayme[i] = '\0'; nodep[(*p)->index - 1] = (*p); break; case nonbottom: gnu(grbg, p); (*p)->index = nodei; break; case tip: (*ntips)++; gnu(grbg, p); nodep[(*ntips) - 1] = *p; setupnode(*p, *ntips); (*p)->tip = true; (*p)->naymlength = len ; strncpy ((*p)->nayme, str, MAXNCH); break; case length: processlength(&valyew, &divisor, ch, &minusread, treestr, parens); if (!minusread) (*p)->oldlen = valyew / divisor; else (*p)->oldlen = 0.0; break; case hsnolength: haslengths = false; break; default: /* cases hslength,treewt,unittrwt,iter */ break; /* should never occur */ } } /* initdrawgramnode */