From 4ef88ac8447d98d838f01b3339b4cff36bc83ab2 Mon Sep 17 00:00:00 2001 From: Marco Schuster Date: Thu, 24 Apr 2014 00:28:48 +0000 Subject: [PATCH] fix Linux build errors due to buggy header files git-svn-id: https://svn.php.net/repository/pecl/pcsc/trunk@333416 c90b9560-bf6c-de11-be94-00142212c4b1 --- pcsc.c | 20 ++++++++++++++------ php_pcsc.h | 5 +++++ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/pcsc.c b/pcsc.c index 03d995b..26bd307 100644 --- a/pcsc.c +++ b/pcsc.c @@ -27,10 +27,6 @@ ZEND_DECLARE_MODULE_GLOBALS(pcsc); -#include -#ifndef PHP_WIN32 -#include -#endif #ifndef FALSE #define FALSE 0 @@ -232,7 +228,7 @@ PHP_MINIT_FUNCTION(pcsc) #ifdef ZTS ts_allocate_id(&pcsc_globals_id,sizeof(zend_pcsc_globals),(ts_allocate_ctor)php_pcsc_globals_ctor, NULL); #else - php_pcsc_globals_ctor(&pcsc_globals TRSMLS_CC); + php_pcsc_globals_ctor(&pcsc_globals TSRMLS_CC); #endif return SUCCESS; @@ -302,7 +298,13 @@ static char* php_pcsc_error_to_string(DWORD dwRC) { case SCARD_E_UNKNOWN_CARD: return "SCARD_E_UNKNOWN_CARD"; case SCARD_E_UNKNOWN_READER: return "SCARD_E_UNKNOWN_READER"; case SCARD_E_UNKNOWN_RES_MNG: return "SCARD_E_UNKNOWN_RES_MNG"; - case SCARD_E_UNSUPPORTED_FEATURE: return "SCARD_E_UNSUPPORTED_FEATURE"; +/* apparently E_UNEXPECTED and E_UNSUPPORTED are defined + by a buggy header file on Linux, causing a "double used constant" + error. Just leave this out on Linux, then. +*/ +#ifdef PHP_WIN32 + case SCARD_E_UNSUPPORTED_FEATURE: return "SCARD_E_UNSUPPORTED_FEATURE"; +#endif case SCARD_E_WRITE_TOO_MANY: return "SCARD_E_WRITE_TOO_MANY"; case SCARD_F_COMM_ERROR: return "SCARD_E_WRITE_TOO_MANY"; case SCARD_F_INTERNAL_ERROR: return "SCARD_F_INTERNAL_ERROR"; @@ -311,9 +313,15 @@ static char* php_pcsc_error_to_string(DWORD dwRC) { case SCARD_P_SHUTDOWN: return "SCARD_P_SHUTDOWN"; case SCARD_S_SUCCESS: return "SCARD_S_SUCCESS"; case SCARD_W_CANCELLED_BY_USER: return "SCARD_W_CANCELLED_BY_USER"; +#ifdef SCARD_W_CACHE_ITEM_NOT_FOUND case SCARD_W_CACHE_ITEM_NOT_FOUND: return "SCARD_W_CACHE_ITEM_NOT_FOUND"; +#endif +#ifdef SCARD_W_CACHE_ITEM_STALE case SCARD_W_CACHE_ITEM_STALE: return "SCARD_W_CACHE_ITEM_STALE"; +#endif +#ifdef SCARD_W_CACHE_ITEM_TOO_BIG case SCARD_W_CACHE_ITEM_TOO_BIG: return "SCARD_W_CACHE_ITEM_TOO_BIG"; +#endif case SCARD_W_CARD_NOT_AUTHENTICATED: return "SCARD_W_CARD_NOT_AUTHENTICATED"; case SCARD_W_CHV_BLOCKED: return "SCARD_W_CHV_BLOCKED"; case SCARD_W_EOF: return "SCARD_W_EOF"; diff --git a/php_pcsc.h b/php_pcsc.h index daf5daf..5cdfdd4 100644 --- a/php_pcsc.h +++ b/php_pcsc.h @@ -16,6 +16,11 @@ extern zend_module_entry pcsc_module_entry; #include "TSRM.h" #endif +#include +#ifndef PHP_WIN32 +#include +#endif + PHP_MINIT_FUNCTION(pcsc); PHP_MSHUTDOWN_FUNCTION(pcsc); PHP_MINFO_FUNCTION(pcsc);