SYNOPSIS
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 build instructions:
Once again, there should be no errors.
You'll get lots of warnings, just ignore them.
PROGRAMS
DIFFUTILS
- 20010303
A patch which I used to build diffutils with Visual C++.
Besides the essential changes for the port, there are a number of
corrections to the code (mismatches with types, nonstandardisms, etc.).
FINDUTILS
- 19990508
A fix for sign-extension which caused a core dump
in
locate when there was too great a change in lengths
between "adjacent" directory names.
- 20010227
A patch which I used to build diffutils with Visual C++.
Note that pathnames are emitted with forward slashes, and the
-exec option does not work.
FLEX
- 20051223
-
This patch allows me to build vile
with that version of
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).
GLIBC
- 20010323
-
A patch for recent glibc (2.x) which addresses the compiler warnings
from the nonstandard use of pointer arithmetic in
/usr/include/bits/string2.h
GREP
- 20010227
A patch which I used to build grep with Visual C++.
INDENT
- 19990609
A patch to indent 2.0, which does the following:
-
- Suppress a blank line before #endif after a declaration, unless we're
putting blanks around preprocessor lines anyway.
- updates the configure script (I was not able to build the original
program on SunOS 4.1.3 because of the memmove reference).
- 20010112
Fixes a buffer overflow when reading a comment with very long line (e.g., 2k).
- 20020428
Lots of fixes, making this usable for the special syntax used for conditional
macros in xterm.
I do not use post-2.0 indent because it introduces more bugs than it fixes.
Each time I notice a newer 2.x version, I test it, comparing to the 2.0
case, and note that most of the differences are making the output formatted
other than as requested.
From this, I conclude:
- changes are being made to (perhaps) improve its formatting for some
other style than that which I use, and
- probably the developers are not comparing the results against a
standard set of inputs and outputs.
The former I could excuse in a utility being modified for private use,
as I did for bcpp.
Before deciding to work on bcpp, I studied it, and indent,
and chose the former, since the latter is badly-structured, and would have
taken several months to remedy.
PATCH
- 20010523
A patch which I used to build
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.
SEE ALSO
I also have patches for autoconf.
Copyright © 2001-2004,2005 by Thomas E. Dickey <dickey@invisible-island.net>.
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.