Blob Blame History Raw
--- apmd-3.2.2.orig/apm.c.foo	2005-03-16 17:23:14.000000000 -0500
+++ apmd-3.2.2.orig/apm.c	2005-03-16 17:23:44.000000000 -0500
@@ -38,7 +38,7 @@
 #define IGNORE 2
 #define NOIGNORE 3
 
-void change_state(int mode)
+int change_state(int mode)
 {
     int fd;
     time_t then, now;
@@ -48,7 +48,7 @@
     if (fd < 0)
     {
 	fprintf(stderr, "Cannot open APM device: %s\n", strerror(errno));
-	exit(1);
+	return (1);
     }
     time(&then);
     switch (mode)
@@ -78,6 +78,7 @@
 	time(&now);
 
     apm_close(fd);
+    return error;
 }
 
 void usage(void)
@@ -135,12 +136,10 @@
 	    break;
 #ifdef APM_IOC_IGNORE		/* detect kernel support of IGNORE/NOIGNORE functions */
 	case 'i':
-	    change_state(IGNORE);
-	    exit(0);
+	    exit(change_state(IGNORE));
 	    break;
 	case 'n':
-	    change_state(NOIGNORE);
-	    exit(0);
+	    exit change_state(NOIGNORE));
 	    break;
 #endif
 	case 'v':
@@ -182,8 +181,7 @@
 	usage();
     if (suspend || standby)
     {
-	change_state((suspend ? SUSPEND : STANDBY));
-	exit(0);
+	exit(change_state((suspend ? SUSPEND : STANDBY)));
     }
 
     if (apm_read(&i))