2.0.0 (September 2020)
======================

   * SCardStatus(): Fix a crash in case of PC/SC error
   * toASCIIString(): replace non-ASCII char by '.'
   * remove i386 (32-bits) support on macOS

1.9.9 (August 2019)
===================
    * Makefile: use twine to upload to pypi.python.org
    * test: fix Exception test on 32-bits CPU
    * test: correctly handle macOS versions older than 10.10

1.9.8 (March 2019)
==================
    * SmartcardException: store the PC/SC return code in hresult
    * CardMonitoring: stop the looping only if PCSC exited
    * setup: support build on OpenBSD, and other BSD
    * Fix Windows 10 SCARD_E_SERVICE_STOPPED from SCardListReaders()
    * Minor documentation improvements

1.9.7 (June 2018)
=================
    * Modify CardMonitoring's deleteObserver method to cleanly remove threads
    * Python 3: fix smartcard/Synchronization.py
    * Python 3: Fix SCardGetErrorMessage() on Windows
    * PCSCPart10: add parseFeatureRequest(), parseTlvProperties()
    * Fix PEP8 warnings
    * Minor documentation improvements

1.9.6 (August 2017)
===================
    * include test/__init__.py in the archive tarball.
      "make test" now works. That fixes build using Python 3.6

1.9.5 (Feb 2017)
================
    * SCardGetStatusChange(): fix a memory leak with Python 3
    * SCardTransmit(): use SCARD_PCI_RAW for undefined protocol
    * Improve epydoc documentation

1.9.4 (May 2016)
================
    * Fix installation using pip and easy_install
    * Avoid El Capitan SCardGetAttrib bug
    * CardConnection: Add context management
    * PCSCCardConnection: raise NoCardException if SCARD_E_NO_SMARTCARD
    * Stop CardMonitor monitor thread after traceback print.
    * minor improvements

1.9.3 (March 2016)
==================
       * Fix SCardControl() on Windows 7
       * Fix installation using pip and easy_install

1.9.2 (February 2016)
=====================
       * Fix toBytes regression
       * Fix installation using pip
       * improve pydoc documentation
       * user-guide.rst: use real sample codes
       * minor improvements

1.9.1 (September 2015)
======================
       * Create a new version so that the upload to Pypi does _not_
         contain the swig generated files.

