Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVojtech Kral <vojtech@kral.hk>2018-05-07 13:05:51 +0300
committerVojtech Kral <vojtech@kral.hk>2018-05-21 19:58:22 +0300
commit3d09f2a980af4df03fb8950537d1bcb92f87a94d (patch)
treea50b31fae667368a32c8f38077ac04168b54d8d2 /xs/src/avrdude
parent07817c8ee53e1690d0de8e848fc4b42388b630a5 (diff)
avrdude: bugfixes
Diffstat (limited to 'xs/src/avrdude')
-rw-r--r--xs/src/avrdude/CMakeLists.txt1
-rw-r--r--xs/src/avrdude/main.c7
-rw-r--r--xs/src/avrdude/wiring.c4
3 files changed, 9 insertions, 3 deletions
diff --git a/xs/src/avrdude/CMakeLists.txt b/xs/src/avrdude/CMakeLists.txt
index c74884057..b971452ee 100644
--- a/xs/src/avrdude/CMakeLists.txt
+++ b/xs/src/avrdude/CMakeLists.txt
@@ -1,6 +1,7 @@
remove_definitions(-D_UNICODE -DUNICODE)
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(AVRDUDE_SOURCES
diff --git a/xs/src/avrdude/main.c b/xs/src/avrdude/main.c
index 03c237d75..02feb079b 100644
--- a/xs/src/avrdude/main.c
+++ b/xs/src/avrdude/main.c
@@ -45,6 +45,8 @@
#if !defined(WIN32NATIVE)
# include <sys/time.h>
+# include <sys/types.h>
+# include <sys/stat.h>
#endif
#include "avrdude.h"
@@ -91,7 +93,7 @@ avrdude_message_handler_t avrdude_message_handler_set(avrdude_message_handler_t
int avrdude_message(const int msglvl, const char *format, ...)
{
static const char *format_error = "avrdude_message: Could not format message";
-
+
int rc = 0;
va_list ap;
if (verbose >= msglvl) {
@@ -478,7 +480,7 @@ int avrdude_main(int argc, char * argv [], const char *sys_config)
// strcat(sys_config, "/");
// strcat(sys_config, "avrdude.conf");
-// usr_config[0] = 0;
+ usr_config[0] = 0;
// homedir = getenv("HOME");
// if (homedir != NULL) {
// strcpy(usr_config, homedir);
@@ -507,6 +509,7 @@ int avrdude_main(int argc, char * argv [], const char *sys_config)
/*
* process command line arguments
*/
+ optind = 1; // Reset getopt, makes it possible to use it multiple times
while ((ch = getopt(argc,argv,"?b:B:c:C:DeE:Fi:l:np:OP:qstU:uvVx:yY:")) != -1) {
switch (ch) {
diff --git a/xs/src/avrdude/wiring.c b/xs/src/avrdude/wiring.c
index 1dc4d6a68..395459762 100644
--- a/xs/src/avrdude/wiring.c
+++ b/xs/src/avrdude/wiring.c
@@ -151,7 +151,9 @@ static int wiring_open(PROGRAMMER * pgm, char * port)
strcpy(pgm->port, port);
pinfo.baud = pgm->baudrate ? pgm->baudrate: 115200;
- serial_open(port, pinfo, &pgm->fd);
+ if (serial_open(port, pinfo, &pgm->fd) < 0) {
+ return -1;
+ }
/* If we have a snoozetime, then we wait and do NOT toggle DTR/RTS */