Lines Matching full:tables
150 static void init_tables(struct lesskey_tables *tables)
152 tables->currtable = &tables->cmdtable;
154 tables->cmdtable.names = cmdnames;
155 tables->cmdtable.is_var = 0;
156 xbuf_init(&tables->cmdtable.buf);
158 tables->edittable.names = editnames;
159 tables->edittable.is_var = 0;
160 xbuf_init(&tables->edittable.buf);
162 tables->vartable.names = NULL;
163 tables->vartable.is_var = 1;
164 xbuf_init(&tables->vartable.buf);
350 static void add_cmd_char(unsigned char c, struct lesskey_tables *tables)
352 xbuf_add_byte(&tables->currtable->buf, c);
355 static void erase_cmd_char(struct lesskey_tables *tables)
357 xbuf_pop(&tables->currtable->buf);
363 static void add_cmd_str(constant char *s, struct lesskey_tables *tables)
366 add_cmd_char((unsigned char) *s, tables);
428 static char * control_line(char *s, struct lesskey_tables *tables)
434 tables->currtable = &tables->edittable;
439 tables->currtable = &tables->cmdtable;
444 tables->currtable = &tables->vartable;
449 add_cmd_char('\0', tables);
450 add_cmd_char(A_END_LIST, tables);
463 static int findaction(char *actname, struct lesskey_tables *tables)
467 for (i = 0; tables->currtable->names[i].cn_name != NULL; i++)
468 if (strcmp(tables->currtable->names[i].cn_name, actname) == 0)
469 return (tables->currtable->names[i].cn_action);
481 static void parse_cmdline(char *p, struct lesskey_tables *tables)
494 add_cmd_str(s, tables);
499 add_cmd_char('\0', tables);
520 action = findaction(actname, tables);
529 add_cmd_char((unsigned char) action, tables);
536 add_cmd_char((unsigned char) (action | A_EXTRA), tables);
538 add_cmd_str(tstr(&p, 0), tables);
539 add_cmd_char('\0', tables);
547 static void parse_varline(char *line, struct lesskey_tables *tables)
561 erase_cmd_char(tables); /* backspace over the final null */
568 add_cmd_str(s, tables);
573 add_cmd_char('\0', tables);
580 add_cmd_char(EV_OK|A_EXTRA, tables);
586 add_cmd_str(s, tables);
588 add_cmd_char('\0', tables);
594 static void parse_line(char *line, struct lesskey_tables *tables)
601 p = control_line(line, tables);
613 if (tables->currtable->is_var)
614 parse_varline(p, tables);
616 parse_cmdline(p, tables);
620 * Parse a lesskey source file and store result in tables.
622 int parse_lesskey(constant char *infile, struct lesskey_tables *tables)
631 init_tables(tables);
656 parse_line(line, tables);
667 * Parse a lesskey source content and store result in tables.
669 int parse_lesskey_content(constant char *content, struct lesskey_tables *tables)
674 init_tables(tables);
694 parse_line(line, tables);