From 56c8dcf98f3a866ae87f07db3224b9277cb1ce66 Mon Sep 17 00:00:00 2001 From: Pavel A Date: Mon, 30 Mar 2015 00:03:51 +0300 Subject: [PATCH] Fixed bug in hiddata.* --- commandline/hiddata_libusb01.c | 6 +++++- commandline/hiddata_mswin.c | 10 ++++++++-- commandline/hiddata_osx.c | 6 +++++- commandline/usbrelay-cmd.c | 4 +++- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/commandline/hiddata_libusb01.c b/commandline/hiddata_libusb01.c index b21aa80..537374c 100644 --- a/commandline/hiddata_libusb01.c +++ b/commandline/hiddata_libusb01.c @@ -203,12 +203,16 @@ int usbhidStrerror_r( int err, char *buf, int len) const char *s; switch (err) { case USBHID_ERR_ACCESS: s = "Access to device denied"; + break; case USBHID_ERR_NOTFOUND: s = "The specified device was not found"; + break; case USBHID_ERR_IO: s = "Communication error with device"; + break; case USBHID_ERR_IO_HID: s = "HID I/O error with device"; + break; default: s = ""; } - + return snprintf(buf, len, "%s", s); } diff --git a/commandline/hiddata_mswin.c b/commandline/hiddata_mswin.c index d556f8b..ebcadfb 100644 --- a/commandline/hiddata_mswin.c +++ b/commandline/hiddata_mswin.c @@ -30,7 +30,9 @@ #ifdef _MSC_VER #pragma comment(lib, "setupapi") #pragma comment(lib, "hid") +#if _MSC_VER < 1900 /* before VS2015 */ #define snprintf _snprintf +#endif /* VS2015 */ #else /* GCC, Mingw... */ #endif /*_MSC_VER*/ @@ -172,7 +174,7 @@ int usbhidSetReport(USBDEVHANDLE usbh, char *buffer, int len) int usbhidGetReport(USBDEVHANDLE usbh, int reportNumber, char *buffer, int *len) { BOOLEAN rval = 0; - buffer[0] = reportNumber; + buffer[0] = (char)reportNumber; rval = HidD_GetFeature((HANDLE)usbh, buffer, *len); return rval == 0 ? USBHID_ERR_IO_HID : 0; } @@ -183,12 +185,16 @@ int usbhidStrerror_r( int err, char *buf, int len) const char *s; switch (err) { case USBHID_ERR_ACCESS: s = "Access to device denied"; + break; case USBHID_ERR_NOTFOUND: s = "The specified device was not found"; + break; case USBHID_ERR_IO: s = "Communication error with device"; + break; case USBHID_ERR_IO_HID: s = "HID I/O error with device"; + break; default: s = ""; } - + return snprintf(buf, len, "%s", s); } diff --git a/commandline/hiddata_osx.c b/commandline/hiddata_osx.c index 803961b..67e5adc 100644 --- a/commandline/hiddata_osx.c +++ b/commandline/hiddata_osx.c @@ -257,12 +257,16 @@ int usbhidStrerror_r( int err, char *buf, int len) const char *s; switch (err) { case USBHID_ERR_ACCESS: s = "Access to device denied"; + break; case USBHID_ERR_NOTFOUND: s = "The specified device was not found"; + break; case USBHID_ERR_IO: s = "Communication error with device"; + break; case USBHID_ERR_IO_HID: s = "HID I/O error with device"; + break; default: s = ""; } - + return snprintf(buf, len, "%s", s); } diff --git a/commandline/usbrelay-cmd.c b/commandline/usbrelay-cmd.c index 421997b..3d98398 100644 --- a/commandline/usbrelay-cmd.c +++ b/commandline/usbrelay-cmd.c @@ -81,6 +81,8 @@ static int enumFunc(USBDEVHANDLE dev, void *context) int num = 0; int i; + (context); // ~ unreferenced warning + err = usbhidGetVendorString(dev, buffer, sizeof(buffer)); if ( err || 0 != strcmp( buffer, vendorName) ) { @@ -94,7 +96,7 @@ static int enumFunc(USBDEVHANDLE dev, void *context) } i = (int)strlen(buffer); - if ( i != strlen(productName) + 1 ) + if ( i != (int)strlen(productName) + 1 ) { goto next; } -- 2.25.1