Commit e0e2369279725dd575e3cfb8ce6db7535d319aa6
1 parent
48d95c0a
Exists in
master
and in
5 other branches
Corrigindo erro no commit anterior
Showing
2 changed files
with
21 additions
and
52 deletions
Show diff stats
src/include/lib3270/session.h
src/lib3270/ctlr.c
| ... | ... | @@ -65,47 +65,15 @@ |
| 65 | 65 | #include "widec.h" |
| 66 | 66 | #include "screenc.h" |
| 67 | 67 | |
| 68 | -/* Externals: kybd.c */ | |
| 69 | -// extern unsigned char aid; | |
| 70 | - | |
| 71 | -/* Globals */ | |
| 72 | -// int ROWS, COLS; | |
| 73 | -//int maxROWS = 0; | |
| 74 | -//int maxCOLS = 0; | |
| 75 | -// int cursor_addr; | |
| 76 | - | |
| 77 | -// int buffer_addr; | |
| 78 | -// Boolean screen_alt = False; /* alternate screen? */ | |
| 79 | -// Boolean is_altbuffer = False; | |
| 80 | - | |
| 81 | -// struct ea *ea_buf = NULL; /* 3270 device buffer */ | |
| 82 | -// /* ea_buf[-1] is the dummy default field attribute */ | |
| 83 | - | |
| 84 | -// Boolean formatted = False; /* set in screen_disp */ | |
| 85 | -// unsigned char reply_mode = SF_SRM_FIELD; | |
| 86 | -// int crm_nattr = 0; | |
| 87 | -// unsigned char crm_attr[16]; | |
| 88 | -Boolean dbcs = False; | |
| 68 | +// Boolean dbcs = False; | |
| 89 | 69 | |
| 90 | 70 | /* Statics */ |
| 91 | -// static struct ea *aea_buf; /* alternate 3270 extended attribute buffer */ | |
| 92 | -// static unsigned char *zero_buf; // empty buffer, for area clears | |
| 93 | 71 | static void set_formatted(H3270 *session); |
| 94 | 72 | static void ctlr_blanks(H3270 *session); |
| 95 | -// static Boolean trace_primed = False; | |
| 96 | - | |
| 97 | -//static unsigned char default_fg; | |
| 98 | -//static unsigned char default_bg; | |
| 99 | -//static unsigned char default_gr; | |
| 100 | -//static unsigned char default_cs; | |
| 101 | -//static unsigned char default_ic; | |
| 102 | - | |
| 103 | 73 | static void ctlr_half_connect(H3270 *session, int ignored, void *dunno); |
| 104 | 74 | static void ctlr_connect(H3270 *session, int ignored, void *dunno); |
| 105 | -// static int sscp_start; | |
| 106 | 75 | static void ticking_stop(H3270 *session); |
| 107 | 76 | static void ctlr_add_ic(int baddr, unsigned char ic); |
| 108 | -// static void changed(H3270 *session, int bstart, int bend); | |
| 109 | 77 | |
| 110 | 78 | /* |
| 111 | 79 | * code_table is used to translate buffer addresses and attributes to the 3270 |
| ... | ... | @@ -125,9 +93,9 @@ static unsigned char code_table[64] = { |
| 125 | 93 | #define IsBlank(c) ((c == EBC_null) || (c == EBC_space)) |
| 126 | 94 | |
| 127 | 95 | |
| 128 | -#define ALL_CHANGED if(IN_ANSI) changed(&h3270,0,h3270.rows*h3270.cols); | |
| 129 | -#define REGION_CHANGED(f, l) if(IN_ANSI) changed(&h3270,f,l) | |
| 130 | -#define ONE_CHANGED(n) if(IN_ANSI) changed(&h3270,n,n+1); | |
| 96 | +#define ALL_CHANGED(h) if(lib3270_in_ansi(h)) (h)->changed(h,0,(h)->rows*(h)->cols); | |
| 97 | +#define REGION_CHANGED(h, f, l) if(lib3270_in_ansi(h)) (h)->changed(h,f,l) | |
| 98 | +#define ONE_CHANGED(h,n) if(lib3270_in_ansi(h)) (h)->changed(h,n,n+1); | |
| 131 | 99 | |
| 132 | 100 | #define DECODE_BADDR(c1, c2) \ |
| 133 | 101 | ((((c1) & 0xC0) == 0x00) ? \ |
| ... | ... | @@ -1109,7 +1077,7 @@ ctlr_erase_all_unprotected(void) |
| 1109 | 1077 | } |
| 1110 | 1078 | h3270.aid = AID_NO; |
| 1111 | 1079 | do_reset(&h3270,False); |
| 1112 | - ALL_CHANGED; | |
| 1080 | + ALL_CHANGED(&h3270); | |
| 1113 | 1081 | } |
| 1114 | 1082 | |
| 1115 | 1083 | |
| ... | ... | @@ -1201,7 +1169,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
| 1201 | 1169 | paren = ","; |
| 1202 | 1170 | baddr = 0; |
| 1203 | 1171 | if (h3270.modified_sel) |
| 1204 | - ALL_CHANGED; | |
| 1172 | + ALL_CHANGED(&h3270); | |
| 1205 | 1173 | do { |
| 1206 | 1174 | if (h3270.ea_buf[baddr].fa) { |
| 1207 | 1175 | mdt_clear(baddr); |
| ... | ... | @@ -1571,7 +1539,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
| 1571 | 1539 | cp++; |
| 1572 | 1540 | if (*cp == 0xf1) |
| 1573 | 1541 | efa_cs = CS_APL; |
| 1574 | - else if (dbcs && (*cp == 0xf8)) | |
| 1542 | + else if (h3270.dbcs && (*cp == 0xf8)) | |
| 1575 | 1543 | efa_cs = CS_DBCS; |
| 1576 | 1544 | else |
| 1577 | 1545 | efa_cs = CS_BASE; |
| ... | ... | @@ -1580,7 +1548,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
| 1580 | 1548 | cp++; |
| 1581 | 1549 | } else if (*cp == XA_INPUT_CONTROL) { |
| 1582 | 1550 | trace_ds("%s", see_efa(*cp, *(cp + 1))); |
| 1583 | - if (dbcs) | |
| 1551 | + if (h3270.dbcs) | |
| 1584 | 1552 | efa_ic = (*(cp + 1) == 1); |
| 1585 | 1553 | cp++; |
| 1586 | 1554 | } else { |
| ... | ... | @@ -2361,7 +2329,7 @@ static void ctlr_blanks(H3270 *session) |
| 2361 | 2329 | session->buffer_addr = 0; |
| 2362 | 2330 | lib3270_unselect(session); |
| 2363 | 2331 | session->formatted = False; |
| 2364 | - ALL_CHANGED; | |
| 2332 | + ALL_CHANGED(session); | |
| 2365 | 2333 | } |
| 2366 | 2334 | |
| 2367 | 2335 | |
| ... | ... | @@ -2387,7 +2355,7 @@ void ctlr_add(int baddr, unsigned char c, unsigned char cs) |
| 2387 | 2355 | h3270.ea_buf[baddr].cc = c; |
| 2388 | 2356 | h3270.ea_buf[baddr].cs = cs; |
| 2389 | 2357 | h3270.ea_buf[baddr].fa = 0; |
| 2390 | - ONE_CHANGED(baddr); | |
| 2358 | + ONE_CHANGED(&h3270,baddr); | |
| 2391 | 2359 | } |
| 2392 | 2360 | } |
| 2393 | 2361 | |
| ... | ... | @@ -2420,7 +2388,7 @@ ctlr_add_cs(int baddr, unsigned char cs) |
| 2420 | 2388 | unselect(baddr, 1); |
| 2421 | 2389 | */ |
| 2422 | 2390 | h3270.ea_buf[baddr].cs = cs; |
| 2423 | - ONE_CHANGED(baddr); | |
| 2391 | + ONE_CHANGED(&h3270,baddr); | |
| 2424 | 2392 | } |
| 2425 | 2393 | } |
| 2426 | 2394 | |
| ... | ... | @@ -2435,7 +2403,7 @@ ctlr_add_gr(int baddr, unsigned char gr) |
| 2435 | 2403 | h3270.ea_buf[baddr].gr = gr; |
| 2436 | 2404 | if (gr & GR_BLINK) |
| 2437 | 2405 | blink_start(); |
| 2438 | - ONE_CHANGED(baddr); | |
| 2406 | + ONE_CHANGED(&h3270,baddr); | |
| 2439 | 2407 | } |
| 2440 | 2408 | } |
| 2441 | 2409 | |
| ... | ... | @@ -2452,7 +2420,7 @@ ctlr_add_fg(int baddr, unsigned char color) |
| 2452 | 2420 | if (h3270.ea_buf[baddr].fg != color) |
| 2453 | 2421 | { |
| 2454 | 2422 | h3270.ea_buf[baddr].fg = color; |
| 2455 | - ONE_CHANGED(baddr); | |
| 2423 | + ONE_CHANGED(&h3270,baddr); | |
| 2456 | 2424 | } |
| 2457 | 2425 | } |
| 2458 | 2426 | |
| ... | ... | @@ -2469,7 +2437,7 @@ ctlr_add_bg(int baddr, unsigned char color) |
| 2469 | 2437 | if (h3270.ea_buf[baddr].bg != color) |
| 2470 | 2438 | { |
| 2471 | 2439 | h3270.ea_buf[baddr].bg = color; |
| 2472 | - ONE_CHANGED(baddr); | |
| 2440 | + ONE_CHANGED(&h3270,baddr); | |
| 2473 | 2441 | } |
| 2474 | 2442 | } |
| 2475 | 2443 | |
| ... | ... | @@ -2531,7 +2499,7 @@ ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea) |
| 2531 | 2499 | count * sizeof(struct ea))) { |
| 2532 | 2500 | (void) memmove(&h3270.ea_buf[baddr_to], &h3270.ea_buf[baddr_from], |
| 2533 | 2501 | count * sizeof(struct ea)); |
| 2534 | - REGION_CHANGED(baddr_to, baddr_to + count); | |
| 2502 | + REGION_CHANGED(&h3270,baddr_to, baddr_to + count); | |
| 2535 | 2503 | } |
| 2536 | 2504 | /* XXX: What about move_ea? */ |
| 2537 | 2505 | } |
| ... | ... | @@ -2547,7 +2515,7 @@ void ctlr_aclear(int baddr, int count, int clear_ea) |
| 2547 | 2515 | count * sizeof(struct ea))) { |
| 2548 | 2516 | (void) memset((char *) &h3270.ea_buf[baddr], 0, |
| 2549 | 2517 | count * sizeof(struct ea)); |
| 2550 | - REGION_CHANGED(baddr, baddr + count); | |
| 2518 | + REGION_CHANGED(&h3270,baddr, baddr + count); | |
| 2551 | 2519 | } |
| 2552 | 2520 | /* XXX: What about clear_ea? */ |
| 2553 | 2521 | } |
| ... | ... | @@ -2617,7 +2585,7 @@ void ctlr_altbuffer(H3270 *session, int alt) |
| 2617 | 2585 | session->is_altbuffer = alt; |
| 2618 | 2586 | lib3270_unselect(session); |
| 2619 | 2587 | |
| 2620 | - ALL_CHANGED; | |
| 2588 | + ALL_CHANGED(session); | |
| 2621 | 2589 | |
| 2622 | 2590 | /* |
| 2623 | 2591 | * There may be blinkers on the alternate screen; schedule one |
| ... | ... | @@ -2640,7 +2608,7 @@ mdt_set(int baddr) |
| 2640 | 2608 | if (faddr >= 0 && !(h3270.ea_buf[faddr].fa & FA_MODIFY)) { |
| 2641 | 2609 | h3270.ea_buf[faddr].fa |= FA_MODIFY; |
| 2642 | 2610 | if (h3270.modified_sel) |
| 2643 | - ALL_CHANGED; | |
| 2611 | + ALL_CHANGED(&h3270); | |
| 2644 | 2612 | } |
| 2645 | 2613 | } |
| 2646 | 2614 | |
| ... | ... | @@ -2653,7 +2621,7 @@ mdt_clear(int baddr) |
| 2653 | 2621 | if (faddr >= 0 && (h3270.ea_buf[faddr].fa & FA_MODIFY)) { |
| 2654 | 2622 | h3270.ea_buf[faddr].fa &= ~FA_MODIFY; |
| 2655 | 2623 | if (h3270.modified_sel) |
| 2656 | - ALL_CHANGED; | |
| 2624 | + ALL_CHANGED(&h3270); | |
| 2657 | 2625 | } |
| 2658 | 2626 | } |
| 2659 | 2627 | |
| ... | ... | @@ -2671,7 +2639,7 @@ ctlr_shrink(void) |
| 2671 | 2639 | if (!h3270.ea_buf[baddr].fa) |
| 2672 | 2640 | h3270.ea_buf[baddr].cc = h3270.vcontrol ? EBC_space : EBC_null; |
| 2673 | 2641 | } |
| 2674 | - ALL_CHANGED; | |
| 2642 | + ALL_CHANGED(&h3270); | |
| 2675 | 2643 | h3270.display(&h3270); |
| 2676 | 2644 | } |
| 2677 | 2645 | ... | ... |