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