2000-07-15  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Version 0.3.0
	* langs/sample.rcp: Update with latest strings.
	* langs/nl.rcp: Likewise.
	* langs/ja.rcp: Likewise.
	* callback.h: Removed. This file is no longer needed since
	prc-tools 2.0 does not need the special callback macros.
	* TODO: Removed entry for read-only mode since it has been
	implemented.
	* NEWS: Updated for the 0.3.0 release.
	* docs/building.txt: Update URL for pilrc.
	
2000-07-08  Tom Dyas  <tdyas@vger.rutgers.edu>

	* util.c (MyWinDrawTruncChars): Always use our implementation
	instead of the PalmOSGlue version.
	* db.h (MyWinDrawTruncChars): Modified prototype to match.
	* listprop.c: Moved all internal routines into SECT_UI code
	section.

2000-07-07  Tom Dyas  <tdyas@vger.rutgers.edu>

	* README_de: German version of README from Thorsten Tietz
	<thorsten.tietz@gmx.de>

2000-07-06  Tom Dyas  <tdyas@vger.rutgers.edu>

	* chooser.c (DoDuplicate): Use GetStringPtr() to get localized
	version of "Working..." string.
	* design.c (Rebuild): Likewise.
	* enum.h: Define stringID_Working.
	* db.rcp: Add string resource for stringID_Working.
	* langs/de.rcp: Update from Thorsten Tietz <thorsten.tietz@gmx.de>

2000-07-04  Tom Dyas  <tdyas@vger.rutgers.edu>

	* langs/de.rcp: Update from Thorsten Tietz <thorsten.tietz@gmx.de>
	* db.rcp: Add stringID_Remove for "-- REMOVE --".
	* enum.h: Define stringID_Remove.
	* io.c (DB_Create): Use GetStringPtr() to get localized version of
	"All Fields".
	(OldDB_GetView): Likewise.
	* listprop.c (ListViewEditor_HandleEvent): Use GetStringPtr() to
	get localized version of "-- REMOVE --". Free field_names array
	when the form closes.

2000-07-03  Tom Dyas  <tdyas@vger.rutgers.edu>

	* README: Updated for 0.3.x final release.
	* docs/format.txt: Update with local find options chunk and new
	chunk numbering scheme.
	* langs/de.rcp,langs/ja.rcp,langs/nl.rcp,langs/sample.rcp: Add
	"Create using..." string for translation.

2000-07-02  Tom Dyas  <tdyas@vger.rutgers.edu>

	* chooser.c (popup_menu): Add the "Create using" action which
	activates design mode with the schema of a particular database.
	(ChooserHandleEvent:tblSelectEvent): Respond to
	actionID_CreateUsing from popup menu.
	(ChooserHandleEvent:ctlSelectEvent): Set DesignViewInitialSchema
	to 0 before create dialog.
	(ChooserHandleEvent:menuEvent): Don't go directly to design view
	when told to make a new database.
	(CreateDlgHandleEvent:frmCloseEvent): Free the initial schema if
	we did not go to design view.
	(CreateDlgHandleEvent:ctlSelectEvent): Likewise.
	* design.c (UpdateScrollers): Enable ins/del buttons when an
	initial schema is present.
	(UpdateNewDesign): If DesignViewInitialSchema, then just use
	schema directly.
	(FillLocalSchema): Use DesignViewInitialSchema.
	(DesignViewHandleEvent:frmOpenEvent): If initial schema is
	present, then don't hide ins/del buttons.
	(DesignViewHandleEvent:frmCloseEvent): Free the initial schema.
	* db.rcp: Add stringID_CreateUsing.
	* enum.h: Likewise.

2000-06-25  Tom Dyas  <tdyas@vger.rutgers.edu>

	* design.c (FillLocalSchema): Base decision of the "mode" on
	CurrentSource and not DesignViewInitialSchema.
	(UpdateScrollers): Likewise. Obey read-only mode. Remove del
	button when 1 field remaining.
	(DesignViewHandleEvent:frmOpenEvent): Likewise.
	(DesignViewHandleEvent:ctlSelectEvent): Likewise. Obey read-only
	mode.
	(DesignViewHandleEvent:frmCloseEvent): Null out SchemaFields and
	SchemaFieldsHandle.
	* config.h: Set MAX_NUM_FIELDS_FOR_NEW_DB to 32. This should
	really be a runtime option.
	* db.rcp: Add string for "Fld %d" for i18n.
	* enum.h: Defined stringID_FldN for "Fld %d" string.
	* list.c (DoCommand): Don't set DesignViewInitialSchema since the
	decision of "mode" is made from CurrentSource.
	* langs/de.rcp,langs/ja.rcp,langs/nl.rcp,langs/sample.rcp: Add
	"Fld %d" string for translation.
	
2000-06-24  Tom Dyas  <tdyas@vger.rutgers.edu>

	* listprop.c (AddColumn): Enable the remove option after a column
	is added unless in read-only mode.
	(DeleteColumn): Disable the remove option if only 1 column is
	remaining.
	(ListViewEditor_HandleEvent:field_names): Move field_names
	variable to file level.
	(ListViewEditor_HandleEvent:frmOpenEvent): Enable remove option if
	more than 1 column.
	(ListViewEditor_HandleEvent:ctlSelectEvent): Discard any edits if
	in read-only mode. Remove debug check for 0 columns. It is now
	impossible since we disable the remove option before we could ever
	get there.

2000-06-18  Tom Dyas  <tdyas@vger.rutgers.edu>

	* io.c (DB_GetOption_Boolean): Implement
	optionID_LFind_CaseSensitive and optionID_LFind_WholeWord.
	(DB_SetOption_Boolean): Likewise.

