# include "../hdr/defines.h"
int t_dsucc
; /* first successor (trunk) */
struct list
*t_osucc
; /* other successors */
int t_trunk
; /* != 0 is a trunk delta */
Fflags
= FTLEXIT
| FTLMSG
| FTLCLN
;
for(i
= 1; i
< argc
; i
++)
if(argv
[i
][0] == '-' && (c
=argv
[i
][1])) {
fatal("unknown key letter (cm1)");
sprintf(Error
,"value after %c arg (cm7)",c
);
fatal("key letter twice (cm2)");
fatal("missing file arg (cm3)");
for (i
= 1; i
< argc
; i
++)
register struct idel
*rdp
;
extern char had_dir
, had_standinp
;
if (gpkt
.p_verbose
&& (num_files
> 1 || had_dir
|| had_standinp
))
fprintf(gpkt
.p_stdout
,"\n%s:\n",gpkt
.p_file
);
if (dodelt(&gpkt
,&stats
,0,0) == 0)
tree
= alloc(n
= ((maxser(&gpkt
) + 1) * sizeof(struct tree
)));
pos
= alloc(n
= ((maxser(&gpkt
) + 1) * sizeof(struct position
)));
for (i
= 1; i
<= maxser(&gpkt
); i
++)
for (i
= 1; i
<= maxser(&gpkt
); i
++) {
if (rdp
[i
].i_sid
.s_br
== 0)
pos
[i
].p_width
= pos
[rdp
[i
].i_pred
].p_width
+ 1;
for (n
= i
+ 1; n
<= maxser(&gpkt
); n
++)
addsucc(i
, n
, rdp
[n
].i_sid
.s_br
);
qsort(&pos
[1], maxser(&gpkt
), sizeof(pos
[1]), poscomp
);
for (n
= 1; n
<= maxser(&gpkt
); n
++) {
sid_ba(&rdp
[pos
[n
].p_node
].i_sid
, str
);
printf("Node %d\tSid %s\tDepth %d\tWidth %d\n",
pos
[n
].p_node
, str
, pos
[n
].p_depth
, pos
[n
].p_width
);
plot(rdp
, maxser(&gpkt
));
addsucc(par
, child
, childbr
)
if (tp
->t_trunk
&& tp
->t_dsucc
== 0 && childbr
== 0)
addlist(&tp
->t_osucc
, child
);
for (p
= headp
; p
= (prev
= p
)->l_next
; )
prev
->l_next
= p
= alloc(sizeof(struct list
));
register struct list
*lp
;
pos
[node
].p_depth
= dval
;
if (lp
= tree
[node
].t_osucc
) {
while (lp
= lp
->l_next
) {
if (tree
[node
].t_dsucc
) {
traverse(tree
[node
].t_dsucc
);
register struct position
*p1
, *p2
;
if (diff
= p1
->p_depth
- p2
->p_depth
)
return(p1
->p_width
- p2
->p_width
);
register struct tree
*tp
;
register struct list
*lp
;
for (n
= maxser(&gpkt
); n
; n
--) {
printf("\t%d", tp
->t_dsucc
);
for (lp
= tp
->t_osucc
; lp
; lp
= lp
->l_next
)
printf("\t%d", lp
->l_val
);
register struct idel
*rdp
;
for (i
= 1; i
<= n
; i
++) {
sid_ba(&rdp
[node
].i_sid
, str
);
plline(x
, y
, pos
[j
].p_width
, pos
[j
].p_depth
);
for (lp
= tp
->t_osucc
; lp
; lp
= lp
->l_next
) {
plline(x
, y
, pos
[j
].p_width
, pos
[j
].p_depth
);
return(xi
* 1024 - 2047);
return(2047 - (yi
* 256));
escdodelt() /* dummy for dodelt() */