Add $ and ` for escaping and reorder it according to the ascii values
[midnight-commander.git] / src / myslang.h
blob17057e70bcd44445bc22d138584ed3eba3e2d523
1 #ifndef MC_MYSLANG_H
2 #define MC_MYSLANG_H
4 #ifndef HAVE_SYSTEM_SLANG
5 # include "../slang/include/slang.h"
6 #else
7 #ifdef HAVE_SLANG_SLANG_H
8 # include <slang/slang.h>
9 #else
10 # include <slang.h>
11 #endif /* HAVE_SLANG_SLANG_H */
12 #endif
14 enum {
15 KEY_BACKSPACE = 400,
16 KEY_END, KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT,
17 KEY_HOME, KEY_A1, KEY_C1, KEY_NPAGE, KEY_PPAGE, KEY_IC,
18 KEY_ENTER, KEY_DC, KEY_SCANCEL, KEY_BTAB
21 #define KEY_F(x) (1000+x)
23 #define ACS_VLINE SLSMG_VLINE_CHAR
24 #define ACS_HLINE SLSMG_HLINE_CHAR
25 #define ACS_ULCORNER SLSMG_ULCORN_CHAR
26 #define ACS_LLCORNER SLSMG_LLCORN_CHAR
27 #define ACS_URCORNER SLSMG_URCORN_CHAR
28 #define ACS_LRCORNER SLSMG_LRCORN_CHAR
30 #define ACS_LTEE 't'
31 #define acs() SLsmg_set_char_set(1)
32 #define noacs() SLsmg_set_char_set (0)
33 #define baudrate() SLang_TT_Baud_Rate
35 enum {
36 COLOR_BLACK, COLOR_RED, COLOR_GREEN, COLOR_YELLOW, COLOR_BLUE,
37 COLOR_MAGENTA, COLOR_CYAN, COLOR_WHITE
40 /* When using Slang with color, we have all the indexes free but
41 * those defined here (A_BOLD, A_UNDERLINE, A_REVERSE, A_BOLD_REVERSE)
43 #define A_BOLD 0x40
44 #define A_UNDERLINE 0x40
45 #define A_REVERSE 0x20
46 #define A_BOLD_REVERSE 0x21
48 #ifndef A_NORMAL
49 # define A_NORMAL 0x00
50 #endif
52 #define COLOR_PAIR(x) x
54 #ifndef TRUE
55 # define TRUE 1
56 # define FALSE 0
57 #endif
59 void slang_set_raw_mode (void);
61 #define doupdate()
62 #define raw() slang_set_raw_mode()
63 #define noraw()
64 #define nodelay(x,val) set_slang_delay(val)
65 #define noecho()
66 #define beep() SLtt_beep ()
67 #define keypad(scr,value) slang_keypad (value)
69 #define ungetch(x) SLang_ungetkey(x)
70 #define start_color()
71 #define touchwin(x) SLsmg_touch_lines(0, LINES)
72 #define reset_shell_mode() slang_shell_mode()
73 #define reset_prog_mode() slang_prog_mode()
74 #define flushinp()
76 void slint_goto (int y, int x);
77 void attrset (int color);
78 void set_slang_delay (int);
79 void slang_init (void);
80 void slang_prog_mode (void);
81 void hline (int ch, int len);
82 void vline (int ch, int len);
83 int getch (void);
84 void slang_keypad (int set);
85 void slang_shell_mode (void);
86 void slang_shutdown (void);
87 int has_colors (void);
89 #define move(x, y) SLsmg_gotorc(x, y)
90 #define getyx(stdscr, row, col) \
91 do { \
92 row = SLsmg_get_row(); \
93 col = SLsmg_get_column(); \
94 } while (0)
95 #define printw SLsmg_printf
96 #define COLS SLtt_Screen_Cols
97 #define LINES SLtt_Screen_Rows
98 #define standend() SLsmg_normal_video()
100 #ifdef UTF8
102 * Patched S-Lang in Red Hat 8.0 expects wchar_t as the argument to addch()
103 * Avoid conversion by using SLsmg_write_nchars(), which takes char*
105 #undef addch
106 static inline void
107 mc_addch (char c)
109 SLsmg_write_nchars (&c, 1);
111 #define addch(c) mc_addch(c)
112 #else
113 #define addch(c) SLsmg_write_char(c)
114 #endif
116 #define addstr(s) SLsmg_write_string(str_unconst(s))
117 #define refresh() SLsmg_refresh()
118 #define endwin() SLsmg_reset_smg()
120 #define SLsmg_draw_double_box(r,c,dr,dc) SLsmg_draw_box ((r), (c), (dr), (dc))
122 #endif