- pid_t cpid;
- int pfd[2];
-
- pipe(pfd);
- cpid = fork();
- if (cpid != 0) {
- rspl(pfd[0], pfd[1]);
- return 0;
- }
- else {
- char buf;
- static char *line = (char *)NULL;
-
- dup2(pfd[0], 0);
- close(pfd[0]);
-
- while (1) {
- scm_init_guile();
- scm_c_eval_string("(if (char-ready? (current-input-port)) (format #t \"~a guile~%\" (read)))");
- /*
- if (line) {
- free(line);
- line = (char *)NULL;
- }
-
- line = readline("");
- if (line && *line) {
- printf("%s-\n", line);
- }
- */
- }
- }
+ scm_with_guile (®ister_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);