
			     Changelog for GutenPalm
			     -----------------------


GutenPalm v1.41 "Kotaru"
Thursday, August 2, 2001
------------------------------

* Feature request: Lots of people want line by line scrolling so I've
  added it.  You can now enter in a scroll amount from 1 to 30 and there
  is now a "Scroll line by line" checkbox which will set it to the correct
  amount for the current font.  This will affect both manual and automatic
  scrolling.
* Patches submitted by Craig Curtis:  The first allows the copy Graffiti
  shortcut to work when copying text in the DocView form.  The second
  makes the up/down hardware buttons function for scrolling the annotation
  list.
* Bugfix: Read-only memory based zTXTs should now function correctly and
  not give any errors.  Tested using Romeo (http://romeo.sf.net) with
  GutenPalm, SysZLib, and GPL.pdb all in ROM, though any combination
  should work fine.  Auto-resume does not work for read-only zTXTs because
  the resume bookmark cannot be created.  The exception is if the zTXT
  already has a resume bookmark when it is put into read-only memory.
* Additional read-only related changes.  All records are opened for
  read-only access (DmQueryRecord) unless they need to be written to.  The
  bookmark and annotation indices are now queried initially, and will be
  reopened for writing only when changes are made to them, after which
  they will be closed and then queried again.  This should bring to a
  minimum the number of records open for writing, which will also reduce
  the number of checks in the code to see if we are in read-only mode.
* GutenPalm now notifies the user that their preferences have been reset
  due to a version change.  It already did the reset, it just did it
  silently before.
* Bugfix: Rotation now works on color devices.  This is done by setting
  the colordepth to 1bpp upon entering the DocView form and putting it
  back to the original value on return to the index or exiting.  Since
  GutenPalm doesn't use any color (aside from the logo) this is perfectly
  fine until somebody fixes gutenpalm_rotate.c to handle color pixels.
* Versioning fixes: The big Document struct (gCurrentDoc) was storing the zTXT
  version as a UInt8 when it should be a UInt16.  The prefs database was
  storing the GutenPalm version as a UInt32 when it should be a UInt16.
  GutenPalm now checks to see if it knows how to display the selected zTXT
  by checking its version.  If it's newer than the zTXT version this
  version of GutenPalm was made to work with, it will ask the user if
  he/she wishes to continue (since it could crash).
* Bugfix: Fixed a back-paging crash.  It was really rare, actually, as you
  had to back-page to exactly the beginning of a record.  It was
  calculating the new record offset incorrectly because I forgot a pair of
  parentheses.  They're in the right place now... no more crash.
* Change: The "Jump to location" form now has a popup list with a range of
  percentage values in it, rather than the previous 0% and 100% buttons.
  A number of people have requested this change.
* New feature: The bookmark popup list now extends across the width of the
  screen to allow for bookmark titles that are wider (lots of M's).  Also,
  the percentage position of each bookmark is now displayed in the list so
  you can better guage where they are.
* Patch submitted by Craig Curtis: The last selected annotation is now
  remembered in the annotation index listing and will be selected next
  time you open the annotation index.
* Feature request: Several people have asked for a progress indicator
  during long search operations as well as a way to cancel.  This has been
  added.  Any search which searches more than 500 characters will pop up a
  small window with a rotating character animation in it to show you that
  it is working and not hung (sine searching can take awhile).  Tapping
  the screen will cause the search to be cancelled.
* Patch submitted by James Aspnes: Cleanups and speedups to the new search
  progress indicator.  It now only updates every 8192 characters instead
  of 500 so as to have less impact on the search speed.
* Bugfix: The annotation 'A' indicator would not always be displayed even
  if there was an annotation on the page.  This was caused by giving
  DrawAnnoGadget the wrong values for the end position of the page.
* Bugfix: When (heaven forbid) GutenPalm crashes, it will leave around the
  cache file of whatever was being read at the time.  If the user then
  tries to read the same zTXT again, more problems occur since the cache
  (and GutenPalm) were left in a bad state.  To prevent this, the user is
  now notified of the unclean exit, and all caches are deleted.


GutenPalm v1.40 "Kotaru"
Wednesday, June 6, 2001
------------------------------

* Patch submitted by James Aspnes:  Delete documents while reading them
  instead of just from the index screen.  Very handy if you're going
  through a lot of docs.
* Patch submitted by James Aspnes:  Option in Preferences form to allow
  use of hardware buttons #3 and #4 while reading.  Previously these
  buttons were always used for GutenPalm functions, now the user can decide.
* Patch submitted by James Aspnes:  Hardware up/down buttons will now
  scroll the document index
* Bugfix: Cache indicator dots in index would not go away after you erased the
  cache if you were using Palm OS < 3.5.  Now, those OS's will first erase
  the list area before redrawing the list.
* Bugfix: Rotation fixed?  Could be.  The rotation code from CSpotRun had three
  cases for Palm OS 3.5, 3.x, and 2.x.  The first and last work, while the
  3.x one causes immediate firey death.  So, I commented out that
  section.  Now anybody not using 3.5 will use the old routine which seems
  to work okay (in the emulator anyway).  I assume this code worked fine
  in CSpotRun, so it's likely the trouble is due to my having had to adapt
  the code to compile with the 3.5 SDK.  Rotation does not work on color
  Palm's, however it will not cause a crash.  I do not know how to fix
  this yet.
* Feature request: The selection in the document index is now remembered,
  so when you go back to the index, it will be reselected and made visible.
* Feature request: If you are in a display mode that makes use of the text
  field, you can select text and have it used as the title of a bookmark.
  If no text is selected, or you are in a mode that does not make use of
  the text field, the old method of taking the top line will be used.
* The same title creation/selection as above for bookmarks has been
  implemented in the annotation code as well.
* Patch submitted by James Aspnes:  Major overhaul of the persistant cache
  system.  The old method was... unfortunate, and could result in lost
  caches eating up memory until you deleted GutenPalm.  The new method
  will not lose caches and will automatically delete orphaned caches and
  is, overall, better written.
* GutenPalm now acknowledges read-only zTXT databases that are in ROM or
  Flash.  It will not attempt to modify them and will display an error
  message if the user tries to.  This should make Flash equipped Palms
  into small libraries.
* Patch submitted by James Aspnes: Speedups and small bugfix in Find
  code.  Speedup is approximately 1kB/sec - 5kB/sec.  The Find settings
  are now also stored between sessions, so you won't have to keep checking
  the "Ignore case" box if you want that option on all the time.
* Bugfix: The "Jump To Location" form used a function from the "Text
  Manager" which is only present in Palm OS 3.5 and later.  This has been
  fixed, and should no longer cause a crash on pre-3.5 Palms.
* New feature: There is now an option under 'Preferences' to have the zTXT
  size displayed in the document index.
* New feature: Excerpt 4096 characters to the Memo Pad from current page
  in document.  This is under the 'Edit' menu while reading.  It will copy
  characters into a new memo starting at the top of the current page and
  going for up to 4096 chars.  Thanks go to James Aspnes for the patch.


GutenPalm v1.40beta2 "Kotaru"
Tuesday, April 3, 2001
------------------------------

* Back-paging didn't work properly if you paged backwards over a record
  boundary.  Some of the arithmetic needed some extra parentheses.  Also,
  that code hadn't be updated to account for different font sizes.  Oops.
* Requested feature: Justified text display.  With this option, the text
  will be drawn fully justified with the left and right sides of the
  screen.  This option precludes use of the TextField since the field
  seems to dislike all the extra spaces and doesn't draw it properly.
* Small speed up in DisplayCurrentPage when using the text field.
* Bugfix: Resets auto-off timer when autoscrolling so Palm doesn't turn off
* Autoscroll updates: Palm button #2 now toggles autoscroll on/off.  'S'
  is now the menu shortcut for turning on autoscroll.
* Button #3 will popup the bookmark list under any display conditions
  except for when autoscrolling.
* Added several more menu shortcuts in the DocView form.
* Had to get rid of the nice 8bpp color logo.  It looks very good, but
  it added a little over 8K to the program size, which is approximately 15%
  of the total program size.  Oh well.  The greyscale one looks very nice,
  though.
* Bugfix: The About form switches to 4bpp if possible which erases the
  screen.  However, it was only redrawing the old form when leaving the
  About form.  If you were in the DocView form, the text would not get
  redrawn if you had some display options turned on.
* New feature: For people using Palm OS versions earlier than 3.5, tapping
  on the title bar of the document index form will now pop up the menu, just
  as it does for people using 3.5.
* You can now edit the autoscroll speed in the display preferences.
* The scroll speed control has been made more fine grained at higher 
  scrolling speeds.


GutenPalm v1.40beta "Kotaru"
Sunday, February 11, 2001
------------------------------

* Lots of changes, so the version has been bumped to 1.40
* Decided to start naming the releases.  Why not?  I am taking my release
  names from Paul Kidd's book "Whisper of Wings".  Go read it!
* GutenPalm now has a new About box complete with super cool logo by
  DocTiki.  The new About box also switches your Palm into 4bpp greyscale
  if such a mode is supported (and you're not already in color).
* At last!  On-demand decompression has been implemented.  The compressed
  data will now be decompressed as you read it.  A small "partial cache"
  has also been added when reading in this mode to keep excess
  decompression to a minimum.  Documents can only be read in this manner
  if they have been compressed with Z_FULL_FLUSH, which makeztxt now does
  by default.
* A lot of the code has been reorganized.  OpenTmpRecord is now
  OpenCacheRecord and is located in gutenpalm_cache.c.  The decompression
  functions have been moved to gutenpalm_compression.c.
* Took a few more strings out of GutenPalm and put them in the resource
  file so that they can be internationalized.
* Modified the on-demand cache to use an aging scheme instead of the
  previous counter scheme.  The old method kept records which were
  accessed the most.  The new scheme only keeps records that were accessed
  recently.  I'm not really sure which is the most efficient for this type
  of application, though I doubt one over the other will make any
  noticable speed difference since the cache isn't hit that often.
* Change in Find: When you searched for text it would advance the currently
  displayed text to where the match occured.  This isn't correct.  It should
  advance up to the word containing the match.  It does this now.
* Bugfix in Find: If you were in a display mode that did not use the text
  field for display, GutenPalm would crash when trying to highlight your
  selection.
* Requested feature: Per-document display preferences.  From the 'Book'
  menu you can store the current display preferences into a zTXT and they
  will be used when you next read that book, overriding your current
  preferences.  Your current prefs will be restored when you stop reading
  that book.  You can also clear the stored prefs from a zTXT.  Note that
  the autoscroll speed and pixel rate are not stored in a zTXT.


GutenPalm v1.22   (* not released *)
Thursday, February 1, 2001
------------------------------

* Bugfix in bmrkFindMark().  0 was used as an error value, but could also
  reference to the beginning of a zTXT.  In this case, the resume bookmark
  "__CURRENT_POS__" would get left behind and would keep auto-resume from
  functioning until you manually deleted the bookmark.  Bug reported
  by Jonathan Badger <jhbadger@monod.uwaterloo.ca>.
* Misspelled translation string for the "Delete ALL Cache" dialog.
* Fonts!  Huzzah!  You can now pick from 5 different fonts.  Standard,
  Bold, and Large are available for all (PalmOS 2.0 and above, but that's
  also the minimum for GPlm).  LargeBold and HK40 Fixed are available to
  Palm OS 3.0 and higher.
* Requested feature: Invert text display.  Check this option and the text
  area will be inverted.  Because this involves drawing to the screen
  directly, the text is not in a field and so cannot be selected/copied.
* Autoscrolling has been much improved.  It now renders to an offscreen
  window and is able to scroll pixel by pixel instead of a whole line of
  text.  You can autoscroll and have inverted text at the same time.
* Nasty bug in cache.  If you have books cached, delete the caches, then
  quit and restart GPlm, the cache will be back as it was before.  If you
  then try to access one of these, firey death will rain down upon you.
  The cache list is now cleared whenever you quit.  Reported by ono_it.
* Requested feature: Tap paging.  With this option on, tapping the upper
  half of the screen will page up and tapping the lower half will page down.
* Requested feature: Full screen display and rotation.  Full screen will
  simply hide the controls at the bottom and use the area for text
  display.  Rotation allows you to rotate the display in 90 degree
  increments (measured clockwise).  You can use an inverted display and/or
  autoscroll with either full screen or rotation.  A rotated screen
  implies full screen operation.  The tapping areas "top" and "bottom", when
  using tap paging, will rotate with the text.


GutenPalm v1.20
Sunday, January 21, 2001
------------------------------

* The distribution has been split into two separate directories: one for
  GutenPalm and one for makeztxt.  Hence, the ChangeLog has been split as
  well.
* GutenPalm now uses PalmZLib, a Palm port of ZLib.  Unlike the static library
  port I used before, this one is a separate shared Palm library.  This reduces
  the size of GutenPalm by at least 20K.  Of course, now you must download and
  install PalmZLib to use GutenPalm, but it's small and really useful, so go
  do it.  The patch to incorporate this was supplied by Tom Zerucha
  (tz@execpc.com).  Thank you!  You can get the library at
  http://palmzlib.sourceforge.net
* The text display in the view form is now a text field.  This means you can
  now select and copy text out of books and paste it elsewhere.
* Beaming!!  Yes, GutenPalm now supports beaming.  Since you never need to
  transfer anything less than a whole database, the code was very easy to
  implement.  Of course, I didn't know this, otherwise I would have done it
  for 1.00.
* Support for user annotations.  Just pick it from the menu.  You give
  your annotation a title and then write away.  The annotations are limited
  to 4096 characters which should be enough.  If it's not, just let me
  know.
* Find support.  It's in the 'Search' menu.  You can also search without case.
  There is also a Find Again menu item to repeat the last search.
* Autoscrolling support.  No more sore fingers and broken buttons.
* Better error checking.  Makes sure PalmZLib is installed.  Makes sure
  there is enough memory to decompress a zTXT.  Better than dying or
  killing your Palm.
* Startup code which loads preferences now checks version info.  This should
  make it so that you don't have to delete GutenPalm to install a new
  version just because the preference layout changed.
* Internationalization support.  The rcp file has been cleaned up a great
  deal to allow for translations.  Now it is a simple matter of redefining a
  few tags in a translation file.  If you would like to translate
  GutenPalm, please let me know!  It's really a small amount of work.
* Lots and lots of code cleanups.  Especially with the bookmarking code.


GutenPalm v1.0
Saturday, September 23, 2000
------------------------------

* First official release of GutenPalm!
* No program changes from last beta.
* My testing has continued and thus far, all is well.
* A few doc updates regarding compiling the source yourself.  There was some
  confusion due to the use of two copies of zLib (Palm and host machine).
* Added a file called FILES which briefly describes what each file is for
* Many website updates at http://gutenpalm.sourceforge.net



GutenPalm v1.0b1
Saturday, September 16, 2000
------------------------------

* Got rid of the bookmarks menu item under Options.  Didn't have anything to
  use it for.
* Completely overhauled the bookmarks system.  The old way was stupid and
  separated the zTXT provided bookmarks and user bookmarks.  More complex and
  didn't really add much.  Now it's simpler and all bookmarks are kept with
  the zTXT DB.
* As a consequence, removed the last modification data checking in the cache
  code.  This was to determine if the cache was still valid, but now when you
  add/remove bookmarks, that timestamp is changed frequently.
* You can now add bookmarks while reading AND delete them.
* Added a whole bunch more documentation in the README file including some
  examples of the regex bookmark generation.



GutenPalm v1.0b
Monday, September 11, 2000
------------------------------

* Miscellaneous bug fixes all around.
* makeztxt now accepts regular expressions on the command line to generate
  bookmarks in the generated database.
* GutenPalm now supports bookmarks!  Huzzah!  Well, mostly huzzah.  Most of
  the code is present for user bookmarks added within GutenPalm, but it isn't
  implemented yet.
* Tapping on the percentage display now allows you to jump to an arbitrary
  position in the zTXT.
* Even more testing.  This version will likely become 1.0 even if I don't get
  the user bookmarks added.  If I don't get them added in time, that will be
  in version 1.1.  But... you never know...
* The bookmarks menu option still doesn't do anything... don't know if it
  will.  It might be used for some options dealing with user bookmarks.



GutenPalm v0.9.9a
Monday, September 4, 2000
------------------------------

* Finally fixed that stupid back-paging bug.  It was caused, more or less, by
  bad code.  To that end, all of the document display code has been mostly
  rewritten to use integer offsets into the text records rather than storing
  pointers.  This should have been done from the beginning.
* Options now exist to keep the cached data and to skip the Project Gutenberg
  license text (if it is present).
* A little dot appears in front of the document name in the document list if a
  cache exists for that doc.
* There are now menu options to delete the saved caches.  You can delete the
  cache from the currently highlighted zTXT or delete them all.
* Fixed a file naming bug in makeztxt which occured if the input file did not
  have any extension.
* Did a bunch of testing with POSE and several different text files.
  GutenPalm didn't crash.  Huzzah!



GutenPalm v0.9.8a
Wednesday, August 30, 2000
------------------------------

* Cache stuff relied on LocalID's not changing.  They do.  So now it stores
  the DB names instead of their LocalIDs.  Safer this way.
* Restoring an in-progress document died horribly if the user stopped reading
  on a record boundry.
* Progress indicator while decompressing
* Progress while reading (given as a percentage)
* There still exists a nasty bug that will freeze GutenPalm when you are
  paging backwards.  However, it only occurs *sometimes* and I've yet to
  figure out the circumstances.  It only seems to occur on the boundry between
  records 0 and 1.  Hmmmmm...



GutenPalm v0.9.7a
Tuesday, August 29, 2000
------------------------------

* Added preference databases
* Caching structure for storing uncompressed data
* Persistant position when you quit while reading
* Options to keep uncompressed data around (no way to set it yet though)
* Bug fixes...



GutenPalm v0.9.5a
Monday, August 28, 2000
------------------------------

* started keeping a changelog

