Commit 037fc4f7c1361834c49b0fd33030949ee5a4003a

Authored by perry.werneck@gmail.com
1 parent 03d44b56

Movendo statics para a estrutura de sessao

src/include/lib3270/session.h
... ... @@ -32,6 +32,7 @@
32 32 #ifndef LIB3270_SESSION_H_INCLUDED
33 33  
34 34 #define LIB3270_SESSION_H_INCLUDED 1
  35 + #include <sys/time.h>
35 36  
36 37 #define LIB3270_LUNAME_LENGTH 16
37 38 #define LIB3270_FULL_MODEL_NAME_LENGTH 13
... ... @@ -99,6 +100,7 @@
99 100 int onlcr : 1;
100 101 int bsd_tm : 1;
101 102 int syncing : 1;
  103 + int reverse : 1; /**< reverse-input mode */
102 104  
103 105 char * oversize;
104 106  
... ... @@ -171,6 +173,9 @@
171 173  
172 174 // kybd.c
173 175 unsigned int kybdlock;
  176 + unsigned char aid; /**< current attention ID */
  177 + void * unlock_id;
  178 + time_t unlock_delay_time;
174 179  
175 180 // Widget info
176 181 void * widget;
... ...
src/lib3270/ctlr.c
... ... @@ -66,7 +66,7 @@
66 66 #include "screenc.h"
67 67  
68 68 /* Externals: kybd.c */
69   -extern unsigned char aid;
  69 +// extern unsigned char aid;
70 70  
71 71 /* Globals */
72 72 // int ROWS, COLS;
... ... @@ -537,19 +537,19 @@ process_ds(unsigned char *buf, int buflen)
537 537 case CMD_RB: /* read buffer */
538 538 case SNA_CMD_RB:
539 539 trace_ds("ReadBuffer\n");
540   - ctlr_read_buffer(aid);
  540 + ctlr_read_buffer(h3270.aid);
541 541 return PDS_OKAY_OUTPUT;
542 542 break;
543 543 case CMD_RM: /* read modifed */
544 544 case SNA_CMD_RM:
545 545 trace_ds("ReadModified\n");
546   - ctlr_read_modified(aid, False);
  546 + ctlr_read_modified(h3270.aid, False);
547 547 return PDS_OKAY_OUTPUT;
548 548 break;
549 549 case CMD_RMA: /* read modifed all */
550 550 case SNA_CMD_RMA:
551 551 trace_ds("ReadModifiedAll\n");
552   - ctlr_read_modified(aid, True);
  552 + ctlr_read_modified(h3270.aid, True);
553 553 return PDS_OKAY_OUTPUT;
554 554 break;
555 555 case CMD_WSF: /* write structured field */
... ... @@ -1105,7 +1105,7 @@ ctlr_erase_all_unprotected(void)
1105 1105 } else {
1106 1106 ctlr_clear(&h3270,True);
1107 1107 }
1108   - aid = AID_NO;
  1108 + h3270.aid = AID_NO;
1109 1109 do_reset(&h3270,False);
1110 1110 ALL_CHANGED;
1111 1111 }
... ... @@ -1862,7 +1862,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase)
1862 1862 END_TEXT0;
1863 1863 trace_ds("\n");
1864 1864 if (wcc_keyboard_restore) {
1865   - aid = AID_NO;
  1865 + h3270.aid = AID_NO;
1866 1866 do_reset(&h3270,False);
1867 1867 } else if (h3270.kybdlock & KL_OIA_TWAIT) {
1868 1868 kybdlock_clr(KL_OIA_TWAIT, "ctlr_write");
... ... @@ -1986,7 +1986,7 @@ ctlr_write_sscp_lu(unsigned char buf[], int buflen)
1986 1986 sscp_start = h3270.buffer_addr;
1987 1987  
1988 1988 /* Unlock the keyboard. */
1989   - aid = AID_NO;
  1989 + h3270.aid = AID_NO;
1990 1990 do_reset(&h3270,False);
1991 1991  
1992 1992 }
... ...
src/lib3270/ft_dft.c
... ... @@ -57,7 +57,7 @@
57 57 #include <errno.h>
58 58 // #include <malloc.h>
59 59  
60   -extern unsigned char aid;
  60 +// extern unsigned char aid;
