TODO
* what if session offset > size
* optical disc
  - add track type support
  - add session support
  - WINAPI support
  - MAC OS X support
* SCSI/ATA devices
  - Mac OS X support
* configure validate libuna check
* work on libsmdev_metadata
  - add information values functions (libsmio)

API
* add libsmdev_handle_get_utf8_information_value_size
* add libsmdev_handle_get_utf16_information_value_size

Library
* add glib support
* move fstat to file_io ?
Read:
* windows read error retry support
Media information:
* add Windows support for accessing memory device
* detect removable disk
* detect optical disk
* determine optical disk sessions
* detect floppy
* detect bus type
* determine USB serial number
* use pre windows XP io control codes as fallback ?
* add support for reading from floppy \\.\A: for builder5 compilation

Test:
* add autoconf/make test suite

20160320
* worked on support for devices without bytes per sector support e.g. /dev/zero

20160111
* Changes to Python bindings

20160109
* worked on Python 3 support
* fixes for rpmbuild

20160108
* 2016 update
* worked on Python 3 support

20151219
* updated dependencies

20151216
* block aligned read now enabled by default

20150905
* updated dependencies

20150105
* 2015 update
* fixed copyright in pysmdev/pysmdev_handle.c

20141229
* updated dpkg files
* updated dependencies
* updated .gitignore

20141225
* worked on Python 3 support

20141129
* code clean up

20141027
* changes for deployment

20141021
* changes for deployment

20141004
* bug fix in Python-bindings

20140928
* removed README.macosx
* changes for project site move

20140803
* bug fix in Python-bindings

20140728
* updated python.m4
* updated dpkg files

20140529
* improved dealing with paths in pysmdev on Windows

20140527
* fixes for dealing with Unicode paths in pysmdev
* fixes for OSX python build
* updated dependencies

20140526
* fadvise bug fix

20140525
* worked on non-blocking Windows device file support

20140503
* updated libcfile

20140502
* worked on block-based read to support Windows device files

20140501
* worked on Python bindings
* updated libcfile
* worked on block-based read to support Windows device files

20140428
* worked on Python bindings
* added DIOCGSECTORSIZE support for FreeBSD

20140406
* updated to include header

20140323
* added read/write at offset functions
* worked on Python bindings

20140119
* 2014 update
* updated dependencies

20131210
* updated dependencies
* added libcthreads

20130901
* code clean up

20130416
* updated dependencies
* fixes for build by some versions of mingw

20130407
* updated dependencies
* textual changes

20130331
* added debug code files

20130330
* code clean up
* removed libcsplit and libcpath

20130329
* worked on libcfile refactor
* removed libsmdev_legacy

20130328
* added smdevinfo
* worked on libcfile refactor

20130327
* 2013 update
* updated dependencies
* changes for project move
* changes for libcdata
* updated msvscpp files
* fixes in pc and spec files
* worked on libcfile refactor

20121217
* updated dependencies

20120715
* changes for updates

20120630
* updated dependencies
* changed codepage functions in support to use libclocale

20120212
* updated libnotify

20120102
* 2012 update
* added windows codepage 932 and 936 support

20111231
* updated libcstring, libuna
* updated msvscpp files

20111224
* updated libcstring, libuna
* updated array type, list type, offset list
* code clean up

20111030
* updated configure.ac and m4 files

20111008
* updated configure.ac and m4 files
* updated common
* updated libuna
* fix for inclusion of last lead out in optical disk session

20111006
* fix for MacOS-X
* updated configure.ac and m4 files

20110906
* worked on session support

20110905
* worked on session support

20110904
* fix for missing last character
* reduced SCSI and USB ioctl timeout to 1 sec
* renamed optical disk to optical disc
* refactored sector list to arrays
* worked on session support

20110831
* updated configure, libuna

20110731
* renamed HAVE_STORAGE_BUS_TYPE to HAVE_WINIOCTL_H_STORAGE_BUS_TYPE

20110727
* updated common
* worked on optical dics track functions
* added UTF-16 information value functions
* updated manuals

20110625
* changes for: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
* updated include/codepage.h, list type
* updated common, libcstring, libuna

20110322
* updated configure.ac
* updated libcstring

20110306
* updated libuna
* msvscpp added VSDebug option

20110303
* update for Cygwin WINAPI support
* updated libcstring

20110117
* updated libuna
* fixed invalid information value issue
* WINAPI added fallback media size detection for floppy drive
* fix for return value of FormatMessage

20110114
* updated common, libuna

20110110
* updated libcstring, libuna

20110108
* updated configure.ac
* updatec common, libcstring, libuna

20110106
* worked on UTF-8 functions

20110104
* updated libcstring, libuna
* 2011 update

20101219
* updated configure, added gettext support
* updated list type, offset list, sector list
* code clean up

20101214
* corrected 'errror'

20101207
* updated common, list type, offset list, sector list, liberror, libnotify,
  libuna
* code clean up

20101119
* updated configure.ac, libcstring, liberror
* fixed bug regarding session values

20101115
* updated offset list
* added libsmdev.rc

20101113
* textual changes
* updated configure.ac
* updated include/error.h, include/types.h
* updated liberror

20101014
* updated common

20101013
* worked on improving device info
* renamed Win95/98 safe WINAPI replacement functions
  to prevent conflict with libbfio

20101012
* worked on improving device info

20101008
* worked on improving device info
* updated offset list

20101007
* updated offset list
* updated liberror, libnotify
* worked on WINAPI error skip
* worked on detailed error reporting
* fixed missing HDIO_GET_IDENTITY in libsmdev_metadata.c

20100805
* invalid inclusion in libsmdev_handle.h
* fixed includion loop
* updated libcstring, libuna
* updated include/error.h and liberror
* build requires changes
* added msvscpp project files

20100801
* update for mingw64

20100719
* updated include/error.h and liberror
* updated common, libuna

20100716
* updated libuna

20100714
* updated configure.ac
* updated include/error.h and liberror
* updated include/codepage.h
* updated list type
* updated offset list
* updated common, libuna

20100628
* updated common, libcstring, liberror, libnotify, libuna
* clean up

20100505
* updated configure.ac and Makefile.am files
* update libuna
* added missing libsmdev_definitions.h.in

20100502
* updated common. libcstring, liberror, libnotify, libuna
* changed amount of to number of

20100501
* updated common. libcstring

20100430
* worked on mingw support
* updated common, libcstring

20100418
* added libcstring
* updated common, liberror, libnotify, libuna
* email change

20100212
* worked on glob function

20100211
* worked on local use of libsmdev

20100202
* worked on retrieving media size when not set for read

20100201
* worked on metadata functions for libsmio
* completed libsmdev_handle_get_offset

20100126
* worked on solution for Debian 4.0 posix_fadvise break

20100124
* removed unused string and system macros
* updated common, liberror (snwprintf fix)

20100123
* worked on wide character functions
  - added system codepage support
* update for missing varadic macro support in Borland C++ Builder 5.5

20100121
* worked on winapi support

20100120
* added posix_fadvice

20100118
* worked on error listing

20100117
* worked on read error retries

20100116
* worked on initial version
* worked on read error retries

20100110
* Created initial version based on earlier media input/output code

