示例#1
0
/*
 * Include a symbol table from another key-file, creating it in a table named
 * according to the parameter.
 */
static void
ExecSource(const char *param)
{
    int save_meta = meta_ch;
    int save_eqls = eqls_ch;

    flt_make_symtab(param);
    flt_read_keywords(MY_NAME);	/* provide default values for this table */
    flt_read_keywords(param);
    set_symbol_table(flt_name());

    meta_ch = save_meta;
    eqls_ch = save_eqls;
}
示例#2
0
static void
ExecTable(char *param)
{
    char *t;

    VERBOSE(1, ("ExecTable(%s)\n", param));
    if (FltOptions('c')) {
	t = skip_ident(param);
	if (*skip_blanks(t) == '\0') {
	    int save = *t;

	    *t = 0;
	    if (*param) {
		flt_make_symtab(param);
		flt_read_keywords(MY_NAME);
	    } else {
		set_symbol_table(default_table);
	    }
	    *t = (char) save;
	}
    }

    t = skip_ident(param);
    flt_puts(param, (int) (t - param), Literal_attr);
    if (*skip_blanks(t) == '\0') {
	flt_puts(t, (int) strlen(t), "");
    } else {
	flt_error("unexpected tokens");
	flt_puts(t, (int) strlen(t), Error_attr);
    }
}
示例#3
0
/*
 * Include a symbol table from another key-file.
 */
static void
ExecSource(char *param)
{
    int save_meta = meta_ch;
    int save_eqls = eqls_ch;

    flt_make_symtab(param);
    flt_read_keywords(MY_NAME);
    flt_read_keywords(param);
    set_symbol_table(flt_name());

    meta_ch = save_meta;
    eqls_ch = save_eqls;

    flt_puts(param, (int) strlen(param), Literal_attr);
}
示例#4
0
/*
 * Useful for diverting to another symbol table in the same key-file, for
 * performance.
 */
static void
ExecTable(const char *param)
{
    if (*param) {
	flt_make_symtab(param);
	flt_read_keywords(MY_NAME);	/* provide default values for this table */
    } else {
	set_symbol_table(default_table);
    }
}
示例#5
0
/*
 * Include a symbol table from another key-file, merging it into the current
 * table.
 */
static void
ExecMerge(const char *param)
{
    int save_meta = meta_ch;
    int save_eqls = eqls_ch;

    flt_read_keywords(param);

    meta_ch = save_meta;
    eqls_ch = save_eqls;
}
示例#6
0
static void
ExecInclude(char *param)
{
    flt_read_keywords(param);
    flt_puts(param, (int) strlen(param), Literal_attr);
}