コード例 #1
0
ファイル: rep.c プロジェクト: devehe/librep
int
main(int argc, char **argv)
{
    DEFSTRING (rep, "rep/user");
    int exit_status;
    char *prog_name = *argv++;
    argc--;

#ifdef HAVE_SETLOCALE
    setlocale (LC_ALL, "");
#endif

    rep_init (prog_name, &argc, &argv, 0, 0);

    rep_call_with_barrier (rep_load_environment, rep_VAL (&rep),
                           rep_TRUE, 0, 0, 0);

    exit_status = rep_top_level_exit ();
    rep_kill();
    return exit_status;
}
コード例 #2
0
static char *
completion_generator (char *word, int state)
{
    if (state == 0)
    {
	repv fun = completion_fun;
	if (fun == Qnil)
	    /* backwards compatibility, ugh */
	    fun = Fsymbol_value (Qrl_completion_generator, Qt);
	if (Ffunctionp (fun) != Qnil)
	{
	    completions = (rep_call_with_barrier
			   (Ffuncall, rep_list_2 (fun, rep_string_dup (word)),
			    rep_TRUE, 0, 0, 0));
	}
	else
	{
	    repv re = Fquote_regexp (rep_string_dup (word));
	    repv boundp = Fsymbol_value (Qboundp, Qt);
	    completions = Fapropos (rep_concat2("^", rep_STR(re)),
				    boundp, Qnil);
	}
	if (completions == rep_NULL)
	    completions = Qnil;
    }

    if (completions != Qnil && rep_CONSP(completions)
	&& (rep_SYMBOLP(rep_CAR(completions))
	    || rep_STRINGP(rep_CAR(completions))))
    {
	repv string = rep_CAR(completions);
	if (rep_SYMBOLP(string))
	    string = rep_SYM(string)->name;
	completions = rep_CDR(completions);
	return strdup (rep_STR(string));
    }
    else
	return 0;
}