61 61  
62 62 /* Macros. */
63 63 #define OPEN_MSG "FT:MSG" /* Open request for message */
... ... @@ -462,7 +462,7 @@ dft_get_request(void)
462 462 Replace(dft_savebuf, (unsigned char *)lib3270_malloc(dft_savebuf_max));
463 463 }
464 464 (void) memcpy(dft_savebuf, obuf, dft_savebuf_len);
465   - aid = AID_SF;
  465 + h3270.aid = AID_SF;
466 466  
467 467 /* Write the data. */
468 468 net_output();
... ...
src/lib3270/kybd.c
... ... @@ -108,8 +108,8 @@ static unsigned char pa_xlate[] = {
108 108 };
109 109 #define PF_SZ (sizeof(pf_xlate)/sizeof(pf_xlate[0]))
110 110 #define PA_SZ (sizeof(pa_xlate)/sizeof(pa_xlate[0]))
111   -static void * unlock_id;
112   -static time_t unlock_delay_time;
  111 +// static void * unlock_id;
  112 +// static time_t unlock_delay_time;
113 113 #define UNLOCK_MS 350 /* 0.35s after last unlock */
114 114 static Boolean key_Character(int code, Boolean with_ge, Boolean pasting,Boolean *skipped);
115 115 static Boolean flush_ta(void);
... ... @@ -129,11 +129,11 @@ static struct xks {
129 129 KeySym assoc;
130 130 } *xk;
131 131  
132   -static Boolean reverse = False; /* reverse-input mode */
  132 +// static Boolean reverse = False; /* reverse-input mode */
133 133  
134 134 /* Globals */
135 135 // unsigned int kybdlock = KL_NOT_CONNECTED;
136   -unsigned char aid = AID_NO; /* current attention ID */
  136 +//unsigned char aid = AID_NO; /* current attention ID */
137 137  
138 138 /* Composite key mappings. */
139 139  
... ... @@ -361,7 +361,7 @@ kybdlock_set(unsigned int bits, const char *cause unused)
361 361 #endif /*]*/
362 362 if ((h3270.kybdlock ^ bits) & KL_DEFERRED_UNLOCK) {
363 363 /* Turned on deferred unlock. */
364   - unlock_delay_time = time(NULL);
  364 + h3270.unlock_delay_time = time(NULL);
365 365 }
366 366 h3270.kybdlock = n;
367 367 status_changed(&h3270,LIB3270_STATUS_KYBDLOCK);
... ... @@ -381,7 +381,7 @@ kybdlock_clr(unsigned int bits, const char *cause unused)
381 381 #endif
382 382 if ((h3270.kybdlock ^ n) & KL_DEFERRED_UNLOCK) {
383 383 /* Turned off deferred unlock. */
384   - unlock_delay_time = 0;
  384 + h3270.unlock_delay_time = 0;
385 385 }
386 386 h3270.kybdlock = n;
387 387 status_changed(&h3270,LIB3270_STATUS_KYBDLOCK);
... ... @@ -411,7 +411,7 @@ kybd_inhibit(Boolean inhibit)
411 411 void kybd_connect(H3270 *session, int connected, void *dunno)
412 412 {
413 413 if (session->kybdlock & KL_DEFERRED_UNLOCK)
414   - RemoveTimeOut(unlock_id);
  414 + RemoveTimeOut(session->unlock_id);
415 415  
416 416 kybdlock_clr(-1, "kybd_connect");
417 417  
... ... @@ -430,7 +430,7 @@ void kybd_connect(H3270 *session, int connected, void *dunno)
430 430 void kybd_in3270(H3270 *session, int in3270 unused, void *dunno)
431 431 {
432 432 if (session->kybdlock & KL_DEFERRED_UNLOCK)
433   - RemoveTimeOut(unlock_id);
  433 + RemoveTimeOut(session->unlock_id);
434 434 kybdlock_clr(~KL_AWAITING_FIRST, "kybd_in3270");
435 435  
436 436 /* There might be a macro pending. */
... ... @@ -542,8 +542,8 @@ static void key_AID(H3270 *session, unsigned char aid_code)
542 542 lib3270_set_toggle(&h3270,LIB3270_TOGGLE_INSERT,0);
543 543 kybdlock_set(KL_OIA_TWAIT | KL_OIA_LOCKED, "key_AID");
544 544 }
545   - aid = aid_code;
546   - ctlr_read_modified(aid, False);
  545 + h3270.aid = aid_code;
  546 + ctlr_read_modified(h3270.aid, False);
547 547 ticking_start(&h3270,False);
548 548 status_ctlr_done(&h3270);
549 549 }
... ... @@ -1489,7 +1489,7 @@ void do_reset(H3270 *session, Boolean explicit)
1489 1489 * keyboard now, or want to defer further into the future.
1490 1490 */
1491 1491 if (session->kybdlock & KL_DEFERRED_UNLOCK)
1492   - RemoveTimeOut(unlock_id);
  1492 + RemoveTimeOut(session->unlock_id);
