summaryrefslogtreecommitdiff
path: root/shells/pdksh/files/emacs-gen.sh
diff options
context:
space:
mode:
Diffstat (limited to 'shells/pdksh/files/emacs-gen.sh')
-rwxr-xr-xshells/pdksh/files/emacs-gen.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/shells/pdksh/files/emacs-gen.sh b/shells/pdksh/files/emacs-gen.sh
new file mode 100755
index 00000000000..c4a148e155e
--- /dev/null
+++ b/shells/pdksh/files/emacs-gen.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+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