Home | History | Annotate | Line # | Download | only in dist
      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