TODO
* pre compiler macro to detect ASCII vs non-ASCII system?
* test macosx package maker files
* make sure whitespace is stripped when copying to byte stream:
  - base32
* base encoding: support UTF-16 and 32 encoding by flags
  - base32 (+/-)
* add baseX functions with index:
  - base16
  - base32
  - base64
* check TODO's
  - base64 definitions

* implement with index functions
* base16
  - add separate function to convert a byte like base64 sixtet
* base32
  - add support of base32 variations, e.g. zbase32?

* libuna
  - add source == destination check to functions?
  - speed test between index based and pointer based iteration
  - change libuna_codepage_ macros into inline functions ?
  - copy from/to functions should set/return amount of bytes successfully processed?
    most of the time not needed because the size of the string was already
    determined

  - implement support for UTF-1 ?
  - implement support for UTF-ebcdic ?
  - implement support for bocu-1 ?
  - implement support for scsu ?
  - implement support for usc-1, ucs-2, usc-4 ?

* add support for OEM codepages:
  - 437 (US)
  - 720 (Arabic)
  - 737 (Greek)
  - 775 (Baltic)
  - 850 (Multilingual Latin I)
  - 852 (Latin II)
  - 855 (Cyrillic)
  - 857 (Turkish)
  - 858 (Multilingual Latin I + Euro)
  - 862 (Hebrew)
  - 866 (Russian)
* add support for other codepages:
  - 50220 iso-2022-jp Japanese (JIS)
  - 50221 csISO2022JP Japanese (JIS-Allow 1 byte Kana)
  - 51932 euc-jp Japanese (EUC)
  - 51949 euc-kr Korean (EUC)
  - 52936 hz-gb-2312 Chinese Simplified (HZ)

Test:
* create automated tests and test files
  - create test_unabase.sh
  - complete test_unaexport.sh
* unicode 2 codepage tests
  - test values not in codepage
* codepage 2 unicode tests
  - test values not in codepage
* tests: copy from
  - invalid number of characters in line ?
  - base32 (+/-)
* tests: copy to
  - invalid number of characters in line ?
  - base32

Tools:
* unabase:
  - convert between base64 binary base16?
  - have hexdump as input/output
  - add msvscpp project file
  - add codegear project file
* unaexport
  - implement export_handle
  - what happens when exporting UTF16LE as UTF16BE to UTF16LE with the BOM
  - implement signal handling
  - add conversion summary (converting from x to y with codepage z) +/-
  - update man page
  - allow for different input and output codepage?
  - implement basic globbing support for Windows?
  - determine total source file size for process status
  - add option to set buffer size?
  - check if input file is output file?
* unainfo
  - create a tool to determine the encoding type using the byte order mark
    perhaps some other tricks
    might be useful for automated conversion
  - write man page
  - update unaexport manpage 
    .Sh SEE ALSO
    .Xr unainfo 1
  - update spec.in file
  - update msvscpp, codegear project files
* gettext support

Deployment:

Note:
* iso codepage formatting conversion %s/^0x\(..\)\t0x\(....\)\t#\t/\1 = U+\2 : 
* CodeGear uses OEM codepage e.g. 850
* streams, except for a (byte stream) ASCII string, are not considered
  terminated by an end-of-string character

20140105
* 2014 update
* updated dependencies
* worked on libcdatetime support
* updated updated msvscpp files

20130906
* worked on tests

20130905
* code clean up
* worked on tests

20130728
* fixes for some stream functions being too strict

20130609
* fix in .pc.in file

20130608
* updated dependencies

20130603
* updated dependencies
* fixes issues for building with stand-alone version of libcnotify

20130413
* updated dependencies

20130113
* updated msvscpp files

20130105
* removed date time functionality from libcsystem
* added libcdatetime
* changes for libcdatetime

20130103
* 2013 update
* worked on macosx package maker files
* updated dependencies
* update msvscpp files
* removed borlandc files

20121224
* added .gitignore
* updated macosx package maker files

20120919
* updated dependencies

20120723
* fix for trailing white space stripping in base64 size to byte stream

