xref: /plan9/sys/src/cmd/troff/unansi (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1*219b2ee8SDavid du Colombier# The awk program cvt will convert the relatively sterotyped ansi c
2*219b2ee8SDavid du Colombier# in this troff distribution into older-style c, by munging function
3*219b2ee8SDavid du Colombier# declarations.
4*219b2ee8SDavid du Colombier
5*219b2ee8SDavid du Colombier# You will also have to edit fns.h, by
6*219b2ee8SDavid du Colombier#	sed 's/(.*)/()/g' fns.h >foo; mv foo fns.h
7*219b2ee8SDavid du Colombier# check this before doing the move!
8*219b2ee8SDavid du Colombier
9*219b2ee8SDavid du Colombier# you will also have to make some editing changes in
10*219b2ee8SDavid du Colombier# tdef.h in the Contab structure: s/(void)/()/
11*219b2ee8SDavid du Colombier# you may have to fix up some function declarations
12*219b2ee8SDavid du Colombier# in n4.c, the ones with (*f)(Tchar).
13*219b2ee8SDavid du Colombier
14*219b2ee8SDavid du Colombier# you will surely also have header files to deal with.
15*219b2ee8SDavid du Colombier
16*219b2ee8SDavid du Colombier# the most obvious cases are dealt with by the following
17*219b2ee8SDavid du Colombier# commands.  make sure you do this stuff on a copy!
18*219b2ee8SDavid du Colombier
19*219b2ee8SDavid du Colombier# function prototypes in n8.c probably belong in fns.h. readpats(void) must
20*219b2ee8SDavid du Colombier# be readpats() before cvt runs.
21*219b2ee8SDavid du Colombier
22*219b2ee8SDavid du Colombiersed \
23*219b2ee8SDavid du Colombier	-e 's/(void)/()/' \
24*219b2ee8SDavid du Colombier	-e 's/(Tchar[^)]*);/();/' \
25*219b2ee8SDavid du Colombier	-e 's/(char[^)]*);/();/' \
26*219b2ee8SDavid du Colombier	-e 's/(int[^)]*);/();/' \
27*219b2ee8SDavid du Colombiern8.c >foo
28*219b2ee8SDavid du Colombiermv foo n8.c
29*219b2ee8SDavid du Colombier
30*219b2ee8SDavid du Colombierfor i in *.c
31*219b2ee8SDavid du Colombierdo
32*219b2ee8SDavid du Colombier	cvt $i >foo
33*219b2ee8SDavid du Colombier	mv foo $i
34*219b2ee8SDavid du Colombierdone
35*219b2ee8SDavid du Colombier
36*219b2ee8SDavid du Colombiersed 's/(.*)/()/g' fns.h >foo
37*219b2ee8SDavid du Colombiermv foo fns.h
38*219b2ee8SDavid du Colombier
39*219b2ee8SDavid du Colombiersed -e 's/(void)/()/g' -e '/stdlib/d' tdef.h >foo
40*219b2ee8SDavid du Colombiermv foo tdef.h
41*219b2ee8SDavid du Colombier
42*219b2ee8SDavid du Colombier# Compliers may not approve of void *setbrk() in fns.h and n3.c.
43*219b2ee8SDavid du Colombier
44*219b2ee8SDavid du Colombiersed 's/^void\*[ 	]setbrk/char*	setbrk/' fns.h >foo
45*219b2ee8SDavid du Colombiermv foo fns.h
46*219b2ee8SDavid du Colombier
47*219b2ee8SDavid du Colombiersed 's/^void \*setbrk/char *setbrk/' n3.c >foo
48*219b2ee8SDavid du Colombiermv foo n3.c
49*219b2ee8SDavid du Colombier
50