Xinqi Bao's Git

Add basic backlight percentage support
[slstatus.git] / slstatus.c
index 0c4605f..b3abafb 100644 (file)
@@ -42,7 +42,7 @@ difftimespec(struct timespec *res, struct timespec *a, struct timespec *b)
 static void
 usage(void)
 {
-       die("usage: %s [-s]", argv0);
+       die("usage: %s [-so]", argv0);
 }
 
 int
@@ -51,15 +51,18 @@ main(int argc, char *argv[])
        struct sigaction act;
        struct timespec start, current, diff, intspec, wait;
        size_t i, len;
-       int sflag, ret;
+       int sflag, oflag, ret;
        char status[MAXLEN];
        const char *res;
 
-       sflag = 0;
+       sflag = oflag = 0;
        ARGBEGIN {
                case 's':
                        sflag = 1;
                        break;
+               case 'o':
+                       oflag = 1;
+                       break;
                default:
                        usage();
        } ARGEND
@@ -91,12 +94,8 @@ main(int argc, char *argv[])
                        if (!(res = args[i].func(args[i].args))) {
                                res = unknown_str;
                        }
-                       if ((ret = snprintf(status + len, sizeof(status) - len,
+                       if ((ret = esnprintf(status + len, sizeof(status) - len,
                                            args[i].fmt, res)) < 0) {
-                               warn("snprintf:");
-                               break;
-                       } else if ((size_t)ret >= sizeof(status) - len) {
-                               warn("snprintf: Output truncated");
                                break;
                        }
                        len += ret;
@@ -111,6 +110,10 @@ main(int argc, char *argv[])
                        XFlush(dpy);
                }
 
+               if (oflag) {
+                       done = 1;
+               }
+
                if (!done) {
                        if (clock_gettime(CLOCK_MONOTONIC, &current) < 0) {
                                die("clock_gettime:");