1 1.4 simonb /* $NetBSD: lesskey.h,v 1.4 2023/10/06 05:49:49 simonb Exp $ */ 2 1.1 tron 3 1.1 tron /* 4 1.4 simonb * Copyright (C) 1984-2023 Mark Nudelman 5 1.1 tron * 6 1.1 tron * You may distribute under the terms of either the GNU General Public 7 1.1 tron * License or the Less License, as specified in the README file. 8 1.1 tron * 9 1.3 tron * For more information, see the README file. 10 1.1 tron */ 11 1.1 tron 12 1.4 simonb #include "xbuf.h" 13 1.1 tron 14 1.1 tron /* 15 1.1 tron * Format of a lesskey file: 16 1.1 tron * 17 1.4 simonb * LESSKEY_MAGIC (4 bytes) 18 1.4 simonb * sections... 19 1.4 simonb * END_LESSKEY_MAGIC (4 bytes) 20 1.1 tron * 21 1.1 tron * Each section is: 22 1.1 tron * 23 1.4 simonb * section_MAGIC (1 byte) 24 1.4 simonb * section_length (2 bytes) 25 1.4 simonb * key table (section_length bytes) 26 1.1 tron */ 27 1.4 simonb #define C0_LESSKEY_MAGIC '\0' 28 1.4 simonb #define C1_LESSKEY_MAGIC 'M' 29 1.4 simonb #define C2_LESSKEY_MAGIC '+' 30 1.4 simonb #define C3_LESSKEY_MAGIC 'G' 31 1.4 simonb 32 1.4 simonb #define CMD_SECTION 'c' 33 1.4 simonb #define EDIT_SECTION 'e' 34 1.4 simonb #define VAR_SECTION 'v' 35 1.4 simonb #define END_SECTION 'x' 36 1.4 simonb 37 1.4 simonb #define C0_END_LESSKEY_MAGIC 'E' 38 1.4 simonb #define C1_END_LESSKEY_MAGIC 'n' 39 1.4 simonb #define C2_END_LESSKEY_MAGIC 'd' 40 1.1 tron 41 1.1 tron /* */ 42 1.4 simonb #define KRADIX 64 43 1.4 simonb 44 1.4 simonb struct lesskey_cmdname 45 1.4 simonb { 46 1.4 simonb char *cn_name; 47 1.4 simonb int cn_action; 48 1.4 simonb }; 49 1.4 simonb 50 1.4 simonb struct lesskey_table 51 1.4 simonb { 52 1.4 simonb struct lesskey_cmdname *names; 53 1.4 simonb struct xbuffer buf; 54 1.4 simonb int is_var; 55 1.4 simonb }; 56 1.4 simonb 57 1.4 simonb struct lesskey_tables 58 1.4 simonb { 59 1.4 simonb struct lesskey_table *currtable; 60 1.4 simonb struct lesskey_table cmdtable; 61 1.4 simonb struct lesskey_table edittable; 62 1.4 simonb struct lesskey_table vartable; 63 1.4 simonb }; 64 1.4 simonb 65 1.4 simonb extern int parse_lesskey(char *infile, struct lesskey_tables *tables); 66