Commit 4c176b46afbd9c6b7d98e07fbeb2c64e66b80d10
1 parent
f90ede05
Exists in
master
and in
5 other branches
Movendo mais campos para a estrutura de sessao
Showing
5 changed files
with
170 additions
and
171 deletions
Show diff stats
src/include/lib3270/session.h
... | ... | @@ -104,6 +104,7 @@ |
104 | 104 | unsigned short rows; |
105 | 105 | unsigned short cols; |
106 | 106 | int cursor_addr; |
107 | + int buffer_addr; | |
107 | 108 | char flipped; |
108 | 109 | int screen_alt; /**< alternate screen? */ |
109 | 110 | int is_altbuffer; |
... | ... | @@ -141,11 +142,11 @@ |
141 | 142 | char reading; |
142 | 143 | char excepting; |
143 | 144 | |
144 | - /* State change callbacks. */ | |
145 | + // State change callbacks. | |
145 | 146 | struct lib3270_state_callback *st_callbacks[LIB3270_STATE_USER]; |
146 | 147 | struct lib3270_state_callback *st_last[LIB3270_STATE_USER]; |
147 | 148 | |
148 | - /* Session based callbacks */ | |
149 | + // Session based callbacks | |
149 | 150 | void (*configure)(H3270 *session, unsigned short rows, unsigned short cols); |
150 | 151 | void (*update)(H3270 *session, int baddr, unsigned char c, unsigned short attr, unsigned char cursor); |
151 | 152 | void (*changed)(H3270 *session, int bstart, int bend); | ... | ... |
src/lib3270/ctlr.c
... | ... | @@ -52,12 +52,10 @@ |
52 | 52 | #include "ft_dftc.h" |
53 | 53 | #include "hostc.h" |
54 | 54 | #include "kybdc.h" |
55 | -// #include "macrosc.h" | |
56 | 55 | #include "popupsc.h" |
57 | 56 | #include "screenc.h" |
58 | 57 | #include "scrollc.h" |
59 | 58 | #include "seec.h" |
60 | -// #include "selectc.h" | |
61 | 59 | #include "sfc.h" |
62 | 60 | #include "statusc.h" |
63 | 61 | #include "tablesc.h" |
... | ... | @@ -76,7 +74,7 @@ extern unsigned char aid; |
76 | 74 | //int maxCOLS = 0; |
77 | 75 | // int cursor_addr; |
78 | 76 | |
79 | -int buffer_addr; | |
77 | +// int buffer_addr; | |
80 | 78 | // Boolean screen_alt = False; /* alternate screen? */ |
81 | 79 | // Boolean is_altbuffer = False; |
82 | 80 | |
... | ... | @@ -180,8 +178,8 @@ void ctlr_reinit(H3270 *session, unsigned cmask) |
180 | 178 | |
181 | 179 | Replace(zero_buf, (unsigned char *)Calloc(sizeof(struct ea),sz)); |
182 | 180 | |
183 | - session->cursor_addr = 0; | |
184 | - buffer_addr = 0; | |
181 | + session->cursor_addr = 0; | |
182 | + session->buffer_addr = 0; | |
185 | 183 | } |
186 | 184 | } |
187 | 185 | |
... | ... | @@ -1161,12 +1159,12 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1161 | 1159 | /* XXX: Should there be a ctlr_add_cs call here? */ |
1162 | 1160 | #define START_FIELD(fa) { \ |
1163 | 1161 | current_fa = fa; \ |
1164 | - ctlr_add_fa(buffer_addr, fa, 0); \ | |
1165 | - ctlr_add_cs(buffer_addr, 0); \ | |
1166 | - ctlr_add_fg(buffer_addr, 0); \ | |
1167 | - ctlr_add_bg(buffer_addr, 0); \ | |
1168 | - ctlr_add_gr(buffer_addr, 0); \ | |
1169 | - ctlr_add_ic(buffer_addr, 0); \ | |
1162 | + ctlr_add_fa(h3270.buffer_addr, fa, 0); \ | |
1163 | + ctlr_add_cs(h3270.buffer_addr, 0); \ | |
1164 | + ctlr_add_fg(h3270.buffer_addr, 0); \ | |
1165 | + ctlr_add_bg(h3270.buffer_addr, 0); \ | |
1166 | + ctlr_add_gr(h3270.buffer_addr, 0); \ | |
1167 | + ctlr_add_ic(h3270.buffer_addr, 0); \ | |
1170 | 1168 | trace_ds("%s",see_attr(fa)); \ |
1171 | 1169 | h3270.formatted = True; \ |
1172 | 1170 | } |
... | ... | @@ -1182,7 +1180,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1182 | 1180 | default_cs = 0; |
1183 | 1181 | default_ic = 0; |
1184 | 1182 | trace_primed = True; |
1185 | - buffer_addr = h3270.cursor_addr; | |
1183 | + h3270.buffer_addr = h3270.cursor_addr; | |
1186 | 1184 | if (WCC_RESET(buf[1])) { |
1187 | 1185 | if (erase) |
1188 | 1186 | reply_mode = SF_SRM_FIELD; |
... | ... | @@ -1220,7 +1218,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1220 | 1218 | |
1221 | 1219 | last_cmd = True; |
1222 | 1220 | last_zpt = False; |
1223 | - current_fa = get_field_attribute(&h3270,buffer_addr); | |
1221 | + current_fa = get_field_attribute(&h3270,h3270.buffer_addr); | |
1224 | 1222 | |
1225 | 1223 | #define ABORT_WRITEx { \ |
1226 | 1224 | rv = PDS_BAD_ADDR; \ |
... | ... | @@ -1241,22 +1239,23 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1241 | 1239 | previous = ORDER; |
1242 | 1240 | cp++; /* skip field attribute */ |
1243 | 1241 | START_FIELD(*cp); |
1244 | - ctlr_add_fg(buffer_addr, 0); | |
1245 | - ctlr_add_bg(buffer_addr, 0); | |
1246 | - INC_BA(buffer_addr); | |
1242 | + ctlr_add_fg(h3270.buffer_addr, 0); | |
1243 | + ctlr_add_bg(h3270.buffer_addr, 0); | |
1244 | + INC_BA(h3270.buffer_addr); | |
1247 | 1245 | last_cmd = True; |
1248 | 1246 | last_zpt = False; |
1249 | 1247 | break; |
1250 | 1248 | case ORDER_SBA: /* set buffer address */ |
1251 | 1249 | cp += 2; /* skip buffer address */ |
1252 | - buffer_addr = DECODE_BADDR(*(cp-1), *cp); | |
1250 | + h3270.buffer_addr = DECODE_BADDR(*(cp-1), *cp); | |
1253 | 1251 | END_TEXT("SetBufferAddress"); |
1254 | 1252 | previous = SBA; |
1255 | - trace_ds("%s",rcba(buffer_addr)); | |
1256 | - if (buffer_addr >= h3270.cols * h3270.rows) { | |
1253 | + trace_ds("%s",rcba(h3270.buffer_addr)); | |
1254 | + if (h3270.buffer_addr >= h3270.cols * h3270.rows) | |
1255 | + { | |
1257 | 1256 | ABORT_WRITE("invalid SBA address"); |
1258 | 1257 | } |
1259 | - current_fa = get_field_attribute(&h3270,buffer_addr); | |
1258 | + current_fa = get_field_attribute(&h3270,h3270.buffer_addr); | |
1260 | 1259 | last_cmd = True; |
1261 | 1260 | last_zpt = False; |
1262 | 1261 | break; |
... | ... | @@ -1265,7 +1264,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1265 | 1264 | if (previous != SBA) |
1266 | 1265 | trace_ds("%s",rcba(buffer_addr)); |
1267 | 1266 | previous = ORDER; |
1268 | - cursor_move(buffer_addr); | |
1267 | + cursor_move(h3270.buffer_addr); | |
1269 | 1268 | last_cmd = True; |
1270 | 1269 | last_zpt = False; |
1271 | 1270 | break; |
... | ... | @@ -1277,9 +1276,9 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1277 | 1276 | * of an unprotected field, simply advance one |
1278 | 1277 | * position. |
1279 | 1278 | */ |
1280 | - if (h3270.ea_buf[buffer_addr].fa && | |
1281 | - !FA_IS_PROTECTED(h3270.ea_buf[buffer_addr].fa)) { | |
1282 | - INC_BA(buffer_addr); | |
1279 | + if (h3270.ea_buf[h3270.buffer_addr].fa && | |
1280 | + !FA_IS_PROTECTED(h3270.ea_buf[h3270.buffer_addr].fa)) { | |
1281 | + INC_BA(h3270.buffer_addr); | |
1283 | 1282 | last_zpt = False; |
1284 | 1283 | last_cmd = True; |
1285 | 1284 | break; |
... | ... | @@ -1288,8 +1287,8 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1288 | 1287 | * Otherwise, advance to the first position of the |
1289 | 1288 | * next unprotected field. |
1290 | 1289 | */ |
1291 | - baddr = next_unprotected(buffer_addr); | |
1292 | - if (baddr < buffer_addr) | |
1290 | + baddr = next_unprotected(h3270.buffer_addr); | |
1291 | + if (baddr < h3270.buffer_addr) | |
1293 | 1292 | baddr = 0; |
1294 | 1293 | /* |
1295 | 1294 | * Null out the remainder of the current field -- even |
... | ... | @@ -1300,21 +1299,21 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1300 | 1299 | */ |
1301 | 1300 | if (!last_cmd || last_zpt) { |
1302 | 1301 | trace_ds("(nulling)"); |
1303 | - while ((buffer_addr != baddr) && | |
1304 | - (!h3270.ea_buf[buffer_addr].fa)) { | |
1305 | - ctlr_add(buffer_addr, EBC_null, 0); | |
1306 | - ctlr_add_cs(buffer_addr, 0); | |
1307 | - ctlr_add_fg(buffer_addr, 0); | |
1308 | - ctlr_add_bg(buffer_addr, 0); | |
1309 | - ctlr_add_gr(buffer_addr, 0); | |
1310 | - ctlr_add_ic(buffer_addr, 0); | |
1311 | - INC_BA(buffer_addr); | |
1302 | + while ((h3270.buffer_addr != baddr) && | |
1303 | + (!h3270.ea_buf[h3270.buffer_addr].fa)) { | |
1304 | + ctlr_add(h3270.buffer_addr, EBC_null, 0); | |
1305 | + ctlr_add_cs(h3270.buffer_addr, 0); | |
1306 | + ctlr_add_fg(h3270.buffer_addr, 0); | |
1307 | + ctlr_add_bg(h3270.buffer_addr, 0); | |
1308 | + ctlr_add_gr(h3270.buffer_addr, 0); | |
1309 | + ctlr_add_ic(h3270.buffer_addr, 0); | |
1310 | + INC_BA(h3270.buffer_addr); | |
1312 | 1311 | } |
1313 | 1312 | if (baddr == 0) |
1314 | 1313 | last_zpt = True; |
1315 | 1314 | } else |
1316 | 1315 | last_zpt = False; |
1317 | - buffer_addr = baddr; | |
1316 | + h3270.buffer_addr = baddr; | |
1318 | 1317 | last_cmd = True; |
1319 | 1318 | break; |
1320 | 1319 | case ORDER_RA: /* repeat to address */ |
... | ... | @@ -1389,34 +1388,34 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1389 | 1388 | } |
1390 | 1389 | do { |
1391 | 1390 | if (add_dbcs) { |
1392 | - ctlr_add(buffer_addr, add_c1, | |
1391 | + ctlr_add(h3270.buffer_addr, add_c1, | |
1393 | 1392 | default_cs); |
1394 | 1393 | } else { |
1395 | 1394 | if (ra_ge) |
1396 | - ctlr_add(buffer_addr, add_c1, | |
1395 | + ctlr_add(h3270.buffer_addr, add_c1, | |
1397 | 1396 | CS_GE); |
1398 | 1397 | else if (default_cs) |
1399 | - ctlr_add(buffer_addr, add_c1, | |
1398 | + ctlr_add(h3270.buffer_addr, add_c1, | |
1400 | 1399 | default_cs); |
1401 | 1400 | else |
1402 | - ctlr_add(buffer_addr, add_c1, | |
1401 | + ctlr_add(h3270.buffer_addr, add_c1, | |
1403 | 1402 | 0); |
1404 | 1403 | } |
1405 | - ctlr_add_fg(buffer_addr, default_fg); | |
1406 | - ctlr_add_gr(buffer_addr, default_gr); | |
1407 | - ctlr_add_ic(buffer_addr, default_ic); | |
1408 | - INC_BA(buffer_addr); | |
1404 | + ctlr_add_fg(h3270.buffer_addr, default_fg); | |
1405 | + ctlr_add_gr(h3270.buffer_addr, default_gr); | |
1406 | + ctlr_add_ic(h3270.buffer_addr, default_ic); | |
1407 | + INC_BA(h3270.buffer_addr); | |
1409 | 1408 | if (add_dbcs) { |
1410 | - ctlr_add(buffer_addr, add_c2, | |
1409 | + ctlr_add(h3270.buffer_addr, add_c2, | |
1411 | 1410 | default_cs); |
1412 | - ctlr_add_fg(buffer_addr, default_fg); | |
1413 | - ctlr_add_bg(buffer_addr, default_bg); | |
1414 | - ctlr_add_gr(buffer_addr, default_gr); | |
1415 | - ctlr_add_ic(buffer_addr, default_ic); | |
1416 | - INC_BA(buffer_addr); | |
1411 | + ctlr_add_fg(h3270.buffer_addr, default_fg); | |
1412 | + ctlr_add_bg(h3270.buffer_addr, default_bg); | |
1413 | + ctlr_add_gr(h3270.buffer_addr, default_gr); | |
1414 | + ctlr_add_ic(h3270.buffer_addr, default_ic); | |
1415 | + INC_BA(h3270.buffer_addr); | |
1417 | 1416 | } |
1418 | - } while (buffer_addr != baddr); | |
1419 | - current_fa = get_field_attribute(&h3270,buffer_addr); | |
1417 | + } while (h3270.buffer_addr != baddr); | |
1418 | + current_fa = get_field_attribute(&h3270,h3270.buffer_addr); | |
1420 | 1419 | last_cmd = True; |
1421 | 1420 | last_zpt = False; |
1422 | 1421 | break; |
... | ... | @@ -1439,15 +1438,15 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1439 | 1438 | ABORT_WRITE("EUA overwriting left half of DBCS character"); |
1440 | 1439 | } |
1441 | 1440 | do { |
1442 | - if (h3270.ea_buf[buffer_addr].fa) | |
1443 | - current_fa = h3270.ea_buf[buffer_addr].fa; | |
1441 | + if (h3270.ea_buf[h3270.buffer_addr].fa) | |
1442 | + current_fa = h3270.ea_buf[h3270.buffer_addr].fa; | |
1444 | 1443 | else if (!FA_IS_PROTECTED(current_fa)) { |
1445 | - ctlr_add(buffer_addr, EBC_null, | |
1444 | + ctlr_add(h3270.buffer_addr, EBC_null, | |
1446 | 1445 | CS_BASE); |
1447 | 1446 | } |
1448 | - INC_BA(buffer_addr); | |
1449 | - } while (buffer_addr != baddr); | |
1450 | - current_fa = get_field_attribute(&h3270,buffer_addr); | |
1447 | + INC_BA(h3270.buffer_addr); | |
1448 | + } while (h3270.buffer_addr != baddr); | |
1449 | + current_fa = get_field_attribute(&h3270,h3270.buffer_addr); | |
1451 | 1450 | last_cmd = True; |
1452 | 1451 | last_zpt = False; |
1453 | 1452 | break; |
... | ... | @@ -1461,13 +1460,13 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1461 | 1460 | trace_ds("%s", see_ebc(*cp)); |
1462 | 1461 | if (*cp) |
1463 | 1462 | trace_ds("'"); |
1464 | - ctlr_add(buffer_addr, *cp, CS_GE); | |
1465 | - ctlr_add_fg(buffer_addr, default_fg); | |
1466 | - ctlr_add_bg(buffer_addr, default_bg); | |
1467 | - ctlr_add_gr(buffer_addr, default_gr); | |
1468 | - ctlr_add_ic(buffer_addr, default_ic); | |
1469 | - INC_BA(buffer_addr); | |
1470 | - current_fa = get_field_attribute(&h3270,buffer_addr); | |
1463 | + ctlr_add(h3270.buffer_addr, *cp, CS_GE); | |
1464 | + ctlr_add_fg(h3270.buffer_addr, default_fg); | |
1465 | + ctlr_add_bg(h3270.buffer_addr, default_bg); | |
1466 | + ctlr_add_gr(h3270.buffer_addr, default_gr); | |
1467 | + ctlr_add_ic(h3270.buffer_addr, default_ic); | |
1468 | + INC_BA(h3270.buffer_addr); | |
1469 | + current_fa = get_field_attribute(&h3270,h3270.buffer_addr); | |
1471 | 1470 | last_cmd = False; |
1472 | 1471 | last_zpt = False; |
1473 | 1472 | break; |
... | ... | @@ -1478,14 +1477,14 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1478 | 1477 | previous = ORDER; |
1479 | 1478 | cp++; |
1480 | 1479 | na = *cp; |
1481 | - if (h3270.ea_buf[buffer_addr].fa) { | |
1480 | + if (h3270.ea_buf[h3270.buffer_addr].fa) { | |
1482 | 1481 | for (i = 0; i < (int)na; i++) { |
1483 | 1482 | cp++; |
1484 | 1483 | if (*cp == XA_3270) { |
1485 | 1484 | trace_ds(" 3270"); |
1486 | 1485 | cp++; |
1487 | - ctlr_add_fa(buffer_addr, *cp, | |
1488 | - h3270.ea_buf[buffer_addr].cs); | |
1486 | + ctlr_add_fa(h3270.buffer_addr, *cp, | |
1487 | + h3270.ea_buf[h3270.buffer_addr].cs); | |
1489 | 1488 | trace_ds("%s",see_attr(*cp)); |
1490 | 1489 | } else if (*cp == XA_FOREGROUND) { |
1491 | 1490 | trace_ds("%s", |
... | ... | @@ -1493,20 +1492,20 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1493 | 1492 | *(cp + 1))); |
1494 | 1493 | cp++; |
1495 | 1494 | if (appres.m3279) |
1496 | - ctlr_add_fg(buffer_addr, *cp); | |
1495 | + ctlr_add_fg(h3270.buffer_addr, *cp); | |
1497 | 1496 | } else if (*cp == XA_BACKGROUND) { |
1498 | 1497 | trace_ds("%s", |
1499 | 1498 | see_efa(*cp, |
1500 | 1499 | *(cp + 1))); |
1501 | 1500 | cp++; |
1502 | 1501 | if (appres.m3279) |
1503 | - ctlr_add_bg(buffer_addr, *cp); | |
1502 | + ctlr_add_bg(h3270.buffer_addr, *cp); | |
1504 | 1503 | } else if (*cp == XA_HIGHLIGHTING) { |
1505 | 1504 | trace_ds("%s", |
1506 | 1505 | see_efa(*cp, |
1507 | 1506 | *(cp + 1))); |
1508 | 1507 | cp++; |
1509 | - ctlr_add_gr(buffer_addr, *cp & 0x0f); | |
1508 | + ctlr_add_gr(h3270.buffer_addr, *cp & 0x0f); | |
1510 | 1509 | } else if (*cp == XA_CHARSET) { |
1511 | 1510 | int cs = 0; |
1512 | 1511 | |
... | ... | @@ -1518,7 +1517,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1518 | 1517 | cs = CS_APL; |
1519 | 1518 | else if (*cp == 0xf8) |
1520 | 1519 | cs = CS_DBCS; |
1521 | - ctlr_add_cs(buffer_addr, cs); | |
1520 | + ctlr_add_cs(h3270.buffer_addr, cs); | |
1522 | 1521 | } else if (*cp == XA_ALL) { |
1523 | 1522 | trace_ds("%s", |
1524 | 1523 | see_efa(*cp, |
... | ... | @@ -1528,7 +1527,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1528 | 1527 | trace_ds("%s", |
1529 | 1528 | see_efa(*cp, |
1530 | 1529 | *(cp + 1))); |
1531 | - ctlr_add_ic(buffer_addr, | |
1530 | + ctlr_add_ic(h3270.buffer_addr, | |
1532 | 1531 | (*(cp + 1) == 1)); |
1533 | 1532 | cp++; |
1534 | 1533 | } else { |
... | ... | @@ -1536,7 +1535,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1536 | 1535 | cp++; |
1537 | 1536 | } |
1538 | 1537 | } |
1539 | - INC_BA(buffer_addr); | |
1538 | + INC_BA(h3270.buffer_addr); | |
1540 | 1539 | } else |
1541 | 1540 | cp += na * 2; |
1542 | 1541 | last_cmd = True; |
... | ... | @@ -1600,12 +1599,12 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1600 | 1599 | } |
1601 | 1600 | if (!any_fa) |
1602 | 1601 | START_FIELD(0); |
1603 | - ctlr_add_cs(buffer_addr, efa_cs); | |
1604 | - ctlr_add_fg(buffer_addr, efa_fg); | |
1605 | - ctlr_add_bg(buffer_addr, efa_bg); | |
1606 | - ctlr_add_gr(buffer_addr, efa_gr); | |
1607 | - ctlr_add_ic(buffer_addr, efa_ic); | |
1608 | - INC_BA(buffer_addr); | |
1602 | + ctlr_add_cs(h3270.buffer_addr, efa_cs); | |
1603 | + ctlr_add_fg(h3270.buffer_addr, efa_fg); | |
1604 | + ctlr_add_bg(h3270.buffer_addr, efa_bg); | |
1605 | + ctlr_add_gr(h3270.buffer_addr, efa_gr); | |
1606 | + ctlr_add_ic(h3270.buffer_addr, efa_ic); | |
1607 | + INC_BA(h3270.buffer_addr); | |
1609 | 1608 | last_cmd = True; |
1610 | 1609 | last_zpt = False; |
1611 | 1610 | break; |
... | ... | @@ -1671,12 +1670,12 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1671 | 1670 | if (default_cs == CS_DBCS || d != DBCS_NONE) { |
1672 | 1671 | ABORT_WRITE("invalid format control order in DBCS field"); |
1673 | 1672 | } |
1674 | - ctlr_add(buffer_addr, *cp, default_cs); | |
1675 | - ctlr_add_fg(buffer_addr, default_fg); | |
1676 | - ctlr_add_bg(buffer_addr, default_bg); | |
1677 | - ctlr_add_gr(buffer_addr, default_gr); | |
1678 | - ctlr_add_ic(buffer_addr, default_ic); | |
1679 | - INC_BA(buffer_addr); | |
1673 | + ctlr_add(h3270.buffer_addr, *cp, default_cs); | |
1674 | + ctlr_add_fg(h3270.buffer_addr, default_fg); | |
1675 | + ctlr_add_bg(h3270.buffer_addr, default_bg); | |
1676 | + ctlr_add_gr(h3270.buffer_addr, default_gr); | |
1677 | + ctlr_add_ic(h3270.buffer_addr, default_ic); | |
1678 | + INC_BA(h3270.buffer_addr); | |
1680 | 1679 | last_cmd = True; |
1681 | 1680 | last_zpt = False; |
1682 | 1681 | break; |
... | ... | @@ -1695,12 +1694,12 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1695 | 1694 | } |
1696 | 1695 | /* All is well. */ |
1697 | 1696 | previous = ORDER; |
1698 | - ctlr_add(buffer_addr, *cp, default_cs); | |
1699 | - ctlr_add_fg(buffer_addr, default_fg); | |
1700 | - ctlr_add_bg(buffer_addr, default_bg); | |
1701 | - ctlr_add_gr(buffer_addr, default_gr); | |
1702 | - ctlr_add_ic(buffer_addr, default_ic); | |
1703 | - INC_BA(buffer_addr); | |
1697 | + ctlr_add(h3270.buffer_addr, *cp, default_cs); | |
1698 | + ctlr_add_fg(h3270.buffer_addr, default_fg); | |
1699 | + ctlr_add_bg(h3270.buffer_addr, default_bg); | |
1700 | + ctlr_add_gr(h3270.buffer_addr, default_gr); | |
1701 | + ctlr_add_ic(h3270.buffer_addr, default_ic); | |
1702 | + INC_BA(h3270.buffer_addr); | |
1704 | 1703 | last_cmd = True; |
1705 | 1704 | last_zpt = False; |
1706 | 1705 | break; |
... | ... | @@ -1714,8 +1713,8 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1714 | 1713 | if (d != DBCS_NONE && why == DBCS_FIELD) { |
1715 | 1714 | ABORT_WRITE("SI in DBCS field"); |
1716 | 1715 | } |
1717 | - fa_addr = find_field_attribute(&h3270,buffer_addr); | |
1718 | - baddr = buffer_addr; | |
1716 | + fa_addr = find_field_attribute(&h3270,h3270.buffer_addr); | |
1717 | + baddr = h3270.buffer_addr; | |
1719 | 1718 | DEC_BA(baddr); |
1720 | 1719 | while (!aborted && |
1721 | 1720 | ((fa_addr >= 0 && baddr != fa_addr) || |
... | ... | @@ -1734,19 +1733,19 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1734 | 1733 | } |
1735 | 1734 | /* All is well. */ |
1736 | 1735 | previous = ORDER; |
1737 | - ctlr_add(buffer_addr, *cp, default_cs); | |
1738 | - ctlr_add_fg(buffer_addr, default_fg); | |
1739 | - ctlr_add_bg(buffer_addr, default_bg); | |
1740 | - ctlr_add_gr(buffer_addr, default_gr); | |
1741 | - ctlr_add_ic(buffer_addr, default_ic); | |
1742 | - INC_BA(buffer_addr); | |
1736 | + ctlr_add(h3270.buffer_addr, *cp, default_cs); | |
1737 | + ctlr_add_fg(h3270.buffer_addr, default_fg); | |
1738 | + ctlr_add_bg(h3270.buffer_addr, default_bg); | |
1739 | + ctlr_add_gr(h3270.buffer_addr, default_gr); | |
1740 | + ctlr_add_ic(h3270.buffer_addr, default_ic); | |
1741 | + INC_BA(h3270.buffer_addr); | |
1743 | 1742 | last_cmd = True; |
1744 | 1743 | last_zpt = False; |
1745 | 1744 | break; |
1746 | 1745 | case FCORDER_NULL: /* NULL or DBCS control char */ |
1747 | 1746 | previous = NULLCH; |
1748 | 1747 | add_dbcs = False; |
1749 | - d = ctlr_lookleft_state(buffer_addr, &why); | |
1748 | + d = ctlr_lookleft_state(h3270.buffer_addr, &why); | |
1750 | 1749 | if (d == DBCS_RIGHT) { |
1751 | 1750 | ABORT_WRITE("NULL overwriting right half of DBCS character"); |
1752 | 1751 | } |
... | ... | @@ -1787,19 +1786,19 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1787 | 1786 | END_TEXT("NULL"); |
1788 | 1787 | add_c1 = *cp; |
1789 | 1788 | } |
1790 | - ctlr_add(buffer_addr, add_c1, default_cs); | |
1791 | - ctlr_add_fg(buffer_addr, default_fg); | |
1792 | - ctlr_add_bg(buffer_addr, default_bg); | |
1793 | - ctlr_add_gr(buffer_addr, default_gr); | |
1794 | - ctlr_add_ic(buffer_addr, default_ic); | |
1795 | - INC_BA(buffer_addr); | |
1789 | + ctlr_add(h3270.buffer_addr, add_c1, default_cs); | |
1790 | + ctlr_add_fg(h3270.buffer_addr, default_fg); | |
1791 | + ctlr_add_bg(h3270.buffer_addr, default_bg); | |
1792 | + ctlr_add_gr(h3270.buffer_addr, default_gr); | |
1793 | + ctlr_add_ic(h3270.buffer_addr, default_ic); | |
1794 | + INC_BA(h3270.buffer_addr); | |
1796 | 1795 | if (add_dbcs) { |
1797 | - ctlr_add(buffer_addr, add_c2, default_cs); | |
1798 | - ctlr_add_fg(buffer_addr, default_fg); | |
1799 | - ctlr_add_bg(buffer_addr, default_bg); | |
1800 | - ctlr_add_gr(buffer_addr, default_gr); | |
1801 | - ctlr_add_ic(buffer_addr, default_ic); | |
1802 | - INC_BA(buffer_addr); | |
1796 | + ctlr_add(h3270.buffer_addr, add_c2, default_cs); | |
1797 | + ctlr_add_fg(h3270.buffer_addr, default_fg); | |
1798 | + ctlr_add_bg(h3270.buffer_addr, default_bg); | |
1799 | + ctlr_add_gr(h3270.buffer_addr, default_gr); | |
1800 | + ctlr_add_ic(h3270.buffer_addr, default_ic); | |
1801 | + INC_BA(h3270.buffer_addr); | |
1803 | 1802 | } |
1804 | 1803 | last_cmd = False; |
1805 | 1804 | last_zpt = False; |
... | ... | @@ -1845,20 +1844,20 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1845 | 1844 | #if defined(X3270_DBCS) /*[*/ |
1846 | 1845 | } |
1847 | 1846 | #endif /*]*/ |
1848 | - ctlr_add(buffer_addr, add_c1, default_cs); | |
1849 | - ctlr_add_fg(buffer_addr, default_fg); | |
1850 | - ctlr_add_bg(buffer_addr, default_bg); | |
1851 | - ctlr_add_gr(buffer_addr, default_gr); | |
1852 | - ctlr_add_ic(buffer_addr, default_ic); | |
1853 | - INC_BA(buffer_addr); | |
1847 | + ctlr_add(h3270.buffer_addr, add_c1, default_cs); | |
1848 | + ctlr_add_fg(h3270.buffer_addr, default_fg); | |
1849 | + ctlr_add_bg(h3270.buffer_addr, default_bg); | |
1850 | + ctlr_add_gr(h3270.buffer_addr, default_gr); | |
1851 | + ctlr_add_ic(h3270.buffer_addr, default_ic); | |
1852 | + INC_BA(h3270.buffer_addr); | |
1854 | 1853 | #if defined(X3270_DBCS) /*[*/ |
1855 | 1854 | if (add_dbcs) { |
1856 | - ctlr_add(buffer_addr, add_c2, default_cs); | |
1857 | - ctlr_add_fg(buffer_addr, default_fg); | |
1858 | - ctlr_add_bg(buffer_addr, default_bg); | |
1859 | - ctlr_add_gr(buffer_addr, default_gr); | |
1860 | - ctlr_add_ic(buffer_addr, default_ic); | |
1861 | - INC_BA(buffer_addr); | |
1855 | + ctlr_add(h3270.buffer_addr, add_c2, default_cs); | |
1856 | + ctlr_add_fg(h3270.buffer_addr, default_fg); | |
1857 | + ctlr_add_bg(h3270.buffer_addr, default_bg); | |
1858 | + ctlr_add_gr(h3270.buffer_addr, default_gr); | |
1859 | + ctlr_add_ic(h3270.buffer_addr, default_ic); | |
1860 | + INC_BA(h3270.buffer_addr); | |
1862 | 1861 | } |
1863 | 1862 | #endif /*]*/ |
1864 | 1863 | last_cmd = False; |
... | ... | @@ -1930,14 +1929,14 @@ ctlr_write_sscp_lu(unsigned char buf[], int buflen) |
1930 | 1929 | * Insert NULLs to the end of the line and advance to |
1931 | 1930 | * the beginning of the next line. |
1932 | 1931 | */ |
1933 | - s_row = buffer_addr / h3270.cols; | |
1934 | - while ((buffer_addr / h3270.cols) == s_row) { | |
1935 | - ctlr_add(buffer_addr, EBC_null, default_cs); | |
1936 | - ctlr_add_fg(buffer_addr, default_fg); | |
1937 | - ctlr_add_bg(buffer_addr, default_bg); | |
1938 | - ctlr_add_gr(buffer_addr, default_gr); | |
1939 | - ctlr_add_ic(buffer_addr, default_ic); | |
1940 | - INC_BA(buffer_addr); | |
1932 | + s_row = h3270.buffer_addr / h3270.cols; | |
1933 | + while ((h3270.buffer_addr / h3270.cols) == s_row) { | |
1934 | + ctlr_add(h3270.buffer_addr, EBC_null, default_cs); | |
1935 | + ctlr_add_fg(h3270.buffer_addr, default_fg); | |
1936 | + ctlr_add_bg(h3270.buffer_addr, default_bg); | |
1937 | + ctlr_add_gr(h3270.buffer_addr, default_gr); | |
1938 | + ctlr_add_ic(h3270.buffer_addr, default_ic); | |
1939 | + INC_BA(h3270.buffer_addr); | |
1941 | 1940 | } |
1942 | 1941 | break; |
1943 | 1942 | |
... | ... | @@ -1945,17 +1944,17 @@ ctlr_write_sscp_lu(unsigned char buf[], int buflen) |
1945 | 1944 | /* Some hosts forget they're talking SSCP-LU. */ |
1946 | 1945 | cp++; |
1947 | 1946 | i++; |
1948 | - trace_ds(" StartField%s %s [translated to space]\n",rcba(buffer_addr), see_attr(*cp)); | |
1949 | - ctlr_add(buffer_addr, EBC_space, default_cs); | |
1950 | - ctlr_add_fg(buffer_addr, default_fg); | |
1951 | - ctlr_add_bg(buffer_addr, default_bg); | |
1952 | - ctlr_add_gr(buffer_addr, default_gr); | |
1953 | - ctlr_add_ic(buffer_addr, default_ic); | |
1954 | - INC_BA(buffer_addr); | |
1947 | + trace_ds(" StartField%s %s [translated to space]\n",rcba(h3270.buffer_addr), see_attr(*cp)); | |
1948 | + ctlr_add(h3270.buffer_addr, EBC_space, default_cs); | |
1949 | + ctlr_add_fg(h3270.buffer_addr, default_fg); | |
1950 | + ctlr_add_bg(h3270.buffer_addr, default_bg); | |
1951 | + ctlr_add_gr(h3270.buffer_addr, default_gr); | |
1952 | + ctlr_add_ic(h3270.buffer_addr, default_ic); | |
1953 | + INC_BA(h3270.buffer_addr); | |
1955 | 1954 | break; |
1956 | 1955 | case ORDER_IC: |
1957 | 1956 | trace_ds(" InsertCursor%s [ignored]\n", |
1958 | - rcba(buffer_addr)); | |
1957 | + rcba(h3270.buffer_addr)); | |
1959 | 1958 | break; |
1960 | 1959 | case ORDER_SBA: |
1961 | 1960 | // baddr = DECODE_BADDR(*(cp+1), *(cp+2)); |
... | ... | @@ -1972,33 +1971,31 @@ ctlr_write_sscp_lu(unsigned char buf[], int buflen) |
1972 | 1971 | c = EBC_space; |
1973 | 1972 | else |
1974 | 1973 | c = *cp; |
1975 | - ctlr_add(buffer_addr, c, CS_GE); | |
1976 | - ctlr_add_fg(buffer_addr, default_fg); | |
1977 | - ctlr_add_bg(buffer_addr, default_bg); | |
1978 | - ctlr_add_gr(buffer_addr, default_gr); | |
1979 | - ctlr_add_ic(buffer_addr, default_ic); | |
1980 | - INC_BA(buffer_addr); | |
1974 | + ctlr_add(h3270.buffer_addr, c, CS_GE); | |
1975 | + ctlr_add_fg(h3270.buffer_addr, default_fg); | |
1976 | + ctlr_add_bg(h3270.buffer_addr, default_bg); | |
1977 | + ctlr_add_gr(h3270.buffer_addr, default_gr); | |
1978 | + ctlr_add_ic(h3270.buffer_addr, default_ic); | |
1979 | + INC_BA(h3270.buffer_addr); | |
1981 | 1980 | break; |
1982 | 1981 | |
1983 | 1982 | default: |
1984 | - ctlr_add(buffer_addr, *cp, default_cs); | |
1985 | - ctlr_add_fg(buffer_addr, default_fg); | |
1986 | - ctlr_add_bg(buffer_addr, default_bg); | |
1987 | - ctlr_add_gr(buffer_addr, default_gr); | |
1988 | - ctlr_add_ic(buffer_addr, default_ic); | |
1989 | - INC_BA(buffer_addr); | |
1983 | + ctlr_add(h3270.buffer_addr, *cp, default_cs); | |
1984 | + ctlr_add_fg(h3270.buffer_addr, default_fg); | |
1985 | + ctlr_add_bg(h3270.buffer_addr, default_bg); | |
1986 | + ctlr_add_gr(h3270.buffer_addr, default_gr); | |
1987 | + ctlr_add_ic(h3270.buffer_addr, default_ic); | |
1988 | + INC_BA(h3270.buffer_addr); | |
1990 | 1989 | break; |
1991 | 1990 | } |
1992 | 1991 | } |
1993 | - cursor_move(buffer_addr); | |
1994 | - sscp_start = buffer_addr; | |
1992 | + cursor_move(h3270.buffer_addr); | |
1993 | + sscp_start = h3270.buffer_addr; | |
1995 | 1994 | |
1996 | 1995 | /* Unlock the keyboard. */ |
1997 | 1996 | aid = AID_NO; |
1998 | 1997 | do_reset(False); |
1999 | 1998 | |
2000 | - /* Let a script go. */ | |
2001 | -// sms_host_output(); | |
2002 | 1999 | } |
2003 | 2000 | |
2004 | 2001 | #if defined(X3270_DBCS) /*[*/ |
... | ... | @@ -2341,8 +2338,8 @@ ctlr_clear(H3270 *session, Boolean can_snap) |
2341 | 2338 | /* Clear the screen. */ |
2342 | 2339 | (void) memset((char *)session->ea_buf, 0, session->rows*session->cols*sizeof(struct ea)); |
2343 | 2340 | cursor_move(0); |
2344 | - buffer_addr = 0; | |
2345 | - // unselect(0, ROWS*COLS); | |
2341 | + session->buffer_addr = 0; | |
2342 | + lib3270_unselect(session); | |
2346 | 2343 | session->formatted = False; |
2347 | 2344 | default_fg = 0; |
2348 | 2345 | default_bg = 0; |
... | ... | @@ -2368,8 +2365,8 @@ ctlr_blanks(void) |
2368 | 2365 | h3270.ea_buf[baddr].cc = EBC_space; |
2369 | 2366 | } |
2370 | 2367 | cursor_move(0); |
2371 | - buffer_addr = 0; | |
2372 | - // unselect(0, ROWS*COLS); | |
2368 | + h3270.buffer_addr = 0; | |
2369 | + lib3270_unselect(&h3270); | |
2373 | 2370 | h3270.formatted = False; |
2374 | 2371 | ALL_CHANGED; |
2375 | 2372 | } | ... | ... |
src/lib3270/ctlr.h
... | ... | @@ -17,5 +17,5 @@ |
17 | 17 | * External declarations for ctlr.c data structures. |
18 | 18 | */ |
19 | 19 | |
20 | -extern int buffer_addr; /**< buffer address */ | |
21 | -extern struct ea *ea_buf; /**< 3270 device buffer */ | |
20 | +// extern int buffer_addr; /**< buffer address */ | |
21 | +// extern struct ea *ea_buf; /**< 3270 device buffer */ | ... | ... |
src/lib3270/kybd.c
... | ... | @@ -522,9 +522,10 @@ key_AID(unsigned char aid_code) |
522 | 522 | return; |
523 | 523 | } |
524 | 524 | } |
525 | - if (IN_SSCP && aid_code == AID_ENTER) { | |
525 | + if (IN_SSCP && aid_code == AID_ENTER) | |
526 | + { | |
526 | 527 | /* Act as if the host had written our input. */ |
527 | - buffer_addr = h3270.cursor_addr; | |
528 | + h3270.buffer_addr = h3270.cursor_addr; | |
528 | 529 | } |
529 | 530 | if (!IN_SSCP || aid_code != AID_CLEAR) { |
530 | 531 | status_twait(&h3270); |
... | ... | @@ -863,7 +864,7 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) |
863 | 864 | */ |
864 | 865 | xaddr = baddr; |
865 | 866 | DEC_BA(xaddr); |
866 | - if (ea_buf[xaddr].cc == EBC_so) { | |
867 | + if (h3270.ea_buf[xaddr].cc == EBC_so) { | |
867 | 868 | DEC_BA(baddr); |
868 | 869 | if (!ins_prep(faddr, baddr, 1)) |
869 | 870 | return False; |
... | ... | @@ -892,7 +893,7 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) |
892 | 893 | INC_BA(xaddr); |
893 | 894 | INC_BA(baddr); |
894 | 895 | INC_BA(xaddr); |
895 | - was_si = (ea_buf[xaddr].cc == EBC_si); | |
896 | + was_si = (h3270.ea_buf[xaddr].cc == EBC_si); | |
896 | 897 | ctlr_add(xaddr, EBC_space, CS_BASE); |
897 | 898 | ctlr_add_fg(xaddr, 0); |
898 | 899 | ctlr_add_gr(xaddr, 0); |
... | ... | @@ -2414,7 +2415,7 @@ LIB3270_ACTION( clear ) |
2414 | 2415 | return 0; |
2415 | 2416 | } |
2416 | 2417 | #endif /*]*/ |
2417 | - buffer_addr = 0; | |
2418 | + h3270.buffer_addr = 0; | |
2418 | 2419 | ctlr_clear(&h3270,True); |
2419 | 2420 | cursor_move(0); |
2420 | 2421 | if (CONNECTED) | ... | ... |
src/lib3270/sf.c