20120630
* fixes for local use

20120629
* worked on base64 tests
* fixes for base64 support

20120628
* worked on base16 tests
* fixes for base16, base32 and base64 support

20120627
* worked on base16 and base64 tests

20120626
* worked on base16, 32 and 64 string encoding support
* worked on base64 tests
* fixes for base64 support

20120625
* improved copepages 932, 936, 949 and 950
  - removed bitmap

20120624
* worked on copepage 950
* improved copepages 932, 936, 949 and 950
  - switched to lookup bitmaps and tables

20120621
* worked on copepage 950

20120620
* worked on copepage 950

20120619
* code clean up
* worked on copepage 950

20120617
* worked on Unicode to byte stream tests
  - added size check
* worked on copepages 932, 936, 949 and 950

20120616
* added unicode to ascii support for codepage 932
* project location change

20120614
* code clean up in unicode to ascii conversion
* worked on unicode to ascii support

20120613
* worked on Unicode to byte stream tests
* bug fixes in unicode to codepage conversion

20120612
* added OEM codepage definitions
* updated documents
* worked on byte stream to Unicode tests
* worked on changing codepage 932 and 936 to unicode to using switch statements
* added codepage windows 949 ascii to unicode support

20120611
* updated dependencies
* worked on byte stream to Unicode tests
* updated documents

20120517
* bug fix for newline conversion in unaexport

20120507
* updated dependencies

20120425
* updated dpkg files
* fixes for pkg-config detection of libraries

20120421
* worked on UTF-32 string with index functions
* updated manual

20120419
* added const to base16 functions

20120415
* worked on UTF-8, UTF-16 string with index functions

20120414
* bug fix in export handle
* bug fix in codepage 932 support

20120409
* updated dependencies

20120408
* updated dependencies
* added features and wide character support (necessary for unatools)

20120407
* updated dependencies
* updated msvscpp and codegear files

20120406
* updated libcfile
* updated msvscpp and codegear files

20120405
* added dpkg files
* added support for pkg-config to configure

20120403
* fix in configure for spec file
* updated dependencies

20120401
* libsystem: code clean up
* updated .pc and .spec file
* updated msvscpp and codegear files

20120329
* libsystem: code clean up

20120327
* libsystem: code clean up

20120325
* worked on tests
* UTF-7 functions added support for end-of-string character
* bug fixes in include header
* libsystem: code clean up

20120322
* changed endianess detection in UTF streams
  - previous method was unreliable for some edge cases
* update unaexport man page
* bug fixes for stand-alone version
* worked on tests

20120102
* 2012 update

20111228
* small changes
* updated libcstring
* updated libuna.3 man page

20111224
* worked on base encondings

20111223
* worked on base encondings

20111222
* worked on unabase
* worked on base encondings

20111221
* fix for inline support in clang compiler
* updated libcstring
* unaexport: export handle refactor

20111031
* bug fix for codepages iso-8859-15, windows 932 and 936
* updated libcstring, libsystem
* changes for libsystem update
* unainput code clean up
* updated msvscpp files

20111030
* updated configure.ac and m4 files
* updated libsystem

20111008
* unatools: code clean up

20111007
* changes to configure.ac
* worked on base64 support

20111006
* worked on base64 support

20111004
* updated configure, README
* bug fix in base64_stream_decode

20110921
* updated configure, libsystem

20110830
* updated configure, common
* updated codegear files

20110625
* changes for: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
* updated common, libcstring
* fix for make dist

20110425
* worked on windows 932 support

20110417
* worked on windows 936 support
* worked on windows 932 support

20110402
* rewrite for windows 936 support

20110329
* rewrite for windows 936 support

20110328
* rewrite for windows 936 support
* bug fix in codepage 1254

20110327
* worked on windows 936 codepage support

20110326
* updated configure.ac, libcstring, libsystem
* worked on windows 936 codepage support

20110312
* updated libcstring, libsystem
* msvscpp: added VSDebug

20110117
* updated libsystem

20110113
* updated common, libsystem

