Commit ec7cd4d8d4fe9dc7882c617d7f5177b8b5534166
1 parent
1ae6cf2c
Exists in
master
and in
3 other branches
Ajustes para compilação da lib3270 de forma independente.
Showing
24 changed files
with
2172 additions
and
1592 deletions
Show diff stats
@@ -0,0 +1,20 @@ | @@ -0,0 +1,20 @@ | ||
1 | +#!/bin/bash | ||
2 | +# | ||
3 | +# https://help.github.com/articles/syncing-a-fork/ | ||
4 | +# | ||
5 | +# https://help.github.com/articles/configuring-a-remote-for-a-fork/ | ||
6 | +# | ||
7 | +# https://www.opentechguides.com/how-to/article/git/177/git-sync-repos.html | ||
8 | +# | ||
9 | +# Setup: | ||
10 | +# | ||
11 | +# git remote add github https://github.com/PerryWerneck/lib3270.git | ||
12 | +# | ||
13 | +# | ||
14 | + | ||
15 | +git fetch origin | ||
16 | +git checkout master | ||
17 | +git merge origin/master | ||
18 | + | ||
19 | +git push github | ||
20 | + |
@@ -0,0 +1,224 @@ | @@ -0,0 +1,224 @@ | ||
1 | +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | ||
2 | +<CodeBlocks_project_file> | ||
3 | + <FileVersion major="1" minor="6" /> | ||
4 | + <Project> | ||
5 | + <Option title="3270 C Access Library" /> | ||
6 | + <Option pch_mode="2" /> | ||
7 | + <Option compiler="gcc" /> | ||
8 | + <Build> | ||
9 | + <Target title="Debug"> | ||
10 | + <Option output=".bin/Debug/3270 C Access Library" prefix_auto="1" extension_auto="1" /> | ||
11 | + <Option object_output=".obj/Debug/" /> | ||
12 | + <Option type="1" /> | ||
13 | + <Option compiler="gcc" /> | ||
14 | + <Compiler> | ||
15 | + <Add option="-g" /> | ||
16 | + </Compiler> | ||
17 | + </Target> | ||
18 | + <Target title="Release"> | ||
19 | + <Option output=".bin/Release/3270 C Access Library" prefix_auto="1" extension_auto="1" /> | ||
20 | + <Option object_output=".obj/Release/" /> | ||
21 | + <Option type="1" /> | ||
22 | + <Option compiler="gcc" /> | ||
23 | + <Compiler> | ||
24 | + <Add option="-O2" /> | ||
25 | + </Compiler> | ||
26 | + <Linker> | ||
27 | + <Add option="-s" /> | ||
28 | + </Linker> | ||
29 | + </Target> | ||
30 | + </Build> | ||
31 | + <Compiler> | ||
32 | + <Add option="-Wall" /> | ||
33 | + <Add directory="src/include" /> | ||
34 | + </Compiler> | ||
35 | + <Unit filename="AUTHORS" /> | ||
36 | + <Unit filename="LICENCA" /> | ||
37 | + <Unit filename="LICENSE" /> | ||
38 | + <Unit filename="README.md" /> | ||
39 | + <Unit filename="X3270.xad" /> | ||
40 | + <Unit filename="config.status" /> | ||
41 | + <Unit filename="configure" /> | ||
42 | + <Unit filename="configure.ac" /> | ||
43 | + <Unit filename="gitsync.sh" /> | ||
44 | + <Unit filename="src/include/3270ds.h" /> | ||
45 | + <Unit filename="src/include/actionsc.h" /> | ||
46 | + <Unit filename="src/include/ansic.h" /> | ||
47 | + <Unit filename="src/include/api.h" /> | ||
48 | + <Unit filename="src/include/aplc.h" /> | ||
49 | + <Unit filename="src/include/appres.h" /> | ||
50 | + <Unit filename="src/include/arpa_telnet.h" /> | ||
51 | + <Unit filename="src/include/cg.h" /> | ||
52 | + <Unit filename="src/include/childc.h" /> | ||
53 | + <Unit filename="src/include/config.h" /> | ||
54 | + <Unit filename="src/include/config.h.in" /> | ||
55 | + <Unit filename="src/include/ctlrc.h" /> | ||
56 | + <Unit filename="src/include/ft_cut_ds.h" /> | ||
57 | + <Unit filename="src/include/ft_cutc.h" /> | ||
58 | + <Unit filename="src/include/ft_dft_ds.h" /> | ||
59 | + <Unit filename="src/include/ft_dftc.h" /> | ||
60 | + <Unit filename="src/include/ftc.h" /> | ||
61 | + <Unit filename="src/include/gluec.h" /> | ||
62 | + <Unit filename="src/include/hostc.h" /> | ||
63 | + <Unit filename="src/include/icmdc.h" /> | ||
64 | + <Unit filename="src/include/keypadc.h" /> | ||
65 | + <Unit filename="src/include/kybdc.h" /> | ||
66 | + <Unit filename="src/include/lib3270/X11keysym.h" /> | ||
67 | + <Unit filename="src/include/lib3270/action_table.h" /> | ||
68 | + <Unit filename="src/include/lib3270/actions.h" /> | ||
69 | + <Unit filename="src/include/lib3270/charset.h" /> | ||
70 | + <Unit filename="src/include/lib3270/filetransfer.h" /> | ||
71 | + <Unit filename="src/include/lib3270/html.h" /> | ||
72 | + <Unit filename="src/include/lib3270/internals.h" /> | ||
73 | + <Unit filename="src/include/lib3270/log.h" /> | ||
74 | + <Unit filename="src/include/lib3270/macros.h" /> | ||
75 | + <Unit filename="src/include/lib3270/popup.h" /> | ||
76 | + <Unit filename="src/include/lib3270/selection.h" /> | ||
77 | + <Unit filename="src/include/lib3270/session.h" /> | ||
78 | + <Unit filename="src/include/lib3270/trace.h" /> | ||
79 | + <Unit filename="src/include/localdefs.h" /> | ||
80 | + <Unit filename="src/include/objects.h" /> | ||
81 | + <Unit filename="src/include/popupsc.h" /> | ||
82 | + <Unit filename="src/include/printc.h" /> | ||
83 | + <Unit filename="src/include/printerc.h" /> | ||
84 | + <Unit filename="src/include/private.h" /> | ||
85 | + <Unit filename="src/include/proxyc.h" /> | ||
86 | + <Unit filename="src/include/resolverc.h" /> | ||
87 | + <Unit filename="src/include/resources.h" /> | ||
88 | + <Unit filename="src/include/savec.h" /> | ||
89 | + <Unit filename="src/include/screen.h" /> | ||
90 | + <Unit filename="src/include/screenc.h" /> | ||
91 | + <Unit filename="src/include/scrollc.h" /> | ||
92 | + <Unit filename="src/include/seec.h" /> | ||
93 | + <Unit filename="src/include/sf.h" /> | ||
94 | + <Unit filename="src/include/shlobj_missing.h" /> | ||
95 | + <Unit filename="src/include/stamp-h1" /> | ||
96 | + <Unit filename="src/include/statusc.h" /> | ||
97 | + <Unit filename="src/include/telnetc.h" /> | ||
98 | + <Unit filename="src/include/tn3270e.h" /> | ||
99 | + <Unit filename="src/include/toggle.h" /> | ||
100 | + <Unit filename="src/include/togglesc.h" /> | ||
101 | + <Unit filename="src/include/trace_dsc.h" /> | ||
102 | + <Unit filename="src/include/utf8c.h" /> | ||
103 | + <Unit filename="src/include/utilc.h" /> | ||
104 | + <Unit filename="src/include/w3miscc.h" /> | ||
105 | + <Unit filename="src/include/widec.h" /> | ||
106 | + <Unit filename="src/include/winversc.h" /> | ||
107 | + <Unit filename="src/include/xioc.h" /> | ||
108 | + <Unit filename="src/include/xl.h" /> | ||
109 | + <Unit filename="src/lib3270/actions.c"> | ||
110 | + <Option compilerVar="CC" /> | ||
111 | + </Unit> | ||
112 | + <Unit filename="src/lib3270/ansi.c"> | ||
113 | + <Option compilerVar="CC" /> | ||
114 | + </Unit> | ||
115 | + <Unit filename="src/lib3270/bounds.c"> | ||
116 | + <Option compilerVar="CC" /> | ||
117 | + </Unit> | ||
118 | + <Unit filename="src/lib3270/charset.c"> | ||
119 | + <Option compilerVar="CC" /> | ||
120 | + </Unit> | ||
121 | + <Unit filename="src/lib3270/connect.c"> | ||
122 | + <Option compilerVar="CC" /> | ||
123 | + </Unit> | ||
124 | + <Unit filename="src/lib3270/ctlr.c"> | ||
125 | + <Option compilerVar="CC" /> | ||
126 | + </Unit> | ||
127 | + <Unit filename="src/lib3270/ft.c"> | ||
128 | + <Option compilerVar="CC" /> | ||
129 | + </Unit> | ||
130 | + <Unit filename="src/lib3270/ft_cut.c"> | ||
131 | + <Option compilerVar="CC" /> | ||
132 | + </Unit> | ||
133 | + <Unit filename="src/lib3270/ft_dft.c"> | ||
134 | + <Option compilerVar="CC" /> | ||
135 | + </Unit> | ||
136 | + <Unit filename="src/lib3270/glue.c"> | ||
137 | + <Option compilerVar="CC" /> | ||
138 | + </Unit> | ||
139 | + <Unit filename="src/lib3270/host.c"> | ||
140 | + <Option compilerVar="CC" /> | ||
141 | + </Unit> | ||
142 | + <Unit filename="src/lib3270/html.c"> | ||
143 | + <Option compilerVar="CC" /> | ||
144 | + </Unit> | ||
145 | + <Unit filename="src/lib3270/iocalls.c"> | ||
146 | + <Option compilerVar="CC" /> | ||
147 | + </Unit> | ||
148 | + <Unit filename="src/lib3270/kybd.c"> | ||
149 | + <Option compilerVar="CC" /> | ||
150 | + </Unit> | ||
151 | + <Unit filename="src/lib3270/log.c"> | ||
152 | + <Option compilerVar="CC" /> | ||
153 | + </Unit> | ||
154 | + <Unit filename="src/lib3270/macros.c"> | ||
155 | + <Option compilerVar="CC" /> | ||
156 | + </Unit> | ||
157 | + <Unit filename="src/lib3270/mkfb.c"> | ||
158 | + <Option compilerVar="CC" /> | ||
159 | + </Unit> | ||
160 | + <Unit filename="src/lib3270/options.c"> | ||
161 | + <Option compilerVar="CC" /> | ||
162 | + </Unit> | ||
163 | + <Unit filename="src/lib3270/paste.c"> | ||
164 | + <Option compilerVar="CC" /> | ||
165 | + </Unit> | ||
166 | + <Unit filename="src/lib3270/print.c"> | ||
167 | + <Option compilerVar="CC" /> | ||
168 | + </Unit> | ||
169 | + <Unit filename="src/lib3270/printer.c"> | ||
170 | + <Option compilerVar="CC" /> | ||
171 | + </Unit> | ||
172 | + <Unit filename="src/lib3270/resolver.c"> | ||
173 | + <Option compilerVar="CC" /> | ||
174 | + </Unit> | ||
175 | + <Unit filename="src/lib3270/resources.c"> | ||
176 | + <Option compilerVar="CC" /> | ||
177 | + </Unit> | ||
178 | + <Unit filename="src/lib3270/rpq.c"> | ||
179 | + <Option compilerVar="CC" /> | ||
180 | + </Unit> | ||
181 | + <Unit filename="src/lib3270/screen.c"> | ||
182 | + <Option compilerVar="CC" /> | ||
183 | + </Unit> | ||
184 | + <Unit filename="src/lib3270/see.c"> | ||
185 | + <Option compilerVar="CC" /> | ||
186 | + </Unit> | ||
187 | + <Unit filename="src/lib3270/selection.c"> | ||
188 | + <Option compilerVar="CC" /> | ||
189 | + </Unit> | ||
190 | + <Unit filename="src/lib3270/session.c"> | ||
191 | + <Option compilerVar="CC" /> | ||
192 | + </Unit> | ||
193 | + <Unit filename="src/lib3270/sf.c"> | ||
194 | + <Option compilerVar="CC" /> | ||
195 | + </Unit> | ||
196 | + <Unit filename="src/lib3270/ssl.c"> | ||
197 | + <Option compilerVar="CC" /> | ||
198 | + </Unit> | ||
199 | + <Unit filename="src/lib3270/state.c"> | ||
200 | + <Option compilerVar="CC" /> | ||
201 | + </Unit> | ||
202 | + <Unit filename="src/lib3270/telnet.c"> | ||
203 | + <Option compilerVar="CC" /> | ||
204 | + </Unit> | ||
205 | + <Unit filename="src/lib3270/toggles.c"> | ||
206 | + <Option compilerVar="CC" /> | ||
207 | + </Unit> | ||
208 | + <Unit filename="src/lib3270/trace_ds.c"> | ||
209 | + <Option compilerVar="CC" /> | ||
210 | + </Unit> | ||
211 | + <Unit filename="src/lib3270/utf8.c"> | ||
212 | + <Option compilerVar="CC" /> | ||
213 | + </Unit> | ||
214 | + <Unit filename="src/lib3270/util.c"> | ||
215 | + <Option compilerVar="CC" /> | ||
216 | + </Unit> | ||
217 | + <Unit filename="src/lib3270/windows/resources.rc.in" /> | ||
218 | + <Extensions> | ||
219 | + <code_completion /> | ||
220 | + <envvars /> | ||
221 | + <debugger /> | ||
222 | + </Extensions> | ||
223 | + </Project> | ||
224 | +</CodeBlocks_project_file> |
src/include/config.h.in
@@ -0,0 +1,217 @@ | @@ -0,0 +1,217 @@ | ||
1 | +/* | ||
2 | + * Copyright 1999 by Paul Mattes. | ||
3 | + * Permission to use, copy, modify, and distribute this software and its | ||
4 | + * documentation for any purpose and without fee is hereby granted, | ||
5 | + * provided that the above copyright notice appear in all copies and that | ||
6 | + * both that copyright notice and this permission notice appear in | ||
7 | + * supporting documentation. | ||
8 | + * | ||
9 | + * c3270, s3270 and tcl3270 are distributed in the hope that they will | ||
10 | + * be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file LICENSE | ||
12 | + * for more details. | ||
13 | + */ | ||
14 | + | ||
15 | +/* X11 keysyms used by c3270, s3270 and tcl3270 */ | ||
16 | + | ||
17 | +#if !defined(_x11_keysym_h) /*[*/ | ||
18 | +#define _x11_keysym_h 1 | ||
19 | + | ||
20 | +/* Latin-1 Keysyms */ | ||
21 | +#define XK_space 0x020 | ||
22 | +#define XK_exclam 0x021 | ||
23 | +#define XK_quotedbl 0x022 | ||
24 | +#define XK_numbersign 0x023 | ||
25 | +#define XK_dollar 0x024 | ||
26 | +#define XK_percent 0x025 | ||
27 | +#define XK_ampersand 0x026 | ||
28 | +#define XK_apostrophe 0x027 | ||
29 | +#define XK_quoteright 0x027 | ||
30 | +#define XK_parenleft 0x028 | ||
31 | +#define XK_parenright 0x029 | ||
32 | +#define XK_asterisk 0x02a | ||
33 | +#define XK_plus 0x02b | ||
34 | +#define XK_comma 0x02c | ||
35 | +#define XK_minus 0x02d | ||
36 | +#define XK_period 0x02e | ||
37 | +#define XK_slash 0x02f | ||
38 | +#define XK_0 0x030 | ||
39 | +#define XK_1 0x031 | ||
40 | +#define XK_2 0x032 | ||
41 | +#define XK_3 0x033 | ||
42 | +#define XK_4 0x034 | ||
43 | +#define XK_5 0x035 | ||
44 | +#define XK_6 0x036 | ||
45 | +#define XK_7 0x037 | ||
46 | +#define XK_8 0x038 | ||
47 | +#define XK_9 0x039 | ||
48 | +#define XK_colon 0x03a | ||
49 | +#define XK_semicolon 0x03b | ||
50 | +#define XK_less 0x03c | ||
51 | +#define XK_equal 0x03d | ||
52 | +#define XK_greater 0x03e | ||
53 | +#define XK_question 0x03f | ||
54 | +#define XK_at 0x040 | ||
55 | +#define XK_A 0x041 | ||
56 | +#define XK_B 0x042 | ||
57 | +#define XK_C 0x043 | ||
58 | +#define XK_D 0x044 | ||
59 | +#define XK_E 0x045 | ||
60 | +#define XK_F 0x046 | ||
61 | +#define XK_G 0x047 | ||
62 | +#define XK_H 0x048 | ||
63 | +#define XK_I 0x049 | ||
64 | +#define XK_J 0x04a | ||
65 | +#define XK_K 0x04b | ||
66 | +#define XK_L 0x04c | ||
67 | +#define XK_M 0x04d | ||
68 | +#define XK_N 0x04e | ||
69 | +#define XK_O 0x04f | ||
70 | +#define XK_P 0x050 | ||
71 | +#define XK_Q 0x051 | ||
72 | +#define XK_R 0x052 | ||
73 | +#define XK_S 0x053 | ||
74 | +#define XK_T 0x054 | ||
75 | +#define XK_U 0x055 | ||
76 | +#define XK_V 0x056 | ||
77 | +#define XK_W 0x057 | ||
78 | +#define XK_X 0x058 | ||
79 | +#define XK_Y 0x059 | ||
80 | +#define XK_Z 0x05a | ||
81 | +#define XK_bracketleft 0x05b | ||
82 | +#define XK_backslash 0x05c | ||
83 | +#define XK_bracketright 0x05d | ||
84 | +#define XK_asciicircum 0x05e | ||
85 | +#define XK_underscore 0x05f | ||
86 | +#define XK_grave 0x060 | ||
87 | +#define XK_quoteleft 0x060 | ||
88 | +#define XK_a 0x061 | ||
89 | +#define XK_b 0x062 | ||
90 | +#define XK_c 0x063 | ||
91 | +#define XK_d 0x064 | ||
92 | +#define XK_e 0x065 | ||
93 | +#define XK_f 0x066 | ||
94 | +#define XK_g 0x067 | ||
95 | +#define XK_h 0x068 | ||
96 | +#define XK_i 0x069 | ||
97 | +#define XK_j 0x06a | ||
98 | +#define XK_k 0x06b | ||
99 | +#define XK_l 0x06c | ||
100 | +#define XK_m 0x06d | ||
101 | +#define XK_n 0x06e | ||
102 | +#define XK_o 0x06f | ||
103 | +#define XK_p 0x070 | ||
104 | +#define XK_q 0x071 | ||
105 | +#define XK_r 0x072 | ||
106 | +#define XK_s 0x073 | ||
107 | +#define XK_t 0x074 | ||
108 | +#define XK_u 0x075 | ||
109 | +#define XK_v 0x076 | ||
110 | +#define XK_w 0x077 | ||
111 | +#define XK_x 0x078 | ||
112 | +#define XK_y 0x079 | ||
113 | +#define XK_z 0x07a | ||
114 | +#define XK_braceleft 0x07b | ||
115 | +#define XK_bar 0x07c | ||
116 | +#define XK_braceright 0x07d | ||
117 | +#define XK_asciitilde 0x07e | ||
118 | +#define XK_nobreakspace 0x0a0 | ||
119 | +#define XK_exclamdown 0x0a1 | ||
120 | +#define XK_cent 0x0a2 | ||
121 | +#define XK_sterling 0x0a3 | ||
122 | +#define XK_currency 0x0a4 | ||
123 | +#define XK_yen 0x0a5 | ||
124 | +#define XK_brokenbar 0x0a6 | ||
125 | +#define XK_section 0x0a7 | ||
126 | +#define XK_diaeresis 0x0a8 | ||
127 | +#define XK_copyright 0x0a9 | ||
128 | +#define XK_ordfeminine 0x0aa | ||
129 | +#define XK_guillemotleft 0x0ab | ||
130 | +#define XK_notsign 0x0ac | ||
131 | +#define XK_hyphen 0x0ad | ||
132 | +#define XK_registered 0x0ae | ||
133 | +#define XK_macron 0x0af | ||
134 | +#define XK_degree 0x0b0 | ||
135 | +#define XK_plusminus 0x0b1 | ||
136 | +#define XK_twosuperior 0x0b2 | ||
137 | +#define XK_threesuperior 0x0b3 | ||
138 | +#define XK_acute 0x0b4 | ||
139 | +#define XK_mu 0x0b5 | ||
140 | +#define XK_paragraph 0x0b6 | ||
141 | +#define XK_periodcentered 0x0b7 | ||
142 | +#define XK_cedilla 0x0b8 | ||
143 | +#define XK_onesuperior 0x0b9 | ||
144 | +#define XK_masculine 0x0ba | ||
145 | +#define XK_guillemotright 0x0bb | ||
146 | +#define XK_onequarter 0x0bc | ||
147 | +#define XK_onehalf 0x0bd | ||
148 | +#define XK_threequarters 0x0be | ||
149 | +#define XK_questiondown 0x0bf | ||
150 | +#define XK_Agrave 0x0c0 | ||
151 | +#define XK_Aacute 0x0c1 | ||
152 | +#define XK_Acircumflex 0x0c2 | ||
153 | +#define XK_Atilde 0x0c3 | ||
154 | +#define XK_Adiaeresis 0x0c4 | ||
155 | +#define XK_Aring 0x0c5 | ||
156 | +#define XK_AE 0x0c6 | ||
157 | +#define XK_Ccedilla 0x0c7 | ||
158 | +#define XK_Egrave 0x0c8 | ||
159 | +#define XK_Eacute 0x0c9 | ||
160 | +#define XK_Ecircumflex 0x0ca | ||
161 | +#define XK_Ediaeresis 0x0cb | ||
162 | +#define XK_Igrave 0x0cc | ||
163 | +#define XK_Iacute 0x0cd | ||
164 | +#define XK_Icircumflex 0x0ce | ||
165 | +#define XK_Idiaeresis 0x0cf | ||
166 | +#define XK_ETH 0x0d0 | ||
167 | +#define XK_Eth 0x0d0 | ||
168 | +#define XK_Ntilde 0x0d1 | ||
169 | +#define XK_Ograve 0x0d2 | ||
170 | +#define XK_Oacute 0x0d3 | ||
171 | +#define XK_Ocircumflex 0x0d4 | ||
172 | +#define XK_Otilde 0x0d5 | ||
173 | +#define XK_Odiaeresis 0x0d6 | ||
174 | +#define XK_multiply 0x0d7 | ||
175 | +#define XK_Ooblique 0x0d8 | ||
176 | +#define XK_Ugrave 0x0d9 | ||
177 | +#define XK_Uacute 0x0da | ||
178 | +#define XK_Ucircumflex 0x0db | ||
179 | +#define XK_Udiaeresis 0x0dc | ||
180 | +#define XK_Yacute 0x0dd | ||
181 | +#define XK_THORN 0x0de | ||
182 | +#define XK_Thorn 0x0de | ||
183 | +#define XK_ssharp 0x0df | ||
184 | +#define XK_agrave 0x0e0 | ||
185 | +#define XK_aacute 0x0e1 | ||
186 | +#define XK_acircumflex 0x0e2 | ||
187 | +#define XK_atilde 0x0e3 | ||
188 | +#define XK_adiaeresis 0x0e4 | ||
189 | +#define XK_aring 0x0e5 | ||
190 | +#define XK_ae 0x0e6 | ||
191 | +#define XK_ccedilla 0x0e7 | ||
192 | +#define XK_egrave 0x0e8 | ||
193 | +#define XK_eacute 0x0e9 | ||
194 | +#define XK_ecircumflex 0x0ea | ||
195 | +#define XK_ediaeresis 0x0eb | ||
196 | +#define XK_igrave 0x0ec | ||
197 | +#define XK_iacute 0x0ed | ||
198 | +#define XK_icircumflex 0x0ee | ||
199 | +#define XK_idiaeresis 0x0ef | ||
200 | +#define XK_eth 0x0f0 | ||
201 | +#define XK_ntilde 0x0f1 | ||
202 | +#define XK_ograve 0x0f2 | ||
203 | +#define XK_oacute 0x0f3 | ||
204 | +#define XK_ocircumflex 0x0f4 | ||
205 | +#define XK_otilde 0x0f5 | ||
206 | +#define XK_odiaeresis 0x0f6 | ||
207 | +#define XK_division 0x0f7 | ||
208 | +#define XK_oslash 0x0f8 | ||
209 | +#define XK_ugrave 0x0f9 | ||
210 | +#define XK_uacute 0x0fa | ||
211 | +#define XK_ucircumflex 0x0fb | ||
212 | +#define XK_udiaeresis 0x0fc | ||
213 | +#define XK_yacute 0x0fd | ||
214 | +#define XK_thorn 0x0fe | ||
215 | +#define XK_ydiaeresis 0x0ff | ||
216 | + | ||
217 | +#endif /*]*/ |
@@ -0,0 +1,91 @@ | @@ -0,0 +1,91 @@ | ||
1 | +/* | ||
2 | + * "Software PW3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como actions.h e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) | ||
27 | + * licinio@bb.com.br (Licínio Luis Branco) | ||
28 | + * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
29 | + * | ||
30 | + */ | ||
31 | + | ||
32 | + /* | ||
33 | + * Action call table. | ||
34 | + * | ||
35 | + * Usually this definitions are used to declare lib3270's action table but, | ||
36 | + * if you redefine the creation macros it can be used to build a callback | ||
37 | + * table for g_object_connect calls. | ||
38 | + * | ||
39 | + */ | ||
40 | + | ||
41 | + /* Keyboard actions */ | ||
42 | + DECLARE_LIB3270_KEY_ACTION( enter ) | ||
43 | + | ||
44 | + DECLARE_LIB3270_FKEY_ACTION( pfkey ) | ||
45 | + DECLARE_LIB3270_FKEY_ACTION( pakey ) | ||
46 | + | ||
47 | + /* Cursor movement */ | ||
48 | + DECLARE_LIB3270_CURSOR_ACTION( up ) | ||
49 | + DECLARE_LIB3270_CURSOR_ACTION( down ) | ||
50 | + DECLARE_LIB3270_CURSOR_ACTION( left ) | ||
51 | + DECLARE_LIB3270_CURSOR_ACTION( right ) | ||
52 | + DECLARE_LIB3270_CURSOR_ACTION( newline ) | ||
53 | + | ||
54 | + /* Misc actions */ | ||
55 | + DECLARE_LIB3270_ACTION( kybdreset ) | ||
56 | + DECLARE_LIB3270_ACTION( clear ) | ||
57 | + DECLARE_LIB3270_ACTION( eraseinput ) | ||
58 | + | ||
59 | + DECLARE_LIB3270_ACTION( select_field ) | ||
60 | + DECLARE_LIB3270_ACTION( select_all ) | ||
61 | + DECLARE_LIB3270_ACTION( unselect ) | ||
62 | + DECLARE_LIB3270_ACTION( reselect ) | ||
63 | + | ||
64 | + DECLARE_LIB3270_ACTION( firstfield ) | ||
65 | + DECLARE_LIB3270_ACTION( eraseeof ) | ||
66 | + DECLARE_LIB3270_ACTION( eraseeol ) | ||
67 | + DECLARE_LIB3270_ACTION( erase ) | ||
68 | + DECLARE_LIB3270_ACTION( delete ) | ||
69 | + DECLARE_LIB3270_ACTION( dup ) | ||
70 | + DECLARE_LIB3270_ACTION( fieldmark ) | ||
71 | + | ||
72 | + DECLARE_LIB3270_ACTION( backspace ) | ||
73 | + DECLARE_LIB3270_ACTION( previousword ) | ||
74 | + DECLARE_LIB3270_ACTION( nextword ) | ||
75 | + DECLARE_LIB3270_ACTION( fieldend ) | ||
76 | + | ||
77 | + DECLARE_LIB3270_ACTION( nextfield ) | ||
78 | + DECLARE_LIB3270_ACTION( previousfield ) | ||
79 | + | ||
80 | + DECLARE_LIB3270_ACTION( attn ) | ||
81 | + DECLARE_LIB3270_ACTION( break ) | ||
82 | + DECLARE_LIB3270_ACTION( pastenext ) | ||
83 | + | ||
84 | + DECLARE_LIB3270_ACTION( deleteword ) | ||
85 | + DECLARE_LIB3270_ACTION( deletefield ) | ||
86 | + DECLARE_LIB3270_ACTION( sysreq ) | ||
87 | + | ||
88 | + DECLARE_LIB3270_ACTION( testpattern ) | ||
89 | + DECLARE_LIB3270_ACTION( charsettable ) | ||
90 | + | ||
91 | + |
@@ -0,0 +1,58 @@ | @@ -0,0 +1,58 @@ | ||
1 | +/* | ||
2 | + * "Software PW3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como actions.h e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) | ||
27 | + * licinio@bb.com.br (Licínio Luis Branco) | ||
28 | + * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
29 | + * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) | ||
30 | + * | ||
31 | + */ | ||
32 | + | ||
33 | +#ifdef __cplusplus | ||
34 | + extern "C" { | ||
35 | +#endif | ||
36 | + | ||
37 | + // Standard actions | ||
38 | + #define DECLARE_LIB3270_ACTION( name ) LIB3270_EXPORT int lib3270_ ## name (H3270 *hSession); | ||
39 | + #define LIB3270_ACTION( name ) LIB3270_EXPORT int lib3270_ ## name (H3270 *hSession) | ||
40 | + | ||
41 | + // Single key actions | ||
42 | + #define DECLARE_LIB3270_KEY_ACTION( name ) LIB3270_EXPORT int lib3270_ ## name (H3270 *hSession); | ||
43 | + #define LIB3270_KEY_ACTION( name ) LIB3270_EXPORT int lib3270_ ## name (H3270 *hSession) | ||
44 | + | ||
45 | + // Cursor actions | ||
46 | + #define DECLARE_LIB3270_CURSOR_ACTION( name ) LIB3270_EXPORT int lib3270_cursor_ ## name (H3270 *hSession); | ||
47 | + #define LIB3270_CURSOR_ACTION( name ) LIB3270_EXPORT int lib3270_cursor_ ## name (H3270 *hSession) | ||
48 | + | ||
49 | + // PF & PA key actions | ||
50 | + #define DECLARE_LIB3270_FKEY_ACTION( name ) LIB3270_EXPORT int lib3270_ ## name (H3270 *hSession, int key); | ||
51 | + #define LIB3270_FKEY_ACTION( name ) LIB3270_EXPORT int lib3270_ ## name (H3270 *hSession, int key) | ||
52 | + | ||
53 | + // Load action table entries | ||
54 | + #include <lib3270/action_table.h> | ||
55 | + | ||
56 | +#ifdef __cplusplus | ||
57 | + } | ||
58 | +#endif |
@@ -0,0 +1,74 @@ | @@ -0,0 +1,74 @@ | ||
1 | +/* | ||
2 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como charset.h e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | + * licinio@bb.com.br (Licínio Luis Branco) | ||
28 | + * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
29 | + * | ||
30 | + */ | ||
31 | + | ||
32 | +#ifndef LIB3270_CHARSET_H_INCLUDED | ||
33 | + | ||
34 | + #define LIB3270_CHARSET_H_INCLUDED 1 | ||
35 | + | ||
36 | +#ifdef __cplusplus | ||
37 | + extern "C" { | ||
38 | +#endif | ||
39 | + | ||
40 | + struct lib3270_charset | ||
41 | + { | ||
42 | + char * host; | ||
43 | + char * display; | ||
44 | + unsigned long cgcsgid; | ||
45 | + | ||
46 | + // Translation tables | ||
47 | + unsigned short ebc2asc[256]; | ||
48 | + unsigned short asc2ebc[256]; | ||
49 | + | ||
50 | + unsigned short asc2uc[256]; | ||
51 | + | ||
52 | + }; | ||
53 | + | ||
54 | + typedef enum | ||
55 | + { | ||
56 | + CS_ONLY, | ||
57 | + FT_ONLY, | ||
58 | + BOTH | ||
59 | + } lib3270_remap_scope; | ||
60 | + | ||
61 | + LIB3270_EXPORT int lib3270_set_host_charset(H3270 *hSession, const char *name); | ||
62 | + LIB3270_EXPORT const char * lib3270_get_host_charset(H3270 *hSession); | ||
63 | + LIB3270_EXPORT void lib3270_reset_charset(H3270 *hSession, const char * host, const char * display, unsigned long cgcsgid); | ||
64 | + | ||
65 | + LIB3270_EXPORT void lib3270_remap_char(H3270 *hSession, unsigned short ebc, unsigned short iso, lib3270_remap_scope scope, unsigned char one_way); | ||
66 | + LIB3270_EXPORT const char * lib3270_ebc2asc(H3270 *hSession, unsigned char *buffer, int sz); | ||
67 | + LIB3270_EXPORT const char * lib3270_asc2ebc(H3270 *hSession, unsigned char *buffer, int sz); | ||
68 | + | ||
69 | + | ||
70 | +#ifdef __cplusplus | ||
71 | + } | ||
72 | +#endif | ||
73 | + | ||
74 | +#endif // LIB3270_CHARSET_H_INCLUDED |
@@ -0,0 +1,194 @@ | @@ -0,0 +1,194 @@ | ||
1 | +/* | ||
2 | + * "Software PW3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como filetransfer.h e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) | ||
27 | + * licinio@bb.com.br (Licínio Luis Branco) | ||
28 | + * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
29 | + * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) | ||
30 | + * | ||
31 | + */ | ||
32 | + | ||
33 | +#ifndef LIB3270_FILETRANSFER_INCLUDED | ||
34 | + | ||
35 | + #define LIB3270_FILETRANSFER_INCLUDED 1 | ||
36 | + #include <stdio.h> | ||
37 | + #include <sys/time.h> | ||
38 | + #include <lib3270/charset.h> | ||
39 | + | ||
40 | + typedef enum _lib3270_FT_OPTION | ||
41 | + { | ||
42 | + LIB3270_FT_OPTION_SEND = 0x0000, | ||
43 | + | ||
44 | + LIB3270_FT_OPTION_RECEIVE = 0x0001, | ||
45 | + LIB3270_FT_OPTION_ASCII = 0x0002, ///< @brief Convert to ascii | ||
46 | + LIB3270_FT_OPTION_CRLF = 0x0004, ///< @brief Add crlf to each line | ||
47 | + LIB3270_FT_OPTION_APPEND = 0x0008, | ||
48 | + LIB3270_FT_OPTION_REMAP = 0x0010, ///< @brief Remap ASCII<->EBCDIC | ||
49 | + LIB3270_FT_OPTION_UNIX = 0x0020, ///< @brief Unix text file | ||
50 | + | ||
51 | + LIB3270_FT_RECORD_FORMAT_DEFAULT = 0x0000, | ||
52 | + LIB3270_FT_RECORD_FORMAT_FIXED = 0x0100, | ||
53 | + LIB3270_FT_RECORD_FORMAT_VARIABLE = 0x0200, | ||
54 | + LIB3270_FT_RECORD_FORMAT_UNDEFINED = 0x0300, | ||
55 | + | ||
56 | + LIB3270_FT_ALLOCATION_UNITS_DEFAULT = 0x0000, | ||
57 | + LIB3270_FT_ALLOCATION_UNITS_TRACKS = 0x1000, | ||
58 | + LIB3270_FT_ALLOCATION_UNITS_CYLINDERS = 0x2000, | ||
59 | + LIB3270_FT_ALLOCATION_UNITS_AVBLOCK = 0x3000 | ||
60 | + | ||
61 | + } LIB3270_FT_OPTION; | ||
62 | + | ||
63 | + #define LIB3270_FT_ALLOCATION_UNITS_MASK LIB3270_FT_ALLOCATION_UNITS_AVBLOCK | ||
64 | + #define LIB3270_FT_RECORD_FORMAT_MASK LIB3270_FT_RECORD_FORMAT_UNDEFINED | ||
65 | + | ||
66 | + typedef enum _lib3270_ft_value | ||
67 | + { | ||
68 | + | ||
69 | + LIB3270_FT_VALUE_LRECL, | ||
70 | + LIB3270_FT_VALUE_BLKSIZE, | ||
71 | + LIB3270_FT_VALUE_PRIMSPACE, | ||
72 | + LIB3270_FT_VALUE_SECSPACE, | ||
73 | + LIB3270_FT_VALUE_DFT, | ||
74 | + | ||
75 | + LIB3270_FT_VALUE_COUNT | ||
76 | + | ||
77 | + } LIB3270_FT_VALUE; | ||
78 | + | ||
79 | + typedef enum _lib3270_ft_state | ||
80 | + { | ||
81 | + LIB3270_FT_STATE_NONE, /**< No transfer in progress */ | ||
82 | + LIB3270_FT_STATE_AWAIT_ACK, /**< IND$FILE sent, awaiting acknowledgement message */ | ||
83 | + LIB3270_FT_STATE_RUNNING, /**< Ack received, data flowing */ | ||
84 | + LIB3270_FT_STATE_ABORT_WAIT, /**< Awaiting chance to send an abort */ | ||
85 | + LIB3270_FT_STATE_ABORT_SENT /**< Abort sent; awaiting response */ | ||
86 | + } LIB3270_FT_STATE; | ||
87 | + | ||
88 | + #define LIB3270_XLATE_NBUF 4 | ||
89 | + | ||
90 | + struct lib3270_ft_callbacks | ||
91 | + { | ||
92 | + void (*complete)(H3270 *hSession, unsigned long length,double kbytes_sec,const char *msg, void *userdata); | ||
93 | + void (*failed)(H3270 *hSession, unsigned long length,double kbytes_sec,const char *msg, void *userdata); | ||
94 | + void (*message)(H3270 *hSession, const char *msg, void *userdata); | ||
95 | + void (*update)(H3270 *hSession, unsigned long current, unsigned long length, double kbytes_sec, void *userdata); | ||
96 | + void (*running)(H3270 *hSession, int is_cut, void *userdata); | ||
97 | + void (*aborting)(H3270 *hSession, void *userdata); | ||
98 | + void (*state_changed)(H3270 *hSession, LIB3270_FT_STATE state, const char *text, void *userdata); | ||
99 | + }; | ||
100 | + | ||
101 | + /** | ||
102 | + * @brief File transfer data. | ||
103 | + * | ||
104 | + */ | ||
105 | + struct _h3270ft | ||
106 | + { | ||
107 | + struct lib3270_ft_callbacks cbk; ///< @brief Callback table - Always the first one. | ||
108 | + | ||
109 | + int ft_last_cr : 1; ///< @brief CR was last char in local file | ||
110 | + int remap_flag : 1; ///< @brief Remap ASCII<->EBCDIC | ||
111 | + int cr_flag : 1; ///< @brief Add crlf to each line | ||
112 | + int unix_text : 1; ///< @brief Following the convention for UNIX text files. | ||
113 | + int message_flag : 1; ///< @brief Open Request for msg received | ||
114 | + int ascii_flag : 1; ///< @brief Convert to ascii | ||
115 | + int ft_is_cut : 1; ///< @brief File transfer is CUT-style | ||
116 | + int dft_eof : 1; | ||
117 | + | ||
118 | + | ||
119 | + H3270 * host; | ||
120 | + void * user_data; ///< @brief File transfer dialog handle | ||
121 | + FILE * local_file; ///< @brief File descriptor for local file | ||
122 | + unsigned long length; ///< @brief File length | ||
123 | + | ||
124 | + LIB3270_FT_STATE state; | ||
125 | + LIB3270_FT_OPTION flags; | ||
126 | + | ||
127 | + int lrecl; | ||
128 | + int blksize; | ||
129 | + int primspace; | ||
130 | + int secspace; | ||
131 | + int dft; | ||
132 | + | ||
133 | + unsigned long ft_length; ///< Length of transfer | ||
134 | + | ||
135 | + struct timeval starting_time; ///< Starting time | ||
136 | + | ||
137 | + const char * local; ///< Local filename | ||
138 | + const char * remote; ///< Remote filename | ||
139 | + | ||
140 | + // ft_dft.c | ||
141 | + char * abort_string; | ||
142 | + unsigned long recnum; | ||
143 | + unsigned char * dft_savebuf; | ||
144 | + int dft_savebuf_len; | ||
145 | + int dft_savebuf_max; | ||
146 | + | ||
147 | + // ft_cut.c | ||
148 | + int quadrant; | ||
149 | + unsigned long expanded_length; | ||
150 | + char * saved_errmsg; | ||
151 | + int xlate_buffered; ///< buffer count | ||
152 | + int xlate_buf_ix; ///< buffer index | ||
153 | + unsigned char xlate_buf[LIB3270_XLATE_NBUF]; ///< buffer | ||
154 | + | ||
155 | + // Charset | ||
156 | + struct lib3270_charset charset; | ||
157 | + | ||
158 | + }; | ||
159 | + | ||
160 | + | ||
161 | + | ||
162 | + /** | ||
163 | + * Create a new file transfer session. | ||
164 | + * | ||
165 | + * @param session | ||
166 | + * @param flags | ||
167 | + * @param local | ||
168 | + * @param remote | ||
169 | + * @param lrecl | ||
170 | + * @param blksize | ||
171 | + * @param primspace | ||
172 | + * @param secspace | ||
173 | + * @param dft | ||
174 | + * @param msg Pointer to receive message text. | ||
175 | + * | ||
176 | + * @return Filetransfer callback table | ||
177 | + * | ||
178 | + */ | ||
179 | + LIB3270_EXPORT H3270FT * lib3270_ft_new(H3270 *hSession, LIB3270_FT_OPTION flags, const char *local, const char *remote, int lrecl, int blksize, int primspace, int secspace, int dft, const char **msg); | ||
180 | + | ||
181 | + LIB3270_EXPORT int lib3270_ft_start(H3270 *hSession); | ||
182 | + LIB3270_EXPORT int lib3270_ft_destroy(H3270 *hSession); | ||
183 | + | ||
184 | + LIB3270_EXPORT int lib3270_ft_cancel(H3270 *hSession, int force); | ||
185 | + | ||
186 | + LIB3270_EXPORT void lib3270_ft_set_user_data(H3270 *h, void *ptr); | ||
187 | + LIB3270_EXPORT void * lib3270_ft_get_user_data(H3270 *h); | ||
188 | + | ||
189 | + LIB3270_EXPORT LIB3270_FT_STATE lib3270_get_ft_state(H3270 *session); | ||
190 | + | ||
191 | + LIB3270_EXPORT struct lib3270_ft_callbacks * lib3270_get_ft_callbacks(H3270 *session, unsigned short sz); | ||
192 | + | ||
193 | + | ||
194 | +#endif // LIB3270_FILETRANSFER_INCLUDED |
@@ -0,0 +1,53 @@ | @@ -0,0 +1,53 @@ | ||
1 | +/* | ||
2 | + * "Software G3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como html.h e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * | ||
27 | + */ | ||
28 | + | ||
29 | +#ifndef LIB3270_HTML_H_INCLUDED | ||
30 | + | ||
31 | + #define LIB3270_HTML_H_INCLUDED 1 | ||
32 | + | ||
33 | +#ifdef __cplusplus | ||
34 | + extern "C" { | ||
35 | +#endif | ||
36 | + | ||
37 | + typedef enum _lib3270_html_option | ||
38 | + { | ||
39 | + LIB3270_HTML_OPTION_ALL = 0x0001, | ||
40 | + LIB3270_HTML_OPTION_HEADERS = 0x0002, | ||
41 | + LIB3270_HTML_OPTION_FORM = 0x0004, | ||
42 | + | ||
43 | + } LIB3270_HTML_OPTION; | ||
44 | + | ||
45 | + | ||
46 | + LIB3270_EXPORT char * lib3270_get_as_html(H3270 *session, LIB3270_HTML_OPTION option); | ||
47 | + | ||
48 | +#ifdef __cplusplus | ||
49 | + } | ||
50 | +#endif | ||
51 | + | ||
52 | +#endif // LIB3270_HTML_H_INCLUDED | ||
53 | + |
@@ -0,0 +1,48 @@ | @@ -0,0 +1,48 @@ | ||
1 | +/* | ||
2 | + * "Software G3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como internals.h e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * | ||
27 | + */ | ||
28 | + | ||
29 | +#ifndef LIB3270_INTERNALS_H_INCLUDED | ||
30 | + | ||
31 | + #define LIB3270_INTERNALS_H_INCLUDED 1 | ||
32 | + | ||
33 | +#ifdef __cplusplus | ||
34 | + extern "C" { | ||
35 | +#endif | ||
36 | + | ||
37 | + LIB3270_EXPORT void lib3270_data_recv(H3270 *hSession, size_t nr, const unsigned char *netrbuf); | ||
38 | + LIB3270_EXPORT void lib3270_set_disconnected(H3270 *hSession); | ||
39 | + LIB3270_EXPORT void lib3270_set_connected(H3270 *hSession); | ||
40 | + LIB3270_EXPORT void lib3270_setup_session(H3270 *session); | ||
41 | + | ||
42 | + | ||
43 | +#ifdef __cplusplus | ||
44 | + } | ||
45 | +#endif | ||
46 | + | ||
47 | +#endif // LIB3270_HTML_H_INCLUDED | ||
48 | + |
@@ -0,0 +1,80 @@ | @@ -0,0 +1,80 @@ | ||
1 | +/* | ||
2 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como log.h e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | + * | ||
28 | + */ | ||
29 | + | ||
30 | + #ifndef LIB3270_LOG_H_INCLUDED | ||
31 | + | ||
32 | + #include <stdarg.h> | ||
33 | + | ||
34 | + #define LIB3270_LOG_H_INCLUDED 1 | ||
35 | + | ||
36 | + #ifdef ANDROID | ||
37 | + | ||
38 | + #include <android/log.h> | ||
39 | + | ||
40 | + #define DEBUG 1 | ||
41 | + | ||
42 | + #define lib3270_write_log(s,m,f,...) __android_log_print(ANDROID_LOG_VERBOSE, PACKAGE_NAME, f "\n", __VA_ARGS__ ) | ||
43 | + #define lib3270_write_rc(s,m,r,f,...) __android_log_print(ANDROID_LOG_VERBOSE, PACKAGE_NAME, f "\n", __VA_ARGS__ ) | ||
44 | + #define lib3270_write_va_log(s,m,f,a) __android_log_vprint(ANDROID_LOG_VERBOSE, PACKAGE_NAME, f "\n", a) | ||
45 | + | ||
46 | + // #define trace( fmt, ... ) __android_log_print(ANDROID_LOG_DEBUG, PACKAGE_NAME, "%s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__ ); | ||
47 | + #define trace(x, ...) // __VA_ARGS__ | ||
48 | + | ||
49 | + #else | ||
50 | + | ||
51 | + #ifdef __cplusplus | ||
52 | + extern "C" { | ||
53 | + #endif | ||
54 | + | ||
55 | + LIB3270_EXPORT void lib3270_set_log_handler(void (*loghandler)(H3270 *, const char *, int, const char *, va_list)); | ||
56 | + LIB3270_EXPORT int lib3270_write_log(H3270 *session, const char *module, const char *fmt, ...) LIB3270_GNUC_FORMAT(3,4); | ||
57 | + LIB3270_EXPORT int lib3270_write_rc(H3270 *session, const char *module, int rc, const char *fmt, ...) LIB3270_GNUC_FORMAT(4,5); | ||
58 | + LIB3270_EXPORT void lib3270_write_va_log(H3270 *session, const char *module, const char *fmt, va_list arg); | ||
59 | + | ||
60 | + #ifdef DEBUG | ||
61 | + #include <stdio.h> | ||
62 | + #undef trace | ||
63 | + #define trace( fmt, ... ) fprintf(stderr, "%s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__ ); fflush(stderr); | ||
64 | + #define debug( fmt, ... ) fprintf(stderr, "%s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__ ); fflush(stderr); | ||
65 | + #else | ||
66 | + #undef trace | ||
67 | + #define trace(x, ...) // __VA_ARGS__ | ||
68 | + #define debug(x, ...) // __VA_ARGS__ | ||
69 | + #endif | ||
70 | + | ||
71 | + #ifdef __cplusplus | ||
72 | + } | ||
73 | + #endif | ||
74 | + | ||
75 | + #endif // ANDROID | ||
76 | + | ||
77 | + | ||
78 | + #endif // LIB3270_LOG_H_INCLUDED | ||
79 | + | ||
80 | + |
@@ -0,0 +1,36 @@ | @@ -0,0 +1,36 @@ | ||
1 | +/* | ||
2 | + * "Software PW3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como macros.h e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) | ||
27 | + * licinio@bb.com.br (Licínio Luis Branco) | ||
28 | + * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
29 | + * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) | ||
30 | + * | ||
31 | + */ | ||
32 | + | ||
33 | + #define LIB3270_MACRO( name ) LIB3270_EXPORT char * lib3270_macro_ ## name (H3270 *hSession, int argc, const char **argv) | ||
34 | + | ||
35 | + LIB3270_EXPORT char * lib3270_run_macro(H3270 *session, const char **argv); | ||
36 | + |
@@ -0,0 +1,76 @@ | @@ -0,0 +1,76 @@ | ||
1 | +/* | ||
2 | + * "Software PW3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como api.h e possui 444 linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) | ||
27 | + * licinio@bb.com.br (Licínio Luis Branco) | ||
28 | + * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
29 | + * | ||
30 | + */ | ||
31 | + | ||
32 | +#ifndef LIB3270_POPUP_INCLUDED | ||
33 | + | ||
34 | + #define LIB3270_POPUP_INCLUDED 1 | ||
35 | + | ||
36 | +#ifdef __cplusplus | ||
37 | + extern "C" { | ||
38 | +#endif | ||
39 | + | ||
40 | + /** | ||
41 | + * Notification message types. | ||
42 | + * | ||
43 | + */ | ||
44 | + typedef enum _LIB3270_NOTIFY | ||
45 | + { | ||
46 | + LIB3270_NOTIFY_INFO, /**< Simple information dialog */ | ||
47 | + LIB3270_NOTIFY_WARNING, | ||
48 | + LIB3270_NOTIFY_ERROR, | ||
49 | + LIB3270_NOTIFY_CRITICAL, /**< Critical error, user can abort application */ | ||
50 | + | ||
51 | + LIB3270_NOTIFY_USER /**< Reserved, always the last one */ | ||
52 | + } LIB3270_NOTIFY; | ||
53 | + | ||
54 | + LIB3270_EXPORT void lib3270_set_popup_handler(int (*popup_handler)(H3270 *, void *, LIB3270_NOTIFY, const char *, const char *, const char *, va_list)); | ||
55 | + | ||
56 | + /** | ||
57 | + * Pop up an error dialog, based on an error number. | ||
58 | + * | ||
59 | + * @param hSession Session handle | ||
60 | + * @param errn Error number (errno). | ||
61 | + * @param fmt Message format | ||
62 | + * @param ... Arguments for message | ||
63 | + */ | ||
64 | + LIB3270_EXPORT void lib3270_popup_an_errno(H3270 *hSession, int errn, const char *fmt, ...); | ||
65 | + | ||
66 | + LIB3270_EXPORT void lib3270_popup_dialog(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...); | ||
67 | + | ||
68 | + LIB3270_EXPORT void lib3270_popup_va(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, va_list); | ||
69 | + | ||
70 | +#ifdef __cplusplus | ||
71 | + } | ||
72 | +#endif | ||
73 | + | ||
74 | +#endif // LIB3270_POPUP_INCLUDED | ||
75 | + | ||
76 | + |
@@ -0,0 +1,153 @@ | @@ -0,0 +1,153 @@ | ||
1 | +/* | ||
2 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como selection.h e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | + * licinio@bb.com.br (Licínio Luis Branco) | ||
28 | + * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
29 | + * | ||
30 | + */ | ||
31 | + | ||
32 | + #ifndef LIB3270_SELECTION_H_INCLUDED | ||
33 | + | ||
34 | + #define LIB3270_SELECTION_H_INCLUDED 1 | ||
35 | + | ||
36 | + LIB3270_EXPORT int lib3270_unselect(H3270 *session); | ||
37 | + LIB3270_EXPORT void lib3270_select_to(H3270 *session, int baddr); | ||
38 | + LIB3270_EXPORT int lib3270_select_word_at(H3270 *session, int baddr); | ||
39 | + LIB3270_EXPORT int lib3270_select_field_at(H3270 *session, int baddr); | ||
40 | + LIB3270_EXPORT int lib3270_select_field(H3270 *session); | ||
41 | + LIB3270_EXPORT int lib3270_select_all(H3270 *session); | ||
42 | + | ||
43 | + /** | ||
44 | + * "Paste" supplied string. | ||
45 | + * | ||
46 | + * @param h Session handle. | ||
47 | + * @param str String to paste. | ||
48 | + * | ||
49 | + * @see lib3270_pastenext. | ||
50 | + * | ||
51 | + * @return Non 0 if there's more to paste with lib3270_pastenext | ||
52 | + * | ||
53 | + */ | ||
54 | + LIB3270_EXPORT int lib3270_paste(H3270 *h, const unsigned char *str); | ||
55 | + | ||
56 | + /** | ||
57 | + * Paste remaining string. | ||
58 | + * | ||
59 | + * @param h Session handle. | ||
60 | + * | ||
61 | + * @see lib3270_paste. | ||
62 | + * | ||
63 | + * @return Non 0 if there's more to paste. | ||
64 | + * | ||
65 | + */ | ||
66 | + LIB3270_EXPORT int lib3270_pastenext(H3270 *h); | ||
67 | + | ||
68 | + /** | ||
69 | + * Move selected box 1 char in the selected direction. | ||
70 | + * | ||
71 | + * @param h Session handle. | ||
72 | + * @param dir Direction to move | ||
73 | + * | ||
74 | + * @return 0 if the movement can be done, non zero if failed. | ||
75 | + */ | ||
76 | + LIB3270_EXPORT int lib3270_move_selection(H3270 *h, LIB3270_DIRECTION dir); | ||
77 | + | ||
78 | + /** | ||
79 | + * Move selected box. | ||
80 | + * | ||
81 | + * @param h Session handle. | ||
82 | + * @param from Address of origin position inside the selected buffer. | ||
83 | + * @param to Address of the new origin position. | ||
84 | + * | ||
85 | + * @return The new origin position. | ||
86 | + * | ||
87 | + */ | ||
88 | + LIB3270_EXPORT int lib3270_move_selected_area(H3270 *h, int from, int to); | ||
89 | + | ||
90 | + /** | ||
91 | + * Drag selected region. | ||
92 | + * | ||
93 | + * Move or resize selected box according to the selection flags. | ||
94 | + * | ||
95 | + * @param h Session handle. | ||
96 | + * @param flag Selection flag. | ||
97 | + * @param origin Reference position (got from mouse button down or other move action). | ||
98 | + * @param baddr New position. | ||
99 | + * | ||
100 | + * @return The new reference position. | ||
101 | + * | ||
102 | + */ | ||
103 | + LIB3270_EXPORT int lib3270_drag_selection(H3270 *h, unsigned char flag, int origin, int baddr); | ||
104 | + | ||
105 | + /** | ||
106 | + * Gets the selected range of characters in the screen | ||
107 | + * | ||
108 | + * @param h Session handle. | ||
109 | + * @param start return location for start of selection, as a character offset. | ||
110 | + * @param end return location for end of selection, as a character offset. | ||
111 | + * | ||
112 | + * @return Non 0 if selection is non-empty | ||
113 | + * | ||
114 | + */ | ||
115 | + LIB3270_EXPORT int lib3270_get_selection_bounds(H3270 *hSession, int *start, int *end); | ||
116 | + | ||
117 | + /** | ||
118 | + * Get bitmasked flag for the current selection. | ||
119 | + * | ||
120 | + * Calculate flags to help drawing of the correct mouse pointer over a selection. | ||
121 | + * | ||
122 | + * @param h Session handle. | ||
123 | + * @param baddr Position. | ||
124 | + * | ||
125 | + * @return bitmask for mouse pointer. | ||
126 | + */ | ||
127 | + LIB3270_EXPORT unsigned char lib3270_get_selection_flags(H3270 *h, int baddr); | ||
128 | + | ||
129 | + /** | ||
130 | + * Get a string from required region. | ||
131 | + * | ||
132 | + * @param h Session handle. | ||
133 | + * @param start_pos First char to get. | ||
134 | + * @param end_pos Last char to get. | ||
135 | + * @param all zero to get only selected chars. | ||
136 | + * | ||
137 | + * @return String with selected region (release it with free() | ||
138 | + * | ||
139 | + */ | ||
140 | + LIB3270_EXPORT char * lib3270_get_region(H3270 *h, int start_pos, int end_pos, unsigned char all); | ||
141 | + | ||
142 | + | ||
143 | + /** | ||
144 | + * Selects a range of characters in the screen. | ||
145 | + * | ||
146 | + * @param h Session handle. | ||
147 | + * @param start_offset Start offset. | ||
148 | + * @param end_offset : End offset. | ||
149 | + * | ||
150 | + */ | ||
151 | + LIB3270_EXPORT int lib3270_select_region(H3270 *h, int start, int end); | ||
152 | + | ||
153 | + #endif // LIB3270_SELECTION_H_INCLUDED |
@@ -0,0 +1,96 @@ | @@ -0,0 +1,96 @@ | ||
1 | +/* | ||
2 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como session.h e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | + * | ||
28 | + */ | ||
29 | + | ||
30 | + #ifndef LIB3270_SESSION_H_INCLUDED | ||
31 | + | ||
32 | + #define LIB3270_SESSION_H_INCLUDED 1 | ||
33 | + | ||
34 | + #ifdef WIN32 | ||
35 | + #include <winsock2.h> | ||
36 | + #include <windows.h> | ||
37 | + #include <ws2tcpip.h> | ||
38 | + #else | ||
39 | + #include <sys/socket.h> | ||
40 | + #endif // WIN32 | ||
41 | + | ||
42 | + #include <lib3270/popup.h> | ||
43 | + | ||
44 | + struct lib3270_session_callbacks | ||
45 | + { | ||
46 | + int (*write)(H3270 *hSession, unsigned const char *buf, int len); | ||
47 | + void (*disconnect)(H3270 *hSession); | ||
48 | + | ||
49 | + void (*configure)(H3270 *session, unsigned short rows, unsigned short cols); | ||
50 | + void (*update)(H3270 *session, int baddr, unsigned char c, unsigned short attr, unsigned char cursor); | ||
51 | + void (*changed)(H3270 *session, int offset, int len); | ||
52 | + void (*display)(H3270 *session); | ||
53 | + void (*set_width)(H3270 *session, int width); | ||
54 | + | ||
55 | + void (*update_cursor)(H3270 *session, unsigned short row, unsigned short col, unsigned char c, unsigned short attr); | ||
56 | + void (*update_oia)(H3270 *session, LIB3270_FLAG id, unsigned char on); | ||
57 | + void (*update_toggle)(H3270 *session, LIB3270_TOGGLE ix, unsigned char value, LIB3270_TOGGLE_TYPE reason, const char *name); | ||
58 | + void (*update_luname)(H3270 *session, const char *name); | ||
59 | + void (*update_status)(H3270 *session, LIB3270_MESSAGE id); | ||
60 | + void (*update_connect)(H3270 *session, unsigned char connected); | ||
61 | + void (*update_model)(H3270 *session, const char *name, int model, int rows, int cols); | ||
62 | + void (*update_selection)(H3270 *session, int start, int end); | ||
63 | + void (*update_ssl)(H3270 *session, LIB3270_SSL_STATE state); | ||
64 | + | ||
65 | + void (*set_timer)(H3270 *session, unsigned char on); | ||
66 | + void (*erase)(H3270 *session); | ||
67 | + void (*suspend)(H3270 *session); | ||
68 | + void (*resume)(H3270 *session); | ||
69 | + void (*cursor)(H3270 *session, LIB3270_POINTER id); | ||
70 | + void (*set_selection)(H3270 *session, unsigned char on); | ||
71 | + void (*ctlr_done)(H3270 *session); | ||
72 | + void (*autostart)(H3270 *session); | ||
73 | + int (*print)(H3270 *session); | ||
74 | + | ||
75 | + void (*message)(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *text); | ||
76 | + | ||
77 | + }; | ||
78 | + | ||
79 | + /** | ||
80 | + * Register application Handlers. | ||
81 | + * | ||
82 | + * @param cbk Structure with the application I/O handles to set. | ||
83 | + * | ||
84 | + * @return 0 if ok, error code if not. | ||
85 | + * | ||
86 | + */ | ||
87 | + int LIB3270_EXPORT lib3270_set_session_callbacks(const struct lib3270_callbacks *cbk); | ||
88 | + | ||
89 | + LIB3270_EXPORT int lib3270_getpeername(H3270 *hSession, struct sockaddr *addr, socklen_t *addrlen); | ||
90 | + LIB3270_EXPORT int lib3270_getsockname(H3270 *hSession, struct sockaddr *addr, socklen_t *addrlen); | ||
91 | + | ||
92 | + LIB3270_EXPORT struct lib3270_session_callbacks * lib3270_get_session_callbacks(H3270 *session, unsigned short sz); | ||
93 | + | ||
94 | +#endif // LIB3270_SESSION_H_INCLUDED | ||
95 | + | ||
96 | + |
@@ -0,0 +1,95 @@ | @@ -0,0 +1,95 @@ | ||
1 | +/* | ||
2 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como session.h e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | + * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
28 | + * | ||
29 | + */ | ||
30 | + | ||
31 | +#ifndef LIB3270_TRACE_H_INCLUDED | ||
32 | + | ||
33 | + #define LIB3270_TRACE_H_INCLUDED 1 | ||
34 | + | ||
35 | +#ifdef __cplusplus | ||
36 | + extern "C" { | ||
37 | +#endif | ||
38 | + | ||
39 | +#ifdef _WIN32 | ||
40 | + #define LIB3270_AS_PRINTF(a,b) /* __attribute__((format(printf, a, b))) */ | ||
41 | +#else | ||
42 | + #define LIB3270_AS_PRINTF(a,b) __attribute__((format(printf, a, b))) | ||
43 | +#endif | ||
44 | + | ||
45 | + typedef void (*LIB3270_TRACE_HANDLER)(H3270 *, const char *, va_list); | ||
46 | + | ||
47 | + | ||
48 | + /** | ||
49 | + * Set trace handle callback. | ||
50 | + * | ||
51 | + * @param handle Callback to write in trace file or show trace window (NULL send all trace to stdout/syslog). | ||
52 | + * @param data User data to pass to the trace handler. | ||
53 | + * | ||
54 | + * @return Current trace handler | ||
55 | + */ | ||
56 | + LIB3270_EXPORT LIB3270_TRACE_HANDLER lib3270_set_trace_handler( LIB3270_TRACE_HANDLER handler); | ||
57 | + | ||
58 | + /** | ||
59 | + * Write on trace file. | ||
60 | + * | ||
61 | + * Write text on trace file, if DStrace is enabled. | ||
62 | + * | ||
63 | + * @param fmt String format. | ||
64 | + * @param ... Arguments. | ||
65 | + * | ||
66 | + */ | ||
67 | + LIB3270_EXPORT void lib3270_write_dstrace(H3270 *session, const char *fmt, ...) LIB3270_AS_PRINTF(2,3); | ||
68 | + | ||
69 | + /** | ||
70 | + * Write on trace file. | ||
71 | + * | ||
72 | + * Write text on trace file, if network trace is enabled. | ||
73 | + * | ||
74 | + * @param fmt String format. | ||
75 | + * @param ... Arguments. | ||
76 | + * | ||
77 | + */ | ||
78 | + LIB3270_EXPORT void lib3270_write_nettrace(H3270 *session, const char *fmt, ...) LIB3270_AS_PRINTF(2,3); | ||
79 | + | ||
80 | + /** | ||
81 | + * Write on trace file. | ||
82 | + * | ||
83 | + * Write text on trace file, if event is enabled. | ||
84 | + * | ||
85 | + * @param fmt String format. | ||
86 | + * @param ... Arguments. | ||
87 | + * | ||
88 | + */ | ||
89 | + LIB3270_EXPORT void lib3270_trace_event(H3270 *session, const char *fmt, ...) LIB3270_AS_PRINTF(2,3); | ||
90 | + | ||
91 | +#ifdef __cplusplus | ||
92 | + } | ||
93 | +#endif | ||
94 | + | ||
95 | +#endif // LIB3270_TRACE_H_INCLUDED |
src/include/private.h
@@ -1,656 +0,0 @@ | @@ -1,656 +0,0 @@ | ||
1 | -/* | ||
2 | - * "Software G3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | - * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | - * | ||
6 | - * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | - * | ||
8 | - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | - * Free Software Foundation. | ||
11 | - * | ||
12 | - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | - * obter mais detalhes. | ||
16 | - * | ||
17 | - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | - * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | - * | ||
21 | - * Este programa está nomeado como private.h e possui - linhas de código. | ||
22 | - * | ||
23 | - * Contatos: | ||
24 | - * | ||
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) | ||
27 | - * | ||
28 | - */ | ||
29 | - | ||
30 | -#ifdef WIN32 | ||
31 | - #include <winsock2.h> | ||
32 | - #include <windows.h> | ||
33 | -#endif // WIN32 | ||
34 | - | ||
35 | -/* Autoconf settings. */ | ||
36 | -#include <config.h> /* autoconf settings */ | ||
37 | -#include <lib3270.h> /* lib3270 API calls and defs */ | ||
38 | -#include <lib3270/charset.h> | ||
39 | -#include "api.h" | ||
40 | - | ||
41 | -#if defined(X3270_TN3270E) && !defined(X3270_ANSI) /*[*/ | ||
42 | - #define X3270_ANSI 1 /* RFC2355 requires NVT mode */ | ||
43 | -#endif /*]*/ | ||
44 | - | ||
45 | -#if defined(HAVE_VASPRINTF) && !defined(_GNU_SOURCE) /*[*/ | ||
46 | - #define _GNU_SOURCE /* vasprintf isn't POSIX */ | ||
47 | -#endif /*]*/ | ||
48 | - | ||
49 | -/* | ||
50 | - * gettext stuff | ||
51 | - */ | ||
52 | -#ifdef ANDROID | ||
53 | - #undef HAVE_LIBINTL | ||
54 | - #undef HAVE_LIBSSL | ||
55 | -#endif | ||
56 | - | ||
57 | -#ifdef HAVE_LIBINTL | ||
58 | - #include <libintl.h> | ||
59 | - #define _( x ) gettext(x) | ||
60 | - #define N_( x ) x | ||
61 | -#else | ||
62 | - #define _( x ) x | ||
63 | - #define N_( x ) x | ||
64 | -#endif // HAVE_LIBINTL | ||
65 | - | ||
66 | -#define action_name(x) #x | ||
67 | - | ||
68 | -/* | ||
69 | - * OS-specific #defines. Except for the blocking-connect workarounds, these | ||
70 | - * should be replaced with autoconf probes as soon as possible. | ||
71 | - */ | ||
72 | - | ||
73 | -/* | ||
74 | - * BLOCKING_CONNECT_ONLY | ||
75 | - * Use only blocking sockets. | ||
76 | - */ | ||
77 | -#if defined(sco) /*[*/ | ||
78 | - #define BLOCKING_CONNECT_ONLY 1 | ||
79 | -#endif /*]*/ | ||
80 | - | ||
81 | -#if defined(apollo) /*[*/ | ||
82 | - #define BLOCKING_CONNECT_ONLY 1 | ||
83 | -#endif /*]*/ | ||
84 | - | ||
85 | -/* | ||
86 | - * Compiler-specific #defines. | ||
87 | - */ | ||
88 | - | ||
89 | -/* 'unused' explicitly flags an unused parameter */ | ||
90 | -#if defined(__GNUC__) /*[*/ | ||
91 | - #define unused __attribute__((__unused__)) | ||
92 | - #define printflike(s,f) __attribute__ ((__format__ (__printf__, s, f))) | ||
93 | -#else /*][*/ | ||
94 | - #define unused /* nothing */ | ||
95 | - #define printflike(s, f) /* nothing */ | ||
96 | -#endif /*]*/ | ||
97 | - | ||
98 | - | ||
99 | - | ||
100 | -/* | ||
101 | - * Prerequisite #includes. | ||
102 | - */ | ||
103 | -#include <stdio.h> /* Unix standard I/O library */ | ||
104 | -#include <unistd.h> /* Unix system calls */ | ||
105 | -#include <ctype.h> /* Character classes */ | ||
106 | -#include <string.h> /* String manipulations */ | ||
107 | -#include <sys/types.h> /* Basic system data types */ | ||
108 | -#include <sys/time.h> /* System time-related data types */ | ||
109 | -#include <time.h> /* C library time functions */ | ||
110 | -#include "localdefs.h" /* {s,tcl,c}3270-specific defines */ | ||
111 | - | ||
112 | -/* | ||
113 | - * Cancel out contradictory parts. | ||
114 | - */ | ||
115 | -#if !defined(X3270_DISPLAY) /*[*/ | ||
116 | - #undef X3270_KEYPAD | ||
117 | - #undef X3270_MENUS | ||
118 | -#endif /*]*/ | ||
119 | - | ||
120 | -/* types of internal actions */ | ||
121 | -enum iaction { | ||
122 | - IA_STRING, IA_PASTE, IA_REDRAW, | ||
123 | - IA_KEYPAD, IA_DEFAULT, IA_KEY, | ||
124 | - IA_MACRO, IA_SCRIPT, IA_PEEK, | ||
125 | - IA_TYPEAHEAD, IA_FT, IA_COMMAND, IA_KEYMAP, | ||
126 | - IA_IDLE | ||
127 | -}; | ||
128 | - | ||
129 | -// Version strings | ||
130 | -LIB3270_INTERNAL const char * build; | ||
131 | -LIB3270_INTERNAL const char * app_defaults_version; | ||
132 | -LIB3270_INTERNAL const char * sccsid; | ||
133 | -LIB3270_INTERNAL const char * build_rpq_timestamp; | ||
134 | -LIB3270_INTERNAL const char * build_rpq_version; | ||
135 | -LIB3270_INTERNAL const char * build_rpq_revision; | ||
136 | - | ||
137 | -#if defined(X3270_DBCS) /*[*/ | ||
138 | - LIB3270_INTERNAL Boolean dbcs; | ||
139 | -#endif /*]*/ | ||
140 | - | ||
141 | - | ||
142 | -/* toggle names */ | ||
143 | -struct toggle_name { | ||
144 | - const char *name; | ||
145 | - int index; | ||
146 | -}; | ||
147 | - | ||
148 | - | ||
149 | -/* input key type */ | ||
150 | - | ||
151 | -/* Naming convention for private actions. */ | ||
152 | -#define PA_PFX "PA-" | ||
153 | - | ||
154 | -/// @brief Shorthand macros | ||
155 | -#define CN ((char *) NULL) | ||
156 | -#define PN ((XtPointer) NULL) | ||
157 | -#define Replace(var, value) { lib3270_free(var); var = (value); }; | ||
158 | - | ||
159 | -/// @brief Configuration change masks. | ||
160 | -#define NO_CHANGE 0x0000 /// @brief no change | ||
161 | -#define MODEL_CHANGE 0x0001 /// @brief screen dimensions changed | ||
162 | -#define FONT_CHANGE 0x0002 /// @brief emulator font changed | ||
163 | -#define COLOR_CHANGE 0x0004 /// @brief color scheme or 3278/9 mode changed | ||
164 | -#define SCROLL_CHANGE 0x0008 /// @brief scrollbar snapped on or off | ||
165 | -#define CHARSET_CHANGE 0x0010 /// @brief character set changed | ||
166 | -#define ALL_CHANGE 0xffff /// @brief everything changed | ||
167 | - | ||
168 | -/* Portability macros */ | ||
169 | - | ||
170 | -/* Equivalent of setlinebuf */ | ||
171 | - | ||
172 | -#if defined(_IOLBF) /*[*/ | ||
173 | - #define SETLINEBUF(s) setvbuf(s, (char *)NULL, _IOLBF, BUFSIZ) | ||
174 | -#else /*][*/ | ||
175 | - #define SETLINEBUF(s) setlinebuf(s) | ||
176 | -#endif /*]*/ | ||
177 | - | ||
178 | -/* Motorola version of gettimeofday */ | ||
179 | - | ||
180 | -#if defined(MOTOROLA) | ||
181 | - #define gettimeofday(tp,tz) gettimeofday(tp) | ||
182 | -#endif | ||
183 | - | ||
184 | -/* Default DFT file transfer buffer size. */ | ||
185 | -#if defined(X3270_FT) && !defined(DFT_BUF) /*[*/ | ||
186 | - #define DFT_BUF (4 * 1024) | ||
187 | -#endif /*]*/ | ||
188 | - | ||
189 | -/* DBCS Preedit Types */ | ||
190 | -#if defined(X3270_DBCS) /*[*/ | ||
191 | - #define PT_ROOT "Root" | ||
192 | - #define PT_OVER_THE_SPOT "OverTheSpot" | ||
193 | - #define PT_OFF_THE_SPOT "OffTheSpot" | ||
194 | - #define PT_ON_THE_SPOT "OnTheSpot" | ||
195 | -#endif /*]*/ | ||
196 | - | ||
197 | -/** input key type */ | ||
198 | -enum keytype | ||
199 | -{ | ||
200 | - KT_STD, | ||
201 | - KT_GE | ||
202 | -}; | ||
203 | - | ||
204 | -LIB3270_INTERNAL struct _ansictl | ||
205 | -{ | ||
206 | - char vintr; | ||
207 | - char vquit; | ||
208 | - char verase; | ||
209 | - char vkill; | ||
210 | - char veof; | ||
211 | - char vwerase; | ||
212 | - char vrprnt; | ||
213 | - char vlnext; | ||
214 | -} ansictl; | ||
215 | - | ||
216 | -/** @brief Extended attributes */ | ||
217 | -struct lib3270_ea | ||
218 | -{ | ||
219 | - unsigned char cc; ///< @brief EBCDIC or ASCII character code | ||
220 | - unsigned char fa; ///< @brief field attribute, it nonzero | ||
221 | - unsigned char fg; ///< @brief foreground color (0x00 or 0xf<n>) | ||
222 | - unsigned char bg; ///< @brief background color (0x00 or 0xf<n>) | ||
223 | - unsigned char gr; ///< @brief ANSI graphics rendition bits | ||
224 | - unsigned char cs; ///< @brief character set (GE flag, or 0..2) | ||
225 | - unsigned char ic; ///< @brief input control (DBCS) | ||
226 | - unsigned char db; ///< @brief DBCS state | ||
227 | -}; | ||
228 | - | ||
229 | -struct lib3270_text | ||
230 | -{ | ||
231 | - unsigned char chr; ///< @brief ASCII character code | ||
232 | - unsigned short attr; ///< @brief Converted character attribute (color & etc) | ||
233 | -}; | ||
234 | - | ||
235 | -#ifndef HEADER_SSL_H | ||
236 | - #define SSL void | ||
237 | -#endif // !HEADER_SSL_H | ||
238 | - | ||
239 | -#ifndef LIB3270_TA | ||
240 | - #define LIB3270_TA void | ||
241 | -#endif // !LIB3270_TA | ||
242 | - | ||
243 | -#define LIB3270_MB_MAX 16 | ||
244 | -#define LIB3270_DEFAULT_CGEN 0x02b90000 | ||
245 | -#define LIB3270_DEFAULT_CSET 0x00000025 | ||
246 | - | ||
247 | -#define LIB3270_FULL_MODEL_NAME_LENGTH 13 | ||
248 | -#define LIB3270_LU_MAX 32 | ||
249 | - | ||
250 | -#define LIB3270_TELNET_N_OPTS 256 | ||
251 | - | ||
252 | -/** | ||
253 | - * | ||
254 | - * @brief Timeout control structure. | ||
255 | - * | ||
256 | - */ | ||
257 | -typedef struct timeout | ||
258 | -{ | ||
259 | - struct timeout *next; | ||
260 | - | ||
261 | -#if defined(_WIN32) /*[*/ | ||
262 | - unsigned long long ts; | ||
263 | -#else /*][*/ | ||
264 | - struct timeval tv; | ||
265 | -#endif /*]*/ | ||
266 | - | ||
267 | - void (*proc)(H3270 *session); | ||
268 | - | ||
269 | - H3270 *session; | ||
270 | - | ||
271 | - unsigned char in_play; | ||
272 | -} timeout_t; | ||
273 | - | ||
274 | - | ||
275 | -/** | ||
276 | - * | ||
277 | - * @brief I/O events. | ||
278 | - * | ||
279 | - */ | ||
280 | -typedef struct input | ||
281 | -{ | ||
282 | - struct input * next; | ||
283 | - H3270 * session; | ||
284 | - int fd; | ||
285 | - LIB3270_IO_FLAG flag; | ||
286 | - void * userdata; | ||
287 | - | ||
288 | - void (*call)(H3270 *, int, LIB3270_IO_FLAG, void *); | ||
289 | - | ||
290 | -} input_t; | ||
291 | - | ||
292 | - | ||
293 | -/** | ||
294 | - * | ||
295 | - * @brief lib3270 session data | ||
296 | - * | ||
297 | - */ | ||
298 | -struct _h3270 | ||
299 | -{ | ||
300 | - struct lib3270_session_callbacks cbk; // Callback table - Always the first one. | ||
301 | - | ||
302 | -// unsigned short sz; /**< Struct size */ | ||
303 | - | ||
304 | - // Connection info | ||
305 | - int sock; /**< Network socket */ | ||
306 | - LIB3270_CSTATE cstate; /**< Connection state */ | ||
307 | - | ||
308 | - // flags | ||
309 | - LIB3270_OPTION options; /**< Session options */ | ||
310 | - | ||
311 | - int bgthread : 1; /**< Running on a background thread ? */ | ||
312 | - int selected : 1; /**< Has selected region? */ | ||
313 | - int rectsel : 1; /**< Selected region is a rectangle ? */ | ||
314 | - int vcontrol : 1; /**< Visible control ? */ | ||
315 | - int modified_sel : 1; | ||
316 | - int mono : 1; /**< Forces monochrome display */ | ||
317 | - int m3279 : 1; | ||
318 | - int extended : 1; | ||
319 | - int typeahead : 1; | ||
320 | - int numeric_lock : 1; | ||
321 | - int oerr_lock : 1; | ||
322 | - int unlock_delay : 1; | ||
323 | - int auto_reconnect_inprogress : 1; | ||
324 | - unsigned int colors : 5; | ||
325 | - int apl_mode : 1; | ||
326 | - int icrnl : 1; | ||
327 | - int inlcr : 1; | ||
328 | - int onlcr : 1; | ||
329 | - int bsd_tm : 1; | ||
330 | - int syncing : 1; | ||
331 | - int reverse : 1; /**< reverse-input mode */ | ||
332 | - int dbcs : 1; | ||
333 | - int linemode : 1; | ||
334 | - int trace_skipping : 1; | ||
335 | - int need_tls_follows : 1; | ||
336 | - int cut_xfer_in_progress : 1; | ||
337 | -// int auto_keymap : 1; | ||
338 | - int formatted : 1; /**< Formatted screen flag */ | ||
339 | - int starting : 1; /**< Is starting (no first screen)? */ | ||
340 | - | ||
341 | - char * oversize; | ||
342 | - | ||
343 | - LIB3270_SSL_STATE secure; | ||
344 | - | ||
345 | - struct lib3270_toggle | ||
346 | - { | ||
347 | - char value; /**< toggle value */ | ||
348 | - void (*upcall)(H3270 *, struct lib3270_toggle *, LIB3270_TOGGLE_TYPE); /**< change value */ | ||
349 | - } toggle[LIB3270_TOGGLE_COUNT]; | ||
350 | - | ||
351 | - // Network & Termtype | ||
352 | - char * connected_type; | ||
353 | - char * connected_lu; | ||
354 | - char luname[LIB3270_LUNAME_LENGTH+1]; | ||
355 | - | ||
356 | - char full_model_name[LIB3270_FULL_MODEL_NAME_LENGTH+1]; | ||
357 | - char * model_name; | ||
358 | - int model_num; | ||
359 | - char * termtype; | ||
360 | - | ||
361 | - struct | ||
362 | - { | ||
363 | - char * current; /**< The hostname part, stripped of qualifiers, luname and port number */ | ||
364 | - char * full; /**< The entire string, for use in reconnecting */ | ||
365 | - char * srvc; /**< The service name */ | ||
366 | - char * qualified; | ||
367 | - } host; | ||
368 | - | ||
369 | - char * proxy; /**< Proxy server (type:host[:port]) */ | ||
370 | - char * termname; | ||
371 | - | ||
372 | - struct lib3270_charset charset; | ||
373 | - | ||
374 | - LIB3270_MESSAGE oia_status; | ||
375 | - | ||
376 | - unsigned char oia_flag[LIB3270_FLAG_COUNT]; | ||
377 | - | ||
378 | - unsigned short current_port; | ||
379 | - | ||
380 | - // Misc | ||
381 | - H3270FT * ft; /**< Active file transfer data */ | ||
382 | - | ||
383 | - // screen info | ||
384 | - int ov_rows; | ||
385 | - int ov_cols; | ||
386 | - int maxROWS; | ||
387 | - int maxCOLS; | ||
388 | - unsigned short rows; | ||
389 | - unsigned short cols; | ||
390 | - unsigned short pointer; /**< @brief Current pointer. */ | ||
391 | - int cursor_addr; | ||
392 | - int buffer_addr; | ||
393 | - char flipped; | ||
394 | - int screen_alt; /**< alternate screen? */ | ||
395 | - int is_altbuffer; | ||
396 | - | ||
397 | - // Screen contents | ||
398 | - void * buffer[2]; /**< Internal buffers */ | ||
399 | - struct lib3270_ea * ea_buf; /**< 3270 device buffer. ea_buf[-1] is the dummy default field attribute */ | ||
400 | - struct lib3270_ea * aea_buf; /**< alternate 3270 extended attribute buffer */ | ||
401 | - struct lib3270_text * text; /**< Converted 3270 chars */ | ||
402 | - | ||
403 | - // host.c | ||
404 | - char std_ds_host; | ||
405 | - char no_login_host; | ||
406 | - char non_tn3270e_host; | ||
407 | - char passthru_host; | ||
408 | - char ssl_host; | ||
409 | - char ever_3270; | ||
410 | - | ||
411 | - // ctlr.c | ||
412 | - int sscp_start; | ||
413 | - unsigned char default_fg; | ||
414 | - unsigned char default_bg; | ||
415 | - unsigned char default_gr; | ||
416 | - unsigned char default_cs; | ||
417 | - unsigned char default_ic; | ||
418 | - char reply_mode; | ||
419 | - int trace_primed : 1; | ||
420 | - int ticking : 1; | ||
421 | - int mticking : 1; | ||
422 | - int crm_nattr; | ||
423 | - unsigned char crm_attr[16]; | ||
424 | - unsigned char * zero_buf; /**< empty buffer, for area clears */ | ||
425 | - | ||
426 | - struct timeval t_start; | ||
427 | - void * tick_id; | ||
428 | - struct timeval t_want; | ||
429 | - | ||
430 | - // Telnet.c | ||
431 | - unsigned char * ibuf; | ||
432 | - int ibuf_size; /**< size of ibuf */ | ||
433 | - unsigned char * obuf; /**< 3270 output buffer */ | ||
434 | - unsigned char * obptr; | ||
435 | - time_t ns_time; | ||
436 | - int ns_brcvd; | ||
437 | - int ns_rrcvd; | ||
438 | - int ns_bsent; | ||
439 | - int ns_rsent; | ||
440 | - struct timeval ds_ts; | ||
441 | - unsigned long e_funcs; /**< negotiated TN3270E functions */ | ||
442 | - unsigned short e_xmit_seq; /**< transmit sequence number */ | ||
443 | - int response_required; | ||
444 | - int tn3270e_bound; | ||
445 | - int tn3270e_negotiated; | ||
446 | - int ansi_data; | ||
447 | - int lnext; | ||
448 | - int backslashed; | ||
449 | - char plu_name[LIB3270_BIND_PLU_NAME_MAX+1]; | ||
450 | - char **lus; | ||
451 | - char **curr_lu; | ||
452 | - char * try_lu; | ||
453 | - int proxy_type; | ||
454 | - char * proxy_host; | ||
455 | - char * proxy_portname; | ||
456 | - unsigned short proxy_port; | ||
457 | - char reported_lu[LIB3270_LU_MAX+1]; | ||
458 | - char reported_type[LIB3270_LU_MAX+1]; | ||
459 | - | ||
460 | - enum | ||
461 | - { | ||
462 | - E_NONE, | ||
463 | - E_3270, | ||
464 | - E_NVT, | ||
465 | - E_SSCP | ||
466 | - } tn3270e_submode; | ||
467 | - | ||
468 | - unsigned char * lbuf; /**< line-mode input buffer */ | ||
469 | - unsigned char * lbptr; | ||
470 | - | ||
471 | - | ||
472 | - // 3270 input buffer | ||
473 | - unsigned char * ibptr; | ||
474 | - unsigned char * obuf_base; | ||
475 | - int obuf_size; | ||
476 | -// unsigned char * netrbuf; | ||
477 | - | ||
478 | - // network input buffer | ||
479 | - unsigned char * sbbuf; | ||
480 | - | ||
481 | - // telnet sub-option buffer | ||
482 | - unsigned char * sbptr; | ||
483 | - unsigned char telnet_state; | ||
484 | -// char ttype_tmpval[13]; | ||
485 | - | ||
486 | - unsigned char myopts[LIB3270_TELNET_N_OPTS]; | ||
487 | - unsigned char hisopts[LIB3270_TELNET_N_OPTS]; | ||
488 | - | ||
489 | - // kybd.c | ||
490 | - unsigned int kybdlock; ///< @brief keyboard lock state | ||
491 | - unsigned char aid; ///< @brief current attention ID | ||
492 | - void * unlock_id; | ||
493 | - time_t unlock_delay_time; | ||
494 | - unsigned long unlock_delay_ms; ///< @brief Delay before actually unlocking the keyboard after the host permits it. | ||
495 | - LIB3270_TA * ta_head; | ||
496 | - LIB3270_TA * ta_tail; | ||
497 | - | ||
498 | - // ft_dft.c | ||
499 | - int dft_buffersize; ///< @brief Buffer size (LIMIN, LIMOUT) | ||
500 | - | ||
501 | - // rpq.c | ||
502 | - int rpq_complained : 1; | ||
503 | -#if !defined(_WIN32) | ||
504 | - int omit_due_space_limit : 1; | ||
505 | -#endif | ||
506 | - | ||
507 | - char * rpq_warnbuf; | ||
508 | - int rpq_wbcnt; | ||
509 | - | ||
510 | - // User data (Usually points to session's widget) | ||
511 | - void * user_data; | ||
512 | - | ||
513 | - // selection | ||
514 | - char * paste_buffer; | ||
515 | - struct | ||
516 | - { | ||
517 | - int start; | ||
518 | - int end; | ||
519 | - } select; | ||
520 | - | ||
521 | - // ansi.c | ||
522 | - int scroll_top; | ||
523 | - int scroll_bottom; | ||
524 | - int once_cset; | ||
525 | - int saved_cursor; | ||
526 | - | ||
527 | - int held_wrap : 1; | ||
528 | - | ||
529 | - int insert_mode : 1; | ||
530 | - int auto_newline_mode : 1; | ||
531 | - | ||
532 | - int appl_cursor : 1; | ||
533 | - int saved_appl_cursor : 1; | ||
534 | - | ||
535 | - int wraparound_mode : 1; | ||
536 | - int saved_wraparound_mode : 1; | ||
537 | - | ||
538 | - int rev_wraparound_mode : 1; | ||
539 | - int saved_rev_wraparound_mode : 1; | ||
540 | - | ||
541 | - int allow_wide_mode : 1; | ||
542 | - int saved_allow_wide_mode : 1; | ||
543 | - | ||
544 | - int wide_mode : 1; | ||
545 | - int saved_wide_mode : 1; | ||
546 | - | ||
547 | - int saved_altbuffer : 1; | ||
548 | - int ansi_reset : 1; /**< Non zero if the ansi_reset() was called in this session */ | ||
549 | - | ||
550 | - int ansi_ch; | ||
551 | - int cs_to_change; | ||
552 | - | ||
553 | - /** ANSI Character sets. */ | ||
554 | - enum lib3270_ansi_cs | ||
555 | - { | ||
556 | - LIB3270_ANSI_CS_G0 = 0, | ||
557 | - LIB3270_ANSI_CS_G1 = 1, | ||
558 | - LIB3270_ANSI_CS_G2 = 2, | ||
559 | - LIB3270_ANSI_CS_G3 = 3 | ||
560 | - } cset; | ||
561 | - enum lib3270_ansi_cs saved_cset; | ||
562 | - | ||
563 | - /** Character set designations. */ | ||
564 | - enum lib3270_ansi_csd | ||
565 | - { | ||
566 | - LIB3270_ANSI_CSD_LD = 0, | ||
567 | - LIB3270_ANSI_CSD_UK = 1, | ||
568 | - LIB3270_ANSI_CSD_US = 2 | ||
569 | - } csd[4]; | ||
570 | - enum lib3270_ansi_csd saved_csd[4]; | ||
571 | - | ||
572 | - enum lib3270_ansi_state | ||
573 | - { | ||
574 | - LIB3270_ANSI_STATE_DATA = 0, | ||
575 | - LIB3270_ANSI_STATE_ESC = 1, | ||
576 | - LIB3270_ANSI_STATE_CSDES = 2, | ||
577 | - LIB3270_ANSI_STATE_N1 = 3, | ||
578 | - LIB3270_ANSI_STATE_DECP = 4, | ||
579 | - LIB3270_ANSI_STATE_TEXT = 5, | ||
580 | - LIB3270_ANSI_STATE_TEXT2 = 6, | ||
581 | - LIB3270_ANSI_STATE_MBPEND = 7 | ||
582 | - } state; | ||
583 | - | ||
584 | - unsigned char * tabs; | ||
585 | - | ||
586 | - int pmi; | ||
587 | - char pending_mbs[LIB3270_MB_MAX]; | ||
588 | - | ||
589 | - unsigned char gr; | ||
590 | - unsigned char saved_gr; | ||
591 | - | ||
592 | - unsigned char fg; | ||
593 | - unsigned char saved_fg; | ||
594 | - | ||
595 | - unsigned char bg; | ||
596 | - unsigned char saved_bg; | ||
597 | - | ||
598 | - // xio | ||
599 | - void * ns_read_id; | ||
600 | - void * ns_write_id; | ||
601 | - void * ns_exception_id; | ||
602 | - | ||
603 | - // SSL Data (Always defined to mantain the same structure size) | ||
604 | - unsigned long ssl_error; | ||
605 | - SSL * ssl_con; | ||
606 | - | ||
607 | - timeout_t * timeouts; | ||
608 | - input_t * inputs; | ||
609 | - int inputs_changed : 1; | ||
610 | - | ||
611 | - // Callbacks. | ||
612 | - struct lib3270_state_callback * st_callbacks[LIB3270_STATE_USER]; | ||
613 | - struct lib3270_state_callback * st_last[LIB3270_STATE_USER]; | ||
614 | - | ||
615 | -}; | ||
616 | - | ||
617 | -/* Library internal calls */ | ||
618 | -LIB3270_INTERNAL void key_ACharacter(H3270 *hSession, unsigned char c, enum keytype keytype, enum iaction cause,Boolean *skipped); | ||
619 | -LIB3270_INTERNAL void lib3270_initialize(void); | ||
620 | -LIB3270_INTERNAL int cursor_move(H3270 *session, int baddr); | ||
621 | - | ||
622 | -LIB3270_INTERNAL void toggle_rectselect(H3270 *session, struct lib3270_toggle *t, LIB3270_TOGGLE_TYPE tt); | ||
623 | -LIB3270_INTERNAL void remove_input_calls(H3270 *session); | ||
624 | - | ||
625 | -LIB3270_INTERNAL int lib3270_sock_send(H3270 *hSession, unsigned const char *buf, int len); | ||
626 | -LIB3270_INTERNAL void lib3270_sock_disconnect(H3270 *hSession); | ||
627 | - | ||
628 | -LIB3270_INTERNAL int lib3270_default_event_dispatcher(H3270 *hSession, int block); | ||
629 | - | ||
630 | -#if defined(DEBUG) | ||
631 | - #define CHECK_SESSION_HANDLE(x) check_session_handle(&x,__FUNCTION__); | ||
632 | - LIB3270_INTERNAL void check_session_handle(H3270 **hSession, const char *fname); | ||
633 | -#else | ||
634 | - #define CHECK_SESSION_HANDLE(x) check_session_handle(&x); | ||
635 | - LIB3270_INTERNAL void check_session_handle(H3270 **hSession); | ||
636 | -#endif // DEBUG | ||
637 | - | ||
638 | -LIB3270_INTERNAL int non_blocking(H3270 *session, Boolean on); | ||
639 | - | ||
640 | -#if defined(HAVE_LIBSSL) /*[*/ | ||
641 | - | ||
642 | - LIB3270_INTERNAL int ssl_init(H3270 *session); | ||
643 | - LIB3270_INTERNAL int ssl_negotiate(H3270 *hSession); | ||
644 | - LIB3270_INTERNAL void set_ssl_state(H3270 *session, LIB3270_SSL_STATE state); | ||
645 | - | ||
646 | - | ||
647 | - #if OPENSSL_VERSION_NUMBER >= 0x00907000L /*[*/ | ||
648 | - #define INFO_CONST const | ||
649 | - #else /*][*/ | ||
650 | - #define INFO_CONST | ||
651 | - #endif /*]*/ | ||
652 | - | ||
653 | - LIB3270_INTERNAL void ssl_info_callback(INFO_CONST SSL *s, int where, int ret); | ||
654 | - | ||
655 | -#endif /*]*/ | ||
656 | - |
src/lib3270/XtGlue.c
@@ -1,97 +0,0 @@ | @@ -1,97 +0,0 @@ | ||
1 | -/* | ||
2 | - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | - * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | - * | ||
6 | - * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | - * | ||
8 | - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | - * Free Software Foundation. | ||
11 | - * | ||
12 | - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | - * obter mais detalhes. | ||
16 | - * | ||
17 | - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | - * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | ||
19 | - * Place, Suite 330, Boston, MA, 02111-1307, USA | ||
20 | - * | ||
21 | - * Este programa está nomeado como XtGlue.c e possui - linhas de código. | ||
22 | - * | ||
23 | - * Contatos: | ||
24 | - * | ||
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | - * licinio@bb.com.br (Licínio Luis Branco) | ||
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
29 | - * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) | ||
30 | - * | ||
31 | - */ | ||
32 | - | ||
33 | -#error Deprecated | ||
34 | - | ||
35 | -/* glue for missing Xt code */ | ||
36 | -#if defined(_WIN32) | ||
37 | - #include <winsock2.h> | ||
38 | - #include <windows.h> | ||
39 | -#endif // WIN32 | ||
40 | - | ||
41 | -#include "globals.h" | ||
42 | -#include "api.h" | ||
43 | -// #include <malloc.h> | ||
44 | - | ||
45 | -#if defined(_WIN32) | ||
46 | -// #include "appres.h" | ||
47 | - #include "trace_dsc.h" | ||
48 | - #include "xioc.h" | ||
49 | -#endif | ||
50 | - | ||
51 | -#include "utilc.h" | ||
52 | - | ||
53 | -#include <stdio.h> | ||
54 | -// #include <stdlib.h> | ||
55 | -#include <string.h> | ||
56 | -#include <errno.h> | ||
57 | -#include "X11keysym.h" | ||
58 | - | ||
59 | -#include <sys/time.h> | ||
60 | -#include <sys/types.h> | ||
61 | -#include <errno.h> | ||
62 | - | ||
63 | -#include <lib3270.h> | ||
64 | - | ||
65 | -#if defined(_WIN32) /*[*/ | ||
66 | - | ||
67 | - #include <winsock2.h> | ||
68 | - #include <windows.h> | ||
69 | - #include <ws2tcpip.h> | ||
70 | - | ||
71 | -#else /*][*/ | ||
72 | - | ||
73 | - #include <sys/socket.h> | ||
74 | - #include <netinet/in.h> | ||
75 | - #include <netdb.h> | ||
76 | - | ||
77 | - #if defined(SEPARATE_SELECT_H) /*[*/ | ||
78 | - #include <sys/select.h> | ||
79 | - #endif /*]*/ | ||
80 | -#endif /*]*/ | ||
81 | - | ||
82 | -#include "resolverc.h" | ||
83 | - | ||
84 | -/*---[ Implement external calls ]---------------------------------------------------------------------------*/ | ||
85 | - | ||
86 | -/* | ||
87 | -const char * KeysymToString(KeySym k) | ||
88 | -{ | ||
89 | - int i; | ||
90 | - | ||
91 | - for (i = 0; latin1[i].name != (char *)NULL; i++) { | ||
92 | - if (latin1[i].keysym == k) | ||
93 | - return latin1[i].name; | ||
94 | - } | ||
95 | - return (char *)NULL; | ||
96 | -} | ||
97 | -*/ |
src/lib3270/apl.c
@@ -1,221 +0,0 @@ | @@ -1,221 +0,0 @@ | ||
1 | -/* | ||
2 | - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | - * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | - * | ||
6 | - * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | - * | ||
8 | - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | - * Free Software Foundation. | ||
11 | - * | ||
12 | - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | - * obter mais detalhes. | ||
16 | - * | ||
17 | - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | - * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | ||
19 | - * Place, Suite 330, Boston, MA, 02111-1307, USA | ||
20 | - * | ||
21 | - * Este programa está nomeado como apl.c e possui 219 linhas de código. | ||
22 | - * | ||
23 | - * Contatos: | ||
24 | - * | ||
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | - * licinio@bb.com.br (Licínio Luis Branco) | ||
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
29 | - * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) | ||
30 | - * | ||
31 | - */ | ||
32 | - | ||
33 | -/* | ||
34 | - * apl.c | ||
35 | - * This module handles APL-specific actions. | ||
36 | - */ | ||
37 | - | ||
38 | -#include "globals.h" | ||
39 | - | ||
40 | -#if defined(X3270_APL) /*[*/ | ||
41 | - | ||
42 | -// #include <X11/keysym.h> | ||
43 | - | ||
44 | -#include "aplc.h" | ||
45 | - | ||
46 | - | ||
47 | -/* | ||
48 | - * APL keysym translation. | ||
49 | - * | ||
50 | - * This code looks a little odd because of how an APL font is implemented. | ||
51 | - * An APL font has APL graphics in place of the various accented letters and | ||
52 | - * special symbols in a regular font. APL keysym translation consists of | ||
53 | - * taking the keysym name for an APL symbol (these names are meaningful only to | ||
54 | - * x3270) and translating it into the keysym for the regular symbol that the | ||
55 | - * desired APL symbol _replaces_. | ||
56 | - * | ||
57 | - * For example, an APL font has the APL "jot" symbol where a regular font has | ||
58 | - * the "registered" symbol. So we take the keysym name "jot" and translate it | ||
59 | - * into the keysym XK_registered. When the XK_registered symbol is displayed | ||
60 | - * with an APL font, it appears as a "jot". | ||
61 | - * | ||
62 | - * The specification of which APL symbols replace which regular symbols is in | ||
63 | - * IBM GA27-3831, 3174 Establishment Controller Character Set Reference. | ||
64 | - * | ||
65 | - * In addition, several standard characters have different names for APL, | ||
66 | - * for example, "period" becomes "dot". These are included in the table as | ||
67 | - * well. | ||
68 | - */ | ||
69 | - /* | ||
70 | - | ||
71 | -static struct { | ||
72 | - const char *name; | ||
73 | - KeySym keysym; | ||
74 | - int is_ge; | ||
75 | -} axl[] = { | ||
76 | - { "Aunderbar", XK_nobreakspace, 1 }, | ||
77 | - { "Bunderbar", XK_acircumflex, 1 }, | ||
78 | - { "Cunderbar", XK_adiaeresis, 1 }, | ||
79 | - { "Dunderbar", XK_agrave, 1 }, | ||
80 | - { "Eunderbar", XK_aacute, 1 }, | ||
81 | - { "Funderbar", XK_atilde, 1 }, | ||
82 | - { "Gunderbar", XK_aring, 1 }, | ||
83 | - { "Hunderbar", XK_ccedilla, 1 }, | ||
84 | - { "Iunderbar", XK_ntilde, 1 }, | ||
85 | - { "Junderbar", XK_eacute, 1 }, | ||
86 | - { "Kunderbar", XK_ecircumflex, 1 }, | ||
87 | - { "Lunderbar", XK_ediaeresis, 1 }, | ||
88 | - { "Munderbar", XK_egrave, 1 }, | ||
89 | - { "Nunderbar", XK_iacute, 1 }, | ||
90 | - { "Ounderbar", XK_icircumflex, 1 }, | ||
91 | - { "Punderbar", XK_idiaeresis, 1 }, | ||
92 | - { "Qunderbar", XK_igrave, 1 }, | ||
93 | - { "Runderbar", XK_ssharp, 1 }, | ||
94 | - { "Sunderbar", XK_Acircumflex, 1 }, | ||
95 | - { "Tunderbar", XK_Adiaeresis, 1 }, | ||
96 | - { "Uunderbar", XK_Agrave, 1 }, | ||
97 | - { "Vunderbar", XK_Aacute, 1 }, | ||
98 | - { "Wunderbar", XK_Atilde, 1 }, | ||
99 | - { "Xunderbar", XK_Aring, 1 }, | ||
100 | - { "Yunderbar", XK_Ccedilla, 1 }, | ||
101 | - { "Zunderbar", XK_Ntilde, 1 }, | ||
102 | - { "alpha", XK_asciicircum, 1 }, | ||
103 | - { "bar", XK_minus, 0 }, | ||
104 | - { "braceleft", XK_braceleft, 1 }, | ||
105 | - { "braceright", XK_braceright, 1 }, | ||
106 | - { "bracketleft", XK_Yacute, 1 }, | ||
107 | - { "bracketright", XK_diaeresis, 1 }, | ||
108 | - { "circle", XK_cedilla, 1 }, | ||
109 | - { "circlebar", XK_Ograve, 1 }, | ||
110 | - { "circleslope", XK_otilde, 1 }, | ||
111 | - { "circlestar", XK_Ugrave, 1 }, | ||
112 | - { "circlestile", XK_ograve, 1 }, | ||
113 | - { "colon", XK_colon, 0 }, | ||
114 | - { "comma", XK_comma, 0 }, | ||
115 | - { "commabar", XK_W, 1 }, // soliton | ||
116 | - { "del", XK_bracketleft, 1 }, | ||
117 | - { "delstile", XK_udiaeresis, 1 }, | ||
118 | - { "delta", XK_bracketright, 1 }, | ||
119 | - { "deltastile", XK_ugrave, 1 }, | ||
120 | - { "deltaunderbar", XK_Udiaeresis, 1 }, | ||
121 | - { "deltilde", XK_Ucircumflex, 1 }, | ||
122 | - { "diaeresis", XK_Ecircumflex, 1 }, | ||
123 | - { "diaeresiscircle", XK_V, 1 }, // soliton | ||
124 | - { "diaeresisdot", XK_Odiaeresis, 1 }, | ||
125 | - { "diaeresisjot", XK_U, 1 }, // soliton | ||
126 | - { "diamond", XK_oslash, 1 }, | ||
127 | - { "dieresis", XK_Ecircumflex, 1 }, | ||
128 | - { "dieresisdot", XK_Odiaeresis, 1 }, | ||
129 | - { "divide", XK_onehalf, 1 }, | ||
130 | - { "dot", XK_period, 0 }, | ||
131 | - { "downarrow", XK_guillemotright, 1 }, | ||
132 | - { "downcaret", XK_Igrave, 1 }, | ||
133 | - { "downcarettilde", XK_ocircumflex, 1 }, | ||
134 | - { "downshoe", XK_questiondown, 1 }, | ||
135 | - { "downstile", XK_thorn, 1 }, | ||
136 | - { "downtack", XK_ETH, 1 }, | ||
137 | - { "downtackjot", XK_Uacute, 1 }, | ||
138 | - { "downtackup", XK_onesuperior, 1 }, | ||
139 | - { "downtackuptack", XK_onesuperior, 1 }, | ||
140 | - { "epsilon", XK_sterling, 1 }, | ||
141 | - { "epsilonunderbar", XK_Iacute, 1 }, | ||
142 | - { "equal", XK_equal, 0 }, | ||
143 | - { "equalunderbar", XK_backslash, 1 }, | ||
144 | - { "euro", XK_X, 1 }, // soliton | ||
145 | - { "greater", XK_greater, 0 }, | ||
146 | - { "iota", XK_yen, 1 }, | ||
147 | - { "iotaunderbar", XK_Egrave, 1 }, | ||
148 | - { "jot", XK_registered, 1 }, | ||
149 | - { "leftarrow", XK_currency, 1 }, | ||
150 | - { "leftbracket", XK_Yacute, 1 }, | ||
151 | - { "leftparen", XK_parenleft, 0 }, | ||
152 | - { "leftshoe", XK_masculine, 1 }, | ||
153 | - { "lefttack", XK_Icircumflex, 1 }, | ||
154 | - { "less", XK_less, 0 }, | ||
155 | - { "multiply", XK_paragraph, 1 }, | ||
156 | - { "notequal", XK_acute, 1 }, | ||
157 | - { "notgreater", XK_eth, 1 }, | ||
158 | - { "notless", XK_THORN, 1 }, | ||
159 | - { "omega", XK_copyright, 1 }, | ||
160 | - { "overbar", XK_mu, 1 }, | ||
161 | - { "plus", XK_plus, 0 }, | ||
162 | - { "plusminus", XK_AE, 1 }, | ||
163 | - { "quad", XK_degree, 1 }, | ||
164 | - { "quaddivide", XK_Oacute, 1 }, | ||
165 | - { "quadjot", XK_Ediaeresis, 1 }, | ||
166 | - { "quadquote", XK_uacute, 1 }, | ||
167 | - { "quadslope", XK_oacute, 1 }, | ||
168 | - { "query", XK_question, 0 }, | ||
169 | - { "quote", XK_apostrophe, 0 }, | ||
170 | - { "quotedot", XK_ucircumflex, 1 }, | ||
171 | - { "rho", XK_periodcentered, 1 }, | ||
172 | - { "rightarrow", XK_plusminus, 1 }, | ||
173 | - { "rightbracket", XK_diaeresis, 1 }, | ||
174 | - { "rightparen", XK_parenright, 0 }, | ||
175 | - { "rightshoe", XK_ordfeminine, 1 }, | ||
176 | - { "righttack", XK_Idiaeresis, 1 }, | ||
177 | - { "semicolon", XK_semicolon, 0 }, | ||
178 | - { "slash", XK_slash, 0 }, | ||
179 | - { "slashbar", XK_twosuperior, 1 }, | ||
180 | - { "slope", XK_onequarter, 1 }, | ||
181 | - { "slopebar", XK_Ocircumflex, 1 }, | ||
182 | - { "slopequad", XK_oacute, 1 }, | ||
183 | - { "splat", XK_ae, 1 }, | ||
184 | - { "squad", XK_odiaeresis, 1 }, | ||
185 | - { "star", XK_asterisk, 0 }, | ||
186 | - { "stile", XK_multiply, 1 }, | ||
187 | - { "tilde", XK_Ooblique, 1 }, | ||
188 | - { "times", XK_paragraph, 1 }, | ||
189 | - { "underbar", XK_underscore, 0 }, | ||
190 | - { "uparrow", XK_guillemotleft, 1 }, | ||
191 | - { "upcaret", XK_Eacute, 1 }, | ||
192 | - { "upcarettilde", XK_hyphen, 1 }, | ||
193 | - { "upshoe", XK_exclamdown, 1 }, | ||
194 | - { "upshoejot", XK_ydiaeresis, 1 }, | ||
195 | - { "upstile", XK_yacute, 1 }, | ||
196 | - { "uptack", XK_macron, 1 }, | ||
197 | - { "uptackjot", XK_Otilde, 1 }, | ||
198 | - { 0, 0 } | ||
199 | -}; | ||
200 | - | ||
201 | -// | ||
202 | -// Translation from APL ksysym names to indirect APL keysyms. | ||
203 | -// | ||
204 | -KeySym | ||
205 | -APLStringToKeysym(char *s, int *is_gep) | ||
206 | -{ | ||
207 | - register int i; | ||
208 | - | ||
209 | - if (strncmp(s, "apl_", 4)) | ||
210 | - return NoSymbol; | ||
211 | - s += 4; | ||
212 | - for (i = 0; axl[i].name; i++) | ||
213 | - if (!strcmp(axl[i].name, s)) { | ||
214 | - *is_gep = axl[i].is_ge; | ||
215 | - return axl[i].keysym; | ||
216 | - } | ||
217 | - return NoSymbol; | ||
218 | -} | ||
219 | -*/ | ||
220 | - | ||
221 | -#endif /*]*/ |
@@ -0,0 +1,656 @@ | @@ -0,0 +1,656 @@ | ||
1 | +/* | ||
2 | + * "Software G3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como private.h e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) | ||
27 | + * | ||
28 | + */ | ||
29 | + | ||
30 | +#ifdef WIN32 | ||
31 | + #include <winsock2.h> | ||
32 | + #include <windows.h> | ||
33 | +#endif // WIN32 | ||
34 | + | ||
35 | +/* Autoconf settings. */ | ||
36 | +#include <config.h> /* autoconf settings */ | ||
37 | +#include <lib3270.h> /* lib3270 API calls and defs */ | ||
38 | +#include <lib3270/charset.h> | ||
39 | +#include "api.h" | ||
40 | + | ||
41 | +#if defined(X3270_TN3270E) && !defined(X3270_ANSI) /*[*/ | ||
42 | + #define X3270_ANSI 1 /* RFC2355 requires NVT mode */ | ||
43 | +#endif /*]*/ | ||
44 | + | ||
45 | +#if defined(HAVE_VASPRINTF) && !defined(_GNU_SOURCE) /*[*/ | ||
46 | + #define _GNU_SOURCE /* vasprintf isn't POSIX */ | ||
47 | +#endif /*]*/ | ||
48 | + | ||
49 | +/* | ||
50 | + * gettext stuff | ||
51 | + */ | ||
52 | +#ifdef ANDROID | ||
53 | + #undef HAVE_LIBINTL | ||
54 | + #undef HAVE_LIBSSL | ||
55 | +#endif | ||
56 | + | ||
57 | +#ifdef HAVE_LIBINTL | ||
58 | + #include <libintl.h> | ||
59 | + #define _( x ) gettext(x) | ||
60 | + #define N_( x ) x | ||
61 | +#else | ||
62 | + #define _( x ) x | ||
63 | + #define N_( x ) x | ||
64 | +#endif // HAVE_LIBINTL | ||
65 | + | ||
66 | +#define action_name(x) #x | ||
67 | + | ||
68 | +/* | ||
69 | + * OS-specific #defines. Except for the blocking-connect workarounds, these | ||
70 | + * should be replaced with autoconf probes as soon as possible. | ||
71 | + */ | ||
72 | + | ||
73 | +/* | ||
74 | + * BLOCKING_CONNECT_ONLY | ||
75 | + * Use only blocking sockets. | ||
76 | + */ | ||
77 | +#if defined(sco) /*[*/ | ||
78 | + #define BLOCKING_CONNECT_ONLY 1 | ||
79 | +#endif /*]*/ | ||
80 | + | ||
81 | +#if defined(apollo) /*[*/ | ||
82 | + #define BLOCKING_CONNECT_ONLY 1 | ||
83 | +#endif /*]*/ | ||
84 | + | ||
85 | +/* | ||
86 | + * Compiler-specific #defines. | ||
87 | + */ | ||
88 | + | ||
89 | +/* 'unused' explicitly flags an unused parameter */ | ||
90 | +#if defined(__GNUC__) /*[*/ | ||
91 | + #define unused __attribute__((__unused__)) | ||
92 | + #define printflike(s,f) __attribute__ ((__format__ (__printf__, s, f))) | ||
93 | +#else /*][*/ | ||
94 | + #define unused /* nothing */ | ||
95 | + #define printflike(s, f) /* nothing */ | ||
96 | +#endif /*]*/ | ||
97 | + | ||
98 | + | ||
99 | + | ||
100 | +/* | ||
101 | + * Prerequisite #includes. | ||
102 | + */ | ||
103 | +#include <stdio.h> /* Unix standard I/O library */ | ||
104 | +#include <unistd.h> /* Unix system calls */ | ||
105 | +#include <ctype.h> /* Character classes */ | ||
106 | +#include <string.h> /* String manipulations */ | ||
107 | +#include <sys/types.h> /* Basic system data types */ | ||
108 | +#include <sys/time.h> /* System time-related data types */ | ||
109 | +#include <time.h> /* C library time functions */ | ||
110 | +#include "localdefs.h" /* {s,tcl,c}3270-specific defines */ | ||
111 | + | ||
112 | +/* | ||
113 | + * Cancel out contradictory parts. | ||
114 | + */ | ||
115 | +#if !defined(X3270_DISPLAY) /*[*/ | ||
116 | + #undef X3270_KEYPAD | ||
117 | + #undef X3270_MENUS | ||
118 | +#endif /*]*/ | ||
119 | + | ||
120 | +/* types of internal actions */ | ||
121 | +enum iaction { | ||
122 | + IA_STRING, IA_PASTE, IA_REDRAW, | ||
123 | + IA_KEYPAD, IA_DEFAULT, IA_KEY, | ||
124 | + IA_MACRO, IA_SCRIPT, IA_PEEK, | ||
125 | + IA_TYPEAHEAD, IA_FT, IA_COMMAND, IA_KEYMAP, | ||
126 | + IA_IDLE | ||
127 | +}; | ||
128 | + | ||
129 | +// Version strings | ||
130 | +LIB3270_INTERNAL const char * build; | ||
131 | +LIB3270_INTERNAL const char * app_defaults_version; | ||
132 | +LIB3270_INTERNAL const char * sccsid; | ||
133 | +LIB3270_INTERNAL const char * build_rpq_timestamp; | ||
134 | +LIB3270_INTERNAL const char * build_rpq_version; | ||
135 | +LIB3270_INTERNAL const char * build_rpq_revision; | ||
136 | + | ||
137 | +#if defined(X3270_DBCS) /*[*/ | ||
138 | + LIB3270_INTERNAL Boolean dbcs; | ||
139 | +#endif /*]*/ | ||
140 | + | ||
141 | + | ||
142 | +/* toggle names */ | ||
143 | +struct toggle_name { | ||
144 | + const char *name; | ||
145 | + int index; | ||
146 | +}; | ||
147 | + | ||
148 | + | ||
149 | +/* input key type */ | ||
150 | + | ||
151 | +/* Naming convention for private actions. */ | ||
152 | +#define PA_PFX "PA-" | ||
153 | + | ||
154 | +/// @brief Shorthand macros | ||
155 | +#define CN ((char *) NULL) | ||
156 | +#define PN ((XtPointer) NULL) | ||
157 | +#define Replace(var, value) { lib3270_free(var); var = (value); }; | ||
158 | + | ||
159 | +/// @brief Configuration change masks. | ||
160 | +#define NO_CHANGE 0x0000 /// @brief no change | ||
161 | +#define MODEL_CHANGE 0x0001 /// @brief screen dimensions changed | ||
162 | +#define FONT_CHANGE 0x0002 /// @brief emulator font changed | ||
163 | +#define COLOR_CHANGE 0x0004 /// @brief color scheme or 3278/9 mode changed | ||
164 | +#define SCROLL_CHANGE 0x0008 /// @brief scrollbar snapped on or off | ||
165 | +#define CHARSET_CHANGE 0x0010 /// @brief character set changed | ||
166 | +#define ALL_CHANGE 0xffff /// @brief everything changed | ||
167 | + | ||
168 | +/* Portability macros */ | ||
169 | + | ||
170 | +/* Equivalent of setlinebuf */ | ||
171 | + | ||
172 | +#if defined(_IOLBF) /*[*/ | ||
173 | + #define SETLINEBUF(s) setvbuf(s, (char *)NULL, _IOLBF, BUFSIZ) | ||
174 | +#else /*][*/ | ||
175 | + #define SETLINEBUF(s) setlinebuf(s) | ||
176 | +#endif /*]*/ | ||
177 | + | ||
178 | +/* Motorola version of gettimeofday */ | ||
179 | + | ||
180 | +#if defined(MOTOROLA) | ||
181 | + #define gettimeofday(tp,tz) gettimeofday(tp) | ||
182 | +#endif | ||
183 | + | ||
184 | +/* Default DFT file transfer buffer size. */ | ||
185 | +#if defined(X3270_FT) && !defined(DFT_BUF) /*[*/ | ||
186 | + #define DFT_BUF (4 * 1024) | ||
187 | +#endif /*]*/ | ||
188 | + | ||
189 | +/* DBCS Preedit Types */ | ||
190 | +#if defined(X3270_DBCS) /*[*/ | ||
191 | + #define PT_ROOT "Root" | ||
192 | + #define PT_OVER_THE_SPOT "OverTheSpot" | ||
193 | + #define PT_OFF_THE_SPOT "OffTheSpot" | ||
194 | + #define PT_ON_THE_SPOT "OnTheSpot" | ||
195 | +#endif /*]*/ | ||
196 | + | ||
197 | +/** input key type */ | ||
198 | +enum keytype | ||
199 | +{ | ||
200 | + KT_STD, | ||
201 | + KT_GE | ||
202 | +}; | ||
203 | + | ||
204 | +LIB3270_INTERNAL struct _ansictl | ||
205 | +{ | ||
206 | + char vintr; | ||
207 | + char vquit; | ||
208 | + char verase; | ||
209 | + char vkill; | ||
210 | + char veof; | ||
211 | + char vwerase; | ||
212 | + char vrprnt; | ||
213 | + char vlnext; | ||
214 | +} ansictl; | ||
215 | + | ||
216 | +/** @brief Extended attributes */ | ||
217 | +struct lib3270_ea | ||
218 | +{ | ||
219 | + unsigned char cc; ///< @brief EBCDIC or ASCII character code | ||
220 | + unsigned char fa; ///< @brief field attribute, it nonzero | ||
221 | + unsigned char fg; ///< @brief foreground color (0x00 or 0xf<n>) | ||
222 | + unsigned char bg; ///< @brief background color (0x00 or 0xf<n>) | ||
223 | + unsigned char gr; ///< @brief ANSI graphics rendition bits | ||
224 | + unsigned char cs; ///< @brief character set (GE flag, or 0..2) | ||
225 | + unsigned char ic; ///< @brief input control (DBCS) | ||
226 | + unsigned char db; ///< @brief DBCS state | ||
227 | +}; | ||
228 | + | ||
229 | +struct lib3270_text | ||
230 | +{ | ||
231 | + unsigned char chr; ///< @brief ASCII character code | ||
232 | + unsigned short attr; ///< @brief Converted character attribute (color & etc) | ||
233 | +}; | ||
234 | + | ||
235 | +#ifndef HEADER_SSL_H | ||
236 | + #define SSL void | ||
237 | +#endif // !HEADER_SSL_H | ||
238 | + | ||
239 | +#ifndef LIB3270_TA | ||
240 | + #define LIB3270_TA void | ||
241 | +#endif // !LIB3270_TA | ||
242 | + | ||
243 | +#define LIB3270_MB_MAX 16 | ||
244 | +#define LIB3270_DEFAULT_CGEN 0x02b90000 | ||
245 | +#define LIB3270_DEFAULT_CSET 0x00000025 | ||
246 | + | ||
247 | +#define LIB3270_FULL_MODEL_NAME_LENGTH 13 | ||
248 | +#define LIB3270_LU_MAX 32 | ||
249 | + | ||
250 | +#define LIB3270_TELNET_N_OPTS 256 | ||
251 | + | ||
252 | +/** | ||
253 | + * | ||
254 | + * @brief Timeout control structure. | ||
255 | + * | ||
256 | + */ | ||
257 | +typedef struct timeout | ||
258 | +{ | ||
259 | + struct timeout *next; | ||
260 | + | ||
261 | +#if defined(_WIN32) /*[*/ | ||
262 | + unsigned long long ts; | ||
263 | +#else /*][*/ | ||
264 | + struct timeval tv; | ||
265 | +#endif /*]*/ | ||
266 | + | ||
267 | + void (*proc)(H3270 *session); | ||
268 | + | ||
269 | + H3270 *session; | ||
270 | + | ||
271 | + unsigned char in_play; | ||
272 | +} timeout_t; | ||
273 | + | ||
274 | + | ||
275 | +/** | ||
276 | + * | ||
277 | + * @brief I/O events. | ||
278 | + * | ||
279 | + */ | ||
280 | +typedef struct input | ||
281 | +{ | ||
282 | + struct input * next; | ||
283 | + H3270 * session; | ||
284 | + int fd; | ||
285 | + LIB3270_IO_FLAG flag; | ||
286 | + void * userdata; | ||
287 | + | ||
288 | + void (*call)(H3270 *, int, LIB3270_IO_FLAG, void *); | ||
289 | + | ||
290 | +} input_t; | ||
291 | + | ||
292 | + | ||
293 | +/** | ||
294 | + * | ||
295 | + * @brief lib3270 session data | ||
296 | + * | ||
297 | + */ | ||
298 | +struct _h3270 | ||
299 | +{ | ||
300 | + struct lib3270_session_callbacks cbk; // Callback table - Always the first one. | ||
301 | + | ||
302 | +// unsigned short sz; /**< Struct size */ | ||
303 | + | ||
304 | + // Connection info | ||
305 | + int sock; /**< Network socket */ | ||
306 | + LIB3270_CSTATE cstate; /**< Connection state */ | ||
307 | + | ||
308 | + // flags | ||
309 | + LIB3270_OPTION options; /**< Session options */ | ||
310 | + | ||
311 | + int bgthread : 1; /**< Running on a background thread ? */ | ||
312 | + int selected : 1; /**< Has selected region? */ | ||
313 | + int rectsel : 1; /**< Selected region is a rectangle ? */ | ||
314 | + int vcontrol : 1; /**< Visible control ? */ | ||
315 | + int modified_sel : 1; | ||
316 | + int mono : 1; /**< Forces monochrome display */ | ||
317 | + int m3279 : 1; | ||
318 | + int extended : 1; | ||
319 | + int typeahead : 1; | ||
320 | + int numeric_lock : 1; | ||
321 | + int oerr_lock : 1; | ||
322 | + int unlock_delay : 1; | ||
323 | + int auto_reconnect_inprogress : 1; | ||
324 | + unsigned int colors : 5; | ||
325 | + int apl_mode : 1; | ||
326 | + int icrnl : 1; | ||
327 | + int inlcr : 1; | ||
328 | + int onlcr : 1; | ||
329 | + int bsd_tm : 1; | ||
330 | + int syncing : 1; | ||
331 | + int reverse : 1; /**< reverse-input mode */ | ||
332 | + int dbcs : 1; | ||
333 | + int linemode : 1; | ||
334 | + int trace_skipping : 1; | ||
335 | + int need_tls_follows : 1; | ||
336 | + int cut_xfer_in_progress : 1; | ||
337 | +// int auto_keymap : 1; | ||
338 | + int formatted : 1; /**< Formatted screen flag */ | ||
339 | + int starting : 1; /**< Is starting (no first screen)? */ | ||
340 | + | ||
341 | + char * oversize; | ||
342 | + | ||
343 | + LIB3270_SSL_STATE secure; | ||
344 | + | ||
345 | + struct lib3270_toggle | ||
346 | + { | ||
347 | + char value; /**< toggle value */ | ||
348 | + void (*upcall)(H3270 *, struct lib3270_toggle *, LIB3270_TOGGLE_TYPE); /**< change value */ | ||
349 | + } toggle[LIB3270_TOGGLE_COUNT]; | ||
350 | + | ||
351 | + // Network & Termtype | ||
352 | + char * connected_type; | ||
353 | + char * connected_lu; | ||
354 | + char luname[LIB3270_LUNAME_LENGTH+1]; | ||
355 | + | ||
356 | + char full_model_name[LIB3270_FULL_MODEL_NAME_LENGTH+1]; | ||
357 | + char * model_name; | ||
358 | + int model_num; | ||
359 | + char * termtype; | ||
360 | + | ||
361 | + struct | ||
362 | + { | ||
363 | + char * current; /**< The hostname part, stripped of qualifiers, luname and port number */ | ||
364 | + char * full; /**< The entire string, for use in reconnecting */ | ||
365 | + char * srvc; /**< The service name */ | ||
366 | + char * qualified; | ||
367 | + } host; | ||
368 | + | ||
369 | + char * proxy; /**< Proxy server (type:host[:port]) */ | ||
370 | + char * termname; | ||
371 | + | ||
372 | + struct lib3270_charset charset; | ||
373 | + | ||
374 | + LIB3270_MESSAGE oia_status; | ||
375 | + | ||
376 | + unsigned char oia_flag[LIB3270_FLAG_COUNT]; | ||
377 | + | ||
378 | + unsigned short current_port; | ||
379 | + | ||
380 | + // Misc | ||
381 | + H3270FT * ft; /**< Active file transfer data */ | ||
382 | + | ||
383 | + // screen info | ||
384 | + int ov_rows; | ||
385 | + int ov_cols; | ||
386 | + int maxROWS; | ||
387 | + int maxCOLS; | ||
388 | + unsigned short rows; | ||
389 | + unsigned short cols; | ||
390 | + unsigned short pointer; /**< @brief Current pointer. */ | ||
391 | + int cursor_addr; | ||
392 | + int buffer_addr; | ||
393 | + char flipped; | ||
394 | + int screen_alt; /**< alternate screen? */ | ||
395 | + int is_altbuffer; | ||
396 | + | ||
397 | + // Screen contents | ||
398 | + void * buffer[2]; /**< Internal buffers */ | ||
399 | + struct lib3270_ea * ea_buf; /**< 3270 device buffer. ea_buf[-1] is the dummy default field attribute */ | ||
400 | + struct lib3270_ea * aea_buf; /**< alternate 3270 extended attribute buffer */ | ||
401 | + struct lib3270_text * text; /**< Converted 3270 chars */ | ||
402 | + | ||
403 | + // host.c | ||
404 | + char std_ds_host; | ||
405 | + char no_login_host; | ||
406 | + char non_tn3270e_host; | ||
407 | + char passthru_host; | ||
408 | + char ssl_host; | ||
409 | + char ever_3270; | ||
410 | + | ||
411 | + // ctlr.c | ||
412 | + int sscp_start; | ||
413 | + unsigned char default_fg; | ||
414 | + unsigned char default_bg; | ||
415 | + unsigned char default_gr; | ||
416 | + unsigned char default_cs; | ||
417 | + unsigned char default_ic; | ||
418 | + char reply_mode; | ||
419 | + int trace_primed : 1; | ||
420 | + int ticking : 1; | ||
421 | + int mticking : 1; | ||
422 | + int crm_nattr; | ||
423 | + unsigned char crm_attr[16]; | ||
424 | + unsigned char * zero_buf; /**< empty buffer, for area clears */ | ||
425 | + | ||
426 | + struct timeval t_start; | ||
427 | + void * tick_id; | ||
428 | + struct timeval t_want; | ||
429 | + | ||
430 | + // Telnet.c | ||
431 | + unsigned char * ibuf; | ||
432 | + int ibuf_size; /**< size of ibuf */ | ||
433 | + unsigned char * obuf; /**< 3270 output buffer */ | ||
434 | + unsigned char * obptr; | ||
435 | + time_t ns_time; | ||
436 | + int ns_brcvd; | ||
437 | + int ns_rrcvd; | ||
438 | + int ns_bsent; | ||
439 | + int ns_rsent; | ||
440 | + struct timeval ds_ts; | ||
441 | + unsigned long e_funcs; /**< negotiated TN3270E functions */ | ||
442 | + unsigned short e_xmit_seq; /**< transmit sequence number */ | ||
443 | + int response_required; | ||
444 | + int tn3270e_bound; | ||
445 | + int tn3270e_negotiated; | ||
446 | + int ansi_data; | ||
447 | + int lnext; | ||
448 | + int backslashed; | ||
449 | + char plu_name[LIB3270_BIND_PLU_NAME_MAX+1]; | ||
450 | + char **lus; | ||
451 | + char **curr_lu; | ||
452 | + char * try_lu; | ||
453 | + int proxy_type; | ||
454 | + char * proxy_host; | ||
455 | + char * proxy_portname; | ||
456 | + unsigned short proxy_port; | ||
457 | + char reported_lu[LIB3270_LU_MAX+1]; | ||
458 | + char reported_type[LIB3270_LU_MAX+1]; | ||
459 | + | ||
460 | + enum | ||
461 | + { | ||
462 | + E_NONE, | ||
463 | + E_3270, | ||
464 | + E_NVT, | ||
465 | + E_SSCP | ||
466 | + } tn3270e_submode; | ||
467 | + | ||
468 | + unsigned char * lbuf; /**< line-mode input buffer */ | ||
469 | + unsigned char * lbptr; | ||
470 | + | ||
471 | + | ||
472 | + // 3270 input buffer | ||
473 | + unsigned char * ibptr; | ||
474 | + unsigned char * obuf_base; | ||
475 | + int obuf_size; | ||
476 | +// unsigned char * netrbuf; | ||
477 | + | ||
478 | + // network input buffer | ||
479 | + unsigned char * sbbuf; | ||
480 | + | ||
481 | + // telnet sub-option buffer | ||
482 | + unsigned char * sbptr; | ||
483 | + unsigned char telnet_state; | ||
484 | +// char ttype_tmpval[13]; | ||
485 | + | ||
486 | + unsigned char myopts[LIB3270_TELNET_N_OPTS]; | ||
487 | + unsigned char hisopts[LIB3270_TELNET_N_OPTS]; | ||
488 | + | ||
489 | + // kybd.c | ||
490 | + unsigned int kybdlock; ///< @brief keyboard lock state | ||
491 | + unsigned char aid; ///< @brief current attention ID | ||
492 | + void * unlock_id; | ||
493 | + time_t unlock_delay_time; | ||
494 | + unsigned long unlock_delay_ms; ///< @brief Delay before actually unlocking the keyboard after the host permits it. | ||
495 | + LIB3270_TA * ta_head; | ||
496 | + LIB3270_TA * ta_tail; | ||
497 | + | ||
498 | + // ft_dft.c | ||
499 | + int dft_buffersize; ///< @brief Buffer size (LIMIN, LIMOUT) | ||
500 | + | ||
501 | + // rpq.c | ||
502 | + int rpq_complained : 1; | ||
503 | +#if !defined(_WIN32) | ||
504 | + int omit_due_space_limit : 1; | ||
505 | +#endif | ||
506 | + | ||
507 | + char * rpq_warnbuf; | ||
508 | + int rpq_wbcnt; | ||
509 | + | ||
510 | + // User data (Usually points to session's widget) | ||
511 | + void * user_data; | ||
512 | + | ||
513 | + // selection | ||
514 | + char * paste_buffer; | ||
515 | + struct | ||
516 | + { | ||
517 | + int start; | ||
518 | + int end; | ||
519 | + } select; | ||
520 | + | ||
521 | + // ansi.c | ||
522 | + int scroll_top; | ||
523 | + int scroll_bottom; | ||
524 | + int once_cset; | ||
525 | + int saved_cursor; | ||
526 | + | ||
527 | + int held_wrap : 1; | ||
528 | + | ||
529 | + int insert_mode : 1; | ||
530 | + int auto_newline_mode : 1; | ||
531 | + | ||
532 | + int appl_cursor : 1; | ||
533 | + int saved_appl_cursor : 1; | ||
534 | + | ||
535 | + int wraparound_mode : 1; | ||
536 | + int saved_wraparound_mode : 1; | ||
537 | + | ||
538 | + int rev_wraparound_mode : 1; | ||
539 | + int saved_rev_wraparound_mode : 1; | ||
540 | + | ||
541 | + int allow_wide_mode : 1; | ||
542 | + int saved_allow_wide_mode : 1; | ||
543 | + | ||
544 | + int wide_mode : 1; | ||
545 | + int saved_wide_mode : 1; | ||
546 | + | ||
547 | + int saved_altbuffer : 1; | ||
548 | + int ansi_reset : 1; /**< Non zero if the ansi_reset() was called in this session */ | ||
549 | + | ||
550 | + int ansi_ch; | ||
551 | + int cs_to_change; | ||
552 | + | ||
553 | + /** ANSI Character sets. */ | ||
554 | + enum lib3270_ansi_cs | ||
555 | + { | ||
556 | + LIB3270_ANSI_CS_G0 = 0, | ||
557 | + LIB3270_ANSI_CS_G1 = 1, | ||
558 | + LIB3270_ANSI_CS_G2 = 2, | ||
559 | + LIB3270_ANSI_CS_G3 = 3 | ||
560 | + } cset; | ||
561 | + enum lib3270_ansi_cs saved_cset; | ||
562 | + | ||
563 | + /** Character set designations. */ | ||
564 | + enum lib3270_ansi_csd | ||
565 | + { | ||
566 | + LIB3270_ANSI_CSD_LD = 0, | ||
567 | + LIB3270_ANSI_CSD_UK = 1, | ||
568 | + LIB3270_ANSI_CSD_US = 2 | ||
569 | + } csd[4]; | ||
570 | + enum lib3270_ansi_csd saved_csd[4]; | ||
571 | + | ||
572 | + enum lib3270_ansi_state | ||
573 | + { | ||
574 | + LIB3270_ANSI_STATE_DATA = 0, | ||
575 | + LIB3270_ANSI_STATE_ESC = 1, | ||
576 | + LIB3270_ANSI_STATE_CSDES = 2, | ||
577 | + LIB3270_ANSI_STATE_N1 = 3, | ||
578 | + LIB3270_ANSI_STATE_DECP = 4, | ||
579 | + LIB3270_ANSI_STATE_TEXT = 5, | ||
580 | + LIB3270_ANSI_STATE_TEXT2 = 6, | ||
581 | + LIB3270_ANSI_STATE_MBPEND = 7 | ||
582 | + } state; | ||
583 | + | ||
584 | + unsigned char * tabs; | ||
585 | + | ||
586 | + int pmi; | ||
587 | + char pending_mbs[LIB3270_MB_MAX]; | ||
588 | + | ||
589 | + unsigned char gr; | ||
590 | + unsigned char saved_gr; | ||
591 | + | ||
592 | + unsigned char fg; | ||
593 | + unsigned char saved_fg; | ||
594 | + | ||
595 | + unsigned char bg; | ||
596 | + unsigned char saved_bg; | ||
597 | + | ||
598 | + // xio | ||
599 | + void * ns_read_id; | ||
600 | + void * ns_write_id; | ||
601 | + void * ns_exception_id; | ||
602 | + | ||
603 | + // SSL Data (Always defined to mantain the same structure size) | ||
604 | + unsigned long ssl_error; | ||
605 | + SSL * ssl_con; | ||
606 | + | ||
607 | + timeout_t * timeouts; | ||
608 | + input_t * inputs; | ||
609 | + int inputs_changed : 1; | ||
610 | + | ||
611 | + // Callbacks. | ||
612 | + struct lib3270_state_callback * st_callbacks[LIB3270_STATE_USER]; | ||
613 | + struct lib3270_state_callback * st_last[LIB3270_STATE_USER]; | ||
614 | + | ||
615 | +}; | ||
616 | + | ||
617 | +/* Library internal calls */ | ||
618 | +LIB3270_INTERNAL void key_ACharacter(H3270 *hSession, unsigned char c, enum keytype keytype, enum iaction cause,Boolean *skipped); | ||
619 | +LIB3270_INTERNAL void lib3270_initialize(void); | ||
620 | +LIB3270_INTERNAL int cursor_move(H3270 *session, int baddr); | ||
621 | + | ||
622 | +LIB3270_INTERNAL void toggle_rectselect(H3270 *session, struct lib3270_toggle *t, LIB3270_TOGGLE_TYPE tt); | ||
623 | +LIB3270_INTERNAL void remove_input_calls(H3270 *session); | ||
624 | + | ||
625 | +LIB3270_INTERNAL int lib3270_sock_send(H3270 *hSession, unsigned const char *buf, int len); | ||
626 | +LIB3270_INTERNAL void lib3270_sock_disconnect(H3270 *hSession); | ||
627 | + | ||
628 | +LIB3270_INTERNAL int lib3270_default_event_dispatcher(H3270 *hSession, int block); | ||
629 | + | ||
630 | +#if defined(DEBUG) | ||
631 | + #define CHECK_SESSION_HANDLE(x) check_session_handle(&x,__FUNCTION__); | ||
632 | + LIB3270_INTERNAL void check_session_handle(H3270 **hSession, const char *fname); | ||
633 | +#else | ||
634 | + #define CHECK_SESSION_HANDLE(x) check_session_handle(&x); | ||
635 | + LIB3270_INTERNAL void check_session_handle(H3270 **hSession); | ||
636 | +#endif // DEBUG | ||
637 | + | ||
638 | +LIB3270_INTERNAL int non_blocking(H3270 *session, Boolean on); | ||
639 | + | ||
640 | +#if defined(HAVE_LIBSSL) /*[*/ | ||
641 | + | ||
642 | + LIB3270_INTERNAL int ssl_init(H3270 *session); | ||
643 | + LIB3270_INTERNAL int ssl_negotiate(H3270 *hSession); | ||
644 | + LIB3270_INTERNAL void set_ssl_state(H3270 *session, LIB3270_SSL_STATE state); | ||
645 | + | ||
646 | + | ||
647 | + #if OPENSSL_VERSION_NUMBER >= 0x00907000L /*[*/ | ||
648 | + #define INFO_CONST const | ||
649 | + #else /*][*/ | ||
650 | + #define INFO_CONST | ||
651 | + #endif /*]*/ | ||
652 | + | ||
653 | + LIB3270_INTERNAL void ssl_info_callback(INFO_CONST SSL *s, int where, int ret); | ||
654 | + | ||
655 | +#endif /*]*/ | ||
656 | + |
src/lib3270/tables.c
@@ -1,358 +0,0 @@ | @@ -1,358 +0,0 @@ | ||
1 | -/* | ||
2 | - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | - * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270. | ||
5 | - * | ||
6 | - * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | - * | ||
8 | - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | - * Free Software Foundation. | ||
11 | - * | ||
12 | - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | - * obter mais detalhes. | ||
16 | - * | ||
17 | - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | - * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | - * | ||
21 | - * Este programa está nomeado como tables.c e possui - linhas de código. | ||
22 | - * | ||
23 | - * Contatos: | ||
24 | - * | ||
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | - * licinio@bb.com.br (Licínio Luis Branco) | ||
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
29 | - * | ||
30 | - */ | ||
31 | - | ||
32 | - | ||
33 | -/* | ||
34 | - * tables.c | ||
35 | - * Translation tables between the three character sets: | ||
36 | - * EBCDIC | ||
37 | - * ASCII (ISO Latin-1) | ||
38 | - * Character Generator ("3270" font) | ||
39 | - */ | ||
40 | - | ||
41 | -#include "globals.h" | ||
42 | -#include "tablesc.h" | ||
43 | -#include "kybdc.h" | ||
44 | - | ||
45 | -static const unsigned short asc2cg[256] = { | ||
46 | -/*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
47 | -/*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
48 | -/*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
49 | -/*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
50 | -/*20*/ 0x10, 0x19, 0x13, 0x2c, 0x1a, 0x2e, 0x30, 0x12, | ||
51 | -/*28*/ 0x0d, 0x0c, 0xbf, 0x35, 0x33, 0x31, 0x32, 0x14, | ||
52 | -/*30*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, | ||
53 | -/*38*/ 0x28, 0x29, 0x34, 0xbe, 0x09, 0x11, 0x08, 0x18, | ||
54 | -/*40*/ 0x2d, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, | ||
55 | -/*48*/ 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, | ||
56 | -/*50*/ 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, | ||
57 | -/*58*/ 0xb7, 0xb8, 0xb9, 0x0a, 0x15, 0x0b, 0x3a, 0x2f, | ||
58 | -/*60*/ 0x3d, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, | ||
59 | -/*68*/ 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, | ||
60 | -/*70*/ 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, | ||
61 | -/*78*/ 0x97, 0x98, 0x99, 0x0f, 0x16, 0x0e, 0x3b, 0x00, | ||
62 | -/*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
63 | -/*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
64 | -/*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
65 | -/*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
66 | -/*a0*/ 0x01, 0x6e, 0x1b, 0x1c, 0x1f, 0x1d, 0x17, 0x2b, | ||
67 | -/*a8*/ 0x3c, 0xd0, 0x6a, 0x6c, 0x36, 0x07, 0xd1, 0x37, | ||
68 | -/*b0*/ 0x38, 0xd6, 0x68, 0x69, 0x3e, 0x54, 0x1e, 0x39, | ||
69 | -/*b8*/ 0x3f, 0x67, 0x6b, 0x6d, 0x4b, 0x4c, 0x4d, 0x6f, | ||
70 | -/*c0*/ 0x60, 0x7a, 0x75, 0x65, 0x70, 0xbc, 0xba, 0xbd, | ||
71 | -/*c8*/ 0x61, 0x7b, 0x76, 0x71, 0x62, 0x7c, 0x77, 0x72, | ||
72 | -/*d0*/ 0xd7, 0x7f, 0x63, 0x7d, 0x78, 0x66, 0x73, 0x5b, | ||
73 | -/*d8*/ 0xbb, 0x64, 0x7e, 0x79, 0x74, 0x48, 0xd9, 0x2a, | ||
74 | -/*e0*/ 0x40, 0x5a, 0x55, 0x45, 0x50, 0x9c, 0x9a, 0x4f, | ||
75 | -/*e8*/ 0x41, 0x4a, 0x56, 0x51, 0x42, 0x5c, 0x57, 0x52, | ||
76 | -/*f0*/ 0xf7, 0x5f, 0x43, 0x5d, 0x58, 0x46, 0x53, 0x9d, | ||
77 | -/*f8*/ 0x9b, 0x44, 0x5e, 0x59, 0x4e, 0x49, 0xf9, 0x47 | ||
78 | -}; | ||
79 | - | ||
80 | -static const unsigned short cg2asc[256] = { | ||
81 | -/*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xad, | ||
82 | -/*08*/ 0x3e, 0x3c, 0x5b, 0x5d, 0x29, 0x28, 0x7d, 0x7b, | ||
83 | -/*10*/ 0x20, 0x3d, 0x27, 0x22, 0x2f, 0x5c, 0x7c, 0xa6, | ||
84 | -/*18*/ 0x3f, 0x21, 0x24, 0xa2, 0xa3, 0xa5, 0xb6, 0xa4, | ||
85 | -/*20*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, | ||
86 | -/*28*/ 0x38, 0x39, 0xdf, 0xa7, 0x23, 0x40, 0x25, 0x5f, | ||
87 | -/*30*/ 0x26, 0x2d, 0x2e, 0x2c, 0x3a, 0x2b, 0xac, 0xaf, | ||
88 | -/*38*/ 0xb0, 0xb7, 0x5e, 0x7e, 0xa8, 0x60, 0xb4, 0xb8, | ||
89 | -/*40*/ 0xe0, 0xe8, 0xec, 0xf2, 0xf9, 0xe3, 0xf5, 0xff, | ||
90 | -/*48*/ 0xdd, 0xfd, 0xe9, 0xbc, 0xbd, 0xbe, 0xfc, 0xe7, | ||
91 | -/*50*/ 0xe4, 0xeb, 0xef, 0xf6, 0xb5, 0xe2, 0xea, 0xee, | ||
92 | -/*58*/ 0xf4, 0xfb, 0xe1, 0xd7, 0xed, 0xf3, 0xfa, 0xf1, | ||
93 | -/*60*/ 0xc0, 0xc8, 0xcc, 0xd2, 0xd9, 0xc3, 0xd5, 0xb9, | ||
94 | -/*68*/ 0xb2, 0xb3, 0xaa, 0xba, 0xab, 0xbb, 0xa1, 0xbf, | ||
95 | -/*70*/ 0xc4, 0xcb, 0xcf, 0xd6, 0xdc, 0xc2, 0xca, 0xce, | ||
96 | -/*78*/ 0xd4, 0xdb, 0xc1, 0xc9, 0xcd, 0xd3, 0xda, 0xd1, | ||
97 | -/*80*/ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, | ||
98 | -/*88*/ 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, | ||
99 | -/*90*/ 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, | ||
100 | -/*98*/ 0x79, 0x7a, 0xe6, 0xf8, 0xe5, 0xf7, 0x3b, 0x2a, | ||
101 | -/*a0*/ 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, | ||
102 | -/*a8*/ 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, | ||
103 | -/*b0*/ 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, | ||
104 | -/*b8*/ 0x59, 0x5a, 0xc6, 0xd8, 0xc5, 0xc7, 0x3b, 0x2a, | ||
105 | -/*c0*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
106 | -/*c8*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
107 | -/*d0*/ 0xa9, 0xae, 0x20, 0x20, 0x20, 0x20, 0xb1, 0xd0, | ||
108 | -/*d8*/ 0x20, 0xde, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
109 | -/*e0*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
110 | -/*e8*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
111 | -/*f0*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xf0, | ||
112 | -/*f8*/ 0x20, 0xfe, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 | ||
113 | -}; | ||
114 | - | ||
115 | -static const unsigned short ebc2cg0[256] = { | ||
116 | -/*00*/ 0x00, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
117 | -/*08*/ 0xdf, 0xdf, 0xdf, 0xdf, 0x02, 0x03, 0x00, 0x00, | ||
118 | -/*10*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0x04, 0xdf, 0xdf, | ||
119 | -/*18*/ 0xdf, 0x05, 0xdf, 0xdf, 0x9f, 0xdf, 0x9e, 0xdf, | ||
120 | -/*20*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
121 | -/*28*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
122 | -/*30*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
123 | -/*38*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
124 | -/*40*/ 0x10, 0x01, 0x55, 0x50, 0x40, 0x5a, 0x45, 0x9c, | ||
125 | -/*48*/ 0x4f, 0x5f, 0x1b, 0x32, 0x09, 0x0d, 0x35, 0x16, | ||
126 | -/*50*/ 0x30, 0x4a, 0x56, 0x51, 0x41, 0x5c, 0x57, 0x52, | ||
127 | -/*58*/ 0x42, 0x2a, 0x19, 0x1a, 0xbf, 0x0c, 0xbe, 0x36, | ||
128 | -/*60*/ 0x31, 0x14, 0x75, 0x70, 0x60, 0x7a, 0x65, 0xbc, | ||
129 | -/*68*/ 0xbd, 0x7f, 0x17, 0x33, 0x2e, 0x2f, 0x08, 0x18, | ||
130 | -/*70*/ 0x9b, 0x7b, 0x76, 0x71, 0x61, 0x7c, 0x77, 0x72, | ||
131 | -/*78*/ 0x62, 0x3d, 0x34, 0x2c, 0x2d, 0x12, 0x11, 0x13, | ||
132 | -/*80*/ 0xbb, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, | ||
133 | -/*88*/ 0x87, 0x88, 0x6c, 0x6d, 0xf7, 0x49, 0xf9, 0xd6, | ||
134 | -/*90*/ 0x38, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, | ||
135 | -/*98*/ 0x90, 0x91, 0x6a, 0x6b, 0x9a, 0x3f, 0xba, 0x1f, | ||
136 | -/*a0*/ 0x54, 0x3b, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, | ||
137 | -/*a8*/ 0x98, 0x99, 0x6e, 0x6f, 0xd7, 0x48, 0xd9, 0xd1, | ||
138 | -/*b0*/ 0x3a, 0x1c, 0x1d, 0x39, 0xd0, 0x2b, 0x1e, 0x4b, | ||
139 | -/*b8*/ 0x4c, 0x4d, 0x0a, 0x0b, 0x37, 0x3c, 0x3e, 0x5b, | ||
140 | -/*c0*/ 0x0f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, | ||
141 | -/*c8*/ 0xa7, 0xa8, 0x07, 0x58, 0x53, 0x43, 0x5d, 0x46, | ||
142 | -/*d0*/ 0x0e, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, | ||
143 | -/*d8*/ 0xb0, 0xb1, 0x67, 0x59, 0x4e, 0x44, 0x5e, 0x47, | ||
144 | -/*e0*/ 0x15, 0x9d, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, | ||
145 | -/*e8*/ 0xb8, 0xb9, 0x68, 0x78, 0x73, 0x63, 0x7d, 0x66, | ||
146 | -/*f0*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, | ||
147 | -/*f8*/ 0x28, 0x29, 0x69, 0x79, 0x74, 0x64, 0x7e, 0x06 | ||
148 | -}; | ||
149 | - | ||
150 | -static const unsigned short cg2ebc0[256] = { | ||
151 | -/*00*/ 0x00, 0x41, 0x0c, 0x0d, 0x15, 0x19, 0xff, 0xca, | ||
152 | -/*08*/ 0x6e, 0x4c, 0xba, 0xbb, 0x5d, 0x4d, 0xd0, 0xc0, | ||
153 | -/*10*/ 0x40, 0x7e, 0x7d, 0x7f, 0x61, 0xe0, 0x4f, 0x6a, | ||
154 | -/*18*/ 0x6f, 0x5a, 0x5b, 0x4a, 0xb1, 0xb2, 0xb6, 0x9f, | ||
155 | -/*20*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, | ||
156 | -/*28*/ 0xf8, 0xf9, 0x59, 0xb5, 0x7b, 0x7c, 0x6c, 0x6d, | ||
157 | -/*30*/ 0x50, 0x60, 0x4b, 0x6b, 0x7a, 0x4e, 0x5f, 0xbc, | ||
158 | -/*38*/ 0x90, 0xb3, 0xb0, 0xa1, 0xbd, 0x79, 0xbe, 0x9d, | ||
159 | -/*40*/ 0x44, 0x54, 0x58, 0xcd, 0xdd, 0x46, 0xcf, 0xdf, | ||
160 | -/*48*/ 0xad, 0x8d, 0x51, 0xb7, 0xb8, 0xb9, 0xdc, 0x48, | ||
161 | -/*50*/ 0x43, 0x53, 0x57, 0xcc, 0xa0, 0x42, 0x52, 0x56, | ||
162 | -/*58*/ 0xcb, 0xdb, 0x45, 0xbf, 0x55, 0xce, 0xde, 0x49, | ||
163 | -/*60*/ 0x64, 0x74, 0x78, 0xed, 0xfd, 0x66, 0xef, 0xda, | ||
164 | -/*68*/ 0xea, 0xfa, 0x9a, 0x9b, 0x8a, 0x8b, 0xaa, 0xab, | ||
165 | -/*70*/ 0x63, 0x73, 0x77, 0xec, 0xfc, 0x62, 0x72, 0x76, | ||
166 | -/*78*/ 0xeb, 0xfb, 0x65, 0x71, 0x75, 0xee, 0xfe, 0x69, | ||
167 | -/*80*/ 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, | ||
168 | -/*88*/ 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, | ||
169 | -/*90*/ 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, | ||
170 | -/*98*/ 0xa8, 0xa9, 0x9c, 0x70, 0x47, 0xe1, 0x1e, 0x1c, | ||
171 | -/*a0*/ 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, | ||
172 | -/*a8*/ 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, | ||
173 | -/*b0*/ 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, | ||
174 | -/*b8*/ 0xe8, 0xe9, 0x9e, 0x80, 0x67, 0x68, 0x5e, 0x5c, | ||
175 | -/*c0*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
176 | -/*c8*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
177 | -/*d0*/ 0xb4, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xac, | ||
178 | -/*d8*/ 0x00, 0xae, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
179 | -/*e0*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
180 | -/*e8*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
181 | -/*f0*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, | ||
182 | -/*f8*/ 0x00, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | ||
183 | -}; | ||
184 | - | ||
185 | -#ifdef EXTENDED_TABLES | ||
186 | -static const unsigned short ebc2asc70[256] = { | ||
187 | -/*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
188 | -/*08*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
189 | -/*10*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
190 | -/*18*/ 0x20, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x3b, 0x20, | ||
191 | -/*20*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
192 | -/*28*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
193 | -/*30*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
194 | -/*38*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
195 | -/*40*/ 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
196 | -/*48*/ 0x00, 0x00, 0x00, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, | ||
197 | -/*50*/ 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
198 | -/*58*/ 0x00, 0x00, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x00, | ||
199 | -/*60*/ 0x2d, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
200 | -/*68*/ 0x00, 0x00, 0x00, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, | ||
201 | -/*70*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
202 | -/*78*/ 0x00, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, | ||
203 | -/*80*/ 0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, | ||
204 | -/*88*/ 0x68, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
205 | -/*90*/ 0x00, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, | ||
206 | -/*98*/ 0x71, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
207 | -/*a0*/ 0x00, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, | ||
208 | -/*a8*/ 0x79, 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
209 | -/*b0*/ 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
210 | -/*b8*/ 0x00, 0x00, 0x5b, 0x5d, 0x00, 0x00, 0x00, 0x00, | ||
211 | -/*c0*/ 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, | ||
212 | -/*c8*/ 0x48, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
213 | -/*d0*/ 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, | ||
214 | -/*d8*/ 0x51, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
215 | -/*e0*/ 0x5c, 0x00, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, | ||
216 | -/*e8*/ 0x59, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
217 | -/*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, | ||
218 | -/*f8*/ 0x38, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20 | ||
219 | -}; | ||
220 | -#endif // EXTENDED_TABLES | ||
221 | - | ||
222 | -static const unsigned short asc2ebc0[256] = { | ||
223 | -/*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
224 | -/*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
225 | -/*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
226 | -/*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
227 | -/*20*/ 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, | ||
228 | -/*28*/ 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, | ||
229 | -/*30*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, | ||
230 | -/*38*/ 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, | ||
231 | -/*40*/ 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, | ||
232 | -/*48*/ 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, | ||
233 | -/*50*/ 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, | ||
234 | -/*58*/ 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, | ||
235 | -/*60*/ 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, | ||
236 | -/*68*/ 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, | ||
237 | -/*70*/ 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, | ||
238 | -/*78*/ 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x00, | ||
239 | -/*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
240 | -/*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
241 | -/*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
242 | -/*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
243 | -/*a0*/ 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, | ||
244 | -/*a8*/ 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, | ||
245 | -/*b0*/ 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, | ||
246 | -/*b8*/ 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, | ||
247 | -/*c0*/ 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, | ||
248 | -/*c8*/ 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, | ||
249 | -/*d0*/ 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, | ||
250 | -/*d8*/ 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, | ||
251 | -/*e0*/ 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, | ||
252 | -/*e8*/ 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, | ||
253 | -/*f0*/ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, | ||
254 | -/*f8*/ 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf | ||
255 | -}; | ||
256 | - | ||
257 | -#ifdef EXTENDED_TABLES | ||
258 | -static const unsigned short ge2asc[256] = { | ||
259 | -/*00*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
260 | -/*08*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
261 | -/*10*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
262 | -/*18*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
263 | -/*20*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
264 | -/*28*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
265 | -/*30*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
266 | -/*38*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
267 | -/*40*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
268 | -/*48*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
269 | -/*50*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
270 | -/*58*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
271 | -/*60*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
272 | -/*68*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
273 | -/*70*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
274 | -/*78*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
275 | -/*80*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x19, 0x02, 0x02, | ||
276 | -/*88*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
277 | -/*90*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
278 | -/*98*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
279 | -/*a0*/ 0x02, 0x02, 0x12, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
280 | -/*a8*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x5b, 0x02, 0x02, | ||
281 | -/*b0*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
282 | -/*b8*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x5d, 0x02, 0x19, | ||
283 | -/*c0*/ 0x02, 0x02, 0x02, 0x02, 0x0e, 0x0d, 0x15, 0x17, | ||
284 | -/*c8*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
285 | -/*d0*/ 0x02, 0x02, 0x02, 0x0f, 0x0b, 0x0c, 0x16, 0x18, | ||
286 | -/*d8*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
287 | -/*e0*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
288 | -/*e8*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
289 | -/*f0*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | ||
290 | -/*f8*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 | ||
291 | -}; | ||
292 | -#endif // EXTENDED_TABLES | ||
293 | - | ||
294 | -static const unsigned short ebc2uc[256] = { | ||
295 | -/*00*/ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, | ||
296 | -/*08*/ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, | ||
297 | -/*10*/ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, | ||
298 | -/*18*/ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, | ||
299 | -/*20*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, | ||
300 | -/*28*/ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, | ||
301 | -/*30*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, | ||
302 | -/*38*/ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, | ||
303 | -/*40*/ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, | ||
304 | -/*48*/ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, | ||
305 | -/*50*/ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, | ||
306 | -/*58*/ 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, | ||
307 | -/*60*/ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, | ||
308 | -/*68*/ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, | ||
309 | -/*70*/ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, | ||
310 | -/*78*/ 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, | ||
311 | -/*80*/ 0x80, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, | ||
312 | -/*88*/ 0xc8, 0xc9, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, | ||
313 | -/*90*/ 0x90, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, | ||
314 | -/*98*/ 0xd8, 0xd9, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, | ||
315 | -/*a0*/ 0xa0, 0xa1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, | ||
316 | -/*a8*/ 0xe8, 0xe9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, | ||
317 | -/*b0*/ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, | ||
318 | -/*b8*/ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, | ||
319 | -/*c0*/ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, | ||
320 | -/*c8*/ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, | ||
321 | -/*d0*/ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, | ||
322 | -/*d8*/ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, | ||
323 | -/*e0*/ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, | ||
324 | -/*e8*/ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, | ||
325 | -/*f0*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, | ||
326 | -/*f8*/ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff | ||
327 | -}; | ||
328 | -#if defined(X3270_FT) /*[*/ | ||
329 | - | ||
330 | -#endif /*]*/ | ||
331 | - | ||
332 | -//unsigned short ebc2cg[256]; | ||
333 | -//unsigned short cg2ebc[256]; | ||
334 | -// unsigned short ebc2asc[256]; | ||
335 | -// unsigned short asc2ebc[256]; | ||
336 | -// unsigned short asc2ft[256]; | ||
337 | -// unsigned short ft2asc[256]; | ||
338 | - | ||
339 | -#ifdef EXTENDED_TABLES | ||
340 | -unsigned short ebc2asc7[256]; | ||
341 | -#endif //EXTENDED_TABLES | ||
342 | - | ||
343 | - | ||
344 | -/* | ||
345 | -void charset_defaults(H3270 *hSession) | ||
346 | -{ | ||
347 | - // Go to defaults first. | ||
348 | - (void) memcpy((char *) hSession->charset.ebc2cg, (const char *)ebc2cg0, 256); | ||
349 | - (void) memcpy((char *) hSession->charset.cg2ebc, (const char *)cg2ebc0, 256); | ||
350 | - (void) memcpy((char *) hSession->charset.ebc2asc, (const char *)ebc2asc0, 256); | ||
351 | - (void) memcpy((char *) hSession->charset.asc2ebc, (const char *)asc2ebc0, 256); | ||
352 | -#if defined(X3270_FT) | ||
353 | - (void) memcpy((char *)hSession->charset.ft2asc, (const char *)ft2asc0, 256); | ||
354 | - (void) memcpy((char *)hSession->charset.asc2ft, (const char *)asc2ft0, 256); | ||
355 | -#endif | ||
356 | - // clear_xks(); | ||
357 | -} | ||
358 | -*/ |
src/lib3270/w3misc.c
@@ -1,112 +0,0 @@ | @@ -1,112 +0,0 @@ | ||
1 | -/* | ||
2 | - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | - * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270. | ||
5 | - * | ||
6 | - * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | - * | ||
8 | - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | - * Free Software Foundation. | ||
11 | - * | ||
12 | - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | - * obter mais detalhes. | ||
16 | - * | ||
17 | - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | - * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | ||
19 | - * Place, Suite 330, Boston, MA, 02111-1307, USA | ||
20 | - * | ||
21 | - * Este programa está nomeado como w3misc.c e possui 110 linhas de código. | ||
22 | - * | ||
23 | - * Contatos: | ||
24 | - * | ||
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | - * licinio@bb.com.br (Licínio Luis Branco) | ||
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
29 | - * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) | ||
30 | - * | ||
31 | - */ | ||
32 | - | ||
33 | -#error Deprecated | ||
34 | - | ||
35 | -/* | ||
36 | - * w3misc.c | ||
37 | - * Miscellaneous Win32 functions. | ||
38 | - */ | ||
39 | - | ||
40 | -/* | ||
41 | -#include "globals.h" | ||
42 | - | ||
43 | -#if !defined(_WIN32) | ||
44 | -#error This module is only for Win32. | ||
45 | -#endif | ||
46 | - | ||
47 | -#include <winsock2.h> | ||
48 | -#include <ws2tcpip.h> | ||
49 | -#include <stdio.h> | ||
50 | -#include <errno.h> | ||
51 | - | ||
52 | -#include "w3miscc.h" | ||
53 | - | ||
54 | -// Convert a network address to a string. | ||
55 | -const char * inet_ntop(int af, const void *src, char *dst, socklen_t cnt) | ||
56 | -{ | ||
57 | - union { | ||
58 | - struct sockaddr sa; | ||
59 | - struct sockaddr_in sin; | ||
60 | - struct sockaddr_in6 sin6; | ||
61 | - } sa; | ||
62 | - DWORD ssz; | ||
63 | - DWORD sz = cnt; | ||
64 | - | ||
65 | - memset(&sa, '\0', sizeof(sa)); | ||
66 | - | ||
67 | - switch (af) { | ||
68 | - case AF_INET: | ||
69 | - sa.sin = *(struct sockaddr_in *)src; // struct copy | ||
70 | - ssz = sizeof(struct sockaddr_in); | ||
71 | - break; | ||
72 | - case AF_INET6: | ||
73 | - sa.sin6 = *(struct sockaddr_in6 *)src; // struct copy | ||
74 | - ssz = sizeof(struct sockaddr_in6); | ||
75 | - break; | ||
76 | - default: | ||
77 | - if (cnt > 0) | ||
78 | - dst[0] = '\0'; | ||
79 | - return NULL; | ||
80 | - } | ||
81 | - | ||
82 | - sa.sa.sa_family = af; | ||
83 | - | ||
84 | - if (WSAAddressToString(&sa.sa, ssz, NULL, dst, &sz) != 0) { | ||
85 | - if (cnt > 0) | ||
86 | - dst[0] = '\0'; | ||
87 | - return NULL; | ||
88 | - } | ||
89 | - | ||
90 | - return dst; | ||
91 | -} | ||
92 | - | ||
93 | -// Decode a Win32 error number. | ||
94 | -const char * win32_strerror(int e) | ||
95 | -{ | ||
96 | - static char buffer[4096]; | ||
97 | - | ||
98 | - if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, | ||
99 | - NULL, | ||
100 | - e, | ||
101 | - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), | ||
102 | - buffer, | ||
103 | - sizeof(buffer), | ||
104 | - NULL) == 0) { | ||
105 | - | ||
106 | - sprintf(buffer, "Windows error %d", e); | ||
107 | - } | ||
108 | - | ||
109 | - return buffer; | ||
110 | -} | ||
111 | - | ||
112 | -*/ |
src/lib3270/winvers.c
@@ -1,78 +0,0 @@ | @@ -1,78 +0,0 @@ | ||
1 | -/* | ||
2 | - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | - * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270. | ||
5 | - * | ||
6 | - * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | - * | ||
8 | - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | - * Free Software Foundation. | ||
11 | - * | ||
12 | - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | - * obter mais detalhes. | ||
16 | - * | ||
17 | - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | - * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | ||
19 | - * Place, Suite 330, Boston, MA, 02111-1307, USA | ||
20 | - * | ||
21 | - * Este programa está nomeado como winvers.c e possui 73 linhas de código. | ||
22 | - * | ||
23 | - * Contatos: | ||
24 | - * | ||
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | - * licinio@bb.com.br (Licínio Luis Branco) | ||
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
29 | - * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) | ||
30 | - * | ||
31 | - */ | ||
32 | - | ||
33 | -#error Deprecated | ||
34 | - | ||
35 | -/* | ||
36 | - * winvers.c | ||
37 | - * A Windows console-based 3270 Terminal Emulator | ||
38 | - * OS version query | ||
39 | - */ | ||
40 | - | ||
41 | -/* | ||
42 | -#include <windows.h> | ||
43 | -#include <stdio.h> | ||
44 | - | ||
45 | -#include "globals.h" | ||
46 | -#include "winversc.h" | ||
47 | - | ||
48 | -int is_nt = 1; | ||
49 | -int has_ipv6 = 1; | ||
50 | - | ||
51 | -int | ||
52 | -get_version_info(void) | ||
53 | -{ | ||
54 | - OSVERSIONINFO info; | ||
55 | - | ||
56 | - // Figure out what version of Windows this is. | ||
57 | - memset(&info, '\0', sizeof(info)); | ||
58 | - info.dwOSVersionInfoSize = sizeof(info); | ||
59 | - if (GetVersionEx(&info) == 0) { | ||
60 | - fprintf(stderr, "Can't get Windows version\n"); | ||
61 | - return -1; | ||
62 | - } | ||
63 | - | ||
64 | - // Yes, people still run Win98. | ||
65 | - if (info.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) | ||
66 | - is_nt = 0; | ||
67 | - | ||
68 | - // Win2K and earlier is IPv4-only. WinXP and later can have IPv6. | ||
69 | - if (!is_nt || | ||
70 | - info.dwMajorVersion < 5 || | ||
71 | - (info.dwMajorVersion == 5 && info.dwMinorVersion < 1)) { | ||
72 | - has_ipv6 = 0; | ||
73 | - } | ||
74 | - | ||
75 | - return 0; | ||
76 | -} | ||
77 | - | ||
78 | -*/ |
src/lib3270/xio.c
@@ -1,70 +0,0 @@ | @@ -1,70 +0,0 @@ | ||
1 | -/* | ||
2 | - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | - * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270. | ||
5 | - * | ||
6 | - * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | - * | ||
8 | - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | - * Free Software Foundation. | ||
11 | - * | ||
12 | - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | - * obter mais detalhes. | ||
16 | - * | ||
17 | - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | - * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | ||
19 | - * Place, Suite 330, Boston, MA, 02111-1307, USA | ||
20 | - * | ||
21 | - * Este programa está nomeado como xio.c e possui 143 linhas de código. | ||
22 | - * | ||
23 | - * Contatos: | ||
24 | - * | ||
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | - * licinio@bb.com.br (Licínio Luis Branco) | ||
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
29 | - * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) | ||
30 | - * | ||
31 | - */ | ||
32 | - | ||
33 | -/* | ||
34 | - * xio.c | ||
35 | - * Low-level I/O setup functions and exit code. | ||
36 | - */ | ||
37 | - | ||
38 | -#include "globals.h" | ||
39 | - | ||
40 | -#include "actionsc.h" | ||
41 | -#include "hostc.h" | ||
42 | -#include "telnetc.h" | ||
43 | -#include "toggle.h" | ||
44 | -#include "utilc.h" | ||
45 | -#include "xioc.h" | ||
46 | - | ||
47 | -#error xio.c is deprecated, use iocalls.c | ||
48 | - | ||
49 | -void x_except_on(H3270 *h) | ||
50 | -{ | ||
51 | - if(h->excepting) | ||
52 | - return; | ||
53 | - | ||
54 | - if(h->reading) | ||
55 | - RemoveInput(h->ns_read_id); | ||
56 | - | ||
57 | -#ifdef WIN32 | ||
58 | - h->ns_exception_id = AddExcept((int) h->sockEvent, h, net_exception); | ||
59 | - h->excepting = 1; | ||
60 | - | ||
61 | - if(h->reading) | ||
62 | - h->ns_read_id = AddInput( (int) h->sockEvent, h, net_input); | ||
63 | -#else | ||
64 | - h->ns_exception_id = AddExcept(h->sock, h, net_exception); | ||
65 | - h->excepting = 1; | ||
66 | - | ||
67 | - if(h->reading) | ||
68 | - h->ns_read_id = AddInput(h->sock, h, net_input); | ||
69 | -#endif // WIN32 | ||
70 | -} |