From: jsancho Date: Sun, 17 Apr 2011 07:41:59 +0000 (+0000) Subject: (no commit message) X-Git-Url: https://git.jsancho.org/?a=commitdiff_plain;h=9736129fb8de61a2ba9750564715557df22c4afc;p=gacela.git --- diff --git a/gacela.c b/gacela.c index 1cd7412..343f1ba 100644 --- a/gacela.c +++ b/gacela.c @@ -1,11 +1,33 @@ #include +#include -int main (int argc, char *argv[]) +/* Read-Send-Print-Loop */ +void rspl () { - char exp[1024]; + static char *line = (char *)NULL; + int exit = 0; + + while (!exit) + { + if (line) + { + free (line); + line = (char *)NULL; + } + + line = readline ("gacela>"); - printf("gacela>"); - scanf("%s", exp); + if (line && *line) + { + add_history (line); + if (strcmp (line, "(quit)") == 0) + exit = 1; + } + } +} +int main (int argc, char *argv[]) +{ + rspl (); return 0; } diff --git a/gacela_core.c b/gacela_core.c index 3d2a398..83b15cf 100644 --- a/gacela_core.c +++ b/gacela_core.c @@ -1,65 +1,6 @@ #include #include #include -#include - -SCM prueba () { - int flags; - - SDL_Init (SDL_INIT_EVERYTHING); - - SDL_GL_SetAttribute (SDL_GL_DOUBLEBUFFER, 1); - - flags = SDL_OPENGL | SDL_GL_DOUBLEBUFFER | SDL_HWPALETTE | SDL_RESIZABLE | SDL_SWSURFACE; - SDL_SetVideoMode (200, 200, 32, flags); - - glShadeModel (GL_SMOOTH); - glClearColor (0, 0, 0, 0); - glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); - glViewport (0, 0, 200, 200); - glMatrixMode (GL_PROJECTION); - glLoadIdentity (); - glOrtho (-200, 200, -200, 200, 0, 1); - glMatrixMode (GL_MODELVIEW); - glLoadIdentity (); - - return SCM_UNSPECIFIED; -} - -void *bucle () { - while (1) { - scm_c_eval_string("(define contador (+ contador incremento))"); - scm_c_eval_string("(if (> contador 1000) (define incremento -1))"); - scm_c_eval_string("(if (< contador 0) (define incremento 1))"); - } - pthread_exit(NULL); -} - -void *bucle2 () { - char *argv[0]; - - argv[0] = malloc(10); - strcpy(argv[0], "./gacela"); - scm_shell(1, argv); -} - -int lanzar_bucle2 () { - pthread_t t; - - pthread_create(&t, NULL, bucle2, NULL); - return 0; -} - -SCM lanzar_bucle () { - pthread_t t; - - pthread_create(&t, NULL, bucle, NULL); - return SCM_UNSPECIFIED; -} - -/*SCM ver_contador () { - return scm_from_int(contador); -}*/ static void* register_functions (void* data) @@ -76,10 +17,7 @@ int main (int argc, char *argv[]) { scm_c_eval_string("(set-repl-prompt! \"gacela>\")"); scm_c_eval_string("(use-modules (ice-9 readline))"); scm_c_eval_string("(activate-readline)"); - scm_c_eval_string("(define contador 0)"); - scm_c_eval_string("(define incremento 1)"); // scm_shell (argc, argv); - lanzar_bucle2(); while (1) {} }