home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fonts 1
/
freshfonts1.bin
/
bbs
/
programs
/
amiga
/
makeindex.lha
/
makeindex-2.12
/
src
/
LOG
< prev
next >
Wrap
Text File
|
1991-10-19
|
24KB
|
555 lines
Revision History for MakeIndex
This is a reverse time-ordered history of changes to MakeIndex.
-----------------------------------------------------------------
[19-Oct-1991]
Merged in small set of changes into mkind.c and mkind.h for
IBM VM/CMS support. Since there are no operational changes,
and 2.11 has only been distributed to the beta test list,
I'm leaving the version number at 2.11, and advancing the date.
[11-Sep-1991]
Version 2.11 released by Nelson H.F. Beebe <beebe@math.utah.edu>
This version incorporates feedback from test sites for 2.10,
and importantly, replaces memory-gobbling fixed strings in the
index entries with dynamically-allocated strings, reducing the
storage per entry from 1844 bytes to 80 bytes + actual string
lengths. For details, see the new NOTES file. The use of
dynamic strings now lets MakeIndex 2.11 process all of the
entries in test/b209f.idx; with MakeIndex 2.10 and earlier, 6
were rejected because of long fields.
Reorder two lines in doc/makeindex.l to avoid single quote at
beginning of line, which nroff and troff then lose.
Move typeout of version string in mkind.c to before parsing of
style file; otherwise, MakeIndex can terminate with an error
message before identifying itself.
Correct argument parsing in mkind.c to check for a following
argument before assuming it is there.
Change long macro PUT_HEADER in genind.h to function
put_header() in genind.c; it was too long for some compilers.
Correct bad args to STY_ERROR2() in scanst.c (had LINE_MAX
instead of LINEMAX).
Correct array dimension in flush_line() in genind.c from
tmp[LINE_MAX] to tmp[sizeof(buff)]; long index entries
otherwise overwrote stack storage.
Correct array dimension in mkind.c from pageno[STRING_MAX] to
pageno[NUMBER_MAX].
Correct array dimension in scanid.c from keyword[STRING_MAX]
to keyword[ARRAY_MAX].
Correct two array dimensions in genind.c from 2*STRING_MAX to
2*ARGUMENT_MAX.
Document array sizes xxx_MAX in mkind.h (note above corrections).
Add more code in scanid.c to check for overflow of field[]. A
case was found where overwriting occurred if an idx_escape is
found when i == ARRAY_MAX - 1. In this new version, the length
is no longer ARRAY_MAX, but is passed as an additional argument
to the function scan_field().
In sortid.c, change type of idx_gc from `int' to `long' to avoid
integer overflow or wraparound when there are more than 32767
(or whatever the host INT_MAX value is) comparisons.
Change two tests in scanid.c in scan_roman_lower() and
scan_roman_upper() from "if (... && (new = ...))" to
"if (... & ((new = ...) != 0))" to suppress compiler warnings on
some systems about possible error in use of = instead of ==.
Add test/b211a.idx to test MakeIndex with very long
index fields near, at, and beyond the standard internal array
dimensions.
Add test/b211b.{idx,ist} to test MakeIndex with the German
sort option.
Add missing "level = i;" in genind.c; this fixes an obscure bug
that is seen only when certain style files are used. The
test/b211b.idx file tests the fix.
Lattice has gone out of business, so the files src/make-lc.bat
and src/makefile.lc are in some sense obsolete, and will receive
no further maintenance. They are retained in the distribution
for now because some sites may still be using that compiler.
Revise scanid.c to permit idx_quote (by default, a quotation
mark) to quote ANY input character in the first argument to
the indexentry macro. Revise sortid.c to use unsigned char
data for sorting, removing architecture dependence. This also
requires a change in the TOLOWER and TOUPPER macros in mkind.h.
This is an important extension to MakeIndex: it permits sort
keys to be created for all ASCII characters, including braces
and others that otherwise have significance to MakeIndex (by
default, @, |, !). It also permits the user to get characters
1..255 into the actual field; this will be important for TeX
3.0 which can support a 256-character set. Character 0 cannot
be easily supported, because it is a string terminator in C,
the language in which MakeIndex is currently implemented. A
future extension might support an escape mechanism for it.
Too bad MakeIndex was not originally designed to support
C-like \ooo (octal) and \xhh (hexadecimal) escape sequences!
The file test/b211e.idx tests the sorting and display of all
characters in 1..255, and the file test/b211e.ltx typesets the
test index. Because Ctl-Z is an end-of-file marker in PC DOS
text files, test/b211h.idx is derived from test/b211e.idx by
removing the line with that character, and used in dosdiff.bat
in place of b211e. Note that MakeIndex collates space and the
characters in 1..31 and 127..255 somewhat differently than
ASCII. The MakeIndex order is:
punctuation characters (in ASCII order),
digits,
control characters (1..31),
space (32),
letters (ignoring case),
characters 127 .. 255.
In prepare_idx() in mkind.c, add a check for a NULL `head';
this can arise if the input file is garbage (e.g. you type
makeindex foo, meaning foo.idx, but a foo file already exists,
and is used instead of foo.idx). Without this check, a NULL
pointer is subsequently dereferenced, with core dumps on some
machines. The problem really lies in process_index() in
mkind.c, where idx_tc gets incremented before we know we have
a valid entry, such that in main(), idx_gt gets set to 1, when
`head' is still NULL. It seems easier to catch this error in
prepare_idx() instead of process_index().
Add additional architecture-specific targets to Makefile
to incorporate the compiler switches shown under the 2.10
LOG file entry below.
The book.idx file is still too big for a Turbo C 2.0 compiled
version of MakeIndex 2.11 on MS DOS to handle.
Fix several loops that called GET_CHAR() without checking
for an EOF result (genind.c, mkind.c, mkind.h, scanid.c,
scanst.h).
Fix range handling error in compare_page() in sortid.c; the file
test/b211f.idx tests that the fix is correct.
Incorporate bug repairs from:
Eberhard Mattes <mattes@azu.informatik.uni-stuttgart.de>
Mark James <mark@bdblues.altair.fr>, <mark@nuri.inria.fr>
-----------------------------------------------------------------
[05-Jul-1991]
Version 2.10 released by Nelson H.F. Beebe <beebe@math.utah.edu>
Testing of this version has been carried out on these systems:
=================================== =================
System Compile Defines
=================================== =================
Apollo DN/10000 -DOS_SYSV -U__STDC__
DECstation Ultrix 4.2
HP 375 (4.3BSD)
HP 9000/720 (HP-UX, System V UNIX) -DOS_SYSV
HP 9000/850S (HP-UX, System V UNIX) -DOS_SYSV
IBM 3090/600S-VF AIX -D_BSD
IBM PC DOS
IBM RS/6000 AIX 3.1
NeXT Mach
Silicon Graphics 4D-240 -DOS_SYSV
Stardent 1520 UNIX Release 2.2
SunOS 4.1.1 (BSD UNIX)
VAX VMS 5.3
=================================== =================
This version addresses all outstanding bug reports that I am
aware of, and brings the code completely up to the level of
Standard C (ANSI X3.159-1989 Programming Language--C, ISO C
1990).
In test/, rename long filenames to shorter ones, and add
several new test files, and a Makefile to automate the testing
of a new version on UNIX.
Add a README file with compilation instructions.
In mkind.c, mkind.h, and scanst.c, rename LONG_MAX to
ARRAY_MAX. LONG_MAX is used in Standard C for the largest
long integer.
In mkind.h, drop IBM_PC_LATTICE. There were no uses of it
elsewhere in the code, and Lattice is no longer in business, and
Microsoft C and Turbo C are now the major compilers on PC DOS
(Waterloo and TopSpeed lag far behind). Existing support for
TOPS-20 will be retained for now, even though by the end of
1991, there may not be any more TOPS-20 systems alive; ours was
retired 31-Oct-1990, and the American Mathematical Society's on
31-Mar-1991.
In mkind.h, except in OS_PCDOS, increase STRING_MAX from 128 to
256, and in genind.c, change dimensions of 2*LINE_MAX to
2*STRING_MAX. Anita Hoover <anita@brahms.udel.edu> repor