20110110
* updated libcstring

20110108
* updated libuna.c
* updated codegear project files

20110107
* updated configure.ac
* updated common, libcstring, libsystem

20110103
* updated configure
* updated common, libcstring, libsystem
* 2011 update

20101203
* updated common, liberror, libsystem
* code clean up

20101125
* updated configure.ac
* updated include/error.h, include/types.h
* updated common, libcstring, liberror, libsystem
* added libuna.rc
* added unused attribute support

20100805
* code clean up
* updated libcstring

20100802
* mingw64 support
* worked on gettext support

20100722
* updated include/error.h and liberror

20100721
* fix for missing libuna_utf32_stream_copy_from_utf8

20100719
* updated include/error.h and liberror

20100715
* worked on issue in compare functions

20100714
* worked on issue in compare functions

20100713
* updated liberror and include/error.h

20100706
* updated configure.ac, common, libsystem

20100627
* clean up
* updated common, libcstring, liberror

20100505
* updated configure.ac and Makefile.am files

20100502
* updated common, libcstring
* cleaned up configure
* changed amount of into number of
* updated msvscpp and codegear project files
* removed inline from public header
* updated libuna_error.[ch]

20100416
* updated liberror

20100328
* worked on improving UTF-7 support

20100327
* added libcstring
* updated liberror
* worked on libcstring support in libsystem and unatools
* updated msvscpp, codegear and macosx files
* worked on UTF-7 functions

20100221
* updated common, liberror, libsystem
* updated contact e-mail address

20100106
* updated common, libsystem
* worked on Borland C++ 5 compiler support

20100104
* updated common, liberror, libsystem

20100101
* updated common, liberror, libsystem
* 2010 update

20091220
* worked on UTF-7 functions
* fixed error in base64

20091219
* worked on UTF-32 compare functions
* worked on UTF-7 functions

20091214
* worked on compare functions

20091211
* worked on compare functions

20091208
* worked on percent encoding functions

20091204
* worked on compare functions

20091203
* updated common
* worked on base16 for libfdatetime

20091031
* removed All Rights Reserved

20091026
* refactored endian.h to byte_stream.h

20090930
* updated narrow_string

20090929
* updated narrow_string
* worked on UTF-7 support

20090928
* updated libsystem
* worked on codepage support for:
  - 20866 koi8-r Cyrillic (KOI8-R)
  - 21866 koi8-u Cyrillic (KOI8-U)

20090917
* added more trouble shooting code

20090901
* updated common/file_stream.h

20090828
* updated common

20090826
* fixed typo in unaexport

20090820
* small corrections in include/libuna/types.h.in
* fixed libsystem_file_io open mode

20090819
* added libsystem
* updated byte_size_string and process_status

20090809
* small fix in configure.ac

20090808
* fix for handling extern in MSC for local use of libuna
* worked on windows-874 codepage support

20090806
* worked on base64 sidn base64url upport
* moved unacommon_open to system_string
* updated unaoutput_codepages_fprint
* added unaoutput_codepage_fprint

20090805
* worked on base64 sidn base64url upport

20090802
20090804
* worked on base64 support

20090802
* worked on ISO 8859 codepages support
* worked on automated tests
* fixed several small issues

20090801
* worked on Borland/CodeGear C++ Builder support
* updated system string to always default to ASCII
* added generation of common/types.h
* worked on ISO 8859 codepages support
* fixed error in 1254 codepage
* reduced overhead in 125# codepages
* worked on automated tests
* fixed several small issues

20090726
* worked on ISO 8859 codepages support
* added m4 directory support to autoconf/make files for libtool
* updated configure.ac
  - added langinfo support
  - added cygwin dll import support
  - added static executable support

20090725
* worked on ISO 8859 codepages support

20090702
* worked on Borland/CodeGear C++ Builder support

20090701
* several fixes for the msvscpp build
* worked on Borland/CodeGear C++ Builder support

20090630
* implemented WIN64 ssize_t fix
* worked on Borland/CodeGear C++ Builder support
* updated liberror

