48 lines
964 B
Bash
48 lines
964 B
Bash
|
#!/bin/sh
|
||
|
# $NetBSD: emacs-gen.sh,v 1.4 2008/10/25 22:18:15 apb Exp $
|
||
|
|
||
|
: ${AWK:=awk}
|
||
|
: ${SED:=sed}
|
||
|
|
||
|
case $# in
|
||
|
1) file=$1;;
|
||
|
*)
|
||
|
echo "$0: Usage: $0 path-to-emacs.c" 1>&2
|
||
|
exit 1
|
||
|
esac;
|
||
|
|
||
|
if [ ! -r "$file" ] ;then
|
||
|
echo "$0: can't read $file" 1>&2
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
cat << E_O_F || exit 1
|
||
|
/*
|
||
|
* NOTE: THIS FILE WAS GENERATED AUTOMATICALLY FROM $file
|
||
|
*
|
||
|
* DO NOT BOTHER EDITING THIS FILE
|
||
|
*/
|
||
|
E_O_F
|
||
|
|
||
|
# Pass 1: print out lines before @START-FUNC-TAB@
|
||
|
# and generate defines and function declarations,
|
||
|
${SED} -e '1,/@START-FUNC-TAB@/d' -e '/@END-FUNC-TAB@/,$d' < $file |
|
||
|
${AWK} 'BEGIN { nfunc = 0; }
|
||
|
/^[ ]*#/ {
|
||
|
print $0;
|
||
|
next;
|
||
|
}
|
||
|
{
|
||
|
fname = $2;
|
||
|
c = substr(fname, length(fname), 1);
|
||
|
if (c == ",")
|
||
|
fname = substr(fname, 1, length(fname) - 1);
|
||
|
if (fname != "0") {
|
||
|
printf "#define XFUNC_%s %d\n", substr(fname, 3, length(fname) - 2), nfunc;
|
||
|
printf "static int %s ARGS((int c));\n", fname;
|
||
|
nfunc++;
|
||
|
}
|
||
|
}' || exit 1
|
||
|
|
||
|
exit 0
|