2000-06-15  Tom Dyas  <tdyas@vger.rutgers.edu>

	* io.c (DB_SetField): Used wrong variable to point at offset table
	in new record format. Fixes crash.
	* db.def: Add section "gridsect" for grid code.
	* grid.h (GRIDSECT): Use "gridsect" for the section and not "foo".
	(GridModelType): Add IsColumnEditable() method which lets a model
	tell the grid if a column is editable.
	* grid.c (GridHandleEvent): Use IsColumnEditable() method of grid
	model to determine if user can change checkbox.
	* list.c (ViewModel_IsColumnEditable): Implementation of
	IsColumnEditable() method for the ViewModel grid model.
	(ViewModel): Use ViewModel_IsColumnEditable().
	
2000-06-14  Tom Dyas  <tdyas@vger.rutgers.edu>

	* io.c (DB_GetOption_Boolean): Support optionID_DisableGlobalFind.
	(DB_SetOption_Boolean): Likewise.
	(DB_Create): Don't use dbFieldType{String,Boolean,Integer}
	constants.
	Add definitions for ListViewColumn and ListViewDefinition
	structures. Add constant for local find options.
	* db.h: Remove include of dbfmt.h.

2000-06-08  Tom Dyas  <tdyas@vger.rutgers.edu>

	* io.c (OldDB_UnpackRecord): Renamed from UnpackRecord() and moved
	into legacy support section.
	(DB_PackedRecordSize): New function. Determines the packed size of
	a record including the new offset table.
	(DB_PackRecord): New function. Pack data into a record and build
	the offset table.
	(DB_Getter_Get{String,Integer,Boolean}): Renamed from
	DB_Get{String,Integer,Boolean}. Use offset table to find where the
	field data is.
	(DB_LockRecord): Don't use UnpackRecord() since we have the offset
	table now. This function is O(1) now.
	(DB_UnlockRecord): Just unlock the record. No more pointers to
	free.
	(DB_UpdateRecord): Call DB_PackedRecordSize() and DB_PackRecord().
	(DB_SetField): Use offset table.
	(OldDB_Getter_Get{String,Integer,Boolean}): Getter functions for
	0.2.x format databases.
	(OldDB_PackedRecordSize): Determine packed size of a 0.2.x-format
	record. Renamed version of PackedRecordSize().
	(OldDB_PackRecord): Pack data into record. Renamed version of
	PackRecord().
	(OldDB_LockRecord,OldDB_UnlockRecord): New function. Lock and
	unlock old-style records.
	(OldDB_UpdateRecord,OldDB_SetField): Update old-style records and
	fields.
	(OldDB_Open): Use OldDB_LockRecord(), OldDB_UnlockRecord(),
	OldDB_UpdateRecord(), and OldDB_SetField() instead of the ones
	previously shared with the new format driver.
	
2000-06-07  Tom Dyas  <tdyas@vger.rutgers.edu>

	* io.c (DB_GetView): When we increment the app info block's ref
	count, it is always a good idea to decrement when done ...

2000-06-06  Tom Dyas  <tdyas@vger.rutgers.edu>

	* datasource.h (DataSourceOptionsEnum): Added new option for top
	visible record in list view.
	(DataSourceOperations): Added GetOption_UInt16 and
	SetOption_UInt16 to get/set UInt16-type options.
	* io.c (DB_GetOption_UInt16,DB_SetOption_UInt16): New
	functions. Get/set UInt16 options for new format databases.
	(DB_Open): Point at the new option functions.
	(DB_Create): Create the default CHUNK_LISTVIEW_OPTIONS for the
	database.
	(OldDB_GetOption_UInt16,OldDB_SetOption_UInt16): New
	functions. Get/set UInt16 options for 0.2.x format databases.
	(OldDB_Open): Point at the new option functions.
	* design.c (popup_strings_count): New variable. Number of elements
	in the popup_strings array.
	(UpdateScrollers): Set the width of the field type column and the
	popup list.
	(SetupPopupList): New function. Checks the data source driver to
	see which field types are supported. Only those are enabled.
	(DesignViewHandleEvent): Call SetupPopupList(). Free popup_strings
	on frmCloseEvent.
	* list.c (TopVisibleRecord): Removed.
	(ActiveViewIndex): New variable. Stores currently active view
	definition.
	(ListViewHandleEvent): Fill in ActiveViewIndex and the top record
	index from the associated options. Store the top visible index on
	frmCloseEvent.
	* docs/format.txt: Update for new list view options chunk.
	
2000-06-03  Tom Dyas  <tdyas@vger.rutgers.edu>

	* design.c (types): New array which defines the order of items in
	the field type popup list.
	(LoadTable): The index into the popup list is determined by
	scanning the types array.
	(SetColumnWidths): Only activate field types supported by the data
	source driver. Compute widths of field type strings and set
	columns accordingly.
	(DesignViewHandleEvent): When user selects a field type, scan
	types array using the index to find the actual field type.
	* datasource.h (DataSourceClassOperations): New method
	SupportsFieldType() which allows the design view to figure out
	what field types a driver can handle.
	* io.c (DB_SupportsFieldType): New function. Implements the driver
	class method SupportsFieldType() for DB and DB 0.2.x databases.
	(GetInternalDataSources): Use DB_SupportsFieldType().
	
2000-06-01  Tom Dyas  <tdyas@vger.rutgers.edu>

	* db.rcp: Add grafitti state indicator to duplicate, rename, and
	create dialogs. Redo size of app prefs and database prefs dialogs
	to cover to screen edge.

2000-05-23  Tom Dyas  <tdyas@vger.rutgers.edu>

	* util.c (MatchString): Use the glue routines to do the
	search. Could cache the comparison routine somehow. And hardcoding
	len_substr in call to Compare() could be a problem if possible to
	have different encodings for same character.
	* list.c (FindDialogHandleEvent): Don't lock down the "All Fields"
	string and never unlock it. It is copied now and freed when done.
	(CmpField): New function. Handles comparing any field
	type. Factored out of LocalSearch().
	(LocalSearch): Use CmpField().

