/[LeafOK_CVS]/lbbs/include/io.h
ViewVC logotype

Contents of /lbbs/include/io.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.27 - (show annotations)
Tue Nov 4 14:58:55 2025 UTC (4 months, 1 week ago) by sysadm
Branch: MAIN
Changes since 1.26: +1 -1 lines
Content type: text/x-chdr
Refine file header information comments

1 /* SPDX-License-Identifier: GPL-3.0-or-later */
2 /*
3 * io
4 * - basic terminal-based user input / output features
5 *
6 * Copyright (C) 2004-2025 Leaflet <leaflet@leafok.com>
7 */
8
9 #ifndef _IO_H_
10 #define _IO_H_
11
12 #include <iconv.h>
13 #include <stdio.h>
14
15 #define CR '\r'
16 #define LF '\n'
17 #define BACKSPACE '\b'
18 #define BELL '\b'
19 #define KEY_TAB 9
20 #define KEY_ESC 27
21 #define KEY_SPACE '\040'
22
23 #ifndef EXTEND_KEY
24 #define EXTEND_KEY
25
26 #define KEY_NULL 0xffff
27 #define KEY_TIMEOUT 0xfffe
28 #define KEY_CONTROL 0xff
29 #define KEY_UP 0x0101
30 #define KEY_DOWN 0x0102
31 #define KEY_RIGHT 0x0103
32 #define KEY_LEFT 0x0104
33 #define KEY_CSI 0x011b // ESC ESC
34 #define KEY_HOME 0x0201
35 #define KEY_INS 0x0202
36 #define KEY_DEL 0x0203
37 #define KEY_END 0x0204
38 #define KEY_PGUP 0x0205
39 #define KEY_PGDN 0x0206
40
41 #define KEY_F1 0x0207
42 #define KEY_F2 0x0208
43 #define KEY_F3 0x0209
44 #define KEY_F4 0x020a
45 #define KEY_F5 0x020b
46 #define KEY_F6 0x020c
47 #define KEY_F7 0x020d
48 #define KEY_F8 0x020e
49 #define KEY_F9 0x020f
50 #define KEY_F10 0x0210
51 #define KEY_F11 0x0211
52 #define KEY_F12 0x0212
53
54 #define KEY_SHIFT_F1 0x0213
55 #define KEY_SHIFT_F2 0x0214
56 #define KEY_SHIFT_F3 0x0215
57 #define KEY_SHIFT_F4 0x0216
58 #define KEY_SHIFT_F5 0x0217
59 #define KEY_SHIFT_F6 0x0218
60 #define KEY_SHIFT_F7 0x0219
61 #define KEY_SHIFT_F8 0x021a
62 #define KEY_SHIFT_F9 0x021b
63 #define KEY_SHIFT_F10 0x021c
64 #define KEY_SHIFT_F11 0x021d
65 #define KEY_SHIFT_F12 0x021e
66
67 #define KEY_CTRL_F1 0x021f
68 #define KEY_CTRL_F2 0x0220
69 #define KEY_CTRL_F3 0x0221
70 #define KEY_CTRL_F4 0x0222
71 #define KEY_CTRL_F5 0x0223
72 #define KEY_CTRL_F6 0x0224
73 #define KEY_CTRL_F7 0x0225
74 #define KEY_CTRL_F8 0x0226
75 #define KEY_CTRL_F9 0x0227
76 #define KEY_CTRL_F10 0x0228
77 #define KEY_CTRL_F11 0x0229
78 #define KEY_CTRL_F12 0x022a
79
80 #define KEY_CTRL_UP 0x0230
81 #define KEY_CTRL_DOWN 0x0231
82 #define KEY_CTRL_RIGHT 0x0232
83 #define KEY_CTRL_LEFT 0x0233
84 #define KEY_CTRL_HOME 0x0234
85 #define KEY_CTRL_END 0x0235
86
87 #endif // EXPAND_KEY
88
89 #define Ctrl(C) ((C) - 'A' + 1)
90
91 #define DOECHO (1)
92 #define NOECHO (0)
93
94 #define BBS_DEFAULT_CHARSET "UTF-8"
95
96 extern char stdio_charset[20];
97
98 extern int prints(const char *format, ...);
99 extern int outc(char c);
100 extern int iflush(void);
101
102 extern int igetch(int timeout);
103 extern int igetch_t(int sec);
104 extern void igetch_reset(void);
105
106 extern int io_buf_conv(iconv_t cd, char *p_buf, int *p_buf_len, int *p_buf_offset, char *p_conv, size_t conv_size, int *p_conv_len);
107 extern int io_conv_init(const char *charset);
108 extern int io_conv_cleanup(void);
109
110 #endif //_IO_H_

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1