Commit ac822686e0074f263426c15943b752f6540b418d
1 parent
3f7ea0a5
Exists in
master
and in
3 other branches
Ajustando biblioteca para geração da jni android
Showing
20 changed files
with
367 additions
and
320 deletions
Show diff stats
ansi.c
... | ... | @@ -1706,10 +1706,9 @@ trace_pending_mb(void) |
1706 | 1706 | * External entry points |
1707 | 1707 | */ |
1708 | 1708 | |
1709 | -void | |
1710 | -ansi_init(void) | |
1709 | +void ansi_init(void) | |
1711 | 1710 | { |
1712 | - register_schange(ST_3270_MODE, ansi_in3270); | |
1711 | + lib3270_register_schange(NULL,LIB3270_STATE_3270_MODE,ansi_in3270,NULL); | |
1713 | 1712 | } |
1714 | 1713 | |
1715 | 1714 | void |
... | ... | @@ -1723,7 +1722,7 @@ ansi_process(unsigned int c) |
1723 | 1722 | // scroll_to_bottom(); |
1724 | 1723 | |
1725 | 1724 | #if defined(X3270_TRACE) /*[*/ |
1726 | - if (toggled(SCREEN_TRACE)) | |
1725 | + if (lib3270_get_toggle(&h3270,SCREEN_TRACE)) | |
1727 | 1726 | trace_char((char)c); |
1728 | 1727 | #endif /*]*/ |
1729 | 1728 | |
... | ... | @@ -1827,7 +1826,7 @@ ansi_send_pa(int nn) |
1827 | 1826 | |
1828 | 1827 | void toggle_lineWrap(H3270 *session, struct lib3270_toggle *t unused, LIB3270_TOGGLE_TYPE type unused) |
1829 | 1828 | { |
1830 | - if (toggled(LIB3270_TOGGLE_LINE_WRAP)) | |
1829 | + if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_LINE_WRAP)) | |
1831 | 1830 | wraparound_mode = 1; |
1832 | 1831 | else |
1833 | 1832 | wraparound_mode = 0; | ... | ... |
... | ... | @@ -114,8 +114,8 @@ |
114 | 114 | |
115 | 115 | #define ST_RESOLVING LIB3270_STATE_RESOLVING |
116 | 116 | #define ST_HALF_CONNECT LIB3270_STATE_HALF_CONNECT |
117 | - #define ST_CONNECT LIB3270_STATE_CONNECT | |
118 | - #define ST_3270_MODE LIB3270_STATE_3270_MODE | |
117 | +// #define ST_CONNECT LIB3270_STATE_CONNECT | |
118 | +// #define ST_3270_MODE LIB3270_STATE_3270_MODE | |
119 | 119 | #define ST_LINE_MODE LIB3270_STATE_LINE_MODE |
120 | 120 | #define ST_REMODEL LIB3270_STATE_REMODEL |
121 | 121 | #define ST_PRINTER LIB3270_STATE_PRINTER |
... | ... | @@ -159,7 +159,7 @@ |
159 | 159 | #define OIA_FLAG_UNDERA LIB3270_FLAG_UNDERA |
160 | 160 | // #define OIA_FLAG_SECURE LIB3270_FLAG_SECURE |
161 | 161 | #define OIA_FLAG_TYPEAHEAD LIB3270_FLAG_TYPEAHEAD |
162 | - #define OIA_FLAG_PRINTER LIB3270_FLAG_PRINTER | |
162 | +// #define OIA_FLAG_PRINTER LIB3270_FLAG_PRINTER | |
163 | 163 | #define OIA_FLAG_REVERSE LIB3270_FLAG_REVERSE |
164 | 164 | #define OIA_FLAG_USER LIB3270_FLAG_COUNT |
165 | 165 | #define OIA_FLAG LIB3270_FLAG |
... | ... | @@ -382,7 +382,7 @@ |
382 | 382 | |
383 | 383 | LOCAL_EXTERN SCRIPT_STATE status_script(SCRIPT_STATE state); |
384 | 384 | |
385 | - #define Toggled(ix) lib3270_get_toggle(NULL,ix) | |
385 | +// #define Toggled(ix) lib3270_get_toggle(NULL,ix) | |
386 | 386 | // #define CallAndWait(c,h,p) lib3270_call_thread(c,h,p) |
387 | 387 | |
388 | 388 | // #define RunPendingEvents(x) lib3270_main_iterate(x) |
... | ... | @@ -401,7 +401,7 @@ |
401 | 401 | #define host_connect(n,wait) lib3270_connect(NULL,n,wait) |
402 | 402 | #define host_reconnect(w) lib3270_reconnect(NULL,w) |
403 | 403 | |
404 | - #define register_schange(tx,func) lib3270_register_schange(NULL,tx,func,NULL) | |
404 | +// #define register_schange(tx,func) lib3270_register_schange(NULL,tx,func,NULL) | |
405 | 405 | |
406 | 406 | /* Console/Trace window */ |
407 | 407 | // LOCAL_EXTERN HCONSOLE console_window_new(const char *title, const char *label); | ... | ... |
appres.h
... | ... | @@ -80,24 +80,24 @@ typedef struct { |
80 | 80 | // char curses_keypad; |
81 | 81 | // char cbreak_mode; |
82 | 82 | //#endif /*]*/ |
83 | - char apl_mode; | |
83 | +// char apl_mode; | |
84 | 84 | // char scripted; |
85 | - char numeric_lock; | |
86 | - char secure; | |
87 | - char oerr_lock; | |
88 | - char typeahead; | |
85 | +// char numeric_lock; | |
86 | +// char secure; | |
87 | +// char oerr_lock; | |
88 | +// char typeahead; | |
89 | 89 | char debug_tracing; |
90 | 90 | char disconnect_clear; |
91 | 91 | char highlight_bold; |
92 | - char color8; | |
93 | - char bsd_tm; | |
94 | - char unlock_delay; | |
95 | -#if defined(X3270_SCRIPT) /*[*/ | |
96 | - char socket; | |
97 | -#endif /*]*/ | |
98 | -#if defined(C3270) && defined(_WIN32) /*[*/ | |
99 | - char highlight_underline; | |
100 | -#endif /*]*/ | |
92 | +// char color8; | |
93 | +// char bsd_tm; | |
94 | +// char unlock_delay; | |
95 | +// #if defined(X3270_SCRIPT) /*[*/ | |
96 | +// char socket; | |
97 | +// #endif /*]*/ | |
98 | +// #if defined(C3270) && defined(_WIN32) /*[*/ | |
99 | +// char highlight_underline; | |
100 | +//#endif /*]*/ | |
101 | 101 | |
102 | 102 | /* Named resources */ |
103 | 103 | /* |
... | ... | @@ -108,7 +108,7 @@ typedef struct { |
108 | 108 | #if defined(X3270_DISPLAY) || defined(C3270) |
109 | 109 | // char *key_map; |
110 | 110 | char *compose_map; |
111 | - char *printer_lu; | |
111 | +// char *printer_lu; | |
112 | 112 | #endif |
113 | 113 | /* |
114 | 114 | #if defined(X3270_DISPLAY) |
... | ... | @@ -148,10 +148,10 @@ typedef struct { |
148 | 148 | char *conf_dir; |
149 | 149 | char *model; |
150 | 150 | // char *hostsfile; |
151 | - char *port; | |
151 | +// char *port; | |
152 | 152 | char *charset; |
153 | - char *termname; | |
154 | - char *login_macro; | |
153 | +// char *termname; | |
154 | +// char *login_macro; | |
155 | 155 | char *macros; |
156 | 156 | #if defined(X3270_TRACE) /*[*/ |
157 | 157 | #if !defined(_WIN32) /*[*/ |
... | ... | @@ -186,7 +186,7 @@ typedef struct { |
186 | 186 | #if defined(HAVE_LIBSSL) /*[*/ |
187 | 187 | char *cert_file; |
188 | 188 | #endif /*]*/ |
189 | - char *proxy; | |
189 | +// char *proxy; | |
190 | 190 | |
191 | 191 | /* Toggles */ |
192 | 192 | // struct toggle toggle[N_TOGGLES]; |
... | ... | @@ -198,8 +198,10 @@ typedef struct { |
198 | 198 | Cursor locked_mcursor; |
199 | 199 | #endif |
200 | 200 | */ |
201 | -#if defined(X3270_ANSI) /*[*/ | |
202 | - /* Line-mode TTY parameters */ | |
201 | + | |
202 | +/* | |
203 | +#if defined(X3270_ANSI) | |
204 | + // Line-mode TTY parameters | |
203 | 205 | char icrnl; |
204 | 206 | char inlcr; |
205 | 207 | char onlcr; |
... | ... | @@ -211,11 +213,12 @@ typedef struct { |
211 | 213 | char *intr; |
212 | 214 | char *quit; |
213 | 215 | char *eof; |
214 | -#endif /*]*/ | |
215 | - | |
216 | -#if defined(WC3270) /*[*/ | |
217 | - char *hostname; | |
218 | 216 | #endif |
217 | +*/ | |
218 | + | |
219 | +// #if defined(WC3270) /*[*/ | |
220 | +// char *hostname; | |
221 | +// #endif | |
219 | 222 | |
220 | 223 | /* |
221 | 224 | #if defined(WC3270) | ... | ... |
ctlr.c
... | ... | @@ -150,8 +150,8 @@ void ctlr_init(H3270 *session, unsigned cmask unused) |
150 | 150 | { |
151 | 151 | /* Register callback routines. */ |
152 | 152 | lib3270_register_schange(session,ST_HALF_CONNECT, ctlr_half_connect, 0); |
153 | - lib3270_register_schange(session,ST_CONNECT, ctlr_connect, 0); | |
154 | - lib3270_register_schange(session,ST_3270_MODE, ctlr_connect, 0); | |
153 | + lib3270_register_schange(session,LIB3270_STATE_CONNECT, ctlr_connect, 0); | |
154 | + lib3270_register_schange(session,LIB3270_STATE_3270_MODE, ctlr_connect, 0); | |
155 | 155 | } |
156 | 156 | /* |
157 | 157 | * Reinitialize the emulated 3270 hardware. |
... | ... | @@ -2320,7 +2320,7 @@ ctlr_clear(H3270 *session, Boolean can_snap) |
2320 | 2320 | /* Snap any data that is about to be lost into the trace file. */ |
2321 | 2321 | if (ctlr_any_data()) { |
2322 | 2322 | #if defined(X3270_TRACE) /*[*/ |
2323 | - if (can_snap && !trace_skipping && toggled(SCREEN_TRACE)) | |
2323 | + if (can_snap && !trace_skipping && lib3270_get_toggle(session,SCREEN_TRACE)) | |
2324 | 2324 | trace_screen(); |
2325 | 2325 | #endif /*]*/ |
2326 | 2326 | // scroll_save(session->maxROWS, ever_3270 ? False : True); |
... | ... | @@ -2379,7 +2379,7 @@ void ctlr_add(int baddr, unsigned char c, unsigned char cs) |
2379 | 2379 | if (trace_primed && !IsBlank(oc)) |
2380 | 2380 | { |
2381 | 2381 | #if defined(X3270_TRACE) /*[*/ |
2382 | - if (toggled(SCREEN_TRACE)) | |
2382 | + if (lib3270_get_toggle(&h3270,SCREEN_TRACE)) | |
2383 | 2383 | trace_screen(); |
2384 | 2384 | #endif /*]*/ |
2385 | 2385 | trace_primed = False; |
... | ... | @@ -2739,7 +2739,7 @@ void ticking_start(H3270 *session, Boolean anyway) |
2739 | 2739 | |
2740 | 2740 | if(session->set_timer) |
2741 | 2741 | { |
2742 | - if(toggled(SHOW_TIMING) || anyway) | |
2742 | + if(lib3270_get_toggle(&h3270,SHOW_TIMING) || anyway) | |
2743 | 2743 | session->set_timer(session,1); |
2744 | 2744 | } |
2745 | 2745 | else |
... | ... | @@ -2748,7 +2748,7 @@ void ticking_start(H3270 *session, Boolean anyway) |
2748 | 2748 | |
2749 | 2749 | mticking = True; |
2750 | 2750 | |
2751 | - if (!toggled(SHOW_TIMING) && !anyway) | |
2751 | + if (!lib3270_get_toggle(&h3270,SHOW_TIMING) && !anyway) | |
2752 | 2752 | return; |
2753 | 2753 | |
2754 | 2754 | status_untiming(session); | ... | ... |
... | ... | @@ -114,8 +114,8 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); |
114 | 114 | void ft_init(H3270 *session) |
115 | 115 | { |
116 | 116 | /* Register for state changes. */ |
117 | - lib3270_register_schange(session, ST_CONNECT, ( void (*)(H3270 *, int, void *)) ft_connected, NULL); | |
118 | - lib3270_register_schange(session, ST_3270_MODE, ( void (*)(H3270 *, int, void *)) ft_in3270, NULL); | |
117 | + lib3270_register_schange(session, LIB3270_STATE_CONNECT, ( void (*)(H3270 *, int, void *)) ft_connected, NULL); | |
118 | + lib3270_register_schange(session, LIB3270_STATE_3270_MODE, ( void (*)(H3270 *, int, void *)) ft_in3270, NULL); | |
119 | 119 | } |
120 | 120 | |
121 | 121 | // enum ft_state QueryFTstate(void) | ... | ... |
globals.h
... | ... | @@ -307,22 +307,6 @@ LIB3270_INTERNAL struct trans_list *trans_list; |
307 | 307 | /* input key type */ |
308 | 308 | // enum keytype { KT_STD, KT_GE }; |
309 | 309 | |
310 | -/* state changes */ /* | |
311 | -enum state_change | |
312 | -{ | |
313 | - ST_RESOLVING, | |
314 | - ST_HALF_CONNECT, | |
315 | - ST_CONNECT, | |
316 | - ST_3270_MODE, | |
317 | - ST_LINE_MODE, | |
318 | - ST_REMODEL, | |
319 | - ST_PRINTER, | |
320 | - ST_EXITING, | |
321 | - ST_CHARSET, | |
322 | - | |
323 | - N_ST // Always the last one | |
324 | -}; */ | |
325 | - | |
326 | 310 | /* Naming convention for private actions. */ |
327 | 311 | #define PA_PFX "PA-" |
328 | 312 | ... | ... |
glue.c
... | ... | @@ -141,7 +141,7 @@ static void initialize(void) |
141 | 141 | #endif /*]*/ |
142 | 142 | |
143 | 143 | // appres.modified_sel = False; |
144 | - appres.apl_mode = False; | |
144 | +// appres.apl_mode = False; | |
145 | 145 | |
146 | 146 | /* |
147 | 147 | #if defined(C3270) || defined(TCL3270) |
... | ... | @@ -151,16 +151,16 @@ static void initialize(void) |
151 | 151 | #endif |
152 | 152 | */ |
153 | 153 | |
154 | - appres.numeric_lock = False; | |
154 | +// appres.numeric_lock = False; | |
155 | 155 | // appres.secure = False; |
156 | 156 | |
157 | 157 | #if defined(C3270) /*[*/ |
158 | - appres.oerr_lock = True; | |
158 | +// appres.oerr_lock = True; | |
159 | 159 | #else /*][*/ |
160 | - appres.oerr_lock = False; | |
160 | +// appres.oerr_lock = False; | |
161 | 161 | #endif /*]*/ |
162 | 162 | |
163 | - appres.typeahead = True; | |
163 | +// appres.typeahead = True; | |
164 | 164 | appres.debug_tracing = True; |
165 | 165 | |
166 | 166 | #if defined(C3270) /*[*/ |
... | ... | @@ -169,7 +169,7 @@ static void initialize(void) |
169 | 169 | |
170 | 170 | appres.model = ""; |
171 | 171 | // appres.hostsfile = CN; |
172 | - appres.port = "telnet"; | |
172 | +// appres.port = "telnet"; | |
173 | 173 | |
174 | 174 | #if !defined(_WIN32) /*[*/ |
175 | 175 | appres.charset = "bracket"; |
... | ... | @@ -181,7 +181,7 @@ static void initialize(void) |
181 | 181 | appres.charset = "bracket437"; |
182 | 182 | #endif /*]*/ |
183 | 183 | |
184 | - appres.termname = CN; | |
184 | +// appres.termname = CN; | |
185 | 185 | appres.macros = CN; |
186 | 186 | |
187 | 187 | #if defined(X3270_TRACE) /*[*/ |
... | ... | @@ -206,21 +206,21 @@ static void initialize(void) |
206 | 206 | // appres.cbreak_mode = False; |
207 | 207 | #endif /*]*/ |
208 | 208 | |
209 | -#if defined(X3270_ANSI) /*[*/ | |
210 | - appres.icrnl = True; | |
211 | - appres.inlcr = False; | |
212 | - appres.onlcr = True; | |
213 | - appres.erase = "^H"; | |
214 | - appres.kill = "^U"; | |
215 | - appres.werase = "^W"; | |
216 | - appres.rprnt = "^R"; | |
217 | - appres.lnext = "^V"; | |
218 | - appres.intr = "^C"; | |
219 | - appres.quit = "^\\"; | |
220 | - appres.eof = "^D"; | |
209 | +#if defined(X3270_ANSI) | |
210 | +// appres.icrnl = True; | |
211 | +// appres.inlcr = False; | |
212 | +// appres.onlcr = True; | |
213 | +// appres.erase = "^H"; | |
214 | +// appres.kill = "^U"; | |
215 | +// appres.werase = "^W"; | |
216 | +// appres.rprnt = "^R"; | |
217 | +// appres.lnext = "^V"; | |
218 | +// appres.intr = "^C"; | |
219 | +// appres.quit = "^\\"; | |
220 | +// appres.eof = "^D"; | |
221 | 221 | #endif /*]*/ |
222 | 222 | |
223 | - appres.unlock_delay = True; | |
223 | +// appres.unlock_delay = True; | |
224 | 224 | |
225 | 225 | #if defined(X3270_FT) /*[*/ |
226 | 226 | appres.dft_buffer_size = DFT_BUF; |
... | ... | @@ -296,7 +296,7 @@ static const struct lib3270_option options[] = |
296 | 296 | // { OptAllBold, OPT_BOOLEAN, True, ResAllBold, offset(all_bold_on), NULL }, |
297 | 297 | // { OptAltScreen,OPT_STRING, False, ResAltScreen, offset(altscreen), NULL }, |
298 | 298 | //#endif /*]*/ |
299 | - { OptAplMode, OPT_BOOLEAN, True, ResAplMode, offset(apl_mode), NULL }, | |
299 | +// { OptAplMode, OPT_BOOLEAN, True, ResAplMode, offset(apl_mode), NULL }, | |
300 | 300 | #if defined(C3270) /*[*/ |
301 | 301 | // { OptCbreak, OPT_BOOLEAN, True, ResCbreak, offset(cbreak_mode), NULL }, |
302 | 302 | #endif /*]*/ |
... | ... | @@ -323,11 +323,11 @@ static const struct lib3270_option options[] = |
323 | 323 | // #endif /*]*/ |
324 | 324 | // { OptOnce, OPT_BOOLEAN, True, ResOnce, offset(once), NULL }, |
325 | 325 | // { OptOversize, OPT_STRING, False, ResOversize, offset(oversize), N_( "Sets the screen dimensions to be larger than the default for the chosen model (COLSxROWS)." ) }, |
326 | - { OptPort, OPT_STRING, False, ResPort, offset(port), N_( "The name of the default TCP port to connect" ) }, | |
326 | +// { OptPort, OPT_STRING, False, ResPort, offset(port), N_( "The name of the default TCP port to connect" ) }, | |
327 | 327 | #if defined(C3270) && !defined(LIB3270) /*[*/ |
328 | - { OptPrinterLu,OPT_STRING, False, ResPrinterLu, offset(printer_lu), NULL }, | |
328 | +// { OptPrinterLu,OPT_STRING, False, ResPrinterLu, offset(printer_lu), NULL }, | |
329 | 329 | #endif /*]*/ |
330 | - { OptProxy, OPT_STRING, False, ResProxy, offset(proxy), N_( "Proxy server (type:host[:port])" ) }, | |
330 | +// { OptProxy, OPT_STRING, False, ResProxy, offset(proxy), N_( "Proxy server (type:host[:port])" ) }, | |
331 | 331 | #if defined(S3270) /*[*/ |
332 | 332 | { OptScripted, OPT_NOP, False, ResScripted, NULL, NULL }, |
333 | 333 | #endif /*]*/ |
... | ... | @@ -339,7 +339,7 @@ static const struct lib3270_option options[] = |
339 | 339 | { OptSocket, OPT_BOOLEAN, True, ResSocket, offset(socket), NULL }, |
340 | 340 | #endif /*]*/ |
341 | 341 | |
342 | - { OptTermName, OPT_STRING, False, ResTermName, offset(termname), N_( "Specifies the terminal name to be transmitted over the telnet connection." ) }, | |
342 | +// { OptTermName, OPT_STRING, False, ResTermName, offset(termname), N_( "Specifies the terminal name to be transmitted over the telnet connection." ) }, | |
343 | 343 | |
344 | 344 | #if defined(WC3270) /*[*/ |
345 | 345 | { OptTitle, OPT_STRING, False, ResTitle, offset(title), NULL }, |
... | ... | @@ -377,17 +377,17 @@ static struct { |
377 | 377 | } resources[] = { |
378 | 378 | { ResAllBold, offset(all_bold), XRM_STRING }, |
379 | 379 | // { ResAltScreen, offset(altscreen), XRM_STRING }, |
380 | - { ResBsdTm, offset(bsd_tm), XRM_BOOLEAN }, | |
380 | +// { ResBsdTm, offset(bsd_tm), XRM_BOOLEAN }, | |
381 | 381 | #if defined(HAVE_LIBSSL) /*[*/ |
382 | 382 | { ResCertFile, offset(cert_file), XRM_STRING }, |
383 | 383 | #endif /*]*/ |
384 | 384 | { ResCharset, offset(charset), XRM_STRING }, |
385 | - { ResColor8, offset(color8), XRM_BOOLEAN }, | |
385 | +// { ResColor8, offset(color8), XRM_BOOLEAN }, | |
386 | 386 | { ResConfDir, offset(conf_dir), XRM_STRING }, |
387 | 387 | // { ResDefScreen, offset(defscreen), XRM_STRING }, |
388 | 388 | #if defined(X3270_ANSI) /*[*/ |
389 | - { ResEof, offset(eof), XRM_STRING }, | |
390 | - { ResErase, offset(erase), XRM_STRING }, | |
389 | +// { ResEof, offset(eof), XRM_STRING }, | |
390 | +// { ResErase, offset(erase), XRM_STRING }, | |
391 | 391 | #endif /*]*/ |
392 | 392 | // { ResExtended, offset(extended), XRM_BOOLEAN }, |
393 | 393 | #if defined(X3270_FT) /*[*/ |
... | ... | @@ -399,10 +399,10 @@ static struct { |
399 | 399 | #endif /*]*/ |
400 | 400 | // { ResHostsFile, offset(hostsfile), XRM_STRING }, |
401 | 401 | #if defined(X3270_ANSI) /*[*/ |
402 | - { ResIcrnl, offset(icrnl), XRM_BOOLEAN }, | |
403 | - { ResInlcr, offset(inlcr), XRM_BOOLEAN }, | |
404 | - { ResOnlcr, offset(onlcr), XRM_BOOLEAN }, | |
405 | - { ResIntr, offset(intr), XRM_STRING }, | |
402 | +// { ResIcrnl, offset(icrnl), XRM_BOOLEAN }, | |
403 | +// { ResInlcr, offset(inlcr), XRM_BOOLEAN }, | |
404 | +// { ResOnlcr, offset(onlcr), XRM_BOOLEAN }, | |
405 | +// { ResIntr, offset(intr), XRM_STRING }, | |
406 | 406 | #endif /*]*/ |
407 | 407 | #if defined(X3270_SCRIPT) /*[*/ |
408 | 408 | { ResPluginCommand, offset(plugin_command), XRM_STRING }, |
... | ... | @@ -422,31 +422,31 @@ static struct { |
422 | 422 | // { ResCbreak, offset(cbreak_mode), XRM_BOOLEAN }, |
423 | 423 | #endif /*]*/ |
424 | 424 | #if defined(X3270_ANSI) /*[*/ |
425 | - { ResKill, offset(kill), XRM_STRING }, | |
426 | - { ResLnext, offset(lnext), XRM_STRING }, | |
425 | +// { ResKill, offset(kill), XRM_STRING }, | |
426 | +// { ResLnext, offset(lnext), XRM_STRING }, | |
427 | 427 | #endif /*]*/ |
428 | - { ResLoginMacro,offset(login_macro), XRM_STRING }, | |
428 | +// { ResLoginMacro,offset(login_macro), XRM_STRING }, | |
429 | 429 | // { ResM3279, offset(m3279), XRM_BOOLEAN }, |
430 | 430 | // { ResModel, offset(model), XRM_STRING }, |
431 | 431 | // { ResModifiedSel, offset(modified_sel), XRM_BOOLEAN }, |
432 | 432 | //#if defined(C3270) && !defined(_WIN32) /*[*/ |
433 | 433 | // { ResMono, offset(mono), XRM_BOOLEAN }, |
434 | 434 | //#endif /*]*/ |
435 | - { ResNumericLock, offset(numeric_lock), XRM_BOOLEAN }, | |
436 | - { ResOerrLock, offset(oerr_lock), XRM_BOOLEAN }, | |
435 | +// { ResNumericLock, offset(numeric_lock), XRM_BOOLEAN }, | |
436 | +// { ResOerrLock, offset(oerr_lock), XRM_BOOLEAN }, | |
437 | 437 | // { ResOversize, offset(oversize), XRM_STRING }, |
438 | - { ResPort, offset(port), XRM_STRING }, | |
438 | +// { ResPort, offset(port), XRM_STRING }, | |
439 | 439 | #if defined(C3270) /*[*/ |
440 | - { ResPrinterLu, offset(printer_lu), XRM_STRING }, | |
440 | +// { ResPrinterLu, offset(printer_lu), XRM_STRING }, | |
441 | 441 | { ResPrintTextCommand, NULL, XRM_STRING }, |
442 | 442 | #endif /*]*/ |
443 | - { ResProxy, offset(proxy), XRM_STRING }, | |
443 | +// { ResProxy, offset(proxy), XRM_STRING }, | |
444 | 444 | #if defined(X3270_ANSI) /*[*/ |
445 | - { ResQuit, offset(quit), XRM_STRING }, | |
446 | - { ResRprnt, offset(rprnt), XRM_STRING }, | |
445 | +// { ResQuit, offset(quit), XRM_STRING }, | |
446 | +// { ResRprnt, offset(rprnt), XRM_STRING }, | |
447 | 447 | #endif /*]*/ |
448 | 448 | // { ResSecure, offset(secure), XRM_BOOLEAN }, |
449 | - { ResTermName, offset(termname), XRM_STRING }, | |
449 | +// { ResTermName, offset(termname), XRM_STRING }, | |
450 | 450 | #if defined(WC3270) /*[*/ |
451 | 451 | { ResTitle, offset(title), XRM_STRING }, |
452 | 452 | #endif /*]*/ |
... | ... | @@ -460,10 +460,10 @@ static struct { |
460 | 460 | { ResTraceMonitor,offset(trace_monitor),XRM_BOOLEAN }, |
461 | 461 | #endif /*]*/ |
462 | 462 | #endif /*]*/ |
463 | - { ResTypeahead, offset(typeahead), XRM_BOOLEAN }, | |
464 | - { ResUnlockDelay,offset(unlock_delay), XRM_BOOLEAN }, | |
463 | +// { ResTypeahead, offset(typeahead), XRM_BOOLEAN }, | |
464 | +// { ResUnlockDelay,offset(unlock_delay), XRM_BOOLEAN }, | |
465 | 465 | #if defined(X3270_ANSI) /*[*/ |
466 | - { ResWerase, offset(werase), XRM_STRING }, | |
466 | +// { ResWerase, offset(werase), XRM_STRING }, | |
467 | 467 | #endif /*]*/ |
468 | 468 | |
469 | 469 | { CN, 0, XRM_STRING } | ... | ... |
host.c
... | ... | @@ -39,7 +39,7 @@ |
39 | 39 | */ |
40 | 40 | |
41 | 41 | #include "globals.h" |
42 | -#include "appres.h" | |
42 | +// #include "appres.h" | |
43 | 43 | #include "resources.h" |
44 | 44 | |
45 | 45 | #include "actionsc.h" |
... | ... | @@ -477,7 +477,7 @@ static int do_connect(H3270 *hSession, const char *n) |
477 | 477 | char nb[2048]; /* name buffer */ |
478 | 478 | char *s; /* temporary */ |
479 | 479 | const char *chost; /* to whom we will connect */ |
480 | - char *ps = CN; | |
480 | +// char *ps = CN; | |
481 | 481 | char *port = CN; |
482 | 482 | Boolean resolving; |
483 | 483 | Boolean pending; |
... | ... | @@ -522,7 +522,7 @@ static int do_connect(H3270 *hSession, const char *n) |
522 | 522 | |
523 | 523 | /* Default the port. */ |
524 | 524 | if (port == CN) |
525 | - port = appres.port; | |
525 | + port = "telnet"; | |
526 | 526 | } |
527 | 527 | |
528 | 528 | /* |
... | ... | @@ -566,8 +566,8 @@ static int do_connect(H3270 *hSession, const char *n) |
566 | 566 | /* Success. */ |
567 | 567 | |
568 | 568 | /* Set pending string. */ |
569 | - if (ps == CN) | |
570 | - ps = appres.login_macro; | |
569 | +// if (ps == CN) | |
570 | +// ps = appres.login_macro; | |
571 | 571 | |
572 | 572 | // if (ps != CN) |
573 | 573 | // login_macro(ps); |
... | ... | @@ -656,7 +656,7 @@ int lib3270_connect(H3270 *h, const char *n, int wait) |
656 | 656 | static void try_reconnect(H3270 *session) |
657 | 657 | { |
658 | 658 | lib3270_write_log(session,"3270","Starting auto-reconnect (Host: %s)",session->full_current_host ? session->full_current_host : "-"); |
659 | - session->auto_reconnect_inprogress = False; | |
659 | + session->auto_reconnect_inprogress = 0; | |
660 | 660 | lib3270_reconnect(session,0); |
661 | 661 | } |
662 | 662 | |
... | ... | @@ -686,11 +686,11 @@ void host_disconnect(H3270 *h, int failed) |
686 | 686 | |
687 | 687 | net_disconnect(h); |
688 | 688 | |
689 | - Trace("Disconnected (Failed: %d Reconnect: %d in_progress: %d)",failed,toggled(RECONNECT),h->auto_reconnect_inprogress); | |
690 | - if (toggled(RECONNECT) && !h->auto_reconnect_inprogress) | |
689 | + trace("Disconnected (Failed: %d Reconnect: %d in_progress: %d)",failed,lib3270_get_toggle(h,LIB3270_TOGGLE_RECONNECT),h->auto_reconnect_inprogress); | |
690 | + if (lib3270_get_toggle(h,LIB3270_TOGGLE_RECONNECT) && !h->auto_reconnect_inprogress) | |
691 | 691 | { |
692 | 692 | /* Schedule an automatic reconnection. */ |
693 | - h->auto_reconnect_inprogress = True; | |
693 | + h->auto_reconnect_inprogress = 1; | |
694 | 694 | (void) AddTimeOut(failed ? RECONNECT_ERR_MS: RECONNECT_MS, h, try_reconnect); |
695 | 695 | } |
696 | 696 | |
... | ... | @@ -699,7 +699,7 @@ void host_disconnect(H3270 *h, int failed) |
699 | 699 | * in sync. |
700 | 700 | */ |
701 | 701 | #if defined(X3270_TRACE) /*[*/ |
702 | - if (IN_ANSI && toggled(SCREEN_TRACE)) | |
702 | + if (IN_ANSI && lib3270_get_toggle(h,LIB3270_TOGGLE_SCREEN_TRACE)) | |
703 | 703 | trace_ansi_disc(); |
704 | 704 | #endif /*]*/ |
705 | 705 | |
... | ... | @@ -716,13 +716,13 @@ void host_in3270(H3270 *session, LIB3270_CSTATE new_cstate) |
716 | 716 | |
717 | 717 | session->cstate = new_cstate; |
718 | 718 | session->ever_3270 = now3270; |
719 | - lib3270_st_changed(session, ST_3270_MODE, now3270); | |
719 | + lib3270_st_changed(session, LIB3270_STATE_3270_MODE, now3270); | |
720 | 720 | } |
721 | 721 | |
722 | 722 | void host_connected(H3270 *session) |
723 | 723 | { |
724 | 724 | session->cstate = CONNECTED_INITIAL; |
725 | - lib3270_st_changed(session, ST_CONNECT, True); | |
725 | + lib3270_st_changed(session, LIB3270_STATE_CONNECT, True); | |
726 | 726 | if(session->update_connect) |
727 | 727 | session->update_connect(session,1); |
728 | 728 | } |
... | ... | @@ -731,7 +731,7 @@ void host_disconnected(H3270 *session) |
731 | 731 | { |
732 | 732 | session->cstate = NOT_CONNECTED; |
733 | 733 | set_status(session,OIA_FLAG_UNDERA,False); |
734 | - lib3270_st_changed(session,ST_CONNECT, False); | |
734 | + lib3270_st_changed(session,LIB3270_STATE_CONNECT, False); | |
735 | 735 | status_changed(session,LIB3270_MESSAGE_DISCONNECTED); |
736 | 736 | if(session->update_connect) |
737 | 737 | session->update_connect(session,0); |
... | ... | @@ -758,15 +758,35 @@ LIB3270_EXPORT void lib3270_register_schange(H3270 *h,LIB3270_STATE_CHANGE tx, v |
758 | 758 | } |
759 | 759 | |
760 | 760 | /* Signal a state change. */ |
761 | -void lib3270_st_changed(H3270 *h, int tx, int mode) | |
761 | +void lib3270_st_changed(H3270 *h, LIB3270_STATE tx, int mode) | |
762 | 762 | { |
763 | +#if defined(DEBUG) | |
764 | + | |
765 | + static const char * state_name[LIB3270_STATE_USER] = | |
766 | + { | |
767 | + "LIB3270_STATE_RESOLVING", | |
768 | + "LIB3270_STATE_HALF_CONNECT", | |
769 | + "LIB3270_STATE_CONNECT", | |
770 | + "LIB3270_STATE_3270_MODE", | |
771 | + "LIB3270_STATE_LINE_MODE", | |
772 | + "LIB3270_STATE_REMODEL", | |
773 | + "LIB3270_STATE_PRINTER", | |
774 | + "LIB3270_STATE_EXITING", | |
775 | + "LIB3270_STATE_CHARSET", | |
776 | + | |
777 | + }; | |
778 | + | |
779 | +#endif // DEBUG | |
780 | + | |
763 | 781 | struct lib3270_state_callback *st; |
764 | 782 | |
765 | 783 | CHECK_SESSION_HANDLE(h); |
766 | 784 | |
785 | + trace("%s is %d",state_name[tx],mode); | |
786 | + | |
767 | 787 | for (st = h->st_callbacks[tx];st != (struct lib3270_state_callback *)NULL;st = st->next) |
768 | 788 | { |
769 | - (*st->func)(h,mode,st->data); | |
789 | + st->func(h,mode,st->data); | |
770 | 790 | } |
771 | 791 | } |
772 | 792 | |
... | ... | @@ -817,7 +837,7 @@ LIB3270_EXPORT int lib3270_reconnect(H3270 *h,int wait) |
817 | 837 | |
818 | 838 | if(rc) |
819 | 839 | { |
820 | - h->auto_reconnect_inprogress = False; | |
840 | + h->auto_reconnect_inprogress = 0; | |
821 | 841 | return rc; |
822 | 842 | } |
823 | 843 | ... | ... |
hostc.h
... | ... | @@ -21,7 +21,7 @@ |
21 | 21 | |
22 | 22 | #define st_changed(tx,mode) lib3270_st_changed(NULL,tx,mode) |
23 | 23 | |
24 | - LIB3270_INTERNAL void lib3270_st_changed(H3270 *h, int tx, int mode); | |
24 | + LIB3270_INTERNAL void lib3270_st_changed(H3270 *h, LIB3270_STATE tx, int mode); | |
25 | 25 | LIB3270_INTERNAL void host_connected(H3270 *session); |
26 | 26 | LIB3270_INTERNAL void host_disconnected(H3270 *session); |
27 | 27 | LIB3270_INTERNAL void host_in3270(H3270 *session, LIB3270_CSTATE); | ... | ... |
init.c
... | ... | @@ -134,7 +134,12 @@ static void lib3270_session_init(H3270 *hSession, const char *model) |
134 | 134 | hSession->sz = sizeof(H3270); |
135 | 135 | |
136 | 136 | // Set the defaults. |
137 | - hSession->extended = 1; | |
137 | + hSession->extended = 1; | |
138 | + hSession->typeahead = 1; | |
139 | + hSession->oerr_lock = 1; | |
140 | + hSession->unlock_delay = 1; | |
141 | + hSession->icrnl = 1; | |
142 | + hSession->onlcr = 1; | |
138 | 143 | |
139 | 144 | // Initialize toggles |
140 | 145 | initialize_toggles(hSession); |
... | ... | @@ -208,14 +213,14 @@ static void lib3270_session_init(H3270 *hSession, const char *model) |
208 | 213 | } |
209 | 214 | ctlr_set_rows_cols(hSession, model_number, ovc, ovr); |
210 | 215 | |
211 | - if (appres.termname != CN) | |
212 | - hSession->termtype = appres.termname; | |
216 | + if (hSession->termname != CN) | |
217 | + hSession->termtype = hSession->termname; | |
213 | 218 | else |
214 | 219 | hSession->termtype = hSession->full_model_name; |
215 | 220 | |
216 | 221 | Trace("Termtype: %s",hSession->termtype); |
217 | 222 | |
218 | - if (appres.apl_mode) | |
223 | + if (hSession->apl_mode) | |
219 | 224 | appres.charset = "apl"; |
220 | 225 | |
221 | 226 | } | ... | ... |
kybd.c
... | ... | @@ -48,7 +48,7 @@ |
48 | 48 | |
49 | 49 | #include <fcntl.h> |
50 | 50 | #include "3270ds.h" |
51 | -#include "appres.h" | |
51 | +// #include "appres.h" | |
52 | 52 | // #include "ctlr.h" |
53 | 53 | #include "resources.h" |
54 | 54 | |
... | ... | @@ -195,7 +195,7 @@ static int enq_chk(void) |
195 | 195 | } |
196 | 196 | |
197 | 197 | /* If typeahead disabled, complain and drop it. */ |
198 | - if (!appres.typeahead) | |
198 | + if (!h3270.typeahead) | |
199 | 199 | { |
200 | 200 | trace_event(" dropped (no typeahead)\n"); |
201 | 201 | return -1; |
... | ... | @@ -439,8 +439,8 @@ kybd_in3270(H3270 *session, int in3270 unused, void *dunno) |
439 | 439 | void kybd_init(void) |
440 | 440 | { |
441 | 441 | /* Register interest in connect and disconnect events. */ |
442 | - register_schange(ST_CONNECT, kybd_connect); | |
443 | - register_schange(ST_3270_MODE, kybd_in3270); | |
442 | + lib3270_register_schange(NULL,LIB3270_STATE_CONNECT,kybd_connect,NULL); | |
443 | + lib3270_register_schange(NULL,LIB3270_STATE_3270_MODE,kybd_in3270,NULL); | |
444 | 444 | } |
445 | 445 | |
446 | 446 | /* |
... | ... | @@ -464,12 +464,15 @@ operator_error(int error_type) |
464 | 464 | // if (sms_redirect()) |
465 | 465 | // popup_an_error("Keyboard locked"); |
466 | 466 | |
467 | - if(appres.oerr_lock) { // || sms_redirect()) { | |
467 | + if(h3270.oerr_lock) | |
468 | + { | |
468 | 469 | status_oerr(NULL,error_type); |
469 | 470 | mcursor_locked(&h3270); |
470 | 471 | kybdlock_set((unsigned int)error_type, "operator_error"); |
471 | - (void) flush_ta(); | |
472 | - } else { | |
472 | + flush_ta(); | |
473 | + } | |
474 | + else | |
475 | + { | |
473 | 476 | lib3270_ring_bell(NULL); |
474 | 477 | } |
475 | 478 | } |
... | ... | @@ -652,7 +655,7 @@ static Boolean ins_prep(int faddr, int baddr, int count) |
652 | 655 | while (need && (xaddr != next_faddr)) { |
653 | 656 | if (h3270.ea_buf[xaddr].cc == EBC_null) |
654 | 657 | need--; |
655 | - else if (toggled(LIB3270_TOGGLE_BLANK_FILL) && | |
658 | + else if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_BLANK_FILL) && | |
656 | 659 | ((h3270.ea_buf[xaddr].cc == EBC_space) || |
657 | 660 | (h3270.ea_buf[xaddr].cc == EBC_underscore))) { |
658 | 661 | if (tb_start == -1) |
... | ... | @@ -770,7 +773,7 @@ static Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean |
770 | 773 | operator_error(KL_OERR_PROTECTED); |
771 | 774 | return False; |
772 | 775 | } |
773 | - if (appres.numeric_lock && FA_IS_NUMERIC(fa) && | |
776 | + if (h3270.numeric_lock && FA_IS_NUMERIC(fa) && | |
774 | 777 | !((code >= EBC_0 && code <= EBC_9) || |
775 | 778 | code == EBC_minus || code == EBC_period)) { |
776 | 779 | operator_error(KL_OERR_NUMERIC); |
... | ... | @@ -795,7 +798,7 @@ static Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean |
795 | 798 | /* Add the character. */ |
796 | 799 | if (h3270.ea_buf[baddr].cc == EBC_so) { |
797 | 800 | |
798 | - if (toggled(LIB3270_TOGGLE_INSERT)) { | |
801 | + if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_INSERT)) { | |
799 | 802 | if (!ins_prep(faddr, baddr, 1)) |
800 | 803 | return False; |
801 | 804 | } else { |
... | ... | @@ -832,7 +835,7 @@ static Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean |
832 | 835 | /* fall through... */ |
833 | 836 | case DBCS_LEFT: |
834 | 837 | if (why == DBCS_ATTRIBUTE) { |
835 | - if (toggled(LIB3270_TOGGLE_INSERT)) { | |
838 | + if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_INSERT)) { | |
836 | 839 | if (!ins_prep(faddr, baddr, 1)) |
837 | 840 | return False; |
838 | 841 | } else { |
... | ... | @@ -849,7 +852,7 @@ static Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean |
849 | 852 | } else { |
850 | 853 | Boolean was_si; |
851 | 854 | |
852 | - if (toggled(LIB3270_TOGGLE_INSERT)) { | |
855 | + if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_INSERT)) { | |
853 | 856 | /* |
854 | 857 | * Inserting SBCS into a DBCS subfield. |
855 | 858 | * If this is the first position, we |
... | ... | @@ -906,7 +909,7 @@ static Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean |
906 | 909 | break; |
907 | 910 | default: |
908 | 911 | case DBCS_NONE: |
909 | - if (toggled(LIB3270_TOGGLE_INSERT) && !ins_prep(faddr, baddr, 1)) | |
912 | + if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_INSERT) && !ins_prep(faddr, baddr, 1)) | |
910 | 913 | return False; |
911 | 914 | break; |
912 | 915 | } |
... | ... | @@ -916,7 +919,7 @@ static Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean |
916 | 919 | INC_BA(baddr); |
917 | 920 | |
918 | 921 | /* Replace leading nulls with blanks, if desired. */ |
919 | - if (h3270.formatted && toggled(BLANK_FILL)) { | |
922 | + if (h3270.formatted && lib3270_get_toggle(&h3270,LIB3270_TOGGLE_BLANK_FILL)) { | |
920 | 923 | register int baddr_fill = baddr; |
921 | 924 | |
922 | 925 | DEC_BA(baddr_fill); |
... | ... | @@ -1047,7 +1050,7 @@ key_WCharacter(unsigned char code[], Boolean *skipped) |
1047 | 1050 | } |
1048 | 1051 | |
1049 | 1052 | /* Numeric? */ |
1050 | - if (appres.numeric_lock && FA_IS_NUMERIC(fa)) { | |
1053 | + if (h3270.numeric_lock && FA_IS_NUMERIC(fa)) { | |
1051 | 1054 | operator_error(KL_OERR_NUMERIC); |
1052 | 1055 | return False; |
1053 | 1056 | } |
... | ... | @@ -1250,7 +1253,7 @@ retry: |
1250 | 1253 | |
1251 | 1254 | if (done) { |
1252 | 1255 | /* Implement blank fill mode. */ |
1253 | - if (toggled(BLANK_FILL)) { | |
1256 | + if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_BLANK_FILL)) { | |
1254 | 1257 | xaddr = faddr; |
1255 | 1258 | INC_BA(xaddr); |
1256 | 1259 | while (xaddr != baddr) { |
... | ... | @@ -1505,7 +1508,7 @@ do_reset(Boolean explicit) |
1505 | 1508 | #if defined(X3270_FT) /*[*/ |
1506 | 1509 | || lib3270_get_ft_state(&h3270) != LIB3270_FT_STATE_NONE |
1507 | 1510 | #endif /*]*/ |
1508 | - || (!appres.unlock_delay) // && !sms_in_macro()) | |
1511 | + || (!h3270.unlock_delay) // && !sms_in_macro()) | |
1509 | 1512 | || (unlock_delay_time != 0 && (time(NULL) - unlock_delay_time) > 1)) { |
1510 | 1513 | kybdlock_clr(-1, "do_reset"); |
1511 | 1514 | } else if (kybdlock & |
... | ... | @@ -3010,7 +3013,7 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p |
3010 | 3013 | return len-1; /* wrapped */ |
3011 | 3014 | |
3012 | 3015 | /* Jump cursor over left margin. */ |
3013 | - if (toggled(MARGINED_PASTE) && | |
3016 | + if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_MARGINED_PASTE) && | |
3014 | 3017 | BA_TO_COL(session->cursor_addr) < orig_col) { |
3015 | 3018 | if (!remargin(orig_col)) |
3016 | 3019 | return len-1; |
... | ... | @@ -3291,7 +3294,7 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p |
3291 | 3294 | |
3292 | 3295 | switch (state) { |
3293 | 3296 | case BASE: |
3294 | - if (toggled(MARGINED_PASTE) && | |
3297 | + if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_MARGINED_PASTE) && | |
3295 | 3298 | BA_TO_COL(session->cursor_addr) < orig_col) { |
3296 | 3299 | (void) remargin(orig_col); |
3297 | 3300 | } |
... | ... | @@ -3300,7 +3303,7 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p |
3300 | 3303 | case HEX: |
3301 | 3304 | key_ACharacter((unsigned char) literal, KT_STD, ia, &skipped); |
3302 | 3305 | state = BASE; |
3303 | - if (toggled(MARGINED_PASTE) && | |
3306 | + if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_MARGINED_PASTE) && | |
3304 | 3307 | BA_TO_COL(session->cursor_addr) < orig_col) { |
3305 | 3308 | (void) remargin(orig_col); |
3306 | 3309 | } | ... | ... |
paste.c
... | ... | @@ -107,7 +107,7 @@ |
107 | 107 | int faddr; |
108 | 108 | unsigned char fa; |
109 | 109 | |
110 | - if(toggled(MARGINED_PASTE)) | |
110 | + if(lib3270_get_toggle(&h3270,LIB3270_TOGGLE_MARGINED_PASTE)) | |
111 | 111 | { |
112 | 112 | baddr = session->cursor_addr; |
113 | 113 | while(BA_TO_COL(baddr) < lmargin) |
... | ... | @@ -138,7 +138,7 @@ |
138 | 138 | static int paste_char(H3270 *session, PASTE_DATA *data, unsigned char c) |
139 | 139 | { |
140 | 140 | |
141 | - if(toggled(SMART_PASTE)) | |
141 | + if(lib3270_get_toggle(session,SMART_PASTE)) | |
142 | 142 | { |
143 | 143 | int faddr = find_field_attribute(session,session->cursor_addr); |
144 | 144 | if(FA_IS_PROTECTED(session->ea_buf[faddr].fa)) |
... | ... | @@ -226,7 +226,7 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str) |
226 | 226 | } |
227 | 227 | str++; |
228 | 228 | |
229 | - if(IN_3270 && toggled(MARGINED_PASTE) && BA_TO_COL(h->cursor_addr) < data.orig_col) | |
229 | + if(IN_3270 && lib3270_get_toggle(h,LIB3270_TOGGLE_MARGINED_PASTE) && BA_TO_COL(h->cursor_addr) < data.orig_col) | |
230 | 230 | { |
231 | 231 | if(!remargin(h,data.orig_col)) |
232 | 232 | last = 0; | ... | ... |
proxy.c
... | ... | @@ -35,35 +35,39 @@ |
35 | 35 | * proxy.c |
36 | 36 | * This module implements various kinds of proxies. |
37 | 37 | */ |
38 | + | |
38 | 39 | #ifdef _WIN32 |
39 | 40 | #include <winsock2.h> |
40 | 41 | #include <windows.h> |
41 | 42 | #endif // _WIN32 |
42 | 43 | |
43 | 44 | #include "globals.h" |
44 | -#if !defined(PR3287) /*[*/ | |
45 | + | |
45 | 46 | #include "appres.h" |
46 | 47 | #include "resources.h" |
47 | -#endif /*]*/ | |
48 | 48 | |
49 | 49 | #ifndef ANDROID |
50 | 50 | #include <stdlib.h> |
51 | 51 | #endif |
52 | 52 | |
53 | 53 | #if defined(_WIN32) |
54 | + | |
54 | 55 | #include <ws2tcpip.h> |
56 | + | |
55 | 57 | #else |
56 | 58 | |
57 | -#include <malloc.h> | |
58 | -#include <sys/socket.h> | |
59 | -#include <sys/ioctl.h> | |
60 | -#include <netinet/in.h> | |
61 | -#include <netdb.h> | |
62 | -#include <arpa/inet.h> | |
63 | -#if defined(HAVE_SYS_SELECT_H) /*[*/ | |
64 | -#include <sys/select.h> /* fd_set declaration */ | |
65 | -#endif /*]*/ | |
66 | -#endif /*]*/ | |
59 | + #include <malloc.h> | |
60 | + #include <sys/socket.h> | |
61 | + #include <sys/ioctl.h> | |
62 | + #include <netinet/in.h> | |
63 | + #include <netdb.h> | |
64 | + #include <arpa/inet.h> | |
65 | + | |
66 | +// #if defined(HAVE_SYS_SELECT_H) | |
67 | +// #include <sys/select.h> | |
68 | +// #endif | |
69 | + | |
70 | +#endif | |
67 | 71 | |
68 | 72 | #include "api.h" |
69 | 73 | |
... | ... | @@ -76,30 +80,32 @@ |
76 | 80 | #include "w3miscc.h" |
77 | 81 | #include "screen.h" |
78 | 82 | |
79 | -#if defined(PR3287) /*[*/ | |
80 | -extern char *proxy_spec; | |
81 | -#endif /*]*/ | |
83 | +// #if defined(PR3287) | |
84 | +// extern char *proxy_spec; | |
85 | +// #endif | |
82 | 86 | |
83 | 87 | /* |
84 | 88 | * Supported proxy types. |
85 | 89 | * |
86 | 90 | * At some point we will add SOCKS. |
87 | 91 | */ |
88 | -enum { | |
89 | - PT_NONE, | |
90 | - PT_PASSTHRU, /* Sun telnet-passthru */ | |
91 | - PT_HTTP, /* RFC 2817 CONNECT tunnel */ | |
92 | - PT_TELNET, /* 'connect host port' proxy */ | |
93 | - PT_SOCKS4, /* SOCKS version 4 (or 4A if necessary) */ | |
94 | - PT_SOCKS4A, /* SOCKS version 4A (force remote name resolution) */ | |
95 | - PT_SOCKS5, /* SOCKS version 5 (RFC 1928) */ | |
96 | - PT_SOCKS5D, /* SOCKS version 5 (force remote name resolution) */ | |
92 | +enum | |
93 | +{ | |
94 | + PT_NONE, | |
95 | + PT_PASSTHRU, /**< Sun telnet-passthru */ | |
96 | + PT_HTTP, /**< RFC 2817 CONNECT tunnel */ | |
97 | + PT_TELNET, /**< 'connect host port' proxy */ | |
98 | + PT_SOCKS4, /**< SOCKS version 4 (or 4A if necessary) */ | |
99 | + PT_SOCKS4A, /**< SOCKS version 4A (force remote name resolution) */ | |
100 | + PT_SOCKS5, /**< SOCKS version 5 (RFC 1928) */ | |
101 | + PT_SOCKS5D, /**< SOCKS version 5 (force remote name resolution) */ | |
97 | 102 | PT_MAX |
98 | 103 | } proxytype_t; |
99 | 104 | |
100 | 105 | /* proxy type names -- keep these in sync with proxytype_t! */ |
101 | -char *type_name[] = { | |
102 | - "unknown", | |
106 | +char *type_name[] = | |
107 | +{ | |
108 | + "unknown", | |
103 | 109 | "passthru", |
104 | 110 | "HTTP", |
105 | 111 | "TELNET", |
... | ... | @@ -138,8 +144,7 @@ static int proxy_socks4(int fd, char *host, unsigned short port, int force_a); |
138 | 144 | static int proxy_socks5(int fd, char *host, unsigned short port, int force_d); |
139 | 145 | |
140 | 146 | |
141 | -char * | |
142 | -proxy_type_name(int type) | |
147 | +char * proxy_type_name(int type) | |
143 | 148 | { |
144 | 149 | if (type < 1 || type >= PT_MAX) |
145 | 150 | return "unknown"; |
... | ... | @@ -151,38 +156,35 @@ proxy_type_name(int type) |
151 | 156 | * Resolve the type, hostname and port for a proxy. |
152 | 157 | * Returns -1 for failure, 0 for no proxy, >0 (the proxy type) for success. |
153 | 158 | */ |
154 | -int | |
155 | -proxy_setup(char **phost, char **pport) | |
159 | +int proxy_setup(H3270 *session, char **phost, char **pport) | |
156 | 160 | { |
157 | - char *proxy; | |
158 | - char *colon; | |
159 | - int sl; | |
161 | + char * proxy = session->proxy; | |
162 | + char * colon; | |
163 | + int sl; | |
160 | 164 | |
161 | -#if defined(PR3287) /*[*/ | |
162 | - proxy = proxy_spec; | |
163 | -#else /*][*/ | |
164 | - proxy = appres.proxy; | |
165 | -#endif /*]*/ | |
166 | - if (proxy == CN) | |
167 | - return PT_NONE; | |
165 | + if(!proxy) | |
166 | + return PT_NONE; | |
168 | 167 | |
169 | - if ((colon = strchr(proxy, ':')) == CN || (colon == proxy)) { | |
170 | - popup_an_error(NULL,"Invalid proxy syntax"); | |
168 | + if ((colon = strchr(proxy, ':')) == CN || (colon == proxy)) | |
169 | + { | |
170 | + popup_an_error(session,_( "Invalid proxy syntax" ) ); | |
171 | 171 | return -1; |
172 | 172 | } |
173 | 173 | |
174 | 174 | sl = colon - proxy; |
175 | - if (sl == strlen(PROXY_PASSTHRU) && | |
176 | - !strncasecmp(proxy, PROXY_PASSTHRU, sl)) { | |
177 | - | |
175 | + if (sl == strlen(PROXY_PASSTHRU) && !strncasecmp(proxy, PROXY_PASSTHRU, sl)) | |
176 | + { | |
178 | 177 | if (parse_host_port(colon + 1, phost, pport) < 0) |
179 | - return -1; | |
178 | + return -1; | |
179 | + | |
180 | 180 | if (*pport == CN) |
181 | - *pport = NewString(PORT_PASSTHRU); | |
181 | + *pport = NewString(PORT_PASSTHRU); | |
182 | + | |
182 | 183 | return PT_PASSTHRU; |
183 | 184 | } |
184 | - if (sl == strlen(PROXY_HTTP) && | |
185 | - !strncasecmp(proxy, PROXY_HTTP, sl)) { | |
185 | + | |
186 | + if (sl == strlen(PROXY_HTTP) && !strncasecmp(proxy, PROXY_HTTP, sl)) | |
187 | + { | |
186 | 188 | |
187 | 189 | if (parse_host_port(colon + 1, phost, pport) < 0) |
188 | 190 | return -1; |
... | ... | @@ -190,54 +192,66 @@ proxy_setup(char **phost, char **pport) |
190 | 192 | *pport = NewString(PORT_HTTP); |
191 | 193 | return PT_HTTP; |
192 | 194 | } |
193 | - if (sl == strlen(PROXY_TELNET) && | |
194 | - !strncasecmp(proxy, PROXY_TELNET, sl)) { | |
195 | + | |
196 | + if (sl == strlen(PROXY_TELNET) && !strncasecmp(proxy, PROXY_TELNET, sl)) | |
197 | + { | |
195 | 198 | |
196 | 199 | if (parse_host_port(colon + 1, phost, pport) < 0) |
197 | 200 | return -1; |
198 | - if (*pport == CN) { | |
199 | - popup_an_error(NULL,"Must specify port for telnet proxy"); | |
201 | + if (*pport == CN) | |
202 | + { | |
203 | + popup_an_error(session,_( "Must specify port for telnet proxy" ) ); | |
200 | 204 | return -1; |
201 | 205 | } |
202 | 206 | return PT_TELNET; |
203 | 207 | } |
204 | - if (sl == strlen(PROXY_SOCKS4) && | |
205 | - !strncasecmp(proxy, PROXY_SOCKS4, sl)) { | |
206 | 208 | |
209 | + if (sl == strlen(PROXY_SOCKS4) && !strncasecmp(proxy, PROXY_SOCKS4, sl)) | |
210 | + { | |
207 | 211 | if (parse_host_port(colon + 1, phost, pport) < 0) |
208 | - return -1; | |
212 | + return -1; | |
213 | + | |
209 | 214 | if (*pport == CN) |
210 | - *pport = NewString(PORT_SOCKS4); | |
215 | + *pport = NewString(PORT_SOCKS4); | |
216 | + | |
211 | 217 | return PT_SOCKS4; |
212 | 218 | } |
213 | - if (sl == strlen(PROXY_SOCKS4A) && | |
214 | - !strncasecmp(proxy, PROXY_SOCKS4A, sl)) { | |
215 | 219 | |
220 | + if (sl == strlen(PROXY_SOCKS4A) && !strncasecmp(proxy, PROXY_SOCKS4A, sl)) | |
221 | + { | |
216 | 222 | if (parse_host_port(colon + 1, phost, pport) < 0) |
217 | - return -1; | |
223 | + return -1; | |
224 | + | |
218 | 225 | if (*pport == CN) |
219 | - *pport = NewString(PORT_SOCKS4A); | |
226 | + *pport = NewString(PORT_SOCKS4A); | |
227 | + | |
220 | 228 | return PT_SOCKS4A; |
221 | 229 | } |
222 | - if (sl == strlen(PROXY_SOCKS5) && | |
223 | - !strncasecmp(proxy, PROXY_SOCKS5, sl)) { | |
224 | 230 | |
231 | + if (sl == strlen(PROXY_SOCKS5) && !strncasecmp(proxy, PROXY_SOCKS5, sl)) | |
232 | + { | |
225 | 233 | if (parse_host_port(colon + 1, phost, pport) < 0) |
226 | - return -1; | |
234 | + return -1; | |
235 | + | |
227 | 236 | if (*pport == CN) |
228 | - *pport = NewString(PORT_SOCKS5); | |
237 | + *pport = NewString(PORT_SOCKS5); | |
238 | + | |
229 | 239 | return PT_SOCKS5; |
230 | 240 | } |
231 | - if (sl == strlen(PROXY_SOCKS5D) && | |
232 | - !strncasecmp(proxy, PROXY_SOCKS5D, sl)) { | |
233 | 241 | |
242 | + if (sl == strlen(PROXY_SOCKS5D) && !strncasecmp(proxy, PROXY_SOCKS5D, sl)) | |
243 | + { | |
234 | 244 | if (parse_host_port(colon + 1, phost, pport) < 0) |
235 | - return -1; | |
245 | + return -1; | |
246 | + | |
236 | 247 | if (*pport == CN) |
237 | - *pport = NewString(PORT_SOCKS5D); | |
248 | + *pport = NewString(PORT_SOCKS5D); | |
249 | + | |
238 | 250 | return PT_SOCKS5D; |
239 | 251 | } |
240 | - popup_an_error(NULL,"Invalid proxy type '%.*s'", sl, proxy); | |
252 | + | |
253 | + popup_an_error(session,"Invalid proxy type '%.*s'", sl, proxy); | |
254 | + | |
241 | 255 | return -1; |
242 | 256 | } |
243 | 257 | ... | ... |
proxyc.h
... | ... | @@ -17,6 +17,6 @@ |
17 | 17 | * Declarations for proxy.c. |
18 | 18 | */ |
19 | 19 | |
20 | -LIB3270_INTERNAL int proxy_setup(char **phost, char **pport); | |
21 | -LIB3270_INTERNAL int proxy_negotiate(int type, int fd, char *host, unsigned short port); | |
22 | -LIB3270_INTERNAL char *proxy_type_name(int type); | |
20 | +LIB3270_INTERNAL int proxy_setup(H3270 *session, char **phost, char **pport); | |
21 | +LIB3270_INTERNAL int proxy_negotiate(int type, int fd, char *host, unsigned short port); | |
22 | +LIB3270_INTERNAL char * proxy_type_name(int type); | ... | ... |
... | ... | @@ -48,7 +48,9 @@ |
48 | 48 | #include <netdb.h> |
49 | 49 | #endif /*]*/ |
50 | 50 | |
51 | -#include <stdlib.h> | |
51 | +#ifndef ANDROID | |
52 | + #include <stdlib.h> | |
53 | +#endif // !ANDROID | |
52 | 54 | |
53 | 55 | #include "api.h" |
54 | 56 | |
... | ... | @@ -202,8 +204,7 @@ do_qr_rpqnames(void) |
202 | 204 | } |
203 | 205 | break; |
204 | 206 | |
205 | - case RPQ_TIMESTAMP: /* program build time | |
206 | - (yyyymmddhhmmss bcd) */ | |
207 | + case RPQ_TIMESTAMP: /* program build time (yyyymmddhhmmss bcd) */ | |
207 | 208 | x = strlen(build_rpq_timestamp); |
208 | 209 | omit_due_space_limit = ((x+1)/2 > remaining); |
209 | 210 | if (!omit_due_space_limit) { |
... | ... | @@ -220,8 +221,7 @@ do_qr_rpqnames(void) |
220 | 221 | } |
221 | 222 | |
222 | 223 | if (omit_due_space_limit) |
223 | - rpq_warning("RPQ %s term omitted due to insufficient " | |
224 | - "space", rpq_keywords[j].text); | |
224 | + rpq_warning("RPQ %s term omitted due to insufficient space", rpq_keywords[j].text); | |
225 | 225 | /* |
226 | 226 | * The item is built, insert item length as needed and |
227 | 227 | * adjust space remaining. |
... | ... | @@ -367,8 +367,7 @@ select_rpq_terms(void) |
367 | 367 | } |
368 | 368 | |
369 | 369 | /* Utility function used by the RPQNAMES query reply. */ |
370 | -static int | |
371 | -get_rpq_timezone(void) | |
370 | +static int get_rpq_timezone(void) | |
372 | 371 | { |
373 | 372 | /* |
374 | 373 | * Return the signed number of minutes we're offset from UTC. |
... | ... | @@ -402,8 +401,7 @@ get_rpq_timezone(void) |
402 | 401 | |
403 | 402 | x = strtol(p1, &p2, 10); |
404 | 403 | if (errno != 0) { |
405 | - rpq_warning("RPQ TIMEZONE term is invalid - " | |
406 | - "use +/-hhmm"); | |
404 | + rpq_warning("RPQ TIMEZONE term is invalid - use +/-hhmm"); | |
407 | 405 | return 4; |
408 | 406 | } |
409 | 407 | if ((*p2 != '\0') && (*p2 != ':') && (!isspace(*p2))) |
... | ... | @@ -412,8 +410,7 @@ get_rpq_timezone(void) |
412 | 410 | hhmm = ldiv(x, 100L); |
413 | 411 | |
414 | 412 | if (hhmm.rem > 59L) { |
415 | - rpq_warning("RPQ TIMEZONE term is invalid - " | |
416 | - "use +/-hhmm"); | |
413 | + rpq_warning("RPQ TIMEZONE term is invalid - use +/-hhmm"); | |
417 | 414 | return 4; |
418 | 415 | } |
419 | 416 | |
... | ... | @@ -424,15 +421,16 @@ get_rpq_timezone(void) |
424 | 421 | * No override specified, try to get information from the |
425 | 422 | * system. |
426 | 423 | */ |
427 | - if ((here = time(NULL)) == (time_t)(-1)) { | |
428 | - rpq_warning("RPQ: Unable to determine workstation " | |
429 | - "local time"); | |
424 | + if ((here = time(NULL)) == (time_t)(-1)) | |
425 | + { | |
426 | + rpq_warning("RPQ: Unable to determine workstation local time"); | |
430 | 427 | return 1; |
431 | 428 | } |
432 | 429 | memcpy(&here_tm, localtime(&here), sizeof(struct tm)); |
433 | - if ((utc_tm = gmtime(&here)) == NULL) { | |
434 | - rpq_warning("RPQ: Unable to determine workstation UTC " | |
435 | - "time"); | |
430 | + | |
431 | + if ((utc_tm = gmtime(&here)) == NULL) | |
432 | + { | |
433 | + rpq_warning("RPQ: Unable to determine workstation UTC time"); | |
436 | 434 | return 2; |
437 | 435 | } |
438 | 436 | |
... | ... | @@ -502,15 +500,13 @@ get_rpq_user(unsigned char buf[], const int buflen) |
502 | 500 | if (isspace(c)) |
503 | 501 | continue; /* skip white space */ |
504 | 502 | if (!isxdigit(c)) { |
505 | - rpq_warning("RPQ USER term has non-hex " | |
506 | - "character"); | |
503 | + rpq_warning("RPQ USER term has non-hex character"); | |
507 | 504 | break; |
508 | 505 | } |
509 | 506 | x = (p_h - hexstr)/2; |
510 | 507 | if (x >= buflen) { |
511 | 508 | x = buflen; |
512 | - rpq_warning("RPQ USER term truncated after %d " | |
513 | - "bytes", x); | |
509 | + rpq_warning("RPQ USER term truncated after %d bytes", x); | |
514 | 510 | break; /* too long, truncate */ |
515 | 511 | } |
516 | 512 | |
... | ... | @@ -529,8 +525,7 @@ get_rpq_user(unsigned char buf[], const int buflen) |
529 | 525 | */ |
530 | 526 | is_first_hex_digit = ((strlen(hexstr) % 2) == 0); |
531 | 527 | if (!is_first_hex_digit) |
532 | - rpq_warning("RPQ USER term has odd number of hex " | |
533 | - "digits"); | |
528 | + rpq_warning("RPQ USER term has odd number of hex digits"); | |
534 | 529 | *buf = 0; /* initialize first byte for possible implied |
535 | 530 | leading zero */ |
536 | 531 | for (p_h = &hexstr[0]; *p_h; p_h++) { |
... | ... | @@ -555,8 +550,7 @@ get_rpq_user(unsigned char buf[], const int buflen) |
555 | 550 | |
556 | 551 | if ( x >= buflen) { |
557 | 552 | x = buflen; |
558 | - rpq_warning("RPQ USER term truncated after %d " | |
559 | - "characters", x); | |
553 | + rpq_warning("RPQ USER term truncated after %d characters", x); | |
560 | 554 | break; |
561 | 555 | } |
562 | 556 | |
... | ... | @@ -630,8 +624,7 @@ get_rpq_address(unsigned char *buf, const int maxlen) |
630 | 624 | len = sizeof(struct in6_addr); |
631 | 625 | break; |
632 | 626 | default: |
633 | - rpq_warning("RPQ ADDRESS term has " | |
634 | - "unrecognized family %u", | |
627 | + rpq_warning("RPQ ADDRESS term has unrecognized family %u", | |
635 | 628 | res->ai_family); |
636 | 629 | break; |
637 | 630 | } |
... | ... | @@ -640,8 +633,7 @@ get_rpq_address(unsigned char *buf, const int maxlen) |
640 | 633 | x += len; |
641 | 634 | (void) memcpy(buf, src, len); |
642 | 635 | } else { |
643 | - rpq_warning("RPQ ADDRESS term incomplete due " | |
644 | - "to space limit"); | |
636 | + rpq_warning("RPQ ADDRESS term incomplete due to space limit"); | |
645 | 637 | } |
646 | 638 | /* Give back storage obtained by getaddrinfo */ |
647 | 639 | freeaddrinfo(res); |
... | ... | @@ -670,8 +662,7 @@ get_rpq_address(unsigned char *buf, const int maxlen) |
670 | 662 | (void) memcpy(buf, &ia, sizeof(in_addr_t)); |
671 | 663 | x += sizeof(in_addr_t); |
672 | 664 | } else { |
673 | - rpq_warning("RPQ ADDRESS term incomplete due to " | |
674 | - "space limit"); | |
665 | + rpq_warning("RPQ ADDRESS term incomplete due to space limit"); | |
675 | 666 | } |
676 | 667 | #endif /*]*/ |
677 | 668 | free(rpqtext); |
... | ... | @@ -704,16 +695,14 @@ get_rpq_address(unsigned char *buf, const int maxlen) |
704 | 695 | break; |
705 | 696 | #endif /*]*/ |
706 | 697 | default: |
707 | - rpq_warning("RPQ ADDRESS term has unrecognized " | |
708 | - "family %u", u.sa.sa_family); | |
698 | + rpq_warning("RPQ ADDRESS term has unrecognized family %u", u.sa.sa_family); | |
709 | 699 | break; |
710 | 700 | } |
711 | 701 | if (x + len <= maxlen) { |
712 | 702 | (void) memcpy(buf, src, len); |
713 | 703 | x += len; |
714 | 704 | } else { |
715 | - rpq_warning("RPQ ADDRESS term incomplete due to space " | |
716 | - "limit"); | |
705 | + rpq_warning("RPQ ADDRESS term incomplete due to space limit"); | |
717 | 706 | } |
718 | 707 | } |
719 | 708 | return x; |
... | ... | @@ -721,38 +710,46 @@ get_rpq_address(unsigned char *buf, const int maxlen) |
721 | 710 | #endif /*]*/ |
722 | 711 | |
723 | 712 | #define RPQ_WARNBUF_SIZE 1024 |
724 | -static char *rpq_warnbuf = CN; | |
725 | -static int rpq_wbcnt = 0; | |
713 | +static char * rpq_warnbuf = CN; | |
714 | +static int rpq_wbcnt = 0; | |
726 | 715 | |
727 | -static void | |
728 | -rpq_warning(const char *fmt, ...) | |
716 | +static void rpq_warning(const char *fmt, ...) | |
729 | 717 | { |
730 | 718 | va_list a; |
731 | 719 | |
732 | - /* Only accumulate RPQ warnings if they | |
720 | + va_start(a, fmt); | |
721 | + lib3270_write_va_log(&h3270,"RPQ",fmt,a); | |
722 | + va_end(a); | |
723 | + | |
724 | + /* | |
725 | + * Only accumulate RPQ warnings if they | |
733 | 726 | * have not been displayed already. |
734 | 727 | */ |
735 | - if (!rpq_complained) { | |
728 | + if (!rpq_complained) | |
729 | + { | |
736 | 730 | va_start(a, fmt); |
737 | 731 | if (rpq_warnbuf == CN) |
738 | 732 | rpq_warnbuf = Malloc(RPQ_WARNBUF_SIZE); |
739 | - if (rpq_wbcnt < RPQ_WARNBUF_SIZE) { | |
733 | + | |
734 | + if (rpq_wbcnt < RPQ_WARNBUF_SIZE) | |
735 | + { | |
740 | 736 | *(rpq_warnbuf + rpq_wbcnt++) = '\n'; |
741 | 737 | *(rpq_warnbuf + rpq_wbcnt) = '\0'; |
742 | 738 | } |
743 | - if (rpq_wbcnt < RPQ_WARNBUF_SIZE) { | |
744 | - rpq_wbcnt += vsnprintf(rpq_warnbuf + rpq_wbcnt, | |
745 | - RPQ_WARNBUF_SIZE - rpq_wbcnt, fmt, a); | |
739 | + | |
740 | + if (rpq_wbcnt < RPQ_WARNBUF_SIZE) | |
741 | + { | |
742 | + rpq_wbcnt += vsnprintf(rpq_warnbuf + rpq_wbcnt,RPQ_WARNBUF_SIZE - rpq_wbcnt, fmt, a); | |
746 | 743 | } |
747 | 744 | va_end(a); |
748 | 745 | } |
749 | 746 | } |
750 | 747 | |
751 | -static void | |
752 | -rpq_dump_warnings(void) | |
748 | +static void rpq_dump_warnings(void) | |
753 | 749 | { |
754 | 750 | /* If there's something to complain about, only complain once. */ |
755 | - if (!rpq_complained && rpq_wbcnt) { | |
751 | + if (!rpq_complained && rpq_wbcnt) | |
752 | + { | |
756 | 753 | popup_an_error(NULL,rpq_warnbuf); |
757 | 754 | rpq_wbcnt = 0; |
758 | 755 | rpq_complained = True; | ... | ... |
screen.c
... | ... | @@ -83,7 +83,7 @@ enum ts { TS_AUTO, TS_ON, TS_OFF }; |
83 | 83 | static void screen_update(H3270 *session, int bstart, int bend); |
84 | 84 | static void status_connect(H3270 *session, int ignored, void *dunno); |
85 | 85 | static void status_3270_mode(H3270 *session, int ignored, void *dunno); |
86 | -static void status_printer(H3270 *session, int on, void *dunno); | |
86 | +// static void status_printer(H3270 *session, int on, void *dunno); | |
87 | 87 | static unsigned short color_from_fa(unsigned char fa); |
88 | 88 | |
89 | 89 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
... | ... | @@ -131,9 +131,9 @@ int screen_init(H3270 *session) |
131 | 131 | CHECK_SESSION_HANDLE(session); |
132 | 132 | |
133 | 133 | /* Set up callbacks for state changes. */ |
134 | - lib3270_register_schange(session,ST_CONNECT, status_connect,0); | |
135 | - lib3270_register_schange(session,ST_3270_MODE, status_3270_mode,0); | |
136 | - lib3270_register_schange(session,ST_PRINTER, status_printer,0); | |
134 | + lib3270_register_schange(session,LIB3270_STATE_CONNECT, status_connect,0); | |
135 | + lib3270_register_schange(session,LIB3270_STATE_3270_MODE, status_3270_mode,0); | |
136 | +// lib3270_register_schange(session,ST_PRINTER, status_printer,0); | |
137 | 137 | |
138 | 138 | /* Set up the controller. */ |
139 | 139 | ctlr_init(session,-1); |
... | ... | @@ -338,7 +338,7 @@ static void screen_update(H3270 *session, int bstart, int bend) |
338 | 338 | } |
339 | 339 | else |
340 | 340 | { |
341 | - if (toggled(MONOCASE)) | |
341 | + if (lib3270_get_toggle(session,MONOCASE)) | |
342 | 342 | addch(session,baddr,asc2uc[ebc2asc[session->ea_buf[baddr].cc]],attr,&first,&last); |
343 | 343 | else |
344 | 344 | addch(session,baddr,ebc2asc[session->ea_buf[baddr].cc],attr,&first,&last); |
... | ... | @@ -579,10 +579,12 @@ static void status_3270_mode(H3270 *session, int ignored unused, void *dunno) |
579 | 579 | |
580 | 580 | } |
581 | 581 | |
582 | +/* | |
582 | 583 | static void status_printer(H3270 *session, int on, void *dunno) |
583 | 584 | { |
584 | 585 | set_status(session,OIA_FLAG_PRINTER,on); |
585 | 586 | } |
587 | +*/ | |
586 | 588 | |
587 | 589 | void status_timing(H3270 *session, struct timeval *t0, struct timeval *t1) |
588 | 590 | { | ... | ... |
... | ... | @@ -43,7 +43,7 @@ |
43 | 43 | #include <netinet/in.h> |
44 | 44 | #endif /*]*/ |
45 | 45 | #include "3270ds.h" |
46 | -#include "appres.h" | |
46 | +// #include "appres.h" | |
47 | 47 | #include "screen.h" |
48 | 48 | // #include "ctlr.h" |
49 | 49 | #include "resources.h" |
... | ... | @@ -772,7 +772,7 @@ do_qr_color(void) |
772 | 772 | |
773 | 773 | trace_ds("> QueryReply(Color)\n"); |
774 | 774 | |
775 | - color_max = appres.color8? 8: 16; /* report on 8 or 16 colors */ | |
775 | + color_max = h3270.color8 ? 8: 16; /* report on 8 or 16 colors */ | |
776 | 776 | |
777 | 777 | space3270out(4 + 2*15); |
778 | 778 | *obptr++ = 0x00; /* no options */ |
... | ... | @@ -904,7 +904,7 @@ do_qr_charsets(void) |
904 | 904 | if (!*standard_font) { |
905 | 905 | /* special 3270 font, includes APL */ |
906 | 906 | *obptr++ = 0x01;/* SET 1: */ |
907 | - if (appres.apl_mode) | |
907 | + if (h3270.apl_mode) | |
908 | 908 | *obptr++ = 0x00;/* FLAGS: non-loadable, single-plane, |
909 | 909 | single-byte, no compare */ |
910 | 910 | else | ... | ... |
telnet.c
... | ... | @@ -83,7 +83,7 @@ |
83 | 83 | #include "tn3270e.h" |
84 | 84 | #include "3270ds.h" |
85 | 85 | |
86 | -#include "appres.h" | |
86 | +// #include "appres.h" | |
87 | 87 | |
88 | 88 | #include "ansic.h" |
89 | 89 | #include "ctlrc.h" |
... | ... | @@ -521,7 +521,18 @@ int net_connect(H3270 *session, const char *host, char *portname, Boolean ls, Bo |
521 | 521 | netrbuf = (unsigned char *)Malloc(BUFSZ); |
522 | 522 | |
523 | 523 | #if defined(X3270_ANSI) /*[*/ |
524 | - if (!t_valid) { | |
524 | + if (!t_valid) | |
525 | + { | |
526 | + vintr = parse_ctlchar("^C"); | |
527 | + vquit = parse_ctlchar("^\\"); | |
528 | + verase = parse_ctlchar("^H"); | |
529 | + vkill = parse_ctlchar("^U"); | |
530 | + veof = parse_ctlchar("^D"); | |
531 | + vwerase = parse_ctlchar("^W"); | |
532 | + vrprnt = parse_ctlchar("^R"); | |
533 | + vlnext = parse_ctlchar("^V"); | |
534 | + | |
535 | +/* | |
525 | 536 | vintr = parse_ctlchar(appres.intr); |
526 | 537 | vquit = parse_ctlchar(appres.quit); |
527 | 538 | verase = parse_ctlchar(appres.erase); |
... | ... | @@ -530,6 +541,7 @@ int net_connect(H3270 *session, const char *host, char *portname, Boolean ls, Bo |
530 | 541 | vwerase = parse_ctlchar(appres.werase); |
531 | 542 | vrprnt = parse_ctlchar(appres.rprnt); |
532 | 543 | vlnext = parse_ctlchar(appres.lnext); |
544 | +*/ | |
533 | 545 | t_valid = 1; |
534 | 546 | } |
535 | 547 | #endif /*]*/ |
... | ... | @@ -540,7 +552,8 @@ int net_connect(H3270 *session, const char *host, char *portname, Boolean ls, Bo |
540 | 552 | Replace(session->hostname, NewString(host)); |
541 | 553 | |
542 | 554 | /* get the passthru host and port number */ |
543 | - if (session->passthru_host) { | |
555 | + if (session->passthru_host) | |
556 | + { | |
544 | 557 | const char *hn = CN; |
545 | 558 | |
546 | 559 | #ifndef ANDROID |
... | ... | @@ -563,27 +576,35 @@ int net_connect(H3270 *session, const char *host, char *portname, Boolean ls, Bo |
563 | 576 | passthru_port = sp->s_port; |
564 | 577 | else |
565 | 578 | passthru_port = htons(3514); |
566 | - } else if (appres.proxy != CN && !proxy_type) { | |
567 | - proxy_type = proxy_setup(&proxy_host, &proxy_portname); | |
568 | - if (proxy_type > 0) { | |
569 | - unsigned long lport; | |
579 | + } | |
580 | + else if(session->proxy != CN && !proxy_type) | |
581 | + { | |
582 | + proxy_type = proxy_setup(session, &proxy_host, &proxy_portname); | |
583 | + | |
584 | + if (proxy_type > 0) | |
585 | + { | |
586 | + unsigned long lport; | |
570 | 587 | char *ptr; |
571 | 588 | struct servent *sp; |
572 | 589 | |
573 | 590 | lport = strtoul(portname, &ptr, 0); |
574 | - if (ptr == portname || *ptr != '\0' || lport == 0L || | |
575 | - lport & ~0xffff) { | |
576 | - if (!(sp = getservbyname(portname, "tcp"))) { | |
577 | - popup_an_error(NULL,"Unknown port number " | |
578 | - "or service: %s", portname); | |
591 | + if (ptr == portname || *ptr != '\0' || lport == 0L || lport & ~0xffff) | |
592 | + { | |
593 | + if (!(sp = getservbyname(portname, "tcp"))) | |
594 | + { | |
595 | + popup_an_error(session, _( "Unknown port number or service: %s" ), portname); | |
579 | 596 | return -1; |
580 | 597 | } |
581 | 598 | session->current_port = ntohs(sp->s_port); |
582 | - } else | |
599 | + } | |
600 | + else | |
601 | + { | |
583 | 602 | session->current_port = (unsigned short)lport; |
603 | + } | |
584 | 604 | } |
605 | + | |
585 | 606 | if (proxy_type < 0) |
586 | - return -1; | |
607 | + return -1; | |
587 | 608 | } |
588 | 609 | |
589 | 610 | /* fill in the socket address of the given host */ |
... | ... | @@ -679,9 +700,9 @@ int net_connect(H3270 *session, const char *host, char *portname, Boolean ls, Bo |
679 | 700 | } |
680 | 701 | |
681 | 702 | /* set up temporary termtype */ |
682 | - if (appres.termname == CN && session->std_ds_host) | |
703 | + if (session->termname == CN && session->std_ds_host) | |
683 | 704 | { |
684 | - (void) sprintf(ttype_tmpval, "IBM-327%c-%d",session->m3279 ? '9' : '8', session->model_num); | |
705 | + sprintf(ttype_tmpval, "IBM-327%c-%d",session->m3279 ? '9' : '8', session->model_num); | |
685 | 706 | session->termtype = ttype_tmpval; |
686 | 707 | } |
687 | 708 | |
... | ... | @@ -932,7 +953,7 @@ void net_disconnect(H3270 *session) |
932 | 953 | trace_dsn("SENT disconnect\n"); |
933 | 954 | |
934 | 955 | /* Restore terminal type to its default. */ |
935 | - if (appres.termname == CN) | |
956 | + if (session->termname == CN) | |
936 | 957 | session->termtype = session->full_model_name; |
937 | 958 | |
938 | 959 | /* We're not connected to an LU any more. */ |
... | ... | @@ -1216,7 +1237,7 @@ telnet_fsm(unsigned char c) |
1216 | 1237 | } |
1217 | 1238 | trace_dsn("%s",see_chr); |
1218 | 1239 | if (!syncing) { |
1219 | - if (linemode && appres.onlcr && c == '\n') | |
1240 | + if (linemode && h3270.onlcr && c == '\n') | |
1220 | 1241 | ansi_process((unsigned int) '\r'); |
1221 | 1242 | ansi_process((unsigned int) c); |
1222 | 1243 | // sms_store(c); |
... | ... | @@ -1375,7 +1396,7 @@ telnet_fsm(unsigned char c) |
1375 | 1396 | #endif /*]*/ |
1376 | 1397 | if (c == TELOPT_TN3270E && h3270.non_tn3270e_host) |
1377 | 1398 | goto wont; |
1378 | - if (c == TELOPT_TM && !appres.bsd_tm) | |
1399 | + if (c == TELOPT_TM && !h3270.bsd_tm) | |
1379 | 1400 | goto wont; |
1380 | 1401 | |
1381 | 1402 | if (!myopts[c]) { |
... | ... | @@ -1383,8 +1404,7 @@ telnet_fsm(unsigned char c) |
1383 | 1404 | myopts[c] = 1; |
1384 | 1405 | will_opt[2] = c; |
1385 | 1406 | net_rawout(will_opt, sizeof(will_opt)); |
1386 | - trace_dsn("SENT %s %s\n", cmd(WILL), | |
1387 | - opt(c)); | |
1407 | + trace_dsn("SENT %s %s\n", cmd(WILL), opt(c)); | |
1388 | 1408 | check_in3270(); |
1389 | 1409 | check_linemode(False); |
1390 | 1410 | } |
... | ... | @@ -2078,7 +2098,7 @@ net_hexansi_out(unsigned char *buf, int len) |
2078 | 2098 | |
2079 | 2099 | #if defined(X3270_TRACE) /*[*/ |
2080 | 2100 | /* Trace the data. */ |
2081 | - if (toggled(DS_TRACE)) { | |
2101 | + if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_DS_TRACE)) { | |
2082 | 2102 | int i; |
2083 | 2103 | |
2084 | 2104 | trace_dsn(">"); |
... | ... | @@ -2114,7 +2134,7 @@ static void |
2114 | 2134 | net_cookedout(const char *buf, int len) |
2115 | 2135 | { |
2116 | 2136 | #if defined(X3270_TRACE) /*[*/ |
2117 | - if (toggled(DS_TRACE)) { | |
2137 | + if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_DS_TRACE)) { | |
2118 | 2138 | int i; |
2119 | 2139 | |
2120 | 2140 | trace_dsn(">"); |
... | ... | @@ -2147,9 +2167,9 @@ net_cookout(const char *buf, int len) |
2147 | 2167 | c = buf[i]; |
2148 | 2168 | |
2149 | 2169 | /* Input conversions. */ |
2150 | - if (!lnext && c == '\r' && appres.icrnl) | |
2170 | + if (!lnext && c == '\r' && h3270.icrnl) | |
2151 | 2171 | c = '\n'; |
2152 | - else if (!lnext && c == '\n' && appres.inlcr) | |
2172 | + else if (!lnext && c == '\n' && h3270.inlcr) | |
2153 | 2173 | c = '\r'; |
2154 | 2174 | |
2155 | 2175 | /* Backslashes. */ |
... | ... | @@ -2637,7 +2657,7 @@ void trace_netdata(char direction, unsigned const char *buf, int len) |
2637 | 2657 | struct timeval ts; |
2638 | 2658 | double tdiff; |
2639 | 2659 | |
2640 | - if (!toggled(DS_TRACE)) | |
2660 | + if (!lib3270_get_toggle(&h3270,LIB3270_TOGGLE_DS_TRACE)) | |
2641 | 2661 | return; |
2642 | 2662 | (void) gettimeofday(&ts, (struct timezone *)NULL); |
2643 | 2663 | if (IN_3270) { | ... | ... |
toggle.h
... | ... | @@ -49,10 +49,10 @@ |
49 | 49 | #define DS_TRACE LIB3270_TOGGLE_DS_TRACE |
50 | 50 | #define SCROLL_BAR LIB3270_TOGGLE_SCROLL_BAR |
51 | 51 | #define LINE_WRAP LIB3270_TOGGLE_LINE_WRAP |
52 | - #define BLANK_FILL LIB3270_TOGGLE_BLANK_FILL | |
52 | +// #define BLANK_FILL LIB3270_TOGGLE_BLANK_FILL | |
53 | 53 | #define SCREEN_TRACE LIB3270_TOGGLE_SCREEN_TRACE |
54 | 54 | #define EVENT_TRACE LIB3270_TOGGLE_EVENT_TRACE |
55 | - #define MARGINED_PASTE LIB3270_TOGGLE_MARGINED_PASTE | |
55 | +// #define MARGINED_PASTE LIB3270_TOGGLE_MARGINED_PASTE | |
56 | 56 | #define RECTANGLE_SELECT LIB3270_TOGGLE_RECTANGLE_SELECT |
57 | 57 | #define CROSSHAIR LIB3270_TOGGLE_CROSSHAIR |
58 | 58 | // #define VISIBLE_CONTROL LIB3270_TOGGLE_VISIBLE_CONTROL | ... | ... |
trace_ds.c
... | ... | @@ -142,7 +142,7 @@ trace_ds_s(char *s, Boolean can_break) |
142 | 142 | int len = strlen(s); |
143 | 143 | Boolean nl = False; |
144 | 144 | |
145 | - if (!toggled(DS_TRACE) || !len) | |
145 | + if (!lib3270_get_toggle(&h3270,DS_TRACE) || !len) | |
146 | 146 | return; |
147 | 147 | |
148 | 148 | if (s && s[len-1] == '\n') { |
... | ... | @@ -177,7 +177,7 @@ trace_ds(const char *fmt, ...) |
177 | 177 | char tdsbuf[4096]; |
178 | 178 | va_list args; |
179 | 179 | |
180 | - if (!toggled(DS_TRACE)) | |
180 | + if (!lib3270_get_toggle(&h3270,DS_TRACE)) | |
181 | 181 | return; |
182 | 182 | |
183 | 183 | va_start(args, fmt); |
... | ... | @@ -194,7 +194,7 @@ trace_ds_nb(const char *fmt, ...) |
194 | 194 | char tdsbuf[4096]; |
195 | 195 | va_list args; |
196 | 196 | |
197 | - if (!toggled(DS_TRACE)) | |
197 | + if (!lib3270_get_toggle(&h3270,DS_TRACE)) | |
198 | 198 | return; |
199 | 199 | |
200 | 200 | va_start(args, fmt); |
... | ... | @@ -211,7 +211,7 @@ trace_event(const char *fmt, ...) |
211 | 211 | { |
212 | 212 | va_list args; |
213 | 213 | |
214 | - if (!toggled(EVENT_TRACE)) | |
214 | + if (!lib3270_get_toggle(&h3270,EVENT_TRACE)) | |
215 | 215 | return; |
216 | 216 | |
217 | 217 | /* print out message */ |
... | ... | @@ -226,7 +226,7 @@ trace_dsn(const char *fmt, ...) |
226 | 226 | { |
227 | 227 | va_list args; |
228 | 228 | |
229 | - if (!toggled(DS_TRACE)) | |
229 | + if (!lib3270_get_toggle(&h3270,DS_TRACE)) | |
230 | 230 | return; |
231 | 231 | |
232 | 232 | /* print out message */ |
... | ... | @@ -760,14 +760,14 @@ static void tracefile_off(void) |
760 | 760 | |
761 | 761 | void toggle_dsTrace(H3270 *session, struct toggle *t unused, LIB3270_TOGGLE_TYPE tt) |
762 | 762 | { |
763 | - if (toggled(DS_TRACE) && tracef == NULL) | |
763 | + if (lib3270_get_toggle(&h3270,DS_TRACE) && tracef == NULL) | |
764 | 764 | tracefile_on(DS_TRACE, tt); |
765 | 765 | |
766 | 766 | // If turning off trace and not still tracing events, close the trace file. |
767 | - else if (!toggled(DS_TRACE) && !toggled(EVENT_TRACE)) | |
767 | + else if (!lib3270_get_toggle(&h3270,DS_TRACE) && !lib3270_get_toggle(&h3270,EVENT_TRACE)) | |
768 | 768 | tracefile_off(); |
769 | 769 | |
770 | - if (toggled(DS_TRACE)) | |
770 | + if (lib3270_get_toggle(&h3270,DS_TRACE)) | |
771 | 771 | (void) gettimeofday(&ds_ts, (struct timezone *)NULL); |
772 | 772 | } |
773 | 773 | */ |
... | ... | @@ -777,11 +777,11 @@ void toggle_eventTrace(H3270 *session, struct toggle *t unused, LIB3270_TOGGLE_T |
777 | 777 | { |
778 | 778 | // If turning on event debug, and no trace file, open one. |
779 | 779 | |
780 | - if (toggled(EVENT_TRACE) && tracef == NULL) | |
780 | + if (lib3270_get_toggle(&h3270,EVENT_TRACE) && tracef == NULL) | |
781 | 781 | tracefile_on(EVENT_TRACE, tt); |
782 | 782 | |
783 | 783 | // If turning off event debug, and not tracing the data stream, close the trace file. |
784 | - else if (!toggled(EVENT_TRACE) && !toggled(DS_TRACE)) | |
784 | + else if (!lib3270_get_toggle(&h3270,EVENT_TRACE) && !lib3270_get_toggle(&h3270,DS_TRACE)) | |
785 | 785 | tracefile_off(); |
786 | 786 | } |
787 | 787 | */ |
... | ... | @@ -815,14 +815,14 @@ void trace_screen(void) |
815 | 815 | { |
816 | 816 | trace_skipping = False; |
817 | 817 | |
818 | - if (!toggled(SCREEN_TRACE)) | |
818 | + if (!lib3270_get_toggle(&h3270,SCREEN_TRACE)) | |
819 | 819 | do_screentrace(); |
820 | 820 | } |
821 | 821 | |
822 | 822 | /* Called from ANSI emulation code to log a single character. */ |
823 | 823 | void trace_char(char c) |
824 | 824 | { |
825 | - if (toggled(SCREEN_TRACE)) | |
825 | + if (lib3270_get_toggle(&h3270,SCREEN_TRACE)) | |
826 | 826 | wtrace("%c",c); |
827 | 827 | return; |
828 | 828 | } |
... | ... | @@ -924,7 +924,7 @@ void toggle_screenTrace(H3270 *session, struct toggle *t unused, LIB3270_TOGGLE_ |
924 | 924 | char *tracefile_buf = NULL; |
925 | 925 | char *tracefile; |
926 | 926 | |
927 | - if (toggled(SCREEN_TRACE)) { | |
927 | + if (lib3270_get_toggle(&h3270,SCREEN_TRACE)) { | |
928 | 928 | if (appres.screentrace_file) |
929 | 929 | tracefile = appres.screentrace_file; |
930 | 930 | else { | ... | ... |