/* $NetBSD: lesskey.h,v 1.4 2023/10/06 05:49:49 simonb Exp $ */ /* * Copyright (C) 1984-2023 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. * * For more information, see the README file. */ #include "xbuf.h" /* * Format of a lesskey file: * * LESSKEY_MAGIC (4 bytes) * sections... * END_LESSKEY_MAGIC (4 bytes) * * Each section is: * * section_MAGIC (1 byte) * section_length (2 bytes) * key table (section_length bytes) */ #define C0_LESSKEY_MAGIC '\0' #define C1_LESSKEY_MAGIC 'M' #define C2_LESSKEY_MAGIC '+' #define C3_LESSKEY_MAGIC 'G' #define CMD_SECTION 'c' #define EDIT_SECTION 'e' #define VAR_SECTION 'v' #define END_SECTION 'x' #define C0_END_LESSKEY_MAGIC 'E' #define C1_END_LESSKEY_MAGIC 'n' #define C2_END_LESSKEY_MAGIC 'd' /* */ #define KRADIX 64 struct lesskey_cmdname { char *cn_name; int cn_action; }; struct lesskey_table { struct lesskey_cmdname *names; struct xbuffer buf; int is_var; }; struct lesskey_tables { struct lesskey_table *currtable; struct lesskey_table cmdtable; struct lesskey_table edittable; struct lesskey_table vartable; }; extern int parse_lesskey(char *infile, struct lesskey_tables *tables);