	$Id: TODO,v 1.21 2001/08/09 23:59:22 thosch Rel $
	TODO for IC35 communication
	===========================

legend
------
F task to do
  yyyy-mm-dd_hh WHAT
  details ..
  F sub-tasks ..
F is current state from:
- todo
= work
+ done
x canc	cancelled as no more need/want
WHAT is task change from:
	todo	task invented
	+nn%	task nn% done
	done	task done
	canc	task cancelled

- documentation for newbies
  2001-08-03_13 todo	Klaus Krenz <Klaus.Krenz@t-online.de> had problems
  - explain COM?-ports are /dev/ttyS?, symlink /dev/ic35, access rights
  - initial test with 'ic35sync status' and/or 'ic35mgr mmcdir'
  - for 'mmc*' commands put backslashed path in quotes
- segfault empty fields in gcrd-file 'TITLE:' or 'BDAY:'
  2001-06-17_21 todo	bug report by Konrad Mader <konrad.mader@gmx.de>
  empty 'BDAY:' does not segfault, but put 'BDAY' (no colon) into PIMfile
  and next ic35sync complains "parse error"
  seem like output error, i.e. shall output 'BDAY:' not 'BDAY'
- report protocol error reasons (e.g. get_modflen timeout)
  2001-06-17_21 todo	bug report by Konrad Mader <konrad.mader@gmx.de>
  should do better error reports for easier finding protocol problems
  get_modflen timeout failure for 860 addresses fixed 2001-06-17_23
- combine ic35sync,ic35mgr into one program ic35link
  2001-02-25_20 todo	proposed by Harald Becker
  - backward compatible: symlink ic35sync -> ic35link and ic35mgr -> ic35link
    behave like before if argv[0] is "ic35sync" or "ic35mgr"
  - partial help like CVS
    --help
    --help-options
    --help-commands
    -H <command> or --help <command>
- fixes suggested by GNU Coding Standards and automake/autoconf
  2001-02-03_15 todo
  + configure.in: use AC_REVISION
  + fix warnings from -Wmissing-prototypes
  + fix warnings from -ansi
  - fix warnings from -pedantic
  + long options --version --help etc. --info shows build-info
  + info enquiry with --version --help --info shall exit(0) !
  - use config.h in sources where needed (e.g. VERSION), see gnotepad+
  + open device with O_NOCTTY
  - test on okosuse (yacc/bison), test on tls
  - misc: scripts for sync with gnome, korganizer
  - bugs to <email> at end of --help message
  - use 'autogen' for options and usage, see /usr/doc/autogen/autogen.ps
  - update copyright 2001, add license notice
- ic35mgr.txt extensions
  2001-01-31_02 todo
  - new command 05 - retry read statusblock 16400-16 bytes
    in WinNT logs from Michael Logs270101.tar.gz
  - reponse 91 from IC35 for powerfail ?  (see ic35mmcput52rcv91.log)
  - analyse & describe contents of IC35 statusblock, logo-bitmap
    see ic35mgr.txt 1.8.1
- ic35mgr communication improves
  2001-01-30_01 todo
  - use #define for busywait delaytime and blocksize
    PIII/500MHz 16/3212 1/187
  - measure and improve timeouts in mgrproto.c
  ? handle backup problem (Michael Bruennert): recv 90 instead of datablock
  - handle mgrproto problem: abort on recv 90 instead A0 after send ack/nak
  - mgrtrans.c: more disconn retry to catch >8.5 sec tmo on lost char
    maybe do twice Mcmdrsp(MCMDreset,MRSPgotcmd)
- ic35sync syn{trans,proto}.* re-organize like mgr{trans,proto}.*
  2001-01-29_12 todo
- ic35sync local database
  2001-01-26_01 todo
  to avoid read all IC35 records to check for deleted in PIMfiles
  and for store "sysinfo" date+time to check match with IC35
  may also need sync local databases between e.g. work-,home-system
  use XML-format for local database ?!
- ic35mgr handle Ctl-C user interrupt
  2001-01-12_21 todo
  for mmcput,mmcget do mmc_close on SIGINT, for other ignore SIG_INT
  e.g. mmc_readfile,mmc_writefile return ERRor on SIG_INT