1493 1493  
1494 1494 /*
1495 1495 * If explicit (from the keyboard), unlock the keyboard now.
... ... @@ -1500,13 +1500,13 @@ void do_reset(H3270 *session, Boolean explicit)
1500 1500 || lib3270_get_ft_state(session) != LIB3270_FT_STATE_NONE
1501 1501 #endif /*]*/
1502 1502 || (!session->unlock_delay) // && !sms_in_macro())
1503   - || (unlock_delay_time != 0 && (time(NULL) - unlock_delay_time) > 1)) {
  1503 + || (session->unlock_delay_time != 0 && (time(NULL) - session->unlock_delay_time) > 1)) {
1504 1504 kybdlock_clr(-1, "do_reset");
1505 1505 } else if (session->kybdlock &
1506 1506 (KL_DEFERRED_UNLOCK | KL_OIA_TWAIT | KL_OIA_LOCKED | KL_AWAITING_FIRST)) {
1507 1507 kybdlock_clr(~KL_DEFERRED_UNLOCK, "do_reset");
1508 1508 kybdlock_set(KL_DEFERRED_UNLOCK, "do_reset");
1509   - unlock_id = AddTimeOut(UNLOCK_MS, session, defer_unlock);
  1509 + session->unlock_id = AddTimeOut(UNLOCK_MS, session, defer_unlock);
1510 1510 }
1511 1511  
1512 1512 /* Clean up other modes. */
... ... @@ -1709,7 +1709,8 @@ LIB3270_ACTION( delete )
1709 1709 #endif /*]*/
1710 1710 if (!do_delete())
1711 1711 return 0;
1712   - if (reverse) {
  1712 + if (hSession->reverse)
  1713 + {
1713 1714 int baddr = hSession->cursor_addr;
1714 1715  
1715 1716 DEC_BA(baddr);
... ... @@ -1737,7 +1738,7 @@ LIB3270_ACTION( backspace )
1737 1738 return 0;
1738 1739 }
1739 1740 #endif /*]*/
1740   - if (reverse)
  1741 + if (hSession->reverse)
1741 1742 (void) do_delete();
1742 1743 else if (!hSession->flipped)
1743 1744 do_left();
... ...
src/lib3270/session.c
... ... @@ -44,6 +44,7 @@
44 44 #include "ctlrc.h"
45 45 #include "ftc.h"
46 46 #include "kybdc.h"
  47 +#include "3270ds.h"
47 48  
48 49 /*---[ Globals ]--------------------------------------------------------------------------------------------------------------*/
49 50  
... ... @@ -195,6 +196,7 @@ static void lib3270_session_init(H3270 *hSession, const char *model)
195 196 hSession->cstate = LIB3270_NOT_CONNECTED;
196 197 hSession->oia_status = -1;
197 198 hSession->kybdlock = KL_NOT_CONNECTED;
  199 + hSession->aid = AID_NO;
198 200  
199 201 #ifdef _WIN32
200 202 hSession->sockEvent = NULL;
... ...