Commit 69524ccb8f8fd810cb6fb485edf6a067b8cb0e3c

Authored by perry.werneck@gmail.com
1 parent c90d0568

Ajustes para multi-sessao

Showing 2 changed files with 175 additions and 175 deletions   Show diff stats
src/lib3270/ansi.c
... ... @@ -126,64 +126,64 @@ static enum state {
126 126 MBPEND = 7
127 127 } state = DATA;
128 128  
129   -static enum state ansi_data_mode(int, int);
130   -static enum state dec_save_cursor(int, int);
131   -static enum state dec_restore_cursor(int, int);
132   -static enum state ansi_newline(int, int);
133   -static enum state ansi_cursor_up(int, int);
134   -static enum state ansi_esc2(int, int);
135   -static enum state ansi_reset(int, int);
136   -static enum state ansi_insert_chars(int, int);
137   -static enum state ansi_cursor_down(int, int);
138   -static enum state ansi_cursor_right(int, int);
139   -static enum state ansi_cursor_left(int, int);
140   -static enum state ansi_cursor_motion(int, int);
141   -static enum state ansi_erase_in_display(int, int);
142   -static enum state ansi_erase_in_line(int, int);
143   -static enum state ansi_insert_lines(int, int);
144   -static enum state ansi_delete_lines(int, int);
145   -static enum state ansi_delete_chars(int, int);
146   -static enum state ansi_sgr(int, int);
147   -static enum state ansi_bell(int, int);
148   -static enum state ansi_newpage(int, int);
149   -static enum state ansi_backspace(int, int);
150   -static enum state ansi_cr(int, int);
151   -static enum state ansi_lf(int, int);
152   -static enum state ansi_htab(int, int);
153   -static enum state ansi_escape(int, int);
154   -static enum state ansi_nop(int, int);
155   -static enum state ansi_printing(int, int);
156   -static enum state ansi_semicolon(int, int);
157   -static enum state ansi_digit(int, int);
158   -static enum state ansi_reverse_index(int, int);
159   -static enum state ansi_send_attributes(int, int);
160   -static enum state ansi_set_mode(int, int);
161   -static enum state ansi_reset_mode(int, int);
162   -static enum state dec_return_terminal_id(int, int);
163   -static enum state ansi_status_report(int, int);
164   -static enum state ansi_cs_designate(int, int);
165   -static enum state ansi_esc3(int, int);
166   -static enum state dec_set(int, int);
167   -static enum state dec_reset(int, int);
168   -static enum state dec_save(int, int);
169   -static enum state dec_restore(int, int);
170   -static enum state dec_scrolling_region(int, int);
171   -static enum state xterm_text_mode(int, int);
172   -static enum state xterm_text_semicolon(int, int);
173   -static enum state xterm_text(int, int);
174   -static enum state xterm_text_do(int, int);
175   -static enum state ansi_htab_set(int, int);
176   -static enum state ansi_htab_clear(int, int);
177   -static enum state ansi_cs_designate2(int, int);
178   -static enum state ansi_select_g0(int, int);
179   -static enum state ansi_select_g1(int, int);
180   -static enum state ansi_select_g2(int, int);
181   -static enum state ansi_select_g3(int, int);
182   -static enum state ansi_one_g2(int, int);
183   -static enum state ansi_one_g3(int, int);
184   -static enum state ansi_multibyte(int, int);
185   -
186   -typedef enum state (*afn_t)(int, int);
  129 +static enum state ansi_data_mode(H3270 *, int, int);
  130 +static enum state dec_save_cursor(H3270 *, int, int);
  131 +static enum state dec_restore_cursor(H3270 *, int, int);
  132 +static enum state ansi_newline(H3270 *, int, int);
  133 +static enum state ansi_cursor_up(H3270 *, int, int);
  134 +static enum state ansi_esc2(H3270 *, int, int);
  135 +static enum state ansi_reset(H3270 *, int, int);
  136 +static enum state ansi_insert_chars(H3270 *, int, int);
  137 +static enum state ansi_cursor_down(H3270 *, int, int);
  138 +static enum state ansi_cursor_right(H3270 *, int, int);
  139 +static enum state ansi_cursor_left(H3270 *, int, int);
  140 +static enum state ansi_cursor_motion(H3270 *, int, int);
  141 +static enum state ansi_erase_in_display(H3270 *, int, int);
  142 +static enum state ansi_erase_in_line(H3270 *, int, int);
  143 +static enum state ansi_insert_lines(H3270 *, int, int);
  144 +static enum state ansi_delete_lines(H3270 *, int, int);
  145 +static enum state ansi_delete_chars(H3270 *, int, int);
  146 +static enum state ansi_sgr(H3270 *, int, int);
  147 +static enum state ansi_bell(H3270 *, int, int);
  148 +static enum state ansi_newpage(H3270 *, int, int);
  149 +static enum state ansi_backspace(H3270 *, int, int);
  150 +static enum state ansi_cr(H3270 *, int, int);
  151 +static enum state ansi_lf(H3270 *, int, int);
  152 +static enum state ansi_htab(H3270 *, int, int);
  153 +static enum state ansi_escape(H3270 *, int, int);
  154 +static enum state ansi_nop(H3270 *, int, int);
  155 +static enum state ansi_printing(H3270 *, int, int);
  156 +static enum state ansi_semicolon(H3270 *, int, int);
  157 +static enum state ansi_digit(H3270 *, int, int);
  158 +static enum state ansi_reverse_index(H3270 *, int, int);
  159 +static enum state ansi_send_attributes(H3270 *, int, int);
  160 +static enum state ansi_set_mode(H3270 *, int, int);
  161 +static enum state ansi_reset_mode(H3270 *, int, int);
  162 +static enum state dec_return_terminal_id(H3270 *, int, int);
  163 +static enum state ansi_status_report(H3270 *, int, int);
  164 +static enum state ansi_cs_designate(H3270 *, int, int);
  165 +static enum state ansi_esc3(H3270 *, int, int);
  166 +static enum state dec_set(H3270 *, int, int);
  167 +static enum state dec_reset(H3270 *, int, int);
  168 +static enum state dec_save(H3270 *, int, int);
  169 +static enum state dec_restore(H3270 *, int, int);
  170 +static enum state dec_scrolling_region(H3270 *, int, int);
  171 +static enum state xterm_text_mode(H3270 *, int, int);
  172 +static enum state xterm_text_semicolon(H3270 *, int, int);
  173 +static enum state xterm_text(H3270 *, int, int);
  174 +static enum state xterm_text_do(H3270 *, int, int);
  175 +static enum state ansi_htab_set(H3270 *, int, int);
  176 +static enum state ansi_htab_clear(H3270 *, int, int);
  177 +static enum state ansi_cs_designate2(H3270 *, int, int);
  178 +static enum state ansi_select_g0(H3270 *, int, int);
  179 +static enum state ansi_select_g1(H3270 *, int, int);
  180 +static enum state ansi_select_g2(H3270 *, int, int);
  181 +static enum state ansi_select_g3(H3270 *, int, int);
  182 +static enum state ansi_one_g2(H3270 *, int, int);
  183 +static enum state ansi_one_g3(H3270 *, int, int);
  184 +static enum state ansi_multibyte(H3270 *, int, int);
  185 +
  186 +typedef enum state (*afn_t)(H3270 *, int, int);
