06-24-2001
	
	- Revamp of the TODO list for better readability; Major, Minor,
	  Tweak, Feature. The remainder below illustrates this: 

Major Issues
------------
	Open/Pending
	------------
	- read-expenses/install-expense doesn't return the string of Type
	  for 'Train, Airplane', etc.

	- Need to clean up the OS/2 defines, or remove them entirely. This
	  requires that the ./configure be reversed into configure.in/auto*
	  scripts. The 'p4' stuff should be tweaked, and ${HOST} detected
	  upon ./configure.

	- Check RPC code (something broken on large-endian machines?)

        - pilot-addresses -T header fix (don't import header into record)
	  - Progress output per record
	  - Check for 0-byte files on read
	  - Strip CR/LF on read
	  - Export categories to csv

        - pilot-xfer -f fix (support '-f FooDB' as 'FooDB.p{db|rc|qa}
	  - Split out "Sync" from Backup function

	- "strict-ify" sync-plan.PL


	Fixed/Closed
	------------
	- Fix DLP to understand multiple return arguments.

	- USB syncronization with m50x devices. DLP changes to facilitate
	  these fixes. Document. 

	- Java code needs to be cleaned up. Any volunteers? I could learn
	  this, but it would slow down releases (thanks to David Goodenough
	  for taking on this task!)

	- Fix the C++ test(s) in ./configure, and roll all of this back into
	  autogen.sh/automake scripts.


Minor Issues
------------
	Open/Pending
	------------
        - configure.in to handle testing for python-devel installed
          #include <Python.h> int main() {PyObject x; return 0;}

        - Add missing DLP 1.2 calls

        - Fix all remaining -pedantic warnings and errors Update

	- Add current date/time to dlp_AddSyncLogEntry(); 

	- install-hinote duplicate note detection, export of notes from
	  Hi-NoteDB.pdb into desktop text files. Can we easily handle
	  images?

	- Should we nuke addresses from the package? The functionality it
	  provides is already in pilot-addresses.

	- Add progress callbacks to libpisock so that you can find out how
	  far a file transfer has gone (this is complex, as you also need to
	  instrument PADP and perhaps SLP transmissions, receptions, and
	  calculating exactly how many bytes is needed to transfer a file
	  won't be fun.)

        - Update Java bindings to use Ant instead of {g|n}make

        - Rewrite Perl bindings to take advantage of MakeMaker

	- There's a small perl problem with writing the binary character 11
	  to the end of a record. The following example illustates this:

	#!/usr/bin/perl -w
	use diagnostics;
	use PDA::Pilot;
	# it's the last value which makes the program fail;
	# and it fails only for the value 11!
	@rec = (0,0,0,0,0,0,0,0,11);
	%info = ("type"=>"Data","creator"=>"XXXX","name"=>"test");
	$pdb = PDA::Pilot::File::create("test.pdb", \%info ) or die "Oops!\n";
	$rec = join('', map(chr, @rec));
	$pdb->addRecordRaw($rec,0,0,0);


Tweaks/Enhancements
-------------------
	- Add proper curses updates to pilot-xfer -b -f -i -s -p to look
	  something like:

	.--------------------------------------------------------------.
	| File:     /tmp/palm/Alpha-Lg.pdb                  Successful |
	| Size:     3,462 bytes, 3.38k           1,028,492 bytes total |
	| Progress: [==========================>                 ] 62% |
	| Overall:  [=======================>                    ] 50% |
	| Time:     00:11:23                                           |
	| Files: 234 remaining, 468 total                              |
	`--------------------------------------------------------------'

	- Remove the pi_bind, pi_listen, pi_accept from all relevant files,
	  and create a function pi_error() which will return the proper
	  responses. Additionally, remove PalmHeader() and stick that in
	  it's own function which will report --version calls.

	- Start to condense the install-* binaries into one binary called
	  pilot-install. getopt() is a prerequisite for this, so we can do
	  'pilot-install -memos -todos' for example. Too much duplicated
	  code in there.  Symlink the rest of the apps to pilot-install, and
	  just test argv[0] to run the proper functions. Multi-call binary.

	- 'pilot-xfer -f Foo' to pull 'Foo.prc' from your Palm works. 
	  Additional option to pull by CrID would be nice as well (and
	  faster, since we can use the DLP equivalent of
	  DmOpenDatabaseByTypeCreator())

	- Add 'reada()/writea()' socket calls that allocate the return
	  buffer (important for NetSync, as results larger then 64K are
	  possible).

	- Add Tcl 8 specific code to allow retrieval of raw records, and
	  optionally use Tcl routines for packing and unpacking; Add all dlp
	  functions, clean up the channel code rats nest. Somehow. (Separate
	  source file?)

	- Perl bindings: Change record representation from string to object
	  to match Python implementation. Add packers. Document.

	- Collapse: read-todos/install-todos, memos/install-memos, etc.

        - pilot-datebook updated to match remaining structure

New Features
------------
        - pxd, first cut at a pilot-xfer'ized daemon

	- Standard output format for the "4 Magic Buttons". XML? csv?
	  iCal/vCard?
	
	- Full VFS support in libpisock for pilot-xfer -b, dlpsh, and friends.

	- TRGPro CF direct writes (Card 1?) 

	- Write iambicExpense.c (is this needed?)

	- Teach sync-plan about the other repetition types that are
	  convertable from Plan to Pilot.

	- Clean up pilot-xfer a bit more, add a -ntp <palm|desktop> option
	  to sync the time from/to the desktop from/to the Palm.

	- pilot-xfer --daemon. Would be a good test to get it listening on a
	  port in a non-scripted hacky way. All applications which return
	  should have this functionality. Interactive applications should be
	  left alone.
