]> git.scottworley.com Git - keystroke-timestamps/commitdiff
Don't copy the device argument
authorScott Worley <scottworley@scottworley.com>
Fri, 4 Apr 2014 08:38:20 +0000 (01:38 -0700)
committerScott Worley <scottworley@scottworley.com>
Fri, 4 Apr 2014 08:38:20 +0000 (01:38 -0700)
http://www.gnu.org/software/libc/manual/html_node/Using-Getopt.html
says this is ok.

keystroke-timestamps.c

index 36d1cfcd1a24390e128c4627ffabf5c0f95d18ba..037919f01d035b1d5b8f3d8756a0ec2bd11acdc8 100644 (file)
@@ -5,7 +5,6 @@
 #include <linux/input.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <linux/input.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <string.h>
 #include <sysexits.h>
 #include <sys/select.h>
 #include <unistd.h>
 #include <sysexits.h>
 #include <sys/select.h>
 #include <unistd.h>
@@ -13,7 +12,7 @@
 int main (int argc, char **argv)
 {
   int print_usec = 0;
 int main (int argc, char **argv)
 {
   int print_usec = 0;
-  char* device = strdup("/dev/input/by-path/*kbd*");
+  char* device = "/dev/input/by-path/*kbd*";
   struct option long_options[] = {
     {"device", required_argument, 0,            'd' },
     {"usec",   no_argument,       &print_usec,  1   },
   struct option long_options[] = {
     {"device", required_argument, 0,            'd' },
     {"usec",   no_argument,       &print_usec,  1   },
@@ -23,8 +22,7 @@ int main (int argc, char **argv)
     int c = getopt_long(argc, argv, "", long_options, NULL);
     if (c == -1) break;
     if (c == 'd') {
     int c = getopt_long(argc, argv, "", long_options, NULL);
     if (c == -1) break;
     if (c == 'd') {
-      free(device);
-      device = strdup(optarg);
+      device = optarg;
       continue;
     }
     if (c != 0) exit(EX_USAGE);
       continue;
     }
     if (c != 0) exit(EX_USAGE);
@@ -41,7 +39,6 @@ int main (int argc, char **argv)
   if (glob_return != 0) {
     err(EX_NOINPUT, "Could not glob keyboard event file(s): %s", device);
   }
   if (glob_return != 0) {
     err(EX_NOINPUT, "Could not glob keyboard event file(s): %s", device);
   }
-  free(device);
   for (unsigned i = 0; i < glob_result.gl_pathc; i++) {
     int open_fd = open(glob_result.gl_pathv[i], O_RDONLY);
     if (open_fd < 0) {
   for (unsigned i = 0; i < glob_result.gl_pathc; i++) {
     int open_fd = open(glob_result.gl_pathv[i], O_RDONLY);
     if (open_fd < 0) {