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