blob: ec839704ed008ec0d4819fbd8d4115e030e4a122 [file] [log] [blame]
Bram Moolenaaredf3f972016-08-29 22:49:24 +02001/* vi:set ts=8 sts=4 sw=4 noet:
Bram Moolenaar071d4272004-06-13 20:20:40 +00002 *
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 Moolenaar071d4272004-06-13 20:20:40 +000011 */
12
Bram Moolenaar071d4272004-06-13 20:20:40 +000013#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 Moolenaar9bf703d2019-11-30 19:44:38 +010025#define CAR '\015' // CR is used by Mac OS X
Bram Moolenaar071d4272004-06-13 20:20:40 +000026#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 Moolenaar071d4272004-06-13 20:20:40 +000031
32#define POUND 0xA3
33
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010034#define Ctrl_chr(x) (TOUPPER_ASC(x) ^ 0x40) // '?' -> DEL, '@' -> ^@, etc.
Bram Moolenaar071d4272004-06-13 20:20:40 +000035#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 Moolenaar071d4272004-06-13 20:20:40 +000040
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010041#define Ctrl_AT 0 // @
Bram Moolenaar071d4272004-06-13 20:20:40 +000042#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 Moolenaar9bf703d2019-11-30 19:44:38 +010068 // 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 Moolenaar071d4272004-06-13 20:20:40 +000072#define Ctrl__ 31
73
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010074#define CSI 0x9b // Control Sequence Introducer
Bram Moolenaar46fd4df2015-07-10 14:05:10 +020075#define CSI_STR "\233"
Bram Moolenaar9bf703d2019-11-30 19:44:38 +010076#define DCS 0x90 // Device Control String
77#define OSC 0x9d // Operating System Command
78#define STERM 0x9c // String Terminator
Bram Moolenaar46fd4df2015-07-10 14:05:10 +020079
Bram Moolenaar071d4272004-06-13 20:20:40 +000080/*
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 Moolenaar071d4272004-06-13 20:20:40 +000084 * For Acorn we use a dot.
85 */
86#ifdef BACKSLASH_IN_FILENAME
87# define PATHSEP psepc
88# define PATHSEPSTR pseps
89#else
Bram Moolenaare60acc12011-05-10 16:41:25 +020090# define PATHSEP '/'
91# define PATHSEPSTR "/"
Bram Moolenaar071d4272004-06-13 20:20:40 +000092#endif