Hello,

In Ubuntu, one additional file had to be modified. Resulting version of
the patch is attached.
Description: Port to pcsc-lite 1.6.0 API.
Author: Ludovic Rousseau <rouss...@debian.org>
Bug-Debian: http://bugs.debian.org/593638
Bug-Ubuntu: https://launchpad.net/bugs/749231
--- beid-3.5.2.dfsg.orig/_src/beid-2.6/src/newpkcs11/src/libopensc/reader-pcsc.c
+++ beid-3.5.2.dfsg/_src/beid-2.6/src/newpkcs11/src/libopensc/reader-pcsc.c
@@ -82,7 +82,7 @@ struct pcsc_private_data {
 
 struct pcsc_slot_data {
 	SCARDHANDLE pcsc_card;
-	SCARD_READERSTATE_A readerState;
+	SCARD_READERSTATE readerState;
 };
 
 static int pcsc_detect_card_presence(struct sc_reader *reader, struct sc_slot_info *slot);
@@ -300,7 +300,7 @@ static int pcsc_wait_for_event(struct sc
 	struct sc_context *ctx;
 	SCARDCONTEXT pcsc_ctx;
 	LONG ret;
-	SCARD_READERSTATE_A rgReaderStates[SC_MAX_READERS];
+	SCARD_READERSTATE rgReaderStates[SC_MAX_READERS];
 	unsigned long on_bits, off_bits;
 	time_t end_time, now, delta;
 	int i;
@@ -348,7 +348,7 @@ static int pcsc_wait_for_event(struct sc
 	/* Wait for a status change and return if it's a card insert/removal
 	 */
 	for( ; ; ) {
-		SCARD_READERSTATE_A *rsp;
+		SCARD_READERSTATE *rsp;
 
 		/* Scan the current state of all readers to see if they
 		 * match any of the events we're polling for */
--- beid-3.5.2.dfsg.orig/_src/beid-2.6/src/winscarp/winscarp.cpp
+++ beid-3.5.2.dfsg/_src/beid-2.6/src/winscarp/winscarp.cpp
@@ -72,7 +72,8 @@ QTime t;
     typedef GUID *LPGUID;
     typedef char *LPWSTR;
     typedef const char *LPCWSTR;
-    typedef SCARD_READERSTATE_A *LPSCARD_READERSTATE_W;
+    typedef SCARD_READERSTATE *LPSCARD_READERSTATE_A;
+    typedef SCARD_READERSTATE *LPSCARD_READERSTATE_W;
     typedef const char *LPCSTR;
 #endif //_WIN32
 
@@ -1591,9 +1592,6 @@ char *pcsc_stringify_error(long Error)
 	case SCARD_W_REMOVED_CARD:
 		strcpy(strError, "Card was removed.");
 		break;
-	case SCARD_W_INSERTED_CARD:
-		strcpy(strError, "Card was inserted.");
-		break;
 	case SCARD_E_UNSUPPORTED_FEATURE:
 		strcpy(strError, "Feature not supported.");
 		break;
--- beid-3.5.2.dfsg.orig/_src/beid-2.6/src/Belpic PCSC Service/CardChangeMonitor.cpp	
+++ beid-3.5.2.dfsg/_src/beid-2.6/src/Belpic PCSC Service/CardChangeMonitor.cpp	
@@ -62,7 +62,7 @@ void CCardChangeMonitor::run()
 
         if(hContext != 0)
         {
-            SCARD_READERSTATE_A rgscState[MAXIMUM_SMARTCARD_READERS] = {0};
+            SCARD_READERSTATE rgscState[MAXIMUM_SMARTCARD_READERS] = {0};
             long  lReturn;
             int iCount = 0;
             int i, j;
--- beid-3.5.2.dfsg.orig/_src/beid-2.6/src/Belpic PCSC Service/PCSCManager.cpp	
+++ beid-3.5.2.dfsg/_src/beid-2.6/src/Belpic PCSC Service/PCSCManager.cpp	
@@ -334,8 +334,8 @@ long CPCSCManager::S_CardGetStatusChange
             unsigned long ulReaders = 0;
             pMessage->Get("Timeout", ulTimeout);
             pMessage->Get("ReadersLen", (long *)&ulReaders);
-            SCARD_READERSTATE_A *prgReaderStates = new SCARD_READERSTATE_A[ulReaders];
-            memset(prgReaderStates, 0, sizeof(SCARD_READERSTATE_A) * ulReaders);
+            SCARD_READERSTATE *prgReaderStates = new SCARD_READERSTATE[ulReaders];
+            memset(prgReaderStates, 0, sizeof(SCARD_READERSTATE) * ulReaders);
             char szReaders[MAXIMUM_SMARTCARD_READERS][64] = {0};
             for(unsigned int i = 0; i < ulReaders; ++i)
             {
--- beid-3.5.2.dfsg.orig/_src/eidmw/cardlayer/PCSC.h
+++ beid-3.5.2.dfsg/_src/eidmw/cardlayer/PCSC.h
@@ -41,7 +41,7 @@ Takes care of
 #include "wintypes.h"
 #include "Reader.h"
 #ifndef SCARD_READERSTATEA
-#define SCARD_READERSTATEA SCARD_READERSTATE_A
+#define SCARD_READERSTATEA SCARD_READERSTATE
 #endif
 // needed for pcsclite version earlier than 1.4
 #ifndef SCARD_E_NO_READERS_AVAILABLE

Reply via email to