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