2.11BSD/src/ucb/ex/makeoptions

#
# Copyright (c) 1980 Regents of the University of California.
# All rights reserved.  The Berkeley software License Agreement
# specifies the terms and conditions for redistribution.
#
#	@(#)makeoptions	6.4 (Berkeley) 5/31/85
#

#
# remake options -- this isn't necessary unless you add/delete options
#
onintr ifintr
cat < ex_data.c > /tmp/$$.c
ex - /tmp/$$.c <<'%'
	g/^#include/d
	w
	q
'%'
cc -E $* /tmp/$$.c >/tmp/foo.c
ex - /tmp/foo.c <<'X'
	" delete all preprocessor output (# line, etc)
	g/^# /d
	set sh=/bin/csh
	" delete junk (all but data lines)
	g/^[ 	]*$/d
	1,/option options/d
	/}/-1,$d
	" get rid of all of line but option name
	1,$s/[ 	]*"//
	1,$s/".*//
	" begin kludge since options start at 0 but cat -n starts at 1
	"              move first to end and later move it back and renumber
	1m$
	%!cat -n
	$t0
	1s/[0-9][0-9]*/0/
	" end kludge
	" make #define lines
	1,$s/[ 	]*\([0-9][0-9]*\)[ 	]*\(.*\)/#define	\U\2\L	\1/
	" filter through expand to make it line up nice
	%!expand -8\,24
	" blank line and number of options.
	$i

.
	$s/e[ 	].*[ 	]/e	NOPTS	/
	0a
	/*  sccs id   @(#)  ex_vars.h  @(#)makeoptions	6.4 5/31/85  */
.
	w! ex_vars.h
	q
'X'
ifintr:
rm /tmp/foo.c