2000-05-19  Tom Dyas  <tdyas@vger.rutgers.edu>

	* chooser.c (SetupActions): Modified so that popup menu is filled
	from the popup_menu[] array.
	(FreeActions): New function. Frees the memory allocated in
	SetupActions().
	(ChooserHandleEvent): Call FreeActions() in frmCloseEvent.
	* db.rcp: Added strings for popup menu items to make translation
	possible.
	* enum.h: Constants for popup menu item strings.

2000-05-17  Tom Dyas  <tdyas@vger.rutgers.edu>

	* chooser.c (DrawIcon): New function. Draws icon for a database
	which is currently the same as the program's small icon.
	(DrawLabel): Renamed from DrawChooserItem(). Just draws title of
	the data source.
	(LoadTable): Set item style for icon column.
	(InitTable): Setup the icon column.
	(ChooserHandleEvent): Only allow dragging on label and not
	icon. Respond to click on icon column instead of hardcoding pixel
	position.
	* db.rcp (formID_Chooser): Change table to contain 2 columns.
	
2000-05-05  Tom Dyas  <tdyas@vger.rutgers.edu>

	* chooser.c (RenameDatabase): New function. All functional code
	extracted from Chooser_RenameDatabase except opening/closing the
	chooser database. Plus the title is copied correctly.
	(Chooser_RenameDatabase): Just call RenameDatabase().
	(SetupActions): Add rename action.
	(ChooserHandleEvent): Handle rename action.
	(RenameDlgHandleEvent): New function. Implements the database
	rename dialog.
	* db.h: Added prototype for RenameDlgHandleEvent().
	* datasource.h (DataSourceOperations): Added method SetTitle()
	which sets the datasource's title and returns a new chooser key.
	* io.c (DB_SetTitle): Implementation of SetTitle() method.
	(DB_Open): Hook in DB_SetTitle() for SetTitle() method.
	(OldDB_Open): Hook in DB_SetTitle() for SetTitle() method.
	* design.c (Rebuild): Remove source database, rename destination
	database to the source's name using SetTitle(), and replace source
	with destination.
	* db.rcp: Added rename dialog.
	* enum.h: Constants for rename dialog.
	* main.c (AppHandleEvent): Handle formID_RenameDlg.

2000-05-04  Tom Dyas  <tdyas@vger.rutgers.edu>

	* design.c (Rebuild_GetString): If asked for the value of a new
	field, return blank.
	(Rebuild_GetInteger): Likewise. Return 0.
	(Rebuild_GetBoolean): Likewise. Return false.
	(Rebuild): Display "Working..." while doing work.
	Copy views from source to destination.
	Display alert for errors.
	Detect errors from UpdateRecord().
	* chooser.c (DuplicateDlgHandleEvent): Renamed from
	DuplicateDataSource().
	(DoDuplicate): Display "Working..." while doing work.
	Copy views from source to destination.
	Detect errors from UpdateRecord().
	Display alert for any errors.
	* db.h: Added prototype for DuplicateDlgHandleEvent().
	* db.rcp: Added alerts RebuildFailed and DuplicateFailed.
	* enum.h: Added alertID_RebuildFailed and alertID_DuplicateFailed.
	* main.c (AppHandleEvent): Added formID_DuplicateDlg.

2000-05-02  Tom Dyas  <tdyas@vger.rutgers.edu>

	* design.c (PopupFieldSelectDialog): Use MemPtrUnlock() instead of
	MemPtrFree() to unlock the name handles. Fixes crash.
	(Rebuild): New function. Rebuilds the active database using the
	specified new schema and field order.
	(Rebuild_GetString,Rebuild_GetInteger,Rebuild_GetBoolean): New
	functions which convert fields of the database.
	(UpdateExistingDesign): Call Rebuild() to rebuild the database.
	* db.rcp (formID_CreateDlg): Rework the position of the name field
	and type list.

2000-05-01  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Makefile: Replaced direct calls to build-prc, pilrc, and m4 with
	macros so users can override easily on the command line.
	* docs/building.txt: Updated for recent changes incl. SDK 3.5.

2000-04-30  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Makefile: Use m4 to preprocess the resource file so we don't
	need a special patch to pilrc to get normal include
	files. Substitute the version and build date into the resource
	file as macros.

2000-04-29  Tom Dyas  <tdyas@vger.rutgers.edu>

	* datasource.h (DataSourceOperations): Changed prototype of
	CheckUpdateSchema() and UpdateSchema() methods to support the new
	rebuild functionality.
	* io.c (DB_CheckUpdateSchema): Conform to new prototype.
	(DB_UpdateSchema): Likewise.
	(OldDB_UpdateSchema): Likewise.
	(OldDB_Open): Use DB_CheckUpdateSchema() for CheckUpdateSchema()
	method.

2000-04-28  Tom Dyas  <tdyas@vger.rutgers.edu>

	* io.c (OldDB_Create): New function. Creates databases in the
	legacy format.
	(DB_CheckTitle): Check to see if a title already exists.
	* db.rcp: Added forms for new create and duplicate
	dialogs. Removed name field from design view since it is handled
	by the create dialog now.
	* enum.h: Constant values for new dialogs.
	* chooser.c (ChooserHandleEvent): Add duplicate action.
	(SetupActions): Add duplicate action.
	(DoDuplicate): Copy one data source to another.
	(FillDriverList): Scan the driver list and copy the names into an
	UI list.
	(DuplicateDataSource): Popup the UI for the duplicate feature.
	(CreateDlgHandleEvent): Handle the create dialog.
	* datasource.h (DataSourceClassOperations): New class method
	CheckTitle. Checks to see if a title is already in use. Used by
	create dialog.
	(DataSourceClassOperations): Modified prototype for Create so that
	the key is returned.
	* design.c: Removed every reference to the name field. Added
	variables DesignViewDriver and DesignViewName used for creation.
	* db.h: Prototypes for DesignViewDriver, DesignViewName, and
	CreateDlgHandleEvent().
	* main.c (AppHandleEvent): Handle formID_CreateDlg.
	
