summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.mailmap50
-rw-r--r--.travis.yml24
-rw-r--r--.travis/install-automake.sh10
-rw-r--r--.travis/install-gettext.sh10
-rw-r--r--Makefile.am26
-rw-r--r--NEWS54
-rw-r--r--README.md8
-rw-r--r--configure.ac27
-rw-r--r--debian/NEWS.Debian55
-rw-r--r--debian/changelog1407
-rw-r--r--debian/clean42
-rw-r--r--debian/compat1
-rw-r--r--debian/control85
-rw-r--r--debian/copyright582
-rw-r--r--debian/flex-doc.doc-base23
-rw-r--r--debian/flex-doc.docs3
-rw-r--r--debian/flex-doc.postinst208
-rw-r--r--debian/flex-doc.postrm180
-rw-r--r--debian/flex-doc.prerm123
-rw-r--r--debian/flex.doc-base20
-rw-r--r--debian/flex.docs7
-rw-r--r--debian/flex.examples6
-rw-r--r--debian/flex.info3
-rw-r--r--debian/flex.install2
-rw-r--r--debian/flex.links3
-rw-r--r--debian/flex.manpages1
-rw-r--r--debian/flex.postinst226
-rw-r--r--debian/flex.prerm128
-rw-r--r--debian/libfl-dev.docs2
-rw-r--r--debian/libfl-dev.install2
-rw-r--r--debian/libfl2.docs2
-rw-r--r--debian/libfl2.install1
-rw-r--r--debian/libfl2.symbols3
-rwxr-xr-xdebian/rules113
-rw-r--r--debian/scan.l.md5sum1
-rw-r--r--debian/source/format1
-rw-r--r--debian/source/lintian-overrides1
-rw-r--r--debian/upstream/signing-key.asc29
-rw-r--r--debian/watch6
-rw-r--r--doc/Makefile.am2
-rw-r--r--po/LINGUAS25
-rw-r--r--po/uk.po975
-rw-r--r--src/Makefile.am4
-rw-r--r--src/buf.c4
-rw-r--r--src/ccl.c7
-rw-r--r--src/filter.c39
-rw-r--r--src/flex.skl6
-rw-r--r--src/flexdef.h13
-rw-r--r--src/gen.c42
-rw-r--r--src/gettext.h2
-rw-r--r--src/libfl.pc.in8
-rw-r--r--src/main.c28
-rw-r--r--src/misc.c49
-rwxr-xr-xsrc/mkskel.sh2
-rw-r--r--src/nfa.c2
-rw-r--r--src/options.c6
-rw-r--r--src/options.h3
-rw-r--r--src/regex.c4
-rw-r--r--src/scan.c93
-rw-r--r--src/scan.l9
-rw-r--r--src/scanopt.c105
-rw-r--r--src/tables.c8
-rw-r--r--src/tables_shared.h6
-rw-r--r--tests/Makefile.am26
-rw-r--r--tests/tableopts.am52
-rwxr-xr-xtests/tableopts.sh9
-rwxr-xr-xtests/testwrapper-direct.sh2
-rwxr-xr-xtests/testwrapper.sh2
68 files changed, 4716 insertions, 292 deletions
diff --git a/.mailmap b/.mailmap
new file mode 100644
index 0000000..b8d6b30
--- /dev/null
+++ b/.mailmap
@@ -0,0 +1,50 @@
+Aaron Stone <sodabrew@users.sourceforge.net>
+Akim Demaille <akim@lrde.epita.fr>
+Alastair Hughes <hobbitalastair@gmail.com>
+Alex Kennedy <alexzanderkennedy@gmail.com>
+Alexis La Goutte <alexis.lagoutte@gmail.com>
+Bastian Köcher <git@kchr.de>
+Christoph Junghans <ottxor@gentoo.org>
+Christos Zoulas <christos@zoulas.com>
+Cyril Brulebois <kibi@debian.org>
+Demi Obenour <demiobenour@gmail.com>
+Dennis Clarke <dclarke@blastwave.org>
+Egor Pugin <egor.pugin@gmail.com>
+Elias Pipping <pipping@users.sourceforge.net>
+Explorer09 <explorer09@gmail.com>
+Hans-Bernhard Broeker <HBBroeker@T-Online.de>
+Harald van Dijk <harald@gigawatt.nl>
+Hugh Sasse <hgs@dmu.ac.uk>
+Jaska Uimonen <jaska.uimonen@helsinki.fi>
+Jeff Smith <whydoubt@gmail.com>
+John Millaway <john43@users.sourceforge.net>
+Manoj Srivastava <srivasta@golden-gryphon.com>
+Mariusz Pluciński <mplucinski@mplucinski.com>
+Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
+Michael McConville <mmcconville@mykolab.com> <mmcco@mykolab.com>
+Michael Reed <m.reed@mykolab.com>
+Michael van Elst <mlelstv@NetBSD.org>
+Mightyjo <mightyjo@gmail.com>
+Mike Frysinger <vapier@gentoo.org>
+OBATA Akio <obache@NetBSD.org>
+Robert Larice <Robert.Larice@t-online.de> rlar <rlar>
+Robert Larice <Robert.Larice@t-online.de> Robert.Larice Robert Larice <Robert.Larice@t-online.de>
+Robert Minsk <rminsk@users.sourceforge.net>
+Samuel Thibault <samuel.thibault@ens-lyon.org>
+Sean McBride <sean@rogue-research.com>
+Serguey Parkhomovsky <sergueyparkhomovsky@gmail.com> <xindigo@gmail.com>
+Simon Sobisch <simonsobisch@web.de>
+Stefan Reinauer <stefan.reinauer@coreboot.org>
+Thomas Klausner <wiz@NetBSD.org>
+Till Varoquaux <till.varoquaux@gmail.com>
+Tobias Klauser <tklauser@distanz.ch>
+Todd C. Miller <Todd.Miller@courtesan.com>
+Translation Project <coordinator@translationproject.org> <coordinators@translationproject.org>
+Translation Project <coordinator@translationproject.org> <translation@translationproject.org>
+Vern Paxson <vern@ee.lbl.gov>
+Will Estes <westes575@gmail.com> <wlestes@users.sourceforge.net>
+Yuri <yuri@tsoft.com>
+luistung <dongliang1986@gmail.com>
+lukeallardyce <lukeallardyce@users.sourceforge.net>
+nomis52 <nomis52@users.sourceforge.net>
+viktor.shepel <shepelvictor@bigmir.net>
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..09cb041
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,24 @@
+language: c
+
+compiler:
+ - gcc
+
+addons:
+ apt:
+ sources:
+ - ubuntu-toolchain-r-test
+ packages:
+ - autoconf
+ - bison
+ - gcc-6
+ - help2man
+ - lzip
+ - texinfo
+ - texlive
+
+before_script:
+ - ./.travis/install-gettext.sh
+ - ./.travis/install-automake.sh
+ - export PATH=$HOME/bin:$PATH
+
+script: ./autogen.sh && ./configure && make && make check && make distcheck
diff --git a/.travis/install-automake.sh b/.travis/install-automake.sh
new file mode 100644
index 0000000..8de30b5
--- /dev/null
+++ b/.travis/install-automake.sh
@@ -0,0 +1,10 @@
+#!/bin/bash -ex
+
+wget -nv https://ftp.gnu.org/gnu/automake/automake-1.15.1.tar.gz{,.sig}
+gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 94604D37
+gpg2 automake-1.15.1.tar.gz.sig
+tar xf automake-1.15.1.tar.gz
+cd automake-1.15.1
+./configure --prefix=$HOME
+make
+make install
diff --git a/.travis/install-gettext.sh b/.travis/install-gettext.sh
new file mode 100644
index 0000000..ffa8652
--- /dev/null
+++ b/.travis/install-gettext.sh
@@ -0,0 +1,10 @@
+#!/bin/bash -ex
+
+wget -nv https://ftp.gnu.org/gnu/gettext/gettext-0.19.8.1.tar.lz{,.sig}
+gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D7E69871
+gpg2 gettext-0.19.8.1.tar.lz.sig
+tar xf gettext-0.19.8.1.tar.lz
+cd gettext-0.19.8.1
+./configure --prefix=$HOME
+make
+make install
diff --git a/Makefile.am b/Makefile.am
index 638c549..b3b0810 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -49,6 +49,29 @@ SUBDIRS = \
tests \
tools
+# Convenience targets to build libfl only
+# These are actually wrappers around automake- and libtool-generated targets
+
+libfl:
+ cd src && $(MAKE) $(AM_MAKEFLAGS) libfl.la libfl.pc
+
+install-libfl:
+ cd src && \
+ $(MAKE) $(AM_MAKEFLAGS) lib_LTLIBRARIES=libfl.la \
+ pkgconfig_DATA=libfl.pc install-libLTLIBRARIES install-pkgconfigDATA
+
+uninstall-libfl:
+ cd src && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ lib_LTLIBRARIES=libfl.la pkgconfig_DATA=libfl.pc \
+ uninstall-libLTLIBRARIES uninstall-pkgconfigDATA
+
+# libfl.pc is cleaned via 'distclean' target
+clean-libfl:
+ cd src && \
+ $(MAKE) $(AM_MAKEFLAGS) lib_LTLIBRARIES=libfl.la clean-libLTLIBRARIES \
+ clean-libtool
+
# Create the ChangeLog, but only if we're inside a git working directory
ChangeLog: $(srcdir)/tools/git2cl
@@ -63,4 +86,5 @@ install-exec-hook:
cd $(DESTDIR)$(bindir) && \
$(LN_S) -f flex$(EXEEXT) flex++$(EXEEXT)
-.PHONY: ChangeLog indent
+.PHONY: libfl install-libfl uninstall-libfl clean-libfl \
+ ChangeLog indent
diff --git a/NEWS b/NEWS
index 85d900b..2a8c897 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,59 @@
flex NEWS
+* Noteworthy changes in release ?.? (????-??-??) [?]
+
+** build
+
+*** Flex now includes its own <config.h> header before including
+ system headers so that any system specific features detected by
+ configure are taken into account during compilation of flex
+ itself.
+
+*** The flex build system now includes Makefile targets at the top
+ level to allow just building and installing libfl.
+
+*** The flex distribution now includes a file, src/libfl.pc, to allow
+ using pkgconfig to find out what flags to use when building
+ against libfl from flex.
+
+*** Various edge cases, mostly involving out-of-tree builds have been
+ accounted for in the autotools build system.
+
+*** A crash during building on NetBSD has been fixed.
+
+*** Flex is now automatically built by travis-ci. That should increase
+ the visibility of bugs and help prevent regressions.
+
+** documentation
+
+*** a new Ukrainian translation has been submitted from the Translation Project.
+
+** scanner
+
+*** Some memory leaks have been fixed.
+
+*** A long standing bug that effected expressions of the form c{i,j}
+ where 'c' is a character and {i,j} describes the number of times
+ to match against 'c' when case sensitivity was turned on has been
+ fixed.
+
+*** New option: --backup-file allows setting the name of the file
+ written containing backing up information. Useful if you need
+ backing up information from multiple scanners in the same
+ directory.
+
+*** flex emits correct line number directives when line numbers refer
+ to the file containing the line number directives.
+
+*** The options {no,}yy{get,set}_column are now supported.
+
+** test
+
+*** Generating the various tableoptions make rules is now more portable.
+
+*** Tests of the options -C*f and -C*F will now run correctly on
+ filesystems that are not case sensitive.
+
* Noteworthy changes in release 2.6.4 (2017-05-06) [stable]
** build
diff --git a/README.md b/README.md
index b979b01..b388c07 100644
--- a/README.md
+++ b/README.md
@@ -33,7 +33,7 @@ interest:
* COPYING - flex's copyright and license.
* doc/ - user documentation.
* examples/ - containing examples of some possible flex scanners and a
- few other things. See the file examples/README for more
+ few other things. See the file examples/README for more
details.
* tests/ - regression tests. See TESTS/README for details.
* po/ - internationalization support files.
@@ -43,7 +43,7 @@ repository:
* compiler suite - flex is built with gcc
* bash, or a good Bourne-style shell
-* m4 - m4 -p needs to work; GNU m4 and a few others are suitable
+* m4 - `m4 -P` needs to work; GNU m4 and a few others are suitable
* GNU bison; to generate parse.c from parse.y
* autoconf; for handling the build system
* automake; for Makefile generation
@@ -74,12 +74,14 @@ in the top level of the flex source tree.
This script calls the various tools needed to get flex ready for the
GNU-style configure script to be able to work.
-From this point on, building flex follows the usual routine:
+From this point on, building flex follows the usual routine:
```bash
configure && make && make install
```
+---
+
This file is part of flex.
This code is derived from software contributed to Berkeley by
diff --git a/configure.ac b/configure.ac
index 55e774b..5da1844 100644
--- a/configure.ac
+++ b/configure.ac
@@ -25,10 +25,12 @@
# autoconf requirements and initialization
AC_INIT([the fast lexical analyser generator],[2.6.4],[flex-help@lists.sourceforge.net],[flex])
+AC_PREREQ([2.60])
AC_CONFIG_SRCDIR([src/scan.l])
AC_CONFIG_AUX_DIR([build-aux])
+AC_USE_SYSTEM_EXTENSIONS
LT_INIT
-AM_INIT_AUTOMAKE([1.11.3 -Wno-portability foreign check-news std-options dist-lzip parallel-tests subdir-objects])
+AM_INIT_AUTOMAKE([1.15 -Wno-portability foreign std-options dist-lzip parallel-tests subdir-objects])
AC_CONFIG_HEADER([src/config.h])
AC_CONFIG_LIBOBJ_DIR([lib])
AC_CONFIG_MACRO_DIR([m4])
@@ -38,7 +40,7 @@ AC_SUBST(SHARED_VERSION_INFO)
# checks for programs
AM_GNU_GETTEXT([external])
-AM_GNU_GETTEXT_VERSION([0.18])
+AM_GNU_GETTEXT_VERSION([0.19.7])
AC_PROG_YACC
AS_IF([test "$YACC" != 'bison -y'], [
YACC="\${top_srcdir}/build-aux/missing bison -y"
@@ -54,6 +56,9 @@ AC_PROG_LN_S
AC_PROG_AWK
AC_PROG_INSTALL
+pkgconfigdir=${libdir}/pkgconfig
+AC_SUBST(pkgconfigdir)
+
# allow passing a variable `WARNINGFLAGS',
# either when invoking `configure', or when invoking `make'
# default to something useful if GCC was detected
@@ -87,12 +92,25 @@ AC_PATH_PROG([HELP2MAN], help2man, [\${top_srcdir}/build-aux/missing help2man])
AS_IF([test "$HELP2MAN" = "\${top_srcdir}/build-aux/missing help2man"],
AC_MSG_WARN(help2man: program not found: building man page will not work)
)
+if test "$cross_compiling" = yes; then
+ FLEXexe='flex$(EXEEXT)'
+else
+ FLEXexe='$(top_builddir)/flex$(EXEEXT)'
+fi
+AC_SUBST(FLEXexe)
AC_PATH_PROGS([TEXI2DVI], [gtexi2dvi texi2dvi], [\${top_srcdir}/build-aux/missing texi2dvi])
AS_IF([test "$TEXI2DVI" = "\${top_srcdir}/build-aux/missing texi2dvi"],
AC_MSG_WARN(texi2dvi: program not found: building pdf version of manual will not work)
)
+if test "$cross_compiling" = yes; then
+FLEXexe='flex$(EXEEXT)'
+else
+FLEXexe='$(top_builddir)/src/flex$(EXEEXT)'
+fi
+AC_SUBST(FLEXexe)
+
# Check for a m4 that supports -P
AC_CACHE_CHECK([for m4 that supports -P], [ac_cv_path_M4],
@@ -166,9 +184,13 @@ strtol dnl
AC_CHECK_FUNCS([dnl
pow dnl Used only by "examples/manual/expr"
setlocale dnl Needed only if NLS is enabled
+reallocarr dnl NetBSD function. Use reallocarray if not available.
reallocarray dnl OpenBSD function. We have replacement if not available.
])
+# are we ignoring tests
+AM_CONDITIONAL([SKIP_TEST], [ "$(echo $DEB_BUILD_OPTIONS | grep nocheck)" ])
+
AC_CONFIG_FILES(
Makefile
doc/Makefile
@@ -176,6 +198,7 @@ examples/Makefile
examples/fastwc/Makefile
examples/manual/Makefile
po/Makefile.in
+src/libfl.pc
src/Makefile
tools/Makefile
tests/Makefile
diff --git a/debian/NEWS.Debian b/debian/NEWS.Debian
new file mode 100644
index 0000000..6e9492b
--- /dev/null
+++ b/debian/NEWS.Debian
@@ -0,0 +1,55 @@
+flex (2.6.1-1.1) unstable; urgency=medium
+
+ In this upload, the flex package drops its dependency on libfl-dev, because
+ it is impossible to forward the correct architecture constraint. It contains
+ the FlexLexer.h header and is thus required for using the FlexLexer C++
+ interface. Packages using this library need to add libfl-dev to their
+ Build-Depends.
+
+ -- Helmut Grohne <helmut@subdivi.de> Wed, 23 Nov 2016 13:18:32 +0100
+
+flex (2.5.33-7) unstable; urgency=low
+
+ This version of Flex is a major upgrade from previous versions. There
+ have been extensive changes. These changes require source changes in
+ lex input files. The new direction flex is taking is to incorporate
+ new functionality at the expense of POSIX or backward
+ compatibility. This can also be considered part of the gcc migration
+ process; flex has been updated (the buggy, rickety set of patches
+ required to make it work with gcc was dumped in favour of a well
+ engineered upstream migration).
+
+ Flex scanners are now reenterant, you may have multiple scanners in
+ the same program with differing sets of defaults, and they play
+ nicer with modern C and C++ compilers. C++ scanners are compatible
+ with recent c++ compilers (conform to ANSI C++, gcc 3.2), supports
+ bison variables yylval and yylloc. Some variables have been
+ renamed. Flex generates C99 defs now, see YY_TRADITIONAL_FUNC_DEFS.
+ yylineno is present in all scanners. yylineno is per-buffer in
+ reentrant scanners. Flex tries its best to output only the relevant
+ portions of the skeleton when generating a scanner, thus avoiding as
+ much conditional compilation as possible
+
+ The signature of all functions has changed. flex has new command line
+ options, and option parsing has changed (now also supports POSIX
+ conventions optionally). Handles POSIXLY_CORRECT environment
+ variable. Various i18n translations are included in the
+ distribution. Flex now works with recent bison versions. The new
+ scanners do not polllute the global name space, and thus macros that
+ used to be available to user code are no longer present.
+
+ Flex has gained an extensive new test suite run at build time to test
+ for regressions. The flip side is that Flex no longer conforms to the POSIX lex
+ behaviour, and the scanners require conforming implementations when
+ flex is used in ANSI C mode. Flex has broken backwards
+ compatibility. This is not a bug, but done deliberately, by
+ design.
+
+ The package flex-old provides the same behaviour as version 2.5.4a of
+ Flex.
+
+ Please make sure you are prepared for these changes in Flex
+ before continuing with its upgrade.
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 31 Oct 2003 21:53:16 -0600
+
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..a99d649
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,1407 @@
+flex (2.6.4-6.2) unstable; urgency=medium
+
+ * Non-maintainer upload.
+
+ [ Ruben Undheim ]
+ * debian/rules:
+ - Fix build with "dpkg-buildpackage -A" by checking if directory exists
+ first (Closes: #898725)
+
+ [ Niels Thykier ]
+ * debian/control:
+ - Set Rules-Requires-Root (R³) to no as flex does not need/require
+ (fake)root during package build.
+
+ -- Niels Thykier <niels@thykier.net> Mon, 06 Aug 2018 19:40:25 +0000
+
+flex (2.6.4-6.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Bug fix: "removal of libfl2 makes files disappear from libfl-dev" (Closes:
+ #891525), add missing Breaks to match the list of packages in the Replaces
+ field and remove flex-old Breaks, that package never contained a shared
+ library.
+
+ -- Laurent Bigonville <bigon@debian.org> Mon, 23 Apr 2018 11:53:14 +0200
+
+flex (2.6.4-6) unstable; urgency=medium
+
+ * Rolled back the feature test POSIX_C_SOURCE changes.
+ * Bug fix: "libfl-dev lost libl.a symlink", thanks to Bas Couwenberg
+ (Closes: #890608). Made sure the link actually did make it to the
+ .deb
+ * Bug fix: "Incomplete debian/copyright?", thanks to Chris Lamb (Closes:
+ #890714). Updated copyright using automation tools
+ * Bug fix: "missing dependency on libfl2", thanks to Sven Joachim
+ (Closes: #890743). Updated contreol
+ * Bug fix: "all amd64 binaries since 2.6.4-1 built with stale skel.c
+ file", thanks to James Cowgill (Closes: #890703).
+
+ -- Manoj Srivastava <srivasta@debian.org> Wed, 21 Feb 2018 15:25:10 -0800
+
+flex (2.6.4-5) unstable; urgency=medium
+
+ * Added a new libfl2 package.
+ * Bug fix: "libfl-dev lost libl.a symlink", thanks to Bas Couwenberg
+ (Closes: #890608).
+ * Bug fix: "libfl-dev ships shared library", thanks to Adrian Bunk
+ (Closes: #890599).
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 16 Feb 2018 14:41:08 -0800
+
+flex (2.6.4-4) unstable; urgency=medium
+
+ * remove .la file from flex; fixed FTBS for PAM
+ * Bug fix: "backported commit causes FTBFS (and potentially
+ miscompilation) of generated files", thanks to Adrian Bunk (Closes:
+ #890411).
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 16 Feb 2018 12:45:26 -0800
+
+flex (2.6.4-3) unstable; urgency=medium
+
+ * Bug fix: "Debian-specific libfl.so linker script causes FTBFS", thanks
+ to Adrian Bunk (Closes: #890415).
+ * Bug fix: "Does not provide suitable libfl.a for PIEs", thanks to James
+ Clarke. I undertand that gcc now builds with PIE (Closes: #870769).
+ * Bug fix: "libfl_pic.a is not compiled with -fPIC", thanks to Balint
+ Reczey. We no longer provide that library. (Closes: #837658).
+ * Bug fix: "Type of yy_n_chars changed to yy_size_t by authors cause bug
+ in YY_INPUT macro where result argument is tested if &lt; 0; thanks to
+ gcc&#39;s -Werror=type-limits", thanks to calculus@rezozer.net</a>;
+ the change has been reverted in the new upstream. (Closes: #770161).
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 15 Feb 2018 12:14:50 -0800
+
+flex (2.6.4-2) unstable; urgency=medium
+
+ * Added get-orig-source target, and updated the watch file
+ * Bug fix: "flex FTCBFS: executes host architectue stage1flex during
+ build", thanks to Helmut Grohne (Closes: #833146). This reinstates
+ Helmut's original fix. There was a question about not using help2man
+ in the first place. I considered it; but upstream continues to use
+ help2man, including it in autoconf. I think Helmut's fix is elegant,
+ and saves work as flex's options change over time, and is a smaller
+ delta from upstream.
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 13 Feb 2018 15:25:11 -0800
+
+flex (2.6.4-1) unstable; urgency=medium
+
+ * New upstream version. Notable changes
+ + a segfalt involving yyrestart(NULL) has been fixed
+ + flex should now handle quoting when mixed with m4 processing correctly
+ + flex handles `[[' and `]]' correctly
+ + flex no longer generates non-ANSI code
+ + more compilation warnings were squashed in generated scanners
+ + prevented a buffer overflow that could occur when input buffers were
+ the exact wrong size
+ + several bug fixes resolved problems introduced in recent flex
+ versions regarding processing of comments, literals and various
+ quoting scenarios.
+ + If the path to m4 was sufficiently long, a buffer overflow could
+ occur. This has been resolved. The fix also removes dependence on
+ the constant PATH_MAX.
+ + Some minor performance enhancements.
+ + We honor user defined yy_* macros again. We are also more careful
+ to not leak macro definitions into header files.
+ + A number of portability fixes were introduced so building flex is
+ more reliable on more platforms. Additionally, outdated function
+ calls were removed.
+ + When building the flex executable itself, %# comments from
+ flex.skl are removed when generating the C source code array. This
+ reduces the size of flex.
+ + Flex can be cross compiled.
+ * Bug fix: "comparison between signed and unsigned integer expressions",
+ thanks to Frank Heckenbach. This should be fixed now. (Closes: #835542).
+ * Bug fix: "Please update homepage in package description", thanks to
+ Tim Ruehsen (Closes: #851675).
+ * Bug fix: "Should Suggest: flex-doc", thanks to Yuri D&#39;Elia
+ (Closes: #856956).
+ * Stole some commits from 2.6.5 to fix FTBS issues in 2.6.4 release.
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 12 Feb 2018 11:19:29 -0800
+
+flex (2.6.1-1.3) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix FTBFS on hurd (upstream 7975c43384d766ca12cb3f292754dbdc34168886).
+ (Closes: 838133).
+
+ -- Christoph Berg <myon@debian.org> Wed, 04 Jan 2017 19:53:51 +0100
+
+flex (2.6.1-1.2) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Cherry-pick 1da19feba7c957e0f0af0c3eeadc29e8c82b0ca3,
+ cf4121fa97abac8aeaa5e08b8fc0b2380228494e and
+ 8c098febc9a599397921e9b6938b7fb85e38cc7e from upstream to fix comparison
+ between signed and unsigned integer expressions in generated lexer
+ (Closes: #835542).
+ * Fix distribution in last upload's NEWS.Debian.
+
+ -- Christoph Berg <myon@debian.org> Fri, 30 Dec 2016 20:29:41 +0100
+
+flex (2.6.1-1.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Demote flex dependency on libfl-dev to Recommends.
+ * Have libfl-dev depend on flex to enforce the same-version constraint.
+ * Annotate flex Multi-Arch: foreign again (Closes: #840080).
+
+ -- Helmut Grohne <helmut@subdivi.de> Thu, 24 Nov 2016 07:34:27 +0100
+
+flex (2.6.1-1) unstable; urgency=low
+
+ * New upstream version. The development of flex ias transitionaing to
+ github; updated the watch file.
+ * Bug fix: "CVE-2016-6354: buffer overflow in generated code
+ (yy_get_next_buffer)", thanks to Salvatore Bonaccorso. The latest
+ upstream has this bug fixed. (Closes: #832768).
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 29 Jul 2016 18:07:24 -0700
+
+flex (2.6.0-11) unstable; urgency=low
+
+ * Cherry pick fix from upstream.
+ * Bug fix: "n_alloc has wrong value in buf_append function", thanks to
+ Howard Gong (Closes: #761250).
+ * Bug fix: "Type of yy_n_chars changed to yy_size_t by authors cause bug
+ in YY_INPUT macro where result argument is tested if &lt; 0; thanks to
+ gcc&#39;s -Werror=type-limits", thanks to Michal Fita (Closes:
+ #770161).
+
+ -- Manoj Srivastava <srivasta@debian.org> Wed, 24 Feb 2016 17:43:41 -0800
+
+flex (2.6.0-10) unstable; urgency=low
+
+ * Cherry pick fix from upstream.
+ * Bug fix: "%option noline generates and error message", thanks to
+ Arthur Schwarz (Closes: #729693).
+ * Bug fix: "flex --noline outputs a #line directive", thanks to Arthur
+ Schwarz (Closes: #729927).
+
+ -- Manoj Srivastava <srivasta@debian.org> Wed, 24 Feb 2016 14:56:50 -0800
+
+flex (2.6.0-9) unstable; urgency=low
+
+ * Updated standards version to 3.9.7. No changes needed.
+ * Bug fix: "[src:flex] FTCBFS: runs host arch binaries during build",
+ thanks to Helmut Grohne. Make the tests use either the installed flex
+ or the newly built flex to generate test soureces, depending on
+ whether or not we are cross compiling. Also added a build depends flex <cross>
+ Hope this works. This has not broken the common case. (Closes: #762180).
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 18 Feb 2016 12:26:17 -0800
+
+flex (2.6.0-8) unstable; urgency=low
+
+ * Bug fix: "flex FTCBFS: runs tests even when DEB_BUILD_OPTIONS contains
+ nocheck", thanks to Helmut Grohne. Added an AM_CONDITIONAL that tests
+ DEB_BUILD_OPTIONS in configure.ac, and use that in
+ tests/Makefile.am. Seems to work fine. (Closes: #812659).
+ * Bug fix: "runs host arch binaries during build via help2man", thanks
+ to Helmut Grohne. The change from the previous patch is that the flex
+ binary now is created in ./src/ (Closes: #762180).
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 16 Feb 2016 21:55:51 -0800
+
+flex (2.6.0-7) unstable; urgency=low
+
+ * Bug fix: "C++ style comment in C output", thanks to Tim Rühsen
+ So, when we applied the upstream patch, it only fixed the skeleton
+ file, flex.skl, and not the generated files skel.c and scan.c;. Added
+ a feature branch that fixes the generated files, the need for this
+ will go away with the next upstream release. I hope. For what it is
+ worth, the diff in upstream seems to be the same one that was in the
+ NMU; and I have no explanations for why the -6 would behave diferently
+ from the NMU. (Closes: #813256).
+
+ -- Manoj Srivastava <srivasta@debian.org> Sat, 13 Feb 2016 19:21:11 -0800
+
+flex (2.6.0-6) unstable; urgency=low
+
+ * Back out the changes made to the experimental branch
+ * Set the libfl-dev package to be MA: same
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 09 Feb 2016 19:46:02 -0800
+
+flex (2.6.0-5) experimental; urgency=low
+
+ * First cut at correcting multi-arch support. flex is MA: foreign, and
+ libfl-dev is MA: same. flex no longer automatically pulls in
+ libfl-dev, so at the very least packages using C++ lexers will need to
+ pull in libfl-dev in build depends.
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 08 Feb 2016 08:26:24 -0800
+
+flex (2.6.0-4) unstable; urgency=low
+ * Bug fix: "C++ style comment in C output", thanks to Tim Rühsen
+ There is a fix uploaded to deferred by Salvatore Bonaccorso
+ <carnil@debian.org>. I am uploading this fix instead, since this
+ variant has the same fix applied by a signed cherry pick from
+ upstream, which will make the upgrade to the next version somewhat
+ simpler. (Closes: #813256).
+ * Bug fix: "wrongly declares Multi-Arch:foreign", thanks to Helmut
+ Grohne. While we discuss the correct solution for this, I have removed
+ the MA package tags. I am not quite happy with the proposed solution
+ (swapping names of the packages seems icky, but I'll defer to the
+ experts if there is no better way) (Closes: #761449).
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 05 Feb 2016 15:41:03 -0800
+
+flex (2.6.0-3) unstable; urgency=high
+ * Revert the help2man fix; it was creating errors in the diff.gz
+ file. We are now back to being mostly in sync with upstream.
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 25 Jan 2016 18:12:03 -0800
+
+flex (2.6.0-2) unstable; urgency=low
+
+ * Revert "[fix-off-by-one-error]: generatred line numbers are off by
+ one". This brings us in line with upstream; and our fix was not
+ working anyway. Unfortunately, this still does not resolve #729927.
+ * Bug fix: "runs host arch binaries during build via help2man", thanks
+ to Helmut Grohne (Closes: #762180).
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 25 Jan 2016 16:49:34 -0800
+
+flex (2.6.0-1) unstable; urgency=low
+
+ * New upstream version i
+ * Updated Standards version to 3.9.6. No changes needed.
+ * Updated the VCS-Git field of the control file to use HTTPS transport
+ * Updated the copyright file to DEP-5 format.
+ * Reverted to source format 1.0 , and use dgit
+
+ -- Manoj Srivastava <srivasta@debian.org> Sat, 23 Jan 2016 20:11:32 -0800
+
+flex (2.5.39-8) unstable; urgency=low
+
+ * Added a missing build depends on vm-super-minimal, reuired fro
+ building the pdf documentation, (Closes: #752151).
+ * Move flex.pdf to the flex-doc package. This makes it possible for the
+ flex package's contents to not change if texinfo is not installed,
+ e.g. in the stage1 build profile. Thanks to Peter Pentchev
+ <roam@ringlet.net>
+ * Move the flex-doc build dependencies to B-D-I. Move the TeX Live
+ dependencies to Build-Depends-Indep and only build the HTML and PDF
+ documentation if actually requested. This breaks a circular build
+ dependency by not requiring texlive for the build of the
+ arch-dependent flex binary packages. (Closes: #749344).
+ * Bug fix #752151: "pdfetex error about missing cm-super", thanks to
+ Helmut Grohne and Cyril Brulebois
+ * Bug fix: #749344" Allow bootstrapping without texlive and
+ dh-autoreconf", thanks to Peter Pentchev
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 20 Jun 2014 20:58:31 -0700
+
+flex (2.5.39-7) unstable; urgency=low
+
+ * dh-autoreconf already depends on all the autotools that it will
+ attempt to use to rebuild the package's build framework, so remove the
+ direct (and redundant) dependencies on the autotools
+ packages. Suggestion by Peter Pentchev (Closes: #749341).
+ * The patch also cleaned up the creation of examples and links for man
+ pages.
+ * Bug fix #749341: "Drop the autotools build dependencies, dh-autoreconf
+ is sufficient", thanks to Peter Pentchev
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 26 May 2014 18:12:36 -0700
+
+flex (2.5.39-6) unstable; urgency=low
+
+ * The code that is generated by flex has an off-by-one error in the
+ generated #line pragmas that occur after the second %% line in the
+ source file. Marcus Rausch supplied the patch that fixes it.
+ (Closes: #542482).
+ * Bug fix #542482: "Off-by-one error in line statements", thanks to
+ Wouter Verhelst
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 06 May 2014 23:57:31 -0700
+
+flex (2.5.39-5) unstable; urgency=low
+
+ * Adapted patch from Matthias Klose to add pre-seeding of autoconf
+ values as paramaters, fixing cross builds. flex uses runtime checks
+ for configure tests, and preseeding allows cross build to succeed,
+ * Bug fix: "fix cross build", thanks to Matthias Klose. Applied fix
+ manually (Closes: #746172).
+
+ -- Manoj Srivastava <srivasta@debian.org> Sun, 27 Apr 2014 15:55:36 -0700
+
+flex (2.5.39-4) unstable; urgency=low
+
+ * Bug fix: "Flex 2.5.39-3 has a typo in installman", thanks to
+ Gianfranco Costamagna. over -> over (Closes: #745228).
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 25 Apr 2014 23:37:29 -0700
+
+flex (2.5.39-3) unstable; urgency=medium
+
+ * Move libl.a from flex to libfl-dev, for real
+ * install link manually for libfl-dev alone, cleaning up the rules file
+ in the process.
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 17 Apr 2014 12:45:38 -0700
+
+flex (2.5.39-2) unstable; urgency=low
+
+ * New bug fixing release
+ * Bug fix: "typo in README.Debian: libfla_pic.a -&gt; libfl_pic.a",
+ thanks to Jakub Wilk (Closes: #744853).
+ * Bug fix: "libfl-dev and flex-old: error when trying to install
+ together", thanks to Ralf Treinen. The package libfl-dev needs to
+ replace and Break the flex-old package too, (Closes: #744833).
+ * Bug fix: "redundant redeclaration of ‘isatty’", thanks to Ludovic
+ Rousseau. This duplication was removed in the last upstream release.
+ (Closes: #488274).
+ * Bug fix: "flex-2.5.35 bug", thanks to Yuriy Z. scan.c now declares n
+ as size_t, in the new upstream version. (Closes: #633008).
+ * Bug fix: "make check failure", thanks to Sayre, Alan N. The new
+ version of flex does succeed in running make check (it would not build
+ otherwise) (Closes: #632095).
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 17 Apr 2014 02:15:10 -0700
+
+
+flex (2.5.39-1) unstable; urgency=medium
+
+ * New upstream release
+ * internationalization: added support for various languages. Fix make
+ install target to not fail when the flex++ program is already
+ installed. various portability fixes that quiet compiler warnings on
+ 64-bit hosts. numerous bug fixes.
+ * Moved to a new dh based build system. Also moved to a 3.0 source
+ format, using debcherry.
+ * Bug fix: "cross build support", thanks to Eleanor Chen. We have moved
+ to a standard dh based build, so we should not have this issue any more.
+ (Closes: #719955).
+ * Bug fix: "examples not included into binary packages", thanks to Carl
+ Fürstenberg. Examples are in this version. (Closes: #560387).
+ * Bug fix: "new upstream release 2.5.37", thanks to Peter Eisentraut
+ (Closes: #729759).
+ * Bug fix: "flex, new release available for download", thanks to
+ Gianfranco Costamagna (Closes: #736345).
+ * Bug fix: "please mark flex as Multi-Arch: allowed", thanks to Steve
+ Langasek. Redid the patch to work with dh. (Closes: #611230).
+ * Updating to a new build system means that the changes made to the
+ build system in the NMU are not needed, dh does the right thing.
+ * The new upstream release added the prototypes in re-entrant mode, so
+ we are no longer carrying those patches.
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 10 Apr 2014 18:06:12 -0700
+
+flex (2.5.35-10.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Use dpkg-buildflags to enable hardened build flags.
+ Thanks to Moritz Muehlenhoff <jmm@debian.org>. (Closes: #655414)
+ * Add prototypes for yy_[gs]etcolumn in re-entrant mode, taken from Fedora.
+ Thanks to Daniel Stone <daniel@fooishbar.org>. (Closes: #667027)
+
+ -- Guillem Jover <guillem@debian.org> Sat, 30 Jun 2012 17:03:27 +0200
+
+flex (2.5.35-10) unstable; urgency=low
+
+ * Bug fix: "flex is not GNU flex", thanks to Santiago Vila
+ (Closes: #576413).
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 19 Jul 2010 14:03:19 -0700
+
+flex (2.5.35-9.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * debian/control: add autopoint to build-deps, drop cvs (Closes: #572468).
+
+ -- Kees Cook <kees@debian.org> Sun, 20 Jun 2010 14:17:14 -0700
+
+flex (2.5.35-9) unstable; urgency=low
+
+ * Update handling of lintian overrides.
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 30 Oct 2009 14:52:46 -0500
+
+flex (2.5.35-8) unstable; urgency=low
+
+ * Update package to conform to policy.
+ * [56a9f0b]: [flex]: Info files are now installed using a trigger
+ Add dependencies to that is happens automatically.
+
+ -- Manoj Srivastava <srivasta@debian.org> Sun, 16 Aug 2009 15:51:33 -0500
+
+flex (2.5.35-7) unstable; urgency=low
+
+ * [e12dee9]: [topic--autoconf-files] Delete files create by autoconf
+ * [d32c587]: [debiandir]: Regenerate autoconf files during
+ configuration Upstream has versions of autoconf files that are stuck
+ at the time of release. As newer versions of autoconf come out, and
+ these nerw versions support more architectures, porting to them
+ becomes harder if the package uses the now obsolete versionsof the
+ files. Flex packaging now begins to reate autoconf and automake as
+ real toolchain components, and re-creates the autoconf files at
+ build time, and removes them while cleaning up. This should help out
+ peopole on newly supported platforms.
+ * [0999f25]: [gcc-4-4-include-fix] Add missing #include cstdio for gcc-4.4
+ GCC 4.4 has cleaned up some more C++ headers. You always have to
+ include headers directly, and cannot depend on things to be included
+ indirectly. Bug fix: "produces c++ code with missing include cstdio",
+ thanks to Martin Michlmayr (Closes: #525812).
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 28 Apr 2009 11:30:31 -0500
+
+flex (2.5.35-6) unstable; urgency=high
+
+ * [f0d7848]: Finish fixing the ia64 buffer issue. Previous commits
+ increased YY_READ_BUF_SIZE (where __ia64__ is defined) but left
+ YY_BUF_SIZE unchanged, so that didn't fix the problem in the end. In
+ the general case, the latter is twice the former. Therefore set it to
+ the same ratio in the ia64 case. Thanks to Cyril Brulebois
+ <kibi@debian.org> for the heavy lifting.
+ Bug fix: "flex scanner push-back overflow", thanks to Sergei Golovan.
+ (Closes: #505056)
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 05 Jan 2009 12:10:01 -0600
+
+flex (2.5.35-5) unstable; urgency=low
+
+ * [debiandir:7eff632]: Fix race conditions in local.mk
+ [62a6595]: Correct a few dependencies in Makefiles
+ These fixes allow flex to be built using make -j3
+ Bug fix: "FTBFS with parallel in DEB_BUILD_OPTIONS", thanks to Daniel
+ Schepler. The heavy lifting was done by Robert Millan (Closes: #507231).
+
+ -- Manoj Srivastava <srivasta@debian.org> Sat, 29 Nov 2008 20:46:28 -0600
+
+flex (2.5.35-4) unstable; urgency=low
+
+ * [f6cc9ae] Narrow buffer size changes to just IA64
+ Increasing the buffer size on other architectures cause problems in
+ corner cases not caught by the test suite. So perhaps it is not better
+ to increase the buffer size unilatereally for all architectures, but
+ to just increase it for the architecture it is required on, namely,
+ IA64, and leave it unchanged on other architectures. This solution
+ should fix the new grave bugs, while not reopening the original but
+ that cause this change to be done in the first place.
+ Grave Bug fix: flex scanner push-back overflow, thanks to Sergei
+ Golovan (Closes: #505056, #504030)
+ * [debiandir:9a6d713] Fix VCS-Browser source field.
+ Bug fix: Useless VCS-Browser control field, thanks to Vincent Fourmond
+ (Closes: #503732)
+ * [d58780f] Wrap ECHO macro to avoid FORTIFY warnings
+ This change will enable flex scanners to be compiled with
+ -D_FORTIFY_SOURCE=2, which is a good thing security wise.
+ Bug Fix: flex causing warnings when compiled with FORTIFY_SOURCE,
+ thanks to Kees Cook. (Closes: #505233, #388438)
+
+
+ -- Manoj Srivastava <srivasta@debian.org> Wed, 19 Nov 2008 23:52:09 -0600
+
+flex (2.5.35-3) unstable; urgency=low
+
+ * Bug fix: "debian dir contains *.so", thanks to Raphael Hertzog
+ This is a simple rname of a file used purely in packaging, and has low
+ risk, but would allow compiling the flex source package with squeeze's
+ packaging tools. (Closes: #485095).
+ * [88bb2fc] Fix generation of broken output on ia64 when input is piped in
+
+ On ia64, flex appears to generate a completely different (and broken)
+ output depending on whether the input file is specified using shell
+ redirection or via a pipe.
+
+ This was traced back commit 3971e1a917548977cff71418a7c3575ffbc9571f,
+ by Alex Nixon <alex.nixon@citrix.com>: VFS: increase pseudo-filesystem
+ block size to PAGE_SIZE. PAGE_SIZE on ia64 kernels is larger than most
+ architectures - 16K is what most distributions (including Debian)
+ use. An effect of the above changeset, as verified by strace, is that
+ the read() and write() system calls issued by flex on a pipe will use
+ this bigger size. fread() appears to be properly hiding the actual
+ read size and is returning 8192 byte buffers to flex upon request. I
+ verified by this by instrumenting YY_INPUT to compare the fread data
+ with the original input file.
+
+ Its probably useful to note that the corruption happening here is that
+ the last 382 lines of the input file is being prefixed to the output
+ file. The only differences in the remainder of the file are the #line
+ numbers. I've also found that bumping YY_READ_BUF_SIZE up to 16384
+ seems to workaround the problem - but that may just be putting it back
+ into hiding.
+
+ The tradeoff here is between correct operation, by making flex's
+ buffer at least as big as the system buffer -- and not bigger, so that
+ we do not waste memory. At this point, fixing the isue seems more
+ important than worrying that flex consumes and additional 8KB of
+ memory.
+
+ This fix unblocks RC bugs on other packages.
+
+ Bug fix: "Generates broken output on ia64 when input is piped vs. shell
+ redirection", thanks to Chris Lamb. Fix based on comments by Dann
+ Frazier and Michael Casadevall. (Closes: #501960)
+ * [56ec97d] Fix doxygen comments to reflect actual argument name
+ Fix the comments to reflect the actual name of the function
+ arguments. This is a pure documentation fix.
+ Bug fix: "argument &#39;bytes&#39; of command @param is not found in
+ the argument list of tp_scan_bytes(yyconst char *yybytes, int
+ _yybytes_len)", thanks to Ludovic Rousseau (Closes: #488272).
+ * [303084a] Merge branch 'topic--buffer-size-patch' [f6cc9ae] Narrow
+ buffer size changes to just IA64
+
+ -- Manoj Srivastava <srivasta@debian.org> Wed, 19 Nov 2008 22:42:17 -0600
+
+flex (2.5.35-2) unstable; urgency=low
+
+ * Record the fact that this package has moved to a new git repository.
+ * Move to the new, make -j friendly targets in debian/rules.
+ * Bug fix: "/usr/share/doc/flex-doc/.dhelp spoils purge", thanks to Dan
+ Jacobson (Closes: #427524).
+ * Bug fix: "flex-doc: bad webpage reference", thanks to Elizabeth Barham
+ I could not find any references to lex.sf.net (Closes: #439172).
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 02 Jun 2008 11:54:55 -0500
+
+flex (2.5.35-1) unstable; urgency=low
+
+ * New upstream release, Mostly fixes made in NMU in Debian, plus a few
+ translation updates.
+ * NEWS: add date of release
+ * NEWS, parse.y: fix bug that prevented comments from working
+ properly
+ * po/de.po: new de translation
+ * NEWS, po/vi.po: new vi translation
+ * NEWS, po/nl.po: new nl translation
+ * NEWS, po/pl.po: new pl translation
+ * NEWS, po/de.po, po/pt_BR.po: new de, pt_br translations
+ * NEWS, flex.skl: generate headers for all functions (resolves bug
+ #1628314)
+ * NEWS, flex.skl: change yy_size_t to be size_t (resolves bug
+ #1849812)
+ * configure.in: start work on version 2.5.35
+ * NEWS, configure.in: revert NEWS and configure.in to version
+ * NEWS, configure.in: update version number to 2.5.35
+ * tests/test-alloc-extra/scanner.l: Use %option extra-type.
+ * NEWS, flex.skl, flexdef.h, main.c, parse.y, scan.l,
+ doc/flex.texi: Introduce %option extra-type="your_type *" (resolves
+ bug #1744505).
+ * po/nl.po: new nl translations from the translation project
+ * Bug fix: "flex: new lint in YY_INPUT definition", thanks to Larry
+ Doolittle. Closes: #466793
+ * Bug fix: "flex: limits of integral types are always defined", thanks
+ to Jean-Baptiste Note. It is true that the limits are defined by the
+ standard, and present in stdint.h, and so flex should not define them
+ on C99 systems, Closes: #443559
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 18 Mar 2008 21:05:33 -0500
+
+flex (2.5.34-3) unstable; urgency=low
+
+ * NMU ack. No changes since the last upload. Fix: "2.5.34-2.1 NMU diff",
+ thanks to Sergei Golovan. Closes: Bug#465071
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 18 Feb 2008 15:29:27 -0600
+
+flex (2.5.34-2.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Fixed a bug in parser with incorrectly added character to a ccl
+ (closes: #464659).
+
+ -- Sergei Golovan <sgolovan@debian.org> Sun, 10 Feb 2008 13:47:32 +0300
+
+flex (2.5.34-2) unstable; urgency=low
+
+ * Flex set yy_size_t to unsigned int; and used it where size_t was
+ needed, which, or course, failed on amd64 architectures. Since ANSI C
+ has declared size_t to be available in standard C headers since 1989,
+ which is 19 _years_ ago, I suspect we can start depending on size_t to
+ be around and set correctly -- especially on Debian.
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 07 Feb 2008 15:26:54 -0600
+
+flex (2.5.34-1) unstable; urgency=low
+
+ * New upstream release. This version has incorporated every single
+ feature and bug fix carried around by Debian, and thus all feature
+ branches are now sealed and merged back. Closes: #462196
+ * Since the version from which flex asks the question about upgrades was
+ released in 2003, it is time to retire the debconf question. So, the
+ debconf question is now gone, which means that all the translations of
+ the debconf translations are not required. Closes: Bug#448106, Bug#445744
+ Also closes: #448579, #448580, #448660, #449183, #449266, #449446, #450958
+ Closes: #451184, #453412
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 07 Feb 2008 01:12:19 -0600
+
+flex (2.5.33-12) unstable; urgency=low
+
+ * Bug fix: "flex: FTBFS if built twice in a row", thanks to Bernd
+ Zeimetz (Closes: #424274).
+
+ -- Manoj Srivastava <srivasta@debian.org> Wed, 16 May 2007 15:09:59 -0500
+
+flex (2.5.33-11) unstable; urgency=low
+
+ * Bug fix: "flex: [INTL:es] Spanish po-debconf translation", thanks to
+ César Gómez Martín (Closes: #402235).
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 18 Jan 2007 20:31:42 -0600
+
+flex (2.5.33-10) unstable; urgency=low
+
+ * Remove trailing ; from libfl.so script.
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 23 Oct 2006 23:50:43 -0500
+
+flex (2.5.33-9) unstable; urgency=low
+
+ * Install a version of libfl.so that is recognixed as a ld script but ld.
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 12 Sep 2006 03:35:33 -0500
+
+flex (2.5.33-8) unstable; urgency=low
+
+ * Also install libfl.so
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 11 Sep 2006 13:30:07 -0500
+
+flex (2.5.33-7) unstable; urgency=low
+
+ * Typo fix in changelog. We started providing libfl_pic.a in the
+ previous upload, not sev3eral years ago, and the name of the static
+ library compiled with position independent code is libfl_pic.a.
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 7 Sep 2006 20:10:40 -0500
+
+flex (2.5.33-6) unstable; urgency=low
+
+ * Starting with version 2.5.33-6 of flex we have started providing
+ a static library compiled with position independent code, namely,
+ libfl_pic.a. The problem is with packages that contain share
+ libraries with a flex scanner compiled in. Since flex generates code
+ that is not self contained, and the missing symbols live in
+ libfl.a. However, since linking a shared library with a object
+ containing non position independent code stopped working with gcc 4.1
+ (apparently, it was sheer luck that it worked at all). So now we also
+ provide libfl_pic.a for shared library packages to link with.
+
+ An alternative would have been to provide a full fledged
+ shared library, but that would have been a major break with upstream
+ and other distributions that also have flex, and would entail
+ creating new library and devel packages for flex, which is more work
+ that seems justified (considering that we would have to maintain the
+ fork, and keep track of any ABI changes, and all that).
+
+ * Bug fix: "flex: [INTL:ru] Russian debconf templates translation",
+ thanks to Yuri Kozlov (Closes: #382402).
+ * Started adding md5sums of the package, since dpkg is not ever likely
+ to directly support this.
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 5 Sep 2006 22:50:29 -0500
+
+flex (2.5.33-5) unstable; urgency=low
+
+ * Bug fix: "[INTL:lt] Lithuanian debconf translation", thanks to
+ Gintautas Miliauskas (Closes: #381235).
+ * Bug fix: "flex: warning in generated code", thanks to Martin
+ Michlmayr. Apply the patch from Bug#359127 to skel.c (Closes: #379763).
+
+ -- Manoj Srivastava <srivasta@debian.org> Sun, 6 Aug 2006 00:28:41 -0500
+
+flex (2.5.33-4) unstable; urgency=low
+
+ * Bug fix: "Spelling mistake in package description", thanks to Simon
+ Waters. reenterant -> reentrant (Closes: #363415).
+ * Bug fix: "flex [INTL:pt] Portuguese translation for debconf messages",
+ thanks to Miguel Figueiredo (Closes: #362984).
+
+ -- Manoj Srivastava <srivasta@debian.org> Wed, 3 May 2006 13:11:58 -0500
+
+flex (2.5.33-3) unstable; urgency=low
+
+ * Bug fix: "cannot purge", thanks to Sebastian Rittau. Fix the package
+ name var in doc.postrm (Closes: #357525).
+ * Bug fix: "flex: project web page location doesn't work", thanks to
+ Martin Dorey. The sourceforge project name was changed from lex to
+ flex recently. (Closes: #357515).
+ * Updated copyright file as well, and updated the years for the
+ copyright.
+ * Please note that the CVE-2006-0459 bug with buffer overflows in
+ parsers generated with REJECT rules and/or trailing contexts does not
+ apply to flex 2.5.33
+ * Bug fix: "incorrect catalan translation", thanks to Carles Pina i
+ Estany (Closes: #359876).
+ * Bug fix: "flex: comparison between signed and unsigned in generated
+ scanner", thanks to Russ Allbery (Closes: #359127).
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 11 Apr 2006 10:12:51 -0500
+
+flex (2.5.33-2) unstable; urgency=low
+
+ * Bug fix: "flex - FTBFS: /build/buildd/flex-2.5.33/missing: line 46:
+ flex: command not found", thanks to Bastian Blank. Hmm. Updatimg
+ md5sum, thanks to some analysis by Kurt Roeckx (Closes: #354552).
+
+ -- Manoj Srivastava <srivasta@debian.org> Sun, 5 Mar 2006 11:38:34 -0600
+
+flex (2.5.33-1) unstable; urgency=low
+
+ * New upstream release.
+ ** all flex resources are now to be found from the website at
+ http://flex.sourceforge.net/
+ ** there was no release 2.5.32 published
+ ** numerous bug and security fixes
+ ** new nl, vi, sv, ro, po, ga, ca, fr, tr translations from the
+ translation project
+ ** upgrade to use gettext 0.12 (this now makes the "pdf" and "ps"
+ targets in the build system able to be run successfully)
+
+ -- Manoj Srivastava <srivasta@debian.org> Sun, 26 Feb 2006 20:53:27 -0600
+
+flex (2.5.31-38) unstable; urgency=low
+
+ * Bug fix: "flex_2.5.31-36(powerpc/unstable): FTBFS: ", thanks to Ryan
+ Murray. Since we already use MAINTAINER_MODE, there was no help there.
+ As a last resort, always touch scan.c if we do not find flex.
+ (Closes: #343355).
+ * Bug fix: "flex: [INTL:da] Danish debconf translation", thanks to Claus
+ Hindsgaul (Closes: #353900).
+ * Bug fix: "flex: Space leak in C++ scanner", thanks to Vincent Zweije
+ This may be a partial fix, but it seems to be good enough.
+ (Closes: #233215).
+
+ -- Manoj Srivastava <srivasta@debian.org> Sat, 25 Feb 2006 00:53:07 -0600
+
+flex (2.5.31-37) unstable; urgency=low
+
+ * the source code has an '#ifdef HAVE_LOCALE_H' but forgets to actually
+ check for locale.h in configure. The report and patch thanks to Mike
+ Frysinger.
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 7 Feb 2006 21:23:54 -0600
+
+flex (2.5.31-36) unstable; urgency=low
+
+ * Bug fix: "flex: doxygen warning: argument `str' of command @param is
+ not found in the argumentlist", thanks to Ludovic Rousseau
+ (Closes: #320134).
+ * Bug fix: "flex generates a C file with improper macro defn; broke
+ Bison 2.1", thanks to Paul Eggert. Well, even though it is legal C99
+ to have empty arguments in macros (so it is legal to call a macro
+ taking one argument with no arguments), it was not legal C89 --
+ therefore, emit tqo different macros, with and without arguments -- to
+ cater to users running obsolete compilers. (Closes: #333231).
+
+ -- Manoj Srivastava <srivasta@debian.org> Sun, 23 Oct 2005 14:59:05 -0500
+
+flex (2.5.31-35) unstable; urgency=low
+
+ * Bug fix: "yy_init_globals in header file", thanks to Oskar Liljeblad
+ (Closes: #322628).
+ * Bug fix: "flex: [INTL:sv] Swedish debconf templates translation",
+ thanks to Daniel Nylander (Closes: #333321).
+ * Bug fix: "Please provide flex++ symlink", thanks to Will Newton
+ (Closes: #318347).
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 20 Oct 2005 23:50:37 -0500
+
+flex (2.5.31-34) unstable; urgency=low
+
+ * Bug fix: "FTBFS: Cannot install HTML documentation", thanks to Matt
+ Kraai (Closes: #317856).
+ * Bug fix: "flex: doxygen warning: argument `str' of command @param is
+ not found in the argumentlist", thanks to Ludovic Rousseau
+ (Closes: #320134).
+ * Bug fix: "[INTL:nl] Upstream Dutch programs translation", thanks to
+ Luk Claes (Closes: #321080).
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 8 Aug 2005 00:17:33 -0500
+
+flex (2.5.31-33) unstable; urgency=low
+
+ * Bug fix: "flex does not report errors to write", thanks to Bernhard
+ R. Link. Thanks for the patch (checks flcose and ferror return values)
+ (Closes: #317117).
+
+ -- Manoj Srivastava <srivasta@debian.org> Sun, 10 Jul 2005 02:06:29 -0500
+
+flex (2.5.31-32) unstable; urgency=low
+
+ * Bug fix: "INTL:vi", thanks to Clytie Siddall (Closes: #311651).
+ * Bug fix: "[l10n] Initial Czech translation of flex debconf messages",
+ thanks to Miroslav Kure (Closes: #308062).
+ * Bug fix: "flex: Some members that should be const aren't", thanks to
+ Frank B. Brokken Some members as defined in FlexLexer.h are
+ accessors, and should be defined as `const' members, since not doing
+ so causes problems when calling these member functions on a const
+ object. (Closes: #287256).
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 7 Jul 2005 17:22:23 -0500
+
+flex (2.5.31-31) unstable; urgency=low
+
+ * New program translation.
+ * Bug fix: "[INTL:nl] new dutch program translations", thanks to Luk
+ Claes (Closes: #283979).
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 2 Dec 2004 13:17:03 -0600
+
+flex (2.5.31-30) unstable; urgency=medium
+
+ * This is a couple of lines fixed, and does not actually touch any code
+ -- just build instructions -- and allows for cross building
+ * Bug fix: "flex: [PATCH] cross build", thanks to NIIBE Yutaka
+ (Closes: #283075).
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 26 Nov 2004 21:22:59 -0600
+
+flex (2.5.31-29) unstable; urgency=low
+
+ * At popular request, error out if scan.l has been updated rather than
+ depend on ourselves.
+
+ -- Manoj Srivastava <srivasta@debian.org> Wed, 17 Nov 2004 17:42:16 -0600
+
+flex (2.5.31-28) unstable; urgency=high
+
+ * This is a FTBS bug, after all. This should probably flow through to
+ testing.
+ * Bug fix: "flex: FTBFS: scan.l needs rebuild?", thanks to Kurt Roeckx
+ Added a build depends on flex. (Closes: #256532).
+ * Bug fix: "XSI:ism `-o' in debian-scripts", thanks to David Weinehall
+ (Closes: #261478).
+ * Bug fix: "flex: documentation typo (`}' instead of `{')", thanks to
+ Dmitry Rutsky (Closes: #267496).
+ * Bug fix: "[INTL:nl] New Dutch po-debconf translation", thanks to Luk
+ Claes (Closes: #263726).
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 12 Nov 2004 21:28:58 -0600
+
+flex (2.5.31-27) unstable; urgency=low
+
+ * Refreshed the auto-tools generated files
+ * Bug fix: "flex: scan.l needs rebuild?", thanks to Kurt Roeckx
+ (Closes: #256532).
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 22 Jul 2004 10:20:38 -0500
+
+flex (2.5.31-26) unstable; urgency=low
+
+ * Removed the old dwww/menu entry. Now we use the preferred doc-base
+ registration method.
+
+ -- Manoj Srivastava <srivasta@debian.org> Wed, 23 Jun 2004 00:44:20 -0500
+
+flex (2.5.31-25) unstable; urgency=low
+
+ * Bug fix: "flex: Please add German translation of the debconf
+ templates", thanks to Erik Schanze (Closes: #252726).
+ * Bug fix: "flex: Suspicious texinfo markup tags in info manual", thanks
+ to Tommi Vainikainen (Closes: #254832).
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 22 Jun 2004 19:37:32 -0500
+
+flex (2.5.31-24) unstable; urgency=low
+
+ * Bug fix: "flex: [INTL:fr] French translation of debconf templates",
+ thanks to Denis Barbier (Closes: #242636).
+
+ -- Manoj Srivastava <srivasta@debian.org> Sat, 10 Apr 2004 10:58:36 -0500
+
+flex (2.5.31-23) unstable; urgency=low
+
+ * Bug fix: This time, really really "flex: Typo in long description:
+ 'setrs' instead of 'sets'", thanks to Philip Miller (Closes: #226335).
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 2 Apr 2004 10:42:09 -0600
+
+flex (2.5.31-22) unstable; urgency=low
+
+ * Moved over to po-debconf
+ * Bug fix: "flex: Typo in long description: 'setrs' instead of 'sets'",
+ thanks to Philip Miller (Closes: #226335).
+
+ -- Manoj Srivastava <srivasta@debian.org> Sun, 22 Feb 2004 00:13:35 -0600
+
+flex (2.5.31-21) unstable; urgency=low
+
+ * FTBFS: missing build-depends. Bah. The buildd's do not respect
+ Build-Depends-Indep. Duplicated the dependency into Build-Depends as a
+ workaround for this buildd flaw. (Closes: #224117).
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 23 Dec 2003 14:52:43 -0600
+
+flex (2.5.31-20) unstable; urgency=low
+
+ * Bug fix: "flex.1.gz has disappeared, leaving dangling symlinks",
+ thanks to Aaron M. Ucko. This was a casualty of moving to the new
+ build system; the man page was being installed in
+ /usr/share/man/man1/man1/flex.1.gz (Closes: #223071).
+
+ -- Manoj Srivastava <srivasta@debian.org> Sat, 6 Dec 2003 11:28:18 -0600
+
+flex (2.5.31-19) unstable; urgency=low
+
+ * Thanks to a patch pointed out to me by Patrick Dreker, found on
+ http://sourceforge.net/tracker/index.php?func=detail&aid=829996&group_id=72099&atid=533379
+ Bug fix: "flex: truncated output breaks wine build", thanks to Greg
+ Wooledge (Closes: #188872).
+ * Moved to the branch new build system, made possible by moving to arch
+ as a SCM.
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 5 Dec 2003 00:16:54 -0600
+
+flex (2.5.31-18) unstable; urgency=low
+
+ * Bug fix: "flex: package issues invalid command to dpkg", thanks to
+ Jonathan Brandmeyer. The problem was in the config file; since it
+ assumed that $2 was always going to be installed version. Obviously,
+ on a fresh install, there is no installed version; and hence nothing
+ to send to dpkg --compare-versions. In this case, we refrain from
+ asking the question if "$2" is an empty string. (Closes: #219185).
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 11 Nov 2003 01:31:06 -0600
+
+flex (2.5.31-17) unstable; urgency=low
+
+ * Thanks to a patch from Joey Hess, we now use debconf to ask the
+ preinst question. closes: Bug#216457
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 31 Oct 2003 21:53:16 -0600
+
+flex (2.5.31-16) unstable; urgency=low
+
+ * Flex used to reset LC_MESSAGES, but not LC_TYPE, which resulted in
+ output without any non ascii characters. Now reset LC_TYPE as well.
+ closes: Bug#212571
+ * make sure that we strip as much as lintian wants, unless nostrip is
+ set.
+
+ -- Manoj Srivastava <srivasta@debian.org> Wed, 24 Sep 2003 09:53:23 -0500
+
+flex (2.5.31-15) unstable; urgency=low
+
+ * AAAArrgh. Set AM_MAINTAINER_MODE in configure.in and regenerated all
+ auto* files. hopefully things shall no longer break with every minor
+ version change in autoconf. closes: Bug# 212355
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 23 Sep 2003 11:21:06 -0500
+
+flex (2.5.31-14) unstable; urgency=low
+
+ * ISO C 1999 says that `inttypes.h' includes `stdint.h', so there's no
+ need to include `stdint.h' separately in a hosted environment. And,
+ in any case, whenever we used to include stdint.h, we also included
+ inttypes.h. closes: Bug#209197
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 8 Sep 2003 17:59:17 -0500
+
+flex (2.5.31-13) unstable; urgency=low
+
+ * Fixed usage of chown root.root in the rules files.
+ * Refreshed config.sub, config.guess.
+ * removed acinclude.m4, since it was ancient and rpevented autoconf from
+ running.
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 1 Sep 2003 14:33:12 -0500
+
+flex (2.5.31-12) unstable; urgency=low
+
+ * changed the implementation of the yy_scan_string function to use
+ yy_str, as stated in the declaration, so as to allow users access to
+ the string "str" in #defines. I am not completely happy with this fix,
+ since there are other variables that may also pollute the #define name
+ space, but going through and modifying them all would be a significant
+ departure from upstream code; and I'm going to wait until someone
+ complains. closes: Bug#198200
+ * Added a reference to flex-old in the package description, mentioning
+ the changes in this version of flex.
+ * Added a warning and a question in the preinst if upgrading from an old
+ version of flex.
+
+ -- Manoj Srivastava <srivasta@debian.org> Sun, 6 Jul 2003 03:41:58 -0500
+
+flex (2.5.31-11) unstable; urgency=low
+
+ * Added a build depends on help2man
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 29 May 2003 23:31:57 -0500
+
+flex (2.5.31-10) unstable; urgency=low
+
+ * Fixed an extraneous #endif in main.c, which caused gcc to barf.
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 29 May 2003 01:01:10 -0500
+
+flex (2.5.31-9) unstable; urgency=low
+
+ * Well, since removing stdint.h inclusion does not fix IA64 breakage,
+ and including the header since we need it does seem to be the right
+ thing to do, and it does closes: Bug#191168
+ * In filter.c, after a fork, we try to reinit the standard stream
+ pointers stdin, stdout, and stderr -- which is a bug, since the macros
+ stdin, stdout, and sterr may not be modifiable lvalues (C99 says they
+ nmeed not be modifuable). This is also pointless, since POSIX
+ guarantees that the child inherits the streams from the parent. There
+ are no test failures from thie fix. closes: Bug#194844
+ * Fixed the generation of non ansi function definiton macros to include
+ a \, so that the parameters do not default to int (they are actually
+ pointers to structs), which makes the test fail on machines where ints
+ and pointers are a different size. closes: Bug#191672
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 27 May 2003 13:44:37 -0500
+
+flex (2.5.31-8) unstable; urgency=low
+
+ * Added a patch from Bastian Kleineidam fixinf nounbistd option.
+ closes: Bug#193317
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 16 May 2003 15:43:46 -0500
+
+flex (2.5.31-7) unstable; urgency=low
+
+ * remove /* in a comment, since it creates warnings under -Wall, Hit a
+ lot of people. closes: Bug#192450, Bug#192763, Bug#192244
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 13 May 2003 00:55:40 -0500
+
+flex (2.5.31-6) unstable; urgency=low
+
+ * revert adding stdint.h to the 'standard C headers'since using stdint.h
+ macros on IA64, rather than our own, breaks things. closes: Bug#191672
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 2 May 2003 15:15:32 -0500
+
+flex (2.5.31-5) unstable; urgency=low
+
+ * Updated the new download location in the copyright file. closes: Bug#191157
+ * add stdint.h to the 'standard C headers' to prevent warnings for
+ redefinitions ofUINTN_MAX macros. (Makes sense, since the standard
+ defines that these macros are defined in stdint.h closes: Bug#191168
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 2 May 2003 11:06:06 -0500
+
+flex (2.5.31-4) unstable; urgency=low
+
+ * Fix flex info files; closes: Bug#190903, Bug#189963
+
+ -- Manoj Srivastava <srivasta@debian.org> Sun, 27 Apr 2003 19:01:29 -0500
+
+flex (2.5.31-3) unstable; urgency=low
+
+ * Fix the broken flex -l scanner generation. closes: Bug#188665
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 14 Apr 2003 03:27:05 -0500
+
+flex (2.5.31-2) unstable; urgency=low
+
+ * Ensure that the man page gets to the right location.
+ closes: Bug#188751, Bug#188505
+ * Note that flex now requires m4
+ * The behaviour of flex has changed in the latest release, yes. This is
+ part of the gcc migration process; flex has been updated (the buggy,
+ rickety set of patches required to make it work with gcc was dumped in
+ favour of a well engineered upstream migration)
+ * As you may see, flex scanners have become reentrant, the c++ versions
+ are compatible with recent c++ compilers (conform to ANSI C++, gcc
+ 3.2), supports bison variables yylval and yylloc. Some variables have
+ been renamed. Flex generates C99 defs now; see
+ YY_TRADITIONAL_FUNC_DEFS yylineno is present in all scanners. yylineno
+ is per-buffer in reentrant scanners. flex tries its best to output
+ only the relevant portions of the skeleton when generating a scanner,
+ thus avoiding as much conditional compilation as possible
+ * non ansi mode was broken (this only shows up on machines where
+ pointers and ints are not the same size). closes: Bug#188813
+
+ -- Manoj Srivastava <srivasta@debian.org> Sun, 13 Apr 2003 14:29:47 -0500
+
+flex (2.5.31-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Manoj Srivastava <srivasta@debian.org> Wed, 9 Apr 2003 14:12:18 -0500
+
+flex (2.5.4a-33) unstable; urgency=low
+
+ * Continuing the process of gcc 3.2.x compatribility. closes: Bug#185714
+
+ -- Manoj Srivastava <srivasta@acm.org> Fri, 21 Mar 2003 13:00:19 -0600
+
+flex (2.5.4a-32) unstable; urgency=low
+
+ * There was a blank line in initscan.c that made it impossible to build
+ on buildds. closes: Bug#185772
+
+ -- Manoj Srivastava <srivasta@acm.org> Fri, 21 Mar 2003 12:34:13 -0600
+
+flex (2.5.4a-31) unstable; urgency=low
+
+ * Make flexlexer have the std:: prefix closes: Bug#181670, Bug#180446
+ * Fix flex.skl closes: Bug#184393
+
+ -- Manoj Srivastava <srivasta@acm.org> Fri, 21 Mar 2003 00:57:21 -0600
+
+flex (2.5.4a-30) unstable; urgency=low
+
+ * FlexLexer.h now include iostream, not iostream.h.
+ closes: Bug#173943, Bug#180051
+ * Fix broken printf format closes: Bug#174350
+ * The behaviour of flex was different based on what order options were
+ specified: option nomain before option noyywrap caused one set of
+ behaviours, reversing the order changes the behavious, since nomain
+ seemed to reset noyywrap. This was fixed in scanl. and initscan.c.
+ closes: Bug#174259
+
+ -- Manoj Srivastava <srivasta@acm.org> Sun, 9 Feb 2003 13:38:32 -0600
+
+flex (2.5.4a-29) unstable; urgency=low
+
+ * No longer provide /usr/doc link. Upgrade to latest policy version.
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 11 Nov 2002 23:17:14 -0600
+
+flex (2.5.4a-28) unstable; urgency=low
+
+ * Anotrher patch from Alexander Klauer, this one fixes a print format
+ problem. closes: Bug#161101
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 29 Oct 2002 17:35:13 -0600
+
+flex (2.5.4a-27) unstable; urgency=low
+
+ * Fix a flex segfult on very long lines. Many thanks to Alexander
+ Klauer <Graf.Zahl@gmx.net> for detecting this bug and finding the
+ fix. closes: Bug#158518
+ * The package seems to build from sources on i386. closes: Bug#159547
+
+ -- Manoj Srivastava <srivasta@debian.org> Wed, 4 Sep 2002 19:24:56 -0500
+
+flex (2.5.4a-26) unstable; urgency=low
+
+ * use which instead of command -v
+ * Fixed a problem with locales in flex. Many thanks to
+ witchery@www.oz.or.kr and unichi Uekawa <dancer@netfort.gr.jp> for
+ discovering the problem, and patiently leading me through to a point
+ that I could actually reproduce the proble, and test the patch
+ provided by witchery@www.oz.or.kr. closes: Bug#147627
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 27 May 2002 02:09:28 -0500
+
+flex (2.5.4a-25) unstable; urgency=high
+
+ * In this version of flex, the first YYPROTO usage appears before the
+ definition of YYPROTO if _WIN32 is defined. Not so good. One should be
+ able to generate portable lexers with flex. closes: Bug#145237
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 30 Apr 2002 12:53:45 -0500
+
+flex (2.5.4a-24) unstable; urgency=low
+
+ * Well, the symbol is really _WIN32.
+ * Added clarifications about %option stdin to the flex man page (some
+ wording taken from CVS).
+
+ -- Manoj Srivastava <srivasta@debian.org> Sun, 17 Mar 2002 10:32:13 -0600
+
+flex (2.5.4a-23) unstable; urgency=low
+
+ * Hmm. For non POSIX systems (well, where _Win32 is defined) where
+ unistd.h is not available, use the old isatty prototype.
+
+ -- Manoj Srivastava <srivasta@debian.org> Wed, 6 Feb 2002 16:33:39 -0600
+
+flex (2.5.4a-22) unstable; urgency=low
+
+ * Interactive lexers were broken by the fic to handle interrupted
+ reads. closes: Bug#131242
+
+ -- Manoj Srivastava <srivasta@debian.org> Mon, 28 Jan 2002 12:21:40 -0600
+
+flex (2.5.4a-21) unstable; urgency=low
+
+ * Hmm. Run aclocal on the acinclude file first.
+
+ -- Manoj Srivastava <srivasta@debian.org> Fri, 25 Jan 2002 16:52:23 -0600
+
+flex (2.5.4a-20) unstable; urgency=low
+
+ * Add a build depends for autotconf, needed now that we make changes to
+ the script. closes: Bug#130703
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 24 Jan 2002 16:32:25 -0600
+
+flex (2.5.4a-19) unstable; urgency=low
+
+ * For machines that do not use the GNU libc (and thus, does not have
+ gettext as part of the libc), flex failed to compile. The grep package
+ has a macro to handle exactly this situation, elegantly, which is
+ labelled as available for public use, in it's aclocal.m4 file. This
+ version of flex uses that. Many thanks to Joel Baker
+ <lucifer@lightbearer.com> for discovering and testing this fix.
+ closes: Bug#130220
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 24 Jan 2002 10:07:16 -0600
+
+flex (2.5.4a-18) unstable; urgency=low
+
+ * Make sure that unistd.h is actually included, since we no longer
+ provide a prototype for isatty. closes: Bug#97131
+
+ -- Manoj Srivastava <srivasta@debian.org> Sun, 13 Jan 2002 01:02:26 -0600
+
+flex (2.5.4a-17) unstable; urgency=medium
+
+ * AAArgggh. Fix a missing open brace in the generated YY_INPUT, Many
+ thanks to Bruce Stephens for catching these quickly.
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 10 Jan 2002 13:14:35 -0600
+
+flex (2.5.4a-16) unstable; urgency=medium
+
+ * Fix a missing \ in the generated YY_INPUT macro. closes: Bug#128412
+ * Fix buggy isatty prototype by not actually including a prototype (we
+ include the relevant header file, after all. closes: Bug#97131
+
+ -- Manoj Srivastava <srivasta@debian.org> Wed, 9 Jan 2002 11:51:12 -0600
+
+flex (2.5.4a-15) unstable; urgency=low
+
+ * if a signal is delivered while the parser is in the read routine
+ (coded by flex), the result is flex reports and YY_FATAL_ERROR causing
+ plan to exit. The race condition appears much more frequently than
+ one might expect because plan spends a good deal of time in read
+ routine while gcc is preparing the input. I cleaned up another problem
+ case beyond what is given in the patch. closes: Bug#125611
+ * flex -o "ddd" doesn't write to the file "ddd", instead it tries to
+ write to the file "" (yes, blank) and read from "ddd". I changed the
+ main.c to use the next arg as the output file name if the next arg
+ does not start with a -. closes: Bug#122581
+
+ -- Manoj Srivastava <srivasta@debian.org> Sun, 6 Jan 2002 05:12:37 -0600
+
+flex (2.5.4a-14) unstable; urgency=low
+
+ * The flex-doc menu entry (/usr/lib/menu/flex-doc) contains some
+ unquoted double quotes in its extended description, and these needed
+ to be quoted so as not to confuse update menu. (why did it not
+ generate an error?) closes: Bug#105272
+ * The version 2.5.4a-12 was duplicated work with the previous maintainer
+ (and I take the blame for the lack of communication). I have also
+ managed to mosplace the changelog entry ;-(
+
+ -- Manoj Srivastava <srivasta@debian.org> Tue, 17 Jul 2001 17:50:25 -0500
+
+flex (2.5.4a-13) unstable; urgency=low
+
+ * I took over flex, and have brought the rules and pre/post inst files
+ into line with my conventions.
+ * flex generates c++ that does not use istream and ostream from the
+ "std" namespace, so compilation of generated code fails. closes: Bug#104067
+ Please note that this duplicates and replaces the work done in 2.5.4a-12
+
+ -- Manoj Srivastava <srivasta@debian.org> Thu, 12 Jul 2001 15:48:24 -0500
+
+flex (2.5.4a-12) unstable; urgency=low
+
+ * Generate c++ which uses istream and ostream from the "std" namespace
+ for g++-3.0. Patch by Dale E. Martin (Closes: #104067).
+ * Registered HTML docs using doc-base.
+
+ -- Santiago Vila <sanvila@debian.org> Thu, 12 Jul 2001 14:21:18 +0200
+
+flex (2.5.4a-11) unstable; urgency=low
+
+ * Added i18n support. Build-Depends: gettext. Closes: #46838.
+ Thanks to Changwoo Ryu <cwryu@adam.kaist.ac.kr>.
+ * Fixed formatting error in flex(1). Closes: #90284.
+ Thanks to Colin Watson <cjw44@flatline.org.uk>.
+
+ -- Santiago Vila <sanvila@debian.org> Sun, 25 Mar 2001 14:07:51 +0200
+
+flex (2.5.4a-10) unstable; urgency=low
+
+ * Changed @section by @chapter to make texi2html happy.
+ Patch by Gordon Sadler <gbsadler1@lcisp.com>. Closes: #84780.
+ * Build-Depends-Indep: texi2html. Closes: #87689.
+ * Build-Depends: texinfo, since .texi is now modified.
+
+ -- Santiago Vila <sanvila@debian.org> Mon, 26 Feb 2001 20:16:54 +0100
+
+flex (2.5.4a-9) unstable; urgency=low
+
+ * Fixed manpage again. Additional patch by the author.
+
+ -- Santiago Vila <sanvila@debian.org> Fri, 1 Dec 2000 19:58:41 +0100
+
+flex (2.5.4a-8) unstable; urgency=low
+
+ * Added missing bracket in flex manpage (Closes: Bug#68941).
+
+ -- Santiago Vila <sanvila@debian.org> Sat, 19 Aug 2000 16:56:22 +0200
+
+flex (2.5.4a-7) unstable; urgency=low
+
+ * Updated upstream source URL (Closes: Bug#67233).
+ * Standards-Version: 3.1.1.
+ * Build-Depends: bison.
+
+ -- Santiago Vila <sanvila@debian.org> Fri, 4 Aug 2000 13:04:28 +0200
+
+flex (2.5.4a-6) unstable; urgency=low
+
+ * Applied a patch by Kristoffer Rose for large flex tables.
+
+ -- Santiago Vila <sanvila@ctv.es> Tue, 7 Dec 1999 17:52:01 +0100
+
+flex (2.5.4a-5) unstable; urgency=low
+
+ * Fixed Bug #47860: flex segfaults. Patch by the author.
+
+ -- Santiago Vila <sanvila@ctv.es> Wed, 10 Nov 1999 11:44:06 +0100
+
+flex (2.5.4a-4) unstable; urgency=low
+
+ * Recommends: c-compiler, instead of gcc (Bug #33937).
+ * Info unregistering done in prerm, not in postrm.
+
+ -- Santiago Vila <sanvila@ctv.es> Fri, 5 Mar 1999 17:20:30 +0100
+
+flex (2.5.4a-3) unstable; urgency=low
+
+ * Added HTML docs, in a separate package.
+
+ -- Santiago Vila <sanvila@ctv.es> Tue, 13 Oct 1998 21:14:28 +0200
+
+flex (2.5.4a-2) unstable; urgency=low
+
+ * Added a man page for flex++ (actually, a symlink to flex).
+ * ftp.gnu.org is FSF's new FTP site name.
+ * Compressed changelog.Debian.
+ * Removed debstd dependency.
+
+ -- Santiago Vila <sanvila@ctv.es> Thu, 12 Mar 1998 20:25:09 +0100
+
+flex (2.5.4a-1) unstable; urgency=low
+
+ * New upstream release, using pristine untouched source.
+ * Removed the modified debstd from the source package now that the
+ standard one is fixed.
+ * First libc6 release.
+
+ -- Santiago Vila <sanvila@ctv.es> Thu, 7 Aug 1997 19:15:34 +0200
+
+flex (2.5.4-2) unstable; urgency=low
+
+ * libfl.a stripped using strip -g, using a modified debstd which
+ is included in the Debian source package.
+
+ -- Santiago Vila <sanvila@ctv.es> Thu, 13 Mar 1997 09:44:28 +0100
+
+flex (2.5.4-1) unstable; urgency=low
+
+ * Converted to Standards 2.1.2.2.
+ * New upstream version.
+ * Compiled with -D_REENTRANT.
+ * Added MD5 sums.
+ * New maintainer.
+
+ -- Santiago Vila <sanvila@ctv.es> Sat, 22 Feb 1997 18:00:09 +0100
diff --git a/debian/clean b/debian/clean
new file mode 100644
index 0000000..4d50a7b
--- /dev/null
+++ b/debian/clean
@@ -0,0 +1,42 @@
+INSTALL
+Makefile.in
+aclocal.m4
+autom4te.cache/
+build-aux/compile
+build-aux/config.guess
+build-aux/config.sub
+build-aux/depcomp
+build-aux/install-sh
+build-aux/mdate-sh
+build-aux/texinfo.tex
+configure
+debian/.debhelper/
+debian/autoreconf.after
+debian/autoreconf.before
+debian/files
+debian/flex-doc.debhelper.log
+debian/flex-doc.substvars
+debian/flex-doc/
+debian/flex.debhelper.log
+debian/flex.substvars
+debian/flex/
+debian/libfl-dev.debhelper.log
+debian/libfl-dev.substvars
+debian/libfl-dev/
+debian/tmp/
+doc/flex.html/
+doc/flex.t2p/
+doc/Makefile.in
+doc/flex.1
+doc/flex.info
+doc/flex.info-1
+doc/flex.info-2
+doc/stamp-vti
+doc/version.texi
+examples/Makefile.in
+examples/fastwc/Makefile.in
+examples/manual/Makefile.in
+src/config.h.in
+src/.libs/
+tests/Makefile.in
+tools/Makefile.in
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..b4de394
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+11
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..b50c08e
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,85 @@
+Source: flex
+VCS-Git: https://anonscm.debian.org/git/users/srivasta/debian/flex.git
+VCS-Browser: https://anonscm.debian.org/gitweb/?p=users/srivasta/debian/flex.git
+Section: devel
+Homepage: https://github.com/westes/flex
+Priority: optional
+Build-Depends: bison, gettext, texinfo, help2man, file, po-debconf,
+ debhelper (>= 11), dh-autoreconf, dpkg-dev (>= 1.17.14),
+ flex <cross>
+Build-Depends-Indep: texlive-latex-base, texlive-fonts-recommended, cm-super-minimal
+Maintainer: Manoj Srivastava <srivasta@debian.org>
+Standards-Version: 4.1.3
+Rules-Requires-Root: no
+
+Package: flex
+Architecture: any
+Pre-Depends: debconf | debconf-2.0
+Depends: ${shlibs:Depends}, m4, ${misc:Depends}
+Recommends: gcc | c-compiler, libfl-dev
+Suggests: bison, build-essential, flex-doc
+Multi-Arch: foreign
+Description: fast lexical analyzer generator
+ Flex is a tool for generating scanners: programs which recognized lexical
+ patterns in text. It reads the given input files for a description of a
+ scanner to generate. The description is in the form of pairs of regular
+ expressions and C code, called rules. Flex generates as output a C source
+ file, lex.yy.c, which defines a routine yylex(). This file is compiled
+ and linked with the -lfl library to produce an executable. When the
+ executable is run, it analyzes its input for occurrences of the regular
+ expressions. Whenever it finds one, it executes the corresponding C code.
+
+Package: flex-doc
+Section: doc
+Architecture: all
+Depends: ${misc:Depends}
+Description: Documentation for flex (a fast lexical analyzer generator)
+ Flex is a tool for generating scanners: programs which recognized lexical
+ patterns in text. It reads the given input files for a description of a
+ scanner to generate. The description is in the form of pairs of regular
+ expressions and C code, called rules. Flex generates as output a C source
+ file, lex.yy.c, which defines a routine yylex(). This file is compiled
+ and linked with the -lfl library to produce an executable. When the
+ executable is run, it analyzes its input for occurrences of the regular
+ expressions. Whenever it finds one, it executes the corresponding C code.
+ .
+ This package contains the HTML documentation for flex.
+
+Package: libfl2
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Replaces: flex (<< 2.5.39), libfl-dev (<= 2.6.4-4)
+Breaks: flex (<< 2.5.39), libfl-dev (<= 2.6.4-4)
+Description: SHARED library for flex (a fast lexical analyzer generator)
+ Flex is a tool for generating scanners: programs which recognized lexical
+ patterns in text. It reads the given input files for a description of a
+ scanner to generate. The description is in the form of pairs of regular
+ expressions and C code, called rules. Flex generates as output a C source
+ file, lex.yy.c, which defines a routine yylex(). This file is compiled
+ and linked with the -lfl library to produce an executable. When the
+ executable is run, it analyzes its input for occurrences of the regular
+ expressions. Whenever it finds one, it executes the corresponding C code.
+ .
+ This package contains the shared library for flex.
+
+Package: libfl-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends: ${misc:Depends}, flex (= ${binary:Version}), libfl2 (= ${binary:Version})
+Replaces: flex (<< 2.5.39), flex-old (<= 2.5.4a-10)
+Breaks: flex (<< 2.5.39), flex-old (<= 2.5.4a-10)
+Description: static library for flex (a fast lexical analyzer generator)
+ Flex is a tool for generating scanners: programs which recognized lexical
+ patterns in text. It reads the given input files for a description of a
+ scanner to generate. The description is in the form of pairs of regular
+ expressions and C code, called rules. Flex generates as output a C source
+ file, lex.yy.c, which defines a routine yylex(). This file is compiled
+ and linked with the -lfl library to produce an executable. When the
+ executable is run, it analyzes its input for occurrences of the regular
+ expressions. Whenever it finds one, it executes the corresponding C code.
+ .
+ This package contains the static library for flex.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..0925f09
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,582 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: flex
+Upstream-Contact: flex-help@lists.sourceforge.net
+Source: git://git.code.sf.net/p/flex/flex
+Comment: This is the Debian prepackaged version of flex, the fast lexical
+ analyzer generator. This package was first put together by
+ Robert Leslie <rob@mars.org>. It is currently maintained by
+ Manoj Srivastava <srivasta@debian.org>, who took over from
+ Santiago Vila <sanvila@debian.org>, and it is built from
+ sources obtained from: https://github.com/westes/flex
+
+Files: *
+Copyright: 2001-2008 The Flex Project.
+ 1990, 1993, 1997 The Regents of the University of California.
+ All rights reserved.
+License: FLEX
+ Flex carries the copyright used for BSD software, slightly modified
+ because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
+ which operates under a contract with the Department of Energy:
+ .
+ This code is derived from software contributed to Berkeley by
+ Vern Paxson.
+ .
+ The United States Government has rights in this work pursuant
+ to contract no. DE-AC03-76SF00098 between the United States
+ Department of Energy and the University of California.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+ .
+ This basically says "do whatever you please with this software except
+ remove this notice or take advantage of the University's (or the flex
+ authors') name".
+ .
+ Note that the "flex.skl" scanner skeleton carries no copyright notice.
+ You are free to do whatever you please with scanners generated using flex;
+ for them, you are not even bound by the above copyright.
+
+Files: debian/*
+Copyright: 2003-2009, 2014-2016, Manoj Srivastava <srivasta@debian.org>
+License: GPL-3+
+
+Files: m4/*
+Copyright: 1994-2015, Free Software Foundation, Inc.
+License: FLEX
+ Flex carries the copyright used for BSD software, slightly modified
+ because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
+ which operates under a contract with the Department of Energy:
+ .
+ This code is derived from software contributed to Berkeley by
+ Vern Paxson.
+ .
+ The United States Government has rights in this work pursuant
+ to contract no. DE-AC03-76SF00098 between the United States
+ Department of Energy and the University of California.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+ .
+ This basically says "do whatever you please with this software except
+ remove this notice or take advantage of the University's (or the flex
+ authors') name".
+ .
+ Note that the "flex.skl" scanner skeleton carries no copyright notice.
+ You are free to do whatever you please with scanners generated using flex;
+ for them, you are not even bound by the above copyright.
+
+Files: m4/ax_prog_cc_for_build.m4
+Copyright: 2008, Paolo Bonzini <bonzini@gnu.org>
+License: FSFAP
+ Flex carries the copyright used for BSD software, slightly modified
+ because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
+ which operates under a contract with the Department of Energy:
+ .
+ This code is derived from software contributed to Berkeley by
+ Vern Paxson.
+ .
+ The United States Government has rights in this work pursuant
+ to contract no. DE-AC03-76SF00098 between the United States
+ Department of Energy and the University of California.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+ .
+ This basically says "do whatever you please with this software except
+ remove this notice or take advantage of the University's (or the flex
+ authors') name".
+ .
+ Note that the "flex.skl" scanner skeleton carries no copyright notice.
+ You are free to do whatever you please with scanners generated using flex;
+ for them, you are not even bound by the above copyright.
+
+Files: m4/libtool.m4
+Copyright: 1996-2001, 2003-2015, Free Software Foundation, Inc.
+License: GPL
+ Flex carries the copyright used for BSD software, slightly modified
+ because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
+ which operates under a contract with the Department of Energy:
+ .
+ This code is derived from software contributed to Berkeley by
+ Vern Paxson.
+ .
+ The United States Government has rights in this work pursuant
+ to contract no. DE-AC03-76SF00098 between the United States
+ Department of Energy and the University of California.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+ .
+ This basically says "do whatever you please with this software except
+ remove this notice or take advantage of the University's (or the flex
+ authors') name".
+ .
+ Note that the "flex.skl" scanner skeleton carries no copyright notice.
+ You are free to do whatever you please with scanners generated using flex;
+ for them, you are not even bound by the above copyright.
+
+Files: m4/ltoptions.m4
+ m4/ltsugar.m4
+ m4/lt~obsolete.m4
+Copyright: 2004, 2005, 2007-2009, 2011-2015, Free Software
+License: FLEX
+ Flex carries the copyright used for BSD software, slightly modified
+ because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
+ which operates under a contract with the Department of Energy:
+ .
+ This code is derived from software contributed to Berkeley by
+ Vern Paxson.
+ .
+ The United States Government has rights in this work pursuant
+ to contract no. DE-AC03-76SF00098 between the United States
+ Department of Energy and the University of California.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+ .
+ This basically says "do whatever you please with this software except
+ remove this notice or take advantage of the University's (or the flex
+ authors') name".
+ .
+ Note that the "flex.skl" scanner skeleton carries no copyright notice.
+ You are free to do whatever you please with scanners generated using flex;
+ for them, you are not even bound by the above copyright.
+
+Files: m4/nls.m4
+Copyright: 1995-2003, 2005, 2006, 2008-2010, Free Software Foundation
+License: FLEX
+ Flex carries the copyright used for BSD software, slightly modified
+ because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
+ which operates under a contract with the Department of Energy:
+ .
+ This code is derived from software contributed to Berkeley by
+ Vern Paxson.
+ .
+ The United States Government has rights in this work pursuant
+ to contract no. DE-AC03-76SF00098 between the United States
+ Department of Energy and the University of California.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+ .
+ This basically says "do whatever you please with this software except
+ remove this notice or take advantage of the University's (or the flex
+ authors') name".
+ .
+ Note that the "flex.skl" scanner skeleton carries no copyright notice.
+ You are free to do whatever you please with scanners generated using flex;
+ for them, you are not even bound by the above copyright.
+
+Files: po/Makefile.in.in
+Copyright: 1995-1997, 2000-2007, 2009, 2010, Ulrich Drepper <drepper@gnu.ai.mit.edu>
+License: GPL
+ Flex carries the copyright used for BSD software, slightly modified
+ because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
+ which operates under a contract with the Department of Energy:
+ .
+ This code is derived from software contributed to Berkeley by
+ Vern Paxson.
+ .
+ The United States Government has rights in this work pursuant
+ to contract no. DE-AC03-76SF00098 between the United States
+ Department of Energy and the University of California.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+ .
+ This basically says "do whatever you please with this software except
+ remove this notice or take advantage of the University's (or the flex
+ authors') name".
+ .
+ Note that the "flex.skl" scanner skeleton carries no copyright notice.
+ You are free to do whatever you please with scanners generated using flex;
+ for them, you are not even bound by the above copyright.
+
+Files: po/Makevars
+Copyright: for their translations to this person
+License: FLEX
+ Flex carries the copyright used for BSD software, slightly modified
+ because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
+ which operates under a contract with the Department of Energy:
+ .
+ This code is derived from software contributed to Berkeley by
+ Vern Paxson.
+ .
+ The United States Government has rights in this work pursuant
+ to contract no. DE-AC03-76SF00098 between the United States
+ Department of Energy and the University of California.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+ .
+ This basically says "do whatever you please with this software except
+ remove this notice or take advantage of the University's (or the flex
+ authors') name".
+ .
+ Note that the "flex.skl" scanner skeleton carries no copyright notice.
+ You are free to do whatever you please with scanners generated using flex;
+ for them, you are not even bound by the above copyright.
+
+Files: src/*
+Copyright: 1990, 1993, The Regents of the University of California.
+License: FLEX
+ Flex carries the copyright used for BSD software, slightly modified
+ because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
+ which operates under a contract with the Department of Energy:
+ .
+ This code is derived from software contributed to Berkeley by
+ Vern Paxson.
+ .
+ The United States Government has rights in this work pursuant
+ to contract no. DE-AC03-76SF00098 between the United States
+ Department of Energy and the University of California.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+ .
+ This basically says "do whatever you please with this software except
+ remove this notice or take advantage of the University's (or the flex
+ authors') name".
+ .
+ Note that the "flex.skl" scanner skeleton carries no copyright notice.
+ You are free to do whatever you please with scanners generated using flex;
+ for them, you are not even bound by the above copyright.
+
+Files: src/Makefile.am
+ src/filter.c
+ src/flexint.h
+ src/libfl.pc.in
+ src/libmain.c
+ src/libyywrap.c
+ src/mkskel.sh
+ src/regex.c
+ src/scan.c
+ src/skel.c
+ src/version.h
+Copyright: 2001-2008 The Flex Project.
+ 1990, 1993, 1997 The Regents of the University of California.
+ All rights reserved.
+License: FLEX
+ Flex carries the copyright used for BSD software, slightly modified
+ because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
+ which operates under a contract with the Department of Energy:
+ .
+ This code is derived from software contributed to Berkeley by
+ Vern Paxson.
+ .
+ The United States Government has rights in this work pursuant
+ to contract no. DE-AC03-76SF00098 between the United States
+ Department of Energy and the University of California.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+ .
+ This basically says "do whatever you please with this software except
+ remove this notice or take advantage of the University's (or the flex
+ authors') name".
+ .
+ Note that the "flex.skl" scanner skeleton carries no copyright notice.
+ You are free to do whatever you please with scanners generated using flex;
+ for them, you are not even bound by the above copyright.
+
+Files: src/gettext.h
+Copyright: 1995-1998, 2000-2002, Free Software Foundation, Inc.
+License: LGPL-2+
+ Flex carries the copyright used for BSD software, slightly modified
+ because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
+ which operates under a contract with the Department of Energy:
+ .
+ This code is derived from software contributed to Berkeley by
+ Vern Paxson.
+ .
+ The United States Government has rights in this work pursuant
+ to contract no. DE-AC03-76SF00098 between the United States
+ Department of Energy and the University of California.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+ .
+ This basically says "do whatever you please with this software except
+ remove this notice or take advantage of the University's (or the flex
+ authors') name".
+ .
+ Note that the "flex.skl" scanner skeleton carries no copyright notice.
+ You are free to do whatever you please with scanners generated using flex;
+ for them, you are not even bound by the above copyright.
+
+Files: src/parse.c
+ src/parse.h
+Copyright: 1984, 1989, 1990, 2000-2015, Free Software Foundation, Inc.
+License: GPL-3+
+ Flex carries the copyright used for BSD software, slightly modified
+ because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
+ which operates under a contract with the Department of Energy:
+ .
+ This code is derived from software contributed to Berkeley by
+ Vern Paxson.
+ .
+ The United States Government has rights in this work pursuant
+ to contract no. DE-AC03-76SF00098 between the United States
+ Department of Energy and the University of California.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+ .
+ This basically says "do whatever you please with this software except
+ remove this notice or take advantage of the University's (or the flex
+ authors') name".
+ .
+ Note that the "flex.skl" scanner skeleton carries no copyright notice.
+ You are free to do whatever you please with scanners generated using flex;
+ for them, you are not even bound by the above copyright.
+
+Files: tools/git2cl
+Copyright: 2007, Luis Mondesi <lemsx1@gmail.com>
+ 2007, 2008, Simon Josefsson <simon@josefsson.org>
+License: GPL-2+
+ Flex carries the copyright used for BSD software, slightly modified
+ because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
+ which operates under a contract with the Department of Energy:
+ .
+ This code is derived from software contributed to Berkeley by
+ Vern Paxson.
+ .
+ The United States Government has rights in this work pursuant
+ to contract no. DE-AC03-76SF00098 between the United States
+ Department of Energy and the University of California.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+ .
+ This basically says "do whatever you please with this software except
+ remove this notice or take advantage of the University's (or the flex
+ authors') name".
+ .
+ Note that the "flex.skl" scanner skeleton carries no copyright notice.
+ You are free to do whatever you please with scanners generated using flex;
+ for them, you are not even bound by the above copyright.
+
+License: GPL-3+
+ This package is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ .
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the complete text of the GNU General
+ Public License can be found in "/usr/share/common-licenses/GPL-3".
diff --git a/debian/flex-doc.doc-base b/debian/flex-doc.doc-base
new file mode 100644
index 0000000..e05bcbc
--- /dev/null
+++ b/debian/flex-doc.doc-base
@@ -0,0 +1,23 @@
+Document: flex-doc
+Title: flex
+Author: various
+Abstract: Fast LEXical analyzer generator
+ Flex is a tool for generating programs that perform pattern-matching on
+ text. It generates "scanners": programs which recognized lexical
+ patterns in text. `flex' reads the given input files, or its
+ standard input if no file names are given, for a description of a
+ scanner to generate. The description is in the form of pairs of
+ regular expressions and C code, called "rules". `flex' generates as
+ output a C source file, `lex.yy.c', which defines a routine
+ `yylex()'. This file is compiled and linked with the `-lfl' library
+ to produce an executable. When the executable is run, it analyzes
+ its input for occurrences of the regular expressions. Whenever it
+ finds one, it executes the corresponding C code.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/flex-doc/html/index.html
+Files: /usr/share/doc/flex-doc/html/*.html
+
+Format: PDF
+Files: /usr/share/doc/flex-doc/flex.pdf.gz
diff --git a/debian/flex-doc.docs b/debian/flex-doc.docs
new file mode 100644
index 0000000..9f1cde0
--- /dev/null
+++ b/debian/flex-doc.docs
@@ -0,0 +1,3 @@
+README.md
+doc/flex.html/
+doc/flex.pdf
diff --git a/debian/flex-doc.postinst b/debian/flex-doc.postinst
new file mode 100644
index 0000000..4ef68d2
--- /dev/null
+++ b/debian/flex-doc.postinst
@@ -0,0 +1,208 @@
+#! /bin/sh
+# -*- Mode: Sh -*-
+# postinst ---
+# Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com )
+# Created On : Fri Nov 14 11:25:07 2003
+# Created On Node : glaurung.green-gryphon.com
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Thu Dec 4 02:35:13 2003
+# Last Machine Used: glaurung.green-gryphon.com
+# Update Count : 14
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+# arch-tag: b5b8f5a7-813f-494e-8aa0-f51e8986f9ee
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+
+# Abort if any command returns an error value
+set -e
+
+package_name=flex-doc
+
+if [ -z "$package_name" ]; then
+ print >&2 "Internal Error. Please report a bug."
+ exit 1;
+fi
+
+# This script is called as the last step of the installation of the
+# package. All the package's files are in place, dpkg has already done
+# its automatic conffile handling, and all the packages we depend of
+# are already fully installed and configured.
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+# quoting from the policy:
+# Any necessary prompting should almost always be confined to the
+# post-installation script, and should be protected with a conditional
+# so that unnecessary prompting doesn't happen if a package's
+# installation fails and the `postinst' is called with `abort-upgrade',
+# `abort-remove' or `abort-deconfigure'.
+
+# The following idempotent stuff doesn't generally need protecting
+# against being run in the abort-* cases.
+
+# Create stub directories under /usr/local
+##: if test ! -d /usr/local/lib/${package_name}; then
+##: if test ! -d /usr/local/lib; then
+##: if mkdir /usr/local/lib; then
+##: chown root.staff /usr/local/lib || true
+##: chmod 2775 /usr/local/lib || true
+##: fi
+##: fi
+##: if mkdir /usr/local/lib/${package_name}; then
+##: chown root.staff /usr/local/lib/${package_name} || true
+##: chmod 2775 /usr/local/lib/${package_name} || true
+##: fi
+##: fi
+
+# Ensure the menu system is updated
+## [ ! -x /usr/bin/update-menus ] || /usr/bin/update-menus
+
+# Arrange for a daemon to be started at system boot time
+##: update-rc.d ${package_name} default >/dev/null
+
+case "$1" in
+ configure)
+ # Configure this package. If the package must prompt the user for
+ # information, do it here.
+ # Install emacs lisp files
+ ##:if [ -x /usr/lib/emacsen-common/emacs-package-install ]; then
+ ##: /usr/lib/emacsen-common/emacs-package-install $package_name
+ ##:fi
+
+
+ # Activate menu-methods script
+ ##: chmod a+x /etc/menu-methods/${package_name}
+
+ # Update ld.so cache
+ ##: ldconfig
+
+ # Make our version of a program available
+ ##: update-alternatives \
+ ##: --install /usr/bin/program program /usr/bin/alternative 50 \
+ ##: --slave /usr/man/man1/program.1.gz program.1.gz \
+ ##: /usr/man/man1/alternative.1.gz
+
+ # Tell ucf that the file in /usr/share/foo is the latest
+ # maintainer version, and let it handle how to manage the real
+ # confuguration file in /etc. This is how a static configuration
+ # file can be handled:
+ ##:if which ucf >/dev/null 2>&1; then
+ ##: ucf /usr/share/${package_name}/configuration /etc/${package_name}.conf
+ ##:fi
+
+ ### We could also do this on the fly. The following is from Tore
+ ### Anderson:
+
+ #. /usr/share/debconf/confmodule
+
+ ### find out what the user answered.
+ # db_get foo/run_on_boot
+ # run_on_boot=$RET
+ # db_stop
+
+ ### safely create a temporary file to generate our suggested
+ ### configuration file.
+ # tempfile=`tempfile`
+ # cat << _eof > $tempfile
+ ### Configuration file for Foo.
+
+ ### this was answered by you, the user in a debconf dialogue
+ # RUNONBOOT=$run_on_boot
+
+ ### this was not, as it has a sane default value.
+ # COLOUROFSKY=blue
+
+ #_eof
+
+ ### Note that some versions of debconf do not release stdin, so
+ ### the following invocation of ucf may not work, since the stdin
+ ### is never coneected to ucfr.
+
+ ### now, invoke ucf, which will take care of the rest, and ask
+ ### the user if he wants to update his file, if it is modified.
+ #ucf $tempfile /etc/foo.conf
+
+ ### done! now we'll just clear up our cruft.
+ #rm -f $tempfile
+
+
+
+ # There are three sub-cases:
+ if test "${2+set}" != set; then
+ # We're being installed by an ancient dpkg which doesn't remember
+ # which version was most recently configured, or even whether
+ # there is a most recently configured version.
+ :
+
+ elif test -z "$2" || test "$2" = "<unknown>"; then
+ # The package has not ever been configured on this system, or was
+ # purged since it was last configured.
+ :
+
+ else
+ # Version $2 is the most recently configured version of this
+ # package.
+ :
+
+ fi ;;
+ abort-upgrade)
+ # Back out of an attempt to upgrade this package FROM THIS VERSION
+ # to version $2. Undo the effects of "prerm upgrade $2".
+ :
+
+ ;;
+ abort-remove)
+ if test "$2" != in-favour; then
+ echo "$0: undocumented call to \`postinst $*'" 1>&2
+ exit 0
+ fi
+ # Back out of an attempt to remove this package, which was due to
+ # a conflict with package $3 (version $4). Undo the effects of
+ # "prerm remove in-favour $3 $4".
+ :
+
+ ;;
+ abort-deconfigure)
+ if test "$2" != in-favour || test "$5" != removing; then
+ echo "$0: undocumented call to \`postinst $*'" 1>&2
+ exit 0
+ fi
+ # Back out of an attempt to deconfigure this package, which was
+ # due to package $6 (version $7) which we depend on being removed
+ # to make way for package $3 (version $4). Undo the effects of
+ # "prerm deconfigure in-favour $3 $4 removing $6 $7".
+ :
+
+ ;;
+ *) echo "$0: didn't understand being called with \`$1'" 1>&2
+ exit 0;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/flex-doc.postrm b/debian/flex-doc.postrm
new file mode 100644
index 0000000..4d37c96
--- /dev/null
+++ b/debian/flex-doc.postrm
@@ -0,0 +1,180 @@
+#! /bin/sh
+# -*- Mode: Sh -*-
+# postrm ---
+# Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com )
+# Created On : Fri Nov 14 12:22:20 2003
+# Created On Node : glaurung.green-gryphon.com
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Tue Apr 11 13:20:24 2006
+# Last Machine Used: glaurung.internal.golden-gryphon.com
+# Update Count : 12
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+# arch-tag: 56802d51-d980-4822-85c0-28fce19ed430
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+
+# Abort if any command returns an error value
+set -e
+
+package_name=flex-doc
+
+if [ -z "$package_name" ]; then
+ print >&2 "Internal Error. Please report a bug."
+ exit 1;
+fi
+
+# This script is called twice during the removal of the package; once
+# after the removal of the package's files from the system, and as
+# the final step in the removal of this package, after the package's
+# conffiles have been removed.
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+# Ensure the menu system is updated
+# [ ! -x /usr/bin/update-menus ] || /usr/bin/update-menus
+
+case "$1" in
+ remove)
+ # This package is being removed, but its configuration has not yet
+ # been purged.
+ :
+ test ! -e /usr/share/doc/$package_name/.dhelp || \
+ rm -f /usr/share/doc/$package_name/.dhelp
+ test ! -d /usr/share/doc/$package_name || \
+ rmdir --ignore-fail-on-non-empty /usr/share/doc/$package_name
+
+ # Remove diversion
+ # dpkg-divert --package ${package_name} --remove --rename \
+ # --divert /usr/bin/other.real /usr/bin/other
+
+ # ldconfig is NOT needed during removal of a library, only during
+ # installation
+
+ ;;
+ purge)
+ # This package has previously been removed and is now having
+ # its configuration purged from the system.
+
+ # we mimic dpkg as closely as possible, so we remove configuration
+ # files with dpkg backup extensions too:
+ ### Some of the following is from Tore Anderson:
+ # for ext in '~' '%' .bak .dpkg-tmp .dpkg-new .dpkg-old .dpkg-dist; do
+ # rm -f /etc/${package_name}.conf$ext
+ # done
+
+ # remove the configuration file itself
+ # rm -f /etc/${package_name}.conf
+ test ! -e /usr/share/doc/$package_name/.dhelp || \
+ rm -f /usr/share/doc/$package_name/.dhelp
+ test ! -d /usr/share/doc/$package_name || \
+ rmdir --ignore-fail-on-non-empty /usr/share/doc/$package_name
+
+ # and finally clear it out from the ucf database
+ # ucf --purge /etc/${package_name}.conf
+
+ # Remove symlinks from /etc/rc?.d
+ # update-rc.d ${package_name} remove >/dev/null
+
+ #if [ -e /usr/share/debconf/confmodule ]; then
+ # # Purge this package's data from the debconf database.
+ # . /usr/share/debconf/confmodule
+ # db_purge
+ #fi
+
+ # This package has previously been removed and is now having
+ # its configuration purged from the system.
+ # for flavour in emacs20 emacs21; do
+ # STARTDIR=/etc/$flavour/site-start.d;
+ # STARTFILE="${package_name}-init.el";
+ # if [ -e "$STARTDIR/20$STARTFILE" ]; then
+ # rm -f "$STARTDIR/20$STARTFILE"
+ # fi
+ # done
+
+ ;;
+ disappear)
+ if test "$2" != overwriter; then
+ echo "$0: undocumented call to \`postrm $*'" 1>&2
+ exit 0
+ fi
+ # This package has been completely overwritten by package $3
+ # (version $4). All our files are already gone from the system.
+ # This is a special case: neither "prerm remove" nor "postrm remove"
+ # have been called, because dpkg didn't know that this package would
+ # disappear until this stage.
+ :
+
+ ;;
+ upgrade)
+ # About to upgrade FROM THIS VERSION to version $2 of this package.
+ # "prerm upgrade" has been called for this version, and "preinst
+ # upgrade" has been called for the new version. Last chance to
+ # clean up.
+ :
+
+ ;;
+ failed-upgrade)
+ # About to upgrade from version $2 of this package TO THIS VERSION.
+ # "prerm upgrade" has been called for the old version, and "preinst
+ # upgrade" has been called for this version. This is only used if
+ # the previous version's "postrm upgrade" couldn't handle it and
+ # returned non-zero. (Fix old postrm bugs here.)
+ :
+
+ ;;
+ abort-install)
+ # Back out of an attempt to install this package. Undo the effects of
+ # "preinst install...". There are two sub-cases.
+ :
+
+ if test "${2+set}" = set; then
+ # When the install was attempted, version $2's configuration
+ # files were still on the system. Undo the effects of "preinst
+ # install $2".
+ :
+
+ else
+ # We were being installed from scratch. Undo the effects of
+ # "preinst install".
+ :
+
+ fi ;;
+ abort-upgrade)
+ # Back out of an attempt to upgrade this package from version $2
+ # TO THIS VERSION. Undo the effects of "preinst upgrade $2".
+ :
+
+ ;;
+ *) echo "$0: didn't understand being called with \`$1'" 1>&2
+ exit 0;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/flex-doc.prerm b/debian/flex-doc.prerm
new file mode 100644
index 0000000..fbf4c6c
--- /dev/null
+++ b/debian/flex-doc.prerm
@@ -0,0 +1,123 @@
+#! /bin/sh
+# -*- Mode: Sh -*-
+# prerm ---
+# Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com )
+# Created On : Fri Nov 14 12:16:39 2003
+# Created On Node : glaurung.green-gryphon.com
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Wed Dec 3 21:16:22 2003
+# Last Machine Used: glaurung.green-gryphon.com
+# Update Count : 11
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+# arch-tag: db831a44-6be7-472f-b41c-a10de13e2f47
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+
+# Abort if any command returns an error value
+set -e
+
+package_name=flex-doc
+
+if [ -z "$package_name" ]; then
+ print >&2 "Internal Error. Please report a bug."
+ exit 1;
+fi
+
+
+# This script is called as the first step in removing the package from
+# the system. This includes cases where the user explicitly asked for
+# the package to be removed, upgrade, automatic removal due to conflicts,
+# and deconfiguration due to temporary removal of a depended-on package.
+
+case "$1" in
+ remove)
+ # This package about to be removed.
+ :
+
+ # Remove package-specific directories from /usr/local. Don't try
+ # to remove standard directories such as /usr/local/lib.
+ ##: if test -d /usr/local/lib/${package_name}; then
+ ##: rmdir /usr/local/lib/${package_name} || true
+ ##: fi
+
+ # Deactivate menu-methods script.
+ ##: chmod a-x /etc/menu-methods/${package_name}
+
+ # Withdraw our version of a program.
+ ##: update-alternatives --remove program /usr/bin/alternative
+
+ # Get rid of the byte compiled files
+ ##: if [ -x /usr/lib/emacsen-common/emacs-package-remove ]; then
+ ##: /usr/lib/emacsen-common/emacs-package-remove $package_name
+ ##: fi
+
+ if [ -L /usr/doc/$package_name ]; then
+ rm -f /usr/doc/$package_name
+ fi
+
+ # There are two sub-cases:
+ if test "${2+set}" = set; then
+ if test "$2" != in-favour; then
+ echo "$0: undocumented call to \`prerm $*'" 1>&2
+ exit 0
+ fi
+ # We are being removed because of a conflict with package $3
+ # (version $4), which is now being installed.
+ :
+
+ else
+ # The package is being removed in its own right.
+ :
+
+ fi ;;
+ deconfigure)
+ if test "$2" != in-favour || test "$5" != removing; then
+ echo "$0: undocumented call to \`prerm $*'" 1>&2
+ exit 0
+ fi
+ # Package $6 (version $7) which we depend on is being removed due
+ # to a conflict with package $3 (version $4), and this package is
+ # being deconfigured until $6 can be reinstalled.
+ :
+
+ ;;
+ upgrade)
+ # Prepare to upgrade FROM THIS VERSION of this package to version $2.
+ :
+
+ if [ -L /usr/doc/$package_name ]; then
+ rm -f /usr/doc/$package_name
+ fi
+
+ ;;
+ failed-upgrade)
+ # Prepare to upgrade from version $2 of this package TO THIS VERSION.
+ # This is only used if the old version's prerm couldn't handle it,
+ # and returned non-zero. (Fix old prerm bugs here.)
+ :
+
+ ;;
+ *) echo "$0: didn't understand being called with \`$1'" 1>&2
+ exit 0;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/flex.doc-base b/debian/flex.doc-base
new file mode 100644
index 0000000..89e9529
--- /dev/null
+++ b/debian/flex.doc-base
@@ -0,0 +1,20 @@
+Document: flex
+Title: flex
+Author: various
+Abstract: Fast LEXical analyzer generator
+ Flex is a tool for generating programs that perform pattern-matching on
+ text. It generates "scanners": programs which recognized lexical
+ patterns in text. `flex' reads the given input files, or its
+ standard input if no file names are given, for a description of a
+ scanner to generate. The description is in the form of pairs of
+ regular expressions and C code, called "rules". `flex' generates as
+ output a C source file, `lex.yy.c', which defines a routine
+ `yylex()'. This file is compiled and linked with the `-lfl' library
+ to produce an executable. When the executable is run, it analyzes
+ its input for occurrences of the regular expressions. Whenever it
+ finds one, it executes the corresponding C code.
+Section: Programming
+
+Format: info
+Index: /usr/share/info/flex.info.gz
+Files: /usr/share/info/flex.info-1.gz /usr/share/info/flex.info-2.gz
diff --git a/debian/flex.docs b/debian/flex.docs
new file mode 100644
index 0000000..1f1b949
--- /dev/null
+++ b/debian/flex.docs
@@ -0,0 +1,7 @@
+ABOUT-NLS
+AUTHORS
+NEWS
+ONEWS
+README.md
+THANKS
+debian/NEWS.Debian
diff --git a/debian/flex.examples b/debian/flex.examples
new file mode 100644
index 0000000..e07855f
--- /dev/null
+++ b/debian/flex.examples
@@ -0,0 +1,6 @@
+examples/debflex.awk
+examples/fastwc/
+examples/Makefile.am
+examples/manual/
+examples/README
+examples/testxxLexer.l
diff --git a/debian/flex.info b/debian/flex.info
new file mode 100644
index 0000000..cb4869b
--- /dev/null
+++ b/debian/flex.info
@@ -0,0 +1,3 @@
+doc/flex.info
+doc/flex.info-1
+doc/flex.info-2
diff --git a/debian/flex.install b/debian/flex.install
new file mode 100644
index 0000000..3f33f1a
--- /dev/null
+++ b/debian/flex.install
@@ -0,0 +1,2 @@
+debian/tmp/share usr
+debian/tmp/bin usr
diff --git a/debian/flex.links b/debian/flex.links
new file mode 100644
index 0000000..2f02305
--- /dev/null
+++ b/debian/flex.links
@@ -0,0 +1,3 @@
+usr/bin/flex usr/bin/lex
+usr/share/man/man1/flex.1.gz usr/share/man/man1/flex++.1.gz
+usr/share/man/man1/flex.1.gz usr/share/man/man1/lex.1.gz
diff --git a/debian/flex.manpages b/debian/flex.manpages
new file mode 100644
index 0000000..20764ce
--- /dev/null
+++ b/debian/flex.manpages
@@ -0,0 +1 @@
+doc/flex.1
diff --git a/debian/flex.postinst b/debian/flex.postinst
new file mode 100644
index 0000000..362562e
--- /dev/null
+++ b/debian/flex.postinst
@@ -0,0 +1,226 @@
+#! /bin/sh
+# -*- Mode: Sh -*-
+# postinst ---
+# Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com )
+# Created On : Fri Nov 14 11:25:07 2003
+# Created On Node : glaurung.green-gryphon.com
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Thu Dec 4 02:36:10 2003
+# Last Machine Used: glaurung.green-gryphon.com
+# Update Count : 13
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+# arch-tag: 5401e9ef-39cc-4aee-96a4-61dfb8f32cf7
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+
+# Abort if any command returns an error value
+set -e
+
+package_name=flex
+
+if [ -z "$package_name" ]; then
+ print >&2 "Internal Error. Please report a bug."
+ exit 1;
+fi
+
+# This script is called as the last step of the installation of the
+# package. All the package's files are in place, dpkg has already done
+# its automatic conffile handling, and all the packages we depend of
+# are already fully installed and configured.
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+# quoting from the policy:
+# Any necessary prompting should almost always be confined to the
+# post-installation script, and should be protected with a conditional
+# so that unnecessary prompting doesn't happen if a package's
+# installation fails and the `postinst' is called with `abort-upgrade',
+# `abort-remove' or `abort-deconfigure'.
+
+# The following idempotent stuff doesn't generally need protecting
+# against being run in the abort-* cases.
+
+# Create stub directories under /usr/local
+##: if test ! -d /usr/local/lib/${package_name}; then
+##: if test ! -d /usr/local/lib; then
+##: if mkdir /usr/local/lib; then
+##: chown root.staff /usr/local/lib || true
+##: chmod 2775 /usr/local/lib || true
+##: fi
+##: fi
+##: if mkdir /usr/local/lib/${package_name}; then
+##: chown root.staff /usr/local/lib/${package_name} || true
+##: chmod 2775 /usr/local/lib/${package_name} || true
+##: fi
+##: fi
+
+# Ensure the menu system is updated
+##: [ ! -x /usr/bin/update-menus ] || /usr/bin/update-menus
+
+# Arrange for a daemon to be started at system boot time
+##: update-rc.d ${package_name} default >/dev/null
+
+# This package uses debconf to ask a question, so source the debconf
+# confmodule as early as possible. However, it does not depend on debconf,
+# so debconf may not be installed.
+#################################################
+# if [ -e /usr/share/debconf/confmodule ]; then #
+# . /usr/share/debconf/confmodule #
+# db_capb #
+# fi #
+#################################################
+
+case "$1" in
+ configure)
+ # Configure this package. If the package must prompt the user for
+ # information, do it here.
+ # Install emacs lisp files
+ ##:if [ -x /usr/lib/emacsen-common/emacs-package-install ]; then
+ ##: /usr/lib/emacsen-common/emacs-package-install $package_name
+ ##:fi
+
+
+ # Activate menu-methods script
+ ##: chmod a+x /etc/menu-methods/${package_name}
+
+ # Update ld.so cache
+ ##: ldconfig
+
+ # Make our version of a program available
+ ##: update-alternatives \
+ ##: --install /usr/bin/program program /usr/bin/alternative 50 \
+ ##: --slave /usr/man/man1/program.1.gz program.1.gz \
+ ##: /usr/man/man1/alternative.1.gz
+
+ # Tell ucf that the file in /usr/share/foo is the latest
+ # maintainer version, and let it handle how to manage the real
+ # confuguration file in /etc. This is how a static configuration
+ # file can be handled:
+ ##:if which ucf >/dev/null 2>&1; then
+ ##: ucf /usr/share/${package_name}/configuration /etc/${package_name}.conf
+ ##:fi
+
+ ### We could also do this on the fly. The following is from Tore
+ ### Anderson:
+
+ #. /usr/share/debconf/confmodule
+
+ ### find out what the user answered.
+ # db_get foo/run_on_boot
+ # run_on_boot=$RET
+ # db_stop
+
+ ### safely create a temporary file to generate our suggested
+ ### configuration file.
+ # tempfile=`tempfile`
+ # cat << _eof > $tempfile
+ ### Configuration file for Foo.
+
+ ### this was answered by you, the user in a debconf dialogue
+ # RUNONBOOT=$run_on_boot
+
+ ### this was not, as it has a sane default value.
+ # COLOUROFSKY=blue
+
+ #_eof
+
+ ### Note that some versions of debconf do not release stdin, so
+ ### the following invocation of ucf may not work, since the stdin
+ ### is never coneected to ucfr.
+
+ ### now, invoke ucf, which will take care of the rest, and ask
+ ### the user if he wants to update his file, if it is modified.
+ #ucf $tempfile /etc/foo.conf
+
+ ### done! now we'll just clear up our cruft.
+ #rm -f $tempfile
+
+
+
+ # There are three sub-cases:
+ if test "${2+set}" != set; then
+ # We're being installed by an ancient dpkg which doesn't remember
+ # which version was most recently configured, or even whether
+ # there is a most recently configured version.
+ :
+
+ elif test -z "$2" || test "$2" = "<unknown>"; then
+ # The package has not ever been configured on this system, or was
+ # purged since it was last configured.
+ :
+
+ else
+ # Version $2 is the most recently configured version of this
+ # package.
+ :
+
+ fi ;;
+ abort-upgrade)
+ # Back out of an attempt to upgrade this package FROM THIS VERSION
+ # to version $2. Undo the effects of "prerm upgrade $2".
+ :
+
+ ;;
+ abort-remove)
+ if test "$2" != in-favour; then
+ echo "$0: undocumented call to \`postinst $*'" 1>&2
+ exit 0
+ fi
+ # Back out of an attempt to remove this package, which was due to
+ # a conflict with package $3 (version $4). Undo the effects of
+ # "prerm remove in-favour $3 $4".
+ :
+
+ ;;
+ abort-deconfigure)
+ if test "$2" != in-favour || test "$5" != removing; then
+ echo "$0: undocumented call to \`postinst $*'" 1>&2
+ exit 0
+ fi
+ # Back out of an attempt to deconfigure this package, which was
+ # due to package $6 (version $7) which we depend on being removed
+ # to make way for package $3 (version $4). Undo the effects of
+ # "prerm deconfigure in-favour $3 $4 removing $6 $7".
+ :
+
+ ;;
+ *) echo "$0: didn't understand being called with \`$1'" 1>&2
+ exit 0;;
+esac
+
+# Install doc base documentation
+##:if which install-docs >/dev/null 2>&1; then
+##: if [ -e /usr/share/doc-base/${package_name} ]; then
+##: install-docs -i /usr/share/doc-base/${package_name}
+##: fi
+##:fi
+
+#DEBHELPER#
+
+
+exit 0
diff --git a/debian/flex.prerm b/debian/flex.prerm
new file mode 100644
index 0000000..927cc3e
--- /dev/null
+++ b/debian/flex.prerm
@@ -0,0 +1,128 @@
+#! /bin/sh
+# -*- Mode: Sh -*-
+# prerm ---
+# Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com )
+# Created On : Fri Nov 14 12:16:39 2003
+# Created On Node : glaurung.green-gryphon.com
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Thu Dec 4 02:36:25 2003
+# Last Machine Used: glaurung.green-gryphon.com
+# Update Count : 10
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+# arch-tag: a4c1a888-137d-4800-98f8-93d0365422d8
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#
+
+# Abort if any command returns an error value
+set -e
+
+package_name=flex
+
+if [ -z "$package_name" ]; then
+ print >&2 "Internal Error. Please report a bug."
+ exit 1;
+fi
+
+
+# This script is called as the first step in removing the package from
+# the system. This includes cases where the user explicitly asked for
+# the package to be removed, upgrade, automatic removal due to conflicts,
+# and deconfiguration due to temporary removal of a depended-on package.
+
+case "$1" in
+ remove)
+ # This package about to be removed.
+ :
+
+ # Remove package-specific directories from /usr/local. Don't try
+ # to remove standard directories such as /usr/local/lib.
+ ##: if test -d /usr/local/lib/${package_name}; then
+ ##: rmdir /usr/local/lib/${package_name} || true
+ ##: fi
+
+ # Deactivate menu-methods script.
+ ##: chmod a-x /etc/menu-methods/${package_name}
+
+ # Withdraw our version of a program.
+ ##: update-alternatives --remove program /usr/bin/alternative
+
+ # Get rid of the installed docs
+ ##: if which install-docs >/dev/null 2>&1; then
+ ##: install-docs -r $package_name
+ ##: fi
+
+ # Get rid of the byte compiled files
+ ##: if [ -x /usr/lib/emacsen-common/emacs-package-remove ]; then
+ ##: /usr/lib/emacsen-common/emacs-package-remove $package_name
+ ##: fi
+
+ if [ -L /usr/doc/$package_name ]; then
+ rm -f /usr/doc/$package_name
+ fi
+
+ # There are two sub-cases:
+ if test "${2+set}" = set; then
+ if test "$2" != in-favour; then
+ echo "$0: undocumented call to \`prerm $*'" 1>&2
+ exit 0
+ fi
+ # We are being removed because of a conflict with package $3
+ # (version $4), which is now being installed.
+ :
+
+ else
+ # The package is being removed in its own right.
+ :
+
+ fi ;;
+ deconfigure)
+ if test "$2" != in-favour || test "$5" != removing; then
+ echo "$0: undocumented call to \`prerm $*'" 1>&2
+ exit 0
+ fi
+ # Package $6 (version $7) which we depend on is being removed due
+ # to a conflict with package $3 (version $4), and this package is
+ # being deconfigured until $6 can be reinstalled.
+ :
+
+ ;;
+ upgrade)
+ # Prepare to upgrade FROM THIS VERSION of this package to version $2.
+ :
+
+ if [ -L /usr/doc/$package_name ]; then
+ rm -f /usr/doc/$package_name
+ fi
+
+ ;;
+ failed-upgrade)
+ # Prepare to upgrade from version $2 of this package TO THIS VERSION.
+ # This is only used if the old version's prerm couldn't handle it,
+ # and returned non-zero. (Fix old prerm bugs here.)
+ :
+
+ ;;
+ *) echo "$0: didn't understand being called with \`$1'" 1>&2
+ exit 0;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/libfl-dev.docs b/debian/libfl-dev.docs
new file mode 100644
index 0000000..50fba66
--- /dev/null
+++ b/debian/libfl-dev.docs
@@ -0,0 +1,2 @@
+README.md
+debian/NEWS.Debian
diff --git a/debian/libfl-dev.install b/debian/libfl-dev.install
new file mode 100644
index 0000000..c79ed74
--- /dev/null
+++ b/debian/libfl-dev.install
@@ -0,0 +1,2 @@
+debian/tmp/include usr
+debian/tmp/lib usr
diff --git a/debian/libfl2.docs b/debian/libfl2.docs
new file mode 100644
index 0000000..50fba66
--- /dev/null
+++ b/debian/libfl2.docs
@@ -0,0 +1,2 @@
+README.md
+debian/NEWS.Debian
diff --git a/debian/libfl2.install b/debian/libfl2.install
new file mode 100644
index 0000000..4023fe8
--- /dev/null
+++ b/debian/libfl2.install
@@ -0,0 +1 @@
+debian/tmp/lib/ usr
diff --git a/debian/libfl2.symbols b/debian/libfl2.symbols
new file mode 100644
index 0000000..0925e0a
--- /dev/null
+++ b/debian/libfl2.symbols
@@ -0,0 +1,3 @@
+libfl.so.2 libfl2 #MINVER#
+ main@Base 2.5.33
+ yywrap@Base 2.5.33
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..f8ee94e
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,113 @@
+#!/usr/bin/make -f
+# Uncomment this to turn on verbose mode.
+# export DH_VERBOSE=1
+package:=flex
+SRCTOP:= $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
+INSTALL = install
+ifeq (,$(filter nostrip,$(DEB_BUILD_OPTIONS)))
+ INSTALL_PROGRAM += -s
+endif
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
+
+install_file = $(INSTALL) -p -o root -g root -m 644
+install_program = $(INSTALL) -p -o root -g root -m 755
+install_script = $(INSTALL) -p -o root -g root -m 755
+make_directory = $(INSTALL) -p -d -o root -g root -m 755
+
+DPKG_ARCH := dpkg-architecture
+export DEB_HOST_MULTIARCH := $(shell $(DPKG_ARCH) $(ha) -qDEB_HOST_MULTIARCH)
+export DEB_BUILD_MULTIARCH := $(shell $(DPKG_ARCH) $(ha) -qDEB_BUILD_MULTIARCH)
+
+# Common useful variables
+DEB_SOURCE_PACKAGE := $(strip $(shell egrep '^Source: ' $(SRCTOP)/debian/control | \
+ cut -f 2 -d ':'))
+DEB_VERSION := $(strip $(shell LC_ALL=C dpkg-parsechangelog | \
+ egrep '^Version:' | cut -f 2 -d ' '))
+DEB_NOEPOCH_VERSION := $(shell echo $(DEB_VERSION) | cut -d: -f2-)
+DEB_REVISION := $(strip $(shell echo $(DEB_NOEPOCH_VERSION) | \
+ perl -ple 's/.+\-(.+)$$/$$1/msxg'))
+DEB_UPSTREAM_VERSION := $(shell echo $(DEB_NOEPOCH_VERSION) | sed 's/-[^-]*$$//')
+
+confflags = ac_cv_lib_util_getloadavg=no
+ifneq ($(DEB_BUILD_MULTIARCH),$(DEB_HOST_MULTIARCH))
+ confflags += ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes
+endif
+
+
+%:
+ dh $@ --with autoreconf
+
+override_dh_auto_configure:
+ if ! which flex >/dev/null 2>&1; then \
+ if [ -e debian/scan.l.md5sum ] && \
+ [ "`md5sum scan.l`" = "`cat debian/scan.l.md5sum`" ]; then \
+ if [ scan.l -nt scan.c ]; then \
+ echo "scan.l newer than scan.c"; \
+ fi; \
+ touch scan.c; \
+ fi; \
+ fi
+ dh_auto_configure -- --prefix=$(PREFIX) $(confflags)
+ sed -i -e 's/^dist_doc_DATA[[:space:]]*=.*/dist_doc_DATA=/' doc/Makefile
+
+override_dh_install:
+ test ! -d debian/tmp/lib/$(DEB_HOST_MULTIARCH) || \
+ find debian/tmp/lib/$(DEB_HOST_MULTIARCH) -type f \
+ -name \*.la -exec rm {} \;
+ dh_install
+ test ! -f debian/libfl2/usr/lib/$(DEB_HOST_MULTIARCH)/libfl.so || \
+ rm -f debian/libfl2/usr/lib/$(DEB_HOST_MULTIARCH)/libfl.so
+ test ! -f debian/libfl2/usr/lib/$(DEB_HOST_MULTIARCH)/libfl.a || \
+ rm -f debian/libfl2/usr/lib/$(DEB_HOST_MULTIARCH)/libfl.a
+ test ! -d debian/libfl2/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig || \
+ rm -rf debian/libfl2/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig
+ test ! -d debian/libfl-dev/usr/lib/$(DEB_HOST_MULTIARCH) || \
+ find debian/libfl-dev/usr/lib/$(DEB_HOST_MULTIARCH) \
+ -name libfl.so.\* -exec rm {} \;
+ test ! -f debian/libfl-dev/usr/lib/$(DEB_HOST_MULTIARCH)/libfl.a || \
+ ln -s libfl.a \
+ debian/libfl-dev/usr/lib/$(DEB_HOST_MULTIARCH)/libl.a
+ rm -f debian/flex/usr/share/doc/flex/flex.pdf
+ test ! -f debian/flex/usr/share/doc/flex/COPYING || \
+ rm -f debian/flex/usr/share/doc/flex/COPYING
+ if [ -d debian/flex/usr/share/locale ] ; then \
+ find debian/flex/usr/share/locale -type d -empty -delete ; \
+ fi
+ dh_link
+
+
+override_dh_installdocs:
+ dh_installdocs
+ifneq (,$(filter flex-doc, $(shell dh_listpackages)))
+ mv debian/flex-doc/usr/share/doc/flex/flex.html/ \
+ debian/flex-doc/usr/share/doc/flex-doc/html
+ mv debian/flex-doc/usr/share/doc/flex/flex.pdf \
+ debian/flex-doc/usr/share/doc/flex-doc/
+ mv debian/flex-doc/usr/share/doc/flex/README.md \
+ debian/flex-doc/usr/share/doc/flex-doc/
+endif
+
+override_dh_auto_build:
+ dh_auto_build
+ifneq (,$(filter flex-doc, $(shell dh_listpackages)))
+ $(MAKE) -C doc flex.html flex.pdf
+endif
+ bash -n debian/flex-doc.postinst
+ bash -n debian/flex-doc.prerm
+ bash -n debian/flex.postinst
+ bash -n debian/flex.prerm
+
+.PHONY: get-orig-source
+## http://wiki.debian.org/onlyjob/get-orig-source
+get-orig-source: $(info I: $(package)_$(DEB_UPSTREAM_VERSION))
+ @echo "Downloading $(package) $(DEB_UPSTREAM_VERSION)"
+ uscan --noconf --verbose --rename --destdir=$(CURDIR) \
+ --check-dirname-level=0 --force-download \
+ --download-version $(DEB_UPSTREAM_VERSION) $(SRCTOP)
+
+#Local variables:
+#mode: makefile
+#End:
diff --git a/debian/scan.l.md5sum b/debian/scan.l.md5sum
new file mode 100644
index 0000000..d920050
--- /dev/null
+++ b/debian/scan.l.md5sum
@@ -0,0 +1 @@
+f44ac89c7b3395bc923204e728f80047 scan.l
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..d3827e7
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+1.0
diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides
new file mode 100644
index 0000000..3beb7e0
--- /dev/null
+++ b/debian/source/lintian-overrides
@@ -0,0 +1 @@
+flex source: debian-watch-may-check-gpg-signature
diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc
new file mode 100644
index 0000000..634139c
--- /dev/null
+++ b/debian/upstream/signing-key.asc
@@ -0,0 +1,29 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQENBFgOn9QBCADZ9CRkdha3rhcVvCNJkWC/qAEapo4HOW1LrtOx9qL83XRXx5uW
+GKaPJrAoKojWjVk4bslPmzG40dbMBvCe5L1/xklncM0do+54cQhny7G9O6EeZJ+R
+9wPoaKEiu49NQLbISYp3rL5onaIucZ+3z7ZWJw0RBc0vHC4UNPw00DPTPPUFUm8/
+C+IrLB6gVErzjAwHerHm0mwlJSpE1OfaQnhANzO2++epbdaw3P9SZz1u0Ci2oh4b
+qM+7tWGiLdK5AeOSvj3Bv4M+MgKdVAd+ghmdlxsgIzXkvEsjyIigD+j9YRm1UMTt
+JxVtQ4QuI4WahBQoWeGUcKpwF3Jfh2rd9YFLABEBAAG0IFdpbGwgRXN0ZXMgPHdl
+c3RlczU3NUBnbWFpbC5jb20+iQE3BBMBCAAhBQJYDp/UAhsDBQsJCAcCBhUICQoL
+AgQWAgMBAh4BAheAAAoJEOSynI1kiFMHMJkH/0hcQxQlWMwfFx2xW9xqTphmq94y
+SLsnCvlj+4JN7EefN1MZaF/bu2QhH+R8EIEkr+YToSheYPw01eAjy/1M60Pb57Ue
+tW3R4NywwjK5RWbhGQMtVI5feQZ2rYTcjOWzZyfZsypCwjWds5nRs+nv9lhf7/iF
+02IOIUGOt2RBif9wU9IEdvC0Ri4kUMtlhAc/VyiSgKwRott411TTPqi9maJZS/8I
+Xe74Nba2AGx74UoJ9OT/wUIpiUhqHUSt6HjtYz9YAuvCvtenMStomjxOm8LsibTb
+XslmE474byhofPH872rGAt12hTo67i0DGF+IohNWPInZCpR0ARdRn4huoPS5AQ0E
+WA6f1AEIAM9UTG3KMZ2VwNn60OCqi7HOQahtbf9TSBdxQjtyPaRIwSU+xNTC84Y5
+iTjQV3hksWKNlYUZy+il+Fl3EXDEZMzY1R7lRWZ87s9AhYf/eBVadELceDW7Wn41
+od5O8D7U0A8/UnSjwOuy/0bmi835d9kd2mqjWScxQJ4ZozzdJ2HseihDG6LrdT3b
+fIii5UoVlbFUF+HNQ7fwHR2zRYHA9MiEmgAtRMiEIIAshU9wmZKr5kJ1ItVW0yqk
+rmIIOWT6m6BydSoXpnxwh5hGiJtJ2pZtCvn8SzY6ExWPnXBp35oYqkRZOeNiOuMe
+L0NZe3pROsj2MESuc0WSbDGyoLaWft8AEQEAAYkBHwQYAQgACQUCWA6f1AIbDAAK
+CRDkspyNZIhTB4TaCACjUCbag/zB7t/IsiFW051Vtwu1hy1q6rqaFKExMMzFcR2T
+0ipbW/ajhpaY4bid0N9GXahoe6EZSZ5yo7kvXDr3ZYKE2WxcLZR5YJkfYdfTv5Bu
+ltFVXKZvMgkgyBS3mUH7q4kxnZ/1IXZ9VobttbV9NvP2XykzpdZAnIqYXTw3Ijq1
+Q+QFfLc3RRQIc+vKNcGuwlJS6Y5tlZWyU1krGNeQgZig+19Uyco0nmFEtEQuia03
+oyqLbzE5jxydbT++1yDKzIEj4Icr1cS0tySj+N7ldojE0riHvPZrXxWN/nrq2F6f
+yfhTmQ5JoGQXbLli52HReeTxHc05I0LlFYTS2Gba
+=nWYe
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..d0905a4
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,6 @@
+# format version number, currently 2; this line is compulsory!
+version=4
+
+opts=pgpsigurlmangle=s/(\d\S+)\.tar\.gz/$1\.tar\.gz\.sig/ \
+https://github.com/westes/@PACKAGE@/releases \
+ /westes/@PACKAGE@/releases/download/v[\d\.]*/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 523aa97..e0ff498 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -10,5 +10,5 @@ CLEANFILES = *.aux *.cp *.cps *.fn *.fns *.hk *.hks *.ky *.log \
flex.1: $(top_srcdir)/configure.ac $(top_srcdir)/src/flex.skl $(top_srcdir)/src/options.c $(top_srcdir)/src/options.h | $(FLEX)
$(HELP2MAN) --name='$(PACKAGE_NAME)' --section=1 \
--source='The Flex Project' --manual='Programming' \
- --output=$@ $(FLEX) \
+ --output=$@ $(FLEXexe) \
|| rm -f $@
diff --git a/po/LINGUAS b/po/LINGUAS
index 4c51e38..ab7f200 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1,23 +1,2 @@
-ca
-da
-de
-en@quot
-en@boldquot
-eo
-es
-fi
-fr
-ga
-hr
-ko
-nl
-pl
-pt_BR
-ro
-ru
-sr
-sv
-tr
-vi
-zh_CN
-zh_TW
+# List of available languages.
+ca da de en@boldquot en@quot eo es fi fr ga hr ko nl pl pt_BR ro ru sr sv tr uk vi zh_CN zh_TW
diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 0000000..e047fda
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,975 @@
+# Ukrainian translations for flex.
+# Copyright (C) 2017 The Flex Project (msgids)
+# This file is distributed under the same license as the flex package.
+#
+# Viktor Shepel <shepelvictor@bigmir.net>, 2017.
+# Yuri Chornoivan <yurchor@ukr.net>, 2017.
+msgid ""
+msgstr ""
+"Project-Id-Version: flex 2.5.38\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2017-05-24 18:00-0400\n"
+"PO-Revision-Date: 2017-06-17 09:26+0300\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Lokalize 1.5\n"
+
+#: src/buf.c:79
+msgid "Allocation of buffer to print string failed"
+msgstr "Не вдалось виділити буфер для рядка, що виводиться"
+
+#: src/buf.c:107
+msgid "Allocation of buffer for line directive failed"
+msgstr "Не вдалось виділити буфер для рядкової директиви"
+
+#: src/buf.c:177
+msgid "Allocation of buffer for m4 def failed"
+msgstr "Не вдалось виділити буфер для m4 def"
+
+#: src/buf.c:198
+msgid "Allocation of buffer for m4 undef failed"
+msgstr "Не вдалось виділити буфер для m4 undef"
+
+#: src/dfa.c:59
+#, c-format
+msgid "State #%d is non-accepting -\n"
+msgstr "Стан #%d не є допустимим -\n"
+
+#: src/dfa.c:119
+msgid "dangerous trailing context"
+msgstr "небезпечний замикаючий контекст"
+
+#: src/dfa.c:159
+#, c-format
+msgid " associated rule line numbers:"
+msgstr " номера рядків асоційованого правила:"
+
+#: src/dfa.c:193
+#, c-format
+msgid " out-transitions: "
+msgstr " out-переходи: "
+
+#: src/dfa.c:201
+#, c-format
+msgid ""
+"\n"
+" jam-transitions: EOF "
+msgstr ""
+"\n"
+" jam-переходи: EOF "
+
+#: src/dfa.c:331
+msgid "consistency check failed in epsclosure()"
+msgstr "помилка при перевірці на цілісність у epsclosure()"
+
+#: src/dfa.c:419
+msgid ""
+"\n"
+"\n"
+"DFA Dump:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Дамп ДСА:\n"
+"\n"
+
+#: src/dfa.c:587
+msgid "could not create unique end-of-buffer state"
+msgstr "неможливо створити унікальний стан end_of_buffer"
+
+#: src/dfa.c:608
+#, c-format
+msgid "state # %d:\n"
+msgstr "стан # %d:\n"
+
+#: src/dfa.c:768
+msgid "Could not write yynxt_tbl[][]"
+msgstr "Неможливо записати yynxt_tbl[][]"
+
+#: src/dfa.c:1028
+msgid "bad transition character detected in sympartition()"
+msgstr "виявлено невірний символ переходу в sympartition()"
+
+#: src/gen.c:480
+msgid ""
+"\n"
+"\n"
+"Equivalence Classes:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Класи еквівалентності:\n"
+"\n"
+
+#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
+#, c-format
+msgid "state # %d accepts: [%d]\n"
+msgstr "стан # %d приймає: [%d]\n"
+
+#: src/gen.c:1115
+#, c-format
+msgid "state # %d accepts: "
+msgstr "стан # %d приймає: "
+
+#: src/gen.c:1162
+msgid "Could not write yyacclist_tbl"
+msgstr "Неможливо записати yyacclist_tbl"
+
+#: src/gen.c:1236
+msgid "Could not write yyacc_tbl"
+msgstr "Неможливо записати yyacc_tbl"
+
+#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
+msgid "Could not write ecstbl"
+msgstr "Неможливо записати ecstbl"
+
+#: src/gen.c:1271
+msgid ""
+"\n"
+"\n"
+"Meta-Equivalence Classes:\n"
+msgstr ""
+"\n"
+"\n"
+"Мета-Еквівалентні Класи:\n"
+
+#: src/gen.c:1293
+msgid "Could not write yymeta_tbl"
+msgstr "Неможливо записати yymeta_tbl"
+
+#: src/gen.c:1352
+msgid "Could not write yybase_tbl"
+msgstr "Неможливо записати yybase_tbl"
+
+#: src/gen.c:1384
+msgid "Could not write yydef_tbl"
+msgstr "Неможливо записати yydef_tbl"
+
+#: src/gen.c:1422
+msgid "Could not write yynxt_tbl"
+msgstr "Неможливо записати yynxt_tbl"
+
+#: src/gen.c:1456
+msgid "Could not write yychk_tbl"
+msgstr "Неможливо записати yychk_tbl"
+
+#: src/gen.c:1608 src/gen.c:1637
+msgid "Could not write ftbl"
+msgstr "Неможливо записати ftbl"
+
+#: src/gen.c:1614
+msgid "Could not write ssltbl"
+msgstr "Неможливо записати ssltbl"
+
+#: src/gen.c:1665
+msgid "Could not write eoltbl"
+msgstr "Неможливо записати eoltbl"
+
+#: src/gen.c:1722
+msgid "Could not write yynultrans_tbl"
+msgstr "Неможливо записати yynultrans_tbl"
+
+#: src/main.c:178
+msgid "rule cannot be matched"
+msgstr "неможливо застосувати правило"
+
+#: src/main.c:183
+msgid "-s option given but default rule can be matched"
+msgstr ""
+"вказано параметр -s, але правило за замовчуванням може бути застосоване"
+
+#: src/main.c:221
+msgid "Can't use -+ with -l option"
+msgstr "Неможливо використовувати -+ з параметром -l"
+
+#: src/main.c:224
+msgid "Can't use -f or -F with -l option"
+msgstr "Неможливо використовувати -f або -F з параметром -l"
+
+#: src/main.c:228
+msgid "Can't use --reentrant or --bison-bridge with -l option"
+msgstr ""
+"Неможливо використовувати --reentrant або --bison-bridge з параметром -l"
+
+#: src/main.c:260
+msgid "-Cf/-CF and -Cm don't make sense together"
+msgstr "Параметри -Cf/-CF і -Cm разом не мають сенсу"
+
+#: src/main.c:263
+msgid "-Cf/-CF and -I are incompatible"
+msgstr "Параметри -Cf/-CF і -I несумісні"
+
+#: src/main.c:267
+msgid "-Cf/-CF are incompatible with lex-compatibility mode"
+msgstr "Параметри -Cf/-CF несумісні з режимом lex-compatibility"
+
+#: src/main.c:272
+msgid "-Cf and -CF are mutually exclusive"
+msgstr "Параметри -Cf і -CF є взаємовиключними"
+
+#: src/main.c:276
+msgid "Can't use -+ with -CF option"
+msgstr "Неможливо використовувати -+ з параметром -CF"
+
+#: src/main.c:279
+#, c-format
+msgid "%array incompatible with -+ option"
+msgstr "%array несумісний з параметром -+"
+
+#: src/main.c:284
+msgid "Options -+ and --reentrant are mutually exclusive."
+msgstr "Параметри -+ і --reentrant є взаємовиключними."
+
+#: src/main.c:287
+msgid "bison bridge not supported for the C++ scanner."
+msgstr "bison bridge не підтримується для сканера C++."
+
+#: src/main.c:336 src/main.c:419
+#, c-format
+msgid "could not create %s"
+msgstr "неможливо створити %s"
+
+#: src/main.c:431
+msgid "could not write tables header"
+msgstr "Неможливо записати заголовок таблиць"
+
+#: src/main.c:435
+#, c-format
+msgid "can't open skeleton file %s"
+msgstr "Неможливо відкрити файл-каркас %s"
+
+#: src/main.c:450
+msgid "Prefix cannot include '[' or ']'"
+msgstr "Префікс не може містити «[» або «]»"
+
+#: src/main.c:474
+msgid "allocation of macro definition failed"
+msgstr "Не вдалось розмістити визначення макросу"
+
+#: src/main.c:521
+#, c-format
+msgid "input error reading skeleton file %s"
+msgstr "помилка читання файла-каркаса %s"
+
+#: src/main.c:525
+#, c-format
+msgid "error closing skeleton file %s"
+msgstr "помилка при закритті файла-каркаса %s"
+
+#: src/main.c:711
+#, c-format
+msgid "error creating header file %s"
+msgstr "помилка створення файла-заголовку %s"
+
+#: src/main.c:719
+#, c-format
+msgid "error writing output file %s"
+msgstr "помилка запису у вихідний файл %s"
+
+#: src/main.c:723
+#, c-format
+msgid "error closing output file %s"
+msgstr "помилка закриття вихідного файла %s"
+
+#: src/main.c:727
+#, c-format
+msgid "error deleting output file %s"
+msgstr "помилка видалення вихідного файла %s"
+
+#: src/main.c:734
+#, c-format
+msgid "No backing up.\n"
+msgstr "Резервне копіювання вимкнено.\n"
+
+#: src/main.c:738
+#, c-format
+msgid "%d backing up (non-accepting) states.\n"
+msgstr "резервне копіювання %d (недопустимих) станів.\n"
+
+#: src/main.c:742
+#, c-format
+msgid "Compressed tables always back up.\n"
+msgstr "Створення резервних копій стислих таблиць виконується завжди.\n"
+
+#: src/main.c:745
+#, c-format
+msgid "error writing backup file %s"
+msgstr "помилка запису резервної копії файла %s"
+
+#: src/main.c:749
+#, c-format
+msgid "error closing backup file %s"
+msgstr "помилка закриття резервної копії файла %s"
+
+#: src/main.c:754
+#, c-format
+msgid "%s version %s usage statistics:\n"
+msgstr "статистика використання %s версії %s:\n"
+
+#: src/main.c:757
+#, c-format
+msgid " scanner options: -"
+msgstr " параметри сканера: -"
+
+#: src/main.c:836
+#, c-format
+msgid " %d/%d NFA states\n"
+msgstr " %d/%d станів НСА\n"
+
+#: src/main.c:838
+#, c-format
+msgid " %d/%d DFA states (%d words)\n"
+msgstr " %d/%d станів ДСА (%d слів)\n"
+
+#: src/main.c:840
+#, c-format
+msgid " %d rules\n"
+msgstr " %d правил\n"
+
+#: src/main.c:845
+#, c-format
+msgid " No backing up\n"
+msgstr " Резервне копіювання вимкнено\n"
+
+#: src/main.c:849
+#, c-format
+msgid " %d backing-up (non-accepting) states\n"
+msgstr " резервне копіювання %d (недопустимих) станів\n"
+
+#: src/main.c:854
+#, c-format
+msgid " Compressed tables always back-up\n"
+msgstr " Створення резервних копій стислих таблиць виконується завжди\n"
+
+#: src/main.c:858
+#, c-format
+msgid " Beginning-of-line patterns used\n"
+msgstr " Використовуються шаблони початку рядка\n"
+
+#: src/main.c:860
+#, c-format
+msgid " %d/%d start conditions\n"
+msgstr " %d/%d початкових умов\n"
+
+#: src/main.c:864
+#, c-format
+msgid " %d epsilon states, %d double epsilon states\n"
+msgstr " %d епсилон-станів, %d подвійних епсилон-станів\n"
+
+#: src/main.c:868
+#, c-format
+msgid " no character classes\n"
+msgstr " відсутні класи символів\n"
+
+#: src/main.c:872
+#, c-format
+msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
+msgstr ""
+" %d/%d символьних класів потребують %d/%d слів для зберігання, %d "
+"використано вдруге\n"
+
+#: src/main.c:877
+#, c-format
+msgid " %d state/nextstate pairs created\n"
+msgstr " створено %d пар стан/наступний-стан\n"
+
+#: src/main.c:880
+#, c-format
+msgid " %d/%d unique/duplicate transitions\n"
+msgstr " %d/%d унікальних/повторюваних переходів\n"
+
+#: src/main.c:885
+#, c-format
+msgid " %d table entries\n"
+msgstr " %d елементів таблиці\n"
+
+#: src/main.c:893
+#, c-format
+msgid " %d/%d base-def entries created\n"
+msgstr " створено %d/%d base-def елементів\n"
+
+#: src/main.c:897
+#, c-format
+msgid " %d/%d (peak %d) nxt-chk entries created\n"
+msgstr " створено %d/%d (пік %d) записів nxt-chk\n"
+
+#: src/main.c:901
+#, c-format
+msgid " %d/%d (peak %d) template nxt-chk entries created\n"
+msgstr " створено %d/%d (пік %d) шаблонних записів nxt-chk\n"
+
+#: src/main.c:905
+#, c-format
+msgid " %d empty table entries\n"
+msgstr " %d порожніх елементів таблиці\n"
+
+#: src/main.c:907
+#, c-format
+msgid " %d protos created\n"
+msgstr " створено %d прототипів\n"
+
+#: src/main.c:910
+#, c-format
+msgid " %d templates created, %d uses\n"
+msgstr " створено %d шаблонів, %d використовується\n"
+
+#: src/main.c:918
+#, c-format
+msgid " %d/%d equivalence classes created\n"
+msgstr " створено класів еквівалентності %d/%d\n"
+
+#: src/main.c:926
+#, c-format
+msgid " %d/%d meta-equivalence classes created\n"
+msgstr " створено класів мета-еквівалентності %d/%d\n"
+
+#: src/main.c:932
+#, c-format
+msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
+msgstr " %d (%d записано) колізій хеш-таблиці, %d еквівалентних ДСА\n"
+
+#: src/main.c:934
+#, c-format
+msgid " %d sets of reallocations needed\n"
+msgstr " потрібно %d наборів повторних розміщень\n"
+
+#: src/main.c:936
+#, c-format
+msgid " %d total table entries needed\n"
+msgstr " всього потрібно %d елементів таблиці\n"
+
+#: src/main.c:1010
+#, c-format
+msgid "Internal error. flexopts are malformed.\n"
+msgstr "Внутрішня помилка. Неправильне значення flexopts.\n"
+
+#: src/main.c:1020
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Спробуйте «%s --help» для отримання більш докладного опису.\n"
+
+#: src/main.c:1077
+#, c-format
+msgid "unknown -C option '%c'"
+msgstr "невідоме значення «%c» для параметру -C"
+
+#: src/main.c:1206
+#, c-format
+msgid "%s %s\n"
+msgstr "%s %s\n"
+
+#: src/main.c:1486
+msgid "fatal parse error"
+msgstr "фатальна помилка розбору"
+
+#: src/main.c:1518
+#, c-format
+msgid "could not create backing-up info file %s"
+msgstr "неможливо створити резервну копію інформаційного файла %s"
+
+#: src/main.c:1539
+#, c-format
+msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
+msgstr ""
+"Параметр -l сумісності з AT&T lex спричиняє значне зниження продуктивності\n"
+
+#: src/main.c:1542
+#, c-format
+msgid " and may be the actual source of other reported performance penalties\n"
+msgstr "і також може бути істинним джерелом проблем з продуктивністю\n"
+
+#: src/main.c:1548
+#, c-format
+msgid ""
+"%%option yylineno entails a performance penalty ONLY on rules that can match "
+"newline characters\n"
+msgstr ""
+"%%option yylineno спричиняе значне зниження продуктивності ТІЛЬКИ для "
+"правил, котрі описують символи нового рядка\n"
+
+#: src/main.c:1555
+#, c-format
+msgid "-I (interactive) entails a minor performance penalty\n"
+msgstr "-I (інтерактивний) спричиняе незначне зниження продуктивності\n"
+
+#: src/main.c:1560
+#, c-format
+msgid "yymore() entails a minor performance penalty\n"
+msgstr "yymore() спричиняе незначне зниження продуктивності\n"
+
+#: src/main.c:1566
+#, c-format
+msgid "REJECT entails a large performance penalty\n"
+msgstr "REJECT спричиняе значне зниження продуктивності\n"
+
+#: src/main.c:1571
+#, c-format
+msgid "Variable trailing context rules entail a large performance penalty\n"
+msgstr ""
+"Правила котрі мають замикаючий контекст змінної довжини значно знижують "
+"продуктивність\n"
+
+#: src/main.c:1583
+msgid "REJECT cannot be used with -f or -F"
+msgstr "REJECT не може бути використано разом з -f або -F"
+
+#: src/main.c:1586
+#, c-format
+msgid "%option yylineno cannot be used with REJECT"
+msgstr "%option yylineno не може бути використано з REJECT"
+
+#: src/main.c:1589
+msgid "variable trailing context rules cannot be used with -f or -F"
+msgstr ""
+"Правила котрі мають замикаючий контекст змінної довжини не можуть бути "
+"використані з -f or -F"
+
+#: src/main.c:1714
+#, c-format
+msgid "%option yyclass only meaningful for C++ scanners"
+msgstr "%option yyclass має сенс тільки для сканерів C++"
+
+#: src/main.c:1801
+#, c-format
+msgid "Usage: %s [OPTIONS] [FILE]...\n"
+msgstr "Використання: %s [ПАРАМЕТРИ] [ФАЙЛ]…\n"
+
+#: src/main.c:1804
+#, fuzzy, c-format
+msgid ""
+"Generates programs that perform pattern-matching on text.\n"
+"\n"
+"Table Compression:\n"
+" -Ca, --align trade off larger tables for better memory alignment\n"
+" -Ce, --ecs construct equivalence classes\n"
+" -Cf do not compress tables; use -f representation\n"
+" -CF do not compress tables; use -F representation\n"
+" -Cm, --meta-ecs construct meta-equivalence classes\n"
+" -Cr, --read use read() instead of stdio for scanner input\n"
+" -f, --full generate fast, large scanner. Same as -Cfr\n"
+" -F, --fast use alternate table representation. Same as -CFr\n"
+" -Cem default compression (same as --ecs --meta-ecs)\n"
+"\n"
+"Debugging:\n"
+" -d, --debug enable debug mode in scanner\n"
+" -b, --backup write backing-up information to %s\n"
+" -p, --perf-report write performance report to stderr\n"
+" -s, --nodefault suppress default rule to ECHO unmatched text\n"
+" -T, --trace %s should run in trace mode\n"
+" -w, --nowarn do not generate warnings\n"
+" -v, --verbose write summary of scanner statistics to stdout\n"
+" --hex use hexadecimal numbers instead of octal in debug "
+"outputs\n"
+"\n"
+"Files:\n"
+" -o, --outfile=FILE specify output filename\n"
+" -S, --skel=FILE specify skeleton file\n"
+" -t, --stdout write scanner on stdout instead of %s\n"
+" --yyclass=NAME name of C++ class\n"
+" --header-file=FILE create a C header file in addition to the "
+"scanner\n"
+" --tables-file[=FILE] write tables to FILE\n"
+"\n"
+"Scanner behavior:\n"
+" -7, --7bit generate 7-bit scanner\n"
+" -8, --8bit generate 8-bit scanner\n"
+" -B, --batch generate batch scanner (opposite of -I)\n"
+" -i, --case-insensitive ignore case in patterns\n"
+" -l, --lex-compat maximal compatibility with original lex\n"
+" -X, --posix-compat maximal compatibility with POSIX lex\n"
+" -I, --interactive generate interactive scanner (opposite of -B)\n"
+" --yylineno track line count in yylineno\n"
+"\n"
+"Generated code:\n"
+" -+, --c++ generate C++ scanner class\n"
+" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
+" -L, --noline suppress #line directives in scanner\n"
+" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
+" -R, --reentrant generate a reentrant C scanner\n"
+" --bison-bridge scanner for bison pure parser.\n"
+" --bison-locations include yylloc support.\n"
+" --stdinit initialize yyin/yyout to stdin/stdout\n"
+" --nounistd do not include <unistd.h>\n"
+" --noFUNCTION do not generate a particular FUNCTION\n"
+"\n"
+"Miscellaneous:\n"
+" -c do-nothing POSIX option\n"
+" -n do-nothing POSIX option\n"
+" -?\n"
+" -h, --help produce this help message\n"
+" -V, --version report %s version\n"
+msgstr ""
+"Генерує програми, що знаходять шаблони у тексті.\n"
+"\n"
+"Стиснення таблиць:\n"
+" -Ca, --align вирівняти таблиці у пам'яті збільшивши розмір\n"
+" їх елементів\n"
+" -Ce, --ecs створювати класи еквівалентності\n"
+" -Cf не стискати таблиці; використовувати -f представлення\n"
+" -CF не стискати таблиці; використовувати -F представлення\n"
+" -Cm, --meta-ecs створювати класи мета-еквівалентності\n"
+" -Cr, --read використати read() замість stdio як\n"
+" вхідні дані сканера\n"
+" -f, --full створити швидкий, великий сканер. Теж саме, що -Cfr\n"
+" -F, --fast застосувати альтернативний опис таблиць.\n"
+" Теж саме, що -CFr\n"
+" -Cem степінь стиснення за замовчуванням\n"
+" (теж саме, що --ecs --meta-ecs)\n"
+"\n"
+"Налагодження:\n"
+" -d, --debug увімкнути режим налагодження сканера\n"
+" -b, --backup записати резервну копію до %s\n"
+" -p, --perf-report записати звіт про продуктивність до stderr\n"
+" -s, --nodefault припинити вивід тексту (ECHO до stdout)\n"
+" що не збігається з жодним правилом\n"
+" -T, --trace %s повинен запускатися у режимі трасування\n"
+" -w, --nowarn не видавати попереджень\n"
+" -v, --verbose записати підсумкову статистику сканера до stdout\n"
+"\n"
+"Файли:\n"
+" -o, --outfile=ФАЙЛ вказати ім'я вихідного файла\n"
+" -S, --skel=ФАЙЛ вказати файл каркасу\n"
+" -t, --stdout записати сканер до stdout замість %s\n"
+" --yyclass=ІМ'Я ім'я класу C++\n"
+" --header-file=ФАЙЛ створити C файл заголовок сканера\n"
+" --tables-file[=ФАЙЛ] записати таблиці у ФАЙЛ\n"
+"\n"
+"Поведінка сканера:\n"
+" -7, --7bit створити 7-бітний сканер\n"
+" -8, --8bit створити 8-бітний сканер\n"
+" -B, --batch створити пакетний сканер\n"
+" (протилежна за властивостями до опції -I)\n"
+" -i, --case-insensitive ігнорувати регістр символів у шаблонах\n"
+" -l, --lex-compat максимальна сумісність з оригінальним lex\n"
+" -X, --posix-compat максимальна сумісність з POSIX lex\n"
+" -I, --interactive створити інтерактивний сканер\n"
+" (протилежна за властивостями до опції -B)\n"
+" --yylineno відслідковувати число рядків у yylineno\n"
+"\n"
+"Генерація коду:\n"
+" -+, --c++ створити C++ клас сканера\n"
+" -Dmacro[=defn] #define macro defn (за замовчуванням defn='1')\n"
+" -L, --noline не створювати #line директиви для сканера\n"
+" -P, --prefix=РЯДОК використати РЯДОК як префікс замість «yy»\n"
+" -R, --reentrant генерувати реентерабельний C-сканер\n"
+" --bison-bridge сканер тільки для bison аналізатору\n"
+" --bison-locations додати підтримку yylloc\n"
+" --stdinit ініціалізувати yyin/yyout до stdin/stdout\n"
+" --noansi-definitions визначення функцій у застарілому стилі\n"
+" --noansi-prototypes порожній список параметрів у прототипах\n"
+" --nounistd не додавати <unistd.h>\n"
+" --noФУНКЦІЯ не генерувати задану функцію ФУНКЦІЯ\n"
+"\n"
+"Інше:\n"
+" -с недіючий POSIX параметр\n"
+" -n недіючий POSIX параметр\n"
+" -?\n"
+" -h, --help показати цю довідку\n"
+" -V, --version показати версію %s\n"
+
+#: src/misc.c:64
+msgid "allocation of sko_stack failed"
+msgstr "не вдалось отримати пам’ять під sko_stack"
+
+#: src/misc.c:100
+#, c-format
+msgid "name \"%s\" ridiculously long"
+msgstr "ім'я «%s» занадто довге"
+
+#: src/misc.c:149 src/misc.c:162
+msgid "memory allocation failed in allocate_array()"
+msgstr "помилка виділення пам'яті у allocate_array()"
+
+#: src/misc.c:212
+#, c-format
+msgid "bad character '%s' detected in check_char()"
+msgstr "check_char() виявив недопустимий символ «%s»"
+
+#: src/misc.c:217
+#, c-format
+msgid "scanner requires -8 flag to use the character %s"
+msgstr "для використання символу %s сканер потребує опцію -8"
+
+#: src/misc.c:236
+msgid "memory allocation failure in xstrdup()"
+msgstr "помилка виділення пам'яті у xstrdup()"
+
+#: src/misc.c:310
+#, c-format
+msgid "%s: fatal internal error, %s\n"
+msgstr "%s: фатальна внутрішня помилка, %s\n"
+
+#: src/misc.c:671 src/misc.c:683
+msgid "attempt to increase array size failed"
+msgstr "помилка при спробі збільшити розмір масиву"
+
+#: src/misc.c:807
+msgid "bad line in skeleton file"
+msgstr "невідомий рядок у файлі-каркасі"
+
+#: src/misc.c:857
+msgid "memory allocation failed in yy_flex_xmalloc()"
+msgstr "помилка виділення пам'яті у yy_flex_xmalloc()"
+
+#: src/nfa.c:100
+#, c-format
+msgid ""
+"\n"
+"\n"
+"********** beginning dump of nfa with start state %d\n"
+msgstr ""
+"\n"
+"\n"
+"********** початок дампу НСА з початковим станом %d\n"
+
+#: src/nfa.c:111
+#, c-format
+msgid "state # %4d\t"
+msgstr "стан # %4d\t"
+
+#: src/nfa.c:126
+#, c-format
+msgid "********** end of dump\n"
+msgstr "********** кінець дампу\n"
+
+#: src/nfa.c:169
+msgid "empty machine in dupmachine()"
+msgstr "порожній автомат у dupmachine()"
+
+#: src/nfa.c:234
+#, c-format
+msgid "Variable trailing context rule at line %d\n"
+msgstr "Правило із замикаючим контекстом змінної довжини у стрічці %d\n"
+
+#: src/nfa.c:357
+msgid "bad state type in mark_beginning_as_normal()"
+msgstr "невідомий тип стану у mark_beginning_as_normal()"
+
+#: src/nfa.c:595
+#, c-format
+msgid "input rules are too complicated (>= %d NFA states)"
+msgstr "вхідні правила занадто складні (>= %d станів НСА)"
+
+#: src/nfa.c:673
+msgid "found too many transitions in mkxtion()"
+msgstr "знайдено занадто багато переходів у mkxtion()"
+
+#: src/nfa.c:699
+#, c-format
+msgid "too many rules (> %d)!"
+msgstr "занадто багато правил (> %d)!"
+
+#: src/parse.y:159
+msgid "unknown error processing section 1"
+msgstr "невідома помилка при обробці розділу 1"
+
+#: src/parse.y:184 src/parse.y:353
+msgid "bad start condition list"
+msgstr "невірний список початкових умов"
+
+#: src/parse.y:204
+msgid "Prefix must not contain [ or ]"
+msgstr "Префікс не може містити символи «[» або «]»"
+
+#: src/parse.y:317
+msgid "unrecognized rule"
+msgstr "нерозпізнане правило"
+
+#: src/parse.y:436 src/parse.y:449 src/parse.y:518
+msgid "trailing context used twice"
+msgstr "замикаючий контекст використано двічі"
+
+#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
+msgid "bad iteration values"
+msgstr "невірно сформований діапазон ітерацій"
+
+#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
+msgid "iteration value must be positive"
+msgstr "кількість ітерацій повинна бути додатнім числом"
+
+#: src/parse.y:806 src/parse.y:816
+#, c-format
+msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
+msgstr ""
+"використання діапазону символів [%c-%c] є двозначним для сканера, що не "
+"чутливий до регістру символів"
+
+#: src/parse.y:821
+msgid "negative range in character class"
+msgstr ""
+"символьний клас описано діапазоном, перший елемент котрого більший за "
+"останній"
+
+#: src/parse.y:918
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+"використання [:^lower:] є невизначеним для сканера, що не чутливий до "
+"регістру символів"
+
+#: src/parse.y:924
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+"використання [:^upper:] є невизначеним для сканера, що не чутливий до "
+"регістру символів"
+
+#: src/scan.l:82 src/scan.l:646 src/scan.l:704
+msgid "Input line too long\n"
+msgstr "Занадто довгий вхідний рядок\n"
+
+#: src/scan.l:183
+#, c-format
+msgid "malformed '%top' directive"
+msgstr "нерозпізнана директива «%top»"
+
+#: src/scan.l:205
+#, no-c-format
+msgid "unrecognized '%' directive"
+msgstr "нерозпізнана директива «%»"
+
+#: src/scan.l:214
+msgid "Definition name too long\n"
+msgstr "Визначення має занадто довге ім'я\n"
+
+#: src/scan.l:309
+msgid "Unmatched '{'"
+msgstr "Непарна «{»"
+
+#: src/scan.l:325
+#, c-format
+msgid "Definition value for {%s} too long\n"
+msgstr "Визначення {%s} має занадто довге значення\n"
+
+#: src/scan.l:342
+msgid "incomplete name definition"
+msgstr "неповне визначення імені"
+
+#: src/scan.l:469
+msgid "Option line too long\n"
+msgstr "Занадто довгий параметр\n"
+
+#: src/scan.l:477
+#, c-format
+msgid "unrecognized %%option: %s"
+msgstr "нерозпізнаний %%option: %s"
+
+#: src/scan.l:661 src/scan.l:834
+msgid "bad character class"
+msgstr "помилковий символьний клас"
+
+#: src/scan.l:711
+#, c-format
+msgid "undefined definition {%s}"
+msgstr "нерозпізнане визначення {%s}"
+
+#: src/scan.l:774
+msgid "unbalanced parenthesis"
+msgstr "незбалансовані круглі дужки"
+
+#: src/scan.l:789
+#, c-format
+msgid "bad <start condition>: %s"
+msgstr "невірно сформованана <умова, що активує правило>: %s"
+
+#: src/scan.l:802
+msgid "missing quote"
+msgstr "відсутні лапки"
+
+#: src/scan.l:868
+#, c-format
+msgid "bad character class expression: %s"
+msgstr "символьний клас заданий некоректним виразом: %s"
+
+#: src/scan.l:890
+msgid "bad character inside {}'s"
+msgstr "неприйнятний символ всередині {}"
+
+#: src/scan.l:896
+msgid "missing }"
+msgstr "відсутній }"
+
+#: src/scan.l:974
+msgid "EOF encountered inside an action"
+msgstr "знайдено EOF всередині коду котрий асоційований з правилом"
+
+#: src/scan.l:979
+msgid "EOF encountered inside pattern"
+msgstr "знайдено EOF всередині шаблону, що задає правило"
+
+#: src/scan.l:1012
+#, c-format
+msgid "bad character: %s"
+msgstr "неочікуваний символ: %s"
+
+#: src/scan.l:1040
+#, c-format
+msgid "can't open %s"
+msgstr "неможливо відкрити %s"
+
+#: src/scanopt.c:259
+#, c-format
+msgid "Usage: %s [OPTIONS]...\n"
+msgstr "Використання: %s [ПАРАМЕТРИ]…\n"
+
+#: src/scanopt.c:524
+#, c-format
+msgid "option `%s' doesn't allow an argument\n"
+msgstr "параметр «%s» повинен використовуватись без аргументу\n"
+
+#: src/scanopt.c:529
+#, c-format
+msgid "option `%s' requires an argument\n"
+msgstr "параметр «% s» повинен використовуватись з аргументом\n"
+
+#: src/scanopt.c:533
+#, c-format
+msgid "option `%s' is ambiguous\n"
+msgstr "параметр «%s» є двозначним\n"
+
+#: src/scanopt.c:537
+#, c-format
+msgid "Unrecognized option `%s'\n"
+msgstr "Нерозпізнаний параметр «%s»\n"
+
+#: src/scanopt.c:541
+#, c-format
+msgid "Unknown error=(%d)\n"
+msgstr "Невідома помилка=(%d)\n"
+
+#: src/sym.c:92
+msgid "symbol table memory allocation failed"
+msgstr "помилка виділення пам'яті для таблиці символів"
+
+#: src/sym.c:183
+msgid "name defined twice"
+msgstr "ім'я визначено двічі"
+
+#: src/sym.c:231
+#, c-format
+msgid "start condition %s declared twice"
+msgstr "початкова умова %s описана двічі"
+
+#: src/yylex.c:57
+msgid "premature EOF"
+msgstr "неочікуваний EOF"
+
+#: src/yylex.c:200
+#, c-format
+msgid "End Marker\n"
+msgstr "Мітка кінця\n"
+
+#: src/yylex.c:206
+#, c-format
+msgid "*Something Weird* - tok: %d val: %d\n"
+msgstr "*Щось не так* — tok: %d val: %d\n"
+
+#~ msgid "dynamic memory failure in copy_string()"
+#~ msgstr "помилка під час роботи з динамічною пам’яттю у copy_string()"
diff --git a/src/Makefile.am b/src/Makefile.am
index e379692..6e71893 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,6 +1,7 @@
AM_YFLAGS = -d
AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\"
LIBS = @LIBS@
+pkgconfigdir = @pkgconfigdir@
m4 = @M4@
@@ -11,6 +12,7 @@ endif
if ENABLE_LIBFL
lib_LTLIBRARIES = libfl.la
+pkgconfig_DATA = libfl.pc
endif
libfl_la_SOURCES = \
libmain.c \
@@ -79,6 +81,8 @@ COMMON_SOURCES = \
LDADD = $(LIBOBJS) @LIBINTL@
+$(LIBOBJS): $(LIBOBJDIR)$(am__dirstamp)
+
include_HEADERS = \
FlexLexer.h
diff --git a/src/buf.c b/src/buf.c
index 185083c..e9931bc 100644
--- a/src/buf.c
+++ b/src/buf.c
@@ -36,13 +36,13 @@
/* Take note: The buffer object is sometimes used as a String buffer (one
* continuous string), and sometimes used as a list of strings, usually line by
* line.
- *
+ *
* The type is specified in buf_init by the elt_size. If the elt_size is
* sizeof(char), then the buffer should be treated as string buffer. If the
* elt_size is sizeof(char*), then the buffer should be treated as a list of
* strings.
*
- * Certain functions are only appropriate for one type or the other.
+ * Certain functions are only appropriate for one type or the other.
*/
/* global buffers. */
diff --git a/src/ccl.c b/src/ccl.c
index ff9a213..5c5af13 100644
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -73,6 +73,13 @@ void ccladd (int cclp, int ch)
newpos = ind + len;
+ /* For a non-last cclp, expanding the set will overflow and overwrite a
+ * char in the next cclp.
+ * FIXME: Need another allocation scheme for ccl's. */
+ if (cclp != lastccl) {
+ flexfatal(_("internal error: trying to add a char to a non-last ccl.\n"));
+ }
+
if (newpos >= current_max_ccl_tbl_size) {
current_max_ccl_tbl_size += MAX_CCL_TBL_SIZE_INCREMENT;
diff --git a/src/filter.c b/src/filter.c
index 71f3635..a7e69ec 100644
--- a/src/filter.c
+++ b/src/filter.c
@@ -47,10 +47,9 @@ struct filter *filter_create_ext (struct filter *chain, const char *cmd,
va_list ap;
/* allocate and initialize new filter */
- f = malloc(sizeof(struct filter));
+ f = calloc(sizeof(struct filter), 1);
if (!f)
- flexerror(_("malloc failed (f) in filter_create_ext"));
- memset (f, 0, sizeof (*f));
+ flexerror(_("calloc failed (f) in filter_create_ext"));
f->filter_func = NULL;
f->extra = NULL;
f->next = NULL;
@@ -100,10 +99,9 @@ struct filter *filter_create_int (struct filter *chain,
struct filter *f;
/* allocate and initialize new filter */
- f = malloc(sizeof(struct filter));
+ f = calloc(sizeof(struct filter), 1);
if (!f)
- flexerror(_("malloc failed in filter_create_int"));
- memset (f, 0, sizeof (*f));
+ flexerror(_("calloc failed in filter_create_int"));
f->next = NULL;
f->argc = 0;
f->argv = NULL;
@@ -230,8 +228,7 @@ int filter_tee_header (struct filter *chain)
* header file at the same time.
*/
- const int readsz = 512;
- char *buf;
+ char buf[512];
int to_cfd = -1;
FILE *to_c = NULL, *to_h = NULL;
bool write_header;
@@ -283,10 +280,7 @@ int filter_tee_header (struct filter *chain)
fprintf (to_c, "m4_define( [[M4_YY_OUTFILE_NAME]],[[%s]])m4_dnl\n",
outfilename ? outfilename : "<stdout>");
- buf = malloc((size_t) readsz);
- if (!buf)
- flexerror(_("malloc failed in filter_tee_header"));
- while (fgets (buf, readsz, stdin)) {
+ while (fgets (buf, sizeof buf, stdin)) {
fputs (buf, to_c);
if (write_header)
fputs (buf, to_h);
@@ -328,6 +322,13 @@ int filter_tee_header (struct filter *chain)
return 0;
}
+static bool is_blank_line (const char *str)
+{
+ while (isspace(*str))
+ str++;
+ return (*str == '\0');
+}
+
/** Adjust the line numbers in the #line directives of the generated scanner.
* After the m4 expansion, the line numbers are incorrect since the m4 macros
* can add or remove lines. This only adjusts line numbers for generated code,
@@ -336,8 +337,8 @@ int filter_tee_header (struct filter *chain)
*/
int filter_fix_linedirs (struct filter *chain)
{
- char *buf;
- const size_t readsz = 512;
+ char buf[512];
+ const size_t readsz = sizeof buf;
int lineno = 1;
bool in_gen = true; /* in generated code */
bool last_was_blank = false;
@@ -345,10 +346,6 @@ int filter_fix_linedirs (struct filter *chain)
if (!chain)
return 0;
- buf = malloc(readsz);
- if (!buf)
- flexerror(_("malloc failed in filter_fix_linedirs"));
-
while (fgets (buf, (int) readsz, stdin)) {
regmatch_t m[10];
@@ -391,7 +388,7 @@ int filter_fix_linedirs (struct filter *chain)
/* Adjust the line directives. */
in_gen = true;
snprintf (buf, readsz, "#line %d \"%s\"\n",
- lineno, filename);
+ lineno + 1, filename);
}
else {
/* it's a #line directive for code we didn't write */
@@ -403,9 +400,7 @@ int filter_fix_linedirs (struct filter *chain)
}
/* squeeze blank lines from generated code */
- else if (in_gen
- && regexec (&regex_blank_line, buf, 0, NULL,
- 0) == 0) {
+ else if (in_gen && is_blank_line(buf)) {
if (last_was_blank)
continue;
else
diff --git a/src/flex.skl b/src/flex.skl
index 786c977..ba194a2 100644
--- a/src/flex.skl
+++ b/src/flex.skl
@@ -15,7 +15,7 @@
%# The quoting is "[[" and "]]" so we don't interfere with
%# user code.
%#
-%# All generate macros for the m4 stage contain the text "m4" or "M4"
+%# All generated macros for the m4 stage contain the text "m4" or "M4"
%# in them. This is to distinguish them from CPP macros.
%# The exception to this rule is YY_G, which is an m4 macro,
%# but it needs to be remain short because it is used everywhere.
@@ -3292,9 +3292,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read
/* Now eat padding. */
{
- int pad;
- pad = yypad64(rd->bread);
- while(--pad >= 0){
+ while (rd->bread % (8 * sizeof(flex_uint8_t)) > 0) {
flex_int8_t t8;
if(yytbl_read8(&t8,rd) != 0)
return -1;
diff --git a/src/flexdef.h b/src/flexdef.h
index 9dac654..a48c64d 100644
--- a/src/flexdef.h
+++ b/src/flexdef.h
@@ -44,7 +44,6 @@
#include <stdarg.h>
#include <setjmp.h>
#include <ctype.h>
-#include <libgen.h> /* for XPG version of basename(3) */
#include <string.h>
#include <math.h>
@@ -77,8 +76,10 @@
#include <strings.h>
#include "flexint.h"
-/* We use gettext. So, when we write strings which should be translated, we mark them with _() */
-#ifdef ENABLE_NLS
+/* We use gettext. So, when we write strings which should be translated, we
+ * mark them with _()
+ */
+#if defined(ENABLE_NLS) && ENABLE_NLS
#ifdef HAVE_LOCALE_H
#include <locale.h>
#endif /* HAVE_LOCALE_H */
@@ -631,10 +632,6 @@ extern int sectnum, nummt, hshcol, dfaeql, numeps, eps2, num_reallocs;
extern int tmpuses, totnst, peakpairs, numuniq, numdup, hshsave;
extern int num_backing_up, bol_needed;
-#ifndef HAVE_REALLOCARRAY
-void *reallocarray(void *, size_t, size_t);
-#endif
-
void *allocate_array(int, size_t);
void *reallocate_array(void *, int, size_t);
@@ -1131,7 +1128,7 @@ extern int filter_fix_linedirs(struct filter *chain);
* From "regex.c"
*/
-extern regex_t regex_linedir, regex_blank_line;
+extern regex_t regex_linedir;
bool flex_init_regex(void);
void flex_regcomp(regex_t *preg, const char *regex, int cflags);
char *regmatch_dup (regmatch_t * m, const char *src);
diff --git a/src/gen.c b/src/gen.c
index 590e5d8..c959f75 100644
--- a/src/gen.c
+++ b/src/gen.c
@@ -464,14 +464,14 @@ static struct yytbl_data *mkecstbl (void)
void genecs (void)
{
- int i, j;
+ int ch, row;
int numrows;
out_str_dec (get_yy_char_decl (), "yy_ec", csize);
- for (i = 1; i < csize; ++i) {
- ecgroup[i] = ABS (ecgroup[i]);
- mkdata (ecgroup[i]);
+ for (ch = 1; ch < csize; ++ch) {
+ ecgroup[ch] = ABS (ecgroup[ch]);
+ mkdata (ecgroup[ch]);
}
dataend ();
@@ -479,12 +479,13 @@ void genecs (void)
if (trace) {
fputs (_("\n\nEquivalence Classes:\n\n"), stderr);
+ /* Print in 8 columns */
numrows = csize / 8;
- for (j = 0; j < numrows; ++j) {
- for (i = j; i < csize; i = i + numrows) {
+ for (row = 0; row < numrows; ++row) {
+ for (ch = row; ch < csize; ch += numrows) {
fprintf (stderr, "%4s = %-2d",
- readable_form (i), ecgroup[i]);
+ readable_form (ch), ecgroup[ch]);
putc (' ', stderr);
}
@@ -1234,9 +1235,9 @@ void gentabs (void)
yytbl_data_compress (yyacc_tbl);
if (yytbl_data_fwrite (&tableswr, yyacc_tbl) < 0)
flexerror (_("Could not write yyacc_tbl"));
- yytbl_data_destroy (yyacc_tbl);
- yyacc_tbl = NULL;
}
+ yytbl_data_destroy (yyacc_tbl);
+ yyacc_tbl = NULL;
/* End generating yy_accept */
if (useecs) {
@@ -1289,11 +1290,10 @@ void gentabs (void)
if (tablesext) {
yytbl_data_compress (yymeta_tbl);
if (yytbl_data_fwrite (&tableswr, yymeta_tbl) < 0)
- flexerror (_
- ("Could not write yymeta_tbl"));
- yytbl_data_destroy (yymeta_tbl);
- yymeta_tbl = NULL;
+ flexerror (_("Could not write yymeta_tbl"));
}
+ yytbl_data_destroy (yymeta_tbl);
+ yymeta_tbl = NULL;
/* End generating yy_meta */
}
@@ -1350,9 +1350,9 @@ void gentabs (void)
yytbl_data_compress (yybase_tbl);
if (yytbl_data_fwrite (&tableswr, yybase_tbl) < 0)
flexerror (_("Could not write yybase_tbl"));
- yytbl_data_destroy (yybase_tbl);
- yybase_tbl = NULL;
}
+ yytbl_data_destroy (yybase_tbl);
+ yybase_tbl = NULL;
/* End generating yy_base */
@@ -1382,9 +1382,9 @@ void gentabs (void)
yytbl_data_compress (yydef_tbl);
if (yytbl_data_fwrite (&tableswr, yydef_tbl) < 0)
flexerror (_("Could not write yydef_tbl"));
- yytbl_data_destroy (yydef_tbl);
- yydef_tbl = NULL;
}
+ yytbl_data_destroy (yydef_tbl);
+ yydef_tbl = NULL;
/* End generating yy_def */
@@ -1420,9 +1420,9 @@ void gentabs (void)
yytbl_data_compress (yynxt_tbl);
if (yytbl_data_fwrite (&tableswr, yynxt_tbl) < 0)
flexerror (_("Could not write yynxt_tbl"));
- yytbl_data_destroy (yynxt_tbl);
- yynxt_tbl = NULL;
}
+ yytbl_data_destroy (yynxt_tbl);
+ yynxt_tbl = NULL;
/* End generating yy_nxt */
/* Begin generating yy_chk */
@@ -1454,9 +1454,9 @@ void gentabs (void)
yytbl_data_compress (yychk_tbl);
if (yytbl_data_fwrite (&tableswr, yychk_tbl) < 0)
flexerror (_("Could not write yychk_tbl"));
- yytbl_data_destroy (yychk_tbl);
- yychk_tbl = NULL;
}
+ yytbl_data_destroy (yychk_tbl);
+ yychk_tbl = NULL;
/* End generating yy_chk */
free(acc_array);
diff --git a/src/gettext.h b/src/gettext.h
index ea67f30..3f62961 100644
--- a/src/gettext.h
+++ b/src/gettext.h
@@ -20,7 +20,7 @@
#define _LIBGETTEXT_H 1
/* NLS can be disabled through the configure --disable-nls option. */
-#if ENABLE_NLS
+#ifdef ENABLE_NLS
/* Get declarations of GNU message catalog functions. */
# include <libintl.h>
diff --git a/src/libfl.pc.in b/src/libfl.pc.in
new file mode 100644
index 0000000..8d4240c
--- /dev/null
+++ b/src/libfl.pc.in
@@ -0,0 +1,8 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+
+Name: libfl
+Description: Flex (the fast lexical analyzer) support library
+Version: @PACKAGE_VERSION@
+Libs: -L${libdir} -lfl
diff --git a/src/main.c b/src/main.c
index e5eac44..a4047d7 100644
--- a/src/main.c
+++ b/src/main.c
@@ -117,7 +117,7 @@ struct yytbl_writer tableswr;
char *program_name = "flex";
static const char outfile_template[] = "lex.%s.%s";
-static const char backing_name[] = "lex.backup";
+static const char *backing_name = "lex.backup";
static const char tablesfile_template[] = "lex.%s.tables";
/* From scan.l */
@@ -197,7 +197,7 @@ int flex_main (int argc, char *argv[])
/* Wrapper around flex_main, so flex_main can be built as a library. */
int main (int argc, char *argv[])
{
-#if ENABLE_NLS
+#if defined(ENABLE_NLS) && ENABLE_NLS
#if HAVE_LOCALE_H
setlocale (LC_MESSAGES, "");
setlocale (LC_CTYPE, "");
@@ -648,6 +648,7 @@ void flexend (int exit_status)
"yyget_extra",
"yyget_in",
"yyget_leng",
+ "yyget_column",
"yyget_lineno",
"yyget_lloc",
"yyget_lval",
@@ -670,6 +671,7 @@ void flexend (int exit_status)
"yyset_debug",
"yyset_extra",
"yyset_in",
+ "yyset_column",
"yyset_lineno",
"yyset_lloc",
"yyset_lval",
@@ -994,7 +996,7 @@ void flexinit (int argc, char **argv)
flex_init_regex();
/* Enable C++ if program name ends with '+'. */
- program_name = basename (argv[0]);
+ program_name = argv[0];
if (program_name != NULL &&
program_name[strlen (program_name) - 1] == '+')
@@ -1033,6 +1035,11 @@ void flexinit (int argc, char **argv)
backing_up_report = true;
break;
+ case OPT_BACKUP_FILE:
+ backing_up_report = true;
+ backing_name = arg;
+ break;
+
case OPT_DONOTHING:
break;
@@ -1201,7 +1208,7 @@ void flexinit (int argc, char **argv)
break;
case OPT_VERSION:
- printf (_("%s %s\n"), program_name, flex_version);
+ printf ("%s %s\n", (C_plus_plus ? "flex++" : "flex"), flex_version);
FLEX_EXIT (0);
case OPT_WARN:
@@ -1394,6 +1401,14 @@ void flexinit (int argc, char **argv)
//buf_strdefine (&userdef_buf, "YY_NO_SET_LINENO", "1");
buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_LINENO",0);
break;
+ case OPT_NO_YYGET_COLUMN:
+ //buf_strdefine (&userdef_buf, "YY_NO_GET_COLUMN", "1");
+ buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_COLUMN",0);
+ break;
+ case OPT_NO_YYSET_COLUMN:
+ //buf_strdefine (&userdef_buf, "YY_NO_SET_COLUMN", "1");
+ buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_COLUMN",0);
+ break;
case OPT_NO_YYGET_IN:
//buf_strdefine (&userdef_buf, "YY_NO_GET_IN", "1");
buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_IN",0);
@@ -1817,7 +1832,8 @@ void usage (void)
" -t, --stdout write scanner on stdout instead of %s\n"
" --yyclass=NAME name of C++ class\n"
" --header-file=FILE create a C header file in addition to the scanner\n"
- " --tables-file[=FILE] write tables to FILE\n" "\n"
+ " --tables-file[=FILE] write tables to FILE\n"
+ " --backup-file=FILE write backing-up information to FILE\n" "\n"
"Scanner behavior:\n"
" -7, --7bit generate 7-bit scanner\n"
" -8, --8bit generate 8-bit scanner\n"
@@ -1844,6 +1860,6 @@ void usage (void)
" -?\n"
" -h, --help produce this help message\n"
" -V, --version report %s version\n"),
- backing_name, program_name, outfile_path, program_name);
+ backing_name, "flex", outfile_path, "flex");
}
diff --git a/src/misc.c b/src/misc.c
index ef27833..745e6a8 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -116,15 +116,14 @@ void add_action (const char *new_text)
int len = (int) strlen (new_text);
while (len + action_index >= action_size - 10 /* slop */ ) {
- int new_size = action_size * 2;
- if (new_size <= 0)
+ if (action_size > INT_MAX / 2)
/* Increase just a little, to try to avoid overflow
* on 16-bit machines.
*/
action_size += action_size / 8;
else
- action_size = new_size;
+ action_size = action_size * 2;
action_array =
reallocate_character_array (action_array,
@@ -141,20 +140,24 @@ void add_action (const char *new_text)
void *allocate_array (int size, size_t element_size)
{
- void *mem;
-#if HAVE_REALLOCARRAY
- /* reallocarray has built-in overflow detection */
- mem = reallocarray(NULL, (size_t) size, element_size);
+ void *new_array;
+#if HAVE_REALLOCARR
+ new_array = NULL;
+ if (reallocarr(&new_array, (size_t) size, element_size))
+ flexfatal (_("memory allocation failed in allocate_array()"));
#else
+# if HAVE_REALLOCARRAY
+ new_array = reallocarray(NULL, (size_t) size, element_size);
+# else
+ /* Do manual overflow detection */
size_t num_bytes = (size_t) size * element_size;
- mem = (size && SIZE_MAX / (size_t) size < element_size) ? NULL :
+ new_array = (size && SIZE_MAX / (size_t) size < element_size) ? NULL :
malloc(num_bytes);
+# endif
+ if (!new_array)
+ flexfatal (_("memory allocation failed in allocate_array()"));
#endif
- if (!mem)
- flexfatal (_
- ("memory allocation failed in allocate_array()"));
-
- return mem;
+ return new_array;
}
@@ -659,17 +662,22 @@ char *readable_form (int c)
void *reallocate_array (void *array, int size, size_t element_size)
{
void *new_array;
-#if HAVE_REALLOCARRAY
- /* reallocarray has built-in overflow detection */
- new_array = reallocarray(array, (size_t) size, element_size);
+#if HAVE_REALLOCARR
+ new_array = array;
+ if (reallocarr(&new_array, (size_t) size, element_size))
+ flexfatal (_("attempt to increase array size failed"));
#else
+# if HAVE_REALLOCARRAY
+ new_array = reallocarray(array, (size_t) size, element_size);
+# else
+ /* Do manual overflow detection */
size_t num_bytes = (size_t) size * element_size;
new_array = (size && SIZE_MAX / (size_t) size < element_size) ? NULL :
realloc(array, num_bytes);
-#endif
+# endif
if (!new_array)
flexfatal (_("attempt to increase array size failed"));
-
+#endif
return new_array;
}
@@ -720,7 +728,10 @@ void skelout (void)
*/
#define cmd_match(s) (strncmp(buf,(s),strlen(s))==0)
- if (buf[1] == '%') {
+ if (buf[1] == '#') {
+ /* %# indicates comment line to be ignored */
+ }
+ else if (buf[1] == '%') {
/* %% is a break point for skelout() */
return;
}
diff --git a/src/mkskel.sh b/src/mkskel.sh
index 1aa59e1..2d6ae9f 100755
--- a/src/mkskel.sh
+++ b/src/mkskel.sh
@@ -48,7 +48,7 @@ sed '/^%#/d
s/m4_/m4preproc_/g
s/a4_/4_/g
s/[\\"]/\\&/g
-s/.*/ "&",/'
+s/[^\r]*/ "&",/'
echo ' 0
};'
diff --git a/src/nfa.c b/src/nfa.c
index 9143cf6..3d9bf24 100644
--- a/src/nfa.c
+++ b/src/nfa.c
@@ -499,6 +499,8 @@ int mkor (int first, int second)
}
}
+ firstst[first] = MIN(firstst[first], firstst[second]);
+
finalst[first] = orend;
return first;
}
diff --git a/src/options.c b/src/options.c
index 366bc2e..e98159c 100644
--- a/src/options.c
+++ b/src/options.c
@@ -62,6 +62,8 @@ optspec_t flexopts[] = {
,
{"--backup", OPT_BACKUP, 0}
, /* Generate backing-up information to lex.backup. */
+ {"--backup-file=FILE", OPT_BACKUP_FILE, 0}
+ , /* Generate backing-up information to FILE. */
{"-B", OPT_BATCH, 0}
,
{"--batch", OPT_BATCH, 0}
@@ -255,6 +257,10 @@ optspec_t flexopts[] = {
,
{"--noyyset_lineno", OPT_NO_YYSET_LINENO, 0}
,
+ {"--noyyget_column", OPT_NO_YYGET_COLUMN, 0}
+ ,
+ {"--noyyset_column", OPT_NO_YYSET_COLUMN, 0}
+ ,
{"--noyyget_in", OPT_NO_YYGET_IN, 0}
,
{"--noyyset_in", OPT_NO_YYSET_IN, 0}
diff --git a/src/options.h b/src/options.h
index 5b51c23..acee275 100644
--- a/src/options.h
+++ b/src/options.h
@@ -46,6 +46,7 @@ enum flexopt_flag_t {
OPT_ALWAYS_INTERACTIVE,
OPT_ARRAY,
OPT_BACKUP,
+ OPT_BACKUP_FILE,
OPT_BATCH,
OPT_BISON_BRIDGE,
OPT_BISON_BRIDGE_LOCATIONS,
@@ -83,6 +84,7 @@ enum flexopt_flag_t {
OPT_NO_YYGET_IN,
OPT_NO_YYGET_LENG,
OPT_NO_YYGET_LINENO,
+ OPT_NO_YYGET_COLUMN,
OPT_NO_YYGET_LLOC,
OPT_NO_YYGET_LVAL,
OPT_NO_YYGET_OUT,
@@ -92,6 +94,7 @@ enum flexopt_flag_t {
OPT_NO_YYSET_EXTRA,
OPT_NO_YYSET_IN,
OPT_NO_YYSET_LINENO,
+ OPT_NO_YYSET_COLUMN,
OPT_NO_YYSET_LLOC,
OPT_NO_YYSET_LVAL,
OPT_NO_YYSET_OUT,
diff --git a/src/regex.c b/src/regex.c
index 38e658b..f4c4163 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -25,10 +25,8 @@
static const char* REGEXP_LINEDIR = "^#line ([[:digit:]]+) \"(.*)\"";
-static const char* REGEXP_BLANK_LINE = "^[[:space:]]*$";
regex_t regex_linedir; /**< matches line directives */
-regex_t regex_blank_line; /**< matches blank lines */
/** Initialize the regular expressions.
@@ -37,8 +35,6 @@ regex_t regex_blank_line; /**< matches blank lines */
bool flex_init_regex(void)
{
flex_regcomp(&regex_linedir, REGEXP_LINEDIR, REG_EXTENDED);
- flex_regcomp(&regex_blank_line, REGEXP_BLANK_LINE, REG_EXTENDED);
-
return true;
}
diff --git a/src/scan.c b/src/scan.c
index 619c998..4d84434 100644
--- a/src/scan.c
+++ b/src/scan.c
@@ -34,7 +34,7 @@
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types.
+ * if you want the limit (max/min) macros for int types.
*/
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS 1
@@ -51,7 +51,7 @@ typedef uint32_t flex_uint32_t;
typedef signed char flex_int8_t;
typedef short int flex_int16_t;
typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t;
+typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
@@ -162,10 +162,10 @@ extern FILE *yyin, *yyout;
#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2
-
+
#define YY_LESS_LINENO(n)
#define YY_LINENO_REWIND_TO(ptr)
-
+
/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
do \
@@ -2051,9 +2051,9 @@ extern int yywrap ( void );
#endif
#ifndef YY_NO_UNPUT
-
+
static void yyunput ( int c, char *buf_ptr );
-
+
#endif
#ifndef yytext_ptr
@@ -2076,11 +2076,11 @@ static int input ( void );
static int yy_start_stack_ptr = 0;
static int yy_start_stack_depth = 0;
static int *yy_start_stack = NULL;
-
+
static void yy_push_state ( int _new_state );
-
+
static void yy_pop_state ( void );
-
+
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#ifdef __ia64__
@@ -2191,7 +2191,7 @@ YY_DECL
yy_state_type yy_current_state;
char *yy_cp, *yy_bp;
int yy_act;
-
+
if ( !(yy_init) )
{
(yy_init) = 1;
@@ -3475,7 +3475,7 @@ YY_RULE_SETUP
if (lex_compat || posix_compat){
/* Push back the "?#" and treat it like a normal parens. */
yyless(1);
- sf_push();
+ sf_push();
return '(';
}
else
@@ -4428,7 +4428,7 @@ static int yy_get_next_buffer (void)
{
yy_state_type yy_current_state;
char *yy_cp;
-
+
yy_current_state = (yy_start);
yy_current_state += YY_AT_BOL();
@@ -4485,7 +4485,7 @@ static int yy_get_next_buffer (void)
static void yyunput (int c, char * yy_bp )
{
char *yy_cp;
-
+
yy_cp = (yy_c_buf_p);
/* undo effects of setting up yytext */
@@ -4530,7 +4530,7 @@ static int yy_get_next_buffer (void)
{
int c;
-
+
*(yy_c_buf_p) = (yy_hold_char);
if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
@@ -4599,12 +4599,12 @@ static int yy_get_next_buffer (void)
/** Immediately switch to a different input stream.
* @param input_file A readable stream.
- *
+ *
* @note This function does not reset the start condition to @c INITIAL .
*/
void yyrestart (FILE * input_file )
{
-
+
if ( ! YY_CURRENT_BUFFER ){
yyensure_buffer_stack ();
YY_CURRENT_BUFFER_LVALUE =
@@ -4617,11 +4617,11 @@ static int yy_get_next_buffer (void)
/** Switch to a different input buffer.
* @param new_buffer The new input buffer.
- *
+ *
*/
void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
{
-
+
/* TODO. We should be able to replace this entire function body
* with
* yypop_buffer_state();
@@ -4661,13 +4661,13 @@ static void yy_load_buffer_state (void)
/** Allocate and initialize an input buffer state.
* @param file A readable stream.
* @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- *
+ *
* @return the allocated buffer state.
*/
YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
{
YY_BUFFER_STATE b;
-
+
b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
if ( ! b )
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
@@ -4690,11 +4690,11 @@ static void yy_load_buffer_state (void)
/** Destroy the buffer.
* @param b a buffer created with yy_create_buffer()
- *
+ *
*/
void yy_delete_buffer (YY_BUFFER_STATE b )
{
-
+
if ( ! b )
return;
@@ -4715,7 +4715,7 @@ static void yy_load_buffer_state (void)
{
int oerrno = errno;
-
+
yy_flush_buffer( b );
b->yy_input_file = file;
@@ -4731,13 +4731,13 @@ static void yy_load_buffer_state (void)
}
b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-
+
errno = oerrno;
}
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
* @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- *
+ *
*/
void yy_flush_buffer (YY_BUFFER_STATE b )
{
@@ -4766,7 +4766,7 @@ static void yy_load_buffer_state (void)
* the current state. This function will allocate the stack
* if necessary.
* @param new_buffer The new state.
- *
+ *
*/
void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
{
@@ -4796,7 +4796,7 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
/** Removes and deletes the top of the stack, if present.
* The next element becomes the new top.
- *
+ *
*/
void yypop_buffer_state (void)
{
@@ -4820,7 +4820,7 @@ void yypop_buffer_state (void)
static void yyensure_buffer_stack (void)
{
yy_size_t num_to_alloc;
-
+
if (!(yy_buffer_stack)) {
/* First allocation is just for 2 elements, since we don't know if this
@@ -4863,13 +4863,13 @@ static void yyensure_buffer_stack (void)
/** Setup the input buffer state to scan directly from a user-specified character buffer.
* @param base the character buffer
* @param size the size in bytes of the character buffer
- *
+ *
* @return the newly allocated buffer state object.
*/
YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
{
YY_BUFFER_STATE b;
-
+
if ( size < 2 ||
base[size-2] != YY_END_OF_BUFFER_CHAR ||
base[size-1] != YY_END_OF_BUFFER_CHAR )
@@ -4898,14 +4898,14 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
/** Setup the input buffer state to scan a string. The next call to yylex() will
* scan from a @e copy of @a str.
* @param yystr a NUL-terminated string to scan
- *
+ *
* @return the newly allocated buffer state object.
* @note If you want to scan bytes that may contain NUL values, then use
* yy_scan_bytes() instead.
*/
YY_BUFFER_STATE yy_scan_string (const char * yystr )
{
-
+
return yy_scan_bytes( yystr, (int) strlen(yystr) );
}
@@ -4913,7 +4913,7 @@ YY_BUFFER_STATE yy_scan_string (const char * yystr )
* scan from a @e copy of @a bytes.
* @param yybytes the byte buffer to scan
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
- *
+ *
* @return the newly allocated buffer state object.
*/
YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
@@ -4922,7 +4922,7 @@ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
char *buf;
yy_size_t n;
int i;
-
+
/* Get memory for full buffer, including space for trailing EOB's. */
n = (yy_size_t) (_yybytes_len + 2);
buf = (char *) yyalloc( n );
@@ -5009,16 +5009,16 @@ static void yynoreturn yy_fatal_error (const char* msg )
/* Accessor methods (get/set functions) to struct members. */
/** Get the current line number.
- *
+ *
*/
int yyget_lineno (void)
{
-
+
return yylineno;
}
/** Get the input stream.
- *
+ *
*/
FILE *yyget_in (void)
{
@@ -5026,7 +5026,7 @@ FILE *yyget_in (void)
}
/** Get the output stream.
- *
+ *
*/
FILE *yyget_out (void)
{
@@ -5034,7 +5034,7 @@ FILE *yyget_out (void)
}
/** Get the length of the current token.
- *
+ *
*/
int yyget_leng (void)
{
@@ -5042,7 +5042,7 @@ int yyget_leng (void)
}
/** Get the current token.
- *
+ *
*/
char *yyget_text (void)
@@ -5052,18 +5052,18 @@ char *yyget_text (void)
/** Set the current line number.
* @param _line_number line number
- *
+ *
*/
void yyset_lineno (int _line_number )
{
-
+
yylineno = _line_number;
}
/** Set the input stream. This does not discard the current
* input buffer.
* @param _in_str A readable stream.
- *
+ *
* @see yy_switch_to_buffer
*/
void yyset_in (FILE * _in_str )
@@ -5121,7 +5121,7 @@ static int yy_init_globals (void)
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
int yylex_destroy (void)
{
-
+
/* Pop the buffer stack, destroying each element. */
while(YY_CURRENT_BUFFER){
yy_delete_buffer( YY_CURRENT_BUFFER );
@@ -5151,7 +5151,7 @@ int yylex_destroy (void)
#ifndef yytext_ptr
static void yy_flex_strncpy (char* s1, const char * s2, int n )
{
-
+
int i;
for ( i = 0; i < n; ++i )
s1[i] = s2[i];
@@ -5176,7 +5176,7 @@ void *yyalloc (yy_size_t size )
void *yyrealloc (void * ptr, yy_size_t size )
{
-
+
/* The cast to (char *) in the following accommodates both
* implementations that use char* generic pointers, and those
* that use void* generic pointers. It works with the latter
@@ -5232,4 +5232,3 @@ void set_input_file( char *file )
linenum = 1;
}
-
diff --git a/src/scan.l b/src/scan.l
index 66db864..4f497ac 100644
--- a/src/scan.l
+++ b/src/scan.l
@@ -1,5 +1,11 @@
/* scan.l - scanner for flex input -*-C-*- */
+%top{
+/* flexdef.h includes config.h, which may contain macros that alter the API */
+/* of libc functions. Must include first before any libc header. */
+#include "flexdef.h"
+}
+
%{
/* Copyright (c) 1990 The Regents of the University of California. */
/* All rights reserved. */
@@ -32,7 +38,6 @@
/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
/* PURPOSE. */
-#include "flexdef.h"
#include "parse.h"
extern bool tablesverify, tablesext;
extern int trlcontxt; /* Set in parse.y for each rule. */
@@ -433,6 +438,8 @@ M4QEND "]""]"
yyset_extra ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense);
yyget_leng ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense);
yyget_text ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense);
+ yyget_column ACTION_M4_IFDEF("M4""_YY_NO_GET_COLUMN", ! option_sense);
+ yyset_column ACTION_M4_IFDEF("M4""_YY_NO_SET_COLUMN", ! option_sense);
yyget_lineno ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense);
yyset_lineno ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense);
yyget_in ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense);
diff --git a/src/scanopt.c b/src/scanopt.c
index a475b6f..7a91178 100644
--- a/src/scanopt.c
+++ b/src/scanopt.c
@@ -68,7 +68,7 @@ static int PRINTLEN(struct _scanopt_t *, int);
static int RVAL(struct _scanopt_t *, int);
static int FLAGS(struct _scanopt_t *, int);
static const char *DESC(struct _scanopt_t *, int);
-static int scanopt_err(struct _scanopt_t *, int, int);
+static void scanopt_err(struct _scanopt_t *, int, int);
static int matchlongopt(char *, char **, int *, char **, int *);
static int find_opt(struct _scanopt_t *, int, char *, int, int *, int *opt_offset);
@@ -229,34 +229,23 @@ typedef struct usg_elem usg_elem;
int scanopt_usage (scanopt_t *scanner, FILE *fp, const char *usage)
{
struct _scanopt_t *s;
- int i, columns, indent = 2;
+ int i, columns;
+ const int indent = 2;
usg_elem *byr_val = NULL; /* option indices sorted by r_val */
usg_elem *store; /* array of preallocated elements. */
int store_idx = 0;
usg_elem *ue;
- int maxlen[2];
- int desccol = 0;
+ int opt_col_width = 0, desc_col_width = 0;
+ int desccol;
int print_run = 0;
- maxlen[0] = 0;
- maxlen[1] = 0;
-
s = (struct _scanopt_t *) scanner;
if (usage) {
fprintf (fp, "%s\n", usage);
}
else {
- /* Find the basename of argv[0] */
- const char *p;
-
- p = s->argv[0] + strlen (s->argv[0]);
- while (p != s->argv[0] && *p != '/')
- --p;
- if (*p == '/')
- p++;
-
- fprintf (fp, _("Usage: %s [OPTIONS]...\n"), p);
+ fprintf (fp, _("Usage: %s [OPTIONS]...\n"), s->argv[0]);
}
fprintf (fp, "\n");
@@ -324,65 +313,36 @@ int scanopt_usage (scanopt_t *scanner, FILE *fp, const char *usage)
/* first pass calculate how much room we need. */
for (ue = byr_val; ue; ue = ue->next) {
usg_elem *ap;
- int len = 0;
- int nshort = 0, nlong = 0;
-
+ int len;
-#define CALC_LEN(i) do {\
- if(FLAGS(s,i) & IS_LONG) \
- len += (nlong++||nshort) ? 2+PRINTLEN(s,i) : PRINTLEN(s,i);\
- else\
- len += (nshort++||nlong)? 2+PRINTLEN(s,i) : PRINTLEN(s,i);\
- }while(0)
+ len = PRINTLEN(s, ue->idx);
- if (!(FLAGS (s, ue->idx) & IS_LONG))
- CALC_LEN (ue->idx);
-
- /* do short aliases first. */
for (ap = ue->alias; ap; ap = ap->next) {
- if (FLAGS (s, ap->idx) & IS_LONG)
- continue;
- CALC_LEN (ap->idx);
+ len += PRINTLEN(s, ap->idx) + (int) strlen(", ");
}
- if (FLAGS (s, ue->idx) & IS_LONG)
- CALC_LEN (ue->idx);
-
- /* repeat the above loop, this time for long aliases. */
- for (ap = ue->alias; ap; ap = ap->next) {
- if (!(FLAGS (s, ap->idx) & IS_LONG))
- continue;
- CALC_LEN (ap->idx);
- }
-
- if (len > maxlen[0])
- maxlen[0] = len;
+ if (len > opt_col_width)
+ opt_col_width = len;
/* It's much easier to calculate length for description column! */
len = (int) strlen (DESC (s, ue->idx));
- if (len > maxlen[1])
- maxlen[1] = len;
+ if (len > desc_col_width)
+ desc_col_width = len;
}
/* Determine how much room we have, and how much we will allocate to each col.
* Do not address pathological cases. Output will just be ugly. */
columns = get_cols () - 1;
- if (maxlen[0] + maxlen[1] + indent * 2 > columns) {
- /* col 0 gets whatever it wants. we'll wrap the desc col. */
- maxlen[1] = columns - (maxlen[0] + indent * 2);
- if (maxlen[1] < 14) /* 14 is arbitrary lower limit on desc width. */
- maxlen[1] = INT_MAX;
+ if (opt_col_width + desc_col_width + indent * 2 > columns) {
+ /* opt col gets whatever it wants. we'll wrap the desc col. */
+ desc_col_width = columns - (opt_col_width + indent * 2);
+ if (desc_col_width < 14) /* 14 is arbitrary lower limit on desc width. */
+ desc_col_width = INT_MAX;
}
- desccol = maxlen[0] + indent * 2;
-
-#define PRINT_SPACES(fp,n)\
- do{\
- int _n;\
- _n=(n);\
- while(_n-- > 0)\
- fputc(' ',(fp));\
- }while(0)
+ desccol = opt_col_width + indent * 2;
+#define PRINT_SPACES(fp,n) \
+ fprintf((fp), "%*s", (n), "")
/* Second pass (same as above loop), this time we print. */
/* Sloppy hack: We iterate twice. The first time we print short and long options.
@@ -436,7 +396,7 @@ int scanopt_usage (scanopt_t *scanner, FILE *fp, const char *usage)
/* pad to desccol */
PRINT_SPACES (fp, desccol - nchars);
- /* Print description, wrapped to maxlen[1] columns. */
+ /* Print description, wrapped to desc_col_width columns. */
if (1) {
const char *pstart;
@@ -447,7 +407,7 @@ int scanopt_usage (scanopt_t *scanner, FILE *fp, const char *usage)
p = pstart;
- while (*p && n < maxlen[1]
+ while (*p && n < desc_col_width
&& *p != '\n') {
if (isspace ((unsigned char)(*p))
|| *p == '-') lastws =
@@ -497,7 +457,7 @@ int scanopt_usage (scanopt_t *scanner, FILE *fp, const char *usage)
#endif /* no scanopt_usage */
-static int scanopt_err (struct _scanopt_t *s, int is_short, int err)
+static void scanopt_err(struct _scanopt_t *s, int is_short, int err)
{
const char *optname = "";
char optchar[2];
@@ -542,7 +502,6 @@ static int scanopt_err (struct _scanopt_t *s, int is_short, int err)
break;
}
}
- return err;
}
@@ -729,7 +688,8 @@ int scanopt (scanopt_t *svoid, char **arg, int *optindex)
if (!find_opt
(s, 0, pstart, namelen, &errcode, &opt_offset)) {
- return scanopt_err (s, 1, errcode);
+ scanopt_err(s, 1, errcode);
+ return errcode;
}
optarg = pstart + 1;
@@ -748,8 +708,7 @@ int scanopt (scanopt_t *svoid, char **arg, int *optindex)
/* Look ahead in argv[] to see if there is something
* that we can use as an argument (if needed). */
- has_next = s->index + 1 < s->argc
- && strcmp ("--", s->argv[s->index + 1]) != 0;
+ has_next = s->index + 1 < s->argc;
optp = s->options + opt_offset;
auxp = s->aux + opt_offset;
@@ -757,9 +716,9 @@ int scanopt (scanopt_t *svoid, char **arg, int *optindex)
/* case: no args allowed */
if (auxp->flags & ARG_NONE) {
if (optarg && !is_short) {
- scanopt_err (s, is_short, errcode = SCANOPT_ERR_ARG_NOT_ALLOWED);
+ scanopt_err(s, is_short, SCANOPT_ERR_ARG_NOT_ALLOWED);
INC_INDEX (s, 1);
- return errcode;
+ return SCANOPT_ERR_ARG_NOT_ALLOWED;
}
else if (!optarg)
INC_INDEX (s, 1);
@@ -770,8 +729,10 @@ int scanopt (scanopt_t *svoid, char **arg, int *optindex)
/* case: required */
if (auxp->flags & ARG_REQ) {
- if (!optarg && !has_next)
- return scanopt_err (s, is_short, SCANOPT_ERR_ARG_NOT_FOUND);
+ if (!optarg && !has_next) {
+ scanopt_err(s, is_short, SCANOPT_ERR_ARG_NOT_FOUND);
+ return SCANOPT_ERR_ARG_NOT_FOUND;
+ }
if (!optarg) {
/* Let the next argv element become the argument. */
diff --git a/src/tables.c b/src/tables.c
index 980d2e9..182ab63 100644
--- a/src/tables.c
+++ b/src/tables.c
@@ -87,7 +87,7 @@ int yytbl_hdr_init (struct yytbl_hdr *th, const char *version_str,
th->th_magic = YYTBL_MAGIC;
th->th_hsize = (flex_uint32_t) (14 + strlen (version_str) + 1 + strlen (name) + 1);
- th->th_hsize += yypad64 (th->th_hsize);
+ th->th_hsize += (8 - (th->th_hsize % 8)) % 8; // Pad to 64-bit boundary
th->th_ssize = 0; // Not known at this point.
th->th_flags = 0;
th->th_version = xstrdup(version_str);
@@ -124,14 +124,14 @@ int yytbl_data_destroy (struct yytbl_data *td)
/** Write enough padding to bring the file pointer to a 64-bit boundary. */
static int yytbl_write_pad64 (struct yytbl_writer *wr)
{
- int pad, bwritten = 0;
+ int bwritten = 0;
- pad = yypad64 (wr->total_written);
- while (pad-- > 0)
+ while (wr->total_written % (8 * sizeof(flex_uint8_t)) > 0) {
if (yytbl_write8 (wr, 0) < 0)
return -1;
else
bwritten++;
+ }
return bwritten;
}
diff --git a/src/tables_shared.h b/src/tables_shared.h
index bbf9910..feca251 100644
--- a/src/tables_shared.h
+++ b/src/tables_shared.h
@@ -63,12 +63,6 @@ dnl flex code (hence the name "_shared").
#define YYTBL_MAGIC 0xF13C57B1
#endif
-/** Calculate (0-7) = number bytes needed to pad n to next 64-bit boundary. */
-#ifndef yypad64
-#define yypad64(n) ((8-((n)%8))%8)
-#endif
-
-
#ifndef YYTABLES_TYPES
#define YYTABLES_TYPES
/** Possible values for td_id field. Each one corresponds to a
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 2cb51df..f5a5ad0 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -333,7 +333,7 @@ pthread_pthread_LDADD = @LIBPTHREAD@
# specify how to process .l files in order to test the flex built by make all
-FLEX = $(top_builddir)/src/flex
+FLEX = $(FLEXexe)
.l.c: $(FLEX)
$(AM_V_LEX)$(FLEX) -o $@ $<
@@ -445,7 +445,7 @@ top.h: top.c
# things) and the resultant list is both long an unenlightening. And
# it can be / is generated by a shell script, tableopts.sh.
-tableopts.am: tableopts.sh
+$(srcdir)/tableopts.am: tableopts.sh
$(SHELL) $(srcdir)/tableopts.sh > $(srcdir)/tableopts.am
include $(srcdir)/tableopts.am
@@ -462,28 +462,28 @@ OPT_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_OPT_LOG_FLAGS = -d $(srcdir) -i $(srcdir)/tableopts.txt -r
tableopts_opt_nr%.c: tableopts.l4 $(FLEX)
- $(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) $* -o $@ $<
+ $(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) $(*:_F=F) -o $@ $<
-tableopts_opt_nr%.$(OBJEXT): tableopts_opt_nr%.c
+tableopts_opt_nr%.$(OBJEXT): tableopts_opt_nr%.c
$(AM_V_CC)$(COMPILE) -c -o $@ $<
tableopts_opt_r%.c: tableopts.l4 $(FLEX)
- $(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --reentrant $* -o $@ $<
+ $(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --reentrant $(subst _F,F,$*) -o $@ $<
-tableopts_opt_r%.$(OBJEXT): tableopts_opt_r%.c
+tableopts_opt_r%.$(OBJEXT): tableopts_opt_r%.c
$(AM_V_CC)$(COMPILE) -DTEST_IS_REENTRANT -c -o $@ $<
SER_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_SER_LOG_FLAGS = -d $(builddir) -i $(srcdir)/tableopts.txt -r -t
tableopts_ser_nr%.c: tableopts.l4 $(FLEX)
- $(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --tables-file="tableopts_ser_nr$*.ser.tables" $* -o $@ $<
+ $(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --tables-file="tableopts_ser_nr$*.ser.tables" $(subst _F,F,$*) -o $@ $<
-tableopts_ser_nr%.$(OBJEXT): tableopts_ser_nr%.c
+tableopts_ser_nr%.$(OBJEXT): tableopts_ser_nr%.c
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -c -o $@ $<
tableopts_ser_r%.c: tableopts.l4 $(FLEX)
- $(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) -R --tables-file="tableopts_ser_r$*.ser.tables" $* -o $@ $<
+ $(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) -R --tables-file="tableopts_ser_r$*.ser.tables" $(subst _F,F,$*) -o $@ $<
tableopts_ser_r%.$(OBJEXT): tableopts_ser_r%.c
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -DTEST_IS_REENTRANT -c -o $@ $<
@@ -492,16 +492,16 @@ VER_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
AM_VER_LOG_FLAGS = -d $(builddir) -i $(srcdir)/tableopts.txt -r -t
tableopts_ver_nr%.c: tableopts.l4 $(FLEX)
- $(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --tables-file="tableopts_ver_nr$*.ver.tables" --tables-verify $* -o $@ $<
+ $(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --tables-file="tableopts_ver_nr$*.ver.tables" --tables-verify $(subst _F,F,$*) -o $@ $<
-tableopts_ver_nr%.$(OBJEXT): tableopts_ver_nr%.c
+tableopts_ver_nr%.$(OBJEXT): tableopts_ver_nr%.c
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -c -o $@ $<
tableopts_ver_nr%.ver$(EXEEXT): tableopts_ver_nr%.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $^
tableopts_ver_r%.c: tableopts.l4 $(FLEX)
- $(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) -R --tables-file="tableopts_ver_r$*.ver.tables" --tables-verify $* -o $@ $<
+ $(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) -R --tables-file="tableopts_ver_r$*.ver.tables" --tables-verify $(subst _F,F,$*) -o $@ $<
-tableopts_ver_r%.$(OBJEXT): tableopts_ver_r%.c
+tableopts_ver_r%.$(OBJEXT): tableopts_ver_r%.c
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -DTEST_IS_REENTRANT -c -o $@ $<
diff --git a/tests/tableopts.am b/tests/tableopts.am
index 099870b..4952303 100644
--- a/tests/tableopts.am
+++ b/tests/tableopts.am
@@ -13,9 +13,9 @@ tableopts_opt_nr_Cf_opt_SOURCES = tableopts.l4
tableopts_opt_nr-Cf.opt$(EXEEXT): tableopts_opt_nr-Cf.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
-tableopts_opt_nr_CF_opt_SOURCES = tableopts.l4
+tableopts_opt_nr_C_F_opt_SOURCES = tableopts.l4
-tableopts_opt_nr-CF.opt$(EXEEXT): tableopts_opt_nr-CF.$(OBJEXT)
+tableopts_opt_nr-C_F.opt$(EXEEXT): tableopts_opt_nr-C_F.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
tableopts_opt_nr_Cm_opt_SOURCES = tableopts.l4
@@ -38,9 +38,9 @@ tableopts_opt_nr_Caef_opt_SOURCES = tableopts.l4
tableopts_opt_nr-Caef.opt$(EXEEXT): tableopts_opt_nr-Caef.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
-tableopts_opt_nr_CaeF_opt_SOURCES = tableopts.l4
+tableopts_opt_nr_Cae_F_opt_SOURCES = tableopts.l4
-tableopts_opt_nr-CaeF.opt$(EXEEXT): tableopts_opt_nr-CaeF.$(OBJEXT)
+tableopts_opt_nr-Cae_F.opt$(EXEEXT): tableopts_opt_nr-Cae_F.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
tableopts_opt_nr_Cam_opt_SOURCES = tableopts.l4
@@ -68,9 +68,9 @@ tableopts_opt_r_Cf_opt_SOURCES = tableopts.l4
tableopts_opt_r-Cf.opt$(EXEEXT): tableopts_opt_r-Cf.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
-tableopts_opt_r_CF_opt_SOURCES = tableopts.l4
+tableopts_opt_r_C_F_opt_SOURCES = tableopts.l4
-tableopts_opt_r-CF.opt$(EXEEXT): tableopts_opt_r-CF.$(OBJEXT)
+tableopts_opt_r-C_F.opt$(EXEEXT): tableopts_opt_r-C_F.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
tableopts_opt_r_Cm_opt_SOURCES = tableopts.l4
@@ -93,9 +93,9 @@ tableopts_opt_r_Caef_opt_SOURCES = tableopts.l4
tableopts_opt_r-Caef.opt$(EXEEXT): tableopts_opt_r-Caef.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
-tableopts_opt_r_CaeF_opt_SOURCES = tableopts.l4
+tableopts_opt_r_Cae_F_opt_SOURCES = tableopts.l4
-tableopts_opt_r-CaeF.opt$(EXEEXT): tableopts_opt_r-CaeF.$(OBJEXT)
+tableopts_opt_r-Cae_F.opt$(EXEEXT): tableopts_opt_r-Cae_F.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
tableopts_opt_r_Cam_opt_SOURCES = tableopts.l4
@@ -123,9 +123,9 @@ tableopts_ser_nr_Cf_ser_SOURCES = tableopts.l4
tableopts_ser_nr-Cf.ser$(EXEEXT): tableopts_ser_nr-Cf.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
-tableopts_ser_nr_CF_ser_SOURCES = tableopts.l4
+tableopts_ser_nr_C_F_ser_SOURCES = tableopts.l4
-tableopts_ser_nr-CF.ser$(EXEEXT): tableopts_ser_nr-CF.$(OBJEXT)
+tableopts_ser_nr-C_F.ser$(EXEEXT): tableopts_ser_nr-C_F.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
tableopts_ser_nr_Cm_ser_SOURCES = tableopts.l4
@@ -148,9 +148,9 @@ tableopts_ser_nr_Caef_ser_SOURCES = tableopts.l4
tableopts_ser_nr-Caef.ser$(EXEEXT): tableopts_ser_nr-Caef.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
-tableopts_ser_nr_CaeF_ser_SOURCES = tableopts.l4
+tableopts_ser_nr_Cae_F_ser_SOURCES = tableopts.l4
-tableopts_ser_nr-CaeF.ser$(EXEEXT): tableopts_ser_nr-CaeF.$(OBJEXT)
+tableopts_ser_nr-Cae_F.ser$(EXEEXT): tableopts_ser_nr-Cae_F.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
tableopts_ser_nr_Cam_ser_SOURCES = tableopts.l4
@@ -178,9 +178,9 @@ tableopts_ser_r_Cf_ser_SOURCES = tableopts.l4
tableopts_ser_r-Cf.ser$(EXEEXT): tableopts_ser_r-Cf.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
-tableopts_ser_r_CF_ser_SOURCES = tableopts.l4
+tableopts_ser_r_C_F_ser_SOURCES = tableopts.l4
-tableopts_ser_r-CF.ser$(EXEEXT): tableopts_ser_r-CF.$(OBJEXT)
+tableopts_ser_r-C_F.ser$(EXEEXT): tableopts_ser_r-C_F.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
tableopts_ser_r_Cm_ser_SOURCES = tableopts.l4
@@ -203,9 +203,9 @@ tableopts_ser_r_Caef_ser_SOURCES = tableopts.l4
tableopts_ser_r-Caef.ser$(EXEEXT): tableopts_ser_r-Caef.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
-tableopts_ser_r_CaeF_ser_SOURCES = tableopts.l4
+tableopts_ser_r_Cae_F_ser_SOURCES = tableopts.l4
-tableopts_ser_r-CaeF.ser$(EXEEXT): tableopts_ser_r-CaeF.$(OBJEXT)
+tableopts_ser_r-Cae_F.ser$(EXEEXT): tableopts_ser_r-Cae_F.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
tableopts_ser_r_Cam_ser_SOURCES = tableopts.l4
@@ -233,9 +233,9 @@ tableopts_ver_nr_Cf_ver_SOURCES = tableopts.l4
tableopts_ver_nr-Cf.ver$(EXEEXT): tableopts_ver_nr-Cf.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
-tableopts_ver_nr_CF_ver_SOURCES = tableopts.l4
+tableopts_ver_nr_C_F_ver_SOURCES = tableopts.l4
-tableopts_ver_nr-CF.ver$(EXEEXT): tableopts_ver_nr-CF.$(OBJEXT)
+tableopts_ver_nr-C_F.ver$(EXEEXT): tableopts_ver_nr-C_F.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
tableopts_ver_nr_Cm_ver_SOURCES = tableopts.l4
@@ -258,9 +258,9 @@ tableopts_ver_nr_Caef_ver_SOURCES = tableopts.l4
tableopts_ver_nr-Caef.ver$(EXEEXT): tableopts_ver_nr-Caef.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
-tableopts_ver_nr_CaeF_ver_SOURCES = tableopts.l4
+tableopts_ver_nr_Cae_F_ver_SOURCES = tableopts.l4
-tableopts_ver_nr-CaeF.ver$(EXEEXT): tableopts_ver_nr-CaeF.$(OBJEXT)
+tableopts_ver_nr-Cae_F.ver$(EXEEXT): tableopts_ver_nr-Cae_F.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
tableopts_ver_nr_Cam_ver_SOURCES = tableopts.l4
@@ -288,9 +288,9 @@ tableopts_ver_r_Cf_ver_SOURCES = tableopts.l4
tableopts_ver_r-Cf.ver$(EXEEXT): tableopts_ver_r-Cf.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
-tableopts_ver_r_CF_ver_SOURCES = tableopts.l4
+tableopts_ver_r_C_F_ver_SOURCES = tableopts.l4
-tableopts_ver_r-CF.ver$(EXEEXT): tableopts_ver_r-CF.$(OBJEXT)
+tableopts_ver_r-C_F.ver$(EXEEXT): tableopts_ver_r-C_F.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
tableopts_ver_r_Cm_ver_SOURCES = tableopts.l4
@@ -313,9 +313,9 @@ tableopts_ver_r_Caef_ver_SOURCES = tableopts.l4
tableopts_ver_r-Caef.ver$(EXEEXT): tableopts_ver_r-Caef.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
-tableopts_ver_r_CaeF_ver_SOURCES = tableopts.l4
+tableopts_ver_r_Cae_F_ver_SOURCES = tableopts.l4
-tableopts_ver_r-CaeF.ver$(EXEEXT): tableopts_ver_r-CaeF.$(OBJEXT)
+tableopts_ver_r-Cae_F.ver$(EXEEXT): tableopts_ver_r-Cae_F.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
tableopts_ver_r_Cam_ver_SOURCES = tableopts.l4
@@ -328,6 +328,6 @@ tableopts_ver_r_Caem_ver_SOURCES = tableopts.l4
tableopts_ver_r-Caem.ver$(EXEEXT): tableopts_ver_r-Caem.$(OBJEXT)
$(AM_V_CCLD)$(LINK) -o $@ $<
-TABLEOPTS_TESTS = tableopts_opt_nr-Ca.opt tableopts_opt_nr-Ce.opt tableopts_opt_nr-Cf.opt tableopts_opt_nr-CF.opt tableopts_opt_nr-Cm.opt tableopts_opt_nr-Cem.opt tableopts_opt_nr-Cae.opt tableopts_opt_nr-Caef.opt tableopts_opt_nr-CaeF.opt tableopts_opt_nr-Cam.opt tableopts_opt_nr-Caem.opt tableopts_opt_r-Ca.opt tableopts_opt_r-Ce.opt tableopts_opt_r-Cf.opt tableopts_opt_r-CF.opt tableopts_opt_r-Cm.opt tableopts_opt_r-Cem.opt tableopts_opt_r-Cae.opt tableopts_opt_r-Caef.opt tableopts_opt_r-CaeF.opt tableopts_opt_r-Cam.opt tableopts_opt_r-Caem.opt tableopts_ser_nr-Ca.ser tableopts_ser_nr-Ce.ser tableopts_ser_nr-Cf.ser tableopts_ser_nr-CF.ser tableopts_ser_nr-Cm.ser tableopts_ser_nr-Cem.ser tableopts_ser_nr-Cae.ser tableopts_ser_nr-Caef.ser tableopts_ser_nr-CaeF.ser tableopts_ser_nr-Cam.ser tableopts_ser_nr-Caem.ser tableopts_ser_r-Ca.ser tableopts_ser_r-Ce.ser tableopts_ser_r-Cf.ser tableopts_ser_r-CF.ser tableopts_ser_r-Cm.ser tableopts_ser_r-Cem.ser tableopts_ser_r-Cae.ser tableopts_ser_r-Caef.ser tableopts_ser_r-CaeF.ser tableopts_ser_r-Cam.ser tableopts_ser_r-Caem.ser tableopts_ver_nr-Ca.ver tableopts_ver_nr-Ce.ver tableopts_ver_nr-Cf.ver tableopts_ver_nr-CF.ver tableopts_ver_nr-Cm.ver tableopts_ver_nr-Cem.ver tableopts_ver_nr-Cae.ver tableopts_ver_nr-Caef.ver tableopts_ver_nr-CaeF.ver tableopts_ver_nr-Cam.ver tableopts_ver_nr-Caem.ver tableopts_ver_r-Ca.ver tableopts_ver_r-Ce.ver tableopts_ver_r-Cf.ver tableopts_ver_r-CF.ver tableopts_ver_r-Cm.ver tableopts_ver_r-Cem.ver tableopts_ver_r-Cae.ver tableopts_ver_r-Caef.ver tableopts_ver_r-CaeF.ver tableopts_ver_r-Cam.ver tableopts_ver_r-Caem.ver
+TABLEOPTS_TESTS = tableopts_opt_nr-Ca.opt tableopts_opt_nr-Ce.opt tableopts_opt_nr-Cf.opt tableopts_opt_nr-C_F.opt tableopts_opt_nr-Cm.opt tableopts_opt_nr-Cem.opt tableopts_opt_nr-Cae.opt tableopts_opt_nr-Caef.opt tableopts_opt_nr-Cae_F.opt tableopts_opt_nr-Cam.opt tableopts_opt_nr-Caem.opt tableopts_opt_r-Ca.opt tableopts_opt_r-Ce.opt tableopts_opt_r-Cf.opt tableopts_opt_r-C_F.opt tableopts_opt_r-Cm.opt tableopts_opt_r-Cem.opt tableopts_opt_r-Cae.opt tableopts_opt_r-Caef.opt tableopts_opt_r-Cae_F.opt tableopts_opt_r-Cam.opt tableopts_opt_r-Caem.opt tableopts_ser_nr-Ca.ser tableopts_ser_nr-Ce.ser tableopts_ser_nr-Cf.ser tableopts_ser_nr-C_F.ser tableopts_ser_nr-Cm.ser tableopts_ser_nr-Cem.ser tableopts_ser_nr-Cae.ser tableopts_ser_nr-Caef.ser tableopts_ser_nr-Cae_F.ser tableopts_ser_nr-Cam.ser tableopts_ser_nr-Caem.ser tableopts_ser_r-Ca.ser tableopts_ser_r-Ce.ser tableopts_ser_r-Cf.ser tableopts_ser_r-C_F.ser tableopts_ser_r-Cm.ser tableopts_ser_r-Cem.ser tableopts_ser_r-Cae.ser tableopts_ser_r-Caef.ser tableopts_ser_r-Cae_F.ser tableopts_ser_r-Cam.ser tableopts_ser_r-Caem.ser tableopts_ver_nr-Ca.ver tableopts_ver_nr-Ce.ver tableopts_ver_nr-Cf.ver tableopts_ver_nr-C_F.ver tableopts_ver_nr-Cm.ver tableopts_ver_nr-Cem.ver tableopts_ver_nr-Cae.ver tableopts_ver_nr-Caef.ver tableopts_ver_nr-Cae_F.ver tableopts_ver_nr-Cam.ver tableopts_ver_nr-Caem.ver tableopts_ver_r-Ca.ver tableopts_ver_r-Ce.ver tableopts_ver_r-Cf.ver tableopts_ver_r-C_F.ver tableopts_ver_r-Cm.ver tableopts_ver_r-Cem.ver tableopts_ver_r-Cae.ver tableopts_ver_r-Caef.ver tableopts_ver_r-Cae_F.ver tableopts_ver_r-Cam.ver tableopts_ver_r-Caem.ver
-tableopts_tables = tableopts_ser_nr-Ca.ser.tables tableopts_ser_nr-Ce.ser.tables tableopts_ser_nr-Cf.ser.tables tableopts_ser_nr-CF.ser.tables tableopts_ser_nr-Cm.ser.tables tableopts_ser_nr-Cem.ser.tables tableopts_ser_nr-Cae.ser.tables tableopts_ser_nr-Caef.ser.tables tableopts_ser_nr-CaeF.ser.tables tableopts_ser_nr-Cam.ser.tables tableopts_ser_nr-Caem.ser.tables tableopts_ser_r-Ca.ser.tables tableopts_ser_r-Ce.ser.tables tableopts_ser_r-Cf.ser.tables tableopts_ser_r-CF.ser.tables tableopts_ser_r-Cm.ser.tables tableopts_ser_r-Cem.ser.tables tableopts_ser_r-Cae.ser.tables tableopts_ser_r-Caef.ser.tables tableopts_ser_r-CaeF.ser.tables tableopts_ser_r-Cam.ser.tables tableopts_ser_r-Caem.ser.tables tableopts_ver_nr-Ca.ver.tables tableopts_ver_nr-Ce.ver.tables tableopts_ver_nr-Cf.ver.tables tableopts_ver_nr-CF.ver.tables tableopts_ver_nr-Cm.ver.tables tableopts_ver_nr-Cem.ver.tables tableopts_ver_nr-Cae.ver.tables tableopts_ver_nr-Caef.ver.tables tableopts_ver_nr-CaeF.ver.tables tableopts_ver_nr-Cam.ver.tables tableopts_ver_nr-Caem.ver.tables tableopts_ver_r-Ca.ver.tables tableopts_ver_r-Ce.ver.tables tableopts_ver_r-Cf.ver.tables tableopts_ver_r-CF.ver.tables tableopts_ver_r-Cm.ver.tables tableopts_ver_r-Cem.ver.tables tableopts_ver_r-Cae.ver.tables tableopts_ver_r-Caef.ver.tables tableopts_ver_r-CaeF.ver.tables tableopts_ver_r-Cam.ver.tables tableopts_ver_r-Caem.ver.tables
+tableopts_tables = tableopts_ser_nr-Ca.ser.tables tableopts_ser_nr-Ce.ser.tables tableopts_ser_nr-Cf.ser.tables tableopts_ser_nr-C_F.ser.tables tableopts_ser_nr-Cm.ser.tables tableopts_ser_nr-Cem.ser.tables tableopts_ser_nr-Cae.ser.tables tableopts_ser_nr-Caef.ser.tables tableopts_ser_nr-Cae_F.ser.tables tableopts_ser_nr-Cam.ser.tables tableopts_ser_nr-Caem.ser.tables tableopts_ser_r-Ca.ser.tables tableopts_ser_r-Ce.ser.tables tableopts_ser_r-Cf.ser.tables tableopts_ser_r-C_F.ser.tables tableopts_ser_r-Cm.ser.tables tableopts_ser_r-Cem.ser.tables tableopts_ser_r-Cae.ser.tables tableopts_ser_r-Caef.ser.tables tableopts_ser_r-Cae_F.ser.tables tableopts_ser_r-Cam.ser.tables tableopts_ser_r-Caem.ser.tables tableopts_ver_nr-Ca.ver.tables tableopts_ver_nr-Ce.ver.tables tableopts_ver_nr-Cf.ver.tables tableopts_ver_nr-C_F.ver.tables tableopts_ver_nr-Cm.ver.tables tableopts_ver_nr-Cem.ver.tables tableopts_ver_nr-Cae.ver.tables tableopts_ver_nr-Caef.ver.tables tableopts_ver_nr-Cae_F.ver.tables tableopts_ver_nr-Cam.ver.tables tableopts_ver_nr-Caem.ver.tables tableopts_ver_r-Ca.ver.tables tableopts_ver_r-Ce.ver.tables tableopts_ver_r-Cf.ver.tables tableopts_ver_r-C_F.ver.tables tableopts_ver_r-Cm.ver.tables tableopts_ver_r-Cem.ver.tables tableopts_ver_r-Cae.ver.tables tableopts_ver_r-Caef.ver.tables tableopts_ver_r-Cae_F.ver.tables tableopts_ver_r-Cam.ver.tables tableopts_ver_r-Caem.ver.tables
diff --git a/tests/tableopts.sh b/tests/tableopts.sh
index c1ac19e..497829e 100755
--- a/tests/tableopts.sh
+++ b/tests/tableopts.sh
@@ -17,7 +17,11 @@ tableopts_tables=""
for kind in opt ser ver ; do
for threading in nr r ; do
for opt in -Ca -Ce -Cf -CF -Cm -Cem -Cae -Caef -CaeF -Cam -Caem ; do
- testname=tableopts_${kind}_${threading}${opt}.${kind}
+ bare_opt=${opt#-}
+ # The filenames must work on case-insensitive filesystems.
+ bare_opt=`echo ${bare_opt}| sed 's/F$/_F/'`
+
+ testname=tableopts_${kind}_${threading}-${bare_opt}.${kind}
if [ "${TABLEOPTS_TESTS}" = "" ] ;then
TABLEOPTS_TESTS=${testname}
if [ "$kind" = "ser" ] || [ "$kind" = "ver" ] ; then
@@ -30,11 +34,10 @@ for kind in opt ser ver ; do
fi
fi
- bare_opt=${opt#-}
cat << EOF
tableopts_${kind}_${threading}_${bare_opt}_${kind}_SOURCES = tableopts.l4
-${testname}\$(EXEEXT): tableopts_${kind}_${threading}${opt}.\$(OBJEXT)
+${testname}\$(EXEEXT): tableopts_${kind}_${threading}-${bare_opt}.\$(OBJEXT)
\$(AM_V_CCLD)\$(LINK) -o \$@ \$<
EOF
diff --git a/tests/testwrapper-direct.sh b/tests/testwrapper-direct.sh
index 589ad33..9160501 100755
--- a/tests/testwrapper-direct.sh
+++ b/tests/testwrapper-direct.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-set -vx
+echo 'set -euvx'
set -euvx
# testwrapper-direct.sh: run some specialized flex tests that care where
diff --git a/tests/testwrapper.sh b/tests/testwrapper.sh
index 6a7e666..293f8cc 100755
--- a/tests/testwrapper.sh
+++ b/tests/testwrapper.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-set -vx
+echo 'set -euvx'
set -euvx
# testwrapper.sh: run a flex test, typically called by a Makefile