Commit c7915bdffc630dfb65be0a08f2368c428f578c57

Authored by perry.werneck@gmail.com
1 parent 909b81b4

Mais campos movidos para a estrutura de sessao

src/include/lib3270/session.h
@@ -196,6 +196,9 @@ @@ -196,6 +196,9 @@
196 int response_required; 196 int response_required;
197 int tn3270e_bound; 197 int tn3270e_bound;
198 int tn3270e_negotiated; 198 int tn3270e_negotiated;
  199 + int ansi_data;
  200 + int lnext;
  201 + int backslashed;
199 202
200 enum 203 enum
201 { 204 {
src/lib3270/telnet.c
@@ -177,12 +177,12 @@ Boolean local_process = False; @@ -177,12 +177,12 @@ Boolean local_process = False;
177 //#endif 177 //#endif
178 178
179 #if defined(X3270_ANSI) /*[*/ 179 #if defined(X3270_ANSI) /*[*/
180 -static int ansi_data = 0; 180 +//static int ansi_data = 0;
181 // static unsigned char *lbuf = (unsigned char *)NULL; 181 // static unsigned char *lbuf = (unsigned char *)NULL;
182 /* line-mode input buffer */ 182 /* line-mode input buffer */
183 // static unsigned char *lbptr; 183 // static unsigned char *lbptr;
184 -static int lnext = 0;  
185 -static int backslashed = 0; 184 +// static int lnext = 0;
  185 +// static int backslashed = 0;
186 static int t_valid = 0; 186 static int t_valid = 0;
187 static char vintr; 187 static char vintr;
188 static char vquit; 188 static char vquit;
@@ -1007,7 +1007,7 @@ void net_input(H3270 *session) @@ -1007,7 +1007,7 @@ void net_input(H3270 *session)
1007 */ 1007 */
1008 1008
1009 #if defined(X3270_ANSI) /*[*/ 1009 #if defined(X3270_ANSI) /*[*/
1010 - ansi_data = 0; 1010 + session->ansi_data = 0;
1011 #endif /*]*/ 1011 #endif /*]*/
1012 1012
1013 #if defined(_WIN32) 1013 #if defined(_WIN32)
@@ -1107,10 +1107,10 @@ void net_input(H3270 *session) @@ -1107,10 +1107,10 @@ void net_input(H3270 *session)
1107 (void) ctlr_dbcs_postprocess(); 1107 (void) ctlr_dbcs_postprocess();
1108 } 1108 }
1109 1109
1110 - if (ansi_data) 1110 + if (session->ansi_data)
1111 { 1111 {
1112 trace_dsn("\n"); 1112 trace_dsn("\n");
1113 - ansi_data = 0; 1113 + session->ansi_data = 0;
1114 } 1114 }
1115 #endif // X3270_ANSI 1115 #endif // X3270_ANSI
1116 1116
@@ -1187,9 +1187,9 @@ static int telnet_fsm(H3270 *session, unsigned char c) @@ -1187,9 +1187,9 @@ static int telnet_fsm(H3270 *session, unsigned char c)
1187 if (c == IAC) { /* got a telnet command */ 1187 if (c == IAC) { /* got a telnet command */
1188 session->telnet_state = TNS_IAC; 1188 session->telnet_state = TNS_IAC;
1189 #if defined(X3270_ANSI) /*[*/ 1189 #if defined(X3270_ANSI) /*[*/
1190 - if (ansi_data) { 1190 + if (session->ansi_data) {
1191 trace_dsn("\n"); 1191 trace_dsn("\n");
1192 - ansi_data = 0; 1192 + session->ansi_data = 0;
1193 } 1193 }
1194 #endif /*]*/ 1194 #endif /*]*/
1195 break; 1195 break;
@@ -1206,15 +1206,15 @@ static int telnet_fsm(H3270 *session, unsigned char c) @@ -1206,15 +1206,15 @@ static int telnet_fsm(H3270 *session, unsigned char c)
1206 } 1206 }
1207 if (IN_ANSI && !IN_E) { 1207 if (IN_ANSI && !IN_E) {
1208 #if defined(X3270_ANSI) /*[*/ 1208 #if defined(X3270_ANSI) /*[*/
1209 - if (!ansi_data) { 1209 + if (!session->ansi_data) {
1210 trace_dsn("<.. "); 1210 trace_dsn("<.. ");
1211 - ansi_data = 4; 1211 + session->ansi_data = 4;
1212 } 1212 }
1213 see_chr = ctl_see((int) c); 1213 see_chr = ctl_see((int) c);
1214 - ansi_data += (sl = strlen(see_chr));  
1215 - if (ansi_data >= TRACELINE) { 1214 + session->ansi_data += (sl = strlen(see_chr));
  1215 + if (session->ansi_data >= TRACELINE) {
1216 trace_dsn(" ...\n... "); 1216 trace_dsn(" ...\n... ");
1217 - ansi_data = 4 + sl; 1217 + session->ansi_data = 4 + sl;
1218 } 1218 }
1219 trace_dsn("%s",see_chr); 1219 trace_dsn("%s",see_chr);
1220 if (!session->syncing) 1220 if (!session->syncing)
@@ -1237,15 +1237,15 @@ static int telnet_fsm(H3270 *session, unsigned char c) @@ -1237,15 +1237,15 @@ static int telnet_fsm(H3270 *session, unsigned char c)
1237 case IAC: /* escaped IAC, insert it */ 1237 case IAC: /* escaped IAC, insert it */
1238 if (IN_ANSI && !IN_E) { 1238 if (IN_ANSI && !IN_E) {
1239 #if defined(X3270_ANSI) /*[*/ 1239 #if defined(X3270_ANSI) /*[*/
1240 - if (!ansi_data) { 1240 + if (!session->ansi_data) {
1241 trace_dsn("<.. "); 1241 trace_dsn("<.. ");
1242 - ansi_data = 4; 1242 + session->ansi_data = 4;
1243 } 1243 }
1244 see_chr = ctl_see((int) c); 1244 see_chr = ctl_see((int) c);
1245 - ansi_data += (sl = strlen(see_chr));  
1246 - if (ansi_data >= TRACELINE) { 1245 + session->ansi_data += (sl = strlen(see_chr));
  1246 + if (session->ansi_data >= TRACELINE) {
1247 trace_dsn(" ...\n ..."); 1247 trace_dsn(" ...\n ...");
1248 - ansi_data = 4 + sl; 1248 + session->ansi_data = 4 + sl;
1249 } 1249 }
1250 trace_dsn("%s",see_chr); 1250 trace_dsn("%s",see_chr);
1251 ansi_process((unsigned int) c); 1251 ansi_process((unsigned int) c);
@@ -2148,16 +2148,16 @@ static void net_cookout(H3270 *hSession, const char *buf, int len) @@ -2148,16 +2148,16 @@ static void net_cookout(H3270 *hSession, const char *buf, int len)
2148 c = buf[i]; 2148 c = buf[i];
2149 2149
2150 /* Input conversions. */ 2150 /* Input conversions. */
2151 - if (!lnext && c == '\r' && hSession->icrnl) 2151 + if (!hSession->lnext && c == '\r' && hSession->icrnl)
2152 c = '\n'; 2152 c = '\n';
2153 - else if (!lnext && c == '\n' && hSession->inlcr) 2153 + else if (!hSession->lnext && c == '\n' && hSession->inlcr)
2154 c = '\r'; 2154 c = '\r';
2155 2155
2156 /* Backslashes. */ 2156 /* Backslashes. */
2157 - if (c == '\\' && !backslashed)  
2158 - backslashed = 1; 2157 + if (c == '\\' && !hSession->backslashed)
  2158 + hSession->backslashed = 1;
2159 else 2159 else
2160 - backslashed = 0; 2160 + hSession->backslashed = 0;
2161 2161
2162 /* Control chars. */ 2162 /* Control chars. */
2163 if (c == '\n') 2163 if (c == '\n')
@@ -2199,8 +2199,8 @@ cooked_init(void) @@ -2199,8 +2199,8 @@ cooked_init(void)
2199 if (h3270.lbuf == (unsigned char *)NULL) 2199 if (h3270.lbuf == (unsigned char *)NULL)
2200 h3270.lbuf = (unsigned char *)lib3270_malloc(BUFSZ); 2200 h3270.lbuf = (unsigned char *)lib3270_malloc(BUFSZ);
2201 h3270.lbptr = h3270.lbuf; 2201 h3270.lbptr = h3270.lbuf;
2202 - lnext = 0;  
2203 - backslashed = 0; 2202 + h3270.lnext = 0;
  2203 + h3270.backslashed = 0;
2204 } 2204 }
2205 2205
2206 static void 2206 static void
@@ -2230,14 +2230,14 @@ do_data(char c) @@ -2230,14 +2230,14 @@ do_data(char c)
2230 ansi_process_s(ctl_see((int) c)); 2230 ansi_process_s(ctl_see((int) c));
2231 } else 2231 } else
2232 ansi_process_s("\007"); 2232 ansi_process_s("\007");
2233 - lnext = 0;  
2234 - backslashed = 0; 2233 + h3270.lnext = 0;
  2234 + h3270.backslashed = 0;
