cmdline-examples: remove basic_char_loop() and use cmdline_interact()
[libcmdline.git] / src / calculator_standalone / main.c
index de5a752..aa56e40 100644 (file)
@@ -54,27 +54,10 @@ extern cmdline_parse_ctx_t main_ctx[];
 
 struct cmdline *cl;
 
-/*** main */
-
-void basic_char_loop(void)
-{
-       char c;
-
-       c = -1;
-       while (1) {
-               read(cl->s_in, &c, 1);
-               if (cmdline_in(cl, &c, 1) < 0)
-                       break;
-       }
-       cmdline_free(cl);
-       printf("\n");
-}
-
-/* #define STANDALONE */
-
-int main(void) 
+int main(void)
 {
        struct termios oldterm, term;
+       int err = 0;
 
        tcgetattr(0, &oldterm);
        memcpy(&term, &oldterm, sizeof(term));
@@ -82,9 +65,17 @@ int main(void)
        tcsetattr(0, TCSANOW, &term);
        setbuf(stdin, NULL);
        cl = cmdline_stdin_new(main_ctx, "calc> ");
-       basic_char_loop();
+       if (cl == NULL) {
+               err = 1;
+               goto fail;
+       }
+
+       cmdline_interact(cl);
+       cmdline_free(cl);
+
+ fail:
        tcsetattr(0, TCSANOW, &oldterm);
-       return 0;
+       return err;
 }