Commit Graph

238 Commits

Author SHA1 Message Date
Uwe Hermann 23e7fa372a Fix two compiler warnings on platforms without enumeration support.
serialport.c: In function 'sp_list_ports':
  serialport.c:326:6: warning: unused variable 'ret' [-Wunused-variable]
    int ret;
        ^
  serialport.c:325:19: warning: unused variable 'list' [-Wunused-variable]
    struct sp_port **list;
                     ^
2015-04-03 22:11:07 +02:00
Uwe Hermann ac323d80e0 add_handle(): Fix a realloc() related issue. 2015-04-03 22:02:42 +02:00
Uwe Hermann e019e72ec0 Fix a compiler warning.
This fixes the following scan-build warning:

  serialport.c: In function 'sp_list_ports':
  serialport.c:354:1: warning: control reaches end of non-void function [-Wreturn-type]
2015-04-03 20:50:22 +02:00
Uwe Hermann b344a40bb2 Fix indentation of a switch(). 2015-04-03 17:51:47 +02:00
Uwe Hermann 948f63f0fd add_handle(): Fix a memory leak.
This fixes the following scan-build warning:

  serialport.c:1170:3: warning: Potential leak of memory pointed to by 'new_handles'
                  RETURN_ERROR(SP_ERR_MEM, "Mask array realloc() failed");
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2015-04-03 17:51:41 +02:00
Uwe Hermann 5122d60849 Use libtool's -no-undefined option on all platforms. 2015-04-03 17:48:14 +02:00
Martin Ling 8d12e620f2 Clarify sp_list_ports() code.
This also fixes the following scan-build warning:

  serialport.c:335:15: warning: Result of 'malloc' is converted to a
  pointer of type 'struct sp_port *', which is incompatible with sizeof
  operand type 'struct sp_port **'
          if (!(list = malloc(sizeof(struct sp_port **))))
                       ^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
2015-04-03 17:46:26 +02:00
Martin Ling 34442106ef windows: Set fAbortOnError=FALSE.
Since we're not handling and clearing receive errors (framing, parity and
overrun), we should turn them off to avoid crashing out with
ERROR_OPERATION_ABORTED in various calls if they occur. Invalid data
will then simply not end up in the buffer. This is consistent with our
current behaviour on posix/termios systems.

It might be nice to be able to inform calling code about receive errors, but I
can't see a good way to do this in a cross-platform way at the moment.

This fixes (parts of) bug #341.
2015-03-29 22:18:46 +02:00
Martin Ling 47fcf8ec85 windows: Revise management of WaitCommEvent() operations.
This fixes (at least parts of) bug #341.
2015-03-29 22:18:46 +02:00
Uwe Hermann 6c6aebe78c Make std_baudrates[] static (only used in one file). 2015-03-26 23:57:56 +01:00
Uwe Hermann dc422c04af Various cosmetic and consistency fixes. 2015-03-26 23:57:56 +01:00
Uwe Hermann 2b40f81454 libserialport_internal.h: Add #include guard. 2015-03-26 23:57:56 +01:00
Uwe Hermann cfa5af67fd Fix some typos. 2015-03-26 23:57:55 +01:00
Uwe Hermann 64155cba8a linux_termios.h: Add missing #include of "config.h". 2015-03-25 14:52:54 +01:00
Martin Ling 7c081505e5 Generate a config.h rather than passing defines on command line.
Fixes bug #553.
2015-03-24 23:15:32 +00:00
Uwe Hermann 7c1101dc08 Fix misleading snprintf() arguments. 2015-02-20 18:57:08 +01:00
Uffe Jakobsen ea17bfca3d If present, add usb_serial to description for better identification 2015-02-20 18:54:12 +01:00
Uffe Jakobsen 5497520891 Handle enumeration of native UART ports on FreeBSD 2015-02-16 23:25:14 +01:00
Uffe Jakobsen ccd512d51c Implement FreeBSD OS-specific serial port detection and query 2015-02-15 21:28:15 +01:00
Martin Ling f446cfbf65 windows: Fix restart of RX/error wait operation after reads.
This fixes bug #421.
2015-02-15 20:52:45 +01:00
Boris Gjenero e31f2c6b8b Fix free() of uninitialized pointer.
Explicitly set port->usb_path to NULL, otherwise a free(port->usb_path)
can happen where port->usb_path is uninitialized.

