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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 | -/* | |
| 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 | -/* | |
| 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 | -/* | |
| 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 @@ |
| 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 | -/* | |
| 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 | -/* | |
| 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 | -/* | |
| 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 | -/* | |
| 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 | -} |