1.9.0 (August 2015)
===================
        * add Python3 support (Python2 is still supported)
        * fix a lot of pylint warnings
        * smartcard/test/* replace deprecated assert calls
        * add tox support and coverage reports, run test suite on Travis
        * add Travis CI support to automatically build on Unix
        * add AppVeyor support to automatically build on Windows
        * minor bugs fixed
        * Big thank you to Alex Willmer for his work on pyscard

1.7.0 (June 2015)
===========
        * PCSCCardConnection: Fix a problem with mode=SCARD_SHARE_DIRECT
        * add support of cygwin as a build platform
        * Fix a problem with Windows Remote Desktop
        * Switch from distutils to setuptools
        * dropped support for Python 2.5 and earlier (Alex Willmer)
        * dropped support for OS X 10.5 (Leopard) and earlier (Alex Willmer)
        * minor bugs fixed


1.6.16 (December 2014)
===================
        * added support for windows 64bit amd64 (Jean-Daniel Aussel)
        * support python "new" classes (derive classes from object) (Ludovic Rousseau from chrysn feature request ID 3110077)
        * fixed Reader.__eq__() (Ludovic Rousseau from Bernard Paulus bug ID 3418113)
        * fixed extended APDU transmit buffer too short by 2 (Jean-Daniel Aussel from bugs ID 2914636 and 3106761)
        * make Card and Reader objects hashable (Jean-Daniel Aussel from Hans-Peter Jansen feature request and patch)
        * convert the user guide to python-Sphinx


1.6.12 (August 2010)
===================
        * comply with PEP 8 (Ludovic Rousseau)
        * comply with PEP 352 (Jean-Daniel Aussel)
        * support of pcsclite 1.6 and deprecated LPSCARD_READERSTATE_A (Ludovic Rousseau)
        * support of py2exe scripts for wxWindows examples (Jean-Daniel Aussel)
        * partial support of remote pcsc readers with pyro (Jean-Daniel Aussel)


1.6.10 (May 2010)
===================
        * connect() has a new disposition parameter that is passed to SCardDisconnect (Ludovic Rousseau)
        * fixed winscard_init() bad initialization causing problems in multithreaded environment (Ludovic Rousseau)
        * Use MAX_BUFFER_SIZE_EXTENDED (64k) instead of 1024 for SCardControl and SCardTransmit (Ludovic Rousseau, reported by Lukasz Drygiel)
        * call winscard_init() to load the library only in the %init section instead of in each wrapped function (Ludovic Rousseau)
        * for Snow Leopard, do not pass -framework PCSC to the compiler (Martin Paljak)
        * reformatting to meet pep8 (Style Guide for Python Code) guidelines (Ludovic Rousseau)
        * rename FEATURE_MCT_READERDIRECT in FEATURE_MCT_READER_DIRECT to be conform with PCSC v2 part 10 ch. 2.3 (Ludovic Rousseau)
        * added missing CARD_E_NO_READERS_AVAILABLE (Kjell Tore Fossbakk)
        * added support of x86_64 on Mac OS X Snow Leopard (Jakob Schlyter)
        * ATR can be passed in input in the reader state list (Benoit Allard)
        * clear state changed bit in waitforcard/waitforcardevent upon time-out or reader removal (Jean-Daniel Aussel)
        * removed clearing of states and ATR content upon SCardGetStatusChange() error (Benoit Allard); handling is now moved up in python framework (Jean-Daniel Aussel)



1.6.8 (July 2009)
=================
        * fixed SCARD_ERROR types to match correct types on linux and Mac OS X (Ludovic Rousseau)
        * store g_rgSCard* references as void* (Ludovic Rousseau)
        * modified Mac OS X build to locate PCSC headers using -framework option (Ludovic Rousseau)
        * added contrib root directory and parseATR as first contribution (Ludovic Rousseau)
        * updated a few samples to support  SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1 instead of just SCARD_PROTOCOL_T0 (Ludovic Rousseau)
        * added SCARD_E_NO_READERS_AVAILABLE definition (Ludovic Rousseau)
        * added simpleAPDU.py, a simple script to send a couple of APDUs (Ludovic Rousseau)
        * added support for Snow Leopard 10.6 (Ludovic Rousseau)
        * redefined error codes to be non-Windows or -linux specifics (Ludovic Rousseau)
        * added definitions of SCARD_ATTR_xxx values for Mac OS X (Jean-Daniel Aussel)
        * delay SCardEstablishContext call until needed instead of login, to allow use of utility classes
          such as toHexString, even when the PCSC resource manager or pcscd daemon is not started (Ludovic Rousseau)
        * added javascript code for Piwik web analytics to documentation pages (Jean-Daniel Aussel)
        * update sourceforge logo pages to latest sourceforge standard (Jean-Daniel Aussel)
        * fixed ATR parsing logics (Ludovic Rousseau)
        * added control() method to CardConnection() (Ludovic Rousseau)
        * added mode argument to connect() method of CardConnection (Ludovic Rousseau)
        * added PCSC v2 feature management (Ludovic Rousseau)

1.6.7
=====
        * better thread support and clean-up in ReaderMonitoringThread (Frank Aune)
        * fixed issue on Mac OS X Leopard with dlsym loading of bad SCardControl function (Mattias Brändström)
        * supported build of documentation files on linux and removed unresolved doc links (Ludovic Rousseau)

1.6.6
=====
        * added support for Mac OS X Leopard

1.6.5
=====
        * added sample_MonitorCardsAndTransmit.py sample to illustrate how to transmit apdu to a card notified
          by the card monitor
        * added support for SCardControl (Ludovic Rousseau)
        * added support for Max OS X Tiger (Ludovic Rousseau/Jean-Daniel Aussel) (Leopard not supported)
        * added debian package directory (Ludovice Rousseau)
        * support for python 2.3, 2.4 and 2.5 distutils
        * automated insertion of sourceforge logo in html pages generated by epydoc
        * fixed documentation generation to include examples

1.6.4
=====
        * handled several issues reported by Michael Roehner concerning waitforcard() not detecting card in reader/card
          USB stick; changed the waitforcard() and waitforcardevent() to poll every 100ms for new readers and cards in
          these readers
        * following issue reported by Jarle Bauck Hamar, added samples on how to perform exclusive card connection or
          protect transmit() from being interupted by another thread or process
        * fixed ATR parsing error for optional interface bytes reported by Jarle Bauck Hamar

1.6.3
=====
        * better handling of protocol selection with associated test cases and added getATR_T1 example
          (issue reported by Adam Laurie for T=1 cards, and request from Yong David Huang for
          Omnikey CM5321 RFID that failed with T0|T1 mask).
        * added handling of linux 64-bit platform and graceful exit for unsupported platform, thanks to Henryk Plötz
        * added support for float value timeout in CardRequest, thanks to Henryk Plötz; updated test cases and a
          couple of samples with float timeouts.

1.6.2
=====
        * started support for Mac OS X Darwin; not yet operational
        * fixed issue with "'NoneType' object is not callable" exception on some
        clean-up routines executed from __del__ methods (CardMonitoring, ReaderMonitoring, CardConnection)
        * added default protocol, protocol argument to CardConnection.connect(), and get/setProtocol methods
        to CardConnection, PCSCCardConnection and CardConnectionDecorator

1.6.1
=====
        * maintenance release:
                - define LPCTSTR and LPTSTR for recent releases of pcsc-lite
                - print formatting of userdata in SCardHelper_PrintReaderStateList
                - updated home page and download links to point to sourceforge.net


1.6.0
=====

        * released open-source with LGPL license

