コード例 #1
0
ファイル: tortoise5.c プロジェクト: btbytes/examples
void inner_main(int argc, char **argv)
{
    register_procs();
    read_config_file();
    /* now get on with the main business of the program ... */
    gh_eval_str("(tortoise-turn 30)"); /* example: call C-defined procedure */
    gh_eval_str("(polygon 3)");   /* example: call Scheme-defined procedure */
    gh_repl(argc, argv);
}
コード例 #2
0
ファイル: tortoise4.c プロジェクト: btbytes/examples
void read_config_file(void)
{
    char *homedir;
    char *filename;
    FILE *file;
    char inputLine[1024];  /* hack: assume each line is less than 1024 chars */
    char *p;
    /* open $HOME/.tortoise */
    homedir = getenv("HOME");
    if (homedir == NULL)
        return;
    filename = (char *)malloc(strlen(homedir)
                              + strlen(CONFIGFILENAME)
                              + strlen(DIRECTORYSEPARATOR) + 1);
    if (filename == NULL)
        return;
    sprintf(filename, "%s%s%s", homedir, DIRECTORYSEPARATOR, CONFIGFILENAME);
    file = fopen(filename, "r");
    free(filename);
    if (file == NULL)
        return;
    /* spin through the file */
    while (1)
    {
        p = fgets(inputLine, sizeof(inputLine), file);
        if (p == NULL)
            break;
        gh_eval_str(p);
    }
    fclose(file);
}
コード例 #3
0
ファイル: script.c プロジェクト: erikg/bmud
void
script_parse (char *string)
{
#ifdef USE_GUILE
    gh_eval_str (string);
#endif
#ifdef USE_PERL

/*	perl_method_call();	*/
#endif
}
コード例 #4
0
ファイル: script.c プロジェクト: erikg/bmud
void
script_load (char *filename, int type)
{
    int fh;
    char *buf, *tmpbuf;
    struct stat s;

    if ((fh = open (filename, O_RDONLY)) == -1)
    {
	perror ("BMUD script");
	textfield_add (strerror (errno), MESSAGE_ERR);
	textfield_add (": ", MESSAGE_ERR);
	textfield_add (filename, MESSAGE_ERR);
	textfield_add ("\n", MESSAGE_ERR);
	return;
    }
    fstat (fh, &s);
    buf = (char *)malloc (s.st_size);
    read (fh, buf, s.st_size);
    close (fh);
#ifdef USE_GUILE
    if (type == SCRIPT_GUILE)
    {
	gh_eval_str (buf);
	free (buf);
	return;
    }
#endif
#ifdef USE_PERL
    perl_parse (perl_env, NULL, 1, NULL, NULL);
#endif
    tmpbuf = (char *)malloc (1024);
    sprintf (tmpbuf, "I can't support %s.\n", filename);
    textfield_add (tmpbuf, MESSAGE_ERR);
    free (buf);
    free (tmpbuf);
    return;
}