]> git.jsancho.org Git - gacela.git/blobdiff - gacela.c
(no commit message)
[gacela.git] / gacela.c
index dee76599553337a3b551f46a5f208586bc5b1d22..45c83a114e0770c02a82e4d998d76b199dfe65e2 100644 (file)
--- a/gacela.c
+++ b/gacela.c
@@ -1,55 +1,21 @@
-#include <stdio.h>
-#include <readline/readline.h>
-#include <sys/types.h>
-#include <unistd.h>
+#include <GL/gl.h>
+#include <libguile.h>
+#include "gacela_SDL.h"
 
-/* Read-Send-Print-Loop */
-void rspl(int pin, int pout)
+static void*
+register_functions (void* data)
 {
-  static char *line = (char *)NULL;
-  int exit = 0;
-
-  while (!exit) {
-    if (line) {
-      free(line);
-      line = (char *)NULL;
-    }
-    
-    line = readline("gacela>");
-    
-    if (line && *line) {
-      add_history(line);
-      if (strcmp(line, "(quit)") == 0)
-       exit = 1;
-      else {
-       write(pout, line, strlen(line));
-       write(pout, "\n", 1);
-      }
-    }
-  }
+  SDL_register_functions (NULL);
+  return NULL;
 }
 
-int main (int argc, char *argv[])
+int
+main (int argc, char *argv[])
 {
-  pid_t cpid;
-  int pfd[2];
-
-  pipe(pfd);
-  cpid = fork();
-  if (cpid != 0) {
-    rspl(pfd[0], pfd[1]);
-    return 0;
-  }
-  else {
-    char buf;
-
-    while (1) {
-      while (read(pfd[0], &buf, 1) > 0) {
-       if (buf == '\n')
-         write(STDOUT_FILENO, "-\n", 2);
-       else
-         write(STDOUT_FILENO, &buf, 1);
-      }
-    }
-  }
+  scm_with_guile (&register_functions, NULL);
+  scm_init_guile ();
+  scm_c_eval_string ("(set-repl-prompt! \"gacela>\")");
+  scm_c_eval_string ("(use-modules (ice-9 readline))");
+  scm_c_eval_string ("(activate-readline)");
+  scm_shell (argc, argv);
 }