Minor API change
pcsc-lite 1.6.x makes the compilation of some badly written programs to fail. Badly written programs include my owns: pcsc-tools and pcsc-perl.
SCARD_READERSTATE_A
Windows uses two versions for the
SCARD_READERSTATE structure: SCARD_READERSTATE_W
If UNICODE is defined and theszReaderfield is aLPCWSTRusing wide charactersSCARD_READERSTATE_A
If UNICODE is not define and theszReaderfield is aLPCSTRusing normal characters
Since Unix uses UTF-8 instead of UTF-16 we do not need those stupid wide characters. Every string (ASCII or Unicode or what ever encoding) is a char [].
The problem is that the Windows winscard API only uses
SCARD_READERSTATE externally and programs should never use SCARD_READERSTATE_W or SCARD_READERSTATE_A.pcsc-lite 1.6.2 removed the definition of
SCARD_READERSTATE_A PSCARD_READERSTATE_A and LPSCARD_READERSTATE_A typesLPSCARD_READERSTATE
This type was missing and has been added in pcsc-lite 1.6.3. pcsc-lite up to 1.6.1 defined
LPSCARD_READERSTATE_A instead and we have seen why it was a bad idea.SCARD_W_INSERTED_CARD
The
SCARD_W_INSERTED_CARD error code was specific to pcsc-lite and was never used. I removed its declaration.If your code uses it just remove the line.
No ABI change
Only the compilation of some programs will fail. The execution should not fail. The ABI (Application Binary Interface) has not changed.