From 037fc4f7c1361834c49b0fd33030949ee5a4003a Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Mon, 28 May 2012 13:26:21 +0000 Subject: [PATCH] Movendo statics para a estrutura de sessao --- src/include/lib3270/session.h | 5 +++++ src/lib3270/ctlr.c | 14 +++++++------- src/lib3270/ft_dft.c | 4 ++-- src/lib3270/kybd.c | 31 ++++++++++++++++--------------- src/lib3270/session.c | 2 ++ 5 files changed, 32 insertions(+), 24 deletions(-) diff --git a/src/include/lib3270/session.h b/src/include/lib3270/session.h index 51a7a2e..5a97148 100644 --- a/src/include/lib3270/session.h +++ b/src/include/lib3270/session.h @@ -32,6 +32,7 @@ #ifndef LIB3270_SESSION_H_INCLUDED #define LIB3270_SESSION_H_INCLUDED 1 + #include #define LIB3270_LUNAME_LENGTH 16 #define LIB3270_FULL_MODEL_NAME_LENGTH 13 @@ -99,6 +100,7 @@ int onlcr : 1; int bsd_tm : 1; int syncing : 1; + int reverse : 1; /**< reverse-input mode */ char * oversize; @@ -171,6 +173,9 @@ // kybd.c unsigned int kybdlock; + unsigned char aid; /**< current attention ID */ + void * unlock_id; + time_t unlock_delay_time; // Widget info void * widget; diff --git a/src/lib3270/ctlr.c b/src/lib3270/ctlr.c index 68326c6..2f3b875 100644 --- a/src/lib3270/ctlr.c +++ b/src/lib3270/ctlr.c @@ -66,7 +66,7 @@ #include "screenc.h" /* Externals: kybd.c */ -extern unsigned char aid; +// extern unsigned char aid; /* Globals */ // int ROWS, COLS; @@ -537,19 +537,19 @@ process_ds(unsigned char *buf, int buflen) case CMD_RB: /* read buffer */ case SNA_CMD_RB: trace_ds("ReadBuffer\n"); - ctlr_read_buffer(aid); + ctlr_read_buffer(h3270.aid); return PDS_OKAY_OUTPUT; break; case CMD_RM: /* read modifed */ case SNA_CMD_RM: trace_ds("ReadModified\n"); - ctlr_read_modified(aid, False); + ctlr_read_modified(h3270.aid, False); return PDS_OKAY_OUTPUT; break; case CMD_RMA: /* read modifed all */ case SNA_CMD_RMA: trace_ds("ReadModifiedAll\n"); - ctlr_read_modified(aid, True); + ctlr_read_modified(h3270.aid, True); return PDS_OKAY_OUTPUT; break; case CMD_WSF: /* write structured field */ @@ -1105,7 +1105,7 @@ ctlr_erase_all_unprotected(void) } else { ctlr_clear(&h3270,True); } - aid = AID_NO; + h3270.aid = AID_NO; do_reset(&h3270,False); ALL_CHANGED; } @@ -1862,7 +1862,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) END_TEXT0; trace_ds("\n"); if (wcc_keyboard_restore) { - aid = AID_NO; + h3270.aid = AID_NO; do_reset(&h3270,False); } else if (h3270.kybdlock & KL_OIA_TWAIT) { kybdlock_clr(KL_OIA_TWAIT, "ctlr_write"); @@ -1986,7 +1986,7 @@ ctlr_write_sscp_lu(unsigned char buf[], int buflen) sscp_start = h3270.buffer_addr; /* Unlock the keyboard. */ - aid = AID_NO; + h3270.aid = AID_NO; do_reset(&h3270,False); } diff --git a/src/lib3270/ft_dft.c b/src/lib3270/ft_dft.c index dbb9590..889ecdd 100644 --- a/src/lib3270/ft_dft.c +++ b/src/lib3270/ft_dft.c @@ -57,7 +57,7 @@ #include // #include -extern unsigned char aid; +// extern unsigned char aid; /* Macros. */ #define OPEN_MSG "FT:MSG" /* Open request for message */ @@ -462,7 +462,7 @@ dft_get_request(void) Replace(dft_savebuf, (unsigned char *)lib3270_malloc(dft_savebuf_max)); } (void) memcpy(dft_savebuf, obuf, dft_savebuf_len); - aid = AID_SF; + h3270.aid = AID_SF; /* Write the data. */ net_output(); diff --git a/src/lib3270/kybd.c b/src/lib3270/kybd.c index c87ddba..c8b0477 100644 --- a/src/lib3270/kybd.c +++ b/src/lib3270/kybd.c @@ -108,8 +108,8 @@ static unsigned char pa_xlate[] = { }; #define PF_SZ (sizeof(pf_xlate)/sizeof(pf_xlate[0])) #define PA_SZ (sizeof(pa_xlate)/sizeof(pa_xlate[0])) -static void * unlock_id; -static time_t unlock_delay_time; +// static void * unlock_id; +// static time_t unlock_delay_time; #define UNLOCK_MS 350 /* 0.35s after last unlock */ static Boolean key_Character(int code, Boolean with_ge, Boolean pasting,Boolean *skipped); static Boolean flush_ta(void); @@ -129,11 +129,11 @@ static struct xks { KeySym assoc; } *xk; -static Boolean reverse = False; /* reverse-input mode */ +// static Boolean reverse = False; /* reverse-input mode */ /* Globals */ // unsigned int kybdlock = KL_NOT_CONNECTED; -unsigned char aid = AID_NO; /* current attention ID */ +//unsigned char aid = AID_NO; /* current attention ID */ /* Composite key mappings. */ @@ -361,7 +361,7 @@ kybdlock_set(unsigned int bits, const char *cause unused) #endif /*]*/ if ((h3270.kybdlock ^ bits) & KL_DEFERRED_UNLOCK) { /* Turned on deferred unlock. */ - unlock_delay_time = time(NULL); + h3270.unlock_delay_time = time(NULL); } h3270.kybdlock = n; status_changed(&h3270,LIB3270_STATUS_KYBDLOCK); @@ -381,7 +381,7 @@ kybdlock_clr(unsigned int bits, const char *cause unused) #endif if ((h3270.kybdlock ^ n) & KL_DEFERRED_UNLOCK) { /* Turned off deferred unlock. */ - unlock_delay_time = 0; + h3270.unlock_delay_time = 0; } h3270.kybdlock = n; status_changed(&h3270,LIB3270_STATUS_KYBDLOCK); @@ -411,7 +411,7 @@ kybd_inhibit(Boolean inhibit) void kybd_connect(H3270 *session, int connected, void *dunno) { if (session->kybdlock & KL_DEFERRED_UNLOCK) - RemoveTimeOut(unlock_id); + RemoveTimeOut(session->unlock_id); kybdlock_clr(-1, "kybd_connect"); @@ -430,7 +430,7 @@ void kybd_connect(H3270 *session, int connected, void *dunno) void kybd_in3270(H3270 *session, int in3270 unused, void *dunno) { if (session->kybdlock & KL_DEFERRED_UNLOCK) - RemoveTimeOut(unlock_id); + RemoveTimeOut(session->unlock_id); kybdlock_clr(~KL_AWAITING_FIRST, "kybd_in3270"); /* There might be a macro pending. */ @@ -542,8 +542,8 @@ static void key_AID(H3270 *session, unsigned char aid_code) lib3270_set_toggle(&h3270,LIB3270_TOGGLE_INSERT,0); kybdlock_set(KL_OIA_TWAIT | KL_OIA_LOCKED, "key_AID"); } - aid = aid_code; - ctlr_read_modified(aid, False); + h3270.aid = aid_code; + ctlr_read_modified(h3270.aid, False); ticking_start(&h3270,False); status_ctlr_done(&h3270); } @@ -1489,7 +1489,7 @@ void do_reset(H3270 *session, Boolean explicit) * keyboard now, or want to defer further into the future. */ if (session->kybdlock & KL_DEFERRED_UNLOCK) - RemoveTimeOut(unlock_id); + RemoveTimeOut(session->unlock_id); /* * If explicit (from the keyboard), unlock the keyboard now. @@ -1500,13 +1500,13 @@ void do_reset(H3270 *session, Boolean explicit) || lib3270_get_ft_state(session) != LIB3270_FT_STATE_NONE #endif /*]*/ || (!session->unlock_delay) // && !sms_in_macro()) - || (unlock_delay_time != 0 && (time(NULL) - unlock_delay_time) > 1)) { + || (session->unlock_delay_time != 0 && (time(NULL) - session->unlock_delay_time) > 1)) { kybdlock_clr(-1, "do_reset"); } else if (session->kybdlock & (KL_DEFERRED_UNLOCK | KL_OIA_TWAIT | KL_OIA_LOCKED | KL_AWAITING_FIRST)) { kybdlock_clr(~KL_DEFERRED_UNLOCK, "do_reset"); kybdlock_set(KL_DEFERRED_UNLOCK, "do_reset"); - unlock_id = AddTimeOut(UNLOCK_MS, session, defer_unlock); + session->unlock_id = AddTimeOut(UNLOCK_MS, session, defer_unlock); } /* Clean up other modes. */ @@ -1709,7 +1709,8 @@ LIB3270_ACTION( delete ) #endif /*]*/ if (!do_delete()) return 0; - if (reverse) { + if (hSession->reverse) + { int baddr = hSession->cursor_addr; DEC_BA(baddr); @@ -1737,7 +1738,7 @@ LIB3270_ACTION( backspace ) return 0; } #endif /*]*/ - if (reverse) + if (hSession->reverse) (void) do_delete(); else if (!hSession->flipped) do_left(); diff --git a/src/lib3270/session.c b/src/lib3270/session.c index 7e9bc85..e32538d 100644 --- a/src/lib3270/session.c +++ b/src/lib3270/session.c @@ -44,6 +44,7 @@ #include "ctlrc.h" #include "ftc.h" #include "kybdc.h" +#include "3270ds.h" /*---[ Globals ]--------------------------------------------------------------------------------------------------------------*/ @@ -195,6 +196,7 @@ static void lib3270_session_init(H3270 *hSession, const char *model) hSession->cstate = LIB3270_NOT_CONNECTED; hSession->oia_status = -1; hSession->kybdlock = KL_NOT_CONNECTED; + hSession->aid = AID_NO; #ifdef _WIN32 hSession->sockEvent = NULL; -- libgit2 0.21.2