xref: /original-bsd/usr.bin/ex/makeoptions (revision 50dd0bba)
1#
2# Copyright (c) 1980 Regents of the University of California.
3# All rights reserved.  The Berkeley software License Agreement
4# specifies the terms and conditions for redistribution.
5#
6#	@(#)makeoptions	6.6 (Berkeley) 06/28/90
7#
8
9#
10# remake options -- this isn't necessary unless you add/delete options
11#
12set TMP1=/tmp/_vi_vars1
13set TMP2=/tmp/_vi_vars2
14onintr ifintr
15
16cat < $argv[1] > $TMP1
17ex - $TMP1 <<'%'
18	g/^#include/d
19	w
20	q
21'%'
22shift
23cpp $* $TMP1 > $TMP2
24ex - $TMP2 <<'X'
25	" delete all preprocessor output (# line, etc)
26	g/^# /d
27	set sh=/bin/csh
28	" delete junk (all but data lines)
29	g/^[ 	]*$/d
30	1,/option options/d
31	/}/-1,$d
32	" get rid of all of line but option name
33	1,$s/[ 	]*"//
34	1,$s/".*//
35	" begin kludge since options start at 0 but cat -n starts at 1
36	"              move first to end and later move it back and renumber
37	1m$
38	%!cat -n
39	$t0
40	1s/[0-9][0-9]*/0/
41	" end kludge
42	" make #define lines
43	1,$s/[ 	]*\([0-9][0-9]*\)[ 	]*\(.*\)/#define	\U\2\L	\1/
44	" filter through expand to make it line up nice
45	%!expand -8\,24
46	" blank line and number of options.
47	$i
48
49.
50	$s/e[ 	].*[ 	]/e	NOPTS	/
51	0a
52	/*  sccs id   @(#)  ex_vars.h  @(#)makeoptions	6.6 06/28/90  */
53.
54	w! ex_vars.h
55	q
56'X'
57ifintr:
58rm $TMP1 $TMP2
59