187 187 static afn_t ansi_fn[] = {
188 188 /* 0 */ &ansi_data_mode,
189 189 /* 1 */ &dec_save_cursor,
... ... @@ -489,13 +489,13 @@ static Boolean held_wrap = False;
489 489 static void ansi_scroll(void);
490 490  
491 491 static enum state
492   -ansi_data_mode(int ig1 unused, int ig2 unused)
  492 +ansi_data_mode(H3270 *hSession, int ig1 unused, int ig2 unused)
493 493 {
494 494 return DATA;
495 495 }
496 496  
497 497 static enum state
498   -dec_save_cursor(int ig1 unused, int ig2 unused)
  498 +dec_save_cursor(H3270 *hSession, int ig1 unused, int ig2 unused)
499 499 {
500 500 int i;
501 501  
... ... @@ -510,7 +510,7 @@ dec_save_cursor(int ig1 unused, int ig2 unused)
510 510 }
511 511  
512 512 static enum state
513   -dec_restore_cursor(int ig1 unused, int ig2 unused)
  513 +dec_restore_cursor(H3270 *hSession, int ig1 unused, int ig2 unused)
514 514 {
515 515 int i;
516 516  
... ... @@ -526,7 +526,7 @@ dec_restore_cursor(int ig1 unused, int ig2 unused)
526 526 }
527 527  
528 528 static enum state
529   -ansi_newline(int ig1 unused, int ig2 unused)
  529 +ansi_newline(H3270 *hSession, int ig1 unused, int ig2 unused)
530 530 {
531 531 int nc;
532 532  
... ... @@ -541,7 +541,7 @@ ansi_newline(int ig1 unused, int ig2 unused)
541 541 }
542 542  
543 543 static enum state
544   -ansi_cursor_up(int nn, int ig2 unused)
  544 +ansi_cursor_up(H3270 *hSession, int nn, int ig2 unused)
545 545 {
546 546 int rr;
547 547  
... ... @@ -557,7 +557,7 @@ ansi_cursor_up(int nn, int ig2 unused)
557 557 }
558 558  
559 559 static enum state
560   -ansi_esc2(int ig1 unused, int ig2 unused)
  560 +ansi_esc2(H3270 *hSession, int ig1 unused, int ig2 unused)
561 561 {
562 562 register int i;
563 563  
... ... @@ -568,7 +568,7 @@ ansi_esc2(int ig1 unused, int ig2 unused)
568 568 }
569 569  
570 570 static enum state
571   -ansi_reset(int ig1 unused, int ig2 unused)
  571 +ansi_reset(H3270 *hSession, int ig1 unused, int ig2 unused)
572 572 {
573 573 int i;
574 574 static Boolean first = True;
... ... @@ -617,7 +617,7 @@ ansi_reset(int ig1 unused, int ig2 unused)
617 617 }
618 618  
619 619 static enum state
620   -ansi_insert_chars(int nn, int ig2 unused)
  620 +ansi_insert_chars(H3270 *hSession, int nn, int ig2 unused)
621 621 {
622 622 int cc = h3270.cursor_addr % h3270.cols; /* current col */
623 623 int mc = h3270.cols - cc; /* max chars that can be inserted */
... ... @@ -639,7 +639,7 @@ ansi_insert_chars(int nn, int ig2 unused)
639 639 }
640 640  
641 641 static enum state
642   -ansi_cursor_down(int nn, int ig2 unused)
  642 +ansi_cursor_down(H3270 *hSession, int nn, int ig2 unused)
643 643 {
644 644 int rr;
645 645  
... ... @@ -655,7 +655,7 @@ ansi_cursor_down(int nn, int ig2 unused)
655 655 }
656 656  
657 657 static enum state
658   -ansi_cursor_right(int nn, int ig2 unused)
  658 +ansi_cursor_right(H3270 *hSession, int nn, int ig2 unused)
659 659 {
660 660 int cc;
661 661  
... ... @@ -672,7 +672,7 @@ ansi_cursor_right(int nn, int ig2 unused)
672 672 }
673 673  
674 674 static enum state
675   -ansi_cursor_left(int nn, int ig2 unused)
  675 +ansi_cursor_left(H3270 *hSession, int nn, int ig2 unused)
676 676 {
677 677 int cc;
678 678  
... ... @@ -692,7 +692,7 @@ ansi_cursor_left(int nn, int ig2 unused)
692 692 }
693 693  
694 694 static enum state
695   -ansi_cursor_motion(int n1, int n2)
  695 +ansi_cursor_motion(H3270 *hSession, int n1, int n2)
696 696 {
697 697 if (n1 < 1) n1 = 1;
698 698 if (n1 > h3270.rows) n1 = h3270.rows;
... ... @@ -704,7 +704,7 @@ ansi_cursor_motion(int n1, int n2)
704 704 }
705 705  
706 706 static enum state
707   -ansi_erase_in_display(int nn, int ig2 unused)
  707 +ansi_erase_in_display(H3270 *hSession, int nn, int ig2 unused)
708 708 {
709 709 switch (nn) {
710 710 case 0: /* below */
... ... @@ -722,7 +722,7 @@ ansi_erase_in_display(int nn, int ig2 unused)
722 722 }
723 723  
724 724 static enum state
725   -ansi_erase_in_line(int nn, int ig2 unused)
  725 +ansi_erase_in_line(H3270 *hSession, int nn, int ig2 unused)
726 726 {
727 727 int nc = h3270.cursor_addr % h3270.cols;
728 728  
... ... @@ -741,7 +741,7 @@ ansi_erase_in_line(int nn, int ig2 unused)
741 741 }
742 742  
743 743 static enum state
744   -ansi_insert_lines(int nn, int ig2 unused)
  744 +ansi_insert_lines(H3270 *hSession, int nn, int ig2 unused)
745 745 {
746 746 int rr = h3270.cursor_addr / h3270.cols; /* current row */
747 747 int mr = scroll_bottom - rr; /* rows left at and below this one */
... ... @@ -767,7 +767,7 @@ ansi_insert_lines(int nn, int ig2 unused)
767 767 }
768 768  
769 769 static enum state
770   -ansi_delete_lines(int nn, int ig2 unused)
  770 +ansi_delete_lines(H3270 *hSession, int nn, int ig2 unused)
771 771 {
772 772 int rr = h3270.cursor_addr / h3270.cols; /* current row */
773 773 int mr = scroll_bottom - rr; /* max rows that can be deleted */
... ... @@ -793,7 +793,7 @@ ansi_delete_lines(int nn, int ig2 unused)
793 793 }
794 794  
795 795 static enum state
796   -ansi_delete_chars(int nn, int ig2 unused)
  796 +ansi_delete_chars(H3270 *hSession, int nn, int ig2 unused)
797 797 {
798 798 int cc = h3270.cursor_addr % h3270.cols; /* current col */
799 799 int mc = h3270.cols - cc; /* max chars that can be deleted */
... ... @@ -815,7 +815,7 @@ ansi_delete_chars(int nn, int ig2 unused)
815 815 }
816 816  
817 817 static enum state
818   -ansi_sgr(int ig1 unused, int ig2 unused)
  818 +ansi_sgr(H3270 *hSession, int ig1 unused, int ig2 unused)
819 819 {
820 820 int i;
821 821  
... ... @@ -914,21 +914,21 @@ ansi_sgr(int ig1 unused, int ig2 unused)
914 914 }
915 915  
916 916 static enum state
917   -ansi_bell(int ig1 unused, int ig2 unused)
  917 +ansi_bell(H3270 *hSession, int ig1 unused, int ig2 unused)
918 918 {
919   - lib3270_ring_bell(NULL);
  919 + lib3270_ring_bell(hSession);
920 920 return DATA;
921 921 }
922 922  
923 923 static enum state
924   -ansi_newpage(int ig1 unused, int ig2 unused)
  924 +ansi_newpage(H3270 *hSession, int ig1 unused, int ig2 unused)
925 925 {
926 926 ctlr_clear(&h3270,False);
927 927 return DATA;
928 928 }
929 929  
930 930 static enum state
931   -ansi_backspace(int ig1 unused, int ig2 unused)
  931 +ansi_backspace(H3270 *hSession, int ig1 unused, int ig2 unused)
932 932 {
933 933 if (held_wrap) {
934 934 held_wrap = False;
... ... @@ -945,18 +945,18 @@ ansi_backspace(int ig1 unused, int ig2 unused)
945 945 }
946 946  
947 947 static enum state
948   -ansi_cr(int ig1 unused, int ig2 unused)
  948 +ansi_cr(H3270 *hSession, int ig1 unused, int ig2 unused)
949 949 {
950 950 if (h3270.cursor_addr % h3270.cols)
951 951 cursor_move(&h3270,h3270.cursor_addr - (h3270.cursor_addr % h3270.cols));
952 952 if (auto_newline_mode)
953   - (void) ansi_lf(0, 0);
  953 + (void) ansi_lf(hSession, 0, 0);
954 954 held_wrap = False;
955 955 return DATA;
956 956 }
957 957  
958 958 static enum state
959   -ansi_lf(int ig1 unused, int ig2 unused)
  959 +ansi_lf(H3270 *hSession, int ig1 unused, int ig2 unused)
960 960 {
961 961 int nc = h3270.cursor_addr + h3270.cols;
962 962  
... ... @@ -977,7 +977,7 @@ ansi_lf(int ig1 unused, int ig2 unused)
977 977 }
978 978  
979 979 static enum state
980   -ansi_htab(int ig1 unused, int ig2 unused)
  980 +ansi_htab(H3270 *hSession, int ig1 unused, int ig2 unused)
981 981 {
982 982 int col = h3270.cursor_addr % h3270.cols;
983 983 int i;
... ... @@ -993,13 +993,13 @@ ansi_htab(int ig1 unused, int ig2 unused)
993 993 }
994 994  
995 995 static enum state
996   -ansi_escape(int ig1 unused, int ig2 unused)
  996 +ansi_escape(H3270 *hSession, int ig1 unused, int ig2 unused)
997 997 {
998 998 return ESC;
999 999 }
1000 1000  
1001 1001 static enum state
1002   -ansi_nop(int ig1 unused, int ig2 unused)
  1002 +ansi_nop(H3270 *hSession, int ig1 unused, int ig2 unused)
1003 1003 {
1004 1004 return DATA;
1005 1005 }
... ... @@ -1019,7 +1019,7 @@ ansi_nop(int ig1 unused, int ig2 unused)
1019 1019 }
1020 1020  
1021 1021 static enum state
1022   -ansi_printing(int ig1 unused, int ig2 unused)
  1022 +ansi_printing(H3270 *hSession, int ig1 unused, int ig2 unused)
1023 1023 {
1024 1024 int nc;
1025 1025 unsigned char ebc_ch;
... ... @@ -1065,7 +1065,7 @@ ansi_printing(int ig1 unused, int ig2 unused)
1065 1065 }
1066 1066  
1067 1067 if (insert_mode)
1068   - (void) ansi_insert_chars(1, 0);
  1068 + (void) ansi_insert_chars(hSession,1, 0);
1069 1069 switch (csd[(once_cset != -1) ? once_cset : cset]) {
1070 1070 case CSD_LD: /* line drawing "0" */
1071 1071 if (ansi_ch >= 0x5f && ansi_ch <= 0x7e)
... ... @@ -1193,7 +1193,7 @@ ansi_printing(int ig1 unused, int ig2 unused)
1193 1193 }
1194 1194  
1195 1195 static enum state
1196   -ansi_multibyte(int ig1, int ig2)
  1196 +ansi_multibyte(H3270 *hSession, int ig1, int ig2)
1197 1197 {
1198 1198 char mbs[MB_MAX];
1199 1199 unsigned char ch;
... ... @@ -1204,7 +1204,7 @@ ansi_multibyte(int ig1, int ig2)
1204 1204 /* String too long. */
1205 1205 pmi = 0;
1206 1206 ansi_ch = '?';
1207   - return ansi_printing(ig1, ig2);
  1207 + return ansi_printing(hSession,ig1, ig2);
1208 1208 }
1209 1209  
1210 1210 strncpy(mbs, pending_mbs, pmi);
... ... @@ -1215,7 +1215,7 @@ ansi_multibyte(int ig1, int ig2)
1215 1215 if (ch != 0) {
1216 1216 // Success!
1217 1217 ansi_ch = ch;
1218   - return ansi_printing(ig1, ig2);
  1218 + return ansi_printing(hSession, ig1, ig2);
1219 1219 }
1220 1220 if (fail == ULFAIL_INCOMPLETE) {
1221 1221 // Go get more.
... ... @@ -1229,17 +1229,17 @@ ansi_multibyte(int ig1, int ig2)
1229 1229 ch = ansi_ch; /* save for later */
1230 1230 pmi = 0;
1231 1231 ansi_ch = '?';
1232   - (void) ansi_printing(ig1, ig2);
  1232 + (void) ansi_printing(hSession, ig1, ig2);
1233 1233  
1234 1234 /* Reprocess whatever we choked on. */
1235 1235 ansi_ch = ch;
1236 1236 state = DATA;
1237 1237 fn = ansi_fn[st[(int)DATA][ansi_ch]];
1238   - return (*fn)(n[0], n[1]);
  1238 + return (*fn)(hSession,n[0], n[1]);
1239 1239 }
1240 1240  
1241 1241 static enum state
1242   -ansi_semicolon(int ig1 unused, int ig2 unused)
  1242 +ansi_semicolon(H3270 *hSession, int ig1 unused, int ig2 unused)
1243 1243 {
1244 1244 if (nx >= NN)
1245 1245 return DATA;
... ... @@ -1248,14 +1248,14 @@ ansi_semicolon(int ig1 unused, int ig2 unused)
1248 1248 }
1249 1249  
1250 1250 static enum state
1251   -ansi_digit(int ig1 unused, int ig2 unused)
  1251 +ansi_digit(H3270 *hSession, int ig1 unused, int ig2 unused)
1252 1252 {
1253 1253 n[nx] = (n[nx] * 10) + (ansi_ch - '0');
1254 1254 return state;
1255 1255 }
1256 1256  
1257 1257 static enum state
1258   -ansi_reverse_index(int ig1 unused, int ig2 unused)
  1258 +ansi_reverse_index(H3270 *hSession, int ig1 unused, int ig2 unused)
1259 1259 {
1260 1260 int rr = h3270.cursor_addr / h3270.cols; /* current row */
1261 1261 int np = (scroll_top - 1) - rr; /* number of rows in the scrolling
... ... @@ -1268,7 +1268,7 @@ ansi_reverse_index(int ig1 unused, int ig2 unused)
1268 1268 /* If the cursor is above the scrolling region, do a simple margined
1269 1269 cursor up. */
1270 1270 if (np < 0) {
1271   - (void) ansi_cursor_up(nn, 0);
  1271 + (void) ansi_cursor_up(hSession, nn, 0);
1272 1272 return DATA;
1273 1273 }
1274 1274  
... ... @@ -1281,17 +1281,17 @@ ansi_reverse_index(int ig1 unused, int ig2 unused)
1281 1281  
1282 1282 /* Move the cursor up without scrolling */
1283 1283 if (nn)
1284   - (void) ansi_cursor_up(nn, 0);
  1284 + (void) ansi_cursor_up(hSession,nn, 0);
1285 1285  
1286 1286 /* Insert lines at the top for backward scroll */
1287 1287 if (ns)
1288   - (void) ansi_insert_lines(ns, 0);
  1288 + (void) ansi_insert_lines(hSession, ns, 0);
1289 1289  
1290 1290 return DATA;
1291 1291 }
1292 1292  
1293 1293 static enum state
1294   -ansi_send_attributes(int nn, int ig2 unused)
  1294 +ansi_send_attributes(H3270 *hSession, int nn, int ig2 unused)
1295 1295 {
1296 1296 if (!nn)
1297 1297 net_sends("\033[?1;2c");
... ... @@ -1299,13 +1299,13 @@ ansi_send_attributes(int nn, int ig2 unused)
1299 1299 }
1300 1300  
1301 1301 static enum state
1302   -dec_return_terminal_id(int ig1 unused, int ig2 unused)
  1302 +dec_return_terminal_id(H3270 *hSession, int ig1 unused, int ig2 unused)
1303 1303 {
1304   - return ansi_send_attributes(0, 0);
  1304 + return ansi_send_attributes(hSession, 0, 0);
1305 1305 }
1306 1306  
1307 1307 static enum state
1308   -ansi_set_mode(int nn, int ig2 unused)
  1308 +ansi_set_mode(H3270 *hSession, int nn, int ig2 unused)
1309 1309 {
1310 1310 switch (nn) {
1311 1311 case 4:
... ... @@ -1319,7 +1319,7 @@ ansi_set_mode(int nn, int ig2 unused)
1319 1319 }
1320 1320  
1321 1321 static enum state
1322   -ansi_reset_mode(int nn, int ig2 unused)
  1322 +ansi_reset_mode(H3270 *hSession, int nn, int ig2 unused)
1323 1323 {
1324 1324 switch (nn) {
1325 1325 case 4:
... ... @@ -1333,7 +1333,7 @@ ansi_reset_mode(int nn, int ig2 unused)
1333 1333 }
1334 1334  
1335 1335 static enum state
1336   -ansi_status_report(int nn, int ig2 unused)
  1336 +ansi_status_report(H3270 *hSession, int nn, int ig2 unused)
1337 1337 {
1338 1338 static char cpr[11];
1339 1339  
... ... @@ -1351,69 +1351,69 @@ ansi_status_report(int nn, int ig2 unused)
1351 1351 }
1352 1352  
1353 1353 static enum state
1354   -ansi_cs_designate(int ig1 unused, int ig2 unused)
  1354 +ansi_cs_designate(H3270 *hSession, int ig1 unused, int ig2 unused)
1355 1355 {
1356 1356 cs_to_change = strchr(gnnames, ansi_ch) - gnnames;
1357 1357 return CSDES;
1358 1358 }
1359 1359  
1360 1360 static enum state
1361   -ansi_cs_designate2(int ig1 unused, int ig2 unused)
  1361 +ansi_cs_designate2(H3270 *hSession, int ig1 unused, int ig2 unused)
1362 1362 {
1363 1363 csd[cs_to_change] = strchr(csnames, ansi_ch) - csnames;
1364 1364 return DATA;
1365 1365 }
1366 1366  
1367 1367 static enum state
1368   -ansi_select_g0(int ig1 unused, int ig2 unused)
  1368 +ansi_select_g0(H3270 *hSession, int ig1 unused, int ig2 unused)
1369 1369 {
1370 1370 cset = CS_G0;
1371 1371 return DATA;
1372 1372 }
1373 1373  
1374 1374 static enum state
1375   -ansi_select_g1(int ig1 unused, int ig2 unused)
  1375 +ansi_select_g1(H3270 *hSession, int ig1 unused, int ig2 unused)
1376 1376 {
1377 1377 cset = CS_G1;
1378 1378 return DATA;
1379 1379 }
1380 1380  
1381 1381 static enum state
1382   -ansi_select_g2(int ig1 unused, int ig2 unused)
  1382 +ansi_select_g2(H3270 *hSession, int ig1 unused, int ig2 unused)
1383 1383 {
1384 1384 cset = CS_G2;
1385 1385 return DATA;
1386 1386 }
1387 1387  
1388 1388 static enum state
1389   -ansi_select_g3(int ig1 unused, int ig2 unused)
  1389 +ansi_select_g3(H3270 *hSession, int ig1 unused, int ig2 unused)
1390 1390 {
1391 1391 cset = CS_G3;
1392 1392 return DATA;
1393 1393 }
1394 1394  
1395 1395 static enum state
1396   -ansi_one_g2(int ig1 unused, int ig2 unused)
  1396 +ansi_one_g2(H3270 *hSession, int ig1 unused, int ig2 unused)
1397 1397 {
1398 1398 once_cset = CS_G2;
1399 1399 return DATA;
1400 1400 }
1401 1401  
1402 1402 static enum state
1403   -ansi_one_g3(int ig1 unused, int ig2 unused)
  1403 +ansi_one_g3(H3270 *hSession, int ig1 unused, int ig2 unused)
1404 1404 {
1405 1405 once_cset = CS_G3;
1406 1406 return DATA;
1407 1407 }
1408 1408  
1409 1409 static enum state
1410   -ansi_esc3(int ig1 unused, int ig2 unused)
  1410 +ansi_esc3(H3270 *hSession, int ig1 unused, int ig2 unused)
1411 1411 {
1412 1412 return DECP;
1413 1413 }
1414 1414  
1415 1415 static enum state
1416   -dec_set(int ig1 unused, int ig2 unused)
  1416 +dec_set(H3270 *hSession, int ig1 unused, int ig2 unused)
1417 1417 {
1418 1418 int i;
1419 1419  
... ... @@ -1448,7 +1448,7 @@ dec_set(int ig1 unused, int ig2 unused)
1448 1448 }
1449 1449  
1450 1450 static enum state
1451   -dec_reset(int ig1 unused, int ig2 unused)
  1451 +dec_reset(H3270 *hSession, int ig1 unused, int ig2 unused)
1452 1452 {
1453 1453 int i;
1454 1454  
... ... @@ -1480,7 +1480,7 @@ dec_reset(int ig1 unused, int ig2 unused)
1480 1480 }
1481 1481  
1482 1482 static enum state
1483   -dec_save(int ig1 unused, int ig2 unused)
  1483 +dec_save(H3270 *hSession, int ig1 unused, int ig2 unused)
1484 1484 {
1485 1485 int i;
1486 1486  
... ... @@ -1509,7 +1509,7 @@ dec_save(int ig1 unused, int ig2 unused)
1509 1509 }
1510 1510  
1511 1511 static enum state
1512   -dec_restore(int ig1 unused, int ig2 unused)
  1512 +dec_restore(H3270 *hSession, int ig1 unused, int ig2 unused)
1513 1513 {
1514 1514 int i;
1515 1515  
... ... @@ -1544,7 +1544,7 @@ dec_restore(int ig1 unused, int ig2 unused)
1544 1544 }
1545 1545  
1546 1546 static enum state
1547   -dec_scrolling_region(int top, int bottom)
  1547 +dec_scrolling_region(H3270 *hSession, int top, int bottom)
1548 1548 {
1549 1549 if (top < 1)
1550 1550 top = 1;
... ... @@ -1562,7 +1562,7 @@ dec_scrolling_region(int top, int bottom)
1562 1562 }
1563 1563  
1564 1564 static enum state
1565   -xterm_text_mode(int ig1 unused, int ig2 unused)
  1565 +xterm_text_mode(H3270 *hSession, int ig1 unused, int ig2 unused)
1566 1566 {
1567 1567 nx = 0;
1568 1568 n[0] = 0;
... ... @@ -1570,14 +1570,14 @@ xterm_text_mode(int ig1 unused, int ig2 unused)
1570 1570 }
1571 1571  
1572 1572 static enum state
1573   -xterm_text_semicolon(int ig1 unused, int ig2 unused)
  1573 +xterm_text_semicolon(H3270 *hSession, int ig1 unused, int ig2 unused)
1574 1574 {
1575 1575 tx = 0;
1576 1576 return TEXT2;
1577 1577 }
1578 1578  
1579 1579 static enum state
1580   -xterm_text(int ig1 unused, int ig2 unused)
  1580 +xterm_text(H3270 *hSession, int ig1 unused, int ig2 unused)
1581 1581 {
1582 1582 if (tx < NT)
1583 1583 text[tx++] = ansi_ch;
... ... @@ -1585,7 +1585,7 @@ xterm_text(int ig1 unused, int ig2 unused)
1585 1585 }
1586 1586  
1587 1587 static enum state
1588   -xterm_text_do(int ig1 unused, int ig2 unused)
  1588 +xterm_text_do(H3270 *hSession, int ig1 unused, int ig2 unused)
1589 1589 {
1590 1590 /*
1591 1591 #if defined(X3270_DISPLAY) || defined(WC3270)
... ... @@ -1629,7 +1629,7 @@ xterm_text_do(int ig1 unused, int ig2 unused)
1629 1629 }
1630 1630  
1631 1631 static enum state
1632   -ansi_htab_set(int ig1 unused, int ig2 unused)
  1632 +ansi_htab_set(H3270 *hSession, int ig1 unused, int ig2 unused)
1633 1633 {
1634 1634 register int col = h3270.cursor_addr % h3270.cols;
1635 1635  
... ... @@ -1638,7 +1638,7 @@ ansi_htab_set(int ig1 unused, int ig2 unused)
1638 1638 }
1639 1639  
1640 1640 static enum state
1641   -ansi_htab_clear(int nn, int ig2 unused)
  1641 +ansi_htab_clear(H3270 *hSession, int nn, int ig2 unused)
1642 1642 {
1643 1643 register int col, i;
1644 1644  
... ... @@ -1687,7 +1687,7 @@ ansi_scroll(void)
1687 1687 void ansi_in3270(H3270 *session, int in3270, void *dunno)
1688 1688 {
1689 1689 if (!in3270)
1690   - (void) ansi_reset(0, 0);
  1690 + (void) ansi_reset(session, 0, 0);
1691 1691 }
1692 1692  
1693 1693 #if defined(X3270_DBCS) /*[*/
... ... @@ -1730,7 +1730,7 @@ ansi_process(unsigned int c)
1730 1730 mb_pending = 0;
1731 1731 }
1732 1732 #endif /*]*/
1733   - state = (*fn)(n[0], n[1]);
  1733 + state = (*fn)(&h3270, n[0], n[1]);
1734 1734 }
1735 1735  
1736 1736 void
... ...
src/lib3270/telnet.c
... ... @@ -205,7 +205,7 @@ static char *proxy_portname = CN;
205 205 static unsigned short proxy_port = 0;
206 206  
207 207 static int telnet_fsm(H3270 *session, unsigned char c);
208   -static void net_rawout(unsigned const char *buf, int len);
  208 +static void net_rawout(H3270 *session, unsigned const char *buf, int len);
209 209 static void check_in3270(H3270 *session);
210 210 static void store3270in(unsigned char c);
211 211 static void check_linemode(Boolean init);
... ... @@ -1147,7 +1147,7 @@ send_naws(void)
1147 1147 naws_len += set16(naws_msg + naws_len, XMIT_ROWS);
1148 1148 (void) sprintf(naws_msg + naws_len, "%c%c", IAC, SE);
1149 1149 naws_len += 2;
1150   - net_rawout((unsigned char *)naws_msg, naws_len);
  1150 + net_rawout(&h3270,(unsigned char *)naws_msg, naws_len);
1151 1151 trace_dsn("SENT %s NAWS %d %d %s\n", cmd(SB), XMIT_COLS, XMIT_ROWS, cmd(SE));
1152 1152 }
1153 1153  
... ... @@ -1310,7 +1310,7 @@ static int telnet_fsm(H3270 *session, unsigned char c)
1310 1310 if (!h3270.hisopts[c]) {
1311 1311 h3270.hisopts[c] = 1;
1312 1312 do_opt[2] = c;
1313   - net_rawout(do_opt, sizeof(do_opt));
  1313 + net_rawout(&h3270,do_opt, sizeof(do_opt));
1314 1314 trace_dsn("SENT %s %s\n",
1315 1315 cmd(DO), opt(c));
1316 1316  
... ... @@ -1321,7 +1321,7 @@ static int telnet_fsm(H3270 *session, unsigned char c)
1321 1321 if (c == TELOPT_EOR && !h3270.myopts[c]) {
1322 1322 h3270.myopts[c] = 1;
1323 1323 will_opt[2] = c;
1324   - net_rawout(will_opt,
  1324 + net_rawout(&h3270,will_opt,
1325 1325 sizeof(will_opt));
1326 1326 trace_dsn("SENT %s %s\n",
1327 1327 cmd(WILL), opt(c));
... ... @@ -1334,7 +1334,7 @@ static int telnet_fsm(H3270 *session, unsigned char c)
1334 1334 }
1335 1335 default:
1336 1336 dont_opt[2] = c;
1337   - net_rawout(dont_opt, sizeof(dont_opt));
  1337 + net_rawout(&h3270,dont_opt, sizeof(dont_opt));
1338 1338 trace_dsn("SENT %s %s\n", cmd(DONT), opt(c));
1339 1339 break;
1340 1340 }
... ... @@ -1345,7 +1345,7 @@ static int telnet_fsm(H3270 *session, unsigned char c)
1345 1345 if (h3270.hisopts[c]) {
1346 1346 h3270.hisopts[c] = 0;
1347 1347 dont_opt[2] = c;
1348   - net_rawout(dont_opt, sizeof(dont_opt));
  1348 + net_rawout(&h3270, dont_opt, sizeof(dont_opt));
1349 1349 trace_dsn("SENT %s %s\n", cmd(DONT), opt(c));
1350 1350 check_in3270(&h3270);
1351 1351 check_linemode(False);
... ... @@ -1376,7 +1376,7 @@ static int telnet_fsm(H3270 *session, unsigned char c)
1376 1376 if (c != TELOPT_TM)
1377 1377 h3270.myopts[c] = 1;
1378 1378 will_opt[2] = c;
1379   - net_rawout(will_opt, sizeof(will_opt));
  1379 + net_rawout(&h3270, will_opt, sizeof(will_opt));
1380 1380 trace_dsn("SENT %s %s\n", cmd(WILL), opt(c));
1381 1381 check_in3270(&h3270);
1382 1382 check_linemode(False);
... ... @@ -1394,7 +1394,7 @@ static int telnet_fsm(H3270 *session, unsigned char c)
1394 1394 * Send IAC SB STARTTLS FOLLOWS IAC SE
1395 1395 * to announce that what follows is TLS.
1396 1396 */
1397   - net_rawout(follows_msg,
  1397 + net_rawout(&h3270, follows_msg,
1398 1398 sizeof(follows_msg));
1399 1399 trace_dsn("SENT %s %s FOLLOWS %s\n",
1400 1400 cmd(SB),
... ... @@ -1407,7 +1407,7 @@ static int telnet_fsm(H3270 *session, unsigned char c)
1407 1407 default:
1408 1408 wont:
1409 1409 wont_opt[2] = c;
1410   - net_rawout(wont_opt, sizeof(wont_opt));
  1410 + net_rawout(&h3270, wont_opt, sizeof(wont_opt));
1411 1411 trace_dsn("SENT %s %s\n", cmd(WONT), opt(c));
1412 1412 break;
1413 1413 }
... ... @@ -1418,7 +1418,7 @@ static int telnet_fsm(H3270 *session, unsigned char c)
1418 1418 if (h3270.myopts[c]) {
1419 1419 h3270.myopts[c] = 0;
1420 1420 wont_opt[2] = c;
1421   - net_rawout(wont_opt, sizeof(wont_opt));
  1421 + net_rawout(&h3270, wont_opt, sizeof(wont_opt));
1422 1422 trace_dsn("SENT %s %s\n", cmd(WONT), opt(c));
1423 1423 check_in3270(&h3270);
1424 1424 check_linemode(False);
... ... @@ -1464,7 +1464,7 @@ static int telnet_fsm(H3270 *session, unsigned char c)
1464 1464 (try_lu != CN && *try_lu) ? "@" : "",
1465 1465 (try_lu != CN && *try_lu) ? try_lu : "",
1466 1466 IAC, SE);
1467   - net_rawout((unsigned char *)tt_out, tb_len);
  1467 + net_rawout(&h3270, (unsigned char *)tt_out, tb_len);
1468 1468  
1469 1469 trace_dsn("SENT %s %s %s %.*s %s\n",
1470 1470 cmd(SB), opt(TELOPT_TTYPE),
... ... @@ -1528,7 +1528,7 @@ tn3270e_request(void)
1528 1528  
1529 1529 (void) sprintf(t, "%c%c", IAC, SE);
1530 1530  
1531   - net_rawout((unsigned char *)tt_out, tb_len);
  1531 + net_rawout(&h3270, (unsigned char *)tt_out, tb_len);
1532 1532  
1533 1533 trace_dsn("SENT %s %s DEVICE-TYPE REQUEST %.*s%s%s %s\n",
1534 1534 cmd(SB), opt(TELOPT_TN3270E), (int) strlen(h3270.termtype), tt_out + 5,
... ... @@ -1549,7 +1549,7 @@ backoff_tn3270e(const char *why)
1549 1549  
1550 1550 /* Tell the host 'no'. */
1551 1551 wont_opt[2] = TELOPT_TN3270E;
1552   - net_rawout(wont_opt, sizeof(wont_opt));
  1552 + net_rawout(&h3270, wont_opt, sizeof(wont_opt));
1553 1553 trace_dsn("SENT %s %s\n", cmd(WONT), opt(TELOPT_TN3270E));
1554 1554  
1555 1555 /* Restore the LU list; we may need to run it again in TN3270 mode. */
... ... @@ -1805,7 +1805,7 @@ tn3270e_subneg_send(unsigned char op, unsigned long funcs)
1805 1805 /* Complete and send out the protocol message. */
1806 1806 proto_buf[proto_len++] = IAC;
1807 1807 proto_buf[proto_len++] = SE;
1808   - net_rawout(proto_buf, proto_len);
  1808 + net_rawout(&h3270, proto_buf, proto_len);
1809 1809  
1810 1810 /* Complete and send out the trace text. */
1811 1811 trace_dsn("SENT %s %s FUNCTIONS %s %s %s\n",
... ... @@ -1983,7 +1983,7 @@ void net_exception(H3270 *session)
1983 1983 * EWOULDBLOCK.
1984 1984 */
1985 1985 static void
1986   -net_rawout(unsigned const char *buf, int len)
  1986 +net_rawout(H3270 *session, unsigned const char *buf, int len)
1987 1987 {
1988 1988 int nw;
1989 1989  
... ... @@ -2002,8 +2002,8 @@ net_rawout(unsigned const char *buf, int len)
2002 2002 # define n2w len
2003 2003 #endif
2004 2004 #if defined(HAVE_LIBSSL) /*[*/
2005   - if(h3270.ssl_con != NULL)
2006   - nw = SSL_write(h3270.ssl_con, (const char *) buf, n2w);
  2005 + if(session->ssl_con != NULL)
  2006 + nw = SSL_write(session->ssl_con, (const char *) buf, n2w);
2007 2007 else
2008 2008 #endif /*]*/
2009 2009  
... ... @@ -2014,10 +2014,10 @@ net_rawout(unsigned const char *buf, int len)
2014 2014 else
2015 2015 #endif
2016 2016 */
2017   - nw = send(h3270.sock, (const char *) buf, n2w, 0);
  2017 + nw = send(session->sock, (const char *) buf, n2w, 0);
2018 2018 if (nw < 0) {
2019 2019 #if defined(HAVE_LIBSSL) /*[*/
2020   - if (h3270.ssl_con != NULL)
  2020 + if (session->ssl_con != NULL)
2021 2021 {
2022 2022 unsigned long e;
2023 2023 char err_buf[120];
... ... @@ -2026,19 +2026,19 @@ net_rawout(unsigned const char *buf, int len)
2026 2026 (void) ERR_error_string(e, err_buf);
2027 2027 trace_dsn("RCVD SSL_write error %ld (%s)\n", e,err_buf);
2028 2028 popup_an_error(NULL,"SSL_write:\n%s", err_buf);
2029   - host_disconnect(&h3270,False);
  2029 + host_disconnect(session,False);
2030 2030 return;
2031 2031 }
2032 2032 #endif /*]*/
2033 2033 trace_dsn("RCVD socket error %d\n", errno);
2034 2034 if (socket_errno() == SE_EPIPE || socket_errno() == SE_ECONNRESET) {
2035   - host_disconnect(&h3270,False);
  2035 + host_disconnect(session,False);
2036 2036 return;
2037 2037 } else if (socket_errno() == SE_EINTR) {
2038 2038 goto bot;
2039 2039 } else {
2040 2040 popup_a_sockerr(NULL, N_( "Socket write error" ) );
2041   - host_disconnect(&h3270,True);
  2041 + host_disconnect(session,True);
2042 2042 return;
2043 2043 }
2044 2044 }
... ... @@ -2096,7 +2096,7 @@ net_hexansi_out(unsigned char *buf, int len)
2096 2096 }
2097 2097  
2098 2098 /* Send it to the host. */
2099   - net_rawout(xbuf, tbuf - xbuf);
  2099 + net_rawout(&h3270,xbuf, tbuf - xbuf);
2100 2100 lib3270_free(xbuf);
2101 2101 }
2102 2102  
... ... @@ -2105,10 +2105,11 @@ net_hexansi_out(unsigned char *buf, int len)
2105 2105 * Send user data out in ANSI mode, without cooked-mode processing.
2106 2106 */
2107 2107 static void
2108   -net_cookedout(const char *buf, int len)
  2108 +net_cookedout(H3270 *hSession, const char *buf, int len)
2109 2109 {
2110   -#if defined(X3270_TRACE) /*[*/
2111   - if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_DS_TRACE)) {
  2110 +#if defined(X3270_TRACE)
  2111 + if (lib3270_get_toggle(hSession,LIB3270_TOGGLE_DS_TRACE))
  2112 + {
2112 2113 int i;
2113 2114  
2114 2115 trace_dsn(">");
... ... @@ -2116,8 +2117,8 @@ net_cookedout(const char *buf, int len)
2116 2117 trace_dsn(" %s", ctl_see((int) *(buf+i)));
2117 2118 trace_dsn("\n");
2118 2119 }
2119   -#endif /*]*/
2120   - net_rawout((unsigned const char *) buf, len);
  2120 +#endif
  2121 + net_rawout(hSession,(unsigned const char *) buf, len);
2121 2122 }
2122 2123  
2123 2124  
... ... @@ -2126,11 +2127,10 @@ net_cookedout(const char *buf, int len)
2126 2127 * Send output in ANSI mode, including cooked-mode processing if
2127 2128 * appropriate.
2128 2129 */
2129   -static void
2130   -net_cookout(const char *buf, int len)
  2130 +static void net_cookout(H3270 *hSession, const char *buf, int len)
2131 2131 {
2132 2132  
2133   - if (!IN_ANSI || (h3270.kybdlock & KL_AWAITING_FIRST))
  2133 + if (!IN_ANSI || (hSession->kybdlock & KL_AWAITING_FIRST))
2134 2134 return;
2135 2135  
2136 2136 if (linemode) {
... ... @@ -2141,9 +2141,9 @@ net_cookout(const char *buf, int len)
2141 2141 c = buf[i];
2142 2142  
2143 2143 /* Input conversions. */
2144   - if (!lnext && c == '\r' && h3270.icrnl)
  2144 + if (!lnext && c == '\r' && hSession->icrnl)
2145 2145 c = '\n';
2146   - else if (!lnext && c == '\n' && h3270.inlcr)
  2146 + else if (!lnext && c == '\n' && hSession->inlcr)
2147 2147 c = '\r';
2148 2148  
2149 2149 /* Backslashes. */
... ... @@ -2178,7 +2178,7 @@ net_cookout(const char *buf, int len)
2178 2178 }
2179 2179 return;
2180 2180 } else
2181   - net_cookedout(buf, len);
  2181 + net_cookedout(&h3270, buf, len);
2182 2182 }
2183 2183  
2184 2184  
... ... @@ -2206,7 +2206,7 @@ ansi_process_s(const char *data)
2206 2206 static void
2207 2207 forward_data(void)
2208 2208 {
2209   - net_cookedout((char *) lbuf, lbptr - lbuf);
  2209 + net_cookedout(&h3270, (char *) lbuf, lbptr - lbuf);
2210 2210 cooked_init();
2211 2211 }
2212 2212  
... ... @@ -2721,7 +2721,7 @@ net_output(void)
2721 2721 /* Append the IAC EOR and transmit. */
2722 2722 *xoptr++ = IAC;
2723 2723 *xoptr++ = EOR;
2724   - net_rawout(xobuf, xoptr - xobuf);
  2724 + net_rawout(&h3270,xobuf, xoptr - xobuf);
2725 2725  
2726 2726 trace_dsn("SENT EOR\n");
2727 2727 ns_rsent++;
... ... @@ -2753,7 +2753,7 @@ tn3270e_ack(void)
2753 2753 trace_dsn("SENT TN3270E(RESPONSE POSITIVE-RESPONSE "
2754 2754 "%u) DEVICE-END\n",
2755 2755 h_in->seq_number[0] << 8 | h_in->seq_number[1]);
2756   - net_rawout(rsp_buf, rsp_len);
  2756 + net_rawout(&h3270, rsp_buf, rsp_len);
2757 2757 }
2758 2758  
2759 2759 /* Send a TN3270E negative response to the server. */
... ... @@ -2788,7 +2788,7 @@ tn3270e_nak(enum pds rv)
2788 2788 rsp_buf[rsp_len++] = IAC;
2789 2789 rsp_buf[rsp_len++] = EOR;
2790 2790 trace_dsn("SENT TN3270E(RESPONSE NEGATIVE-RESPONSE %u) %s\n",h_in->seq_number[0] << 8 | h_in->seq_number[1], neg);
2791   - net_rawout(rsp_buf, rsp_len);
  2791 + net_rawout(&h3270, rsp_buf, rsp_len);
2792 2792 }
2793 2793  
2794 2794 #if defined(X3270_TRACE) /*[*/
... ... @@ -2856,9 +2856,9 @@ net_sendc(char c)
2856 2856 */
2857 2857 ) {
2858 2858 /* CR must be quoted */
2859   - net_cookout("\r"\r\0", 2);", 2);
  2859 + net_cookout(&h3270,"\r"\r\0", 2);", 2);
2860 2860 } else {
2861   - net_cookout(&c, 1);
  2861 + net_cookout(&h3270,&c, 1);
2862 2862 }
2863 2863 }
2864 2864  
... ... @@ -2870,7 +2870,7 @@ net_sendc(char c)
2870 2870 void
2871 2871 net_sends(const char *s)
2872 2872 {
2873   - net_cookout(s, strlen(s));
  2873 + net_cookout(&h3270, s, strlen(s));
2874 2874 }
2875 2875  
2876 2876  
... ... @@ -2881,7 +2881,7 @@ net_sends(const char *s)
2881 2881 void
2882 2882 net_send_erase(void)
2883 2883 {
2884   - net_cookout(&verase, 1);
  2884 + net_cookout(&h3270, &verase, 1);
2885 2885 }
2886 2886  
2887 2887  
... ... @@ -2892,7 +2892,7 @@ net_send_erase(void)
2892 2892 void
2893 2893 net_send_kill(void)
2894 2894 {
2895   - net_cookout(&vkill, 1);
  2895 + net_cookout(&h3270, &vkill, 1);
2896 2896 }
2897 2897  
2898 2898  
... ... @@ -2903,7 +2903,7 @@ net_send_kill(void)
2903 2903 void
2904 2904 net_send_werase(void)
2905 2905 {
2906   - net_cookout(&vwerase, 1);
  2906 + net_cookout(&h3270, &vwerase, 1);
2907 2907 }
2908 2908 #endif /*]*/
2909 2909  
... ... @@ -2959,7 +2959,7 @@ net_break(void)
2959 2959 static unsigned char buf[] = { IAC, BREAK };
2960 2960  
2961 2961 /* I don't know if we should first send TELNET synch ? */
2962   - net_rawout(buf, sizeof(buf));
  2962 + net_rawout(&h3270, buf, sizeof(buf));
2963 2963 trace_dsn("SENT BREAK\n");
2964 2964 }
2965 2965  
... ... @@ -2974,7 +2974,7 @@ net_interrupt(void)
2974 2974 static unsigned char buf[] = { IAC, IP };
2975 2975  
2976 2976 /* I don't know if we should first send TELNET synch ? */
2977   - net_rawout(buf, sizeof(buf));
  2977 + net_rawout(&h3270, buf, sizeof(buf));
2978 2978 trace_dsn("SENT IP\n");
2979 2979 }
2980 2980  
... ... @@ -3001,7 +3001,7 @@ net_abort(void)
3001 3001 case E_NVT:
3002 3002 break;
3003 3003 case E_SSCP:
3004   - net_rawout(buf, sizeof(buf));
  3004 + net_rawout(&h3270, buf, sizeof(buf));
3005 3005 trace_dsn("SENT AO\n");
3006 3006 if (tn3270e_bound ||
3007 3007 !(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) {
... ... @@ -3010,7 +3010,7 @@ net_abort(void)
3010 3010 }
3011 3011 break;
3012 3012 case E_3270:
3013   - net_rawout(buf, sizeof(buf));
  3013 + net_rawout(&h3270, buf, sizeof(buf));
3014 3014 trace_dsn("SENT AO\n");
3015 3015 tn3270e_submode = E_SSCP;
3016 3016 check_in3270(&h3270);
... ...