2000-04-26  Tom Dyas  <tdyas@vger.rutgers.edu>

	* io.c (PDB_Enumerate): New function. Helper for Enumerate driver
	methods that use Palm databases.
	(PDB_GlobalFind): New function. Helper for GlobalFind driver
	methods that use Palm databases.
	(DB_Enumerate,OldDB_Enumerate): Use PDB_Enumerate().
	(DB_GlobalFind,OldDB_GlobalFind): Use PDB_GlobalFind().
	(DB_GetRecordID): New function. Implements GetRecordID() method
	for DB databases.
	(PDB_Beam): SendDatabase() moved from chooser.c and renamed. Beams
	a database to another device.
	(WriteDBData): Helper function for PDB_Beam(). Moved from
	chooser.c.
	(BeamDataSource): New function. Find the correct driver and call
	Beam() driver method.
	* list.c (ViewModel_GetCellID): Use GetRecordID method.
	* datasource.h (DataSourceOperations): Added GetRecordID() method.
	(DataSourceClassOperations): Added Beam() driver method.
	(BeamDataSouce): Added prototype.
	(DataSource): Added readonly flag. Set to true when data source
	can/should not be modified.
	* chooser.c (SendDatabase,WriteDBData): Moved to io.c.
	(ChooserHandleEvent): Call BeamDataSource() when beam selected.
	* db.h (SeekRecord): Removed obsolete prototype.
	
2000-04-24  Tom Dyas  <tdyas@vger.rutgers.edu>

	* io.c (DB_GlobalFind): Implement global find for native DB
	databases.
	(OldDB_GlobalFind): Implement global find for legacy DB databases.
	(DB_Open,DB_OpenPDB): Added mode argument.
	(OldDB_Open,OldDB_OpenPDB): Added mode argument.
	(OpenDataSource): Added mode argument.
	Changed key_size from UInt32 to UInt16.
	(DB_GetTitle): New function. Returns title of database.
	* datasource.h: Add new class method which implements global find.
	Changed key_size from UInt32 to UInt16.
	(OpenDataSource,OpenDataSourcePDB): Added mode argument.
	* chooser.c (ChooserHandleEvent): Use dmModeReadWrite for new mode
	arugment.
	* main.c (ChooseInitialForm): Use dmModeReadWrite for new mode
	argument.
	* find.c (GlobalSearch): Completely rewritten to support the data
	source layer.
	(GFindCallback): Function used as a callback from the data source
	drivers.
	* list.c (ListViewHandleEvent): Use GetTitle method instead of
	breaking the data source abstraction.
	
2000-04-21  Tom Dyas  <tdyas@vger.rutgers.edu>

	* io.c (DB_SetField): New function. Sets any field in a locked
	down record.
	* list.c (ViewModel_SetCellBoolean): Call SetField data source
	method to restore checkbox feature.
	* main.c (PilotMain): Support sysAppLaunchCmdOpenDB launch code
	which some newer launchers send when a document is clicked.
	(CheckMinVersion): New function. Makes sure the ROM is version 2.0
	or higher.
	* chooser.c: Support masked private records on PalmOS 3.5.
	(ChooserInfoDialogHandleEvent): Fill in the type field with the
	name of the data source driver.
	* listprop.c (SaveFieldWidths): Use numCols instead of the number
	of fields so we don't crash ...
	* db.rcp: Added type field to the chooser info dialog.

2000-04-20  Tom Dyas  <tdyas@vger.rutgers.edu>

	* io.c (OpenDataSourcePDB): New function. Calls OpenPDB method of
	each driver.
	(DB_OpenPDB): Opens a specific PDB.
	(DB_CanHandlePDB): Checks if a driver supports a specific PDB.
	
2000-04-11  Tom Dyas  <tdyas@vger.rutgers.edu>

	* *.c,*.h: Ported to SDK 3.5 which required a massive rename.

2000-02-11  Tom Dyas  <tdyas@vger.rutgers.edu>

	* docs/building.txt: Point at prc-tools 2.0 home page.

2000-02-10  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Makefile: Support prc-tools 2.0 which supports multiple code
	resources.

2000-02-03  Tom Dyas  <tdyas@vger.rutgers.edu>

	* grid.c: Row Highlight support.
	* grid.h: Prototypes for the highlighting functions.
	* list.c: Reorganized the local find code so that it uses a normal
	event handler. FrmSetFocus() after FrmDrawForm() so cursor is
	enabled correctly. Use new highlight support in the grid.
	* main.c (AppHandleEvent): Added formID_FindDialog

2000-02-02  Tom Dyas  <tdyas@vger.rutgers.edu>

	* docs/building.txt: New file. Details on how to build DB from
	scratch.

2000-01-10  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Makefile: Changed to build with new version of
	prc-tools. Removed callback.h from dependencies.
	* chooser.c: Removed callback stuff.
	* design.c: Likewise.
	* edit.c: Likewise.
	* find.c: Likewise.
	* list.c: Likewise.
	* listprop.c: Likewise.
	* main.c: Likewise.
	* util.c: Use PalmOS 3.1 Text Manager for now.

2000-01-05  Tom Dyas  <tdyas@vger.rutgers.edu>

	* scripts/escape-strings.pl: Perl script that escapes strings in
	the translation files so pilrc likes the strings.
	* langs/ja.rcp: Update from <sat@pro.email.ne.jp>.
	* langs/de.rcp: Update from Thorsten Tietz <thorsten.tietz@gmx.de>
	* db.rcp: Enable the Japanese translation.

2000-01-02  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Version 0.2.5
	* NEWS: Changed for 0.2.5.
	* langs/de.rcp: Updates from Thorsten Tietz
	<thorsten.tietz@gmx.de>
	* db.rcp (formID_ChooserOptsDialog): Increased width of popup list
	on display options screen.

2000-01-01  Tom Dyas  <tdyas@vger.rutgers.edu>

	* chooser.c (SortAlphabetic): New function. Sorts database names.
	(LoadTable): Use unqiue ID to detect when a record moves.
	(InvertMoveIndicator): Invert the little squiggly line used to
	indicate a move.
	(SelectItem): Handle tblEnterEvent to allow dragging of databases.
	(ChooserHandleEvent): Call SelectItem() on tblEnterEvent.
	