This closes bug #512.
2014-12-05 18:42:43 +01:00
Aurelien Jacobs b328a48b0f windows: Properly handle return value of SetupDiOpenDevRegKey().
This fixes bug #499.
2014-11-27 17:42:28 +01:00
Martin Ling 59182fbbbf linux: Check for BOTHER macro at configure time.
This fixes bug #363.
2014-11-01 18:36:09 +01:00
Janne Huttunen ad7498553c Flush only the requested buffers
Fix the sp_flush() so that it flushes only the requested buffers
also in unix.
2014-10-12 21:38:03 +02:00
Bert Vermeulen d66bbceaa7 Fix typos. 2014-10-05 02:38:35 +02:00
Martin Ling 78940e6921 windows: Fix compile issues with multiply or not defined GUIDs.
This fixes bug #416.
2014-09-25 23:04:06 +02:00
Aurelien Jacobs 6c444ade55 windows: Indentation (cosmetics only). 2014-09-24 12:54:36 +02:00
Aurelien Jacobs 7aeb6736bd windows: Fix various memory leaks.
This fixes bug #419.
2014-09-24 12:52:21 +02:00
Aurelien Jacobs 276ef1b92f Add SP_MODE_READ_WRITE enum value. 2014-09-20 21:24:31 +02:00
Uwe Hermann eb82be98a7 README: Add URL to the libserialport website. 2014-09-07 19:31:23 +02:00
Uwe Hermann a46ee5b4d7 README: Mention that only MinGW-w64 works (but not MinGW). 2014-09-07 19:27:02 +02:00
Michael B. Trausch da8730199a windows: -no-undefined is required to make a DLL. 2014-09-07 19:18:22 +02:00
Michael B. Trausch 6692d8c13f windows: Add -lsetupapi when building for WIN32. 2014-09-07 19:18:19 +02:00
Michael B. Trausch d179da05c0 windows: Include proper GUID defining header to fix build.
The initguid.h header must appear early or it does not have
an effect, at least on cross-build from Linux.
2014-09-07 18:51:04 +02:00
Aurelien Jacobs 653cef3ab1 linux: remove readlinkat() dependency 2014-09-04 20:13:55 +02:00
Aurelien Jacobs 546e9ae5c5 linux_termios: fix return types to actually match returned values
This fixes the following warning :

linux_termios.c: In function 'get_termios_get_ioctl':
linux_termios.c:42:2: warning: overflow in implicit constant conversion [-Woverflow]
  return TCGETS2;
  ^

This fixes bug #396.
2014-09-04 20:13:55 +02:00
Uwe Hermann 23ef3bf125 Fix Mac OS X build (untested). 2014-08-27 14:56:19 +02:00
Uwe Hermann d38c7d2c70 Fix Windows build. 2014-08-27 14:53:19 +02:00
Martin Ling 0666ccc7ca linux: Fix warning by marking vid, pid variables unsigned. 2014-08-24 14:08:00 +01:00
Martin Ling 7f450f46bd Compile with -pedantic. 2014-08-24 14:06:21 +01:00
Martin Ling c51b846eee linux: Define feature macros to get required functions.
This is needed to build with -std=c99.
2014-08-24 14:06:21 +01:00
Martin Ling 7890cef6cf Revise debug macros to work in strict C99. 2014-08-24 14:06:21 +01:00
Martin Ling 9caa2e86aa Specialise RETURN_VALUE macro into RETURN_{INT,STRING,POINTER}.
This avoids the need to pass the required format string on every
call and also eliminates the need for the non-standard typeof() call.
2014-08-24 13:31:20 +01:00
Antti Nykanen 79a8004637 libserialport.h.in: remove trailing commas in enum definitions
This makes it easier to use libserialport on projects that build with
the GCC -pedantic flag enabled.
2014-08-24 11:56:45 +01:00
Bert Vermeulen 942a6d349e Bump package version to 0.2.0. 2014-08-20 23:40:19 +02:00
Aurelien Jacobs f3ccf157cb Rename sp_get_signals() parameter to avoid name clash with Qt headers. 2014-08-20 22:39:29 +02:00
Uwe Hermann 900904638b configure.ac: We no longer need to set WINVER explicitly.
Since we now require MinGW-w64, we no longer have to set WINVER manually,
since MinGW-w64 defaults to WINVER=0x0502 (which corresponds to
Windows Server 2003 SP1 / Windows XP SP2 apparently, which is fine for us).
2014-08-05 21:22:59 +02:00
Uwe Hermann 34906a229b windows.c: Remove MinGW workarounds, require MinGW-w64 instead.
We're switching from MinGW (i686-pc-mingw32.static in MXE)...

  http://mingw.org/

...to MinGW-w64 (i686-w64-mingw32.static in MXE):

  http://mingw-w64.sourceforge.net/

The latter is a fork which nowadays seems to be more active and also to
have a more complete set of win32 API headers and libs.

History:
http://sourceforge.net/p/mingw-w64/wiki2/History/

This closes bug #393.
2014-08-05 21:22:50 +02:00
Uwe Hermann 8eb18f7b5a windows.c: Define a bunch of stuff that's not in MinGW, yet.
Without these defineѕ the build fails with various (many) compile errors.
2014-07-31 23:14:35 +02:00
Uwe Hermann 9a8d04bca6 configure.ac: MinGW build fix (setting WINVER=0x0501).
Without this the build fails with:

  windows.c:40:43: error: 'WC_NO_BEST_FIT_CHARS' undeclared (first use in
  this function)
2014-07-31 23:11:40 +02:00