Lines Matching refs:tables
145 static void init_tables(struct lesskey_tables *tables)
147 tables->currtable = &tables->cmdtable;
149 tables->cmdtable.names = cmdnames;
150 tables->cmdtable.is_var = 0;
151 xbuf_init(&tables->cmdtable.buf);
153 tables->edittable.names = editnames;
154 tables->edittable.is_var = 0;
155 xbuf_init(&tables->edittable.buf);
157 tables->vartable.names = NULL;
158 tables->vartable.is_var = 1;
159 xbuf_init(&tables->vartable.buf);
345 static void add_cmd_char(unsigned char c, struct lesskey_tables *tables)
347 xbuf_add_byte(&tables->currtable->buf, c);
350 static void erase_cmd_char(struct lesskey_tables *tables)
352 xbuf_pop(&tables->currtable->buf);
358 static void add_cmd_str(char *s, struct lesskey_tables *tables)
361 add_cmd_char(*s, tables);
387 static char * version_line(char *s, struct lesskey_tables *tables)
423 static char * control_line(char *s, struct lesskey_tables *tables)
429 tables->currtable = &tables->edittable;
434 tables->currtable = &tables->cmdtable;
439 tables->currtable = &tables->vartable;
444 add_cmd_char('\0', tables);
445 add_cmd_char(A_END_LIST, tables);
450 return (version_line(s, tables));
458 static int findaction(char *actname, struct lesskey_tables *tables)
462 for (i = 0; tables->currtable->names[i].cn_name != NULL; i++)
463 if (strcmp(tables->currtable->names[i].cn_name, actname) == 0)
464 return (tables->currtable->names[i].cn_action);
476 static void parse_cmdline(char *p, struct lesskey_tables *tables)
489 add_cmd_str(s, tables);
494 add_cmd_char('\0', tables);
515 action = findaction(actname, tables);
524 add_cmd_char((unsigned char) action, tables);
531 add_cmd_char((unsigned char) (action | A_EXTRA), tables);
533 add_cmd_str(tstr(&p, 0), tables);
534 add_cmd_char('\0', tables);
542 static void parse_varline(char *line, struct lesskey_tables *tables)
556 erase_cmd_char(tables); /* backspace over the final null */
563 add_cmd_str(s, tables);
568 add_cmd_char('\0', tables);
575 add_cmd_char(EV_OK|A_EXTRA, tables);
581 add_cmd_str(s, tables);
583 add_cmd_char('\0', tables);
589 static void parse_line(char *line, struct lesskey_tables *tables)
596 p = control_line(line, tables);
608 if (tables->currtable->is_var)
609 parse_varline(p, tables);
611 parse_cmdline(p, tables);
615 * Parse a lesskey source file and store result in tables.
617 int parse_lesskey(char *infile, struct lesskey_tables *tables)
626 init_tables(tables);
649 parse_line(line, tables);