add offsets, new fields
[unix-history] / usr / src / usr.bin / 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) %G%
#
#
# 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 %G% */
.
w! ex_vars.h
q
'X'
ifintr:
rm /tmp/foo.c