Commit b5ae246187a4055f2d23077ff04470d1698b5cee
1 parent
ca28bc5d
Exists in
master
and in
5 other branches
Movendo ea_buf para a estrutura de sessao
Showing
11 changed files
with
297 additions
and
311 deletions
Show diff stats
src/gtk/pw3270-GTK.cbp
@@ -95,6 +95,9 @@ | @@ -95,6 +95,9 @@ | ||
95 | <Unit filename="uiparser\toolitem.c"> | 95 | <Unit filename="uiparser\toolitem.c"> |
96 | <Option compilerVar="CC" /> | 96 | <Option compilerVar="CC" /> |
97 | </Unit> | 97 | </Unit> |
98 | + <Unit filename="v3270\clipboard.c"> | ||
99 | + <Option compilerVar="CC" /> | ||
100 | + </Unit> | ||
98 | <Unit filename="v3270\draw.c"> | 101 | <Unit filename="v3270\draw.c"> |
99 | <Option compilerVar="CC" /> | 102 | <Option compilerVar="CC" /> |
100 | </Unit> | 103 | </Unit> |
src/gtk/v3270/clipboard.c
@@ -83,6 +83,8 @@ gboolean v3270_copy(v3270 *widget) | @@ -83,6 +83,8 @@ gboolean v3270_copy(v3270 *widget) | ||
83 | { | 83 | { |
84 | gtk_clipboard_set_can_store(clipboard,targets,1); | 84 | gtk_clipboard_set_can_store(clipboard,targets,1); |
85 | trace("%s: Clipboard set",__FUNCTION__); | 85 | trace("%s: Clipboard set",__FUNCTION__); |
86 | + return TRUE; | ||
86 | } | 87 | } |
88 | + return FALSE; | ||
87 | } | 89 | } |
88 | 90 |
src/include/lib3270/session.h
@@ -36,6 +36,24 @@ | @@ -36,6 +36,24 @@ | ||
36 | #define LIB3270_LUNAME_LENGTH 16 | 36 | #define LIB3270_LUNAME_LENGTH 16 |
37 | #define LIB3270_FULL_MODEL_NAME_LENGTH 13 | 37 | #define LIB3270_FULL_MODEL_NAME_LENGTH 13 |
38 | 38 | ||
39 | + /** extended attributes */ | ||
40 | + struct ea | ||
41 | + { | ||
42 | + unsigned char cc; /**< EBCDIC or ASCII character code */ | ||
43 | + unsigned char fa; /**< field attribute, it nonzero */ | ||
44 | + unsigned char fg; /**< foreground color (0x00 or 0xf<n>) */ | ||
45 | + unsigned char bg; /**< background color (0x00 or 0xf<n>) */ | ||
46 | + unsigned char gr; /**< ANSI graphics rendition bits */ | ||
47 | + unsigned char cs; /**< character set (GE flag, or 0..2) */ | ||
48 | + unsigned char ic; /**< input control (DBCS) */ | ||
49 | + unsigned char db; /**< DBCS state */ | ||
50 | + | ||
51 | + /* Updated by addch() */ | ||
52 | + unsigned char chr; /**< ASCII character code */ | ||
53 | + unsigned short attr; /**< Converted character attribute (color & etc) */ | ||
54 | + | ||
55 | + }; | ||
56 | + | ||
39 | struct _h3270 | 57 | struct _h3270 |
40 | { | 58 | { |
41 | unsigned short sz; /**< Struct size */ | 59 | unsigned short sz; /**< Struct size */ |
@@ -79,8 +97,6 @@ | @@ -79,8 +97,6 @@ | ||
79 | // screen info | 97 | // screen info |
80 | int ov_rows; | 98 | int ov_rows; |
81 | int ov_cols; | 99 | int ov_cols; |
82 | -// int first_changed; | ||
83 | -// int last_changed; | ||
84 | int maxROWS; | 100 | int maxROWS; |
85 | int maxCOLS; | 101 | int maxCOLS; |
86 | unsigned short rows; | 102 | unsigned short rows; |
@@ -92,6 +108,8 @@ | @@ -92,6 +108,8 @@ | ||
92 | 108 | ||
93 | int formatted; /**< set in screen_disp */ | 109 | int formatted; /**< set in screen_disp */ |
94 | 110 | ||
111 | + struct ea * ea_buf; /**< 3270 device buffer. ea_buf[-1] is the dummy default field attribute */ | ||
112 | + | ||
95 | // host.c | 113 | // host.c |
96 | char std_ds_host; | 114 | char std_ds_host; |
97 | char no_login_host; | 115 | char no_login_host; |
src/lib3270/api.h
@@ -183,23 +183,6 @@ | @@ -183,23 +183,6 @@ | ||
183 | #define PW3270_DIALOG_CRITICAL LIB3270_NOTIFY_CRITICAL | 183 | #define PW3270_DIALOG_CRITICAL LIB3270_NOTIFY_CRITICAL |
184 | #define PW3270_DIALOG LIB3270_NOTIFY | 184 | #define PW3270_DIALOG LIB3270_NOTIFY |
185 | 185 | ||
186 | - /** extended attributes */ | ||
187 | - struct ea | ||
188 | - { | ||
189 | - unsigned char cc; /**< EBCDIC or ASCII character code */ | ||
190 | - unsigned char fa; /**< field attribute, it nonzero */ | ||
191 | - unsigned char fg; /**< foreground color (0x00 or 0xf<n>) */ | ||
192 | - unsigned char bg; /**< background color (0x00 or 0xf<n>) */ | ||
193 | - unsigned char gr; /**< ANSI graphics rendition bits */ | ||
194 | - unsigned char cs; /**< character set (GE flag, or 0..2) */ | ||
195 | - unsigned char ic; /**< input control (DBCS) */ | ||
196 | - unsigned char db; /**< DBCS state */ | ||
197 | - | ||
198 | - /* Updated by addch() */ | ||
199 | - unsigned char chr; /**< ASCII character code */ | ||
200 | - unsigned short attr; /**< Converted character attribute (color & etc) */ | ||
201 | - | ||
202 | - }; | ||
203 | #define GR_BLINK 0x01 | 186 | #define GR_BLINK 0x01 |
204 | #define GR_REVERSE 0x02 | 187 | #define GR_REVERSE 0x02 |
205 | #define GR_UNDERLINE 0x04 | 188 | #define GR_UNDERLINE 0x04 |
src/lib3270/ctlr.c
@@ -80,8 +80,8 @@ int buffer_addr; | @@ -80,8 +80,8 @@ int buffer_addr; | ||
80 | // Boolean screen_alt = False; /* alternate screen? */ | 80 | // Boolean screen_alt = False; /* alternate screen? */ |
81 | // Boolean is_altbuffer = False; | 81 | // Boolean is_altbuffer = False; |
82 | 82 | ||
83 | -struct ea *ea_buf = NULL; /* 3270 device buffer */ | ||
84 | - /* ea_buf[-1] is the dummy default field attribute */ | 83 | +// struct ea *ea_buf = NULL; /* 3270 device buffer */ |
84 | +// /* ea_buf[-1] is the dummy default field attribute */ | ||
85 | 85 | ||
86 | // Boolean formatted = False; /* set in screen_disp */ | 86 | // Boolean formatted = False; /* set in screen_disp */ |
87 | unsigned char reply_mode = SF_SRM_FIELD; | 87 | unsigned char reply_mode = SF_SRM_FIELD; |
@@ -168,7 +168,7 @@ void ctlr_reinit(H3270 *session, unsigned cmask) | @@ -168,7 +168,7 @@ void ctlr_reinit(H3270 *session, unsigned cmask) | ||
168 | if (real_ea_buf) | 168 | if (real_ea_buf) |
169 | Free((char *)real_ea_buf); | 169 | Free((char *)real_ea_buf); |
170 | real_ea_buf = (struct ea *)Calloc(sizeof(struct ea),(session->maxROWS * session->maxCOLS) + 1); | 170 | real_ea_buf = (struct ea *)Calloc(sizeof(struct ea),(session->maxROWS * session->maxCOLS) + 1); |
171 | - ea_buf = real_ea_buf + 1; | 171 | + session->ea_buf = real_ea_buf + 1; |
172 | if (real_aea_buf) | 172 | if (real_aea_buf) |
173 | Free((char *)real_aea_buf); | 173 | Free((char *)real_aea_buf); |
174 | real_aea_buf = (struct ea *)Calloc(sizeof(struct ea),(session->maxROWS * session->maxCOLS) + 1); | 174 | real_aea_buf = (struct ea *)Calloc(sizeof(struct ea),(session->maxROWS * session->maxCOLS) + 1); |
@@ -274,7 +274,7 @@ static void set_formatted(H3270 *session) | @@ -274,7 +274,7 @@ static void set_formatted(H3270 *session) | ||
274 | baddr = 0; | 274 | baddr = 0; |
275 | do | 275 | do |
276 | { | 276 | { |
277 | - if (ea_buf[baddr].fa) | 277 | + if(session->ea_buf[baddr].fa) |
278 | { | 278 | { |
279 | session->formatted = True; | 279 | session->formatted = True; |
280 | break; | 280 | break; |
@@ -301,10 +301,11 @@ static void ctlr_connect(H3270 *session, int ignored unused, void *dunno) | @@ -301,10 +301,11 @@ static void ctlr_connect(H3270 *session, int ignored unused, void *dunno) | ||
301 | status_untiming(session); | 301 | status_untiming(session); |
302 | 302 | ||
303 | if (session->ever_3270) | 303 | if (session->ever_3270) |
304 | - ea_buf[-1].fa = FA_PRINTABLE | FA_MODIFY; | 304 | + session->ea_buf[-1].fa = FA_PRINTABLE | FA_MODIFY; |
305 | else | 305 | else |
306 | - ea_buf[-1].fa = FA_PRINTABLE | FA_PROTECT; | ||
307 | - if (!IN_3270 || (IN_SSCP && (kybdlock & KL_OIA_TWAIT))) { | 306 | + session->ea_buf[-1].fa = FA_PRINTABLE | FA_PROTECT; |
307 | + if (!IN_3270 || (IN_SSCP && (kybdlock & KL_OIA_TWAIT))) | ||
308 | + { | ||
308 | kybdlock_clr(KL_OIA_TWAIT, "ctlr_connect"); | 309 | kybdlock_clr(KL_OIA_TWAIT, "ctlr_connect"); |
309 | status_reset(session); | 310 | status_reset(session); |
310 | } | 311 | } |
@@ -332,7 +333,7 @@ LIB3270_EXPORT int lib3270_field_addr(H3270 *h, int baddr) | @@ -332,7 +333,7 @@ LIB3270_EXPORT int lib3270_field_addr(H3270 *h, int baddr) | ||
332 | sbaddr = baddr; | 333 | sbaddr = baddr; |
333 | do | 334 | do |
334 | { | 335 | { |
335 | - if (ea_buf[baddr].fa) | 336 | + if(h->ea_buf[baddr].fa) |
336 | return baddr; | 337 | return baddr; |
337 | DEC_BA(baddr); | 338 | DEC_BA(baddr); |
338 | } while (baddr != sbaddr); | 339 | } while (baddr != sbaddr); |
@@ -359,7 +360,7 @@ int lib3270_field_length(H3270 *h, int baddr) | @@ -359,7 +360,7 @@ int lib3270_field_length(H3270 *h, int baddr) | ||
359 | saddr = addr; | 360 | saddr = addr; |
360 | INC_BA(addr); | 361 | INC_BA(addr); |
361 | do { | 362 | do { |
362 | - if(ea_buf[addr].fa) | 363 | + if(h->ea_buf[addr].fa) |
363 | return width; | 364 | return width; |
364 | INC_BA(addr); | 365 | INC_BA(addr); |
365 | width++; | 366 | width++; |
@@ -376,7 +377,7 @@ int lib3270_field_length(H3270 *h, int baddr) | @@ -376,7 +377,7 @@ int lib3270_field_length(H3270 *h, int baddr) | ||
376 | unsigned char get_field_attribute(H3270 *h, int baddr) | 377 | unsigned char get_field_attribute(H3270 *h, int baddr) |
377 | { | 378 | { |
378 | CHECK_SESSION_HANDLE(h); | 379 | CHECK_SESSION_HANDLE(h); |
379 | - return ea_buf[find_field_attribute(h,baddr)].fa; | 380 | + return h->ea_buf[find_field_attribute(h,baddr)].fa; |
380 | } | 381 | } |
381 | 382 | ||
382 | /* | 383 | /* |
@@ -392,14 +393,14 @@ get_bounded_field_attribute(register int baddr, register int bound, | @@ -392,14 +393,14 @@ get_bounded_field_attribute(register int baddr, register int bound, | ||
392 | int sbaddr; | 393 | int sbaddr; |
393 | 394 | ||
394 | if (!h3270.formatted) { | 395 | if (!h3270.formatted) { |
395 | - *fa_out = ea_buf[-1].fa; | 396 | + *fa_out = h3270.ea_buf[-1].fa; |
396 | return True; | 397 | return True; |
397 | } | 398 | } |
398 | 399 | ||
399 | sbaddr = baddr; | 400 | sbaddr = baddr; |
400 | do { | 401 | do { |
401 | - if (ea_buf[baddr].fa) { | ||
402 | - *fa_out = ea_buf[baddr].fa; | 402 | + if (h3270.ea_buf[baddr].fa) { |
403 | + *fa_out = h3270.ea_buf[baddr].fa; | ||
403 | return True; | 404 | return True; |
404 | } | 405 | } |
405 | DEC_BA(baddr); | 406 | DEC_BA(baddr); |
@@ -407,7 +408,7 @@ get_bounded_field_attribute(register int baddr, register int bound, | @@ -407,7 +408,7 @@ get_bounded_field_attribute(register int baddr, register int bound, | ||
407 | 408 | ||
408 | /* Screen is unformatted (and 'formatted' is inaccurate). */ | 409 | /* Screen is unformatted (and 'formatted' is inaccurate). */ |
409 | if (baddr == sbaddr) { | 410 | if (baddr == sbaddr) { |
410 | - *fa_out = ea_buf[-1].fa; | 411 | + *fa_out = h3270.ea_buf[-1].fa; |
411 | return True; | 412 | return True; |
412 | } | 413 | } |
413 | 414 | ||
@@ -422,7 +423,7 @@ get_bounded_field_attribute(register int baddr, register int bound, | @@ -422,7 +423,7 @@ get_bounded_field_attribute(register int baddr, register int bound, | ||
422 | struct ea * | 423 | struct ea * |
423 | fa2ea(int baddr) | 424 | fa2ea(int baddr) |
424 | { | 425 | { |
425 | - return &ea_buf[baddr]; | 426 | + return &h3270.ea_buf[baddr]; |
426 | } | 427 | } |
427 | 428 | ||
428 | /* | 429 | /* |
@@ -439,9 +440,9 @@ next_unprotected(int baddr0) | @@ -439,9 +440,9 @@ next_unprotected(int baddr0) | ||
439 | do { | 440 | do { |
440 | baddr = nbaddr; | 441 | baddr = nbaddr; |
441 | INC_BA(nbaddr); | 442 | INC_BA(nbaddr); |
442 | - if (ea_buf[baddr].fa && | ||
443 | - !FA_IS_PROTECTED(ea_buf[baddr].fa) && | ||
444 | - !ea_buf[nbaddr].fa) | 443 | + if (h3270.ea_buf[baddr].fa && |
444 | + !FA_IS_PROTECTED(h3270.ea_buf[baddr].fa) && | ||
445 | + !h3270.ea_buf[nbaddr].fa) | ||
445 | return nbaddr; | 446 | return nbaddr; |
446 | } while (nbaddr != baddr0); | 447 | } while (nbaddr != baddr0); |
447 | return 0; | 448 | return 0; |
@@ -610,20 +611,19 @@ insert_sa(int baddr, unsigned char *current_fgp, unsigned char *current_bgp, | @@ -610,20 +611,19 @@ insert_sa(int baddr, unsigned char *current_fgp, unsigned char *current_bgp, | ||
610 | return; | 611 | return; |
611 | 612 | ||
612 | if (memchr((char *)crm_attr, XA_FOREGROUND, crm_nattr)) | 613 | if (memchr((char *)crm_attr, XA_FOREGROUND, crm_nattr)) |
613 | - insert_sa1(XA_FOREGROUND, ea_buf[baddr].fg, current_fgp, anyp); | 614 | + insert_sa1(XA_FOREGROUND, h3270.ea_buf[baddr].fg, current_fgp, anyp); |
614 | if (memchr((char *)crm_attr, XA_BACKGROUND, crm_nattr)) | 615 | if (memchr((char *)crm_attr, XA_BACKGROUND, crm_nattr)) |
615 | - insert_sa1(XA_BACKGROUND, ea_buf[baddr].bg, current_bgp, anyp); | 616 | + insert_sa1(XA_BACKGROUND, h3270.ea_buf[baddr].bg, current_bgp, anyp); |
616 | if (memchr((char *)crm_attr, XA_HIGHLIGHTING, crm_nattr)) { | 617 | if (memchr((char *)crm_attr, XA_HIGHLIGHTING, crm_nattr)) { |
617 | unsigned char gr; | 618 | unsigned char gr; |
618 | 619 | ||
619 | - gr = ea_buf[baddr].gr; | 620 | + gr = h3270.ea_buf[baddr].gr; |
620 | if (gr) | 621 | if (gr) |
621 | gr |= 0xf0; | 622 | gr |= 0xf0; |
622 | insert_sa1(XA_HIGHLIGHTING, gr, current_grp, anyp); | 623 | insert_sa1(XA_HIGHLIGHTING, gr, current_grp, anyp); |
623 | } | 624 | } |
624 | if (memchr((char *)crm_attr, XA_CHARSET, crm_nattr)) { | 625 | if (memchr((char *)crm_attr, XA_CHARSET, crm_nattr)) { |
625 | - insert_sa1(XA_CHARSET, host_cs(ea_buf[baddr].cs), current_csp, | ||
626 | - anyp); | 626 | + insert_sa1(XA_CHARSET, host_cs(h3270.ea_buf[baddr].cs), current_csp,anyp); |
627 | } | 627 | } |
628 | } | 628 | } |
629 | 629 | ||
@@ -699,13 +699,13 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) | @@ -699,13 +699,13 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) | ||
699 | if (h3270.formatted) { | 699 | if (h3270.formatted) { |
700 | /* find first field attribute */ | 700 | /* find first field attribute */ |
701 | do { | 701 | do { |
702 | - if (ea_buf[baddr].fa) | 702 | + if (h3270.ea_buf[baddr].fa) |
703 | break; | 703 | break; |
704 | INC_BA(baddr); | 704 | INC_BA(baddr); |
705 | } while (baddr != 0); | 705 | } while (baddr != 0); |
706 | sbaddr = baddr; | 706 | sbaddr = baddr; |
707 | do { | 707 | do { |
708 | - if (FA_IS_MODIFIED(ea_buf[baddr].fa)) { | 708 | + if (FA_IS_MODIFIED(h3270.ea_buf[baddr].fa)) { |
709 | Boolean any = False; | 709 | Boolean any = False; |
710 | 710 | ||
711 | INC_BA(baddr); | 711 | INC_BA(baddr); |
@@ -713,17 +713,17 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) | @@ -713,17 +713,17 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) | ||
713 | *obptr++ = ORDER_SBA; | 713 | *obptr++ = ORDER_SBA; |
714 | ENCODE_BADDR(obptr, baddr); | 714 | ENCODE_BADDR(obptr, baddr); |
715 | trace_ds(" SetBufferAddress%s (Cols: %d Rows: %d)", rcba(baddr), h3270.cols, h3270.rows); | 715 | trace_ds(" SetBufferAddress%s (Cols: %d Rows: %d)", rcba(baddr), h3270.cols, h3270.rows); |
716 | - while (!ea_buf[baddr].fa) { | 716 | + while (!h3270.ea_buf[baddr].fa) { |
717 | 717 | ||
718 | if (send_data && | 718 | if (send_data && |
719 | - ea_buf[baddr].cc) { | 719 | + h3270.ea_buf[baddr].cc) { |
720 | insert_sa(baddr, | 720 | insert_sa(baddr, |
721 | ¤t_fg, | 721 | ¤t_fg, |
722 | ¤t_bg, | 722 | ¤t_bg, |
723 | ¤t_gr, | 723 | ¤t_gr, |
724 | ¤t_cs, | 724 | ¤t_cs, |
725 | &any); | 725 | &any); |
726 | - if (ea_buf[baddr].cs & CS_GE) { | 726 | + if (h3270.ea_buf[baddr].cs & CS_GE) { |
727 | space3270out(1); | 727 | space3270out(1); |
728 | *obptr++ = ORDER_GE; | 728 | *obptr++ = ORDER_GE; |
729 | if (any) | 729 | if (any) |
@@ -732,7 +732,7 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) | @@ -732,7 +732,7 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) | ||
732 | any = False; | 732 | any = False; |
733 | } | 733 | } |
734 | space3270out(1); | 734 | space3270out(1); |
735 | - *obptr++ = ea_buf[baddr].cc; | 735 | + *obptr++ = h3270.ea_buf[baddr].cc; |
736 | if (!any) | 736 | if (!any) |
737 | trace_ds(" '"); | 737 | trace_ds(" '"); |
738 | trace_ds("%s", | 738 | trace_ds("%s", |
@@ -747,7 +747,7 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) | @@ -747,7 +747,7 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) | ||
747 | else { /* not modified - skip */ | 747 | else { /* not modified - skip */ |
748 | do { | 748 | do { |
749 | INC_BA(baddr); | 749 | INC_BA(baddr); |
750 | - } while (!ea_buf[baddr].fa); | 750 | + } while (!h3270.ea_buf[baddr].fa); |
751 | } | 751 | } |
752 | } while (baddr != sbaddr); | 752 | } while (baddr != sbaddr); |
753 | } else { | 753 | } else { |
@@ -762,14 +762,14 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) | @@ -762,14 +762,14 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) | ||
762 | baddr = sscp_start; | 762 | baddr = sscp_start; |
763 | 763 | ||
764 | do { | 764 | do { |
765 | - if (ea_buf[baddr].cc) { | 765 | + if (h3270.ea_buf[baddr].cc) { |
766 | insert_sa(baddr, | 766 | insert_sa(baddr, |
767 | ¤t_fg, | 767 | ¤t_fg, |
768 | ¤t_bg, | 768 | ¤t_bg, |
769 | ¤t_gr, | 769 | ¤t_gr, |
770 | ¤t_cs, | 770 | ¤t_cs, |
771 | &any); | 771 | &any); |
772 | - if (ea_buf[baddr].cs & CS_GE) { | 772 | + if (h3270.ea_buf[baddr].cs & CS_GE) { |
773 | space3270out(1); | 773 | space3270out(1); |
774 | *obptr++ = ORDER_GE; | 774 | *obptr++ = ORDER_GE; |
775 | if (any) | 775 | if (any) |
@@ -778,7 +778,7 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) | @@ -778,7 +778,7 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) | ||
778 | any = False; | 778 | any = False; |
779 | } | 779 | } |
780 | space3270out(1); | 780 | space3270out(1); |
781 | - *obptr++ = ea_buf[baddr].cc; | 781 | + *obptr++ = h3270.ea_buf[baddr].cc; |
782 | if (!any) | 782 | if (!any) |
783 | trace_ds("%s","'"); | 783 | trace_ds("%s","'"); |
784 | trace_ds("%s",see_ebc(ea_buf[baddr].cc)); | 784 | trace_ds("%s",see_ebc(ea_buf[baddr].cc)); |
@@ -836,7 +836,7 @@ ctlr_read_buffer(unsigned char aid_byte) | @@ -836,7 +836,7 @@ ctlr_read_buffer(unsigned char aid_byte) | ||
836 | 836 | ||
837 | baddr = 0; | 837 | baddr = 0; |
838 | do { | 838 | do { |
839 | - if (ea_buf[baddr].fa) { | 839 | + if (h3270.ea_buf[baddr].fa) { |
840 | if (reply_mode == SF_SRM_FIELD) { | 840 | if (reply_mode == SF_SRM_FIELD) { |
841 | space3270out(2); | 841 | space3270out(2); |
842 | *obptr++ = ORDER_SF; | 842 | *obptr++ = ORDER_SF; |
@@ -847,7 +847,7 @@ ctlr_read_buffer(unsigned char aid_byte) | @@ -847,7 +847,7 @@ ctlr_read_buffer(unsigned char aid_byte) | ||
847 | *obptr++ = 1; /* for now */ | 847 | *obptr++ = 1; /* for now */ |
848 | *obptr++ = XA_3270; | 848 | *obptr++ = XA_3270; |
849 | } | 849 | } |
850 | - fa = ea_buf[baddr].fa & ~FA_PRINTABLE; | 850 | + fa = h3270.ea_buf[baddr].fa & ~FA_PRINTABLE; |
851 | *obptr++ = code_table[fa]; | 851 | *obptr++ = code_table[fa]; |
852 | if (any) | 852 | if (any) |
853 | trace_ds("'"); | 853 | trace_ds("'"); |
@@ -855,34 +855,34 @@ ctlr_read_buffer(unsigned char aid_byte) | @@ -855,34 +855,34 @@ ctlr_read_buffer(unsigned char aid_byte) | ||
855 | (reply_mode == SF_SRM_FIELD) ? "" : "Extended", | 855 | (reply_mode == SF_SRM_FIELD) ? "" : "Extended", |
856 | rcba(baddr), see_attr(fa)); | 856 | rcba(baddr), see_attr(fa)); |
857 | if (reply_mode != SF_SRM_FIELD) { | 857 | if (reply_mode != SF_SRM_FIELD) { |
858 | - if (ea_buf[baddr].fg) { | 858 | + if (h3270.ea_buf[baddr].fg) { |
859 | space3270out(2); | 859 | space3270out(2); |
860 | *obptr++ = XA_FOREGROUND; | 860 | *obptr++ = XA_FOREGROUND; |
861 | - *obptr++ = ea_buf[baddr].fg; | 861 | + *obptr++ = h3270.ea_buf[baddr].fg; |
862 | trace_ds("%s", see_efa(XA_FOREGROUND, | 862 | trace_ds("%s", see_efa(XA_FOREGROUND, |
863 | ea_buf[baddr].fg)); | 863 | ea_buf[baddr].fg)); |
864 | (*(obuf + attr_count))++; | 864 | (*(obuf + attr_count))++; |
865 | } | 865 | } |
866 | - if (ea_buf[baddr].bg) { | 866 | + if (h3270.ea_buf[baddr].bg) { |
867 | space3270out(2); | 867 | space3270out(2); |
868 | *obptr++ = XA_BACKGROUND; | 868 | *obptr++ = XA_BACKGROUND; |
869 | - *obptr++ = ea_buf[baddr].bg; | 869 | + *obptr++ = h3270.ea_buf[baddr].bg; |
870 | trace_ds("%s", see_efa(XA_BACKGROUND, | 870 | trace_ds("%s", see_efa(XA_BACKGROUND, |
871 | ea_buf[baddr].bg)); | 871 | ea_buf[baddr].bg)); |
872 | (*(obuf + attr_count))++; | 872 | (*(obuf + attr_count))++; |
873 | } | 873 | } |
874 | - if (ea_buf[baddr].gr) { | 874 | + if (h3270.ea_buf[baddr].gr) { |
875 | space3270out(2); | 875 | space3270out(2); |
876 | *obptr++ = XA_HIGHLIGHTING; | 876 | *obptr++ = XA_HIGHLIGHTING; |
877 | - *obptr++ = ea_buf[baddr].gr | 0xf0; | 877 | + *obptr++ = h3270.ea_buf[baddr].gr | 0xf0; |
878 | trace_ds("%s", see_efa(XA_HIGHLIGHTING, | 878 | trace_ds("%s", see_efa(XA_HIGHLIGHTING, |
879 | - ea_buf[baddr].gr | 0xf0)); | 879 | + h3270.ea_buf[baddr].gr | 0xf0)); |
880 | (*(obuf + attr_count))++; | 880 | (*(obuf + attr_count))++; |
881 | } | 881 | } |
882 | - if (ea_buf[baddr].cs & CS_MASK) { | 882 | + if (h3270.ea_buf[baddr].cs & CS_MASK) { |
883 | space3270out(2); | 883 | space3270out(2); |
884 | *obptr++ = XA_CHARSET; | 884 | *obptr++ = XA_CHARSET; |
885 | - *obptr++ = host_cs(ea_buf[baddr].cs); | 885 | + *obptr++ = host_cs(h3270.ea_buf[baddr].cs); |
886 | trace_ds("%s", see_efa(XA_CHARSET, | 886 | trace_ds("%s", see_efa(XA_CHARSET, |
887 | host_cs(ea_buf[baddr].cs))); | 887 | host_cs(ea_buf[baddr].cs))); |
888 | (*(obuf + attr_count))++; | 888 | (*(obuf + attr_count))++; |
@@ -896,7 +896,7 @@ ctlr_read_buffer(unsigned char aid_byte) | @@ -896,7 +896,7 @@ ctlr_read_buffer(unsigned char aid_byte) | ||
896 | ¤t_gr, | 896 | ¤t_gr, |
897 | ¤t_cs, | 897 | ¤t_cs, |
898 | &any); | 898 | &any); |
899 | - if (ea_buf[baddr].cs & CS_GE) { | 899 | + if (h3270.ea_buf[baddr].cs & CS_GE) { |
900 | space3270out(1); | 900 | space3270out(1); |
901 | *obptr++ = ORDER_GE; | 901 | *obptr++ = ORDER_GE; |
902 | if (any) | 902 | if (any) |
@@ -905,9 +905,9 @@ ctlr_read_buffer(unsigned char aid_byte) | @@ -905,9 +905,9 @@ ctlr_read_buffer(unsigned char aid_byte) | ||
905 | any = False; | 905 | any = False; |
906 | } | 906 | } |
907 | space3270out(1); | 907 | space3270out(1); |
908 | - *obptr++ = ea_buf[baddr].cc; | ||
909 | - if (ea_buf[baddr].cc <= 0x3f || | ||
910 | - ea_buf[baddr].cc == 0xff) { | 908 | + *obptr++ = h3270.ea_buf[baddr].cc; |
909 | + if (h3270.ea_buf[baddr].cc <= 0x3f || | ||
910 | + h3270.ea_buf[baddr].cc == 0xff) { | ||
911 | if (any) | 911 | if (any) |
912 | trace_ds("'"); | 912 | trace_ds("'"); |
913 | 913 | ||
@@ -1076,14 +1076,14 @@ ctlr_erase_all_unprotected(void) | @@ -1076,14 +1076,14 @@ ctlr_erase_all_unprotected(void) | ||
1076 | /* find first field attribute */ | 1076 | /* find first field attribute */ |
1077 | baddr = 0; | 1077 | baddr = 0; |
1078 | do { | 1078 | do { |
1079 | - if (ea_buf[baddr].fa) | 1079 | + if (h3270.ea_buf[baddr].fa) |
1080 | break; | 1080 | break; |
1081 | INC_BA(baddr); | 1081 | INC_BA(baddr); |
1082 | } while (baddr != 0); | 1082 | } while (baddr != 0); |
1083 | sbaddr = baddr; | 1083 | sbaddr = baddr; |
1084 | f = False; | 1084 | f = False; |
1085 | do { | 1085 | do { |
1086 | - fa = ea_buf[baddr].fa; | 1086 | + fa = h3270.ea_buf[baddr].fa; |
1087 | if (!FA_IS_PROTECTED(fa)) { | 1087 | if (!FA_IS_PROTECTED(fa)) { |
1088 | mdt_clear(baddr); | 1088 | mdt_clear(baddr); |
1089 | do { | 1089 | do { |
@@ -1092,15 +1092,15 @@ ctlr_erase_all_unprotected(void) | @@ -1092,15 +1092,15 @@ ctlr_erase_all_unprotected(void) | ||
1092 | cursor_move(baddr); | 1092 | cursor_move(baddr); |
1093 | f = True; | 1093 | f = True; |
1094 | } | 1094 | } |
1095 | - if (!ea_buf[baddr].fa) { | 1095 | + if (!h3270.ea_buf[baddr].fa) { |
1096 | ctlr_add(baddr, EBC_null, 0); | 1096 | ctlr_add(baddr, EBC_null, 0); |
1097 | } | 1097 | } |
1098 | - } while (!ea_buf[baddr].fa); | 1098 | + } while (!h3270.ea_buf[baddr].fa); |
1099 | } | 1099 | } |
1100 | else { | 1100 | else { |
1101 | do { | 1101 | do { |
1102 | INC_BA(baddr); | 1102 | INC_BA(baddr); |
1103 | - } while (!ea_buf[baddr].fa); | 1103 | + } while (!h3270.ea_buf[baddr].fa); |
1104 | } | 1104 | } |
1105 | } while (baddr != sbaddr); | 1105 | } while (baddr != sbaddr); |
1106 | if (!f) | 1106 | if (!f) |
@@ -1203,7 +1203,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) | @@ -1203,7 +1203,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) | ||
1203 | if (appres.modified_sel) | 1203 | if (appres.modified_sel) |
1204 | ALL_CHANGED; | 1204 | ALL_CHANGED; |
1205 | do { | 1205 | do { |
1206 | - if (ea_buf[baddr].fa) { | 1206 | + if (h3270.ea_buf[baddr].fa) { |
1207 | mdt_clear(baddr); | 1207 | mdt_clear(baddr); |
1208 | } | 1208 | } |
1209 | INC_BA(baddr); | 1209 | INC_BA(baddr); |
@@ -1271,8 +1271,8 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) | @@ -1271,8 +1271,8 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) | ||
1271 | * of an unprotected field, simply advance one | 1271 | * of an unprotected field, simply advance one |
1272 | * position. | 1272 | * position. |
1273 | */ | 1273 | */ |
1274 | - if (ea_buf[buffer_addr].fa && | ||
1275 | - !FA_IS_PROTECTED(ea_buf[buffer_addr].fa)) { | 1274 | + if (h3270.ea_buf[buffer_addr].fa && |
1275 | + !FA_IS_PROTECTED(h3270.ea_buf[buffer_addr].fa)) { | ||
1276 | INC_BA(buffer_addr); | 1276 | INC_BA(buffer_addr); |
1277 | last_zpt = False; | 1277 | last_zpt = False; |
1278 | last_cmd = True; | 1278 | last_cmd = True; |
@@ -1295,7 +1295,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) | @@ -1295,7 +1295,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) | ||
1295 | if (!last_cmd || last_zpt) { | 1295 | if (!last_cmd || last_zpt) { |
1296 | trace_ds("(nulling)"); | 1296 | trace_ds("(nulling)"); |
1297 | while ((buffer_addr != baddr) && | 1297 | while ((buffer_addr != baddr) && |
1298 | - (!ea_buf[buffer_addr].fa)) { | 1298 | + (!h3270.ea_buf[buffer_addr].fa)) { |
1299 | ctlr_add(buffer_addr, EBC_null, 0); | 1299 | ctlr_add(buffer_addr, EBC_null, 0); |
1300 | ctlr_add_cs(buffer_addr, 0); | 1300 | ctlr_add_cs(buffer_addr, 0); |
1301 | ctlr_add_fg(buffer_addr, 0); | 1301 | ctlr_add_fg(buffer_addr, 0); |
@@ -1433,8 +1433,8 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) | @@ -1433,8 +1433,8 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) | ||
1433 | ABORT_WRITE("EUA overwriting left half of DBCS character"); | 1433 | ABORT_WRITE("EUA overwriting left half of DBCS character"); |
1434 | } | 1434 | } |
1435 | do { | 1435 | do { |
1436 | - if (ea_buf[buffer_addr].fa) | ||
1437 | - current_fa = ea_buf[buffer_addr].fa; | 1436 | + if (h3270.ea_buf[buffer_addr].fa) |
1437 | + current_fa = h3270.ea_buf[buffer_addr].fa; | ||
1438 | else if (!FA_IS_PROTECTED(current_fa)) { | 1438 | else if (!FA_IS_PROTECTED(current_fa)) { |
1439 | ctlr_add(buffer_addr, EBC_null, | 1439 | ctlr_add(buffer_addr, EBC_null, |
1440 | CS_BASE); | 1440 | CS_BASE); |
@@ -1472,14 +1472,14 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) | @@ -1472,14 +1472,14 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) | ||
1472 | previous = ORDER; | 1472 | previous = ORDER; |
1473 | cp++; | 1473 | cp++; |
1474 | na = *cp; | 1474 | na = *cp; |
1475 | - if (ea_buf[buffer_addr].fa) { | 1475 | + if (h3270.ea_buf[buffer_addr].fa) { |
1476 | for (i = 0; i < (int)na; i++) { | 1476 | for (i = 0; i < (int)na; i++) { |
1477 | cp++; | 1477 | cp++; |
1478 | if (*cp == XA_3270) { | 1478 | if (*cp == XA_3270) { |
1479 | trace_ds(" 3270"); | 1479 | trace_ds(" 3270"); |
1480 | cp++; | 1480 | cp++; |
1481 | ctlr_add_fa(buffer_addr, *cp, | 1481 | ctlr_add_fa(buffer_addr, *cp, |
1482 | - ea_buf[buffer_addr].cs); | 1482 | + h3270.ea_buf[buffer_addr].cs); |
1483 | trace_ds("%s",see_attr(*cp)); | 1483 | trace_ds("%s",see_attr(*cp)); |
1484 | } else if (*cp == XA_FOREGROUND) { | 1484 | } else if (*cp == XA_FOREGROUND) { |
1485 | trace_ds("%s", | 1485 | trace_ds("%s", |
@@ -1714,16 +1714,16 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) | @@ -1714,16 +1714,16 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) | ||
1714 | while (!aborted && | 1714 | while (!aborted && |
1715 | ((fa_addr >= 0 && baddr != fa_addr) || | 1715 | ((fa_addr >= 0 && baddr != fa_addr) || |
1716 | (fa_addr < 0 && baddr != h3270.rows*h3270.cols - 1))) { | 1716 | (fa_addr < 0 && baddr != h3270.rows*h3270.cols - 1))) { |
1717 | - if (ea_buf[baddr].cc == FCORDER_SI) { | 1717 | + if (h3270.ea_buf[baddr].cc == FCORDER_SI) { |
1718 | ABORT_WRITE("double SI"); | 1718 | ABORT_WRITE("double SI"); |
1719 | } | 1719 | } |
1720 | - if (ea_buf[baddr].cc == FCORDER_SO) | 1720 | + if (h3270.ea_buf[baddr].cc == FCORDER_SO) |
1721 | break; | 1721 | break; |
1722 | DEC_BA(baddr); | 1722 | DEC_BA(baddr); |
1723 | } | 1723 | } |
1724 | if (aborted) | 1724 | if (aborted) |
1725 | break; | 1725 | break; |
1726 | - if (ea_buf[baddr].cc != FCORDER_SO) { | 1726 | + if (h3270.ea_buf[baddr].cc != FCORDER_SO) { |
1727 | ABORT_WRITE("SI without SO"); | 1727 | ABORT_WRITE("SI without SO"); |
1728 | } | 1728 | } |
1729 | /* All is well. */ | 1729 | /* All is well. */ |
@@ -2293,7 +2293,7 @@ ps_process(void) | @@ -2293,7 +2293,7 @@ ps_process(void) | ||
2293 | !h3270.screen_alt && /* 24x80 screen */ | 2293 | !h3270.screen_alt && /* 24x80 screen */ |
2294 | !kybdlock && /* keyboard not locked */ | 2294 | !kybdlock && /* keyboard not locked */ |
2295 | /* magic field */ | 2295 | /* magic field */ |
2296 | - ea_buf[1919].fa && FA_IS_SKIP(ea_buf[1919].fa)) { | 2296 | + h3270.ea_buf[1919].fa && FA_IS_SKIP(h3270.ea_buf[1919].fa)) { |
2297 | ft_cut_data(); | 2297 | ft_cut_data(); |
2298 | } | 2298 | } |
2299 | #endif /*]*/ | 2299 | #endif /*]*/ |
@@ -2308,7 +2308,7 @@ ctlr_any_data(void) | @@ -2308,7 +2308,7 @@ ctlr_any_data(void) | ||
2308 | register int i; | 2308 | register int i; |
2309 | 2309 | ||
2310 | for (i = 0; i < h3270.rows*h3270.cols; i++) { | 2310 | for (i = 0; i < h3270.rows*h3270.cols; i++) { |
2311 | - if (!IsBlank(ea_buf[i].cc)) | 2311 | + if (!IsBlank(h3270.ea_buf[i].cc)) |
2312 | return True; | 2312 | return True; |
2313 | } | 2313 | } |
2314 | return False; | 2314 | return False; |
@@ -2334,7 +2334,7 @@ ctlr_clear(H3270 *session, Boolean can_snap) | @@ -2334,7 +2334,7 @@ ctlr_clear(H3270 *session, Boolean can_snap) | ||
2334 | #endif /*]*/ | 2334 | #endif /*]*/ |
2335 | 2335 | ||
2336 | /* Clear the screen. */ | 2336 | /* Clear the screen. */ |
2337 | - (void) memset((char *)ea_buf, 0, session->rows*session->cols*sizeof(struct ea)); | 2337 | + (void) memset((char *)session->ea_buf, 0, session->rows*session->cols*sizeof(struct ea)); |
2338 | cursor_move(0); | 2338 | cursor_move(0); |
2339 | buffer_addr = 0; | 2339 | buffer_addr = 0; |
2340 | // unselect(0, ROWS*COLS); | 2340 | // unselect(0, ROWS*COLS); |
@@ -2359,8 +2359,8 @@ ctlr_blanks(void) | @@ -2359,8 +2359,8 @@ ctlr_blanks(void) | ||
2359 | int baddr; | 2359 | int baddr; |
2360 | 2360 | ||
2361 | for (baddr = 0; baddr < h3270.rows*h3270.cols; baddr++) { | 2361 | for (baddr = 0; baddr < h3270.rows*h3270.cols; baddr++) { |
2362 | - if (!ea_buf[baddr].fa) | ||
2363 | - ea_buf[baddr].cc = EBC_space; | 2362 | + if (!h3270.ea_buf[baddr].fa) |
2363 | + h3270.ea_buf[baddr].cc = EBC_space; | ||
2364 | } | 2364 | } |
2365 | cursor_move(0); | 2365 | cursor_move(0); |
2366 | buffer_addr = 0; | 2366 | buffer_addr = 0; |
@@ -2379,7 +2379,7 @@ ctlr_add(int baddr, unsigned char c, unsigned char cs) | @@ -2379,7 +2379,7 @@ ctlr_add(int baddr, unsigned char c, unsigned char cs) | ||
2379 | { | 2379 | { |
2380 | unsigned char oc = 0; | 2380 | unsigned char oc = 0; |
2381 | 2381 | ||
2382 | - if(ea_buf[baddr].fa || ((oc = ea_buf[baddr].cc) != c || ea_buf[baddr].cs != cs)) | 2382 | + if(h3270.ea_buf[baddr].fa || ((oc = h3270.ea_buf[baddr].cc) != c || h3270.ea_buf[baddr].cs != cs)) |
2383 | { | 2383 | { |
2384 | if (trace_primed && !IsBlank(oc)) | 2384 | if (trace_primed && !IsBlank(oc)) |
2385 | { | 2385 | { |
@@ -2394,9 +2394,9 @@ ctlr_add(int baddr, unsigned char c, unsigned char cs) | @@ -2394,9 +2394,9 @@ ctlr_add(int baddr, unsigned char c, unsigned char cs) | ||
2394 | if (SELECTED(baddr)) | 2394 | if (SELECTED(baddr)) |
2395 | unselect(baddr, 1); | 2395 | unselect(baddr, 1); |
2396 | */ | 2396 | */ |
2397 | - ea_buf[baddr].cc = c; | ||
2398 | - ea_buf[baddr].cs = cs; | ||
2399 | - ea_buf[baddr].fa = 0; | 2397 | + h3270.ea_buf[baddr].cc = c; |
2398 | + h3270.ea_buf[baddr].cs = cs; | ||
2399 | + h3270.ea_buf[baddr].fa = 0; | ||
2400 | ONE_CHANGED(baddr); | 2400 | ONE_CHANGED(baddr); |
2401 | } | 2401 | } |
2402 | } | 2402 | } |
@@ -2414,7 +2414,7 @@ ctlr_add_fa(int baddr, unsigned char fa, unsigned char cs) | @@ -2414,7 +2414,7 @@ ctlr_add_fa(int baddr, unsigned char fa, unsigned char cs) | ||
2414 | * Store the new attribute, setting the 'printable' bits so that the | 2414 | * Store the new attribute, setting the 'printable' bits so that the |
2415 | * value will be non-zero. | 2415 | * value will be non-zero. |
2416 | */ | 2416 | */ |
2417 | - ea_buf[baddr].fa = FA_PRINTABLE | (fa & FA_MASK); | 2417 | + h3270.ea_buf[baddr].fa = FA_PRINTABLE | (fa & FA_MASK); |
2418 | } | 2418 | } |
2419 | 2419 | ||
2420 | /* | 2420 | /* |
@@ -2423,13 +2423,13 @@ ctlr_add_fa(int baddr, unsigned char fa, unsigned char cs) | @@ -2423,13 +2423,13 @@ ctlr_add_fa(int baddr, unsigned char fa, unsigned char cs) | ||
2423 | void | 2423 | void |
2424 | ctlr_add_cs(int baddr, unsigned char cs) | 2424 | ctlr_add_cs(int baddr, unsigned char cs) |
2425 | { | 2425 | { |
2426 | - if (ea_buf[baddr].cs != cs) | 2426 | + if (h3270.ea_buf[baddr].cs != cs) |
2427 | { | 2427 | { |
2428 | /* | 2428 | /* |
2429 | if (SELECTED(baddr)) | 2429 | if (SELECTED(baddr)) |
2430 | unselect(baddr, 1); | 2430 | unselect(baddr, 1); |
2431 | */ | 2431 | */ |
2432 | - ea_buf[baddr].cs = cs; | 2432 | + h3270.ea_buf[baddr].cs = cs; |
2433 | ONE_CHANGED(baddr); | 2433 | ONE_CHANGED(baddr); |
2434 | } | 2434 | } |
2435 | } | 2435 | } |
@@ -2440,13 +2440,9 @@ ctlr_add_cs(int baddr, unsigned char cs) | @@ -2440,13 +2440,9 @@ ctlr_add_cs(int baddr, unsigned char cs) | ||
2440 | void | 2440 | void |
2441 | ctlr_add_gr(int baddr, unsigned char gr) | 2441 | ctlr_add_gr(int baddr, unsigned char gr) |
2442 | { | 2442 | { |
2443 | - if (ea_buf[baddr].gr != gr) | 2443 | + if (h3270.ea_buf[baddr].gr != gr) |
2444 | { | 2444 | { |
2445 | - /* | ||
2446 | - if (SELECTED(baddr)) | ||
2447 | - unselect(baddr, 1); | ||
2448 | - */ | ||
2449 | - ea_buf[baddr].gr = gr; | 2445 | + h3270.ea_buf[baddr].gr = gr; |
2450 | if (gr & GR_BLINK) | 2446 | if (gr & GR_BLINK) |
2451 | blink_start(); | 2447 | blink_start(); |
2452 | ONE_CHANGED(baddr); | 2448 | ONE_CHANGED(baddr); |
@@ -2463,13 +2459,9 @@ ctlr_add_fg(int baddr, unsigned char color) | @@ -2463,13 +2459,9 @@ ctlr_add_fg(int baddr, unsigned char color) | ||
2463 | return; | 2459 | return; |
2464 | if ((color & 0xf0) != 0xf0) | 2460 | if ((color & 0xf0) != 0xf0) |
2465 | color = 0; | 2461 | color = 0; |
2466 | - if (ea_buf[baddr].fg != color) | 2462 | + if (h3270.ea_buf[baddr].fg != color) |
2467 | { | 2463 | { |
2468 | - /* | ||
2469 | - if (SELECTED(baddr)) | ||
2470 | - unselect(baddr, 1); | ||
2471 | - */ | ||
2472 | - ea_buf[baddr].fg = color; | 2464 | + h3270.ea_buf[baddr].fg = color; |
2473 | ONE_CHANGED(baddr); | 2465 | ONE_CHANGED(baddr); |
2474 | } | 2466 | } |
2475 | } | 2467 | } |
@@ -2484,13 +2476,9 @@ ctlr_add_bg(int baddr, unsigned char color) | @@ -2484,13 +2476,9 @@ ctlr_add_bg(int baddr, unsigned char color) | ||
2484 | return; | 2476 | return; |
2485 | if ((color & 0xf0) != 0xf0) | 2477 | if ((color & 0xf0) != 0xf0) |
2486 | color = 0; | 2478 | color = 0; |
2487 | - if (ea_buf[baddr].bg != color) | 2479 | + if (h3270.ea_buf[baddr].bg != color) |
2488 | { | 2480 | { |
2489 | - /* | ||
2490 | - if (SELECTED(baddr)) | ||
2491 | - unselect(baddr, 1); | ||
2492 | - */ | ||
2493 | - ea_buf[baddr].bg = color; | 2481 | + h3270.ea_buf[baddr].bg = color; |
2494 | ONE_CHANGED(baddr); | 2482 | ONE_CHANGED(baddr); |
2495 | } | 2483 | } |
2496 | } | 2484 | } |
@@ -2501,7 +2489,7 @@ ctlr_add_bg(int baddr, unsigned char color) | @@ -2501,7 +2489,7 @@ ctlr_add_bg(int baddr, unsigned char color) | ||
2501 | static void | 2489 | static void |
2502 | ctlr_add_ic(int baddr, unsigned char ic) | 2490 | ctlr_add_ic(int baddr, unsigned char ic) |
2503 | { | 2491 | { |
2504 | - ea_buf[baddr].ic = ic; | 2492 | + h3270.ea_buf[baddr].ic = ic; |
2505 | } | 2493 | } |
2506 | 2494 | ||
2507 | /* | 2495 | /* |
@@ -2548,21 +2536,12 @@ void | @@ -2548,21 +2536,12 @@ void | ||
2548 | ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea) | 2536 | ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea) |
2549 | { | 2537 | { |
2550 | /* Move the characters. */ | 2538 | /* Move the characters. */ |
2551 | - if (memcmp((char *) &ea_buf[baddr_from], | ||
2552 | - (char *) &ea_buf[baddr_to], | 2539 | + if (memcmp((char *) &h3270.ea_buf[baddr_from], |
2540 | + (char *) &h3270.ea_buf[baddr_to], | ||
2553 | count * sizeof(struct ea))) { | 2541 | count * sizeof(struct ea))) { |
2554 | - (void) memmove(&ea_buf[baddr_to], &ea_buf[baddr_from], | 2542 | + (void) memmove(&h3270.ea_buf[baddr_to], &h3270.ea_buf[baddr_from], |
2555 | count * sizeof(struct ea)); | 2543 | count * sizeof(struct ea)); |
2556 | REGION_CHANGED(baddr_to, baddr_to + count); | 2544 | REGION_CHANGED(baddr_to, baddr_to + count); |
2557 | - /* | ||
2558 | - * For the time being, if any selected text shifts around on | ||
2559 | - * the screen, unhighlight it. Eventually there should be | ||
2560 | - * logic for preserving the highlight if the *all* of the | ||
2561 | - * selected text moves. | ||
2562 | - */ /* | ||
2563 | - if (area_is_selected(baddr_to, count)) | ||
2564 | - unselect(baddr_to, count); | ||
2565 | - */ | ||
2566 | } | 2545 | } |
2567 | /* XXX: What about move_ea? */ | 2546 | /* XXX: What about move_ea? */ |
2568 | } | 2547 | } |
@@ -2575,15 +2554,11 @@ ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea) | @@ -2575,15 +2554,11 @@ ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea) | ||
2575 | void | 2554 | void |
2576 | ctlr_aclear(int baddr, int count, int clear_ea) | 2555 | ctlr_aclear(int baddr, int count, int clear_ea) |
2577 | { | 2556 | { |
2578 | - if (memcmp((char *) &ea_buf[baddr], (char *) zero_buf, | 2557 | + if (memcmp((char *) &h3270.ea_buf[baddr], (char *) zero_buf, |
2579 | count * sizeof(struct ea))) { | 2558 | count * sizeof(struct ea))) { |
2580 | - (void) memset((char *) &ea_buf[baddr], 0, | 2559 | + (void) memset((char *) &h3270.ea_buf[baddr], 0, |
2581 | count * sizeof(struct ea)); | 2560 | count * sizeof(struct ea)); |
2582 | REGION_CHANGED(baddr, baddr + count); | 2561 | REGION_CHANGED(baddr, baddr + count); |
2583 | - /* | ||
2584 | - if (area_is_selected(baddr, count)) | ||
2585 | - unselect(baddr, count); | ||
2586 | - */ | ||
2587 | } | 2562 | } |
2588 | /* XXX: What about clear_ea? */ | 2563 | /* XXX: What about clear_ea? */ |
2589 | } | 2564 | } |
@@ -2604,10 +2579,10 @@ void ctlr_scroll(void) | @@ -2604,10 +2579,10 @@ void ctlr_scroll(void) | ||
2604 | /* Synchronize pending changes prior to this. */ | 2579 | /* Synchronize pending changes prior to this. */ |
2605 | 2580 | ||
2606 | /* Move ea_buf. */ | 2581 | /* Move ea_buf. */ |
2607 | - (void) memmove(&ea_buf[0], &ea_buf[h3270.cols],qty * sizeof(struct ea)); | 2582 | + (void) memmove(&h3270.ea_buf[0], &h3270.ea_buf[h3270.cols],qty * sizeof(struct ea)); |
2608 | 2583 | ||
2609 | /* Clear the last line. */ | 2584 | /* Clear the last line. */ |
2610 | - (void) memset((char *) &ea_buf[qty], 0, h3270.cols * sizeof(struct ea)); | 2585 | + (void) memset((char *) &h3270.ea_buf[qty], 0, h3270.cols * sizeof(struct ea)); |
2611 | 2586 | ||
2612 | screen_disp(&h3270); | 2587 | screen_disp(&h3270); |
2613 | 2588 | ||
@@ -2646,8 +2621,8 @@ void ctlr_altbuffer(H3270 *session, int alt) | @@ -2646,8 +2621,8 @@ void ctlr_altbuffer(H3270 *session, int alt) | ||
2646 | if (alt != session->is_altbuffer) | 2621 | if (alt != session->is_altbuffer) |
2647 | { | 2622 | { |
2648 | 2623 | ||
2649 | - etmp = ea_buf; | ||
2650 | - ea_buf = aea_buf; | 2624 | + etmp = session->ea_buf; |
2625 | + session->ea_buf = aea_buf; | ||
2651 | aea_buf = etmp; | 2626 | aea_buf = etmp; |
2652 | 2627 | ||
2653 | session->is_altbuffer = alt; | 2628 | session->is_altbuffer = alt; |
@@ -2672,8 +2647,8 @@ mdt_set(int baddr) | @@ -2672,8 +2647,8 @@ mdt_set(int baddr) | ||
2672 | int faddr; | 2647 | int faddr; |
2673 | 2648 | ||
2674 | faddr = find_field_attribute(&h3270,baddr); | 2649 | faddr = find_field_attribute(&h3270,baddr); |
2675 | - if (faddr >= 0 && !(ea_buf[faddr].fa & FA_MODIFY)) { | ||
2676 | - ea_buf[faddr].fa |= FA_MODIFY; | 2650 | + if (faddr >= 0 && !(h3270.ea_buf[faddr].fa & FA_MODIFY)) { |
2651 | + h3270.ea_buf[faddr].fa |= FA_MODIFY; | ||
2677 | if (appres.modified_sel) | 2652 | if (appres.modified_sel) |
2678 | ALL_CHANGED; | 2653 | ALL_CHANGED; |
2679 | } | 2654 | } |
@@ -2685,8 +2660,8 @@ mdt_clear(int baddr) | @@ -2685,8 +2660,8 @@ mdt_clear(int baddr) | ||
2685 | int faddr; | 2660 | int faddr; |
2686 | 2661 | ||
2687 | faddr = find_field_attribute(&h3270,baddr); | 2662 | faddr = find_field_attribute(&h3270,baddr); |
2688 | - if (faddr >= 0 && (ea_buf[faddr].fa & FA_MODIFY)) { | ||
2689 | - ea_buf[faddr].fa &= ~FA_MODIFY; | 2663 | + if (faddr >= 0 && (h3270.ea_buf[faddr].fa & FA_MODIFY)) { |
2664 | + h3270.ea_buf[faddr].fa &= ~FA_MODIFY; | ||
2690 | if (appres.modified_sel) | 2665 | if (appres.modified_sel) |
2691 | ALL_CHANGED; | 2666 | ALL_CHANGED; |
2692 | } | 2667 | } |
@@ -2702,9 +2677,8 @@ ctlr_shrink(void) | @@ -2702,9 +2677,8 @@ ctlr_shrink(void) | ||
2702 | int baddr; | 2677 | int baddr; |
2703 | 2678 | ||
2704 | for (baddr = 0; baddr < h3270.rows*h3270.cols; baddr++) { | 2679 | for (baddr = 0; baddr < h3270.rows*h3270.cols; baddr++) { |
2705 | - if (!ea_buf[baddr].fa) | ||
2706 | - ea_buf[baddr].cc = | ||
2707 | - visible_control? EBC_space : EBC_null; | 2680 | + if (!h3270.ea_buf[baddr].fa) |
2681 | + h3270.ea_buf[baddr].cc = visible_control? EBC_space : EBC_null; | ||
2708 | } | 2682 | } |
2709 | ALL_CHANGED; | 2683 | ALL_CHANGED; |
2710 | screen_disp(&h3270); | 2684 | screen_disp(&h3270); |
src/lib3270/ft_cut.c
@@ -276,7 +276,7 @@ download_convert(unsigned const char *buf, unsigned len, unsigned char *xobuf) | @@ -276,7 +276,7 @@ download_convert(unsigned const char *buf, unsigned len, unsigned char *xobuf) | ||
276 | void | 276 | void |
277 | ft_cut_data(void) | 277 | ft_cut_data(void) |
278 | { | 278 | { |
279 | - switch (ea_buf[O_FRAME_TYPE].cc) { | 279 | + switch (h3270.ea_buf[O_FRAME_TYPE].cc) { |
280 | case FT_CONTROL_CODE: | 280 | case FT_CONTROL_CODE: |
281 | cut_control_code(); | 281 | cut_control_code(); |
282 | break; | 282 | break; |
@@ -308,8 +308,7 @@ cut_control_code(void) | @@ -308,8 +308,7 @@ cut_control_code(void) | ||
308 | int i; | 308 | int i; |
309 | 309 | ||
310 | trace_ds("< FT CONTROL_CODE "); | 310 | trace_ds("< FT CONTROL_CODE "); |
311 | - code = (ea_buf[O_CC_STATUS_CODE].cc << 8) | | ||
312 | - ea_buf[O_CC_STATUS_CODE + 1].cc; | 311 | + code = (h3270.ea_buf[O_CC_STATUS_CODE].cc << 8) | h3270.ea_buf[O_CC_STATUS_CODE + 1].cc; |
313 | switch (code) { | 312 | switch (code) { |
314 | case SC_HOST_ACK: | 313 | case SC_HOST_ACK: |
315 | trace_ds("HOST_ACK\n"); | 314 | trace_ds("HOST_ACK\n"); |
@@ -338,7 +337,7 @@ cut_control_code(void) | @@ -338,7 +337,7 @@ cut_control_code(void) | ||
338 | } else { | 337 | } else { |
339 | bp = buf = Malloc(81); | 338 | bp = buf = Malloc(81); |
340 | for (i = 0; i < 80; i++) | 339 | for (i = 0; i < 80; i++) |
341 | - *bp++ = ebc2asc[ea_buf[O_CC_MESSAGE + i].cc]; | 340 | + *bp++ = ebc2asc[h3270.ea_buf[O_CC_MESSAGE + i].cc]; |
342 | *bp-- = '\0'; | 341 | *bp-- = '\0'; |
343 | while (bp >= buf && *bp == ' ') | 342 | while (bp >= buf && *bp == ' ') |
344 | *bp-- = '\0'; | 343 | *bp-- = '\0'; |
@@ -365,7 +364,7 @@ cut_control_code(void) | @@ -365,7 +364,7 @@ cut_control_code(void) | ||
365 | static void | 364 | static void |
366 | cut_data_request(void) | 365 | cut_data_request(void) |
367 | { | 366 | { |
368 | - unsigned char seq = ea_buf[O_DR_FRAME_SEQ].cc; | 367 | + unsigned char seq = h3270.ea_buf[O_DR_FRAME_SEQ].cc; |
369 | int count; | 368 | int count; |
370 | unsigned char cs; | 369 | unsigned char cs; |
371 | int c; | 370 | int c; |
@@ -413,13 +412,13 @@ cut_data_request(void) | @@ -413,13 +412,13 @@ cut_data_request(void) | ||
413 | ctlr_add(O_UP_FRAME_SEQ, seq, 0); | 412 | ctlr_add(O_UP_FRAME_SEQ, seq, 0); |
414 | cs = 0; | 413 | cs = 0; |
415 | for (i = 0; i < count; i++) | 414 | for (i = 0; i < count; i++) |
416 | - cs ^= ea_buf[O_UP_DATA + i].cc; | 415 | + cs ^= h3270.ea_buf[O_UP_DATA + i].cc; |
417 | ctlr_add(O_UP_CSUM, asc2ebc[(int)table6[cs & 0x3f]], 0); | 416 | ctlr_add(O_UP_CSUM, asc2ebc[(int)table6[cs & 0x3f]], 0); |
418 | ctlr_add(O_UP_LEN, asc2ebc[(int)table6[(count >> 6) & 0x3f]], 0); | 417 | ctlr_add(O_UP_LEN, asc2ebc[(int)table6[(count >> 6) & 0x3f]], 0); |
419 | ctlr_add(O_UP_LEN+1, asc2ebc[(int)table6[count & 0x3f]], 0); | 418 | ctlr_add(O_UP_LEN+1, asc2ebc[(int)table6[count & 0x3f]], 0); |
420 | 419 | ||
421 | /* XXX: Change the data field attribute so it doesn't display. */ | 420 | /* XXX: Change the data field attribute so it doesn't display. */ |
422 | - attr = ea_buf[O_DR_SF].fa; | 421 | + attr = h3270.ea_buf[O_DR_SF].fa; |
423 | attr = (attr & ~FA_INTENSITY) | FA_INT_ZERO_NSEL; | 422 | attr = (attr & ~FA_INTENSITY) | FA_INT_ZERO_NSEL; |
424 | ctlr_add_fa(O_DR_SF, attr, 0); | 423 | ctlr_add_fa(O_DR_SF, attr, 0); |
425 | 424 | ||
@@ -474,14 +473,14 @@ cut_data(void) | @@ -474,14 +473,14 @@ cut_data(void) | ||
474 | } | 473 | } |
475 | 474 | ||
476 | /* Copy and convert the data. */ | 475 | /* Copy and convert the data. */ |
477 | - raw_length = from6(ea_buf[O_DT_LEN].cc) << 6 | | ||
478 | - from6(ea_buf[O_DT_LEN + 1].cc); | 476 | + raw_length = from6(h3270.ea_buf[O_DT_LEN].cc) << 6 | |
477 | + from6(h3270.ea_buf[O_DT_LEN + 1].cc); | ||
479 | if ((int)raw_length > O_RESPONSE - O_DT_DATA) { | 478 | if ((int)raw_length > O_RESPONSE - O_DT_DATA) { |
480 | cut_abort(MSG_("ftCutOversize","Illegal frame length"), SC_ABORT_XMIT); | 479 | cut_abort(MSG_("ftCutOversize","Illegal frame length"), SC_ABORT_XMIT); |
481 | return; | 480 | return; |
482 | } | 481 | } |
483 | for (i = 0; i < (int)raw_length; i++) | 482 | for (i = 0; i < (int)raw_length; i++) |
484 | - cvbuf[i] = ea_buf[O_DT_DATA + i].cc; | 483 | + cvbuf[i] = h3270.ea_buf[O_DT_DATA + i].cc; |
485 | 484 | ||
486 | if (raw_length == 2 && cvbuf[0] == EOF_DATA1 && cvbuf[1] == EOF_DATA2) { | 485 | if (raw_length == 2 && cvbuf[0] == EOF_DATA1 && cvbuf[1] == EOF_DATA2) { |
487 | trace_ds("< FT EOF\n"); | 486 | trace_ds("< FT EOF\n"); |
@@ -527,7 +526,7 @@ cut_abort(const char *s, unsigned short reason) | @@ -527,7 +526,7 @@ cut_abort(const char *s, unsigned short reason) | ||
527 | 526 | ||
528 | /* Send the abort sequence. */ | 527 | /* Send the abort sequence. */ |
529 | ctlr_add(RO_FRAME_TYPE, RFT_CONTROL_CODE, 0); | 528 | ctlr_add(RO_FRAME_TYPE, RFT_CONTROL_CODE, 0); |
530 | - ctlr_add(RO_FRAME_SEQ, ea_buf[O_DT_FRAME_SEQ].cc, 0); | 529 | + ctlr_add(RO_FRAME_SEQ, h3270.ea_buf[O_DT_FRAME_SEQ].cc, 0); |
531 | ctlr_add(RO_REASON_CODE, HIGH8(reason), 0); | 530 | ctlr_add(RO_REASON_CODE, HIGH8(reason), 0); |
532 | ctlr_add(RO_REASON_CODE+1, LOW8(reason), 0); | 531 | ctlr_add(RO_REASON_CODE+1, LOW8(reason), 0); |
533 | trace_ds("> FT CONTROL_CODE ABORT\n"); | 532 | trace_ds("> FT CONTROL_CODE ABORT\n"); |
src/lib3270/kybd.c
@@ -639,7 +639,7 @@ static Boolean ins_prep(int faddr, int baddr, int count) | @@ -639,7 +639,7 @@ static Boolean ins_prep(int faddr, int baddr, int count) | ||
639 | } else { | 639 | } else { |
640 | next_faddr = faddr; | 640 | next_faddr = faddr; |
641 | INC_BA(next_faddr); | 641 | INC_BA(next_faddr); |
642 | - while (next_faddr != faddr && !ea_buf[next_faddr].fa) { | 642 | + while (next_faddr != faddr && !h3270.ea_buf[next_faddr].fa) { |
643 | INC_BA(next_faddr); | 643 | INC_BA(next_faddr); |
644 | } | 644 | } |
645 | } | 645 | } |
@@ -649,11 +649,11 @@ static Boolean ins_prep(int faddr, int baddr, int count) | @@ -649,11 +649,11 @@ static Boolean ins_prep(int faddr, int baddr, int count) | ||
649 | need = count; | 649 | need = count; |
650 | ntb = 0; | 650 | ntb = 0; |
651 | while (need && (xaddr != next_faddr)) { | 651 | while (need && (xaddr != next_faddr)) { |
652 | - if (ea_buf[xaddr].cc == EBC_null) | 652 | + if (h3270.ea_buf[xaddr].cc == EBC_null) |
653 | need--; | 653 | need--; |
654 | else if (toggled(LIB3270_TOGGLE_BLANK_FILL) && | 654 | else if (toggled(LIB3270_TOGGLE_BLANK_FILL) && |
655 | - ((ea_buf[xaddr].cc == EBC_space) || | ||
656 | - (ea_buf[xaddr].cc == EBC_underscore))) { | 655 | + ((h3270.ea_buf[xaddr].cc == EBC_space) || |
656 | + (h3270.ea_buf[xaddr].cc == EBC_underscore))) { | ||
657 | if (tb_start == -1) | 657 | if (tb_start == -1) |
658 | tb_start = xaddr; | 658 | tb_start = xaddr; |
659 | ntb++; | 659 | ntb++; |
@@ -682,7 +682,7 @@ static Boolean ins_prep(int faddr, int baddr, int count) | @@ -682,7 +682,7 @@ static Boolean ins_prep(int faddr, int baddr, int count) | ||
682 | int first_null = -1; | 682 | int first_null = -1; |
683 | 683 | ||
684 | while (need && | 684 | while (need && |
685 | - ((ea_buf[xaddr].cc == EBC_null) || | 685 | + ((h3270.ea_buf[xaddr].cc == EBC_null) || |
686 | (tb_start >= 0 && xaddr >= tb_start))) { | 686 | (tb_start >= 0 && xaddr >= tb_start))) { |
687 | need--; | 687 | need--; |
688 | n_nulls++; | 688 | n_nulls++; |
@@ -768,7 +768,7 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) | @@ -768,7 +768,7 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) | ||
768 | baddr = h3270.cursor_addr; | 768 | baddr = h3270.cursor_addr; |
769 | faddr = find_field_attribute(&h3270,baddr); | 769 | faddr = find_field_attribute(&h3270,baddr); |
770 | fa = get_field_attribute(&h3270,baddr); | 770 | fa = get_field_attribute(&h3270,baddr); |
771 | - if (ea_buf[baddr].fa || FA_IS_PROTECTED(fa)) { | 771 | + if (h3270.ea_buf[baddr].fa || FA_IS_PROTECTED(fa)) { |
772 | operator_error(KL_OERR_PROTECTED); | 772 | operator_error(KL_OERR_PROTECTED); |
773 | return False; | 773 | return False; |
774 | } | 774 | } |
@@ -780,13 +780,13 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) | @@ -780,13 +780,13 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) | ||
780 | } | 780 | } |
781 | 781 | ||
782 | /* Can't put an SBCS in a DBCS field. */ | 782 | /* Can't put an SBCS in a DBCS field. */ |
783 | - if (ea_buf[faddr].cs == CS_DBCS) { | 783 | + if (h3270.ea_buf[faddr].cs == CS_DBCS) { |
784 | operator_error(KL_OERR_DBCS); | 784 | operator_error(KL_OERR_DBCS); |
785 | return False; | 785 | return False; |
786 | } | 786 | } |
787 | 787 | ||
788 | /* If it's an SI (end of DBCS subfield), move over one position. */ | 788 | /* If it's an SI (end of DBCS subfield), move over one position. */ |
789 | - if (ea_buf[baddr].cc == EBC_si) { | 789 | + if (h3270.ea_buf[baddr].cc == EBC_si) { |
790 | INC_BA(baddr); | 790 | INC_BA(baddr); |
791 | if (baddr == faddr) { | 791 | if (baddr == faddr) { |
792 | operator_error(KL_OERR_OVERFLOW); | 792 | operator_error(KL_OERR_OVERFLOW); |
@@ -795,7 +795,7 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) | @@ -795,7 +795,7 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) | ||
795 | } | 795 | } |
796 | 796 | ||
797 | /* Add the character. */ | 797 | /* Add the character. */ |
798 | - if (ea_buf[baddr].cc == EBC_so) { | 798 | + if (h3270.ea_buf[baddr].cc == EBC_so) { |
799 | 799 | ||
800 | if (toggled(INSERT)) { | 800 | if (toggled(INSERT)) { |
801 | if (!ins_prep(faddr, baddr, 1)) | 801 | if (!ins_prep(faddr, baddr, 1)) |
@@ -812,7 +812,7 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) | @@ -812,7 +812,7 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) | ||
812 | */ | 812 | */ |
813 | xaddr = baddr; | 813 | xaddr = baddr; |
814 | INC_BA(xaddr); | 814 | INC_BA(xaddr); |
815 | - was_si = (ea_buf[xaddr].cc == EBC_si); | 815 | + was_si = (h3270.ea_buf[xaddr].cc == EBC_si); |
816 | ctlr_add(xaddr, EBC_space, CS_BASE); | 816 | ctlr_add(xaddr, EBC_space, CS_BASE); |
817 | ctlr_add_fg(xaddr, 0); | 817 | ctlr_add_fg(xaddr, 0); |
818 | #if defined(X3270_ANSI) /*[*/ | 818 | #if defined(X3270_ANSI) /*[*/ |
@@ -935,7 +935,7 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) | @@ -935,7 +935,7 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) | ||
935 | * for NULLs. | 935 | * for NULLs. |
936 | */ | 936 | */ |
937 | while (baddr_scan != faddr) { | 937 | while (baddr_scan != faddr) { |
938 | - if (ea_buf[baddr_scan].cc != EBC_null) { | 938 | + if (h3270.ea_buf[baddr_scan].cc != EBC_null) { |
939 | aborted = False; | 939 | aborted = False; |
940 | break; | 940 | break; |
941 | } | 941 | } |
@@ -947,7 +947,7 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) | @@ -947,7 +947,7 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) | ||
947 | break; | 947 | break; |
948 | } | 948 | } |
949 | 949 | ||
950 | - if (ea_buf[baddr_fill].cc == EBC_null) | 950 | + if (h3270.ea_buf[baddr_fill].cc == EBC_null) |
951 | ctlr_add(baddr_fill, EBC_space, 0); | 951 | ctlr_add(baddr_fill, EBC_space, 0); |
952 | DEC_BA(baddr_fill); | 952 | DEC_BA(baddr_fill); |
953 | } | 953 | } |
@@ -961,10 +961,10 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) | @@ -961,10 +961,10 @@ key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) | ||
961 | * keyboard-generated data except DUP. | 961 | * keyboard-generated data except DUP. |
962 | */ | 962 | */ |
963 | if (pasting || (code != EBC_dup)) { | 963 | if (pasting || (code != EBC_dup)) { |
964 | - while (ea_buf[baddr].fa) { | 964 | + while (h3270.ea_buf[baddr].fa) { |
965 | if (skipped != NULL) | 965 | if (skipped != NULL) |
966 | *skipped = True; | 966 | *skipped = True; |
967 | - if (FA_IS_SKIP(ea_buf[baddr].fa)) | 967 | + if (FA_IS_SKIP(h3270.ea_buf[baddr].fa)) |
968 | baddr = next_unprotected(baddr); | 968 | baddr = next_unprotected(baddr); |
969 | else | 969 | else |
970 | INC_BA(baddr); | 970 | INC_BA(baddr); |
@@ -1463,15 +1463,15 @@ LIB3270_KEY_ACTION( backtab ) | @@ -1463,15 +1463,15 @@ LIB3270_KEY_ACTION( backtab ) | ||
1463 | return 0; | 1463 | return 0; |
1464 | baddr = h3270.cursor_addr; | 1464 | baddr = h3270.cursor_addr; |
1465 | DEC_BA(baddr); | 1465 | DEC_BA(baddr); |
1466 | - if (ea_buf[baddr].fa) /* at bof */ | 1466 | + if (h3270.ea_buf[baddr].fa) /* at bof */ |
1467 | DEC_BA(baddr); | 1467 | DEC_BA(baddr); |
1468 | sbaddr = baddr; | 1468 | sbaddr = baddr; |
1469 | while (True) { | 1469 | while (True) { |
1470 | nbaddr = baddr; | 1470 | nbaddr = baddr; |
1471 | INC_BA(nbaddr); | 1471 | INC_BA(nbaddr); |
1472 | - if (ea_buf[baddr].fa && | ||
1473 | - !FA_IS_PROTECTED(ea_buf[baddr].fa) && | ||
1474 | - !ea_buf[nbaddr].fa) | 1472 | + if (h3270.ea_buf[baddr].fa && |
1473 | + !FA_IS_PROTECTED(h3270.ea_buf[baddr].fa) && | ||
1474 | + !h3270.ea_buf[nbaddr].fa) | ||
1475 | break; | 1475 | break; |
1476 | DEC_BA(baddr); | 1476 | DEC_BA(baddr); |
1477 | if (baddr == sbaddr) { | 1477 | if (baddr == sbaddr) { |
@@ -1685,25 +1685,25 @@ do_delete(void) | @@ -1685,25 +1685,25 @@ do_delete(void) | ||
1685 | 1685 | ||
1686 | /* Can't delete a field attribute. */ | 1686 | /* Can't delete a field attribute. */ |
1687 | fa = get_field_attribute(&h3270,baddr); | 1687 | fa = get_field_attribute(&h3270,baddr); |
1688 | - if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { | 1688 | + if (FA_IS_PROTECTED(fa) || h3270.ea_buf[baddr].fa) { |
1689 | operator_error(KL_OERR_PROTECTED); | 1689 | operator_error(KL_OERR_PROTECTED); |
1690 | return False; | 1690 | return False; |
1691 | } | 1691 | } |
1692 | - if (ea_buf[baddr].cc == EBC_so || ea_buf[baddr].cc == EBC_si) { | 1692 | + if (h3270.ea_buf[baddr].cc == EBC_so || h3270.ea_buf[baddr].cc == EBC_si) { |
1693 | /* | 1693 | /* |
1694 | * Can't delete SO or SI, unless it's adjacent to its | 1694 | * Can't delete SO or SI, unless it's adjacent to its |
1695 | * opposite. | 1695 | * opposite. |
1696 | */ | 1696 | */ |
1697 | xaddr = baddr; | 1697 | xaddr = baddr; |
1698 | INC_BA(xaddr); | 1698 | INC_BA(xaddr); |
1699 | - if (ea_buf[xaddr].cc == SOSI(ea_buf[baddr].cc)) { | 1699 | + if (h3270.ea_buf[xaddr].cc == SOSI(h3270.ea_buf[baddr].cc)) { |
1700 | ndel = 2; | 1700 | ndel = 2; |
1701 | } else { | 1701 | } else { |
1702 | operator_error(KL_OERR_PROTECTED); | 1702 | operator_error(KL_OERR_PROTECTED); |
1703 | return False; | 1703 | return False; |
1704 | } | 1704 | } |
1705 | - } else if (IS_DBCS(ea_buf[baddr].db)) { | ||
1706 | - if (IS_RIGHT(ea_buf[baddr].db)) | 1705 | + } else if (IS_DBCS(h3270.ea_buf[baddr].db)) { |
1706 | + if (IS_RIGHT(h3270.ea_buf[baddr].db)) | ||
1707 | DEC_BA(baddr); | 1707 | DEC_BA(baddr); |
1708 | ndel = 2; | 1708 | ndel = 2; |
1709 | } else | 1709 | } else |
@@ -1714,7 +1714,7 @@ do_delete(void) | @@ -1714,7 +1714,7 @@ do_delete(void) | ||
1714 | end_baddr = baddr; | 1714 | end_baddr = baddr; |
1715 | do { | 1715 | do { |
1716 | INC_BA(end_baddr); | 1716 | INC_BA(end_baddr); |
1717 | - if (ea_buf[end_baddr].fa) | 1717 | + if (h3270.ea_buf[end_baddr].fa) |
1718 | break; | 1718 | break; |
1719 | } while (end_baddr != baddr); | 1719 | } while (end_baddr != baddr); |
1720 | DEC_BA(end_baddr); | 1720 | DEC_BA(end_baddr); |
@@ -1768,7 +1768,7 @@ LIB3270_ACTION( delete ) | @@ -1768,7 +1768,7 @@ LIB3270_ACTION( delete ) | ||
1768 | int baddr = hSession->cursor_addr; | 1768 | int baddr = hSession->cursor_addr; |
1769 | 1769 | ||
1770 | DEC_BA(baddr); | 1770 | DEC_BA(baddr); |
1771 | - if (!ea_buf[baddr].fa) | 1771 | + if (!hSession->ea_buf[baddr].fa) |
1772 | cursor_move(baddr); | 1772 | cursor_move(baddr); |
1773 | } | 1773 | } |
1774 | screen_disp(hSession); | 1774 | screen_disp(hSession); |
@@ -1819,7 +1819,7 @@ do_erase(void) | @@ -1819,7 +1819,7 @@ do_erase(void) | ||
1819 | 1819 | ||
1820 | baddr = h3270.cursor_addr; | 1820 | baddr = h3270.cursor_addr; |
1821 | faddr = find_field_attribute(&h3270,baddr); | 1821 | faddr = find_field_attribute(&h3270,baddr); |
1822 | - if (faddr == baddr || FA_IS_PROTECTED(ea_buf[baddr].fa)) { | 1822 | + if (faddr == baddr || FA_IS_PROTECTED(h3270.ea_buf[baddr].fa)) { |
1823 | operator_error(KL_OERR_PROTECTED); | 1823 | operator_error(KL_OERR_PROTECTED); |
1824 | return; | 1824 | return; |
1825 | } | 1825 | } |
@@ -1830,7 +1830,7 @@ do_erase(void) | @@ -1830,7 +1830,7 @@ do_erase(void) | ||
1830 | /* | 1830 | /* |
1831 | * If we are now on an SI, move left again. | 1831 | * If we are now on an SI, move left again. |
1832 | */ | 1832 | */ |
1833 | - if (ea_buf[h3270.cursor_addr].cc == EBC_si) { | 1833 | + if (h3270.ea_buf[h3270.cursor_addr].cc == EBC_si) { |
1834 | baddr = h3270.cursor_addr; | 1834 | baddr = h3270.cursor_addr; |
1835 | DEC_BA(baddr); | 1835 | DEC_BA(baddr); |
1836 | cursor_move(baddr); | 1836 | cursor_move(baddr); |
@@ -1861,7 +1861,7 @@ do_erase(void) | @@ -1861,7 +1861,7 @@ do_erase(void) | ||
1861 | */ | 1861 | */ |
1862 | baddr = h3270.cursor_addr; | 1862 | baddr = h3270.cursor_addr; |
1863 | DEC_BA(baddr); | 1863 | DEC_BA(baddr); |
1864 | - if (ea_buf[baddr].cc == EBC_so && ea_buf[h3270.cursor_addr].cc == EBC_si) { | 1864 | + if (h3270.ea_buf[baddr].cc == EBC_so && h3270.ea_buf[h3270.cursor_addr].cc == EBC_si) { |
1865 | cursor_move(baddr); | 1865 | cursor_move(baddr); |
1866 | (void) do_delete(); | 1866 | (void) do_delete(); |
1867 | } | 1867 | } |
@@ -1994,20 +1994,20 @@ LIB3270_ACTION( previousword ) | @@ -1994,20 +1994,20 @@ LIB3270_ACTION( previousword ) | ||
1994 | 1994 | ||
1995 | /* Skip to before this word, if in one now. */ | 1995 | /* Skip to before this word, if in one now. */ |
1996 | if (!prot) { | 1996 | if (!prot) { |
1997 | - c = ea_buf[baddr].cc; | ||
1998 | - while (!ea_buf[baddr].fa && c != EBC_space && c != EBC_null) { | 1997 | + c = h3270.ea_buf[baddr].cc; |
1998 | + while (!h3270.ea_buf[baddr].fa && c != EBC_space && c != EBC_null) { | ||
1999 | DEC_BA(baddr); | 1999 | DEC_BA(baddr); |
2000 | if (baddr == h3270.cursor_addr) | 2000 | if (baddr == h3270.cursor_addr) |
2001 | return 0; | 2001 | return 0; |
2002 | - c = ea_buf[baddr].cc; | 2002 | + c = h3270.ea_buf[baddr].cc; |
2003 | } | 2003 | } |
2004 | } | 2004 | } |
2005 | baddr0 = baddr; | 2005 | baddr0 = baddr; |
2006 | 2006 | ||
2007 | /* Find the end of the preceding word. */ | 2007 | /* Find the end of the preceding word. */ |
2008 | do { | 2008 | do { |
2009 | - c = ea_buf[baddr].cc; | ||
2010 | - if (ea_buf[baddr].fa) { | 2009 | + c = h3270.ea_buf[baddr].cc; |
2010 | + if (h3270.ea_buf[baddr].fa) { | ||
2011 | DEC_BA(baddr); | 2011 | DEC_BA(baddr); |
2012 | prot = FA_IS_PROTECTED(get_field_attribute(&h3270,baddr)); | 2012 | prot = FA_IS_PROTECTED(get_field_attribute(&h3270,baddr)); |
2013 | continue; | 2013 | continue; |
@@ -2023,8 +2023,8 @@ LIB3270_ACTION( previousword ) | @@ -2023,8 +2023,8 @@ LIB3270_ACTION( previousword ) | ||
2023 | /* Go it its front. */ | 2023 | /* Go it its front. */ |
2024 | for (;;) { | 2024 | for (;;) { |
2025 | DEC_BA(baddr); | 2025 | DEC_BA(baddr); |
2026 | - c = ea_buf[baddr].cc; | ||
2027 | - if (ea_buf[baddr].fa || c == EBC_space || c == EBC_null) { | 2026 | + c = h3270.ea_buf[baddr].cc; |
2027 | + if (h3270.ea_buf[baddr].fa || c == EBC_space || c == EBC_null) { | ||
2028 | break; | 2028 | break; |
2029 | } | 2029 | } |
2030 | } | 2030 | } |
@@ -2082,9 +2082,9 @@ nu_word(int baddr) | @@ -2082,9 +2082,9 @@ nu_word(int baddr) | ||
2082 | prot = FA_IS_PROTECTED(get_field_attribute(&h3270,baddr)); | 2082 | prot = FA_IS_PROTECTED(get_field_attribute(&h3270,baddr)); |
2083 | 2083 | ||
2084 | do { | 2084 | do { |
2085 | - c = ea_buf[baddr].cc; | ||
2086 | - if (ea_buf[baddr].fa) | ||
2087 | - prot = FA_IS_PROTECTED(ea_buf[baddr].fa); | 2085 | + c = h3270.ea_buf[baddr].cc; |
2086 | + if (h3270.ea_buf[baddr].fa) | ||
2087 | + prot = FA_IS_PROTECTED(h3270.ea_buf[baddr].fa); | ||
2088 | else if (!prot && c != EBC_space && c != EBC_null) | 2088 | else if (!prot && c != EBC_space && c != EBC_null) |
2089 | return baddr; | 2089 | return baddr; |
2090 | INC_BA(baddr); | 2090 | INC_BA(baddr); |
@@ -2102,8 +2102,8 @@ nt_word(int baddr) | @@ -2102,8 +2102,8 @@ nt_word(int baddr) | ||
2102 | Boolean in_word = True; | 2102 | Boolean in_word = True; |
2103 | 2103 | ||
2104 | do { | 2104 | do { |
2105 | - c = ea_buf[baddr].cc; | ||
2106 | - if (ea_buf[baddr].fa) | 2105 | + c = h3270.ea_buf[baddr].cc; |
2106 | + if (h3270.ea_buf[baddr].fa) | ||
2107 | return -1; | 2107 | return -1; |
2108 | if (in_word) { | 2108 | if (in_word) { |
2109 | if (c == EBC_space || c == EBC_null) | 2109 | if (c == EBC_space || c == EBC_null) |
@@ -2141,7 +2141,7 @@ LIB3270_ACTION( nextword ) | @@ -2141,7 +2141,7 @@ LIB3270_ACTION( nextword ) | ||
2141 | return 0; | 2141 | return 0; |
2142 | 2142 | ||
2143 | /* If not in an unprotected field, go to the next unprotected word. */ | 2143 | /* If not in an unprotected field, go to the next unprotected word. */ |
2144 | - if (ea_buf[h3270.cursor_addr].fa || | 2144 | + if (h3270.ea_buf[h3270.cursor_addr].fa || |
2145 | FA_IS_PROTECTED(get_field_attribute(&h3270,h3270.cursor_addr))) { | 2145 | FA_IS_PROTECTED(get_field_attribute(&h3270,h3270.cursor_addr))) { |
2146 | baddr = nu_word(h3270.cursor_addr); | 2146 | baddr = nu_word(h3270.cursor_addr); |
2147 | if (baddr != -1) | 2147 | if (baddr != -1) |
@@ -2157,15 +2157,15 @@ LIB3270_ACTION( nextword ) | @@ -2157,15 +2157,15 @@ LIB3270_ACTION( nextword ) | ||
2157 | } | 2157 | } |
2158 | 2158 | ||
2159 | /* If in a word, go to just after its end. */ | 2159 | /* If in a word, go to just after its end. */ |
2160 | - c = ea_buf[h3270.cursor_addr].cc; | 2160 | + c = h3270.ea_buf[h3270.cursor_addr].cc; |
2161 | if (c != EBC_space && c != EBC_null) { | 2161 | if (c != EBC_space && c != EBC_null) { |
2162 | baddr = h3270.cursor_addr; | 2162 | baddr = h3270.cursor_addr; |
2163 | do { | 2163 | do { |
2164 | - c = ea_buf[baddr].cc; | 2164 | + c = h3270.ea_buf[baddr].cc; |
2165 | if (c == EBC_space || c == EBC_null) { | 2165 | if (c == EBC_space || c == EBC_null) { |
2166 | cursor_move(baddr); | 2166 | cursor_move(baddr); |
2167 | return 0; | 2167 | return 0; |
2168 | - } else if (ea_buf[baddr].fa) { | 2168 | + } else if (h3270.ea_buf[baddr].fa) { |
2169 | baddr = nu_word(baddr); | 2169 | baddr = nu_word(baddr); |
2170 | if (baddr != -1) | 2170 | if (baddr != -1) |
2171 | cursor_move(baddr); | 2171 | cursor_move(baddr); |
@@ -2304,7 +2304,7 @@ LIB3270_CURSOR_ACTION( newline ) | @@ -2304,7 +2304,7 @@ LIB3270_CURSOR_ACTION( newline ) | ||
2304 | baddr = (h3270.cursor_addr + h3270.cols) % (h3270.cols * h3270.rows); /* down */ | 2304 | baddr = (h3270.cursor_addr + h3270.cols) % (h3270.cols * h3270.rows); /* down */ |
2305 | baddr = (baddr / h3270.cols) * h3270.cols; /* 1st col */ | 2305 | baddr = (baddr / h3270.cols) * h3270.cols; /* 1st col */ |
2306 | faddr = find_field_attribute(&h3270,baddr); | 2306 | faddr = find_field_attribute(&h3270,baddr); |
2307 | - fa = ea_buf[faddr].fa; | 2307 | + fa = h3270.ea_buf[faddr].fa; |
2308 | if (faddr != baddr && !FA_IS_PROTECTED(fa)) | 2308 | if (faddr != baddr && !FA_IS_PROTECTED(fa)) |
2309 | cursor_move(baddr); | 2309 | cursor_move(baddr); |
2310 | else | 2310 | else |
@@ -2559,7 +2559,7 @@ LIB3270_ACTION( eraseeol ) | @@ -2559,7 +2559,7 @@ LIB3270_ACTION( eraseeol ) | ||
2559 | 2559 | ||
2560 | baddr = h3270.cursor_addr; | 2560 | baddr = h3270.cursor_addr; |
2561 | fa = get_field_attribute(&h3270,baddr); | 2561 | fa = get_field_attribute(&h3270,baddr); |
2562 | - if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) | 2562 | + if (FA_IS_PROTECTED(fa) || h3270.ea_buf[baddr].fa) |
2563 | { | 2563 | { |
2564 | operator_error(KL_OERR_PROTECTED); | 2564 | operator_error(KL_OERR_PROTECTED); |
2565 | return -1; | 2565 | return -1; |
@@ -2572,7 +2572,7 @@ LIB3270_ACTION( eraseeol ) | @@ -2572,7 +2572,7 @@ LIB3270_ACTION( eraseeol ) | ||
2572 | { | 2572 | { |
2573 | ctlr_add(baddr, EBC_null, 0); | 2573 | ctlr_add(baddr, EBC_null, 0); |
2574 | INC_BA(baddr); | 2574 | INC_BA(baddr); |
2575 | - } while (!ea_buf[baddr].fa && BA_TO_COL(baddr) > 0); | 2575 | + } while (!h3270.ea_buf[baddr].fa && BA_TO_COL(baddr) > 0); |
2576 | 2576 | ||
2577 | mdt_set(h3270.cursor_addr); | 2577 | mdt_set(h3270.cursor_addr); |
2578 | } | 2578 | } |
@@ -2592,9 +2592,9 @@ LIB3270_ACTION( eraseeol ) | @@ -2592,9 +2592,9 @@ LIB3270_ACTION( eraseeol ) | ||
2592 | if (d == DBCS_RIGHT) { | 2592 | if (d == DBCS_RIGHT) { |
2593 | baddr = h3270.cursor_addr; | 2593 | baddr = h3270.cursor_addr; |
2594 | DEC_BA(baddr); | 2594 | DEC_BA(baddr); |
2595 | - ea_buf[baddr].cc = EBC_si; | 2595 | + h3270.ea_buf[baddr].cc = EBC_si; |
2596 | } else | 2596 | } else |
2597 | - ea_buf[h3270.cursor_addr].cc = EBC_si; | 2597 | + h3270.ea_buf[h3270.cursor_addr].cc = EBC_si; |
2598 | } | 2598 | } |
2599 | (void) ctlr_dbcs_postprocess(); | 2599 | (void) ctlr_dbcs_postprocess(); |
2600 | screen_disp(&h3270); | 2600 | screen_disp(&h3270); |
@@ -2624,7 +2624,7 @@ LIB3270_ACTION( eraseeof ) | @@ -2624,7 +2624,7 @@ LIB3270_ACTION( eraseeof ) | ||
2624 | #endif /*]*/ | 2624 | #endif /*]*/ |
2625 | baddr = hSession->cursor_addr; | 2625 | baddr = hSession->cursor_addr; |
2626 | fa = get_field_attribute(hSession,baddr); | 2626 | fa = get_field_attribute(hSession,baddr); |
2627 | - if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { | 2627 | + if (FA_IS_PROTECTED(fa) || h3270.ea_buf[baddr].fa) { |
2628 | operator_error(KL_OERR_PROTECTED); | 2628 | operator_error(KL_OERR_PROTECTED); |
2629 | return -1; | 2629 | return -1; |
2630 | } | 2630 | } |
@@ -2632,7 +2632,7 @@ LIB3270_ACTION( eraseeof ) | @@ -2632,7 +2632,7 @@ LIB3270_ACTION( eraseeof ) | ||
2632 | do { | 2632 | do { |
2633 | ctlr_add(baddr, EBC_null, 0); | 2633 | ctlr_add(baddr, EBC_null, 0); |
2634 | INC_BA(baddr); | 2634 | INC_BA(baddr); |
2635 | - } while (!ea_buf[baddr].fa); | 2635 | + } while (!h3270.ea_buf[baddr].fa); |
2636 | mdt_set(hSession->cursor_addr); | 2636 | mdt_set(hSession->cursor_addr); |
2637 | } else { /* erase to end of screen */ | 2637 | } else { /* erase to end of screen */ |
2638 | do { | 2638 | do { |
@@ -2647,9 +2647,9 @@ LIB3270_ACTION( eraseeof ) | @@ -2647,9 +2647,9 @@ LIB3270_ACTION( eraseeof ) | ||
2647 | if (d == DBCS_RIGHT) { | 2647 | if (d == DBCS_RIGHT) { |
2648 | baddr = hSession->cursor_addr; | 2648 | baddr = hSession->cursor_addr; |
2649 | DEC_BA(baddr); | 2649 | DEC_BA(baddr); |
2650 | - ea_buf[baddr].cc = EBC_si; | 2650 | + h3270.ea_buf[baddr].cc = EBC_si; |
2651 | } else | 2651 | } else |
2652 | - ea_buf[hSession->cursor_addr].cc = EBC_si; | 2652 | + h3270.ea_buf[hSession->cursor_addr].cc = EBC_si; |
2653 | } | 2653 | } |
2654 | (void) ctlr_dbcs_postprocess(); | 2654 | (void) ctlr_dbcs_postprocess(); |
2655 | screen_disp(hSession); | 2655 | screen_disp(hSession); |
@@ -2675,14 +2675,14 @@ LIB3270_ACTION( eraseinput ) | @@ -2675,14 +2675,14 @@ LIB3270_ACTION( eraseinput ) | ||
2675 | /* find first field attribute */ | 2675 | /* find first field attribute */ |
2676 | baddr = 0; | 2676 | baddr = 0; |
2677 | do { | 2677 | do { |
2678 | - if (ea_buf[baddr].fa) | 2678 | + if (h3270.ea_buf[baddr].fa) |
2679 | break; | 2679 | break; |
2680 | INC_BA(baddr); | 2680 | INC_BA(baddr); |
2681 | } while (baddr != 0); | 2681 | } while (baddr != 0); |
2682 | sbaddr = baddr; | 2682 | sbaddr = baddr; |
2683 | f = False; | 2683 | f = False; |
2684 | do { | 2684 | do { |
2685 | - fa = ea_buf[baddr].fa; | 2685 | + fa = h3270.ea_buf[baddr].fa; |
2686 | if (!FA_IS_PROTECTED(fa)) { | 2686 | if (!FA_IS_PROTECTED(fa)) { |
2687 | mdt_clear(baddr); | 2687 | mdt_clear(baddr); |
2688 | do { | 2688 | do { |
@@ -2691,14 +2691,14 @@ LIB3270_ACTION( eraseinput ) | @@ -2691,14 +2691,14 @@ LIB3270_ACTION( eraseinput ) | ||
2691 | cursor_move(baddr); | 2691 | cursor_move(baddr); |
2692 | f = True; | 2692 | f = True; |
2693 | } | 2693 | } |
2694 | - if (!ea_buf[baddr].fa) { | 2694 | + if (!h3270.ea_buf[baddr].fa) { |
2695 | ctlr_add(baddr, EBC_null, 0); | 2695 | ctlr_add(baddr, EBC_null, 0); |
2696 | } | 2696 | } |
2697 | - } while (!ea_buf[baddr].fa); | 2697 | + } while (!h3270.ea_buf[baddr].fa); |
2698 | } else { /* skip protected */ | 2698 | } else { /* skip protected */ |
2699 | do { | 2699 | do { |
2700 | INC_BA(baddr); | 2700 | INC_BA(baddr); |
2701 | - } while (!ea_buf[baddr].fa); | 2701 | + } while (!h3270.ea_buf[baddr].fa); |
2702 | } | 2702 | } |
2703 | } while (baddr != sbaddr); | 2703 | } while (baddr != sbaddr); |
2704 | if (!f) | 2704 | if (!f) |
@@ -2744,7 +2744,7 @@ LIB3270_ACTION( deleteword ) | @@ -2744,7 +2744,7 @@ LIB3270_ACTION( deleteword ) | ||
2744 | fa = get_field_attribute(hSession,baddr); | 2744 | fa = get_field_attribute(hSession,baddr); |
2745 | 2745 | ||
2746 | /* Make sure we're on a modifiable field. */ | 2746 | /* Make sure we're on a modifiable field. */ |
2747 | - if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { | 2747 | + if (FA_IS_PROTECTED(fa) || hSession->ea_buf[baddr].fa) { |
2748 | operator_error(KL_OERR_PROTECTED); | 2748 | operator_error(KL_OERR_PROTECTED); |
2749 | return -1; | 2749 | return -1; |
2750 | } | 2750 | } |
@@ -2753,10 +2753,10 @@ LIB3270_ACTION( deleteword ) | @@ -2753,10 +2753,10 @@ LIB3270_ACTION( deleteword ) | ||
2753 | for (;;) { | 2753 | for (;;) { |
2754 | baddr = hSession->cursor_addr; | 2754 | baddr = hSession->cursor_addr; |
2755 | DEC_BA(baddr); | 2755 | DEC_BA(baddr); |
2756 | - if (ea_buf[baddr].fa) | 2756 | + if (hSession->ea_buf[baddr].fa) |
2757 | return 0; | 2757 | return 0; |
2758 | - if (ea_buf[baddr].cc == EBC_null || | ||
2759 | - ea_buf[baddr].cc == EBC_space) | 2758 | + if (hSession->ea_buf[baddr].cc == EBC_null || |
2759 | + hSession->ea_buf[baddr].cc == EBC_space) | ||
2760 | do_erase(); | 2760 | do_erase(); |
2761 | else | 2761 | else |
2762 | break; | 2762 | break; |
@@ -2766,10 +2766,10 @@ LIB3270_ACTION( deleteword ) | @@ -2766,10 +2766,10 @@ LIB3270_ACTION( deleteword ) | ||
2766 | for (;;) { | 2766 | for (;;) { |
2767 | baddr = hSession->cursor_addr; | 2767 | baddr = hSession->cursor_addr; |
2768 | DEC_BA(baddr); | 2768 | DEC_BA(baddr); |
2769 | - if (ea_buf[baddr].fa) | 2769 | + if (hSession->ea_buf[baddr].fa) |
2770 | return 0; | 2770 | return 0; |
2771 | - if (ea_buf[baddr].cc == EBC_null || | ||
2772 | - ea_buf[baddr].cc == EBC_space) | 2771 | + if (hSession->ea_buf[baddr].cc == EBC_null || |
2772 | + hSession->ea_buf[baddr].cc == EBC_space) | ||
2773 | break; | 2773 | break; |
2774 | else | 2774 | else |
2775 | do_erase(); | 2775 | do_erase(); |
@@ -2809,16 +2809,16 @@ LIB3270_ACTION( deletefield ) | @@ -2809,16 +2809,16 @@ LIB3270_ACTION( deletefield ) | ||
2809 | 2809 | ||
2810 | baddr = hSession->cursor_addr; | 2810 | baddr = hSession->cursor_addr; |
2811 | fa = get_field_attribute(hSession,baddr); | 2811 | fa = get_field_attribute(hSession,baddr); |
2812 | - if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { | 2812 | + if (FA_IS_PROTECTED(fa) || hSession->ea_buf[baddr].fa) { |
2813 | operator_error(KL_OERR_PROTECTED); | 2813 | operator_error(KL_OERR_PROTECTED); |
2814 | return -1; | 2814 | return -1; |
2815 | } | 2815 | } |
2816 | - while (!ea_buf[baddr].fa) | 2816 | + while (!hSession->ea_buf[baddr].fa) |
2817 | DEC_BA(baddr); | 2817 | DEC_BA(baddr); |
2818 | INC_BA(baddr); | 2818 | INC_BA(baddr); |
2819 | mdt_set(hSession->cursor_addr); | 2819 | mdt_set(hSession->cursor_addr); |
2820 | cursor_move(baddr); | 2820 | cursor_move(baddr); |
2821 | - while (!ea_buf[baddr].fa) { | 2821 | + while (!hSession->ea_buf[baddr].fa) { |
2822 | ctlr_add(baddr, EBC_null, 0); | 2822 | ctlr_add(baddr, EBC_null, 0); |
2823 | INC_BA(baddr); | 2823 | INC_BA(baddr); |
2824 | } | 2824 | } |
@@ -2912,15 +2912,15 @@ LIB3270_ACTION( fieldend ) | @@ -2912,15 +2912,15 @@ LIB3270_ACTION( fieldend ) | ||
2912 | return 0; | 2912 | return 0; |
2913 | baddr = hSession->cursor_addr; | 2913 | baddr = hSession->cursor_addr; |
2914 | faddr = find_field_attribute(hSession,baddr); | 2914 | faddr = find_field_attribute(hSession,baddr); |
2915 | - fa = ea_buf[faddr].fa; | 2915 | + fa = hSession->ea_buf[faddr].fa; |
2916 | if (faddr == baddr || FA_IS_PROTECTED(fa)) | 2916 | if (faddr == baddr || FA_IS_PROTECTED(fa)) |
2917 | return 0; | 2917 | return 0; |
2918 | 2918 | ||
2919 | baddr = faddr; | 2919 | baddr = faddr; |
2920 | while (True) { | 2920 | while (True) { |
2921 | INC_BA(baddr); | 2921 | INC_BA(baddr); |
2922 | - c = ea_buf[baddr].cc; | ||
2923 | - if (ea_buf[baddr].fa) | 2922 | + c = hSession->ea_buf[baddr].cc; |
2923 | + if (hSession->ea_buf[baddr].fa) | ||
2924 | break; | 2924 | break; |
2925 | if (c != EBC_null && c != EBC_space) | 2925 | if (c != EBC_null && c != EBC_space) |
2926 | last_nonblank = baddr; | 2926 | last_nonblank = baddr; |
@@ -2932,7 +2932,7 @@ LIB3270_ACTION( fieldend ) | @@ -2932,7 +2932,7 @@ LIB3270_ACTION( fieldend ) | ||
2932 | } else { | 2932 | } else { |
2933 | baddr = last_nonblank; | 2933 | baddr = last_nonblank; |
2934 | INC_BA(baddr); | 2934 | INC_BA(baddr); |
2935 | - if (ea_buf[baddr].fa) | 2935 | + if (h3270.ea_buf[baddr].fa) |
2936 | baddr = last_nonblank; | 2936 | baddr = last_nonblank; |
2937 | } | 2937 | } |
2938 | cursor_move(baddr); | 2938 | cursor_move(baddr); |
@@ -2997,7 +2997,7 @@ remargin(int lmargin) | @@ -2997,7 +2997,7 @@ remargin(int lmargin) | ||
2997 | ever = True; | 2997 | ever = True; |
2998 | } | 2998 | } |
2999 | faddr = find_field_attribute(&h3270,baddr); | 2999 | faddr = find_field_attribute(&h3270,baddr); |
3000 | - fa = ea_buf[faddr].fa; | 3000 | + fa = h3270.ea_buf[faddr].fa; |
3001 | if (faddr == baddr || FA_IS_PROTECTED(fa)) { | 3001 | if (faddr == baddr || FA_IS_PROTECTED(fa)) { |
3002 | baddr = next_unprotected(baddr); | 3002 | baddr = next_unprotected(baddr); |
3003 | if (baddr <= b0) | 3003 | if (baddr <= b0) |
@@ -3523,7 +3523,7 @@ kybd_prime(void) | @@ -3523,7 +3523,7 @@ kybd_prime(void) | ||
3523 | return 0; | 3523 | return 0; |
3524 | 3524 | ||
3525 | fa = get_field_attribute(&h3270,h3270.cursor_addr); | 3525 | fa = get_field_attribute(&h3270,h3270.cursor_addr); |
3526 | - if (ea_buf[h3270.cursor_addr].fa || FA_IS_PROTECTED(fa)) { | 3526 | + if (h3270.ea_buf[h3270.cursor_addr].fa || FA_IS_PROTECTED(fa)) { |
3527 | /* | 3527 | /* |
3528 | * The cursor is not in an unprotected field. Find the | 3528 | * The cursor is not in an unprotected field. Find the |
3529 | * next one. | 3529 | * next one. |
@@ -3538,7 +3538,7 @@ kybd_prime(void) | @@ -3538,7 +3538,7 @@ kybd_prime(void) | ||
3538 | } else { | 3538 | } else { |
3539 | /* Already in an unprotected field. Find its start. */ | 3539 | /* Already in an unprotected field. Find its start. */ |
3540 | baddr = h3270.cursor_addr; | 3540 | baddr = h3270.cursor_addr; |
3541 | - while (!ea_buf[baddr].fa) { | 3541 | + while (!h3270.ea_buf[baddr].fa) { |
3542 | DEC_BA(baddr); | 3542 | DEC_BA(baddr); |
3543 | } | 3543 | } |
3544 | INC_BA(baddr); | 3544 | INC_BA(baddr); |
@@ -3548,7 +3548,7 @@ kybd_prime(void) | @@ -3548,7 +3548,7 @@ kybd_prime(void) | ||
3548 | cursor_move(baddr); | 3548 | cursor_move(baddr); |
3549 | 3549 | ||
3550 | /* Erase it. */ | 3550 | /* Erase it. */ |
3551 | - while (!ea_buf[baddr].fa) { | 3551 | + while (!h3270.ea_buf[baddr].fa) { |
3552 | ctlr_add(baddr, 0, 0); | 3552 | ctlr_add(baddr, 0, 0); |
3553 | len++; | 3553 | len++; |
3554 | INC_BA(baddr); | 3554 | INC_BA(baddr); |
src/lib3270/paste.c
@@ -112,7 +112,7 @@ | @@ -112,7 +112,7 @@ | ||
112 | } | 112 | } |
113 | 113 | ||
114 | faddr = find_field_attribute(&h3270,baddr); | 114 | faddr = find_field_attribute(&h3270,baddr); |
115 | - fa = ea_buf[faddr].fa; | 115 | + fa = h3270.ea_buf[faddr].fa; |
116 | if (faddr == baddr || FA_IS_PROTECTED(fa)) | 116 | if (faddr == baddr || FA_IS_PROTECTED(fa)) |
117 | { | 117 | { |
118 | baddr = next_unprotected(baddr); | 118 | baddr = next_unprotected(baddr); |
@@ -133,7 +133,7 @@ | @@ -133,7 +133,7 @@ | ||
133 | if(toggled(SMART_PASTE)) | 133 | if(toggled(SMART_PASTE)) |
134 | { | 134 | { |
135 | int faddr = find_field_attribute(&h3270,h3270.cursor_addr); | 135 | int faddr = find_field_attribute(&h3270,h3270.cursor_addr); |
136 | - if(FA_IS_PROTECTED(ea_buf[faddr].fa)) | 136 | + if(FA_IS_PROTECTED(h3270.ea_buf[faddr].fa)) |
137 | h3270.cursor_addr++; | 137 | h3270.cursor_addr++; |
138 | else | 138 | else |
139 | key_ACharacter(c, KT_STD, IA_PASTE, NULL); | 139 | key_ACharacter(c, KT_STD, IA_PASTE, NULL); |
@@ -191,7 +191,7 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str) | @@ -191,7 +191,7 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str) | ||
191 | baddr = (h->cursor_addr + h->cols) % (h->cols * h->rows); /* down */ | 191 | baddr = (h->cursor_addr + h->cols) % (h->cols * h->rows); /* down */ |
192 | baddr = (baddr / h->cols) * h->cols; /* 1st col */ | 192 | baddr = (baddr / h->cols) * h->cols; /* 1st col */ |
193 | faddr = find_field_attribute(h,baddr); | 193 | faddr = find_field_attribute(h,baddr); |
194 | - fa = ea_buf[faddr].fa; | 194 | + fa = h3270.ea_buf[faddr].fa; |
195 | if (faddr != baddr && !FA_IS_PROTECTED(fa)) | 195 | if (faddr != baddr && !FA_IS_PROTECTED(fa)) |
196 | cursor_move(baddr); | 196 | cursor_move(baddr); |
197 | else | 197 | else |
src/lib3270/print.c
@@ -151,7 +151,7 @@ fprint_screen(FILE *f, Boolean even_if_empty, Boolean use_html) | @@ -151,7 +151,7 @@ fprint_screen(FILE *f, Boolean even_if_empty, Boolean use_html) | ||
151 | int nr = 0; | 151 | int nr = 0; |
152 | Boolean any = False; | 152 | Boolean any = False; |
153 | int fa_addr = find_field_attribute(&h3270,0); | 153 | int fa_addr = find_field_attribute(&h3270,0); |
154 | - unsigned char fa = ea_buf[fa_addr].fa; | 154 | + unsigned char fa = h3270.ea_buf[fa_addr].fa; |
155 | int fa_color, current_color; | 155 | int fa_color, current_color; |
156 | Bool fa_high, current_high; | 156 | Bool fa_high, current_high; |
157 | 157 | ||
@@ -159,13 +159,13 @@ fprint_screen(FILE *f, Boolean even_if_empty, Boolean use_html) | @@ -159,13 +159,13 @@ fprint_screen(FILE *f, Boolean even_if_empty, Boolean use_html) | ||
159 | even_if_empty = True; | 159 | even_if_empty = True; |
160 | } | 160 | } |
161 | 161 | ||
162 | - if (ea_buf[fa_addr].fg) | ||
163 | - fa_color = ea_buf[fa_addr].fg & 0x0f; | 162 | + if (h3270.ea_buf[fa_addr].fg) |
163 | + fa_color = h3270.ea_buf[fa_addr].fg & 0x0f; | ||
164 | else | 164 | else |
165 | fa_color = color_from_fa(fa); | 165 | fa_color = color_from_fa(fa); |
166 | current_color = fa_color; | 166 | current_color = fa_color; |
167 | 167 | ||
168 | - if (ea_buf[fa_addr].gr & GR_INTENSIFY) | 168 | + if (h3270.ea_buf[fa_addr].gr & GR_INTENSIFY) |
169 | fa_high = True; | 169 | fa_high = True; |
170 | else | 170 | else |
171 | fa_high = FA_IS_HIGH(fa); | 171 | fa_high = FA_IS_HIGH(fa); |
@@ -181,14 +181,14 @@ fprint_screen(FILE *f, Boolean even_if_empty, Boolean use_html) | @@ -181,14 +181,14 @@ fprint_screen(FILE *f, Boolean even_if_empty, Boolean use_html) | ||
181 | nr++; | 181 | nr++; |
182 | ns = 0; | 182 | ns = 0; |
183 | } | 183 | } |
184 | - if (ea_buf[i].fa) { | 184 | + if (h3270.ea_buf[i].fa) { |
185 | c = ' '; | 185 | c = ' '; |
186 | - fa = ea_buf[i].fa; | ||
187 | - if (ea_buf[i].fg) | ||
188 | - fa_color = ea_buf[i].fg & 0x0f; | 186 | + fa = h3270.ea_buf[i].fa; |
187 | + if (h3270.ea_buf[i].fg) | ||
188 | + fa_color = h3270.ea_buf[i].fg & 0x0f; | ||
189 | else | 189 | else |
190 | fa_color = color_from_fa(fa); | 190 | fa_color = color_from_fa(fa); |
191 | - if (ea_buf[i].gr & GR_INTENSIFY) | 191 | + if (h3270.ea_buf[i].gr & GR_INTENSIFY) |
192 | fa_high = True; | 192 | fa_high = True; |
193 | else | 193 | else |
194 | fa_high = FA_IS_HIGH(fa); | 194 | fa_high = FA_IS_HIGH(fa); |
@@ -215,7 +215,7 @@ fprint_screen(FILE *f, Boolean even_if_empty, Boolean use_html) | @@ -215,7 +215,7 @@ fprint_screen(FILE *f, Boolean even_if_empty, Boolean use_html) | ||
215 | } | 215 | } |
216 | #else /*][*/ | 216 | #else /*][*/ |
217 | else | 217 | else |
218 | - c = ebc2asc[ea_buf[i].cc]; | 218 | + c = ebc2asc[h3270.ea_buf[i].cc]; |
219 | #endif /*]*/ | 219 | #endif /*]*/ |
220 | if (c == ' ') | 220 | if (c == ' ') |
221 | ns++; | 221 | ns++; |
@@ -232,8 +232,8 @@ fprint_screen(FILE *f, Boolean even_if_empty, Boolean use_html) | @@ -232,8 +232,8 @@ fprint_screen(FILE *f, Boolean even_if_empty, Boolean use_html) | ||
232 | int color; | 232 | int color; |
233 | Bool high; | 233 | Bool high; |
234 | 234 | ||
235 | - if (ea_buf[i].fg) | ||
236 | - color = ea_buf[i].fg & 0x0f; | 235 | + if (h3270.ea_buf[i].fg) |
236 | + color = h3270.ea_buf[i].fg & 0x0f; | ||
237 | else | 237 | else |
238 | color = fa_color; | 238 | color = fa_color; |
239 | if (color != current_color) { | 239 | if (color != current_color) { |
@@ -242,7 +242,7 @@ fprint_screen(FILE *f, Boolean even_if_empty, Boolean use_html) | @@ -242,7 +242,7 @@ fprint_screen(FILE *f, Boolean even_if_empty, Boolean use_html) | ||
242 | html_color(color)); | 242 | html_color(color)); |
243 | current_color = color; | 243 | current_color = color; |
244 | } | 244 | } |
245 | - if (ea_buf[i].gr & GR_INTENSIFY) | 245 | + if (h3270.ea_buf[i].gr & GR_INTENSIFY) |
246 | high = True; | 246 | high = True; |
247 | else | 247 | else |
248 | high = fa_high; | 248 | high = fa_high; |
src/lib3270/screen.c
@@ -99,12 +99,12 @@ void set_display_charset(char *dcs) | @@ -99,12 +99,12 @@ void set_display_charset(char *dcs) | ||
99 | 99 | ||
100 | static void addch(H3270 *session, int baddr, unsigned char c, unsigned short attr) | 100 | static void addch(H3270 *session, int baddr, unsigned char c, unsigned short attr) |
101 | { | 101 | { |
102 | - if(ea_buf[baddr].chr == c && ea_buf[baddr].attr == attr) | 102 | + if(session->ea_buf[baddr].chr == c && session->ea_buf[baddr].attr == attr) |
103 | return; | 103 | return; |
104 | 104 | ||
105 | /* Converted char has changed, update it */ | 105 | /* Converted char has changed, update it */ |
106 | - ea_buf[baddr].chr = c; | ||
107 | - ea_buf[baddr].attr = attr; | 106 | + session->ea_buf[baddr].chr = c; |
107 | + session->ea_buf[baddr].attr = attr; | ||
108 | 108 | ||
109 | if(session->update) | 109 | if(session->update) |
110 | session->update(session,baddr,c,attr,baddr == session->cursor_addr); | 110 | session->update(session,baddr,c,attr,baddr == session->cursor_addr); |
@@ -161,10 +161,10 @@ static unsigned short calc_attrs(int baddr, int fa_addr, int fa) | @@ -161,10 +161,10 @@ static unsigned short calc_attrs(int baddr, int fa_addr, int fa) | ||
161 | 161 | ||
162 | /* Monochrome is easy, and so is color if nothing is specified. */ | 162 | /* Monochrome is easy, and so is color if nothing is specified. */ |
163 | if (!appres.m3279 || | 163 | if (!appres.m3279 || |
164 | - (!ea_buf[baddr].fg && | ||
165 | - !ea_buf[fa_addr].fg && | ||
166 | - !ea_buf[baddr].bg && | ||
167 | - !ea_buf[fa_addr].bg)) | 164 | + (!h3270.ea_buf[baddr].fg && |
165 | + !h3270.ea_buf[fa_addr].fg && | ||
166 | + !h3270.ea_buf[baddr].bg && | ||
167 | + !h3270.ea_buf[fa_addr].bg)) | ||
168 | { | 168 | { |
169 | a = color_from_fa(fa); | 169 | a = color_from_fa(fa); |
170 | } | 170 | } |
@@ -172,23 +172,23 @@ static unsigned short calc_attrs(int baddr, int fa_addr, int fa) | @@ -172,23 +172,23 @@ static unsigned short calc_attrs(int baddr, int fa_addr, int fa) | ||
172 | { | 172 | { |
173 | 173 | ||
174 | /* The current location or the fa specifies the fg or bg. */ | 174 | /* The current location or the fa specifies the fg or bg. */ |
175 | - if (ea_buf[baddr].fg) | 175 | + if (h3270.ea_buf[baddr].fg) |
176 | { | 176 | { |
177 | - fg = ea_buf[baddr].fg & 0x0f; | 177 | + fg = h3270.ea_buf[baddr].fg & 0x0f; |
178 | } | 178 | } |
179 | - else if (ea_buf[fa_addr].fg) | 179 | + else if (h3270.ea_buf[fa_addr].fg) |
180 | { | 180 | { |
181 | - fg = ea_buf[fa_addr].fg & 0x0f; | 181 | + fg = h3270.ea_buf[fa_addr].fg & 0x0f; |
182 | } | 182 | } |
183 | else | 183 | else |
184 | { | 184 | { |
185 | fg = DEFCOLOR_MAP(fa); | 185 | fg = DEFCOLOR_MAP(fa); |
186 | } | 186 | } |
187 | 187 | ||
188 | - if (ea_buf[baddr].bg) | ||
189 | - bg = ea_buf[baddr].bg & 0x0f; | ||
190 | - else if (ea_buf[fa_addr].bg) | ||
191 | - bg = ea_buf[fa_addr].bg & 0x0f; | 188 | + if (h3270.ea_buf[baddr].bg) |
189 | + bg = h3270.ea_buf[baddr].bg & 0x0f; | ||
190 | + else if (h3270.ea_buf[fa_addr].bg) | ||
191 | + bg = h3270.ea_buf[fa_addr].bg & 0x0f; | ||
192 | else | 192 | else |
193 | bg = 0; | 193 | bg = 0; |
194 | 194 | ||
@@ -197,10 +197,10 @@ static unsigned short calc_attrs(int baddr, int fa_addr, int fa) | @@ -197,10 +197,10 @@ static unsigned short calc_attrs(int baddr, int fa_addr, int fa) | ||
197 | 197 | ||
198 | /* Compute the display attributes. */ | 198 | /* Compute the display attributes. */ |
199 | 199 | ||
200 | - if (ea_buf[baddr].gr) | ||
201 | - gr = ea_buf[baddr].gr; | ||
202 | - else if (ea_buf[fa_addr].gr) | ||
203 | - gr = ea_buf[fa_addr].gr; | 200 | + if (h3270.ea_buf[baddr].gr) |
201 | + gr = h3270.ea_buf[baddr].gr; | ||
202 | + else if (h3270.ea_buf[fa_addr].gr) | ||
203 | + gr = h3270.ea_buf[fa_addr].gr; | ||
204 | else | 204 | else |
205 | gr = 0; | 205 | gr = 0; |
206 | 206 | ||
@@ -271,8 +271,8 @@ LIB3270_EXPORT int lib3270_get_contents(H3270 *h, int first, int last, unsigned | @@ -271,8 +271,8 @@ LIB3270_EXPORT int lib3270_get_contents(H3270 *h, int first, int last, unsigned | ||
271 | 271 | ||
272 | for(baddr = first; baddr <= last;baddr++) | 272 | for(baddr = first; baddr <= last;baddr++) |
273 | { | 273 | { |
274 | - *(chr++) = ea_buf[baddr].chr ? ea_buf[baddr].chr : ' '; | ||
275 | - *(attr++) = ea_buf[baddr].attr; | 274 | + *(chr++) = h3270.ea_buf[baddr].chr ? h3270.ea_buf[baddr].chr : ' '; |
275 | + *(attr++) = h3270.ea_buf[baddr].attr; | ||
276 | } | 276 | } |
277 | 277 | ||
278 | return 0; | 278 | return 0; |
@@ -294,13 +294,13 @@ int screen_read(char *dest, int baddr, int count) | @@ -294,13 +294,13 @@ int screen_read(char *dest, int baddr, int count) | ||
294 | return EFAULT; | 294 | return EFAULT; |
295 | } | 295 | } |
296 | 296 | ||
297 | - if (ea_buf[baddr].fa) | ||
298 | - fa = ea_buf[baddr].fa; | 297 | + if (h3270.ea_buf[baddr].fa) |
298 | + fa = h3270.ea_buf[baddr].fa; | ||
299 | 299 | ||
300 | if(FA_IS_ZERO(fa)) | 300 | if(FA_IS_ZERO(fa)) |
301 | *dest = ' '; | 301 | *dest = ' '; |
302 | - else if(ea_buf[baddr].cc) | ||
303 | - *dest = ebc2asc[ea_buf[baddr].cc]; | 302 | + else if(h3270.ea_buf[baddr].cc) |
303 | + *dest = ebc2asc[h3270.ea_buf[baddr].cc]; | ||
304 | else | 304 | else |
305 | *dest = ' '; | 305 | *dest = ' '; |
306 | 306 | ||
@@ -329,11 +329,11 @@ static void screen_update(H3270 *session, int bstart, int bend) | @@ -329,11 +329,11 @@ static void screen_update(H3270 *session, int bstart, int bend) | ||
329 | 329 | ||
330 | for(baddr = bstart; baddr < bend; baddr++) | 330 | for(baddr = bstart; baddr < bend; baddr++) |
331 | { | 331 | { |
332 | - if(ea_buf[baddr].fa) | 332 | + if(session->ea_buf[baddr].fa) |
333 | { | 333 | { |
334 | // Field attribute. | 334 | // Field attribute. |
335 | fa_addr = baddr; | 335 | fa_addr = baddr; |
336 | - fa = ea_buf[baddr].fa; | 336 | + fa = session->ea_buf[baddr].fa; |
337 | a = calc_attrs(baddr, baddr, fa); | 337 | a = calc_attrs(baddr, baddr, fa); |
338 | addch(session,baddr,' ',(attr = COLOR_GREEN)|CHAR_ATTR_MARKER); | 338 | addch(session,baddr,' ',(attr = COLOR_GREEN)|CHAR_ATTR_MARKER); |
339 | } | 339 | } |
@@ -345,7 +345,7 @@ static void screen_update(H3270 *session, int bstart, int bend) | @@ -345,7 +345,7 @@ static void screen_update(H3270 *session, int bstart, int bend) | ||
345 | else | 345 | else |
346 | { | 346 | { |
347 | // Normal text. | 347 | // Normal text. |
348 | - if (!(ea_buf[baddr].gr || ea_buf[baddr].fg || ea_buf[baddr].bg)) | 348 | + if (!(session->ea_buf[baddr].gr || session->ea_buf[baddr].fg || session->ea_buf[baddr].bg)) |
349 | { | 349 | { |
350 | attr = a; | 350 | attr = a; |
351 | } | 351 | } |
@@ -361,20 +361,20 @@ static void screen_update(H3270 *session, int bstart, int bend) | @@ -361,20 +361,20 @@ static void screen_update(H3270 *session, int bstart, int bend) | ||
361 | attr = calc_attrs(baddr, fa_addr, fa); | 361 | attr = calc_attrs(baddr, fa_addr, fa); |
362 | } | 362 | } |
363 | 363 | ||
364 | - if (ea_buf[baddr].cs == CS_LINEDRAW) | 364 | + if (session->ea_buf[baddr].cs == CS_LINEDRAW) |
365 | { | 365 | { |
366 | - addch(session,baddr,ea_buf[baddr].cc,attr); | 366 | + addch(session,baddr,session->ea_buf[baddr].cc,attr); |
367 | } | 367 | } |
368 | - else if (ea_buf[baddr].cs == CS_APL || (ea_buf[baddr].cs & CS_GE)) | 368 | + else if (session->ea_buf[baddr].cs == CS_APL || (session->ea_buf[baddr].cs & CS_GE)) |
369 | { | 369 | { |
370 | - addch(session,baddr,ea_buf[baddr].cc,attr|CHAR_ATTR_CG); | 370 | + addch(session,baddr,session->ea_buf[baddr].cc,attr|CHAR_ATTR_CG); |
371 | } | 371 | } |
372 | else | 372 | else |
373 | { | 373 | { |
374 | if (toggled(MONOCASE)) | 374 | if (toggled(MONOCASE)) |
375 | - addch(session,baddr,asc2uc[ebc2asc[ea_buf[baddr].cc]],attr); | 375 | + addch(session,baddr,asc2uc[ebc2asc[session->ea_buf[baddr].cc]],attr); |
376 | else | 376 | else |
377 | - addch(session,baddr,ebc2asc[ea_buf[baddr].cc],attr); | 377 | + addch(session,baddr,ebc2asc[session->ea_buf[baddr].cc],attr); |
378 | } | 378 | } |
379 | } | 379 | } |
380 | 380 | ||
@@ -419,7 +419,7 @@ LIB3270_EXPORT int lib3270_set_cursor_address(H3270 *h, int baddr) | @@ -419,7 +419,7 @@ LIB3270_EXPORT int lib3270_set_cursor_address(H3270 *h, int baddr) | ||
419 | h->cursor_addr = baddr; | 419 | h->cursor_addr = baddr; |
420 | 420 | ||
421 | if(h->update_cursor) | 421 | if(h->update_cursor) |
422 | - h->update_cursor(h,(unsigned short) (baddr/h->cols),(unsigned short) (baddr%h->cols),ea_buf[baddr].chr,ea_buf[baddr].attr); | 422 | + h->update_cursor(h,(unsigned short) (baddr/h->cols),(unsigned short) (baddr%h->cols),h->ea_buf[baddr].chr,h->ea_buf[baddr].attr); |
423 | 423 | ||
424 | return ret; | 424 | return ret; |
425 | } | 425 | } |
@@ -778,10 +778,10 @@ LIB3270_ACTION( testpattern ) | @@ -778,10 +778,10 @@ LIB3270_ACTION( testpattern ) | ||
778 | } | 778 | } |
779 | pos = 0; | 779 | pos = 0; |
780 | } | 780 | } |
781 | - ea_buf[f].fg = fg; | ||
782 | - ea_buf[f].bg = (fg == COLOR_BLACK) ? COLOR_WHITE : COLOR_BLACK; | ||
783 | - ea_buf[f].cs = pat[row].cs; | ||
784 | - ea_buf[f].cc = pat[row].cc[pos++]; | 781 | + hSession->ea_buf[f].fg = fg; |
782 | + hSession->ea_buf[f].bg = (fg == COLOR_BLACK) ? COLOR_WHITE : COLOR_BLACK; | ||
783 | + hSession->ea_buf[f].cs = pat[row].cs; | ||
784 | + hSession->ea_buf[f].cc = pat[row].cc[pos++]; | ||
785 | } | 785 | } |
786 | 786 | ||
787 | Trace("%s display",__FUNCTION__); | 787 | Trace("%s display",__FUNCTION__); |
src/lib3270/selection.c
@@ -67,10 +67,10 @@ static void update_selected_rectangle(H3270 *session) | @@ -67,10 +67,10 @@ static void update_selected_rectangle(H3270 *session) | ||
67 | { | 67 | { |
68 | for(col = 0; col < session->cols;col++) | 68 | for(col = 0; col < session->cols;col++) |
69 | { | 69 | { |
70 | - if(!(row >= p[0].row && row <= p[1].row && col >= p[0].col && col <= p[1].col) && (ea_buf[baddr].attr & LIB3270_ATTR_SELECTED)) | 70 | + if(!(row >= p[0].row && row <= p[1].row && col >= p[0].col && col <= p[1].col) && (session->ea_buf[baddr].attr & LIB3270_ATTR_SELECTED)) |
71 | { | 71 | { |
72 | - ea_buf[baddr].attr &= ~LIB3270_ATTR_SELECTED; | ||
73 | - session->update(session,baddr,ea_buf[baddr].chr,ea_buf[baddr].attr,baddr == session->cursor_addr); | 72 | + session->ea_buf[baddr].attr &= ~LIB3270_ATTR_SELECTED; |
73 | + session->update(session,baddr,session->ea_buf[baddr].chr,session->ea_buf[baddr].attr,baddr == session->cursor_addr); | ||
74 | } | 74 | } |
75 | baddr++; | 75 | baddr++; |
76 | } | 76 | } |
@@ -82,10 +82,10 @@ static void update_selected_rectangle(H3270 *session) | @@ -82,10 +82,10 @@ static void update_selected_rectangle(H3270 *session) | ||
82 | { | 82 | { |
83 | for(col = 0; col < session->cols;col++) | 83 | for(col = 0; col < session->cols;col++) |
84 | { | 84 | { |
85 | - if((row >= p[0].row && row <= p[1].row && col >= p[0].col && col <= p[1].col) && !(ea_buf[baddr].attr & LIB3270_ATTR_SELECTED)) | 85 | + if((row >= p[0].row && row <= p[1].row && col >= p[0].col && col <= p[1].col) && !(session->ea_buf[baddr].attr & LIB3270_ATTR_SELECTED)) |
86 | { | 86 | { |
87 | - ea_buf[baddr].attr |= LIB3270_ATTR_SELECTED; | ||
88 | - session->update(session,baddr,ea_buf[baddr].chr,ea_buf[baddr].attr,baddr == session->cursor_addr); | 87 | + session->ea_buf[baddr].attr |= LIB3270_ATTR_SELECTED; |
88 | + session->update(session,baddr,session->ea_buf[baddr].chr,session->ea_buf[baddr].attr,baddr == session->cursor_addr); | ||
89 | } | 89 | } |
90 | baddr++; | 90 | baddr++; |
91 | } | 91 | } |
@@ -110,29 +110,29 @@ static void update_selected_region(H3270 *session) | @@ -110,29 +110,29 @@ static void update_selected_region(H3270 *session) | ||
110 | // First remove unselected areas | 110 | // First remove unselected areas |
111 | for(baddr = 0; baddr < begin; baddr++) | 111 | for(baddr = 0; baddr < begin; baddr++) |
112 | { | 112 | { |
113 | - if(ea_buf[baddr].attr & LIB3270_ATTR_SELECTED) | 113 | + if(session->ea_buf[baddr].attr & LIB3270_ATTR_SELECTED) |
114 | { | 114 | { |
115 | - ea_buf[baddr].attr &= ~LIB3270_ATTR_SELECTED; | ||
116 | - session->update(session,baddr,ea_buf[baddr].chr,ea_buf[baddr].attr,baddr == session->cursor_addr); | 115 | + session->ea_buf[baddr].attr &= ~LIB3270_ATTR_SELECTED; |
116 | + session->update(session,baddr,session->ea_buf[baddr].chr,session->ea_buf[baddr].attr,baddr == session->cursor_addr); | ||
117 | } | 117 | } |
118 | } | 118 | } |
119 | 119 | ||
120 | for(baddr = end+1; baddr < len; baddr++) | 120 | for(baddr = end+1; baddr < len; baddr++) |
121 | { | 121 | { |
122 | - if(ea_buf[baddr].attr & LIB3270_ATTR_SELECTED) | 122 | + if(session->ea_buf[baddr].attr & LIB3270_ATTR_SELECTED) |
123 | { | 123 | { |
124 | - ea_buf[baddr].attr &= ~LIB3270_ATTR_SELECTED; | ||
125 | - session->update(session,baddr,ea_buf[baddr].chr,ea_buf[baddr].attr,baddr == session->cursor_addr); | 124 | + session->ea_buf[baddr].attr &= ~LIB3270_ATTR_SELECTED; |
125 | + session->update(session,baddr,session->ea_buf[baddr].chr,session->ea_buf[baddr].attr,baddr == session->cursor_addr); | ||
126 | } | 126 | } |
127 | } | 127 | } |
128 | 128 | ||
129 | // Then draw the selected ones | 129 | // Then draw the selected ones |
130 | for(baddr = begin; baddr <= end; baddr++) | 130 | for(baddr = begin; baddr <= end; baddr++) |
131 | { | 131 | { |
132 | - if(!(ea_buf[baddr].attr & LIB3270_ATTR_SELECTED)) | 132 | + if(!(session->ea_buf[baddr].attr & LIB3270_ATTR_SELECTED)) |
133 | { | 133 | { |
134 | - ea_buf[baddr].attr |= LIB3270_ATTR_SELECTED; | ||
135 | - session->update(session,baddr,ea_buf[baddr].chr,ea_buf[baddr].attr,baddr == session->cursor_addr); | 134 | + session->ea_buf[baddr].attr |= LIB3270_ATTR_SELECTED; |
135 | + session->update(session,baddr,session->ea_buf[baddr].chr,session->ea_buf[baddr].attr,baddr == session->cursor_addr); | ||
136 | } | 136 | } |
137 | } | 137 | } |
138 | 138 | ||
@@ -173,22 +173,23 @@ LIB3270_ACTION(unselect) | @@ -173,22 +173,23 @@ LIB3270_ACTION(unselect) | ||
173 | CHECK_SESSION_HANDLE(hSession); | 173 | CHECK_SESSION_HANDLE(hSession); |
174 | 174 | ||
175 | if(!hSession->selected) | 175 | if(!hSession->selected) |
176 | - return; | 176 | + return 0; |
177 | 177 | ||
178 | hSession->selected = 0; | 178 | hSession->selected = 0; |
179 | 179 | ||
180 | for(a = 0; a < hSession->rows*hSession->cols; a++) | 180 | for(a = 0; a < hSession->rows*hSession->cols; a++) |
181 | { | 181 | { |
182 | - if(ea_buf[a].attr & LIB3270_ATTR_SELECTED) | 182 | + if(hSession->ea_buf[a].attr & LIB3270_ATTR_SELECTED) |
183 | { | 183 | { |
184 | - ea_buf[a].attr &= ~LIB3270_ATTR_SELECTED; | 184 | + hSession->ea_buf[a].attr &= ~LIB3270_ATTR_SELECTED; |
185 | if(hSession->update) | 185 | if(hSession->update) |
186 | - hSession->update(hSession,a,ea_buf[a].chr,ea_buf[a].attr,a == hSession->cursor_addr); | 186 | + hSession->update(hSession,a,hSession->ea_buf[a].chr,hSession->ea_buf[a].attr,a == hSession->cursor_addr); |
187 | } | 187 | } |
188 | } | 188 | } |
189 | 189 | ||
190 | hSession->set_selection(hSession,0); | 190 | hSession->set_selection(hSession,0); |
191 | 191 | ||
192 | + return 0; | ||
192 | } | 193 | } |
193 | 194 | ||
194 | LIB3270_EXPORT void lib3270_select_to(H3270 *session, int baddr) | 195 | LIB3270_EXPORT void lib3270_select_to(H3270 *session, int baddr) |
@@ -216,17 +217,17 @@ LIB3270_EXPORT void lib3270_select_word(H3270 *session, int baddr) | @@ -216,17 +217,17 @@ LIB3270_EXPORT void lib3270_select_word(H3270 *session, int baddr) | ||
216 | 217 | ||
217 | CHECK_SESSION_HANDLE(session); | 218 | CHECK_SESSION_HANDLE(session); |
218 | 219 | ||
219 | - if(!lib3270_connected(session) || isspace(ea_buf[baddr].chr)) | 220 | + if(!lib3270_connected(session) || isspace(session->ea_buf[baddr].chr)) |
220 | { | 221 | { |
221 | lib3270_ring_bell(session); | 222 | lib3270_ring_bell(session); |
222 | return; | 223 | return; |
223 | } | 224 | } |
224 | 225 | ||
225 | - for(pos = baddr; pos > 0 && !isspace(ea_buf[pos].chr);pos--); | 226 | + for(pos = baddr; pos > 0 && !isspace(session->ea_buf[pos].chr);pos--); |
226 | session->select.begin = pos > 0 ? pos+1 : 0; | 227 | session->select.begin = pos > 0 ? pos+1 : 0; |
227 | 228 | ||
228 | len = session->rows * session->cols; | 229 | len = session->rows * session->cols; |
229 | - for(pos = baddr; pos < len && !isspace(ea_buf[pos].chr);pos++); | 230 | + for(pos = baddr; pos < len && !isspace(session->ea_buf[pos].chr);pos++); |
230 | session->select.end = pos < len ? pos-1 : len; | 231 | session->select.end = pos < len ? pos-1 : len; |
231 | 232 | ||
232 | set_selected(session); | 233 | set_selected(session); |
@@ -271,6 +272,7 @@ LIB3270_ACTION( selectfield ) | @@ -271,6 +272,7 @@ LIB3270_ACTION( selectfield ) | ||
271 | { | 272 | { |
272 | CHECK_SESSION_HANDLE(hSession); | 273 | CHECK_SESSION_HANDLE(hSession); |
273 | lib3270_select_field_at(hSession,hSession->cursor_addr); | 274 | lib3270_select_field_at(hSession,hSession->cursor_addr); |
275 | + return 0; | ||
274 | } | 276 | } |
275 | 277 | ||
276 | LIB3270_ACTION( selectall ) | 278 | LIB3270_ACTION( selectall ) |
@@ -283,14 +285,16 @@ LIB3270_ACTION( selectall ) | @@ -283,14 +285,16 @@ LIB3270_ACTION( selectall ) | ||
283 | // First remove unselected areas | 285 | // First remove unselected areas |
284 | for(baddr = 0; baddr < len; baddr++) | 286 | for(baddr = 0; baddr < len; baddr++) |
285 | { | 287 | { |
286 | - if(!(ea_buf[baddr].attr & LIB3270_ATTR_SELECTED)) | 288 | + if(!(hSession->ea_buf[baddr].attr & LIB3270_ATTR_SELECTED)) |
287 | { | 289 | { |
288 | - ea_buf[baddr].attr |= LIB3270_ATTR_SELECTED; | ||
289 | - hSession->update(hSession,baddr,ea_buf[baddr].chr,ea_buf[baddr].attr,baddr == hSession->cursor_addr); | 290 | + hSession->ea_buf[baddr].attr |= LIB3270_ATTR_SELECTED; |
291 | + hSession->update(hSession,baddr,hSession->ea_buf[baddr].chr,hSession->ea_buf[baddr].attr,baddr == hSession->cursor_addr); | ||
290 | } | 292 | } |
291 | } | 293 | } |
292 | 294 | ||
293 | set_selected(hSession); | 295 | set_selected(hSession); |
296 | + | ||
297 | + return 0; | ||
294 | } | 298 | } |
295 | 299 | ||
296 | LIB3270_ACTION( reselect ) | 300 | LIB3270_ACTION( reselect ) |
@@ -298,8 +302,11 @@ LIB3270_ACTION( reselect ) | @@ -298,8 +302,11 @@ LIB3270_ACTION( reselect ) | ||
298 | CHECK_SESSION_HANDLE(hSession); | 302 | CHECK_SESSION_HANDLE(hSession); |
299 | 303 | ||
300 | if(hSession->selected || hSession->select.begin == hSession->select.end) | 304 | if(hSession->selected || hSession->select.begin == hSession->select.end) |
301 | - return; | 305 | + return 0; |
302 | 306 | ||
303 | update_selection(hSession); | 307 | update_selection(hSession); |
304 | set_selected(hSession); | 308 | set_selected(hSession); |
309 | + | ||
310 | + return 0; | ||
305 | } | 311 | } |
312 | + |