Changelog for makeztxt
Thursday, June 21, 2007
- Fixed a double free bug in the PDB disassembly code. Reported by
- Fixed an alignment issue on 64bit systems. UInt32 was mistakenly
defined as an 8 byte value rather than a 4 byte value. Reported by
- Fixed gcc 4.x compiler warnings.
- makeztxt will now compile against latest weasel_common.h header.
makeztxt v1.61 (* devel: not released *)
Tuesday, January 27, 2004
- Fixed a small memory leak in libztxt. Some buffers were not being freed
when a zTXT object was freed.
- Patch submitted by Ron Aaron: Stop libztxt from stripping all characters
with the hi-bit on from bookmark/annotation titles.
- Patch submitted by Kevin Ko: Fix several bugs in makeztxt related to the
-R option. All were careless programming mistakes. -R should now work
Tuesday, August 12, 2003
- Patch submitted by Roger Plant: Fixes subexpression matching for POSIX
regex. Also adds short explanation of feature to README.
- Removed command line options to set creator and type IDs. They didn't
really serve any purpose since makeztxt is designed specifically for
making zTXT databases.
- makeztxt now sanitizes the bookmark titles it generates. Before,
newlines and control characters could end up in titles making the
- Using the -m switch, you can now feed makeztxt a file containing a list
of premade bookmarks. Each line must begin with an offset (location) in
the document. The rest of the line will be treated as the bookmark
- makeztxt will now search for the .makeztxtrc file in multiple
locations. It first searches $HOME, then the current directory. If
neither of those works it will search for /etc/makeztxt.conf.
- Fixed makefiles so that makeztxt is correctly rebuilt if a file in
libztxt is modified.
- ztxt.h is now fully commented. It should now provide reasonable
documentation for how libztxt is used to generate zTXT DBs.
- Added ztxt_get_* functions so accessing members of the ztxt structure
directly should no longer be necessary for programs using libztxt.
- Added ztxt_disect(). libztxt is now capable of taking an existing zTXT
database and disecting it into its component pieces. This will allow
for bookmarks, annotations, and document text to be removed from a zTXT
and saved into separate files.
- makeztxt can now output the disected components of a zTXT document.
zTXT deconstruction is enabled with the '-d' option. The command line
argument is the database to take apart. The output filename for the
document's text can be given with '-o'. To save any bookmarks to a
file, give the filename with '-m'. To save annotations to a file, give
the filename with '-A'.
- Added ztxt_add_annotation function.
- makezxt can now create a zTXT with annotations. The annotations are
listed in a separate text file and the filename is given with -A. This
should now enable creation and disassembly of any type of zTXT
- Added ztxt_crc32 function. libztxt now stores a CRC32 value in the
record 0 header. This will allow a user to check a document's integrity
once on a device. Support will be added to Weasel Reader to perform
- Big documentation update. The README should be useful now. Also
includes a note about the command line nature of makeztxt and link to
Weasel website where the list of other more user-friendly converters
Tuesday, December 24, 2002
- Patch submitted by Roman Shterenzon: Fix to allow makeztxt to compile on
FreeBSD. Makeztxt is also now available in the FreeBSD ports
- Makeztxt now strips the path from the input filename. This should cause
the generated file to always go into the current directory if no output
filename is specified. If no title is specified then the base filename
will also become the title.
Friday, March 1, 2002
- Attributes in the DB header were not being properly set. The backup bit
would not get set, so if you installed the DB with some program and then
later HotSynced, it might not be backed up unless you had modified it in
- Removed the -w set wbits option since it really has little use for
creating zTXTs. It's still in libztxt, though.
- Added a -L option to set the LaunchableData attribute in the header. If
your version of Palm OS supports it, zTXTs created with this option will
show up in the launcher and if you tap them, Weasel will be launched and
start with the selected document.
Sunday, January 13, 2002
- The regex config file has been renamed .makeztxtrc from .gutenpalmrc
since it's for this program and not Weasel Reader.
- Makefile now uses $(MAKE) instead of explicitly running "make". Systems
where GNU make is not the default need to run as 'make
- New option in Makefile: Comment out the LONG_OPTS line if you do not
have getopt.h or do not have the getopt_long function. This should
allow makeztxt to compile on systems without GNU stuff.
Friday, July 6, 2001
- Huge uber-important bugfix: Perhaps this will end all the email!
makeztxt wasn't opening its output file as *O_BINARY* with the Windows
port. This caused all those important \n characters (where ever they
appeared) to be helpfully translated into \n\r pairs, thus totally
destroying what the output should be. So... why did it sometimes work?
I suspect that with small files the chance of there being a \n in the
imporant header bytes is smaller than with large files. Thanks for this
go to Roman Rusakov. Huzzah!
- Bugfix: Database titles were not being null-terminated, so if you
specified a large title (over 32 chars) it wouldn't install onto your
Saturday, May 26, 2001
- Bugfix: Finally found an example of POSIX regex being used, so now the
code should do the "right" thing and actually compile on other
- Bugfix: When using GNU regex, the position in the input was not being
updated properly, so it would not skip all of the previous match. This
could result in submatches within the previous match, which is usually not
what you want.
Tuesday, April 3, 2001
- Bugfix: Didn't check for null regex, and this would cause it to sit and
spin its wheels for a very long time.
- Switched over to use GNU regex, since they offer many more features and
are faster on large strings. However, you can define POSIX_REGEX in the
Makefile to use POSIX regex still.
- Auto-generated title is now always null terminated... just to be
- libztxt now has functions to report its version and build number.
makeztxt uses these when printing out version info. The build number is
also stored in the zTXT header (for debugging purposes). A script,
inc_bcounter.sh, has been added to the libztxt source.
- Patch from "Temporal Weirdo" for improved bookmark matching in libztxt.
Now uses substring information returned by regex functions to better
construct the bookmark title, instead of just grabbing the 20 chars at
the beginning of the match.
- Makefile fixup for makeztxt and libztxt. Now you only need to set
compile time options in the makeztxt Makefile and they will be correctly
Wednesday, February 7, 2001
- More new features. makeztxt can now generate zTXTs to take advantage of
the on-demand decompression feature of GutenPalm 1.40. This entails
compressing 8K chunks of text using the flush method Z_FULL_FLUSH. This
allows random access (on a record boundary) once record #1 has been
- New option -z or -compression. A value of 1 uses the new method of
compression. A value of 2 behaves as the old version did. Method 2
also gets about 10% - 15% more compression at the sacrifice of no random
- With all of the changes, I decided to sync the version numbers of
GutenPalm and makeztxt.
Sunday, January 28, 2001
- Big rewrite of makeztxt.
- If you specify "-" as your input file, makeztxt will read from stdin
instead of a file. For this to work, you must use -t and -o to specify
the DB title and output filename.
- Moved all of the zTXT specific stuff into libztxt. This library should
be really portable and will be quite helpful to anyone who wants to make
zTXT databases without using makeztxt.
Thursday, January 25, 2001
- Bugfix from Zachary P. Landau (email@example.com). On rare occasions,
makeztxt would overrun the input buffer by one causing a segfault.
- Oops. Forgot to include the Makefile in the source distribution.
- Added better command line help for the 'adjust' option.
- Because text files can all be formatted in different ways, makeztxt now
computes the averge length of a line throughout the entire file. Lines
longer than this length minus five will have their linefeed stripped.
This can be overridden with either -adjust or -length. This does, in
general, result it much better automatic formatting.
- To take advantage of the new auto line length detection, -adjust mode 0
now uses the computed length instead of 70.
Tuesday, January 9, 2001
- The distribution has been split into two separate directories: one for
GutenPalm and one for makeztxt. Hence, the ChangeLog has been split as
- You no longer need to run your input documents through a DOS to UNIX
conversion program before feeding them to makeztxt. maketzt now strips off
a CR at the end of a line if present. makeztxt also supports a user config
file in the home directory called .gutenpalmrc. This file contains regular
expressions, one per line, which are automatically used when running
makeztxt. These additions were provided by Martin Smith
(firstname.lastname@example.org). Thank you again!
- makeztxt now supports three modes of file conversion. These are
selected with the -a/--adjust command line option. Mode 0, the default,
strips off linefeeds only if the line is longer than 70 characters. Mode
1 strips linefeeds if the line contains any text at all. Mode 2 leaves
the text unchanged. The should help preserve some formatting in books,
like chapter titles, the table of contents, etc.
Note: For ChangeLog entries prior to version 1.10,
consult the Weasel Reader ChangeLog.