20090512
* removed rogue code in libuna_error.h 
* updated memwatch suppport

20090427
* fix for UTF-16 stream <= 2 should be < 2

20090418
* updated glob, process_status, date_time, system string, notify
  with libewf >= 20090418 version
* updated common code
* added safe size types to library headers

20090422
* added extra dist of libuna/libuna_defintions.h.in

20090416
* fixed missing memwatch
* fixed too large output in unaexport

20090124
* Updated headers
* Updated configure.ac to conform to cache value naming schema
* Updated autoconf/make to use flags and library definitions
* Updated unaexport man page

20081019
* Added splint to makefiles
* Updated liberror

20081011
* Updated MSVSCPP solution file for 2008 express version
* Several changes for MSVSCPP build
* fix in header file for UTF-16 and UTF-32 string size functions

20080927
* Fixed error in libuna.h

20080922
* Fixed typo in definitions and internal definitions

20080921
* first alpha release
* fixed error in distclean
* renamed docs into documents

20080920
* Worked on initial version
* Clean up of common
* replaces HAVE_WINDOWS_API by WINAPI
* moved error into liberror this make maintenace easier
* removed wide character support from configure

20080916
* Worked on initial version
* Fixed issue in error

20080914
* Worked on initial version
* Added compare functions
* Added const pointers

20080912
* Worked on initial version
* fixed issues in error handling

20080911
* Worked on initial version
* fixed issues in error handling

20080910
* Worked on initial version
* worked on local types definition

20080909
* Worked on initial version
* libuca already exists renamed to libuua
* Worked on improved error handling
* Worked on rewriting size functions

20080908
* Worked on initial version
* Moved wide character specific code to ucatools no longer used in libuca
* Fixed ucabyte_size for conversion error in 2 digit after separator
* Separated common code in to common code for tools and both libary and tools
* Worked on improved error handling
* Worked on rewriting size functions

20080904
* Worked on initial version
* Added fixed dimension to arrays in codepages header files
* Fixed issue with small UTF streams
* Fixed multiple issues in UTF-8 stream handling
* implemented process_status in ucaexport
* implemented that command line argument option can be written with - and _
* Fixed continue on error issue

20080903
* Worked on initial version
* Worked on strict mode
* Worked on UTF-8 stream functions
* Worked on MacOS-X package files

20080902
* Worked on initial version
* Worked on ucaexport summary
* Worked on UTF-16 stream functions
* Worked on UTF-32 stream functions
* Refactored to use separate UTF-8/16/32 copy_byte_order_mark functions
* Worked on UTF-8 stream functions
* Worked on byte stream size/copy from functions

20080901
* Worked on initial version
* Integrated local use of libuca using HAVE_LOCAL_LIBUNA for maintenance
* implemented UTF-8/16 to/from UTF-32_stream functions
* detection of endian defaults to big if no endianess could be determined
* added detection of UTF-8 byte order mark
* Worked on refactoring _streams to separate files change copy_to_ functions into copy_from
* Implemented libuca_utf16_string_size_from_utf8, libuca_utf32_string_size_from_utf8
* Implemented libuca_utf16_string_size_from_utf32, libuca_utf32_string_size_from_utf32
* Worked on codepages

20080831
* Worked on initial version
* Worked on codepages

20080830
* Worked on initial version
* Worked on stand alone library
* Renamed ascii to sbc (single byte character)
* Worked on codepages

20080829
* Worked on initial version
* Worked on support for converting SBC stream into UTF
* Change code into stand alone ibrary

20080828
* Worked on initial version
* Worked on support for converting SBC stream into UTF

20080827
* Worked on initial version
* Worked on support for converting SBC stream into UTF

20080826
* Worked on initial version
* Worked on Unicode conversion routines

20080825
* Worked on initial version
* Worked on Unicode conversion routines
* Added maximum allowed UTF 0x110000 in strict mode
* Worked on support for converting SBC stream into UTF

20080824
* Worked on initial version
* Worked on Unicode conversion routines

20080823
* Worked on initial version
* Worked on Unicode conversion routines

