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

Annotation of /lbbs/include/io.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.28 - (hide annotations)
Wed Nov 5 02:33:30 2025 UTC (4 months, 1 week ago) by sysadm
Branch: MAIN
Changes since 1.27: +77 -75 lines
Content type: text/x-chdr
Use enum / const int instead of macro define constant integers
Use const char * instead of macro define for constant strings in screen.h

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

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