http://invisible-island.net/
Copyright © 2001-2022,2026 by Thomas E. Dickey


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 (not a GNU maintainer) 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

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).

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++.

PATCH

20010523 A patch which I used to build patch with Visual C++ and Borland C:

Afterthoughts

Although my changes were accepted (and acknowledged) for screen that was not the end of the story. It continues.

In my patches, I did not alter the manual page. Chowdhury added my name to the list of contributors in the ChangeLog file (which is sorted by surname), but likewise did not alter the manual page.

The manual page has a summary of the escape sequences recognized by screen, as well as a list of contributors (which had not been updated for several years).

In 2016, Eric Raymond spent an hour or two (no more than an afternoon's work) improving the format of the documentation. In the resulting commit, he added his name to the top of the list of contributors, ignoring the list of contributors in the ChangeLog file. This was one of his 2 commits (collaborating with Alexander Naumov), one of 1324 commits in the Git log. The other commit was for errata in the manpage. That shared commit amounts to half of the changed lines in Naumov's commits.

The preferred order of the list of contributors is not apparent, except by inspecting old versions of screen. In those versions, new entries were added at the end. Putting his name first makes it more noticeable, and hints that it is more important. In that commit, by ignoring the other contributors, Raymond skipped over about ten years of development.

Since that point, there also are many contributors whose names can be found in the Git history. Beginning with Raymond's commit, newer contributors are put at the top of the list. In screen 4.9, there are seven. Of those seven, four (including Raymond) are not credited in the Git log with any change to the program, and one provided only a trivial build-fix. With screen 5.0 there are two more contributors. Checking the commit, it cites as contributors a couple of people who helped to test the program.

I noticed this in February 2026 while updating the terminal descriptions in ncurses. There was a bug report in Debian which mentioned a feature (the erase-character sequence) in the manual page. I reviewed the entire list (finding a few errors and omissions in the manual page), and saw the list of contributors near the end, while looking for the section describing the escape sequences.

Here is a table showing the developers and contributors as of February 2026. Except for the ones listed as “authors” (shown in bold font) none of the other contributors in the ChangeLog file are listed in the manual page. There are also several contributors who are not credited in the manual page.

Person Manpage 2005 ChangeLog Manpage 2017 Git commits
Akinori MUSHA       2
Alexander Gattin   yes   1
Alexander Naumov   yes   79
Amadeusz Sławiński   yes yes 567
Arseniy Simonov       2
Axel Beckert     yes 1
Bart Schaefer yes   yes  
Benjamin Andresen   yes    
Ben Kibbey       1
Ben Love       1
Brahmajit Das       1
Brian De Wolf       1
Brian Koehmstedt yes   yes  
Carl Drougge     yes  
Chris Jones   yes    
Chris Meyering       5
Christian Brauner       3
Christian Ebert   yes   1
Christopher Williams yes   yes  
Christoph Moench-Tegeder       1
Clark Wang       1
Clavelito (?)   yes   1
Curtis Brown   yes   23
Cyril Brulebois   yes   1
David Dorfman       1
David Vrona yes   yes  
Dick Marinus   yes   1
Dmitri Vereshchagin       1
Don Smith yes   yes  
Doug Siebert yes   yes  
Ed King       1
Ed Neville       1
Elizaveta Sytsevich     yes  
Emanuele Giaquinta   yes   10
Enrico Scholz   yes   1
Eric S. Raymond   yes   2
Ethan Warth       3
E. Tye McQueen yes   yes  
Frank van der Linden yes   yes  
François Revol       4
Gabriel de Perthuis   yes   1
Geraint Edwards   yes   1
Gregory Neil Shapiro yes   yes  
Gregor Zattler       1
Guo Ci       2
Hayaki Saito       1
Hayato Hiramatsu       1
HoverHell (?)       1
Howard Chu yes   yes  
Ian Frechett yes   yes  
Igor Pashev       1
Jan Christoph Nordholz   yes   16
Jason Merrill yes   yes  
Jason Simpson       1
Jeroen Roovers       1
Jessica McKellar       1
Jim Mahood       1
Jiri Kukacka       2
Johannes Zellner yes   yes  
John Spencer       1
Jon Jensen       1
Jürgen Weigert yes   yes 65
Julian Kolesnikov     yes  
Jussi Kukkonen     yes  
Kees Cook   yes   1
Ken Beal yes   yes  
Ken Stillson yes   yes  
Kenta Murata       1
Kieran Bingham       9
Kipling Inscore   yes   1
Kuang-che Wu       1
Larry W. Virden yes   yes  
Liang Xiaofei       1
Lubomir Rintel       3
Lukáš Nykrýn       1
Maarten Billemont   yes    
Maarten ter Huurne     yes  
Marc Boucher yes   yes  
Marcin Cieślak       13
Markku Jarvinen yes   yes  
Martin Pitt       1
Martin Schweikert yes   yes  
Matthew Green yes   yes  
Matt Mosley yes   yes  
Matt Whitlock       1
Max Kalashnikov   yes    
Micah Cowan   yes yes 56
Michael Scherer   yes   1
Michael Schröder yes yes yes 9
Michael Spang       1
Michael Witten       2
Mike Gerwitz       100
Miroslav Lichvar       6
Nate Clark       1
Nathan Glasser yes   yes  
Neal Fultz       2
Nicolas Schodet       1
Oliver Laumann yes   yes  
Pablo Averbuj yes   yes  
Patrick Wolfe yes   yes  
Peter Teichman   yes   1
Rafal Maszkowski       1
Richard Lavigne       2
Romain Francoise   yes    
Rudolf Koenig yes   yes  
Ryan Niebur   yes    
Ryan (Scovich?)       1
Sadrul Habib Chowdhury   yes yes 204
Samuel Thibault       1
saper (?)       2
Scott Shambarger       3
Simon Ruderich       7
Stefan Assmann       1
Stephane Chazelas   yes   1
Steve Kemp   yes   1
Svyatoslav Mishyn       1
Taj Morton       1
Takeshi Banse   yes    
Therese Godefroy       1
Thomas E. Dickey   yes   2
Thomas Renninger     yes  
Tim MacKenzie yes   yes  
Tobias Wulff       1
Toerless Eckert yes   yes  
Tore Sinding Bekkedal       1
Trent W Buck   yes    
Victor Dmitriev       1
Vincent Lefèvre     yes 4
Václav Doležal       5
Wayne Davison yes   yes  
William Pursell   yes   1
Yi-Hsuan Hsin   yes    

Copyright © 2001-2022,2026 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.