Bram Moolenaar | edf3f97 | 2016-08-29 22:49:24 +0200 | [diff] [blame] | 1 | /* vi:set ts=8 sts=4 sw=4 noet: |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2 | * |
| 3 | * VIM - Vi IMproved by Bram Moolenaar |
| 4 | * |
| 5 | * Do ":help uganda" in Vim to read copying and usage conditions. |
| 6 | * Do ":help credits" in Vim to see a list of people who contributed. |
| 7 | */ |
| 8 | |
| 9 | /* |
| 10 | * Definitions of various common control characters. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 11 | */ |
| 12 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 13 | #define CharOrd(x) ((x) < 'a' ? (x) - 'A' : (x) - 'a') |
| 14 | #define CharOrdLow(x) ((x) - 'a') |
| 15 | #define CharOrdUp(x) ((x) - 'A') |
| 16 | #define ROT13(c, a) (((((c) - (a)) + 13) % 26) + (a)) |
| 17 | |
| 18 | #define NUL '\000' |
| 19 | #define BELL '\007' |
| 20 | #define BS '\010' |
| 21 | #define TAB '\011' |
| 22 | #define NL '\012' |
| 23 | #define NL_STR (char_u *)"\012" |
| 24 | #define FF '\014' |
Bram Moolenaar | 9bf703d | 2019-11-30 19:44:38 +0100 | [diff] [blame] | 25 | #define CAR '\015' // CR is used by Mac OS X |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 26 | #define ESC '\033' |
| 27 | #define ESC_STR (char_u *)"\033" |
| 28 | #define ESC_STR_nc "\033" |
| 29 | #define DEL 0x7f |
| 30 | #define DEL_STR (char_u *)"\177" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 31 | |
| 32 | #define POUND 0xA3 |
| 33 | |
Bram Moolenaar | 9bf703d | 2019-11-30 19:44:38 +0100 | [diff] [blame] | 34 | #define Ctrl_chr(x) (TOUPPER_ASC(x) ^ 0x40) // '?' -> DEL, '@' -> ^@, etc. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 35 | #define Meta(x) ((x) | 0x80) |
| 36 | |
| 37 | #define CTRL_F_STR "\006" |
| 38 | #define CTRL_H_STR "\010" |
| 39 | #define CTRL_V_STR "\026" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 40 | |
Bram Moolenaar | 9bf703d | 2019-11-30 19:44:38 +0100 | [diff] [blame] | 41 | #define Ctrl_AT 0 // @ |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 42 | #define Ctrl_A 1 |
| 43 | #define Ctrl_B 2 |
| 44 | #define Ctrl_C 3 |
| 45 | #define Ctrl_D 4 |
| 46 | #define Ctrl_E 5 |
| 47 | #define Ctrl_F 6 |
| 48 | #define Ctrl_G 7 |
| 49 | #define Ctrl_H 8 |
| 50 | #define Ctrl_I 9 |
| 51 | #define Ctrl_J 10 |
| 52 | #define Ctrl_K 11 |
| 53 | #define Ctrl_L 12 |
| 54 | #define Ctrl_M 13 |
| 55 | #define Ctrl_N 14 |
| 56 | #define Ctrl_O 15 |
| 57 | #define Ctrl_P 16 |
| 58 | #define Ctrl_Q 17 |
| 59 | #define Ctrl_R 18 |
| 60 | #define Ctrl_S 19 |
| 61 | #define Ctrl_T 20 |
| 62 | #define Ctrl_U 21 |
| 63 | #define Ctrl_V 22 |
| 64 | #define Ctrl_W 23 |
| 65 | #define Ctrl_X 24 |
| 66 | #define Ctrl_Y 25 |
| 67 | #define Ctrl_Z 26 |
Bram Moolenaar | 9bf703d | 2019-11-30 19:44:38 +0100 | [diff] [blame] | 68 | // CTRL- [ Left Square Bracket == ESC |
| 69 | #define Ctrl_BSL 28 // \ BackSLash |
| 70 | #define Ctrl_RSB 29 // ] Right Square Bracket |
| 71 | #define Ctrl_HAT 30 // ^ |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 72 | #define Ctrl__ 31 |
| 73 | |
Bram Moolenaar | 9bf703d | 2019-11-30 19:44:38 +0100 | [diff] [blame] | 74 | #define CSI 0x9b // Control Sequence Introducer |
Bram Moolenaar | 46fd4df | 2015-07-10 14:05:10 +0200 | [diff] [blame] | 75 | #define CSI_STR "\233" |
Bram Moolenaar | 9bf703d | 2019-11-30 19:44:38 +0100 | [diff] [blame] | 76 | #define DCS 0x90 // Device Control String |
| 77 | #define OSC 0x9d // Operating System Command |
| 78 | #define STERM 0x9c // String Terminator |
Bram Moolenaar | 46fd4df | 2015-07-10 14:05:10 +0200 | [diff] [blame] | 79 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 80 | /* |
| 81 | * Character that separates dir names in a path. |
| 82 | * For MS-DOS, WIN32 and OS/2 we use a backslash. A slash mostly works |
| 83 | * fine, but there are places where it doesn't (e.g. in a command name). |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 84 | * For Acorn we use a dot. |
| 85 | */ |
| 86 | #ifdef BACKSLASH_IN_FILENAME |
| 87 | # define PATHSEP psepc |
| 88 | # define PATHSEPSTR pseps |
| 89 | #else |
Bram Moolenaar | e60acc1 | 2011-05-10 16:41:25 +0200 | [diff] [blame] | 90 | # define PATHSEP '/' |
| 91 | # define PATHSEPSTR "/" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 92 | #endif |