http://invisible-island.net/
Copyright © 2001-2017,2022 by Thomas E. Dickey
This is a collection of some of the patches which I have made to GNU programs. I have submitted these patches to the appropriate maintainers, but received no acknowledgment. That is, they were ignored. In a few other cases, I have seen my changes incorporated without credit, but that is another matter. The former (nonexistent or non-responsive maintainers) are preferable to the latter (egotistical plagiarists). Here's a quote from one of the latter's (not a GNU maintainer) build instructions:
Once again, there should be no errors.
You'll get lots of warnings, just ignore them.
locate
when there was too great a change in
lengths between "adjacent" directory names.-exec
option does not work.Flex of course is not a part of the GNU project. It is distributed under a modified BSD license. However, many people continue to assume it is GNU software; this page is a convenient place to document this patch (until I add an analogous page for other patches).
flex
by repairing some of the damage done by the
"new" flex's moving some of its namespace into
m4
macros.
Flex
, as you note here is not a GNU
program.
So-called "new" flex
is an orphaned project
here. which has
been packaged in Debian/unstable since 2003. The Debian
package maintainer has been attempting to breath life into it
ever since, although its developers have abandoned it. For
practical purposes, he is the program's maintainer, but does
not have a good grasp of its design. Consequently,
development (other than build-fixes) has stopped.
More interesting, however, is the notion of making
flex
depend upon m4
. That detracts
from its portability (read the code and think about it). The
immediate problem addressed by this patch is that by making
m4-macros of flex's output, it makes the -P
option rename the yytext
and yyleng
variables, rather than provide both the names. That makes it
not comply with POSIX (some mailing list discussion noted via
google a while back hinted that the developers needed some
help there).
/usr/include/bits/string2.h
patch
with Visual
C++ and Borland C:Modify to make this work with win32 compilers (Visual C++ and Borland C), by adding module raf.c which sidesteps the non-POSIX use of fseek and ftell to address the patch file by characters.
Make PARAMS() macro consistently defined/used across modules, to allow this to compile with Borland C. (2.5.4's note about converting C sources to ANSI prototypes is misleading).
Make redefinition of const
within some C
files only happen if the config.h header is not used.
Fix broken ifdef's for stdarg/varargs in error.c, adding intermediate symbol USE_STDARG which is defined consistently with PARAMS() macro.
Fix several compiler warnings, including most of those where a pointer value was treated as a boolean (not portable because an int is not necessarily as big as a pointer), highlighting a logic error in the use of the 'invc' variable.
I've submitted fixes for screen more than once. That was finally resolved with a new maintainer:
He also accepted fixes to allow screen
to
work with the new title control-sequences which I added to
xterm in patch
#251, in
November 2009.
see also my version of autoconf.
I continue to work on flex, distributed as reflex.
I also have improved indent, distributed as cindent.
Copyright © 2001-2017,2022 by Thomas E. Dickey
All Rights Reserved.
Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of the above listed copyright holder(s) not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission.
THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.