chiark / gitweb /
Fixed a small bug in the ISR code where it was looking for the gpio program.
authorGordon Henderson <projects@drogon.net>
Fri, 27 Jun 2014 09:55:39 +0000 (10:55 +0100)
committerGordon Henderson <projects@drogon.net>
Fri, 27 Jun 2014 09:55:39 +0000 (10:55 +0100)
Should now work correctly on Arch, or other systems that install gpio as
/usr/bin/gpio.

gpio/gpio.c
wiringPi/wiringPi.c

index b2f9953c67dd6b46f19baea7c577f489ae85b9b7..b9d1799853ee7ff5d26e0d6a9ec4a7be913633fd 100644 (file)
@@ -55,7 +55,7 @@ extern void doPins       (void) ;
 #  define      FALSE   (1==2)
 #endif
 
-#define        VERSION         "2.15"
+#define        VERSION         "2.16"
 #define        I2CDETECT       "/usr/sbin/i2cdetect"
 
 int wpMode ;
index 63a89465f274449e8956b98b5ea7aa2ebdc094a0..f0e828265946387a112f4ca0bda34c3868f373dc 100644 (file)
@@ -1472,12 +1472,12 @@ int wiringPiISR (int pin, int mode, void (*function)(void))
 
     if (pid == 0)      // Child, exec
     {
-      if (access ("/usr/local/bin/gpio", X_OK))
+      /**/ if (access ("/usr/local/bin/gpio", X_OK) == 0)
       {
        execl ("/usr/local/bin/gpio", "gpio", "edge", pinS, modeS, (char *)NULL) ;
        return wiringPiFailure (WPI_FATAL, "wiringPiISR: execl failed: %s\n", strerror (errno)) ;
       }
-      else if (access ("/usr/bin/gpio", X_OK))
+      else if (access ("/usr/bin/gpio", X_OK) == 0)
       {
        execl ("/usr/bin/gpio", "gpio", "edge", pinS, modeS, (char *)NULL) ;
        return wiringPiFailure (WPI_FATAL, "wiringPiISR: execl failed: %s\n", strerror (errno)) ;