1999-12-30  Tom Dyas  <tdyas@vger.rutgers.edu>

	* chooser.c: Added support for categories and secret databases.
	* db.rcp: Updated Chooser form and added new Chooser Info Dialog
	* enum.h: IDs for the new Chooser form elements
	* db.h: (DBPrefsType): Added chooser-specific preferences.
	(Chooser_AddDatabase): Added prototype.
	(Chooser_RenameDatabase): Likewise.
	(ChooserInfoDialogHandleEvent): Likewise.
	* design.c (UpdateExistingDesign): Call Chooser_RenameDatabase().
	* io.c (CreateDatabase): Call Chooser_AddDatabase().
	* main.c (AppHandleEvent): Handle formID_ChooserInfoDialog
	(InitPrefs): New function. Initializes prefs structure.
	(StartApplication): Use InitPrefs(). Set HideSecretRecords from
	system preferences.
	(PilotMain): Respond to sysAppLaunchCmdSyncNotify after HotSync.
	* langs/*.rcp: Added new translation strings.

1999-12-28  Tom Dyas  <tdyas@vger.rutgers.edu>

	* main.c (StartApplication): Retrieve saved database name from
	preferences.
	(StopApplication): Store database name in preferences.
	* db.h: Changed preferences to store database name.

1999-12-21  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Version 0.2.4
	* find.c (GlobalSearch): Fix crash in global find when user
	disabled find on a database. Caused by unlocking the app info
	block too many times. Bug spotted by Peter Kane
	<Peter.KANE@ergon.com.au>

1999-12-20  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Version 0.2.3
	* build-zip.sh: New file. Automates the building of the zip
	distributions.
	* langs/de.rcp: Updates from Thorsten Tietz
	<thorsten.tietz@gmx.de>
	* langs/nl.rcp: Fix the page up/down strings.
	* langs/sample.rcp: Likewise.
	* list.c: Fix calls to ListScroll to actually scroll in the right
	direction.

1999-12-19  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Version 0.2.2
	* README: Mention SourceForge and the new mailing list.
	* NEWS: Description of latest updates.

1999-12-17  Tom Dyas  <tdyas@vger.rutgers.edu>

	* db.rcp: Add new labels and popup triggers for scroll button
	configuration.
	* enum.h: Defines for the new controls.
	* prefs.c (PopupAppPrefs): Hook in new controls.
	* main.c (StartApplication): Make page scrolling the default for
	the page up/down hard keys.
	* langs/*.rcp: New translation strings.
	* list.c: Use the new scrolling preferences to determine line/page
	scrolling.

1999-12-15  Tom Dyas  <tdyas@vger.rutgers.edu>

	* listprop.c (ListPropViewHandleEvent): Release table focus when
	form closes so we don't crash.

1999-11-26  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Version 0.2.1

1999-10-24  Tom Dyas  <tdyas@vger.rutgers.edu>

	* README: Reference new palm-db-tools package where conversion
	utilities are now located.
	* docs/converters.txt: Removed.
	* tools/*: Removed. Use palm-db-tools package.
	
1999-09-24  Tom Dyas  <tdyas@vger.rutgers.edu>

	* docs/translating.txt: Added ISO language code list.
	* langs/de.rcp: Updated translation.
	* Makefile: Modified build rules for Dutch and Japanese to use
	correct language codes.
	* list.c (PopupFindDialog): Set width for field selection list
	dynamically based on field names.

1999-09-22  Tom Dyas  <tdyas@vger.rutgers.edu>

	* main.c (PilotMain): Support LinkMaster 0.3.0 and higher.

1999-09-02  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Makefile: Added some dependencies for the sources files.

1999-08-16  Tom Dyas  <tdyas@vger.rutgers.edu>

	* db.rcp: Added DEFAULTBUTTON entry for all alerts. pilrc 2.4 or
	higher is now required.
	Commented out include of Japanese translation for now.
	(menuID_EditViewMenu): Menu option on Edit screen for publishing a
	link to LinkMaster.
	* linkaware.[ch]: New files that implement LinkMaster
	support. Patch from Mitch Blevin.
	* main.c (PilotMain): Respond to LinkMaster launch codes.

1999-08-03  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Makefile: Base targets for languages on ISO country code.
	* langs/de.rcp: Moved German translation here from db.rcp.
	* langs/nl.rcp: Ditto for Dutch translation.
	* langs/sample.rcp: Ditto for sample translation.
	* langs/ja.rcp: Japanese translation.
	* docs/translating.txt: Update to include new way of storing the
	translations.

1999-07-03  Tom Dyas  <tdyas@vger.rutgers.edu>

	* list.c (PopupFindDialog): Set database flags to current state of
	LFindCaseSens and LFindWholeWord.
	* util.c (GetFlags): New function. Returns database flags.
	* util.c (SetFlags): New function. Sets database flags.

1999-06-17  Tom Dyas  <tdyas@vger.rutgers.edu>

	* util.c (MatchString): Forgot code to match whole word for case
	insensitive searches.

1999-06-15  Tom Dyas  <tdyas@vger.rutgers.edu>

	* util.c (MatchString): New function. Does string matching with
	support for caseless and whole word.
	* list.c (LocalSearch): Use MatchString().

1999-06-10  Tom Dyas  <tdyas@vger.rutgers.edu>

	* design.c (DesignViewHandleEvent): Fix buffer overrun.

1999-06-08  Tom Dyas  <tdyas@vger.rutgers.edu>

	* edit.c (EditViewHandleEvent): Moved form setup code to
	SetupRecordData(). Fixes crash when event handler entered via
	FrmCloseAllForms() in main.c:StopApplication().
	* config.h: New file. Place for manifest constants and macros to
	let user configure certain features out of DB.
	* design.c (DesignViewHandleEvent): Use new manifest constant
	MAX_NUM_FIELDS_FOR_NEW_DB.
	(DesignViewHandleEvent,frmCloseEvent): Release focus when form is
	being closed so all data is written back.
	* TODO: Various updates.
	* docs/translating.txt: New file. Shows how to provide a new
	language translation of DB.
	
1999-06-06  Tom Dyas  <tdyas@vger.rutgers.edu>

	* chooser.c (SendDatabase): New function. Uses Exchange Manager to
	beam a database.
	* db.rcp (formID_Chooser): Added "beam" button and "open" button.

1999-06-05  Tom Dyas  <tdyas@vger.rutgers.edu>

	* design.c (InsertField): Use signed integers, not unsigned. Fixes
	crashes when inserting fields.

1999-06-01  Tom Dyas  <tdyas@vger.rutgers.edu>

	* db.rcp: Updated German strings from Thorsten Tietz.

1999-05-28  Tom Dyas  <tdyas@vger.rutgers.edu>

	* design.c (PopupFieldSelectDialog): Call InitTable() when a field
	is inserted to reset everything.

1999-05-20  Tom Dyas  <tdyas@vger.rutgers.edu>

	* db.rcp: Reworked the field selector dialog for the design view.
	* enum.h: Renamed constants for field selector dialog.
	* main.c (AppHandleEvent): Removed formID_DesignView_SelectField
	from the frmLoadEvent handler.
	* db.h: Removed prototype for SelectFieldHandleEvent().
	* design.c: Moved SelectFieldHandleEvent() into InsertField(),
	DeleteField(), and PopupFieldSelectDialog().
	(DesignViewHandleEvent): Call PopupFieldSelectDialog().
	
1999-05-16  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Makefile (db-dutch.prc,ts-bin-dutch): Add targets for Dutch
	version of DB.
	* db.rcp: Added Dutch translation from Tom Van Wint
	(tom.vanwint@watco.be).

1999-05-13  Tom Dyas  <tdyas@vger.rutgers.edu>

	* list.c (PopupFindDialog): Setup the search field list and
	trigger label.
	(LocalSearch): Obey the search field specified by LFindField.
	Fix bug where we didn't unlock the record when a match was made.
	* db.rcp: Add search field list and trigger.

1999-05-06  Tom Dyas  <tdyas@vger.rutgers.edu>

	* list.c (PopupFindDialog): Set the whole word checkbox.
	(LocalSearch): Show alert if string is not found.
	* db.rcp: Added whole word checkbox and not found alert.

1999-04-28  Tom Dyas  <tdyas@vger.rutgers.edu>

	* db.rcp: Update German translation. Add small icon.
	* small.bmp: New icon for Palm III list view from Thorsten Tietz.
	* list.c (StrCaselessStr): See if one string is inside another.
	(LocalSearch): Use StrCaselessStr().
	(PopupFindDialog): Set the case-sensitibity checkbox.
	* TODO: Remove small list icon and search entries.

1999-04-27  Tom Dyas  <tdyas@vger.rutgers.edu>

	* list.c (LocalSearch): New function. Implements the local find
	functionality.
	(PopupFindDialog): Use LocalSearch().
	(ListViewHandleEvent): Implement the search repeat button.
	* db.rcp: Add search repeat button.

1999-04-26  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Makefile: Added db-german.prc and ts-bin-german targets to
	create german version of DB.
	* db.rcp: Added German translation from Thorsten Tietz
	<101.147211@germanynet.de>

1999-04-25  Tom Dyas  <tdyas@vger.rutgers.edu>

	* list.c (PopupFindDialog): New function. Displays the local find
	dialog.
	* db.rcp (formID_FindDialog): Added form resource for find dialog.
	(formID_ListView): Add find button and move arrow buttons around.
	Added sample translation.
	* Makefile (db-sample): New target to generate the sample
	translation.

1999-04-24  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Release version 0.20
	* list.c (ListInitTable): Set new variable LastColClipped if the
	last column didn't get its full size.
	(UpdateFieldButtons): Show right scroll button if LastColClipped
	is set.
	
1999-04-18  Tom Dyas  <tdyas@vger.rutgers.edu>

	* tools/util.c (strip_newline): New function that removes trailing
	CR/LF characters.
	* tools/util.h: Prototype for strip_newline().
	* tools/csv2pdb.c: Include <time.h> on Win32.
	* tools/pdb2csv.c: Ditto.
	* tools/mdb2csv.c: Ditto.
	* tools/jfile2csv.c: Ditto.
	* NEWS: Final updates before 0.20 release.
	* README: Some minor wording changes.

1999-04-15  Tom Dyas  <tdyas@vger.rutgers.edu>

	* docs/converters.txt: Completed documentation on conversion
	utilities.
	* README: Reference docs/converters.txt as the source of info on
	the conversion utilities.
	* tools/win32/makefile.gcc: Add jfile2csv target.

1999-04-10  Tom Dyas  <tdyas@vger.rutgers.edu>

	* docs/converters.txt: New document to describe how to use
	conversion utilities. Not complete yet.

1999-04-08  Tom Dyas  <tdyas@vger.rutgers.edu>

	* listprop.c (SaveFieldWidths): Use IsNumber() and String2Long()
	from util.c.
	* main.c (StopApplication): Call FrmSaveAllForms().
	* list.c: Set IsNewRecord correctly.
	* edit.c (EditViewHandleEvent): Handle frmSaveEvent so record is
	saved if user switches to another application.
	(EditViewSaveRecord): New function. When a field is exited, mark
	IsDirty if the field changed.
	(SaveRecord): Only save record if it is dirty.	
	
1999-04-07  Tom Dyas  <tdyas@vger.rutgers.edu>

	* tools/csv2pdb.c: Use signed integer instead of unsigned
	integer. Allows unknown field types to be detected. (-1 and
	unsigned types don't like each other)
	(field_directive): Return any errors in handle_field_directive()
	(output_records): Increase amount of buffer space. Flag an error
	if fgets() overruns the buffer.
	* util.c (IsNumber): New function.
	(String2Long): New function. Converts string in decimal, octal, or
	hexdecimal to a long integer.
	* edit.c (ValidateData): Use IsNumber().
	(SaveRecord): Use String2Long().
	
1999-03-28  Tom Dyas  <tdyas@vger.rutgers.edu>

	* list.c (UpdateFieldButtons): Cache the state of the scroll
	buttons so we don't show/hide them. Fixes display bug found by
	Damon <damon@Porsche.it.iupui.edu>.
	* tools/jfile2csv.c: New file. Converts JFile v3 databases into
	CSV text format compatible with csv2pdb.

1999-03-27  Tom Dyas  <tdyas@vger.rutgers.edu>

	* tools/csv2pdb.c: Added --help option.
	* tools/pdb2csv.c: Ditto.
	* tools/mdb2csv.c: Ditto.

1999-03-23  Tom Dyas  <tdyas@vger.rutgers.edu>

	* tools/util.c (str_to_array): Skip over seperator chars if caller
	wants it.
	* tools/util.h: Updated str_to_array() prototype.
	* tools/csv2pdb.c: Update to new version of str_to_array().

1999-03-22  Tom Dyas  <tdyas@vger.rutgers.edu>

	* tools/csv2pdb.c (string2type): New function. Converts a type
	string into a type number.
	(handle_field): Use string2type().
	(usage): Document all the options.
	* tools/util.c (csv_to_array): Rewritten to be accept empty
	trailing fields.
	(str_to_array): Ditto.
	* list.c (ListScroll): Bug fix. Scroll down a page and not up a
	page. Patch from Jonathan Hudson
	<jonathan.hudson@jrhudson.demon.co.uk>

1999-03-13  Tom Dyas  <tdyas@vger.rutgers.edu>

	* tools/popt.[ch]: New files. GPL'ed command line option parser.
	* tools/util.c: New file. Moved CSV parsing routine here.
	* tools/util.h: New file. Prototypes for util.c.
	
1999-03-08  Tom Dyas  <tdyas@vger.rutgers.edu>

	* io.c (CreateDatabase): Use DBCreatorID and not 'TKD3'.
	* tools/mdb2csv.c: New file. Converts MobileDB format databases
	into a CSV text file compatible with csv2pdb.

1999-03-03  Tom Dyas  <tdyas@vger.rutgers.edu>

	* edit.c (ValidateData): New function. Lets edit view see if
	entered data is in correct format.

1999-03-01  Tom Dyas  <tdyas@vger.rutgers.edu>

	* tools/pdb2csv.c: Rewritten to support output to the new "info"
	file for the metadeta.
	* tools/csv2pdb.c: Rewritten to support taking input from an
	"info" file as well as command line.
	
1999-02-28  Tom Dyas  <tdyas@vger.rutgers.edu>

	* edit.c,list.c,io.c,dbfmt.h,db.rcp: Add support for integer data
	type.

1999-02-26  Tom Dyas  <tdyas@vger.rutgers.edu>

	* list.c (AddNewRecord): If DmNewRecord() fails, then display an
	alert. Activate editor form here as well.
	(ListViewHandleEvent): Let AddNewRecord() activate editor.

1999-02-25  Tom Dyas  <tdyas@vger.rutgers.edu>

	* edit.c (EditViewHandleEvent): Support the "Cancel" button.
	* db.rcp,enum.h: Add "Cancel" button to Edit View.

1999-02-23  Tom Dyas  <tdyas@vger.rutgers.edu>

	* list.c (ListDrawTable): If a field exceeds the width of its
	column, then tack ellipsis ("...") on the end.

1999-02-19  Tom Dyas  <tdyas@vger.rutgers.edu>

	* tools/pdb2csv.c (process_appinfo): Output the field types and
	field widths as two additional lines.
	(process_records): Unpack boolean fields correctly.
	* tools/csv2pdb.c (output_records): Support boolean field type.
	(read_header_lines): New function. Read and parse all 3 lines of
	header info.
	(output_appinfo): Just use data parsed by read_header_lines().
	(read_line): Read a single line from the input file.
	* prefs.c (PopupAppPrefs): Reference correct ID for the okay
	button. Fixes bug where prefs were not saved.
	* main.c (StartApplication): Make sure app prefs exist as soon as
	DB is first run. Fixes bug where Global Find wouldn't work until
	user eited DB for the first time.

1999-02-11  Tom Dyas  <tdyas@vger.rutgers.edu>

	* find.c (GlobalSearch): Keep pointer to app info block locked
	while db is open. Use new format for UnpackRecord() call.
	* io.c (UnpackRecord): Add extra argument for field type data so
	it is usable from Global Find code.
	* db.h: Update prototype for UnpackRecord.
	* list.c: Use new format for UnpackRecord.

1999-02-10  Tom Dyas  <tdyas@vger.rutgers.edu>

	* list.c (ListViewHandleEvent): Set the form title to reflect the
	name of the database.
	* db.rcp: Added string resources for the two titles used in the
	design view.
	* util.c (GetStringPtr): New function. Return locked pointer to a
	string resource.
	* db.h: Prototype for GetStringPtr().
	* design.c (DesignViewHandleEvent): Use GetStringPtr() to get
	strings used for titles.
	* find.c,main.c,prefs.c: Change 'DBOS' to DBCreatorID and 'DB99'
	to DBTypeID.
	
1999-02-06  Tom Dyas  <tdyas@vger.rutgers.edu>

	* edit.c: Support editing boolean fields.
	* io.c: Modify packing routines to support different field types.
	* list.c: Support displaying boolean fields and editing them
	in-place.
	* dbfmt.h: Field type flags.
	* db.h: Change packing routine prototypes to match io.c.
	* db.rcp (formID_DesignView): Add "Bool" to field type list.

1999-01-26  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Release version 0.19
	* prefs.c (PopupDBPrefs): Support setting the "disable find"
	database flag.
	* db.rcp,enum.h: Checkbox for "disable find" in DB prefs dialog.
	* dbfmt.h: Add constant for "disable find" flag.
	* list.c (ListDrawTable): Don't allow strings to overrun column
	width.
	* listprop.c (SetColumnWidths): During loop, use width of current
	column and not first column. Fixes bug.
	(SaveFieldWidths): Fix database corruption caused by header being
	rewritten incorrectly.
	* tools/csv2pdb.c: Support double quotes.
	* tools/pdb2csv.c: Output double quotes around all fields.

1999-01-25  Tom Dyas  <tdyas@vger.rutgers.edu>

	* tools/csv2pdb.c (csv_to_array): Return number of elements.
	(output_appinfo): Support new file format.
	(output_records): Error if number of fields does not match header.
	* tools/pdb2csv.c (process_appinfo): Support new file format.

1999-01-23  Tom Dyas  <tdyas@vger.rutgers.edu>

	* dbfmt.h: New format for app info block.
	* db.h: Defs for new globals numFields and fields. Remove dbInfo.
	* io.c: Declare numFields and fields.
	(OpenDatabase): Set the new globals.
	(CloseDatabase): Write TopVisibleRecord back to database.
	* list.c,edit.c: Use the new globals.
	* design.c: Remove design_info. Make it work with new globals.

1999-01-22  Tom Dyas  <tdyas@vger.rutgers.edu>

	* prefs.c (PopupAppPrefs): New function. Implements the
	application preferences dialog.
	* db.h: Prototype for PopupAppPrefs. New flags field in
	preferences structure.
	* db.rcp,enum.h: Support for the new dialog. Menu for the chooser
	view. Add the App Prefs dialog in various menus.
	* chooser.c (ChooserHandleEvent): Handle menuEvent.
	* main.c (PilotMain): Only respond to Find launch code if global
	Finds are enabled in the prefs.
	(StartApplication): Initialize the flags field in prefs.

1999-01-17  Tom Dyas  <tdyas@vger.rutgers.edu>

	* find.c: New file. Implements global find.
	* main.c (PilotMain): Respond to Find and GoTo launch codes.
	(GoToItem): New function. Sends frmGoto event to correct form.
	* db.h: Added prototype for GlobalSearch().
	
1999-01-12  Tom Dyas  <tdyas@vger.rutgers.edu>

	* edit.c (EditViewScroll): Make needed call to MemPtrUnlock(). Bug
	found by Yann Dirson <ydirson@mygale.org>.

1999-01-11  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Release version 0.15
	* TODO: Support for going back to an open DB is done. Removed item.
	* README: Warn about incompatible database format changes.
	
1999-01-10  Tom Dyas  <tdyas@vger.rutgers.edu>

	* prefs.c: New file. Code for database preferences dialog.
	* db.rcp,enum.h: Add support for db prefs dialog.
	* db.h: Prototype for PopupDBPrefs(). Define struct for the app
	preferences. Changed prototype of OpenDatabase().
	* main.c: Added StartApplication() and ChooseInitialForm() so DB
	can support going back to an open database.
	* list.c (DoCommand): Call PopupDBPrefs().
	* io.c (OpenDatabase): Do some better error checking.
	
1999-01-08  Tom Dyas  <tdyas@vger.rutgers.edu>

	* db.rcp: Added new commands to list view menu (new record, goto
	top, goto bottom). Added "About..." command to more menus.
	* list.c (DoCommand): Support the above commands.
	(ListScroll): Support scrolling in page increments.
	(ListViewHandleEvent): Bind page up/down keys for scrolling.
	* listprop.c (UpdateScrollers): Corrected scrollDown test.

1999-01-08  Tom Dyas  <tdyas@vger.rutgers.edu>

	* db.bmp: New file containing a simple icon.
	* db.rcp: Added ICON entry to pull in the new icon.
	* util.c (SeekRecord): New utility routine.
	* list.c: Use SeekRecord. Export TopVisibleRecord and
	CurrentCategory.
	* io.c (OpenDatabase): Set TopVisibleRecord and CurrentCategory.
	* TODO: Updated with current feature requests.

1999-01-07  Tom Dyas  <tdyas@vger.rutgers.edu>

	* README: Added URL of site where copies of DB are released.

1998-12-29  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Release version 0.12
	* README: New section mentioning Windows utility.

1998-12-28  Tom Dyas  <tdyas@vger.rutgers.edu>

	* tools/csv2pdb.c: Add macro pi_mktag to form the creator ID. Misc
	appearance cleanups.
	* tools/pdb2csv.c: New file. Converts PDB file to CSV format.
	* tools/Makefile: Added pdb2csv target.
	* tools/win32/*: Support for building utility programs under
	Windows. The pi-file.c file comes from pilot-link package with
	mods to make it standalone.
	
1998-12-23  Tom Dyas  <tdyas@vger.rutgers.edu>

	* tools/csv2pdb.c: Fix warnings and some errors.
	Patch from Larry W. Virden <lvirden@cas.org>

1998-12-18  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Release version 0.11
	* design.c (DesignViewHandleEvent): When a label is tapped, then
	focus the field next to it.
	* listprop.c (ListPropViewHandleEvent): Likewise.

1998-12-16  Tom Dyas  <tdyas@vger.rutgers.edu>

	* Release version 0.10
	* listprop.c: New file. Implements a form for editing field
	widths.
	* chooser.c (ChooserHandleEvent): Support for deleting databases.
	* design.c: Cleaned up code for the new look.
	* db.rcp: Add new alerts for the design view. Added alert for
	database deletion. Add form for editing field widths.
	* main.c (AppHandleEvent): Support for the new form.
	
1998-12-15  Tom Dyas  <tdyas@vger.rutgers.edu>

	* design.c,db.rcp: Reworked how the design view works. It looks
	much nicer now.

1998-12-02  Tom Dyas  <tdyas@vger.rutgers.edu>

	* db.rcp: Added Edit menu for design view and edit view.
	* edit.c (EditViewHandleEvent): Handle menuEvent.
	* design.c (DesignViewHandleEvent): Handle menuEvent