2235 } 2235 }
2236 2236
2237 static void 2237 static void
2238 do_intr(char c) 2238 do_intr(char c)
2239 { 2239 {
2240 - if (lnext) { 2240 + if (h3270.lnext) {
2241 do_data(c); 2241 do_data(c);
2242 return; 2242 return;
2243 } 2243 }
@@ -2249,7 +2249,7 @@ do_intr(char c) @@ -2249,7 +2249,7 @@ do_intr(char c)
2249 static void 2249 static void
2250 do_quit(char c) 2250 do_quit(char c)
2251 { 2251 {
2252 - if (lnext) { 2252 + if (h3270.lnext) {
2253 do_data(c); 2253 do_data(c);
2254 return; 2254 return;
2255 } 2255 }
@@ -2263,13 +2263,13 @@ do_cerase(char c) @@ -2263,13 +2263,13 @@ do_cerase(char c)
2263 { 2263 {
2264 int len; 2264 int len;
2265 2265
2266 - if (backslashed) { 2266 + if (h3270.backslashed) {
2267 h3270.lbptr--; 2267 h3270.lbptr--;
2268 ansi_process_s("\b"); 2268 ansi_process_s("\b");
2269 do_data(c); 2269 do_data(c);
2270 return; 2270 return;
2271 } 2271 }
2272 - if (lnext) { 2272 + if (h3270.lnext) {
2273 do_data(c); 2273 do_data(c);
2274 return; 2274 return;
2275 } 2275 }
@@ -2287,7 +2287,7 @@ do_werase(char c) @@ -2287,7 +2287,7 @@ do_werase(char c)
2287 int any = 0; 2287 int any = 0;
2288 int len; 2288 int len;
2289 2289
2290 - if (lnext) { 2290 + if (h3270.lnext) {
2291 do_data(c); 2291 do_data(c);
2292 return; 2292 return;
2293 } 2293 }
@@ -2315,13 +2315,13 @@ do_kill(char c) @@ -2315,13 +2315,13 @@ do_kill(char c)
2315 { 2315 {
2316 int i, len; 2316 int i, len;
2317 2317
2318 - if (backslashed) { 2318 + if (h3270.backslashed) {
2319 h3270.lbptr--; 2319 h3270.lbptr--;
2320 ansi_process_s("\b"); 2320 ansi_process_s("\b");
2321 do_data(c); 2321 do_data(c);
2322 return; 2322 return;
2323 } 2323 }
2324 - if (lnext) { 2324 + if (h3270.lnext) {
2325 do_data(c); 2325 do_data(c);
2326 return; 2326 return;
2327 } 2327 }
@@ -2338,7 +2338,7 @@ do_rprnt(char c) @@ -2338,7 +2338,7 @@ do_rprnt(char c)
2338 { 2338 {
2339 unsigned char *p; 2339 unsigned char *p;
2340 2340
2341 - if (lnext) { 2341 + if (h3270.lnext) {
2342 do_data(c); 2342 do_data(c);
2343 return; 2343 return;
2344 } 2344 }
@@ -2351,13 +2351,13 @@ do_rprnt(char c) @@ -2351,13 +2351,13 @@ do_rprnt(char c)
2351 static void 2351 static void
2352 do_eof(char c) 2352 do_eof(char c)
2353 { 2353 {
2354 - if (backslashed) { 2354 + if (h3270.backslashed) {
2355 h3270.lbptr--; 2355 h3270.lbptr--;
2356 ansi_process_s("\b"); 2356 ansi_process_s("\b");
2357 do_data(c); 2357 do_data(c);
2358 return; 2358 return;
2359 } 2359 }
2360 - if (lnext) { 2360 + if (h3270.lnext) {
2361 do_data(c); 2361 do_data(c);
2362 return; 2362 return;
2363 } 2363 }
@@ -2368,7 +2368,7 @@ do_eof(char c) @@ -2368,7 +2368,7 @@ do_eof(char c)
2368 static void 2368 static void
2369 do_eol(char c) 2369 do_eol(char c)
2370 { 2370 {
2371 - if (lnext) { 2371 + if (h3270.lnext) {
2372 do_data(c); 2372 do_data(c);
2373 return; 2373 return;
2374 } 2374 }
@@ -2385,11 +2385,11 @@ do_eol(char c) @@ -2385,11 +2385,11 @@ do_eol(char c)
2385 static void 2385 static void
2386 do_lnext(char c) 2386 do_lnext(char c)
2387 { 2387 {
2388 - if (lnext) { 2388 + if (h3270.lnext) {
2389 do_data(c); 2389 do_data(c);
2390 return; 2390 return;
2391 } 2391 }
2392 - lnext = 1; 2392 + h3270.lnext = 1;
2393 ansi_process_s("^\b"); 2393 ansi_process_s("^\b");
2394 } 2394 }
2395 #endif /*]*/ 2395 #endif /*]*/