foo
authorJohn Tsiombikas <nuclear@member.fsf.org>
Thu, 21 Nov 2019 23:15:47 +0000 (01:15 +0200)
committerJohn Tsiombikas <nuclear@member.fsf.org>
Thu, 21 Nov 2019 23:15:47 +0000 (01:15 +0200)
visor/src/main_unix.c
visor/src/term.c
visor/src/term.h

index 9e96d45..9db4e36 100644 (file)
@@ -1,35 +1,66 @@
 #include <stdio.h>
+#include "term.h"
 
+static int parse_args(int argc, char **argv);
 static int init(void);
 static void cleanup(void);
-static void sighandler(int s);
+
+static int num_fpaths;
+static char **fpaths;
 
 int main(int argc, char **argv)
 {
-       int res;
-       char c;
-
+       if(parse_args(argc, argv) == -1) {
+               return 1;
+       }
        if(init() == -1) {
                return 1;
        }
 
        for(;;) {
-               if(term_getchar() == 'q') {
-                       break;
+               int c = term_getchar();
+
+               switch(c) {
+               case 27:
+               case 'q':
+                       goto end;
                }
-               /* proc input */
        }
+end:
 
        cleanup();
        return 0;
 }
 
+static int parse_args(int argc, char **argv)
+{
+       int i;
+
+       fpaths = argv + 1;
+       num_fpaths = 0;
+       for(i=1; i<argc; i++) {
+               if(argv[i][0] == '-') {
+                       fprintf(stderr, "invalid option: %s\n", argv[i]);
+                       return -1;
+               } else {
+                       argv[++num_fpaths] = argv[i];
+               }
+       }
+       return 0;
+}
+
 static int init(void)
 {
-       if(term_init() == -1) {
+       int i;
+
+       if(term_init(0) == -1) {
                return -1;
        }
        term_clear();
+
+       for(i=0; i<num_fpaths; i++) {
+               /* open fpaths[i] */
+       }
        return 0;
 }
 
index 5a167a6..d98d0ac 100644 (file)
@@ -19,7 +19,7 @@ int term_init(const char *ttypath)
        struct termios term;
        struct winsize winsz;
 
-       if((ttyfd = open("/dev/tty", O_RDWR)) == -1) {
+       if((ttyfd = open(ttypath ? ttypath : "/dev/tty", O_RDWR)) == -1) {
                perror("failed to open /dev/tty");
                return -1;
        }
index fd2a4c4..a5cc334 100644 (file)
@@ -5,5 +5,6 @@ int term_init(const char *ttypath);
 void term_cleanup(void);
 
 void term_clear(void);
+int term_getchar(void);
 
 #endif /* TERM_H_ */