Commit 7dde44a8f00377b204c949f8a777d2016cb3d992

Authored by perry.werneck@gmail.com
1 parent 8cd61b1e

Movendo flag "linemode" para a estrutura de sessao

src/include/lib3270/session.h
@@ -102,6 +102,7 @@ @@ -102,6 +102,7 @@
102 int syncing : 1; 102 int syncing : 1;
103 int reverse : 1; /**< reverse-input mode */ 103 int reverse : 1; /**< reverse-input mode */
104 int dbcs : 1; 104 int dbcs : 1;
  105 + int linemode : 1;
105 106
106 char * oversize; 107 char * oversize;
107 108
src/lib3270/session.c
@@ -198,6 +198,7 @@ static void lib3270_session_init(H3270 *hSession, const char *model) @@ -198,6 +198,7 @@ static void lib3270_session_init(H3270 *hSession, const char *model)
198 hSession->kybdlock = KL_NOT_CONNECTED; 198 hSession->kybdlock = KL_NOT_CONNECTED;
199 hSession->aid = AID_NO; 199 hSession->aid = AID_NO;
200 hSession->reply_mode = SF_SRM_FIELD; 200 hSession->reply_mode = SF_SRM_FIELD;
  201 + hSession->linemode = 1;
201 202
202 203
203 #ifdef _WIN32 204 #ifdef _WIN32
src/lib3270/telnet.c
@@ -123,7 +123,7 @@ int ns_bsent; @@ -123,7 +123,7 @@ int ns_bsent;
123 int ns_rsent; 123 int ns_rsent;
124 // unsigned char *obuf; /* 3270 output buffer */ 124 // unsigned char *obuf; /* 3270 output buffer */
125 // unsigned char *obptr = (unsigned char *) NULL; 125 // unsigned char *obptr = (unsigned char *) NULL;
126 -int linemode = 1; 126 +//int linemode = 1;
127 127
128 /* 128 /*
129 #if defined(LOCAL_PROCESS) 129 #if defined(LOCAL_PROCESS)
@@ -1187,7 +1187,7 @@ static int telnet_fsm(H3270 *session, unsigned char c) @@ -1187,7 +1187,7 @@ static int telnet_fsm(H3270 *session, unsigned char c)
1187 } 1187 }
1188 if (IN_NEITHER) { /* now can assume ANSI mode */ 1188 if (IN_NEITHER) { /* now can assume ANSI mode */
1189 #if defined(X3270_ANSI)/*[*/ 1189 #if defined(X3270_ANSI)/*[*/
1190 - if (linemode) 1190 + if (session->linemode)
1191 cooked_init(); 1191 cooked_init();
1192 #endif /*]*/ 1192 #endif /*]*/
1193 host_in3270(session,CONNECTED_ANSI); 1193 host_in3270(session,CONNECTED_ANSI);
@@ -1210,7 +1210,7 @@ static int telnet_fsm(H3270 *session, unsigned char c) @@ -1210,7 +1210,7 @@ static int telnet_fsm(H3270 *session, unsigned char c)
1210 trace_dsn("%s",see_chr); 1210 trace_dsn("%s",see_chr);
1211 if (!session->syncing) 1211 if (!session->syncing)
1212 { 1212 {
1213 - if (linemode && session->onlcr && c == '\n') 1213 + if (session->linemode && session->onlcr && c == '\n')
1214 ansi_process((unsigned int) '\r'); 1214 ansi_process((unsigned int) '\r');
1215 ansi_process((unsigned int) c); 1215 ansi_process((unsigned int) c);
1216 // sms_store(c); 1216 // sms_store(c);
@@ -2133,7 +2133,7 @@ static void net_cookout(H3270 *hSession, const char *buf, int len) @@ -2133,7 +2133,7 @@ static void net_cookout(H3270 *hSession, const char *buf, int len)
2133 if (!IN_ANSI || (hSession->kybdlock & KL_AWAITING_FIRST)) 2133 if (!IN_ANSI || (hSession->kybdlock & KL_AWAITING_FIRST))
2134 return; 2134 return;
2135 2135
2136 - if (linemode) { 2136 + if (hSession->linemode) {
2137 register int i; 2137 register int i;
2138 char c; 2138 char c;
2139 2139
@@ -2473,7 +2473,7 @@ check_in3270(H3270 *session) @@ -2473,7 +2473,7 @@ check_in3270(H3270 *session)
2473 2473
2474 #if defined(X3270_ANSI) /*[*/ 2474 #if defined(X3270_ANSI) /*[*/
2475 /* Reinitialize line mode. */ 2475 /* Reinitialize line mode. */
2476 - if ((new_cstate == CONNECTED_ANSI && linemode) || 2476 + if ((new_cstate == CONNECTED_ANSI && h3270.linemode) ||
2477 new_cstate == CONNECTED_NVT) 2477 new_cstate == CONNECTED_NVT)
2478 cooked_init(); 2478 cooked_init();
2479 #endif /*]*/ 2479 #endif /*]*/
@@ -2544,7 +2544,7 @@ void space3270out(int n) @@ -2544,7 +2544,7 @@ void space3270out(int n)
2544 static void 2544 static void
2545 check_linemode(Boolean init) 2545 check_linemode(Boolean init)
2546 { 2546 {
2547 - int wasline = linemode; 2547 + int wasline = h3270.linemode;
2548 2548
2549 /* 2549 /*
2550 * The next line is a deliberate kluge to effectively ignore the SGA 2550 * The next line is a deliberate kluge to effectively ignore the SGA
@@ -2560,17 +2560,17 @@ check_linemode(Boolean init) @@ -2560,17 +2560,17 @@ check_linemode(Boolean init)
2560 * mode" properly by asking for both SGA and ECHO to be off or on, but 2560 * mode" properly by asking for both SGA and ECHO to be off or on, but
2561 * we basically ignore the reply for SGA. 2561 * we basically ignore the reply for SGA.
2562 */ 2562 */
2563 - linemode = !h3270.hisopts[TELOPT_ECHO] /* && !hisopts[TELOPT_SGA] */; 2563 + h3270.linemode = h3270.hisopts[TELOPT_ECHO] ? 0 : 1 /* && !hisopts[TELOPT_SGA] */;
2564 2564
2565 - if (init || linemode != wasline) 2565 + if (init || h3270.linemode != wasline)
2566 { 2566 {
2567 - st_changed(LIB3270_STATE_LINE_MODE, linemode); 2567 + st_changed(LIB3270_STATE_LINE_MODE, h3270.linemode);
2568 if (!init) 2568 if (!init)
2569 { 2569 {
2570 - trace_dsn("Operating in %s mode.\n",linemode ? "line" : "character-at-a-time"); 2570 + trace_dsn("Operating in %s mode.\n",h3270.linemode ? "line" : "character-at-a-time");
2571 } 2571 }
2572 #if defined(X3270_ANSI) /*[*/ 2572 #if defined(X3270_ANSI) /*[*/
2573 - if (IN_ANSI && linemode) 2573 + if (IN_ANSI && h3270.linemode)
2574 cooked_init(); 2574 cooked_init();
2575 #endif /*]*/ 2575 #endif /*]*/
2576 } 2576 }
@@ -2848,7 +2848,7 @@ net_add_eor(unsigned char *buf, int len) @@ -2848,7 +2848,7 @@ net_add_eor(unsigned char *buf, int len)
2848 void 2848 void
2849 net_sendc(char c) 2849 net_sendc(char c)
2850 { 2850 {
2851 - if (c == '\r' && !linemode 2851 + if (c == '\r' && !h3270.linemode
2852 /* 2852 /*
2853 #if defined(LOCAL_PROCESS) 2853 #if defined(LOCAL_PROCESS)
2854 && !local_process 2854 && !local_process