1 /* 2 * Dropbear - a SSH2 server 3 * 4 * Copyright (c) 2002,2003 Matt Johnston 5 * All rights reserved. 6 * 7 * Permission is hereby granted, free of charge, to any person obtaining a copy 8 * of this software and associated documentation files (the "Software"), to deal 9 * in the Software without restriction, including without limitation the rights 10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 * copies of the Software, and to permit persons to whom the Software is 12 * furnished to do so, subject to the following conditions: 13 * 14 * The above copyright notice and this permission notice shall be included in 15 * all copies or substantial portions of the Software. 16 * 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 * SOFTWARE. */ 24 25 #include "includes.h" 26 #include "termcodes.h" 27 28 const struct TermCode termcodes[MAX_TERMCODE+1] = { 29 30 {0, 0}, /* TTY_OP_END */ 31 {VINTR, TERMCODE_CONTROLCHAR}, /* control character codes */ 32 {VQUIT, TERMCODE_CONTROLCHAR}, 33 {VERASE, TERMCODE_CONTROLCHAR}, 34 {VKILL, TERMCODE_CONTROLCHAR}, 35 {VEOF, TERMCODE_CONTROLCHAR}, 36 {VEOL, TERMCODE_CONTROLCHAR}, 37 #ifdef VEOL2 38 {VEOL2, TERMCODE_CONTROLCHAR}, 39 #else 40 {0, 0}, 41 #endif 42 {VSTART, TERMCODE_CONTROLCHAR}, 43 {VSTOP, TERMCODE_CONTROLCHAR}, 44 {VSUSP, TERMCODE_CONTROLCHAR}, 45 #ifdef VDSUSP 46 {VDSUSP, TERMCODE_CONTROLCHAR}, 47 #else 48 {0, 0}, 49 #endif 50 #ifdef VREPRINT 51 {VREPRINT, TERMCODE_CONTROLCHAR}, 52 #else 53 {0, 0}, 54 #endif 55 #ifdef AIX 56 {CERASE, TERMCODE_CONTROLCHAR}, 57 #else 58 #ifdef VWERASE 59 {VWERASE, TERMCODE_CONTROLCHAR}, 60 #else 61 {0, 0}, 62 #endif 63 #endif 64 #ifdef VLNEXT 65 {VLNEXT, TERMCODE_CONTROLCHAR}, 66 #else 67 {0, 0}, 68 #endif 69 #ifdef VFLUSH 70 {VFLUSH, TERMCODE_CONTROLCHAR}, 71 #else 72 {0, 0}, 73 #endif 74 #ifdef VSWTCH 75 {VSWTCH, TERMCODE_CONTROLCHAR}, 76 #else 77 {0, 0}, 78 #endif 79 #ifdef VSTATUS 80 {VSTATUS, TERMCODE_CONTROLCHAR}, 81 #else 82 {0, 0}, 83 #endif 84 #ifdef AIX 85 {CKILL, TERMCODE_CONTROLCHAR}, 86 #elif defined(VDISCARD) 87 {VDISCARD, TERMCODE_CONTROLCHAR}, 88 #else 89 {0, 0}, 90 #endif 91 {0, 0}, /* 19 */ 92 {0, 0}, 93 {0, 0}, 94 {0, 0}, 95 {0, 0}, 96 {0, 0}, 97 {0, 0}, 98 {0, 0}, 99 {0, 0}, 100 {0, 0}, 101 {0, 0}, /* 29 */ 102 {IGNPAR, TERMCODE_INPUT}, /* input flags */ 103 {PARMRK, TERMCODE_INPUT}, 104 {INPCK, TERMCODE_INPUT}, 105 {ISTRIP, TERMCODE_INPUT}, 106 {INLCR, TERMCODE_INPUT}, 107 {IGNCR, TERMCODE_INPUT}, 108 {ICRNL, TERMCODE_INPUT}, 109 #ifdef IUCLC 110 {IUCLC, TERMCODE_INPUT}, 111 #else 112 {0, 0}, 113 #endif 114 {IXON, TERMCODE_INPUT}, 115 {IXANY, TERMCODE_INPUT}, 116 {IXOFF, TERMCODE_INPUT}, 117 #ifdef IMAXBEL 118 {IMAXBEL, TERMCODE_INPUT}, 119 #else 120 {0, 0}, 121 #endif 122 /* IUTF8 isn't standardised in rfc4254 but is likely soon. 123 * Implemented by linux and darwin */ 124 #ifdef IUTF8 125 {IUTF8, TERMCODE_INPUT}, 126 #else 127 {0, 0}, 128 #endif 129 {0, 0}, /* 43 */ 130 {0, 0}, 131 {0, 0}, 132 {0, 0}, 133 {0, 0}, 134 {0, 0}, 135 {0, 0}, /* 49 */ 136 {ISIG, TERMCODE_LOCAL}, /* local flags */ 137 {ICANON, TERMCODE_LOCAL}, 138 #ifdef XCASE 139 {XCASE, TERMCODE_LOCAL}, 140 #else 141 {0, 0}, 142 #endif 143 {ECHO, TERMCODE_LOCAL}, 144 {ECHOE, TERMCODE_LOCAL}, 145 {ECHOK, TERMCODE_LOCAL}, 146 {ECHONL, TERMCODE_LOCAL}, 147 {NOFLSH, TERMCODE_LOCAL}, 148 {TOSTOP, TERMCODE_LOCAL}, 149 {IEXTEN, TERMCODE_LOCAL}, 150 #ifdef ECHOCTL 151 {ECHOCTL, TERMCODE_LOCAL}, 152 #else 153 {0, 0}, 154 #endif 155 #ifdef ECHOKE 156 {ECHOKE, TERMCODE_LOCAL}, 157 #else 158 {0, 0}, 159 #endif 160 #ifdef PENDIN 161 {PENDIN, TERMCODE_LOCAL}, 162 #else 163 {0, 0}, 164 #endif 165 {0, 0}, /* 63 */ 166 {0, 0}, 167 {0, 0}, 168 {0, 0}, 169 {0, 0}, 170 {0, 0}, 171 {0, 0}, /* 69 */ 172 {OPOST, TERMCODE_OUTPUT}, /* output flags */ 173 #ifdef OLCUC 174 {OLCUC, TERMCODE_OUTPUT}, 175 #else 176 {0, 0}, 177 #endif 178 {ONLCR, TERMCODE_OUTPUT}, 179 #ifdef OCRNL 180 {OCRNL, TERMCODE_OUTPUT}, 181 #else 182 {0, 0}, 183 #endif 184 #ifdef ONOCR 185 {ONOCR, TERMCODE_OUTPUT}, 186 #else 187 {0, 0}, 188 #endif 189 #ifdef ONLRET 190 {ONLRET, TERMCODE_OUTPUT}, 191 #else 192 {0, 0}, 193 #endif 194 {0, 0}, /* 76 */ 195 {0, 0}, 196 {0, 0}, 197 {0, 0}, 198 {0, 0}, 199 {0, 0}, 200 {0, 0}, 201 {0, 0}, 202 {0, 0}, 203 {0, 0}, 204 {0, 0}, 205 {0, 0}, 206 {0, 0}, 207 {0, 0}, /* 89 */ 208 {CS7, TERMCODE_CONTROL}, 209 {CS8, TERMCODE_CONTROL}, 210 {PARENB, TERMCODE_CONTROL}, 211 {PARODD, TERMCODE_CONTROL} 212 /* 94 */ 213 }; 214