- ic35mgr get/put multiple file, sync dirtree
  2001-01-12_19 todo
  - get multiple files:
    mmcget MMCard1/dir/*	get all files from dir
    mmcget MMCard1/*.I35	get multiple files
    mmcget MMCard1/dir/ 	get recursively all files in dir and below
    mmcget MMCard1/		get recursively all files from MMCard
    recursive get creates local directory tree like to MMCard subtree
    additional localdir/ arg puts files below localdir/
    put multiple files with same logic
    problem: make dir on IC35 MMCard, use mmc_opendir(,MMCcreatrunc) ?
  - synchronize MMCard with local dirtree
    option "-n" to test what would be sync'd
  - interactive transfer multiple files and walk dirs (like ftp)
  2001-05-30_22 todo	request guenther dreher-esders <guenther@esders-web.de>
  - guenther wants to 'ic35mgr mmcput MMCard1/x*.txt' for reading big text
    on IC35 split into many smaller files
- ic35sync support XML format
  2001-01-09_17 todo	proposed by Norbert Kolb
  see xmlFiles.pdf.gz from Harald Becker
  2001-02-25_20 work	Harald Becker
- ic35sync sync/import/export e.g. ToDoList alone
  2001-01-09_17 todo	proposed by Norbert Kolb
- analyse and implement IC35 manager install application,bitmap,midi
  2000-12-31 todo
  - send application
  - send IC35 start graphic bitmap
  - send MIDI file
  ? remove application
  ? remove bitmap, MIDI file
- problem IC35 does not alarm
  2000-12-30_20 todo
  problem after: restore cfgmsg27.i35, set date+time, import 20001230.*
  reason: old repeated events "ww" 20001023,20001027 with endrepeat before today
  2000-12-31_17 50%	reason found
  ic35sync do not write events with endrepeat before today ?
- ic35sync corrections
  2000-12-30_19 todo
  + on read_id_frec from IC35 fail do writerec instead of updaterec
  2000-12-31_18 +30%
  - write to IC35 all Sched,ToDo,Memo which not on IC35 (for initial sync)
  - sync overwrites IC35 changes after: reset,delall,restore IC35
    because IC35 appearently does not restore sysinfo date+time ?!
- shared library e.g. for perl module ic35-communications
  2000-12-29_02 todo	proposed by Norbert Kolb
- vcaconv vca2bin,bin2vca,bin2txt transfer recstat
  design-problem ?  updic35rec() and putic35rec() to not transfer recstat
  see experimental dataio.c 1.32.2
  2000-12-26_03 todo
- ic35sync conflict resolve options
  2000-12-25_06 todo
  - PIM override IC35 (default)
  - IC35 overrides PIM
  - duplicate conflict records
  - inspect for sync,import/export: gnome-pilot,-conduits, pilot-link
  - search sourceforge etc. for other PIM-programs
- reduce ic35sync log volume
  2000-12-14_21 todo
  option for loglevel, buffer higher level log lines in FIFO
  flush buffered log to file on error, discard if buffer gets full
- ic35sync minor improvements
  2000-12-17_17 todo
  + fix vcc.y compile warnings
  x extract rcskvf() from ic35sync.c,ic35mgr.c to util.c
    no more need with VERSION from configure.in
  - pimfile(s) writable not pre-checked, pim_close() does not return write-error
  - write and backup pimfile(s) only if really changed: global dirty-flag
  - pim_open(),pim_close() are misleading names
    xxx_open(),xxx_close re-design: who/where store filenames ?
    see experimental dataio.c 1.32.1 and datavca.c 1.38.1
  - dataio.c: use field map tables for vCard,vCal to/from IC35
  - syntrans.c: internal fd, no need for fd-argument
    implicit close on next open_file() and disconnect()
  - synproto.c: finer checks in recvrsp()
  - malloc/error traps with setjmp(),longjmp()
- improve gnomecard
  2000-12-17_21 todo
  - does not change X-PILOTSTAT !
    fix: set X-PILOTSTAT:1 when VCARD changed
  - changes VCARD.REV to UTC not local time !
  - does update *ALL* VCARD.REV times on exit
    reason: gnomecard wants yyyy-mm-ddThh:mm:ss, drops yyyymmddThhmmss
    fix: accept also yyyymmddThhmmss
  - default e-mail type is AOL, better change to INTERNET
  - default birthday 1970-01-01 is bad, should be empty
- improve gnomecal
  2000-12-25_19 todo
  - extra field for VTODO.DTSTART
  - extra field for VEVENT.DESCRIPTION
  - do not crash if VEVENT,VTODO.CLASS:PUBLIC missing
  - do not update *ALL* LAST-MODIFIED and DCREATED on exit
  - add missing standard categories Personal,Business(,Unfiled)
  - show/edit VTODO.STATUS
  ? output correct VCAL.VERSION:1.0 instead of 1.2.0
  ? seems to mis-behave with X-PILOTSTAT,X-PILOTID
- improve korganizer
  2000-12-25_19 todo
  - support VTODO.DTSTART,DUE
  - support VTODO.CATEGORIES
  - support also AALARM, distinguish from DALARM
  ? korganizer prios are 1,2,3,4 ?  prios are duplicate ?
- problem: memory leak in vobject.c setVObjectStringZValue()
  2000-12-12_02 todo
  setVObjectStringZValue() and relatives discard previous string
  although it may be malloc()ated'd and free() should be done.
  * vobject.c has 'strTbl[]' possibly usable to fix memory leak
    but strcasecmp prohibits use for any string
    strTbl[]  used in   lookupStr unUseStr cleanStrTbl
    lookupStr called by newVObject lookupProp
    unUseStr  called by deleteVObject
    hashStr   called by lookupStr unUseStr
  - solution-1:
    extend above vobject.c utilities with strcmp() instead of strcasecmp()
  - solution-2:
    always create new VObject instead of changing string values
    re-create vobj-list and/or vprop-list, then use cleanVObject()
  - solution-3:
    deleteStr() previous string value before set new string value
- test-data for vCard,vCal to/from IC35 record conversion
  2000-12-11_12 todo
  - max.fieldlengths for each record
  - Addresses
    - name only
    - no, one, two, three email-addrs
    - telnos home,work,cell,fax
    - non-ASCII in Name,ADR,ORG,..
    - IC35 "(def.)" fields
  - Schedule
    - no alarm, LED-alarm, beep-alarm, LED+beep-alarm
    - alarm 0,1,5,10,30 mins, 1,2,10 hours, 1,2 days before
    - no repeat, repeat every d days, w weeks, m monwday, n monmday, y years
  - ToDoList
    - prio normal,high,low
    - completed no,yes, other status
  - Memo
- ic35sync tests for export
  2000-12-15_12 todo
  restore IC35 from MMC, export from IC35 as reference PIMfile
  run tests: save PIMfile-1, export to PIMfile-2, compare PIMfile-1,-2
  = export to new PIMfile
  = export to existing same PIMfile
    no changes in PIMfile
  - add IC35 records, export
    only added PIMrecords shall be affected (modified+created time, recID)
  - change IC35 records, export
    only changed PIMrecords shall be affected (modified time)
  - add records to PIMfile, export
    added records in PIMfile shall be unaffected
  - change PIMrecords, export
    changed PIMrecords shall be overwritten from IC35
- ic35sync tests for import
  2000-12-15_12 todo
  restore IC35 from MMC, export from IC35 as reference
  run tests: export-1,import,export-2, compare export-1,-2
  = import reference to IC35, i.e. re-import same data
    changeflags on IC35 shall be reset, PIMfile unaffected
    no write/update to IC35
  = reset IC35, import reference into empty IC35
    write all PIMrecords, new IC35-recIDs in PIMfile
    owner addr shall appear as such
  = add records to PIMfile, import
    added PIMrecords on IC35, IC35-recIDs in added PIMrecords
  - small PIMfile with all new records, import
    all PIMrecords on IC35, IC35-recIDs in PIMrecords
  = add records to IC35, import reference
    added IC35 records shall have changeflag, no set_date+time
  = change records in IC35, import reference
    changed IC35 records shall be overwritten from PIMfile
- ic35sync tests for sync
  2000-12-19_02 todo
  = some test data in testdelfld{1,2,3}.vca
    sync testdelfld1.vca
    import testdelfld2.vca
    export testout2.vca
    copy testdelfld2.vca to testdelfld3t.vca, del fields,recs, set X-PILOTSTAT:1
    sync testdelfld3t.vca
    export testout3.vca			should be same as testdelfld3t.vca
    IC35: mark all records edited
    copy testout2.vca to testdelfld4.vca
    sync testdelfld4.vca		should be same as testdelfld3t.vca
  - specify more tests
- ic35sync interactive ?
  2000-11-06_23 todo
  - implicit connect, on exit disconnect
  - set date, category
  - open file, close file
  - read file record
  - write file record
  - delete file record
  - reset file record changeflag
- improve source comments
  2000-12-01_17 todo
  - ic35frec.c: IC35REC access logic
  - synproto.c: PDU parameters
- ic35log.sh improvements and tests
  2000-12-01_14 todo
  - test with WindowsNT-2line logs: see below
  - test with WindowsNT-1line logs: see below
  - test with Windows98 logs: see below
  - improve ic35prot() structure to make it more clear / readable

DONE
+ split ic35sync.c into modules:
  2000-11-06_23 todo
  + util.c	logging, error,message
  + comio.c	serial communication
  + synproto.c	L1,L2,L3 protocols
  + syntrans.c	L4 protocol: IC35sync transactions
  + dataio.c	import/export Addresses,Memo,Schedule,ToDoList as vCard,vCal
  + ic35sync.c	main, IC35sync session
  + Makefile
  2000-11-07_03 done
+ ic35sync minor improves
  2000-11-07_01 todo
  + util.c
    + log_init() set also loglevel, default logtag=NULL ?
    + log ic35sync version/rcsid to logfile
  + syntrans.c
    + combined connect = welcome,identify,power,authenticate,getdtime ?
    + welcome: "WELCOME\x80" no need send "A" ?
    + stop on wrong password: response != 0101
  + Makefile
    + targets dist,dist_co for ic35sync_<vers>.tar.gz
    + integrated help
  2000-11-15_04 +70% todo: Makefile
  2000-11-18_23 done
+ ic35 record access
  2000-11-15_02 todo
  + access record-field
  + num.of record-fields to struct ic35file
  + output binary record-data for offline vCard,vCal develop
  2000-11-19_01 done
+ ic35sync export in vCard, vCalendar format
  2000-11-06_23 todo
  sources:
  * /local/pkg/ic35/sdkdllsr.zip
    vcc.h vcc.y vobject.h vobject.c
  * kpilot_3.1.10-1.0.tar.gz
    kpilot-3.1.10/conduits/vcalconduit/ vcal-conduit.h vcal-conduit.cc
    kpilot-3.1.10/conduits/vcalconduit/versit/ vcc.h vcc.y vobject.h vobject.c
  * gnome-pim_1.2.0.orig.tar.gz
    gnome-pim-1.2.0/libversit/ vcc.h vcc.y vobject.h vobject.c
  * gnome-pilot-conduits_0.4
  * gnome-pilot_0.1.55-0pre
  * jpilot_0.97
  * pilot-manager_1.107
  * pilot-link_0.9.3
  2000-11-19_20 work
  + vcaconv:
    + IC35 raw data -> vCard,vCal
    + pretty-print vCard,vCal
  + move ic35file definitions to dataio.c to vcaconv link syntrans etc.
  + design output from IC35 to vCard,vCal file, maybe same file
  + XPilotId instead of UID
  + output text fields quoted printable if non-7bitASCII
    use CHARSET=ISO-8859-1;QUOTED-PRINTABLE
  + Schedule: repeated events, recurrence rule
  + Schedule: DALARM = LED, AALARM = beep
  + whattodo with Memo in vCal format ?
    use VMEMO record VCMemoProp, extend vcc.*,vobject.*
  2000-11-20_05 +50%
  2000-11-21_06 +70%
  2000-11-22_08 done
x ic35sync export in vCard, vCalendar format: canceled tasks
  2000-11-22_08 todo
  x vcaconv: vCard,vCal -> IC35 raw data
  x what is XPilotStatus for ? ICAL_PILOT_SYNC_{NONE,MOD,DEL}
  2000-12-01_15 canc  replaced by ic35sync import,sync step-2,-3
+ improve ic35prot.awk
  2000-11-07_23 todo
  + test with WindowsNT-2line:
    + Simple_hex.log
    + Portmon_export.log
    + Import1.log
    + Import.tar.gz:Import.log
  + test with Windows98:
    + mgr_conn_disc.log
    + mgr_conn_disc_mmc.log.gz
    + sync_missoutlook.log
    + mgr_rwdfile_20001107.tar.gz:*.log
  2000-11-15_01 +90%  usable, todo: missing tests & improve structure
  2000-11-27_13 canc  ic35prot.awk replaced by ic35log.sh
x improve ic35prot.awk: canceled tasks
  2000-11-07_23 todo
  x test with WindowsNT-1line:
    x Manager.tar.gz:*.LOG
    x BackupRestore.tar.gz:*.log
  x improve structure to make it more clear / readable
  2000-11-27_13 canc  ic35prot.awk replaced by ic35log.sh
+ improve ic35-prot-analyzer
  20001124_20 todo
  + print 2nd ff. recdata fragments, 'currfid' less hacked
  + integrate in one script
  + ic35prot.awk faster and more clear
    no need to support ASCII input
    move ASCII output to separate pass
  20001127_13 done
+ analyse Delete.tar.gz delete record etc.
  2000-11-18_01 todo
  + meaning of new commands 01 02, 01 07
    01 07 = read next modified record
    01 02 = delete record
  x meaning of category response 01 01, 00 01
    moved to "ic35sync experiments"
  2000-11-24_01 done
+ ic35sync.txt: document readrecmod, deleterec
  20001124_20 todo
  20001127_15 done
+ ic35sync import,sync step-1
  20001124_20 todo
  + dataio.c: use rec-id AND file-id as UID/X-PILOTID
  + dataio.c: implement REV, LAST-MODIFIED
  + get_mod_flen
  + read_mod_frec
  + delete_frec
  + write_frec
  + set_date_time
  + category
  20001128_04 done
+ ic35 record access
  2000-11-21_02 todo
  + use ulong frid instead of uchar fid, ushort rid
  + internal IC35 record structure for easier access
  + break into fields, _get_recfld()'s static buffer is bad!
  2000-12-01_02 +90%  todo: opaque IC35FILE
  + hide ic35 file description internals, use acces functions
  + use 4byte record-ID in binary format
  2000-12-01_19 done
+ ic35log.sh process ic35sync logfiles, create simulation files from them
  2000-12-01_14 todo
  2000-12-02_02 done
+ ic35sync experiments:
  2000-11-06_23 todo
  tests for category,filename in ic35sync.c 1.11.1 branch
  + check wrong password:
    complains with 0100 (not 0101) only if password on power-on enabled
  + check category response
    + unknown category
    + category with no records, e.g. "Unfiled"
    + category with modified record(s)
    + category with new record(s)
    + new category with new record(s)
    + new category without records
    + set category influence on read_mod_frec ?	NO!
    mostly response for existing category is 01 01, for non-exist 00 01
    but not always, still unclear what the category sematics are
  + test bad filename  or  other files, e.g. Messages ?
    open compares only first any-case letter, unmatched opens "Schedule
  2000-12-02_05 done
+ ic35sync import,sync step-2
  20001124_20 todo
  tests in ic35sync.c 1.11.1 branch
  + commit_frec
  + test functions for import,sync:
    + category
    + set_date_time
      allows setting any text, tested up to 14 chars, maybe up to 16 chars
    + get_mod_flen, read_mod_frec
    + write_frec
    + delete_frec
    + commit_frec
    + field modified on PC: only write_frec or also del old frec ?
      must delete_frec old, as write_frec gets new rec-ID (does NOT overwrite)
  20001202_07 done
+ ic35sync experiments for new commands
  20001201_20 todo
  + 00 01 ? file command ?			ic35r{66,68}.log
    IC35 accepts 1st command, response: E3,49 CD 0F
    then IC35 hangs no more accepting commands
  ? 01 01			? del all? NO!	ic35r{62,63,65}.log
    IC35 returns "done" response A0 03 00, record unchanged
  * 01 02  fd_-- ri_--_-- fi	delete_frec
  * 01 03  fd_-- 00 00 00 00	get_flen
  * 01 04  fd_-- 00 00 00 00	get_mod_flen
  + 01 05  fd_-- ri_--_-- fi	read by recID	ic35r{60,69,6A}.log
    response non-exist Memo recID: A0,49  3E 81 D3 0D  60  xx xx xx 07
    i.e. recID=0DD3813E, ch=60, 4 flens for Memo record
    response non-exist Schedule recID: A0,49  FE AA 20 0E  00  xx xx xx ..
    i.e. recID=0E20AAFE, ch=00, 10 flens for Schedule record
  * 01 06  fd_-- 00 00 00 00	read_frec
  * 01 07  fd_-- 00 00 00 00	read_mod_frec
  * 01 08  fd_-- 00 00 00 00	write_frec
  + 01 09  fd_-- ri_--_-- fi ...  update_frec	ic35r{61,6B,6C}.log
    re-writes record keeping same recID
  * 01 0A  fd_-- ri_--_-- fi	commit_frec
  2000-12-03_09 done
+ ic35sync import,sync step-3
  20001124_20 todo
  vCard,vCal to IC35 record, test with vcaconv
  + CategoryID cannot be mapped, use 0x00 and assume IC35 to create it
  + Category: assume IC35 auto-creates new category
  + vcard_to_ic35addr
  + vevent_to_ic35sched
  + vtodo_to_ic35todo
  + vmemo_to_ic35memo
  20001207_04 done
+ problem: QUOTED-PRINTABLE fails with multi-field props like ADR,N,ORG,..
  2000-12-16_15 todo
  with QUOTED-PRINTABLE e.g. ADR fields are not separated, but
  first field gets value of all fields with ';' embedded.
  known but unfixed problem, see: http://www.imc.org/imc-vcard/mail-archive/
  + solution-1
    do not use QUOTED-PRINTABLE on multi-field props, but only CHARSET
  x solution-2
    further debug problem to find real cause and fix
  2000-12-16_21 done
+ ic35sync import,sync step-4 (import)
  2000-11-24_20 todo
  import,sync do both use set_date_time
  + what is XPilotStatus for ? ICAL_PILOT_SYNC_{NONE,MOD,DEL}
  + need update vCard,vCal from IC35rec to avoid destroy unmapped fields
  + import vCard,vCal or binary into IC35
  2000-12-17_08 done
+ vcaconv optionally sort output needed for test
  2000-12-17_06 todo
  sort vCard,vCal to stdout
  2000-12-20_16 done
+ problems with gnomecard
  2000-12-17_21 todo
  + does not change X-PILOTSTAT, cannot not rely on X-PILOTSTAT alone
    fix: detect change with create/modify-time VCARD.REV > last-sync-time
  + does update *ALL* VCARD.REV times on exit
    reason: gnomecard wants yyyy-mm-ddThh:mm:ss, drops yyyymmddThhmmss
    fix: produce VCARD.REV:yyyy-mm-ddThh:mm:ss
  2000-12-21_15 done
+ problems with korganizer
  2000-12-17_21 todo
  + wants VCAL PRODID:-//K Desktop Environment//NONSGML KOrganizer//EN
    fixed ic35sync: do not change found VCAL:PRODID
    must manually edit vCal output before load new into korganizer
  + complains if VEVENT,VTODO lack UID and does not load those without
    fixed ic35sync: also put UID to VCAL:VEVENT,VTODO (and VCARD, VMEMO)
  + expects and produces NL-terminated lines, misbehaves on CRLF-terminated
    fix ic35sync: auto-detect CRLF or NL and produce same output
  + output causes parse-error if CR in NOTE,DESC,..
    need translate NOTE,DESC: PIM NL <-> IC35 CRLF
  + does not support VTODO.DTSTART,DUE
    fix ic35sync: map to marked lines in VTODO
  + does not support VTODO.CATEGORIES, keep IC35 on PIM->IC35 update
  x has VEVENT.CATEGORIES, but IC35 has not
  2000-12-24_20 done
+ problems with gnomecal
  2000-12-17_21 todo
  + does not support VTODO.DTSTART, but keeps in vCal on exit
    fix ic35sync: keep marked line in VTODO.DESCRIPTION
  + crashes if VTODO,VEVENT.CLASS:PUBLIC is missing
    fix ic35sync: put CLASS:PUBLIC to VTODO,VEVENT if missing
  + does not support VEVENT.DESCRIPTION, removes it from vCal on exit
    vevent_to_ic35sched: 1st line to S_Subject, more lines to S_Notes
    ic35sched_to_vevent: for gnomecal append S_Notes to VEVENT.SUMMARY
  x outputs bad VCAL.VERSION:1.2.0, ic35sync keeps found version
  2000-12-25_19 done
+ ic35sync import,sync step-5 (sync)
  2000-12-15_12 todo
  + sync vCard,vCal with IC35
  + conflict resolve: initial sync empty PIM must not delete all IC35!
  + inspect for sync,import: gnome-pim, kpilot
  2000-12-25_06 done
+ ic35sync some improvements
  2000-12-17_17 todo
  + comio.c: for simulate do not set DTR neither open comport
  + comio.c: log input V.24 signals on change
  + comio.c: allow also WRx and RDx in simulation file
  + dataio.c: remove unused _get_vcarec()
  + dataio.c big, split: dataio.c 341 datatxt.c 92 databin.c 385 datavca.c 1528
  + dataio.c: translate CRLF<->NL in NOTES,DESCRIPTION
  + dataio.c utils, special conversions depend on PRODID Gnome,KOrganizer
    put/get IC35 fields unsupported by PIM with mark in NOTE/DESCRIPTION
    + KOrganizer: VTODO.CATEGORIES,DTSTART,DUE to/from VTODO.DESCRIPTION
    + gnomecal:   VTODO.DTSTART to/from VTODO.DESCRIPTION
    + gnomecal:   VEVENT.DESCRIPTION 1st line S_Subject, more S_Notes
    + all:	    "(def1):","(def2):" to/from VCARD.NOTE
  + cmp_ic35rec() from dataio.c to ic35frec.c:cmp_ic35rec ?
  2000-12-25_23 done
+ ic35sync delete fields
  currently IC35 to/from PIM record conversions do not delete fields
  2000-12-27_19 todo
  2000-12-29_04 done
+ correct vcaconv
  produces empty output on 'vcaconv sortvca ic35.vcal'
  2000-12-31_01 todo
  fix: correct error in vobject.c
  2000-12-31_18 done
+ analyse IC35 manager protocol
  2000-11-06_23 todo
  + init, exit
  + backup database.org
  + restore database.org
  + read MMCard directories
  + read file from MMCard
  2001-01-04_06 +70%
  + write file to MMCard
  + delete file on MMCard
  2001-01-10_03 done
+ implement IC35 manager MMCard operations
  2000-12-31_18 todo
  + init, exit
  + read MMCard directories
  + read file from MMCard
  2001-01-10_02 +60%
  + write file to MMCard
  + delete file on MMCard
  2001-01-12_22 done
+ implement IC35 manager backup,restore operations
  2000-12-31_18 todo
  + backup database.org
  + restore database.org
  2001-01-17_06 done
+ improve ic35mgr throughput
  2001-01-12_20 todo
  ic35mgr-1.17.4, busy wait 3.25ms every 16 byte block, 2 stopbits
    backup     426128 read  16384 117.3248  3632 b/s
		block recv  16384   3.3211  4924 b/s
    restore    426128 write 16384 140.4816  3033 b/s
		block send  16384   3.5056  4674 b/s
  ic35mgr-1.12a, with com_sendw(), itimer pause every 29 chars, 2 stopbits
    reversi.app 16452 read   5120   6.5236  2522 b/s
    reversi.app 16452 write  2048  11.9835  1373 b/s
  + comio.c,comio.h: separate com_sendw() with wait
  + mgrproto.c: use com_sendw() with wait only for big blocks
  measurements:
    install MMCard:browser.app   376900 117.69   3202 b/s
    install MMCard:sc_info.app    16452  10.07   1634 b/s
    install MMCard:convert.app    49220  15.22   3234 b/s
    restore MMCard1\20010124.I35  52222  25.962  2011 b/s
    backup  MMCard1\20010121.I35  50701  20.625  2458 b/s
  ic35mgr-1.10a, with com_sendw(), itimer pause every 29 chars, 2 stopbits
    reversi.app 16452 read   5120   6.5678  2505 b/s
    reversi.app 16452 write  2048  12.0640  1364 b/s
    backup     426128 read  16384 117.4514  3628 b/s
		block recv  16384   3.3287  4922 b/s
    restore    426128 write 16384 203.6398  2093 b/s
		block send  16384   6.0531  2707 b/s
    status      16400 recv  16384   1.8257  8983 b/s
  itimer, pause every 29 chars, 2 stopbits
    reversi.app 16452 write  5120  11.8633  1387 b/s
			     2048  12.3224  1335 b/s rewrite 13.8034 1192 b/s
    mgrep.app   32836 write  2048  24.6884  1330 b/s
    domind.app  49220 write  2048  37.1055  1326 b/s
    domind.app  49220 read   5120  20.0052  2460 b/s
  usleep(29*400) every 29 bytes, 2 stopbits
    reversi.app 16452 write  5120  17.69     929 b/s
			     2048  18.42     893 b/s
  usleep(100) every 16 bytes
    reversi.app 16452 write  5120  26.965    610 b/s
			     2048  27.764    593 b/s rewrite 29.094   565 b/s
			     1024  29.465    558 b/s
    reversi.app 16452 read  10240   6.825   2410 b/s
			     5120   7.284   2259 b/s  7.385  2228 b/s
			     2048   8.485   1939 b/s
			     1024  10.204   1612 b/s
			      256  20.396    807 b/s
			       15 243.773     67 b/s
  2001-01-18_02 done
+ fix compile errors with gcc-2.96 under RedHat-7.0
  2001-01-19_17	todo	reported by Dieter Schultschik
  + synproto.c:sendcmd() line-531,537,542,548,549,554,567,594
    531:fd, 537:fd, 542:fd, 548:fd, 549:index, 554:fd, 567:fd, 594:fd
    `short unsigned int' is promoted to `int' when passed through `...'
    (so you should pass `int' not `short unsigned int' to `va_arg')
  + mgrproto.c similar problem
  + generally avoid va_arg with sendcmd() etc, replace sendcmd(CMDfclosem,fd)
    with e.g. sendCMDfclose(fd) would yield compile-time prototype checking
  2001-01-29_13 done
+ improve ic35mgr
  2001-01-12_20 todo
  + mgrproto.c: recvmrsp() / MPDUrecv() discard checksum
  + mgrtrans.c: protocol comments, identify,disconn,.. belong to mgrproto.c
  + move backup protocol from mgrtrans.c to mgrproto.{c,h}
    concentrate log,progress,errmsg separate from communication protocol
  + move putxxx(),getxxx(),chksum() from mgrtrans.c,xxxproto.{c,h}
    and also welcome() etc. to genproto.{c,h}
  2001-01-24_03 +50%
  + move _not_impl() from ic35mgr.c to util.{c,h}
  + recvmrsp() always return mstate, not pdulen
  + mgrproto.c: common structs for same PDUs
  2001-01-29_12 +70%
  + mgrproto.c: common convert direntry and FILE_INFO
  + mgrproto.c: define iden/FILE_IDEN details, export size, how mismatch?
  + mgrproto.h: move attribs,modes from mgrtrans.h (else mgrproto.c unusable)
    for backward compatible #include mgrproto.h in mgrtrans.c
  x mgrtrans.c: common struct for MMCDIR MMCFILE
  x extract rcskvf() from ic35sync.c,ic35mgr.c to util.c
    with VERSION imported rcskvf() is obsolete
  2001-02-03_18 done
+ supply also vcc.c	problem found by Harald Becker, Michael Bruennert
  2001-01-19_09 todo
  supply also vcc.c for systems without or with bad bison/yacc
  SuSE-7.0 yacc-91.7.30-220 is bad, need bison >= 1.25
  2001-02-04_01 done
+ automake/autoconf
  2000-12-29_02 todo	proposed by Norbert Kolb
  * see Software-Release-Practice-HOWTO, GNU Coding Standards
  * must unset CDPATH, else re-automake fails!
  + configure.in Makefile.am, then run:
    aclocal; autoheader; automake --add-missing --gnu; autoconf; ./configure
  + re-org into dirs src/ docs/
  + make CVS-tree, use .cvsignore
  + AUTHORS
  + THANKS or CREDITS
  + NEWS: compact version info
  + README: re-org like Software-Release-Practice-HOWTO suggests
  x acconfig.h: ISODATE 	NOT NEEDED
  + program-versions from VERSION,ISODATE, remove rcskvf
    + step-1: do it with current Makefile
    + build-info like gnotepad+
    + fix also top-entry in logfiles
  2001-02-05_03 done
+ README / more docs, e.g. restrictions & workarounds
  2001-01-26_03 todo
  + Korganizer: PRODID, workaround missing vCal properties (...)
  + GnomeCal: PRODID, workaround missing vCal properties (...)
  + GnomeCard: missiong X-PILOT-STAT support and workaround
  + problem with bash eating backslash of ic35path
  + errors/warnings with 'configure --enable-pedantic'
  + compile problem with yacc (if vcc.y changed)
  + no sync conflict resolve yet
  + proprietary VMEMO format
  2001-02-17_21 done
+ ic35mgr mmcget/mmcput check ic35path before connect
  bug-report from Thomas Lichtenberg
  2001-02-06_00 todo
  valid ic35path:
  + auto-translate leading anycase mmcard[12], lower to upper, '/' to '\'
  + leading "MMCard[12]/"
  + adjacent / or \ not allowed
  + max 1 dot between '/' and '/' or end
  + max 8 chars before dot
  + max 3 chars after dot
  tests (mail from Thomas Lichtenberg):
  + ic35mgr mmcdel MMCard1\IC35\BITMAP\INDIANER.BMP
  + ic35mgr mmcput MMCard1\TEST\TEST1.TXT test.txt
  2001-02-18_07 done
+ correct com_simrecv(): dummy for non-logged receive bytes, adjacent "RD nn"
  2001-01-04_05 todo
  + err.corr: fill block from adjacent "RD nn" lines, dummy non-logged
  x handle checksum problem due to dummy bytes
    cannot, must patch simfile with expected checksum(s)
  2001-02-18_23 done
+ configure --disable-logandcomsim
  2001-02-25_20 todo	proposed by Harald Becker
  + configure option for disable logging and simulation for production version
    default enabled
  + use macros LPRINTF(()), LOG_INIT(()), etc. to reduce codesize
  2001-03-02_02 done
+ reduce priority when using busywait
  2001-02-25_20 todo	proposed by Harald Becker
  + use for restore,mmcput only, nice(+2), man 2 nice
  + option "-n niceval" or "--nice niceval", default niceval 2
    allowed for users 0..19 for root -20..19, 0 is normal prio
  2001-03-03_04 done
+ autogen.sh script for generating configure, Makefile.in, etc.
  2001-05-30_11 todo	problem report by Konrad Mader <konrad.mader@gmx.de>
  2001-08-02_22 done
