emacs-gen.sh revision 1.4
11.1Sjtc#!/bin/sh
21.4Sapb#	$NetBSD: emacs-gen.sh,v 1.4 2008/10/25 22:18:15 apb Exp $
31.3Sapb
41.3Sapb: ${AWK:=awk}
51.4Sapb: ${SED:=sed}
61.1Sjtc
71.1Sjtccase $# in
81.1Sjtc1)	file=$1;;
91.1Sjtc*)
101.1Sjtc	echo "$0: Usage: $0 path-to-emacs.c" 1>&2
111.1Sjtc	exit 1
121.1Sjtcesac;
131.1Sjtc
141.1Sjtcif [ ! -r "$file" ] ;then
151.1Sjtc	echo "$0: can't read $file" 1>&2
161.1Sjtc	exit 1
171.1Sjtcfi
181.1Sjtc
191.1Sjtccat << E_O_F || exit 1
201.1Sjtc/*
211.1Sjtc * NOTE: THIS FILE WAS GENERATED AUTOMATICALLY FROM $file
221.1Sjtc *
231.1Sjtc * DO NOT BOTHER EDITING THIS FILE
241.1Sjtc */
251.1SjtcE_O_F
261.1Sjtc
271.1Sjtc# Pass 1: print out lines before @START-FUNC-TAB@
281.1Sjtc#	  and generate defines and function declarations,
291.4Sapb${SED} -e '1,/@START-FUNC-TAB@/d' -e '/@END-FUNC-TAB@/,$d' < $file |
301.3Sapb	${AWK} 'BEGIN { nfunc = 0; }
311.1Sjtc	    /^[	 ]*#/ {
321.1Sjtc			    print $0;
331.1Sjtc			    next;
341.1Sjtc		    }
351.1Sjtc	    {
361.1Sjtc		fname = $2;
371.1Sjtc		c = substr(fname, length(fname), 1);
381.1Sjtc		if (c == ",")
391.1Sjtc			fname = substr(fname, 1, length(fname) - 1);
401.1Sjtc		if (fname != "0") {
411.1Sjtc			printf "#define XFUNC_%s %d\n", substr(fname, 3, length(fname) - 2), nfunc;
421.1Sjtc			printf "static int %s ARGS((int c));\n", fname;
431.1Sjtc			nfunc++;
441.1Sjtc		}
451.1Sjtc	    }' || exit 1
461.1Sjtc
471.1Sjtcexit 0
48