1 /* 2 * Copyright (C) 1984-2026 Mark Nudelman 3 * 4 * You may distribute under the terms of either the GNU General Public 5 * License or the Less License, as specified in the README file. 6 * 7 * For more information, see the README file. 8 */ 9 10 11 #define MAX_USERCMD 1000 12 #define MAX_CMDLEN 16 13 14 #define A_B_LINE 2 15 #define A_B_SCREEN 3 16 #define A_B_SCROLL 4 17 #define A_B_SEARCH 5 18 #define A_DIGIT 6 19 #define A_DISP_OPTION 7 20 #define A_DEBUG 8 21 #define A_EXAMINE 9 22 #define A_FIRSTCMD 10 23 #define A_FREPAINT 11 24 #define A_F_LINE 12 25 #define A_F_SCREEN 13 26 #define A_F_SCROLL 14 27 #define A_F_SEARCH 15 28 #define A_GOEND 16 29 #define A_GOLINE 17 30 #define A_GOMARK 18 31 #define A_HELP 19 32 #define A_NEXT_FILE 20 33 #define A_PERCENT 21 34 #define A_BF_SCREEN 22 35 #define A_PREV_FILE 23 36 #define A_QUIT 24 37 #define A_REPAINT 25 38 #define A_SETMARK 26 39 #define A_SHELL 27 40 #define A_STAT 28 41 #define A_FF_LINE 29 42 #define A_BF_LINE 30 43 #define A_VERSION 31 44 #define A_VISUAL 32 45 #define A_F_WINDOW 33 46 #define A_B_WINDOW 34 47 #define A_F_BRACKET 35 48 #define A_B_BRACKET 36 49 #define A_PIPE 37 50 #define A_INDEX_FILE 38 51 #define A_UNDO_SEARCH 39 52 #define A_FF_SCREEN 40 53 #define A_LSHIFT 41 54 #define A_RSHIFT 42 55 #define A_AGAIN_SEARCH 43 56 #define A_T_AGAIN_SEARCH 44 57 #define A_REVERSE_SEARCH 45 58 #define A_T_REVERSE_SEARCH 46 59 #define A_OPT_TOGGLE 47 60 #define A_OPT_SET 48 61 #define A_OPT_UNSET 49 62 #define A_F_FOREVER 50 63 #define A_GOPOS 51 64 #define A_REMOVE_FILE 52 65 #define A_NEXT_TAG 53 66 #define A_PREV_TAG 54 67 #define A_FILTER 55 68 #define A_F_UNTIL_HILITE 56 69 #define A_GOEND_BUF 57 70 #define A_LLSHIFT 58 71 #define A_RRSHIFT 59 72 #define A_F_NEWLINE 60 73 #define A_B_NEWLINE 61 74 #define A_CLRMARK 62 75 #define A_SETMARKBOT 63 76 #define A_X11MOUSE_IN 64 77 #define A_F_MOUSE 66 78 #define A_B_MOUSE 67 79 /* Note "X116" refers to extended (1006) X11 mouse reporting. */ 80 #define A_X116MOUSE_IN 68 81 #define A_PSHELL 69 82 #define A_CLR_SEARCH 70 83 #define A_OSC8_F_SEARCH 71 84 #define A_OSC8_B_SEARCH 72 85 #define A_OSC8_OPEN 73 86 #define A_OSC8_JUMP 74 87 #define A_START_PASTE 75 /* must not overlap EC_* */ 88 #define A_END_PASTE 76 /* must not overlap EC_* */ 89 #define A_F_FOREVER_BELL 77 90 #define A_L_MOUSE 78 91 #define A_R_MOUSE 79 92 #define A_RSHIFT_LIMIT 80 93 94 /* These values must not conflict with any A_* or EC_* value. */ 95 #define A_INVALID 100 96 #define A_NOACTION 101 97 #define A_UINVALID 102 98 #define A_END_LIST 103 99 #define A_SPECIAL_KEY 104 100 #define A_PREFIX 105 101 #define A_SKIP 127 102 103 #define A_EXTRA 0200 104 105 106 /* Line editing characters */ 107 108 #define EC_BACKSPACE 1 109 #define EC_LINEKILL 2 110 #define EC_RIGHT 3 111 #define EC_LEFT 4 112 #define EC_W_LEFT 5 113 #define EC_W_RIGHT 6 114 #define EC_INSERT 7 115 #define EC_DELETE 8 116 #define EC_HOME 9 117 #define EC_END 10 118 #define EC_W_BACKSPACE 11 119 #define EC_W_DELETE 12 120 #define EC_UP 13 121 #define EC_DOWN 14 122 #define EC_EXPAND 15 123 #define EC_F_COMPLETE 17 124 #define EC_B_COMPLETE 18 125 #define EC_LITERAL 19 126 #define EC_ABORT 20 127 #define EC_X11MOUSE 21 128 #define EC_X116MOUSE 22 129 #define EC_START_PASTE A_START_PASTE 130 #define EC_END_PASTE A_END_PASTE 131 132 #define EC_UINVALID 102 133 134 /* Flags for editchar() */ 135 #define ECF_PEEK 01 136 #define ECF_NOHISTORY 02 137 #define ECF_NOCOMPLETE 04 138 #define ECF_NORIGHTLEFT 010 139 140 /* Environment variable stuff */ 141 #define EV_OK 01 142 143 /* Special keys (keys which output different strings on different terminals) */ 144 #define SK_SPECIAL_KEY CONTROL('K') 145 #define SK_RIGHT_ARROW 1 146 #define SK_LEFT_ARROW 2 147 #define SK_UP_ARROW 3 148 #define SK_DOWN_ARROW 4 149 #define SK_PAGE_UP 5 150 #define SK_PAGE_DOWN 6 151 #define SK_HOME 7 152 #define SK_END 8 153 #define SK_DELETE 9 154 #define SK_INSERT 10 155 #define SK_CTL_LEFT_ARROW 11 156 #define SK_CTL_RIGHT_ARROW 12 157 #define SK_CTL_DELETE 13 158 #define SK_F1 14 159 #define SK_BACKTAB 15 160 #define SK_CTL_BACKSPACE 16 161 #define SK_BACKSPACE 17 162 #define SK_PAD_U 18 163 #define SK_PAD_D 19 164 #define SK_PAD_R 20 165 #define SK_PAD_L 21 166 #define SK_PAD_UR 22 167 #define SK_PAD_UL 23 168 #define SK_PAD_DR 24 169 #define SK_PAD_DL 25 170 #define SK_PAD_CENTER 26 171 #define SK_PAD_STAR 27 172 #define SK_PAD_SLASH 28 173 #define SK_PAD_DASH 29 174 #define SK_PAD_PLUS 30 175 #define SK_PAD_DOT 31 176 #define SK_PAD_COMMA 32 177 #define SK_PAD_ZERO 33 178 #define SK_SHIFT_HOME 34 179 #define SK_SHIFT_END 35 180 #define SK_CTL_HOME 36 181 #define SK_CTL_END 37 182 #define SK_SHIFT_LEFT_ARROW 38 183 #define SK_SHIFT_RIGHT_ARROW 39 184 #define SK_CONTROL_K 40 185 #define SK_PAD_ENTER 41 186 #define SK_SHIFT_UP_ARROW 42 187 #define SK_SHIFT_DOWN_ARROW 43 188 #define SK_CTL_UP_ARROW 44 189 #define SK_CTL_DOWN_ARROW 45 190 #define SK_SHIFT_DELETE 46 191 #define SK_SHIFT_PAGE_UP 47 192 #define SK_SHIFT_PAGE_DOWN 48 193 #define SK_CTL_PAGE_UP 49 194 #define SK_CTL_PAGE_DOWN 50 195