For anybody interested, I'm continuing to look at the X11IRAF codebase when the mood strikes me and my spare time allows. Most recently I've been examining the xgterm directory. It took a bit of investigating but I think I have recovered most of the xgterm development history (at least for the 2.0BETA release). At first I thought it was hopeless so it was a pleasant surprise.
The following files appear to be original and written by NOAO/AURA:
gtermio.c
gtermio.esc
gtermio.h
NOTES
while these next files are original but probably just leftover "junk" from development:
ptyx_new.h (appeared in X11IRAF 1.5DEV)
.pure (appeared in X11IRAF 1.3)
_3d (appeared in X11IRAF 1.3)
mkp (appeared in X11IRAF 1.5DEV)
_spool (appeared in X11IRAF 2.0BETA)
The remainder of the files appear to have an X11 origin. The following chart I made is useful to understand and discover this X11 history. X11 used a file versioning system that includes individual file versions and dates. Releases of X11 had patch files to update them. For instance, X11 Release 5 (R5) had 26 public patches and Release 6 (R6) had 13 public patches. The chart below shows which release and patchlevel is consistent with the version and date stamp in the X11IRAF file. As can be seen, most files were unmodified over many patches or even releases.
PLAIN Formatted Code
Legend:
o = X11IRAF file's time stamp line matches corresponding x11 file's (ie, a contender for the source's origin)
- = X11IRAF file's time stamp line does not match corresponding x11 file's
X11 RELEASE 5(by MIT) 6(by XC)
PATCHLEVEL 012345678901234567890123456 01234567890123
button.c --------------------------- oooooooooooooo
charproc.c --------------------------- oooo----------
ctlseqs.ms ooooooooooooooooooooooooooo --------------
cursor.c --------------------------- oooooooooooooo
data.c --------------------------o oooooooooooooo
data.h oooooooooooooooooooooooooo- --------------
error.h oooooooooooooooooooooooooo- --------------
Imakefile ----------ooooooooooooooooo --------------
input.c --------------------------- -ooooooooooooo
main.c --------------------------- ooooooooooo---
main.h ooooooooooooooooooooooooooo oooooooooooooo
menu.c --------------------------- oooooooooooooo
menu.h --------------------------o --------------
misc.c --------------------------- oooooooooooooo
ptyx.h --------------------------- oooo----------
README --------------------------- oooooooooooooo
resize.c --------------------------- ooooooooooo---
resize.man ooooooooooooooooooooooooooo --------------
screen.c --------------------------- oooooooooooooo
scrollbar.c --------------------------- oooooooooooooo
tabs.c ooooooooooooooooooooooooooo oooooooooooooo
termcap ooooooooooooooooooooooooooo --------------
terminfo ooooooooooooooooooooooooooo --------------
Tests ooooooooooooooooooooooooooo oooooooooooooo
util.c ooooooooooooooooooooooooooo oooooooooooooo
VTparse.def --------------------------- oooooooooooooo
VTparse.h --------------------------- oooooooooooooo
VTPrsTbl.c --------------------------- oooooooooooo--
xterm.man oooooooooooooooooooooooooo- --------------
It's clear that no single release/patchlevel was the origin for all files in the xgterm directory. In fact, no single X11
release was even the origin for all files. It appears development started with R5 and proceeded during the releases of R6 by applying patches selectively and/or partially. Overall, R6 under patchlevels 1,2,3 is most similar to X11IRAF2.0BETA and all equally so.
Right now the only extra complication to this history is that it seems a small amount of (unattributed) code related to color-handling from XFree86 xterm or color_xterm was ported into the X Consortium X11 xterm code. It seems to have affected at least a couple files (button.c and charproc.c) but maybe more. I'm still deciphering this.
The good news is that basically all the files from R5 (which are largely documentation or headers) can be trivially updated to their R6 counterpart.
In other words, with very little effort the entire xgterm codebase can be synchronized to R6 patchlevel 3, allowing a single point of origin. This tremendously simplifies the task of understanding and possibly improving the xgterm code for future hackers. I have a git repo evolving collecting a bunch of improvements to X11IRAF. I haven't yet started a branch for xgterm. Mike, if you recall and notice any errors or omissions in what's written above, I'd be happy to know before I make changes in my repo. Also, what exactly what the connection between NOAO and AURA during the development of X11IRAF? Many of the man pages have a AURA copyright notice (this is a minor problem too since they are often based on the X11 man pages). I don't know anything about the connection between AURA and NOAO.
Cheers,
Jason