New upstream version 1.4.31
This commit is contained in:
parent
6b2ce452cd
commit
e1844232e3
333
ChangeLog
333
ChangeLog
|
@ -1,4 +1,335 @@
|
||||||
commit db45750ebb2ce8d841f8e555e79f09108527aaa8 (HEAD -> master, origin/master, origin/HEAD)
|
commit 743e9a9daf4dd27128eb6be8b13562f0ea695fd5 (HEAD -> master, tag: ccid-1.4.31)
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Sat Aug 10 11:49:32 2019 +0200
|
||||||
|
|
||||||
|
Distribute README.md
|
||||||
|
|
||||||
|
Autotools does not know about README.md file so we must add it explicitly.
|
||||||
|
|
||||||
|
Makefile.am | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
commit 680d7479c6b9eb02fabc657a727888c35e6fd31d (origin/master, origin/HEAD)
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Sat Aug 10 11:43:21 2019 +0200
|
||||||
|
|
||||||
|
Release 1.4.31
|
||||||
|
|
||||||
|
Signed-off-by: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
|
||||||
|
README.md | 27 +++++++++++++++++++++++++++
|
||||||
|
configure.ac | 2 +-
|
||||||
|
2 files changed, 28 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit 6768d39c987a2fcca2d34516e7d042ebca63e009
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Sat Aug 10 11:41:26 2019 +0200
|
||||||
|
|
||||||
|
Reformat README.md for a better MarkDown
|
||||||
|
|
||||||
|
README.md | 1412 ++++++++++++++++++++++++++++++-------------------------------
|
||||||
|
1 file changed, 706 insertions(+), 706 deletions(-)
|
||||||
|
|
||||||
|
commit 71d442ed5ef02a4115e6a2406db020fc3a7c417e
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Sat Aug 10 11:37:36 2019 +0200
|
||||||
|
|
||||||
|
Rename README in README.md
|
||||||
|
|
||||||
|
We can now have a nice MarkDown rendering.
|
||||||
|
|
||||||
|
README => README.md | 0
|
||||||
|
1 file changed, 0 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
commit d66f0fad276cf1210536c7534a2edd56e4f8350c (zotac/master)
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Wed Jul 31 17:08:12 2019 +0200
|
||||||
|
|
||||||
|
Add SPECINFOSYSTEMS DIAMOND token
|
||||||
|
|
||||||
|
readers/SPECINFOSYSTEMS_DIAMOND_token.txt | 52 +++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 5 ++-
|
||||||
|
2 files changed, 56 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit c53375f8e8b1d41c729fac149b1c41218b94ae64
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Mon Jul 29 23:08:05 2019 +0200
|
||||||
|
|
||||||
|
Add AvestUA AvestKey
|
||||||
|
|
||||||
|
readers/AvestUA_AvestKey.txt | 49 +++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 5 ++++-
|
||||||
|
2 files changed, 53 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit 25fee850dd3de47d518f14e0fe84d9c98a4345b6
|
||||||
|
Author: Godfrey Chung <godfrey.chung@acs.com.hk>
|
||||||
|
Date: Fri Jun 28 15:46:03 2019 +0800
|
||||||
|
|
||||||
|
MacOSX/configure: fix checking error for dynamic library libusb
|
||||||
|
|
||||||
|
The directory may contain other dynamic libraries and therefore libusb
|
||||||
|
is incorrectly found.
|
||||||
|
|
||||||
|
MacOSX/configure | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit ebf5010b64bc5e69346bff4617fa6eebed4fc40b
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Thu Jun 20 17:47:29 2019 +0200
|
||||||
|
|
||||||
|
Update PCSC-contib submodule
|
||||||
|
|
||||||
|
PCSC-contrib | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit fd83c6f797be6091e432a259c2ad65782fbaaa43
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Thu Jun 20 17:46:30 2019 +0200
|
||||||
|
|
||||||
|
Update PCSC submodule
|
||||||
|
|
||||||
|
Update PCSC/src/misc.h to get the fix for warning: 'PCSC_API' macro redefined
|
||||||
|
|
||||||
|
PCSC | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit 0b88e9c82c9d1c795f7c6adfca83aa47a1bbaa76
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Mon Jun 17 21:52:09 2019 +0200
|
||||||
|
|
||||||
|
Add HID Global Crescendo Key 0x002D
|
||||||
|
|
||||||
|
readers/HID_Global_Crescendo_Key_0x002D.txt | 51 +++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 1 +
|
||||||
|
2 files changed, 52 insertions(+)
|
||||||
|
|
||||||
|
commit 3139b814bec05a5ea22ed063134d6611eca58110
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Mon Jun 17 18:07:53 2019 +0200
|
||||||
|
|
||||||
|
Add HID Global Crescendo Key 0x002B
|
||||||
|
|
||||||
|
readers/HID_Global_Crescendo_Key_0x002B.txt | 51 +++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 1 +
|
||||||
|
2 files changed, 52 insertions(+)
|
||||||
|
|
||||||
|
commit 0e1923bd3b0872a39b0ec25c24c84f9a768aad9d
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Mon Jun 17 18:06:39 2019 +0200
|
||||||
|
|
||||||
|
Add HID Global Crescendo Key 0x0029
|
||||||
|
|
||||||
|
readers/HID_Global_Crescendo_Key_0x0029.txt | 51 +++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 1 +
|
||||||
|
2 files changed, 52 insertions(+)
|
||||||
|
|
||||||
|
commit 4475166e07382b5b9a6cc88d0984308b72a2edc7
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Mon Jun 17 18:05:22 2019 +0200
|
||||||
|
|
||||||
|
Add HID Global Crescendo Key 0x0028
|
||||||
|
|
||||||
|
readers/HID_Global_Crescendo_Key_0x0028.txt | 51 +++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 3 +-
|
||||||
|
2 files changed, 53 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit dd0b2865d970ef7b69dbcf14f2bcaef13329d71d
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Sat Jun 15 15:37:24 2019 +0200
|
||||||
|
|
||||||
|
Add Route1 MobiKEY Fusion3
|
||||||
|
|
||||||
|
readers/Route1_MobiKEY_Fusion3.txt | 55 ++++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 5 +++-
|
||||||
|
2 files changed, 59 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit 903ffe6f61dc1b3e2bd870ab8153114ced394277
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Fri Jun 14 08:46:51 2019 +0200
|
||||||
|
|
||||||
|
Add extra_features for Gemalto IDBridge CT710
|
||||||
|
|
||||||
|
readers/extra_features/Gemalto_IDBridge_CT710.txt | 39 +++++++++++++++++++++++
|
||||||
|
1 file changed, 39 insertions(+)
|
||||||
|
|
||||||
|
commit 006e405ecd534d9bfce93ebdcd40e3e687d4dbd4
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Tue Jun 11 11:14:41 2019 +0200
|
||||||
|
|
||||||
|
parse: use libusb_strerror() instead of strerror(errno)
|
||||||
|
|
||||||
|
We now display the error message from libusb when a libusb call fails.
|
||||||
|
|
||||||
|
Fixes https://salsa.debian.org/rousseau/CCID/issues/2
|
||||||
|
|
||||||
|
src/parse.c | 9 +++++----
|
||||||
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
commit 0d98000b414e6c489eeae71c83bc76bceb564f49
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Tue Apr 2 19:00:19 2019 +0200
|
||||||
|
|
||||||
|
Add Avtor SecureToken (idProduct: 0x0020)
|
||||||
|
|
||||||
|
readers/Avtor_SecureToken_0x0020.txt | 57 ++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 3 +-
|
||||||
|
2 files changed, 59 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit 2a6c7245b19640eb3c71598cfe5f44abd1d75a23
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Wed Mar 13 19:47:23 2019 +0100
|
||||||
|
|
||||||
|
Update Aladdin R.D. JaCartaReader reader name
|
||||||
|
|
||||||
|
Is was "JaCarta3"
|
||||||
|
|
||||||
|
readers/supported_readers.txt | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
commit f37941d448e0fca17ffb20282ce27311e02687e7
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Tue Mar 12 18:29:58 2019 +0100
|
||||||
|
|
||||||
|
Add Aladdin R.D. JaCarta3
|
||||||
|
|
||||||
|
readers/Aladdin_R.D._JaCarta3.txt | 51 +++++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 3 ++-
|
||||||
|
2 files changed, 53 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit 266d092cfab467d05fbd48b56436340adfd4e17a
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Thu Jan 17 20:15:28 2019 +0100
|
||||||
|
|
||||||
|
Add Bit4id miniLector Blue
|
||||||
|
|
||||||
|
readers/bit4id_minilector-BLUE.txt | 54 ++++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 1 +
|
||||||
|
2 files changed, 55 insertions(+)
|
||||||
|
|
||||||
|
commit 51df9ec8c7d701df9ff78aa32ea19f0a561a29aa
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Thu Jan 17 20:11:56 2019 +0100
|
||||||
|
|
||||||
|
Add Bit4id TokenME EVO v2
|
||||||
|
|
||||||
|
readers/bit4id_TokenME-EVO.txt | 50 ++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 1 +
|
||||||
|
2 files changed, 51 insertions(+)
|
||||||
|
|
||||||
|
commit bd6bd148ccd077073ecf8bd2a25eee94f485b935
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Thu Jan 17 20:08:38 2019 +0100
|
||||||
|
|
||||||
|
Add Bit4id miniLector AIR EVO
|
||||||
|
|
||||||
|
readers/bit4id_minilector-AIR.txt | 48 +++++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 3 ++-
|
||||||
|
2 files changed, 50 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit 476f5a7b5eb4747ee22e5affec68e28cb4750597
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Wed Jan 16 09:33:57 2019 +0100
|
||||||
|
|
||||||
|
Add Certgate GmbH ONEKEY ID 2 USB
|
||||||
|
|
||||||
|
readers/Certgate_ONEKEY_ID_2_USB.txt | 49 ++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 3 ++-
|
||||||
|
2 files changed, 51 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit 2795ef5ab70a0de91071e1be84e29dcd727911d8
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Sun Dec 30 17:35:40 2018 +0100
|
||||||
|
|
||||||
|
Add Alcor Link AK9563
|
||||||
|
|
||||||
|
readers/Alcor_Link_AK9563.txt | 156 ++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 5 +-
|
||||||
|
2 files changed, 160 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit 54831a762e888c8ad12b7e8d17a1be0dacd7404e
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Wed Dec 19 13:56:32 2018 +0100
|
||||||
|
|
||||||
|
Add Identiv SCR3500 C Contact Reader
|
||||||
|
|
||||||
|
readers/Identiv_SCR3500_C_Contact_Reader.txt | 55 ++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 3 +-
|
||||||
|
2 files changed, 57 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit a691e5cbc53bf693c27c846f08612a08c4a1c331
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Fri Nov 30 16:49:25 2018 +0100
|
||||||
|
|
||||||
|
Add Broadcom Corp 58200 (idProduct: 0x5845)
|
||||||
|
|
||||||
|
readers/Broadcom_58200_0x5845.txt | 52 +++++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 1 +
|
||||||
|
2 files changed, 53 insertions(+)
|
||||||
|
|
||||||
|
commit d882261ebc3f43f1ca3f984ea8d8a7d99701f72d
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Fri Nov 30 16:47:52 2018 +0100
|
||||||
|
|
||||||
|
Add Broadcom Corp 58200 (idProduct: 0x5844)
|
||||||
|
|
||||||
|
readers/Broadcom_58200_0x5844.txt | 52 +++++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 1 +
|
||||||
|
2 files changed, 53 insertions(+)
|
||||||
|
|
||||||
|
commit 869544330fe96810eb7f3f8ab39cad7fa7686539
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Fri Nov 30 16:45:10 2018 +0100
|
||||||
|
|
||||||
|
Add Broadcom Corp 58200 (idProduct: 0x5843)
|
||||||
|
|
||||||
|
readers/Broadcom_58200_0x5843.txt | 106 ++++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 3 +-
|
||||||
|
2 files changed, 108 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit 25ab9d6e4fad9ac1f70ef4c76e3be3ce175f79fb
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Wed Oct 24 18:48:26 2018 +0200
|
||||||
|
|
||||||
|
Add InfoCert WirelessKey
|
||||||
|
|
||||||
|
readers/InfoCert_WirelessKey.txt | 53 ++++++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 5 +++-
|
||||||
|
2 files changed, 57 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit 5adffb317bcae37144e6fad7840d8c0970851c25
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Fri Oct 12 16:19:00 2018 +0200
|
||||||
|
|
||||||
|
Add ACS ACR1252 Reader
|
||||||
|
|
||||||
|
readers/ACS_ACR1252_Reader.txt | 53 ++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 3 ++-
|
||||||
|
2 files changed, 55 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit f262442ca2b48ac6cf47a556721dabb6c3a9d0a9
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Thu Oct 4 14:31:54 2018 +0200
|
||||||
|
|
||||||
|
InterruptRead(): log the timeout used
|
||||||
|
|
||||||
|
This change allows to differentiate between a short
|
||||||
|
(PCSCLITE_POWER_OFF_GRACE_PERIOD, 5 seconds by default) and a long
|
||||||
|
(PCSCLITE_STATUS_EVENT_TIMEOUT, 10 minutes by default) timeout.
|
||||||
|
|
||||||
|
src/ccid_usb.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit 4529d6d723009a62dab31dc8c9fda03b2204e05f
|
||||||
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
|
Date: Mon Sep 24 21:00:04 2018 +0200
|
||||||
|
|
||||||
|
Add NXP PN7462AU CCID
|
||||||
|
|
||||||
|
readers/NXP_PN7462AU_CCID.txt | 310 ++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
readers/supported_readers.txt | 3 +-
|
||||||
|
2 files changed, 312 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit db45750ebb2ce8d841f8e555e79f09108527aaa8 (tag: ccid-1.4.30)
|
||||||
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
|
||||||
Date: Wed Sep 19 09:33:32 2018 +0200
|
Date: Wed Sep 19 09:33:32 2018 +0200
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ LIBUSB_ARCHIVE="$LIBUSB_DIR"/libusb-1.0.a
|
||||||
LIBUSB_CFLAGS=$(pkg-config --cflags --static libusb-1.0)
|
LIBUSB_CFLAGS=$(pkg-config --cflags --static libusb-1.0)
|
||||||
LIBUSB_LIBS=$(pkg-config --libs --static libusb-1.0)
|
LIBUSB_LIBS=$(pkg-config --libs --static libusb-1.0)
|
||||||
|
|
||||||
if ls "$LIBUSB_DIR"/*.dylib 2> /dev/null
|
if ls "$LIBUSB_DIR"/libusb-1.0*.dylib 2> /dev/null
|
||||||
then
|
then
|
||||||
echo -en $RED
|
echo -en $RED
|
||||||
echo "*****************************"
|
echo "*****************************"
|
||||||
|
|
|
@ -40,7 +40,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
The routines specified hereafter will allow you to write an IFD handler
|
The routines specified hereafter will allow you to write an IFD handler
|
||||||
for the PC/SC Lite resource manager. Please use the complement
|
for the PC/SC Lite resource manager. Please use the complement
|
||||||
developer's kit complete with headers and Makefile at:
|
developer's kit complete with headers and Makefile at:
|
||||||
http://www.musclecard.com/drivers.html
|
https://muscle.apdu.fr/musclecard.com/sourcedrivers.html
|
||||||
|
|
||||||
This gives a common API for communication to most readers in a
|
This gives a common API for communication to most readers in a
|
||||||
homogeneous fashion. This document assumes that the driver developer is
|
homogeneous fashion. This document assumes that the driver developer is
|
||||||
|
@ -82,7 +82,7 @@ Example:
|
||||||
<string>0x04E6</string>
|
<string>0x04E6</string>
|
||||||
@endverbatim
|
@endverbatim
|
||||||
|
|
||||||
You may have an OEM of this reader in which an additional @c <string>
|
You may have an OEM of this reader in which an additional @c \<string>
|
||||||
can be used like in the below example:
|
can be used like in the below example:
|
||||||
|
|
||||||
@verbatim
|
@verbatim
|
||||||
|
@ -202,7 +202,7 @@ It has the following syntax:
|
||||||
# Configuration file for pcsc-lite
|
# Configuration file for pcsc-lite
|
||||||
# David Corcoran <corcoran@musclecard.com>
|
# David Corcoran <corcoran@musclecard.com>
|
||||||
|
|
||||||
FRIENDLYNAME Generic Reader
|
FRIENDLYNAME "Generic Reader"
|
||||||
DEVICENAME /dev/ttyS0
|
DEVICENAME /dev/ttyS0
|
||||||
LIBPATH /usr/lib/pcsc/drivers/libgen_ifd.so
|
LIBPATH /usr/lib/pcsc/drivers/libgen_ifd.so
|
||||||
CHANNELID 1
|
CHANNELID 1
|
||||||
|
|
|
@ -3,6 +3,7 @@ ACLOCAL_AMFLAGS = -I m4
|
||||||
SUBDIRS = readers examples contrib src
|
SUBDIRS = readers examples contrib src
|
||||||
|
|
||||||
EXTRA_DIST = bootstrap ChangeLog SCARDGETATTRIB.txt \
|
EXTRA_DIST = bootstrap ChangeLog SCARDGETATTRIB.txt \
|
||||||
|
README.md \
|
||||||
$(AUX_DIST) \
|
$(AUX_DIST) \
|
||||||
m4/ax_pthread.m4 \
|
m4/ax_pthread.m4 \
|
||||||
MacOSX/configure \
|
MacOSX/configure \
|
||||||
|
|
|
@ -162,8 +162,8 @@ CTAGS = ctags
|
||||||
CSCOPE = cscope
|
CSCOPE = cscope
|
||||||
DIST_SUBDIRS = $(SUBDIRS)
|
DIST_SUBDIRS = $(SUBDIRS)
|
||||||
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in AUTHORS \
|
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in AUTHORS \
|
||||||
COPYING ChangeLog INSTALL NEWS README ar-lib compile \
|
COPYING ChangeLog INSTALL NEWS ar-lib compile config.guess \
|
||||||
config.guess config.sub install-sh ltmain.sh missing ylwrap
|
config.sub install-sh ltmain.sh missing ylwrap
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
distdir = $(PACKAGE)-$(VERSION)
|
distdir = $(PACKAGE)-$(VERSION)
|
||||||
top_distdir = $(distdir)
|
top_distdir = $(distdir)
|
||||||
|
@ -354,6 +354,7 @@ usbdropdir = @usbdropdir@
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
SUBDIRS = readers examples contrib src
|
SUBDIRS = readers examples contrib src
|
||||||
EXTRA_DIST = bootstrap ChangeLog SCARDGETATTRIB.txt \
|
EXTRA_DIST = bootstrap ChangeLog SCARDGETATTRIB.txt \
|
||||||
|
README.md \
|
||||||
$(AUX_DIST) \
|
$(AUX_DIST) \
|
||||||
m4/ax_pthread.m4 \
|
m4/ax_pthread.m4 \
|
||||||
MacOSX/configure \
|
MacOSX/configure \
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for ccid 1.4.30.
|
# Generated by GNU Autoconf 2.69 for ccid 1.4.31.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||||
|
@ -587,8 +587,8 @@ MAKEFLAGS=
|
||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='ccid'
|
PACKAGE_NAME='ccid'
|
||||||
PACKAGE_TARNAME='ccid'
|
PACKAGE_TARNAME='ccid'
|
||||||
PACKAGE_VERSION='1.4.30'
|
PACKAGE_VERSION='1.4.31'
|
||||||
PACKAGE_STRING='ccid 1.4.30'
|
PACKAGE_STRING='ccid 1.4.31'
|
||||||
PACKAGE_BUGREPORT=''
|
PACKAGE_BUGREPORT=''
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL=''
|
||||||
|
|
||||||
|
@ -1378,7 +1378,7 @@ if test "$ac_init_help" = "long"; then
|
||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures ccid 1.4.30 to adapt to many kinds of systems.
|
\`configure' configures ccid 1.4.31 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
|
@ -1449,7 +1449,7 @@ fi
|
||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of ccid 1.4.30:";;
|
short | recursive ) echo "Configuration of ccid 1.4.31:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
|
@ -1593,7 +1593,7 @@ fi
|
||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
ccid configure 1.4.30
|
ccid configure 1.4.31
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
|
@ -2012,7 +2012,7 @@ cat >config.log <<_ACEOF
|
||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by ccid $as_me 1.4.30, which was
|
It was created by ccid $as_me 1.4.31, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
|
@ -2876,7 +2876,7 @@ fi
|
||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='ccid'
|
PACKAGE='ccid'
|
||||||
VERSION='1.4.30'
|
VERSION='1.4.31'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
@ -7135,11 +7135,8 @@ _LT_EOF
|
||||||
test $ac_status = 0; }; then
|
test $ac_status = 0; }; then
|
||||||
# Now try to grab the symbols.
|
# Now try to grab the symbols.
|
||||||
nlist=conftest.nm
|
nlist=conftest.nm
|
||||||
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
|
$ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5
|
||||||
(eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
|
if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then
|
||||||
ac_status=$?
|
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
|
||||||
test $ac_status = 0; } && test -s "$nlist"; then
|
|
||||||
# Try sorting and uniquifying the output.
|
# Try sorting and uniquifying the output.
|
||||||
if sort "$nlist" | uniq > "$nlist"T; then
|
if sort "$nlist" | uniq > "$nlist"T; then
|
||||||
mv -f "$nlist"T "$nlist"
|
mv -f "$nlist"T "$nlist"
|
||||||
|
@ -14711,7 +14708,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by ccid $as_me 1.4.30, which was
|
This file was extended by ccid $as_me 1.4.31, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
|
@ -14777,7 +14774,7 @@ _ACEOF
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
ccid config.status 1.4.30
|
ccid config.status 1.4.31
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
# Require autoconf 2.61
|
# Require autoconf 2.61
|
||||||
AC_PREREQ([2.69])
|
AC_PREREQ([2.69])
|
||||||
|
|
||||||
AC_INIT([ccid],[1.4.30])
|
AC_INIT([ccid],[1.4.31])
|
||||||
AC_CONFIG_SRCDIR(src/ifdhandler.c)
|
AC_CONFIG_SRCDIR(src/ifdhandler.c)
|
||||||
AC_CONFIG_AUX_DIR([.])
|
AC_CONFIG_AUX_DIR([.])
|
||||||
AM_INIT_AUTOMAKE(1.8 dist-bzip2 no-dist-gzip subdir-objects)
|
AM_INIT_AUTOMAKE(1.8 dist-bzip2 no-dist-gzip subdir-objects)
|
||||||
|
|
385
ltmain.sh
385
ltmain.sh
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
PROGRAM=libtool
|
PROGRAM=libtool
|
||||||
PACKAGE=libtool
|
PACKAGE=libtool
|
||||||
VERSION="2.4.6 Debian-2.4.6-4"
|
VERSION="2.4.6 Debian-2.4.6-9"
|
||||||
package_revision=2.4.6
|
package_revision=2.4.6
|
||||||
|
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ package_revision=2.4.6
|
||||||
# libraries, which are installed to $pkgauxdir.
|
# libraries, which are installed to $pkgauxdir.
|
||||||
|
|
||||||
# Set a version string for this script.
|
# Set a version string for this script.
|
||||||
scriptversion=2015-10-12.13; # UTC
|
scriptversion=2015-01-20.17; # UTC
|
||||||
|
|
||||||
# General shell script boiler plate, and helper functions.
|
# General shell script boiler plate, and helper functions.
|
||||||
# Written by Gary V. Vaughan, 2004
|
# Written by Gary V. Vaughan, 2004
|
||||||
|
@ -580,16 +580,16 @@ if test yes = "$_G_HAVE_PLUSEQ_OP"; then
|
||||||
{
|
{
|
||||||
$debug_cmd
|
$debug_cmd
|
||||||
|
|
||||||
func_quote_arg pretty "$2"
|
func_quote_for_eval "$2"
|
||||||
eval "$1+=\\ \$func_quote_arg_result"
|
eval "$1+=\\ \$func_quote_for_eval_result"
|
||||||
}'
|
}'
|
||||||
else
|
else
|
||||||
func_append_quoted ()
|
func_append_quoted ()
|
||||||
{
|
{
|
||||||
$debug_cmd
|
$debug_cmd
|
||||||
|
|
||||||
func_quote_arg pretty "$2"
|
func_quote_for_eval "$2"
|
||||||
eval "$1=\$$1\\ \$func_quote_arg_result"
|
eval "$1=\$$1\\ \$func_quote_for_eval_result"
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -1091,184 +1091,88 @@ func_relative_path ()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# func_quote_portable EVAL ARG
|
# func_quote_for_eval ARG...
|
||||||
# ----------------------------
|
# --------------------------
|
||||||
# Internal function to portably implement func_quote_arg. Note that we still
|
# Aesthetically quote ARGs to be evaled later.
|
||||||
# keep attention to performance here so we as much as possible try to avoid
|
# This function returns two values:
|
||||||
# calling sed binary (so far O(N) complexity as long as func_append is O(1)).
|
# i) func_quote_for_eval_result
|
||||||
func_quote_portable ()
|
# double-quoted, suitable for a subsequent eval
|
||||||
|
# ii) func_quote_for_eval_unquoted_result
|
||||||
|
# has all characters that are still active within double
|
||||||
|
# quotes backslashified.
|
||||||
|
func_quote_for_eval ()
|
||||||
{
|
{
|
||||||
$debug_cmd
|
$debug_cmd
|
||||||
|
|
||||||
func_quote_portable_result=$2
|
func_quote_for_eval_unquoted_result=
|
||||||
|
func_quote_for_eval_result=
|
||||||
# one-time-loop (easy break)
|
while test 0 -lt $#; do
|
||||||
while true
|
case $1 in
|
||||||
do
|
*[\\\`\"\$]*)
|
||||||
if $1; then
|
_G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
|
||||||
func_quote_portable_result=`$ECHO "$2" | $SED \
|
*)
|
||||||
-e "$sed_double_quote_subst" -e "$sed_double_backslash"`
|
_G_unquoted_arg=$1 ;;
|
||||||
break
|
esac
|
||||||
|
if test -n "$func_quote_for_eval_unquoted_result"; then
|
||||||
|
func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
|
||||||
|
else
|
||||||
|
func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Quote for eval.
|
case $_G_unquoted_arg in
|
||||||
case $func_quote_portable_result in
|
# Double-quote args containing shell metacharacters to delay
|
||||||
*[\\\`\"\$]*)
|
# word splitting, command substitution and variable expansion
|
||||||
case $func_quote_portable_result in
|
# for a subsequent eval.
|
||||||
*[\[\*\?]*)
|
# Many Bourne shells cannot handle close brackets correctly
|
||||||
func_quote_portable_result=`$ECHO "$func_quote_portable_result" | $SED "$sed_quote_subst"`
|
# in scan sets, so we specify it separately.
|
||||||
break
|
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
|
||||||
;;
|
_G_quoted_arg=\"$_G_unquoted_arg\"
|
||||||
esac
|
|
||||||
|
|
||||||
func_quote_portable_old_IFS=$IFS
|
|
||||||
for _G_char in '\' '`' '"' '$'
|
|
||||||
do
|
|
||||||
# STATE($1) PREV($2) SEPARATOR($3)
|
|
||||||
set start "" ""
|
|
||||||
func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy
|
|
||||||
IFS=$_G_char
|
|
||||||
for _G_part in $func_quote_portable_result
|
|
||||||
do
|
|
||||||
case $1 in
|
|
||||||
quote)
|
|
||||||
func_append func_quote_portable_result "$3$2"
|
|
||||||
set quote "$_G_part" "\\$_G_char"
|
|
||||||
;;
|
|
||||||
start)
|
|
||||||
set first "" ""
|
|
||||||
func_quote_portable_result=
|
|
||||||
;;
|
|
||||||
first)
|
|
||||||
set quote "$_G_part" ""
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
done
|
|
||||||
IFS=$func_quote_portable_old_IFS
|
|
||||||
;;
|
;;
|
||||||
*) ;;
|
*)
|
||||||
|
_G_quoted_arg=$_G_unquoted_arg
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
break
|
|
||||||
done
|
|
||||||
|
|
||||||
func_quote_portable_unquoted_result=$func_quote_portable_result
|
if test -n "$func_quote_for_eval_result"; then
|
||||||
case $func_quote_portable_result in
|
func_append func_quote_for_eval_result " $_G_quoted_arg"
|
||||||
# double-quote args containing shell metacharacters to delay
|
|
||||||
# word splitting, command substitution and variable expansion
|
|
||||||
# for a subsequent eval.
|
|
||||||
# many bourne shells cannot handle close brackets correctly
|
|
||||||
# in scan sets, so we specify it separately.
|
|
||||||
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
|
|
||||||
func_quote_portable_result=\"$func_quote_portable_result\"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# func_quotefast_eval ARG
|
|
||||||
# -----------------------
|
|
||||||
# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG',
|
|
||||||
# but optimized for speed. Result is stored in $func_quotefast_eval.
|
|
||||||
if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then
|
|
||||||
func_quotefast_eval ()
|
|
||||||
{
|
|
||||||
printf -v func_quotefast_eval_result %q "$1"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
func_quotefast_eval ()
|
|
||||||
{
|
|
||||||
func_quote_portable false "$1"
|
|
||||||
func_quotefast_eval_result=$func_quote_portable_result
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# func_quote_arg MODEs ARG
|
|
||||||
# ------------------------
|
|
||||||
# Quote one ARG to be evaled later. MODEs argument may contain zero ore more
|
|
||||||
# specifiers listed below separated by ',' character. This function returns two
|
|
||||||
# values:
|
|
||||||
# i) func_quote_arg_result
|
|
||||||
# double-quoted (when needed), suitable for a subsequent eval
|
|
||||||
# ii) func_quote_arg_unquoted_result
|
|
||||||
# has all characters that are still active within double
|
|
||||||
# quotes backslashified. Available only if 'unquoted' is specified.
|
|
||||||
#
|
|
||||||
# Available modes:
|
|
||||||
# ----------------
|
|
||||||
# 'eval' (default)
|
|
||||||
# - escape shell special characters
|
|
||||||
# 'expand'
|
|
||||||
# - the same as 'eval'; but do not quote variable references
|
|
||||||
# 'pretty'
|
|
||||||
# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might
|
|
||||||
# later used in func_quote to get output like: 'echo "a b"' instead of
|
|
||||||
# 'echo a\ b'. This is slower than default on some shells.
|
|
||||||
# 'unquoted'
|
|
||||||
# - produce also $func_quote_arg_unquoted_result which does not contain
|
|
||||||
# wrapping double-quotes.
|
|
||||||
#
|
|
||||||
# Examples for 'func_quote_arg pretty,unquoted string':
|
|
||||||
#
|
|
||||||
# string | *_result | *_unquoted_result
|
|
||||||
# ------------+-----------------------+-------------------
|
|
||||||
# " | \" | \"
|
|
||||||
# a b | "a b" | a b
|
|
||||||
# "a b" | "\"a b\"" | \"a b\"
|
|
||||||
# * | "*" | *
|
|
||||||
# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\"
|
|
||||||
#
|
|
||||||
# Examples for 'func_quote_arg pretty,unquoted,expand string':
|
|
||||||
#
|
|
||||||
# string | *_result | *_unquoted_result
|
|
||||||
# --------------+---------------------+--------------------
|
|
||||||
# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\"
|
|
||||||
func_quote_arg ()
|
|
||||||
{
|
|
||||||
_G_quote_expand=false
|
|
||||||
case ,$1, in
|
|
||||||
*,expand,*)
|
|
||||||
_G_quote_expand=:
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case ,$1, in
|
|
||||||
*,pretty,*|*,expand,*|*,unquoted,*)
|
|
||||||
func_quote_portable $_G_quote_expand "$2"
|
|
||||||
func_quote_arg_result=$func_quote_portable_result
|
|
||||||
func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# Faster quote-for-eval for some shells.
|
|
||||||
func_quotefast_eval "$2"
|
|
||||||
func_quote_arg_result=$func_quotefast_eval_result
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# func_quote MODEs ARGs...
|
|
||||||
# ------------------------
|
|
||||||
# Quote all ARGs to be evaled later and join them into single command. See
|
|
||||||
# func_quote_arg's description for more info.
|
|
||||||
func_quote ()
|
|
||||||
{
|
|
||||||
$debug_cmd
|
|
||||||
_G_func_quote_mode=$1 ; shift
|
|
||||||
func_quote_result=
|
|
||||||
while test 0 -lt $#; do
|
|
||||||
func_quote_arg "$_G_func_quote_mode" "$1"
|
|
||||||
if test -n "$func_quote_result"; then
|
|
||||||
func_append func_quote_result " $func_quote_arg_result"
|
|
||||||
else
|
else
|
||||||
func_append func_quote_result "$func_quote_arg_result"
|
func_append func_quote_for_eval_result "$_G_quoted_arg"
|
||||||
fi
|
fi
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# func_quote_for_expand ARG
|
||||||
|
# -------------------------
|
||||||
|
# Aesthetically quote ARG to be evaled later; same as above,
|
||||||
|
# but do not quote variable references.
|
||||||
|
func_quote_for_expand ()
|
||||||
|
{
|
||||||
|
$debug_cmd
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
*[\\\`\"]*)
|
||||||
|
_G_arg=`$ECHO "$1" | $SED \
|
||||||
|
-e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
|
||||||
|
*)
|
||||||
|
_G_arg=$1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case $_G_arg in
|
||||||
|
# Double-quote args containing shell metacharacters to delay
|
||||||
|
# word splitting and command substitution for a subsequent eval.
|
||||||
|
# Many Bourne shells cannot handle close brackets correctly
|
||||||
|
# in scan sets, so we specify it separately.
|
||||||
|
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
|
||||||
|
_G_arg=\"$_G_arg\"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
func_quote_for_expand_result=$_G_arg
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# func_stripname PREFIX SUFFIX NAME
|
# func_stripname PREFIX SUFFIX NAME
|
||||||
# ---------------------------------
|
# ---------------------------------
|
||||||
# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
|
# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
|
||||||
|
@ -1311,8 +1215,8 @@ func_show_eval ()
|
||||||
_G_cmd=$1
|
_G_cmd=$1
|
||||||
_G_fail_exp=${2-':'}
|
_G_fail_exp=${2-':'}
|
||||||
|
|
||||||
func_quote_arg pretty,expand "$_G_cmd"
|
func_quote_for_expand "$_G_cmd"
|
||||||
eval "func_notquiet $func_quote_arg_result"
|
eval "func_notquiet $func_quote_for_expand_result"
|
||||||
|
|
||||||
$opt_dry_run || {
|
$opt_dry_run || {
|
||||||
eval "$_G_cmd"
|
eval "$_G_cmd"
|
||||||
|
@ -1337,8 +1241,8 @@ func_show_eval_locale ()
|
||||||
_G_fail_exp=${2-':'}
|
_G_fail_exp=${2-':'}
|
||||||
|
|
||||||
$opt_quiet || {
|
$opt_quiet || {
|
||||||
func_quote_arg expand,pretty "$_G_cmd"
|
func_quote_for_expand "$_G_cmd"
|
||||||
eval "func_echo $func_quote_arg_result"
|
eval "func_echo $func_quote_for_expand_result"
|
||||||
}
|
}
|
||||||
|
|
||||||
$opt_dry_run || {
|
$opt_dry_run || {
|
||||||
|
@ -1466,7 +1370,7 @@ func_lt_ver ()
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
|
|
||||||
# Set a version string for this script.
|
# Set a version string for this script.
|
||||||
scriptversion=2015-10-12.13; # UTC
|
scriptversion=2015-10-07.11; # UTC
|
||||||
|
|
||||||
# A portable, pluggable option parser for Bourne shell.
|
# A portable, pluggable option parser for Bourne shell.
|
||||||
# Written by Gary V. Vaughan, 2010
|
# Written by Gary V. Vaughan, 2010
|
||||||
|
@ -1676,8 +1580,8 @@ func_run_hooks ()
|
||||||
# '
|
# '
|
||||||
# # No change in '$@' (ignored completely by this hook). There is
|
# # No change in '$@' (ignored completely by this hook). There is
|
||||||
# # no need to do the equivalent (but slower) action:
|
# # no need to do the equivalent (but slower) action:
|
||||||
# # func_quote eval ${1+"$@"}
|
# # func_quote_for_eval ${1+"$@"}
|
||||||
# # my_options_prep_result=$func_quote_result
|
# # my_options_prep_result=$func_quote_for_eval_result
|
||||||
# false
|
# false
|
||||||
# }
|
# }
|
||||||
# func_add_hook func_options_prep my_options_prep
|
# func_add_hook func_options_prep my_options_prep
|
||||||
|
@ -1713,8 +1617,8 @@ func_run_hooks ()
|
||||||
# done
|
# done
|
||||||
#
|
#
|
||||||
# if $args_changed; then
|
# if $args_changed; then
|
||||||
# func_quote eval ${1+"$@"}
|
# func_quote_for_eval ${1+"$@"}
|
||||||
# my_silent_option_result=$func_quote_result
|
# my_silent_option_result=$func_quote_for_eval_result
|
||||||
# fi
|
# fi
|
||||||
#
|
#
|
||||||
# $args_changed
|
# $args_changed
|
||||||
|
@ -1781,8 +1685,8 @@ func_options ()
|
||||||
if $_G_rc_options; then
|
if $_G_rc_options; then
|
||||||
func_options_result=$_G_res_var
|
func_options_result=$_G_res_var
|
||||||
else
|
else
|
||||||
func_quote eval ${1+"$@"}
|
func_quote_for_eval ${1+"$@"}
|
||||||
func_options_result=$func_quote_result
|
func_options_result=$func_quote_for_eval_result
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$_G_rc_options
|
$_G_rc_options
|
||||||
|
@ -1925,8 +1829,8 @@ func_parse_options ()
|
||||||
|
|
||||||
if $_G_rc_parse_options; then
|
if $_G_rc_parse_options; then
|
||||||
# save modified positional parameters for caller
|
# save modified positional parameters for caller
|
||||||
func_quote eval ${1+"$@"}
|
func_quote_for_eval ${1+"$@"}
|
||||||
func_parse_options_result=$func_quote_result
|
func_parse_options_result=$func_quote_for_eval_result
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$_G_rc_parse_options
|
$_G_rc_parse_options
|
||||||
|
@ -2237,7 +2141,7 @@ include the following information:
|
||||||
compiler: $LTCC
|
compiler: $LTCC
|
||||||
compiler flags: $LTCFLAGS
|
compiler flags: $LTCFLAGS
|
||||||
linker: $LD (gnu? $with_gnu_ld)
|
linker: $LD (gnu? $with_gnu_ld)
|
||||||
version: $progname $scriptversion Debian-2.4.6-4
|
version: $progname $scriptversion Debian-2.4.6-9
|
||||||
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
|
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
|
||||||
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
|
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
|
||||||
|
|
||||||
|
@ -2471,8 +2375,8 @@ libtool_options_prep ()
|
||||||
|
|
||||||
if $_G_rc_lt_options_prep; then
|
if $_G_rc_lt_options_prep; then
|
||||||
# Pass back the list of options.
|
# Pass back the list of options.
|
||||||
func_quote eval ${1+"$@"}
|
func_quote_for_eval ${1+"$@"}
|
||||||
libtool_options_prep_result=$func_quote_result
|
libtool_options_prep_result=$func_quote_for_eval_result
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$_G_rc_lt_options_prep
|
$_G_rc_lt_options_prep
|
||||||
|
@ -2578,8 +2482,8 @@ libtool_parse_options ()
|
||||||
|
|
||||||
if $_G_rc_lt_parse_options; then
|
if $_G_rc_lt_parse_options; then
|
||||||
# save modified positional parameters for caller
|
# save modified positional parameters for caller
|
||||||
func_quote eval ${1+"$@"}
|
func_quote_for_eval ${1+"$@"}
|
||||||
libtool_parse_options_result=$func_quote_result
|
libtool_parse_options_result=$func_quote_for_eval_result
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$_G_rc_lt_parse_options
|
$_G_rc_lt_parse_options
|
||||||
|
@ -2639,8 +2543,8 @@ libtool_validate_options ()
|
||||||
}
|
}
|
||||||
|
|
||||||
# Pass back the unparsed argument list
|
# Pass back the unparsed argument list
|
||||||
func_quote eval ${1+"$@"}
|
func_quote_for_eval ${1+"$@"}
|
||||||
libtool_validate_options_result=$func_quote_result
|
libtool_validate_options_result=$func_quote_for_eval_result
|
||||||
}
|
}
|
||||||
func_add_hook func_validate_options libtool_validate_options
|
func_add_hook func_validate_options libtool_validate_options
|
||||||
|
|
||||||
|
@ -3606,8 +3510,8 @@ func_mode_compile ()
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
func_quote_arg pretty "$libobj"
|
func_quote_for_eval "$libobj"
|
||||||
test "X$libobj" != "X$func_quote_arg_result" \
|
test "X$libobj" != "X$func_quote_for_eval_result" \
|
||||||
&& $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
|
&& $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
|
||||||
&& func_warning "libobj name '$libobj' may not contain shell special characters."
|
&& func_warning "libobj name '$libobj' may not contain shell special characters."
|
||||||
func_dirname_and_basename "$obj" "/" ""
|
func_dirname_and_basename "$obj" "/" ""
|
||||||
|
@ -3680,8 +3584,8 @@ compiler."
|
||||||
|
|
||||||
func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
|
func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
|
||||||
srcfile=$func_to_tool_file_result
|
srcfile=$func_to_tool_file_result
|
||||||
func_quote_arg pretty "$srcfile"
|
func_quote_for_eval "$srcfile"
|
||||||
qsrcfile=$func_quote_arg_result
|
qsrcfile=$func_quote_for_eval_result
|
||||||
|
|
||||||
# Only build a PIC object if we are building libtool libraries.
|
# Only build a PIC object if we are building libtool libraries.
|
||||||
if test yes = "$build_libtool_libs"; then
|
if test yes = "$build_libtool_libs"; then
|
||||||
|
@ -4284,8 +4188,8 @@ func_mode_install ()
|
||||||
case $nonopt in *shtool*) :;; *) false;; esac
|
case $nonopt in *shtool*) :;; *) false;; esac
|
||||||
then
|
then
|
||||||
# Aesthetically quote it.
|
# Aesthetically quote it.
|
||||||
func_quote_arg pretty "$nonopt"
|
func_quote_for_eval "$nonopt"
|
||||||
install_prog="$func_quote_arg_result "
|
install_prog="$func_quote_for_eval_result "
|
||||||
arg=$1
|
arg=$1
|
||||||
shift
|
shift
|
||||||
else
|
else
|
||||||
|
@ -4295,8 +4199,8 @@ func_mode_install ()
|
||||||
|
|
||||||
# The real first argument should be the name of the installation program.
|
# The real first argument should be the name of the installation program.
|
||||||
# Aesthetically quote it.
|
# Aesthetically quote it.
|
||||||
func_quote_arg pretty "$arg"
|
func_quote_for_eval "$arg"
|
||||||
func_append install_prog "$func_quote_arg_result"
|
func_append install_prog "$func_quote_for_eval_result"
|
||||||
install_shared_prog=$install_prog
|
install_shared_prog=$install_prog
|
||||||
case " $install_prog " in
|
case " $install_prog " in
|
||||||
*[\\\ /]cp\ *) install_cp=: ;;
|
*[\\\ /]cp\ *) install_cp=: ;;
|
||||||
|
@ -4353,12 +4257,12 @@ func_mode_install ()
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Aesthetically quote the argument.
|
# Aesthetically quote the argument.
|
||||||
func_quote_arg pretty "$arg"
|
func_quote_for_eval "$arg"
|
||||||
func_append install_prog " $func_quote_arg_result"
|
func_append install_prog " $func_quote_for_eval_result"
|
||||||
if test -n "$arg2"; then
|
if test -n "$arg2"; then
|
||||||
func_quote_arg pretty "$arg2"
|
func_quote_for_eval "$arg2"
|
||||||
fi
|
fi
|
||||||
func_append install_shared_prog " $func_quote_arg_result"
|
func_append install_shared_prog " $func_quote_for_eval_result"
|
||||||
done
|
done
|
||||||
|
|
||||||
test -z "$install_prog" && \
|
test -z "$install_prog" && \
|
||||||
|
@ -4369,8 +4273,8 @@ func_mode_install ()
|
||||||
|
|
||||||
if test -n "$install_override_mode" && $no_mode; then
|
if test -n "$install_override_mode" && $no_mode; then
|
||||||
if $install_cp; then :; else
|
if $install_cp; then :; else
|
||||||
func_quote_arg pretty "$install_override_mode"
|
func_quote_for_eval "$install_override_mode"
|
||||||
func_append install_shared_prog " -m $func_quote_arg_result"
|
func_append install_shared_prog " -m $func_quote_for_eval_result"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -4666,8 +4570,8 @@ func_mode_install ()
|
||||||
relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
|
relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
|
||||||
|
|
||||||
$opt_quiet || {
|
$opt_quiet || {
|
||||||
func_quote_arg expand,pretty "$relink_command"
|
func_quote_for_expand "$relink_command"
|
||||||
eval "func_echo $func_quote_arg_result"
|
eval "func_echo $func_quote_for_expand_result"
|
||||||
}
|
}
|
||||||
if eval "$relink_command"; then :
|
if eval "$relink_command"; then :
|
||||||
else
|
else
|
||||||
|
@ -5446,8 +5350,7 @@ else
|
||||||
if test \"\$libtool_execute_magic\" != \"$magic\"; then
|
if test \"\$libtool_execute_magic\" != \"$magic\"; then
|
||||||
file=\"\$0\""
|
file=\"\$0\""
|
||||||
|
|
||||||
func_quote_arg pretty "$ECHO"
|
qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
|
||||||
qECHO=$func_quote_arg_result
|
|
||||||
$ECHO "\
|
$ECHO "\
|
||||||
|
|
||||||
# A function that is used when there is no print builtin or printf.
|
# A function that is used when there is no print builtin or printf.
|
||||||
|
@ -5457,7 +5360,7 @@ func_fallback_echo ()
|
||||||
\$1
|
\$1
|
||||||
_LTECHO_EOF'
|
_LTECHO_EOF'
|
||||||
}
|
}
|
||||||
ECHO=$qECHO
|
ECHO=\"$qECHO\"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Very basic option parsing. These options are (a) specific to
|
# Very basic option parsing. These options are (a) specific to
|
||||||
|
@ -6800,9 +6703,9 @@ func_mode_link ()
|
||||||
while test "$#" -gt 0; do
|
while test "$#" -gt 0; do
|
||||||
arg=$1
|
arg=$1
|
||||||
shift
|
shift
|
||||||
func_quote_arg pretty,unquoted "$arg"
|
func_quote_for_eval "$arg"
|
||||||
qarg=$func_quote_arg_unquoted_result
|
qarg=$func_quote_for_eval_unquoted_result
|
||||||
func_append libtool_args " $func_quote_arg_result"
|
func_append libtool_args " $func_quote_for_eval_result"
|
||||||
|
|
||||||
# If the previous option needs an argument, assign it.
|
# If the previous option needs an argument, assign it.
|
||||||
if test -n "$prev"; then
|
if test -n "$prev"; then
|
||||||
|
@ -7400,9 +7303,9 @@ func_mode_link ()
|
||||||
save_ifs=$IFS; IFS=,
|
save_ifs=$IFS; IFS=,
|
||||||
for flag in $args; do
|
for flag in $args; do
|
||||||
IFS=$save_ifs
|
IFS=$save_ifs
|
||||||
func_quote_arg pretty "$flag"
|
func_quote_for_eval "$flag"
|
||||||
func_append arg " $func_quote_arg_result"
|
func_append arg " $func_quote_for_eval_result"
|
||||||
func_append compiler_flags " $func_quote_arg_result"
|
func_append compiler_flags " $func_quote_for_eval_result"
|
||||||
done
|
done
|
||||||
IFS=$save_ifs
|
IFS=$save_ifs
|
||||||
func_stripname ' ' '' "$arg"
|
func_stripname ' ' '' "$arg"
|
||||||
|
@ -7416,10 +7319,10 @@ func_mode_link ()
|
||||||
save_ifs=$IFS; IFS=,
|
save_ifs=$IFS; IFS=,
|
||||||
for flag in $args; do
|
for flag in $args; do
|
||||||
IFS=$save_ifs
|
IFS=$save_ifs
|
||||||
func_quote_arg pretty "$flag"
|
func_quote_for_eval "$flag"
|
||||||
func_append arg " $wl$func_quote_arg_result"
|
func_append arg " $wl$func_quote_for_eval_result"
|
||||||
func_append compiler_flags " $wl$func_quote_arg_result"
|
func_append compiler_flags " $wl$func_quote_for_eval_result"
|
||||||
func_append linker_flags " $func_quote_arg_result"
|
func_append linker_flags " $func_quote_for_eval_result"
|
||||||
done
|
done
|
||||||
IFS=$save_ifs
|
IFS=$save_ifs
|
||||||
func_stripname ' ' '' "$arg"
|
func_stripname ' ' '' "$arg"
|
||||||
|
@ -7443,8 +7346,8 @@ func_mode_link ()
|
||||||
|
|
||||||
# -msg_* for osf cc
|
# -msg_* for osf cc
|
||||||
-msg_*)
|
-msg_*)
|
||||||
func_quote_arg pretty "$arg"
|
func_quote_for_eval "$arg"
|
||||||
arg=$func_quote_arg_result
|
arg=$func_quote_for_eval_result
|
||||||
;;
|
;;
|
||||||
|
|
||||||
# Flags to be passed through unchanged, with rationale:
|
# Flags to be passed through unchanged, with rationale:
|
||||||
|
@ -7464,12 +7367,13 @@ func_mode_link ()
|
||||||
# -specs=* GCC specs files
|
# -specs=* GCC specs files
|
||||||
# -stdlib=* select c++ std lib with clang
|
# -stdlib=* select c++ std lib with clang
|
||||||
# -fsanitize=* Clang/GCC memory and address sanitizer
|
# -fsanitize=* Clang/GCC memory and address sanitizer
|
||||||
|
# -fuse-ld=* Linker select flags for GCC
|
||||||
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
|
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
|
||||||
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
|
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
|
||||||
-O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
|
-O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
|
||||||
-specs=*|-fsanitize=*)
|
-specs=*|-fsanitize=*|-fuse-ld=*)
|
||||||
func_quote_arg pretty "$arg"
|
func_quote_for_eval "$arg"
|
||||||
arg=$func_quote_arg_result
|
arg=$func_quote_for_eval_result
|
||||||
func_append compile_command " $arg"
|
func_append compile_command " $arg"
|
||||||
func_append finalize_command " $arg"
|
func_append finalize_command " $arg"
|
||||||
func_append compiler_flags " $arg"
|
func_append compiler_flags " $arg"
|
||||||
|
@ -7490,15 +7394,15 @@ func_mode_link ()
|
||||||
continue
|
continue
|
||||||
else
|
else
|
||||||
# Otherwise treat like 'Some other compiler flag' below
|
# Otherwise treat like 'Some other compiler flag' below
|
||||||
func_quote_arg pretty "$arg"
|
func_quote_for_eval "$arg"
|
||||||
arg=$func_quote_arg_result
|
arg=$func_quote_for_eval_result
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
# Some other compiler flag.
|
# Some other compiler flag.
|
||||||
-* | +*)
|
-* | +*)
|
||||||
func_quote_arg pretty "$arg"
|
func_quote_for_eval "$arg"
|
||||||
arg=$func_quote_arg_result
|
arg=$func_quote_for_eval_result
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*.$objext)
|
*.$objext)
|
||||||
|
@ -7618,8 +7522,8 @@ func_mode_link ()
|
||||||
*)
|
*)
|
||||||
# Unknown arguments in both finalize_command and compile_command need
|
# Unknown arguments in both finalize_command and compile_command need
|
||||||
# to be aesthetically quoted because they are evaled later.
|
# to be aesthetically quoted because they are evaled later.
|
||||||
func_quote_arg pretty "$arg"
|
func_quote_for_eval "$arg"
|
||||||
arg=$func_quote_arg_result
|
arg=$func_quote_for_eval_result
|
||||||
;;
|
;;
|
||||||
esac # arg
|
esac # arg
|
||||||
|
|
||||||
|
@ -10131,8 +10035,8 @@ EOF
|
||||||
for cmd in $concat_cmds; do
|
for cmd in $concat_cmds; do
|
||||||
IFS=$save_ifs
|
IFS=$save_ifs
|
||||||
$opt_quiet || {
|
$opt_quiet || {
|
||||||
func_quote_arg expand,pretty "$cmd"
|
func_quote_for_expand "$cmd"
|
||||||
eval "func_echo $func_quote_arg_result"
|
eval "func_echo $func_quote_for_expand_result"
|
||||||
}
|
}
|
||||||
$opt_dry_run || eval "$cmd" || {
|
$opt_dry_run || eval "$cmd" || {
|
||||||
lt_exit=$?
|
lt_exit=$?
|
||||||
|
@ -10225,8 +10129,8 @@ EOF
|
||||||
eval cmd=\"$cmd\"
|
eval cmd=\"$cmd\"
|
||||||
IFS=$save_ifs
|
IFS=$save_ifs
|
||||||
$opt_quiet || {
|
$opt_quiet || {
|
||||||
func_quote_arg expand,pretty "$cmd"
|
func_quote_for_expand "$cmd"
|
||||||
eval "func_echo $func_quote_arg_result"
|
eval "func_echo $func_quote_for_expand_result"
|
||||||
}
|
}
|
||||||
$opt_dry_run || eval "$cmd" || {
|
$opt_dry_run || eval "$cmd" || {
|
||||||
lt_exit=$?
|
lt_exit=$?
|
||||||
|
@ -10700,12 +10604,12 @@ EOF
|
||||||
elif eval var_value=\$$var; test -z "$var_value"; then
|
elif eval var_value=\$$var; test -z "$var_value"; then
|
||||||
relink_command="$var=; export $var; $relink_command"
|
relink_command="$var=; export $var; $relink_command"
|
||||||
else
|
else
|
||||||
func_quote_arg pretty "$var_value"
|
func_quote_for_eval "$var_value"
|
||||||
relink_command="$var=$func_quote_arg_result; export $var; $relink_command"
|
relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
func_quote_arg pretty,unquoted "(cd `pwd`; $relink_command)"
|
relink_command="(cd `pwd`; $relink_command)"
|
||||||
relink_command=$func_quote_arg_unquoted_result
|
relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Only actually do things if not in dry run mode.
|
# Only actually do things if not in dry run mode.
|
||||||
|
@ -10945,14 +10849,13 @@ EOF
|
||||||
elif eval var_value=\$$var; test -z "$var_value"; then
|
elif eval var_value=\$$var; test -z "$var_value"; then
|
||||||
relink_command="$var=; export $var; $relink_command"
|
relink_command="$var=; export $var; $relink_command"
|
||||||
else
|
else
|
||||||
func_quote_arg pretty,unquoted "$var_value"
|
func_quote_for_eval "$var_value"
|
||||||
relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command"
|
relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
# Quote the link command for shipping.
|
# Quote the link command for shipping.
|
||||||
relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
|
relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
|
||||||
func_quote_arg pretty,unquoted "$relink_command"
|
relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
|
||||||
relink_command=$func_quote_arg_unquoted_result
|
|
||||||
if test yes = "$hardcode_automatic"; then
|
if test yes = "$hardcode_automatic"; then
|
||||||
relink_command=
|
relink_command=
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -4063,7 +4063,8 @@ _LT_EOF
|
||||||
if AC_TRY_EVAL(ac_compile); then
|
if AC_TRY_EVAL(ac_compile); then
|
||||||
# Now try to grab the symbols.
|
# Now try to grab the symbols.
|
||||||
nlist=conftest.nm
|
nlist=conftest.nm
|
||||||
if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
|
$ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD
|
||||||
|
if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then
|
||||||
# Try sorting and uniquifying the output.
|
# Try sorting and uniquifying the output.
|
||||||
if sort "$nlist" | uniq > "$nlist"T; then
|
if sort "$nlist" | uniq > "$nlist"T; then
|
||||||
mv -f "$nlist"T "$nlist"
|
mv -f "$nlist"T "$nlist"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#
|
#
|
||||||
# List of readers supported by the CCID driver
|
# List of readers supported by the CCID driver
|
||||||
# Generated: 2018-09-04
|
# Generated: 2019-07-31
|
||||||
#
|
#
|
||||||
# DO NOT EDIT BY HAND
|
# DO NOT EDIT BY HAND
|
||||||
|
|
||||||
|
@ -130,6 +130,7 @@
|
||||||
0x072F:0x1204:ACS ACR101 ICC Reader
|
0x072F:0x1204:ACS ACR101 ICC Reader
|
||||||
0x072F:0x221A:ACS ACR1251 Dual Reader
|
0x072F:0x221A:ACS ACR1251 Dual Reader
|
||||||
0x072F:0x223B:ACS ACR1252 Dual Reader
|
0x072F:0x223B:ACS ACR1252 Dual Reader
|
||||||
|
0x072F:0x223E:ACS ACR1252 Reader
|
||||||
0x072F:0x223F:ACS ACR1255U-J1
|
0x072F:0x223F:ACS ACR1255U-J1
|
||||||
0x072F:0x8201:ACS APG8201 PINhandy 1
|
0x072F:0x8201:ACS APG8201 PINhandy 1
|
||||||
0x072F:0x8202:ACS APG8201 USB Reader
|
0x072F:0x8202:ACS APG8201 USB Reader
|
||||||
|
@ -162,9 +163,13 @@
|
||||||
0x24DC:0x0201:Aladdin R.D. JCR-770
|
0x24DC:0x0201:Aladdin R.D. JCR-770
|
||||||
0x24DC:0x0401:Aladdin R.D. JC-WebPass (JC600)
|
0x24DC:0x0401:Aladdin R.D. JC-WebPass (JC600)
|
||||||
0x24DC:0x0402:Aladdin R.D. JaCarta
|
0x24DC:0x0402:Aladdin R.D. JaCarta
|
||||||
|
0x24DC:0x0428:Aladdin R.D. JaCartaReader
|
||||||
0x24DC:0x0501:Aladdin R.D. JaCarta U2F (JC602)
|
0x24DC:0x0501:Aladdin R.D. JaCarta U2F (JC602)
|
||||||
0x24DC:0x100F:Aladdin R.D. JaCarta Flash
|
0x24DC:0x100F:Aladdin R.D. JaCarta Flash
|
||||||
|
|
||||||
|
# Alcor Link
|
||||||
|
0x2CE3:0x9563:Alcor Link AK9563
|
||||||
|
|
||||||
# Alcor Micro
|
# Alcor Micro
|
||||||
0x058F:0x9522:Alcor Micro AU9522
|
0x058F:0x9522:Alcor Micro AU9522
|
||||||
|
|
||||||
|
@ -193,9 +198,13 @@
|
||||||
0x03EB:0x6012:ATMEL VaultIC420 Smart Object
|
0x03EB:0x6012:ATMEL VaultIC420 Smart Object
|
||||||
0x03EB:0x6014:ATMEL VaultIC440
|
0x03EB:0x6014:ATMEL VaultIC440
|
||||||
|
|
||||||
|
# AvestUA
|
||||||
|
0xC1A6:0x0131:AvestUA AvestKey
|
||||||
|
|
||||||
# Avtor
|
# Avtor
|
||||||
0x15CF:0x0019:Avtor SecureToken
|
0x15CF:0x0019:Avtor SecureToken
|
||||||
0x15CF:0x001D:Avtor SC Reader 371
|
0x15CF:0x001D:Avtor SC Reader 371
|
||||||
|
0x15CF:0x0020:Avtor SecureToken
|
||||||
|
|
||||||
# Axalto
|
# Axalto
|
||||||
0x04E6:0x511C:Axalto Reflex USB v3
|
0x04E6:0x511C:Axalto Reflex USB v3
|
||||||
|
@ -215,7 +224,10 @@
|
||||||
0x25DD:0x2351:Bit4id Digital DNA Key
|
0x25DD:0x2351:Bit4id Digital DNA Key
|
||||||
0x25DD:0x2361:Bit4id Digital-DNA Key BT
|
0x25DD:0x2361:Bit4id Digital-DNA Key BT
|
||||||
0x25DD:0x2362:Bit4id Digital-DNA Key
|
0x25DD:0x2362:Bit4id Digital-DNA Key
|
||||||
|
0x25DD:0x2371:Bit4id TokenME EVO v2
|
||||||
0x25DD:0x3111:Bit4id miniLector
|
0x25DD:0x3111:Bit4id miniLector
|
||||||
|
0x25DD:0x3211:Bit4id miniLector AIR EVO
|
||||||
|
0x25DD:0xB001:Bit4id miniLector Blue
|
||||||
|
|
||||||
# Bluink Ltd.
|
# Bluink Ltd.
|
||||||
0x2ABE:0x1003:Bluink Ltd. Bluink CCID
|
0x2ABE:0x1003:Bluink Ltd. Bluink CCID
|
||||||
|
@ -230,6 +242,9 @@
|
||||||
0x0A5C:0x5833:Broadcom Corp 5880
|
0x0A5C:0x5833:Broadcom Corp 5880
|
||||||
0x0A5C:0x5834:Broadcom Corp 5880
|
0x0A5C:0x5834:Broadcom Corp 5880
|
||||||
0x0A5C:0x5842:Broadcom Corp 58200
|
0x0A5C:0x5842:Broadcom Corp 58200
|
||||||
|
0x0A5C:0x5843:Broadcom Corp 58200
|
||||||
|
0x0A5C:0x5844:Broadcom Corp 58200
|
||||||
|
0x0A5C:0x5845:Broadcom Corp 58200
|
||||||
|
|
||||||
# C3PO
|
# C3PO
|
||||||
0x0783:0x0007:C3PO TLTC2USB
|
0x0783:0x0007:C3PO TLTC2USB
|
||||||
|
@ -245,6 +260,7 @@
|
||||||
|
|
||||||
# Certgate GmbH
|
# Certgate GmbH
|
||||||
0x2DFF:0xB601:Certgate GmbH AirID 2 USB
|
0x2DFF:0xB601:Certgate GmbH AirID 2 USB
|
||||||
|
0x2DFF:0xB602:Certgate GmbH ONEKEY ID 2 USB
|
||||||
|
|
||||||
# charismathics
|
# charismathics
|
||||||
0x19E7:0x0002:charismathics plug'n'crypt CCID token
|
0x19E7:0x0002:charismathics plug'n'crypt CCID token
|
||||||
|
@ -384,6 +400,10 @@
|
||||||
# HID
|
# HID
|
||||||
|
|
||||||
# HID Global
|
# HID Global
|
||||||
|
0x09C3:0x0028:HID Global Crescendo Key
|
||||||
|
0x09C3:0x0029:HID Global Crescendo Key
|
||||||
|
0x09C3:0x002B:HID Global Crescendo Key
|
||||||
|
0x09C3:0x002D:HID Global Crescendo Key
|
||||||
0x076B:0x3031:HID Global OMNIKEY 3x21 Smart Card Reader
|
0x076B:0x3031:HID Global OMNIKEY 3x21 Smart Card Reader
|
||||||
0x076B:0x5022:HID Global OMNIKEY 5022 Smart Card Reader
|
0x076B:0x5022:HID Global OMNIKEY 5022 Smart Card Reader
|
||||||
0x076B:0x5023:HID Global OMNIKEY 5023 Smart Card Reader
|
0x076B:0x5023:HID Global OMNIKEY 5023 Smart Card Reader
|
||||||
|
@ -422,6 +442,7 @@
|
||||||
0x04E6:0x581A:Identiv uTrust 3522 embd SE RFID Token
|
0x04E6:0x581A:Identiv uTrust 3522 embd SE RFID Token
|
||||||
0x04E6:0x581B:Identiv uTrust 2910 R Taglio SC Reader
|
0x04E6:0x581B:Identiv uTrust 2910 R Taglio SC Reader
|
||||||
0x04E6:0x581C:Identiv SCR35xx USB Smart Card Reader
|
0x04E6:0x581C:Identiv SCR35xx USB Smart Card Reader
|
||||||
|
0x04E6:0x581D:Identiv SCR3500 C Contact Reader
|
||||||
|
|
||||||
# Identive
|
# Identive
|
||||||
0x04E6:0x5710:Identive CLOUD 2700 F Smart Card Reader
|
0x04E6:0x5710:Identive CLOUD 2700 F Smart Card Reader
|
||||||
|
@ -441,6 +462,9 @@
|
||||||
0x03EB:0x9308:IIT E.Key Crystal-1
|
0x03EB:0x9308:IIT E.Key Crystal-1
|
||||||
0x03EB:0x9324:IIT E.Key Almaz-1C
|
0x03EB:0x9324:IIT E.Key Almaz-1C
|
||||||
|
|
||||||
|
# InfoCert
|
||||||
|
0x2FD2:0x0100:InfoCert WirelessKey
|
||||||
|
|
||||||
# InfoThink
|
# InfoThink
|
||||||
0x1FC9:0x0102:InfoThink IT-102MU Reader
|
0x1FC9:0x0102:InfoThink IT-102MU Reader
|
||||||
0x1403:0x7506:InfoThink IT-500U Reader
|
0x1403:0x7506:InfoThink IT-500U Reader
|
||||||
|
@ -540,6 +564,7 @@
|
||||||
# NXP
|
# NXP
|
||||||
0x1FC9:0x0107:NXP Pegoda 2 N
|
0x1FC9:0x0107:NXP Pegoda 2 N
|
||||||
0x1FC9:0x010B:NXP PR533
|
0x1FC9:0x010B:NXP PR533
|
||||||
|
0x1FC9:0x0117:NXP PN7462AU CCID
|
||||||
|
|
||||||
# OBERTHUR TECHNOLOGIES
|
# OBERTHUR TECHNOLOGIES
|
||||||
0x1A74:0xB111:OBERTHUR TECHNOLOGIES ID-ONE TOKEN SLIM v2
|
0x1A74:0xB111:OBERTHUR TECHNOLOGIES ID-ONE TOKEN SLIM v2
|
||||||
|
@ -592,6 +617,9 @@
|
||||||
# Rocketek
|
# Rocketek
|
||||||
0x14CD:0x8166:Rocketek RT-SCR1
|
0x14CD:0x8166:Rocketek RT-SCR1
|
||||||
|
|
||||||
|
# Route1
|
||||||
|
0x13FE:0xC831:Route1 MobiKEY Fusion3
|
||||||
|
|
||||||
# SafeNet
|
# SafeNet
|
||||||
0x0529:0x0602:SafeNet eToken 7300
|
0x0529:0x0602:SafeNet eToken 7300
|
||||||
0x0529:0x0620:SafeNet eToken 5100
|
0x0529:0x0620:SafeNet eToken 5100
|
||||||
|
@ -631,6 +659,9 @@
|
||||||
# Softforum Co., Ltd
|
# Softforum Co., Ltd
|
||||||
0x04E8:0x0007:Softforum Co., Ltd XecureHSM
|
0x04E8:0x0007:Softforum Co., Ltd XecureHSM
|
||||||
|
|
||||||
|
# SPECINFOSYSTEMS
|
||||||
|
0x316E:0x0001:SPECINFOSYSTEMS DIAMOND token
|
||||||
|
|
||||||
# SpringCard
|
# SpringCard
|
||||||
0x1C34:0x7113:SpringCard CrazyWriter
|
0x1C34:0x7113:SpringCard CrazyWriter
|
||||||
0x1C34:0x7121:SpringCard CSB6 Basic
|
0x1C34:0x7121:SpringCard CSB6 Basic
|
||||||
|
|
|
@ -1303,7 +1303,7 @@ int InterruptRead(int reader_index, int timeout /* in ms */)
|
||||||
if (usbDevice[reader_index].multislot_extension != NULL)
|
if (usbDevice[reader_index].multislot_extension != NULL)
|
||||||
return Multi_InterruptRead(reader_index, timeout);
|
return Multi_InterruptRead(reader_index, timeout);
|
||||||
|
|
||||||
DEBUG_PERIODIC2("before (%d)", reader_index);
|
DEBUG_PERIODIC3("before (%d), timeout: %d ms", reader_index, timeout);
|
||||||
|
|
||||||
transfer = libusb_alloc_transfer(0);
|
transfer = libusb_alloc_transfer(0);
|
||||||
if (NULL == transfer)
|
if (NULL == transfer)
|
||||||
|
|
|
@ -44,7 +44,9 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
(__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) || \
|
(__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) || \
|
||||||
defined(__SUNPRO_C) && __SUNPRO_C >= 0x590
|
defined(__SUNPRO_C) && __SUNPRO_C >= 0x590
|
||||||
#define INTERNAL __attribute__ ((visibility("hidden")))
|
#define INTERNAL __attribute__ ((visibility("hidden")))
|
||||||
|
#ifndef PCSC_API
|
||||||
#define PCSC_API __attribute__ ((visibility("default")))
|
#define PCSC_API __attribute__ ((visibility("default")))
|
||||||
|
#endif
|
||||||
#elif defined(__SUNPRO_C) && __SUNPRO_C >= 0x550
|
#elif defined(__SUNPRO_C) && __SUNPRO_C >= 0x550
|
||||||
/* http://wikis.sun.com/display/SunStudio/Macros+for+Shared+Library+Symbol+Visibility */
|
/* http://wikis.sun.com/display/SunStudio/Macros+for+Shared+Library+Symbol+Visibility */
|
||||||
#define INTERNAL __hidden
|
#define INTERNAL __hidden
|
||||||
|
|
|
@ -101,7 +101,8 @@ int main(int argc, char *argv[])
|
||||||
r = libusb_open(dev, &handle);
|
r = libusb_open(dev, &handle);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
{
|
{
|
||||||
(void)fprintf(stderr, "Can't libusb_open(): %s\n", strerror(errno));
|
(void)fprintf(stderr, "Can't libusb_open(): %s\n",
|
||||||
|
libusb_error_name(r));
|
||||||
if (getuid())
|
if (getuid())
|
||||||
{
|
{
|
||||||
(void)fprintf(stderr,
|
(void)fprintf(stderr,
|
||||||
|
@ -196,7 +197,7 @@ again:
|
||||||
(void)fprintf(stderr,
|
(void)fprintf(stderr,
|
||||||
"Can't claim interface (bus %d, device %d): %s\n",
|
"Can't claim interface (bus %d, device %d): %s\n",
|
||||||
libusb_get_bus_number(dev), libusb_get_device_address(dev),
|
libusb_get_bus_number(dev), libusb_get_device_address(dev),
|
||||||
strerror(errno));
|
libusb_error_name(r));
|
||||||
(void)libusb_close(handle);
|
(void)libusb_close(handle);
|
||||||
|
|
||||||
if (EBUSY == errno)
|
if (EBUSY == errno)
|
||||||
|
@ -421,7 +422,7 @@ static int ccid_parse_interface_descriptor(libusb_device_handle *handle,
|
||||||
/* we got an error? */
|
/* we got an error? */
|
||||||
if (n <= 0)
|
if (n <= 0)
|
||||||
{
|
{
|
||||||
(void)(void)printf(" IFD does not support GET CLOCK FREQUENCIES request: %s\n", strerror(errno));
|
(void)(void)printf(" IFD does not support GET CLOCK FREQUENCIES request: %s\n", libusb_error_name(n));
|
||||||
if (EBUSY == errno)
|
if (EBUSY == errno)
|
||||||
{
|
{
|
||||||
(void)fprintf(stderr,
|
(void)fprintf(stderr,
|
||||||
|
@ -473,7 +474,7 @@ static int ccid_parse_interface_descriptor(libusb_device_handle *handle,
|
||||||
/* we got an error? */
|
/* we got an error? */
|
||||||
if (n <= 0)
|
if (n <= 0)
|
||||||
(void)printf(" IFD does not support GET_DATA_RATES request: %s\n",
|
(void)printf(" IFD does not support GET_DATA_RATES request: %s\n",
|
||||||
strerror(errno));
|
libusb_error_name(n));
|
||||||
else
|
else
|
||||||
if (n % 4) /* not a multiple of 4 */
|
if (n % 4) /* not a multiple of 4 */
|
||||||
(void)printf(" wrong size for GET_DATA_RATES: %d\n", n);
|
(void)printf(" wrong size for GET_DATA_RATES: %d\n", n);
|
||||||
|
|
|
@ -44,8 +44,10 @@
|
||||||
|
|
||||||
/* disable asserts */
|
/* disable asserts */
|
||||||
#ifndef SIMCLIST_DEBUG
|
#ifndef SIMCLIST_DEBUG
|
||||||
|
#ifndef NDEBUG
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
@ -1222,7 +1224,7 @@ int list_dump_filedescriptor(const list_t *restrict l, int fd, size_t *restrict
|
||||||
/* speculation confirmed */
|
/* speculation confirmed */
|
||||||
WRITE_ERRCHECK(fd, ser_buf, bufsize);
|
WRITE_ERRCHECK(fd, ser_buf, bufsize);
|
||||||
} else { /* speculation found broken */
|
} else { /* speculation found broken */
|
||||||
WRITE_ERRCHECK(fd, & bufsize, sizeof(size_t));
|
WRITE_ERRCHECK(fd, &bufsize, sizeof(bufsize));
|
||||||
WRITE_ERRCHECK(fd, ser_buf, bufsize);
|
WRITE_ERRCHECK(fd, ser_buf, bufsize);
|
||||||
}
|
}
|
||||||
free(ser_buf);
|
free(ser_buf);
|
||||||
|
@ -1245,7 +1247,7 @@ int list_dump_filedescriptor(const list_t *restrict l, int fd, size_t *restrict
|
||||||
}
|
}
|
||||||
WRITE_ERRCHECK(fd, x->data, bufsize);
|
WRITE_ERRCHECK(fd, x->data, bufsize);
|
||||||
} else {
|
} else {
|
||||||
WRITE_ERRCHECK(fd, &bufsize, sizeof(size_t));
|
WRITE_ERRCHECK(fd, &bufsize, sizeof(bufsize));
|
||||||
WRITE_ERRCHECK(fd, x->data, bufsize);
|
WRITE_ERRCHECK(fd, x->data, bufsize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1337,7 +1339,7 @@ int list_restore_filedescriptor(list_t *restrict l, int fd, size_t *restrict len
|
||||||
if (NULL == buf)
|
if (NULL == buf)
|
||||||
return -1;
|
return -1;
|
||||||
for (cnt = 0; cnt < header.numels; cnt++) {
|
for (cnt = 0; cnt < header.numels; cnt++) {
|
||||||
READ_ERRCHECK(fd, buf, header.elemlen);
|
READ_ERRCHECK(fd, buf, (ssize_t) header.elemlen);
|
||||||
list_append(l, l->attrs.unserializer(buf, & elsize));
|
list_append(l, l->attrs.unserializer(buf, & elsize));
|
||||||
totmemorylen += elsize;
|
totmemorylen += elsize;
|
||||||
}
|
}
|
||||||
|
@ -1347,7 +1349,7 @@ int list_restore_filedescriptor(list_t *restrict l, int fd, size_t *restrict len
|
||||||
buf = malloc(header.elemlen);
|
buf = malloc(header.elemlen);
|
||||||
if (NULL == buf)
|
if (NULL == buf)
|
||||||
return -1;
|
return -1;
|
||||||
READ_ERRCHECK(fd, buf, header.elemlen);
|
READ_ERRCHECK(fd, buf, (ssize_t) header.elemlen);
|
||||||
list_append(l, buf);
|
list_append(l, buf);
|
||||||
}
|
}
|
||||||
totmemorylen = header.numels * header.elemlen;
|
totmemorylen = header.numels * header.elemlen;
|
||||||
|
@ -1362,7 +1364,7 @@ int list_restore_filedescriptor(list_t *restrict l, int fd, size_t *restrict len
|
||||||
buf = malloc((size_t)elsize);
|
buf = malloc((size_t)elsize);
|
||||||
if (NULL == buf)
|
if (NULL == buf)
|
||||||
return -1;
|
return -1;
|
||||||
READ_ERRCHECK(fd, buf, elsize);
|
READ_ERRCHECK(fd, buf, (ssize_t) elsize);
|
||||||
totreadlen += elsize;
|
totreadlen += elsize;
|
||||||
list_append(l, l->attrs.unserializer(buf, & elsize));
|
list_append(l, l->attrs.unserializer(buf, & elsize));
|
||||||
totmemorylen += elsize;
|
totmemorylen += elsize;
|
||||||
|
@ -1374,7 +1376,7 @@ int list_restore_filedescriptor(list_t *restrict l, int fd, size_t *restrict len
|
||||||
buf = malloc(elsize);
|
buf = malloc(elsize);
|
||||||
if (NULL == buf)
|
if (NULL == buf)
|
||||||
return -1;
|
return -1;
|
||||||
READ_ERRCHECK(fd, buf, elsize);
|
READ_ERRCHECK(fd, buf, (ssize_t) elsize);
|
||||||
totreadlen += elsize;
|
totreadlen += elsize;
|
||||||
list_append(l, buf);
|
list_append(l, buf);
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,9 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#ifndef NDEBUG
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
|
#endif
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include "simclist.h"
|
#include "simclist.h"
|
||||||
|
|
Loading…
Reference in New Issue