summaryrefslogtreecommitdiff
path: root/src/mkskel.sh
diff options
context:
space:
mode:
authorManoj Srivastava <srivasta@debian.org>2018-02-08 13:02:55 -0800
committerManoj Srivastava <srivasta@debian.org>2018-02-08 13:02:55 -0800
commit8852aa3f8eefeee4da27de0553b1653253b15619 (patch)
tree7e6b583ae61340aed4c30303b29d25944273b188 /src/mkskel.sh
parent355fad18841ec452fc9931ab7f1dbd93d5ebd0ca (diff)
parent7a39ce3d46f3d049ead08a455c5fcb1b37e153e3 (diff)
Merge branch 'upstream'
Update to v2.6.4 Signed-off-by: Manoj Srivastava <srivasta@debian.org>
Diffstat (limited to 'src/mkskel.sh')
-rwxr-xr-xsrc/mkskel.sh39
1 files changed, 28 insertions, 11 deletions
diff --git a/src/mkskel.sh b/src/mkskel.sh
index 02c397a..1aa59e1 100755
--- a/src/mkskel.sh
+++ b/src/mkskel.sh
@@ -21,17 +21,34 @@
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-cat <<!
-/* File created from flex.skl via mkskel.sh */
+if test ! $# = 3; then
+ echo 'Usage: mkskel.sh srcdir m4 version' >&2
+ exit 1
+fi
+echo '/* File created from flex.skl via mkskel.sh */
#include "flexdef.h"
-const char *skel[] = {
-!
-
-sed 's/\\/&&/g' | sed 's/"/\\"/g' | sed 's/.*/ "&",/'
-
-cat <<!
- 0
-};
-!
+const char *skel[] = {'
+srcdir=$1
+m4=$2
+VERSION=$3
+case $VERSION in
+ *[!0-9.]*) echo 'Invalid version number' >&2; exit 1;;
+esac
+IFS=.
+set $VERSION
+sed 's/4_/a4_/g
+s/m4preproc_/m4_/g
+' "$srcdir/flex.skl" |
+"$m4" -P -I "$srcdir" "-DFLEX_MAJOR_VERSION=$1" \
+ "-DFLEX_MINOR_VERSION=$2" \
+ "-DFLEX_SUBMINOR_VERSION=$3" |
+sed '/^%#/d
+s/m4_/m4preproc_/g
+s/a4_/4_/g
+s/[\\"]/\\&/g
+s/.*/ "&",/'
+
+echo ' 0
+};'