Commit 13a4641db79e9e5a2cd2e7069b8df39db315257c

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

Alterando macros para suportar multi-sessão

3270ds.h 0 → 100644
@@ -0,0 +1,333 @@ @@ -0,0 +1,333 @@
  1 +/*
  2 + * Modifications Copyright 1993, 1994, 1995, 1999, 2000, 2002, 2003, 2004,
  3 + * 2005 by Paul Mattes.
  4 + * RPQNAMES modifications Copyright 2004 by Don Russell.
  5 + * Original X11 Port Copyright 1990 by Jeff Sparkes.
  6 + * Permission to use, copy, modify, and distribute this software and its
  7 + * documentation for any purpose and without fee is hereby granted,
  8 + * provided that the above copyright notice appear in all copies and that
  9 + * both that copyright notice and this permission notice appear in
  10 + * supporting documentation.
  11 + *
  12 + * Copyright 1989 by Georgia Tech Research Corporation, Atlanta, GA 30332.
  13 + * All Rights Reserved. GTRC hereby grants public use of this software.
  14 + * Derivative works based on this software must incorporate this copyright
  15 + * notice.
  16 + *
  17 + * x3270, c3270, s3270, tcl3270 and pr3287 are distributed in the hope that
  18 + * they will be useful, but WITHOUT ANY WARRANTY; without even the implied
  19 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  20 + * file LICENSE for more details.
  21 + */
  22 +
  23 +/*
  24 + * 3270ds.h
  25 + *
  26 + * Header file for the 3270 Data Stream Protocol.
  27 + */
  28 +
  29 +/* 3270 commands */
  30 +#define CMD_W 0x01 /* write */
  31 +#define CMD_RB 0x02 /* read buffer */
  32 +#define CMD_NOP 0x03 /* no-op */
  33 +#define CMD_EW 0x05 /* erase/write */
  34 +#define CMD_RM 0x06 /* read modified */
  35 +#define CMD_EWA 0x0d /* erase/write alternate */
  36 +#define CMD_RMA 0x0e /* read modified all */
  37 +#define CMD_EAU 0x0f /* erase all unprotected */
  38 +#define CMD_WSF 0x11 /* write structured field */
  39 +
  40 +/* SNA 3270 commands */
  41 +#define SNA_CMD_RMA 0x6e /* read modified all */
  42 +#define SNA_CMD_EAU 0x6f /* erase all unprotected */
  43 +#define SNA_CMD_EWA 0x7e /* erase/write alternate */
  44 +#define SNA_CMD_W 0xf1 /* write */
  45 +#define SNA_CMD_RB 0xf2 /* read buffer */
  46 +#define SNA_CMD_WSF 0xf3 /* write structured field */
  47 +#define SNA_CMD_EW 0xf5 /* erase/write */
  48 +#define SNA_CMD_RM 0xf6 /* read modified */
  49 +
  50 +/* 3270 orders */
  51 +#define ORDER_PT 0x05 /* program tab */
  52 +#define ORDER_GE 0x08 /* graphic escape */
  53 +#define ORDER_SBA 0x11 /* set buffer address */
  54 +#define ORDER_EUA 0x12 /* erase unprotected to address */
  55 +#define ORDER_IC 0x13 /* insert cursor */
  56 +#define ORDER_SF 0x1d /* start field */
  57 +#define ORDER_SA 0x28 /* set attribute */
  58 +#define ORDER_SFE 0x29 /* start field extended */
  59 +#define ORDER_YALE 0x2b /* Yale sub command */
  60 +#define ORDER_MF 0x2c /* modify field */
  61 +#define ORDER_RA 0x3c /* repeat to address */
  62 +
  63 +#define FCORDER_NULL 0x00 /* format control: null */
  64 +#define FCORDER_FF 0x0c /* form feed */
  65 +#define FCORDER_CR 0x0d /* carriage return */
  66 +#define FCORDER_SO 0x0e /* shift out (DBCS subfield) */
  67 +#define FCORDER_SI 0x0f /* shift in (DBCS end) */
  68 +#define FCORDER_NL 0x15 /* new line */
  69 +#define FCORDER_EM 0x19 /* end of medium */
  70 +#define FCORDER_DUP 0x1c /* duplicate */
  71 +#define FCORDER_FM 0x1e /* field mark */
  72 +#define FCORDER_SUB 0x3f /* substitute */
  73 +#define FCORDER_EO 0xff /* eight ones */
  74 +
  75 +/* SCS control code, some overlap orders */
  76 +#define SCS_BS 0x16 /* Back Space */
  77 +#define SCS_BEL 0x2f /* Bell Function */
  78 +#define SCS_CR 0x0d /* Carriage Return */
  79 +#define SCS_ENP 0x14 /* Enable Presentation */
  80 +#define SCS_FF 0x0c /* Forms Feed */
  81 +#define SCS_GE 0x08 /* Graphic Escape */
  82 +#define SCS_HT 0x05 /* Horizontal Tab */
  83 +#define SCS_INP 0x24 /* Inhibit Presentation */
  84 +#define SCS_IRS 0x1e /* Interchange-Record Separator */
  85 +#define SCS_LF 0x25 /* Line Feed */
  86 +#define SCS_NL 0x15 /* New Line */
  87 +#define SCS_SA 0x28 /* Set Attribute: */
  88 +#define SCS_SA_RESET 0x00 /* Reset all */
  89 +#define SCS_SA_HIGHLIGHT 0x41 /* Highlighting */
  90 +#define SCS_SA_CS 0x42 /* Character set */
  91 +#define SCS_SA_GRID 0xc2 /* Grid */
  92 +#define SCS_SET 0x2b /* Set: */
  93 +#define SCS_SHF 0xc1 /* Horizontal format */
  94 +#define SCS_SLD 0xc6 /* Line Density */
  95 +#define SCS_SVF 0xc2 /* Vertical Format */
  96 +#define SCS_SO 0x0e /* Shift out (DBCS subfield start) */
  97 +#define SCS_SI 0x0f /* Shift in (DBCS subfield end) */
  98 +#define SCS_TRN 0x35 /* Transparent */
  99 +#define SCS_VCS 0x04 /* Vertical Channel Select */
  100 +#define SCS_VT 0x0b /* Vertical Tab */
  101 +
  102 +/* Structured fields */
  103 +#define SF_READ_PART 0x01 /* read partition */
  104 +#define SF_RP_QUERY 0x02 /* query */
  105 +#define SF_RP_QLIST 0x03 /* query list */
  106 +#define SF_RPQ_LIST 0x00 /* QCODE list */
  107 +#define SF_RPQ_EQUIV 0x40 /* equivalent+ QCODE list */
  108 +#define SF_RPQ_ALL 0x80 /* all */
  109 +#define SF_ERASE_RESET 0x03 /* erase/reset */
  110 +#define SF_ER_DEFAULT 0x00 /* default */
  111 +#define SF_ER_ALT 0x80 /* alternate */
  112 +#define SF_SET_REPLY_MODE 0x09 /* set reply mode */
  113 +#define SF_SRM_FIELD 0x00 /* field */
  114 +#define SF_SRM_XFIELD 0x01 /* extended field */
  115 +#define SF_SRM_CHAR 0x02 /* character */
  116 +#define SF_CREATE_PART 0x0c /* create partition */
  117 +#define CPFLAG_PROT 0x40 /* protected flag */
  118 +#define CPFLAG_COPY_PS 0x20 /* local copy to presentation space */
  119 +#define CPFLAG_BASE 0x07 /* base character set index */
  120 +#define SF_OUTBOUND_DS 0x40 /* outbound 3270 DS */
  121 +#define SF_TRANSFER_DATA 0xd0 /* file transfer open request */
  122 +
  123 +/* Query replies */
  124 +#define QR_SUMMARY 0x80 /* summary */
  125 +#define QR_USABLE_AREA 0x81 /* usable area */
  126 +#define QR_ALPHA_PART 0x84 /* alphanumeric partitions */
  127 +#define QR_CHARSETS 0x85 /* character sets */
  128 +#define QR_COLOR 0x86 /* color */
  129 +#define QR_HIGHLIGHTING 0x87 /* highlighting */
  130 +#define QR_REPLY_MODES 0x88 /* reply modes */
  131 +#define QR_DBCS_ASIA 0x91 /* DBCS-Asia */
  132 +#define QR_PC3270 0x93 /* PC3270 */
  133 +#define QR_DDM 0x95 /* distributed data management */
  134 +#define QR_RPQNAMES 0xa1 /* RPQ names */
  135 +#define QR_IMP_PART 0xa6 /* implicit partition */
  136 +#define QR_NULL 0xff /* null */
  137 +
  138 +#define BA_TO_ROW(ba) ((ba) / hSession->cols)
  139 +#define BA_TO_COL(ba) ((ba) % hSession->cols)
  140 +#define ROWCOL_TO_BA(r,c) (((r) * hSession->cols) + c)
  141 +#define INC_BA(ba) { (ba) = ((ba) + 1) % (hSession->cols * hSession->rows); }
  142 +#define DEC_BA(ba) { (ba) = (ba) ? (ba - 1) : ((hSession->cols*hSession->rows) - 1); }
  143 +
  144 +/** Field attributes. */
  145 +#define FA_PRINTABLE 0xc0 /**< these make the character "printable" */
  146 +#define FA_PROTECT 0x20 /**< unprotected (0) / protected (1) */
  147 +#define FA_NUMERIC 0x10 /**< alphanumeric (0) /numeric (1) */
  148 +#define FA_INTENSITY 0x0c /**< display/selector pen detectable: */
  149 +#define FA_INT_NORM_NSEL 0x00 /**< 00 normal, non-detect */
  150 +#define FA_INT_NORM_SEL 0x04 /**< 01 normal, detectable */
  151 +#define FA_INT_HIGH_SEL 0x08 /**< 10 intensified, detectable */
  152 +#define FA_INT_ZERO_NSEL 0x0c /**< 11 nondisplay, non-detect */
  153 +#define FA_RESERVED 0x02 /**< must be 0 */
  154 +#define FA_MODIFY 0x01 /**< modified (1) */
  155 +
  156 +/* Bits in the field attribute that are stored. */
  157 +#define FA_MASK (FA_PROTECT | FA_NUMERIC | FA_INTENSITY | FA_MODIFY)
  158 +
  159 +/* Tests for various attribute properties. */
  160 +#define FA_IS_MODIFIED(c) ((c) & FA_MODIFY)
  161 +#define FA_IS_NUMERIC(c) ((c) & FA_NUMERIC)
  162 +#define FA_IS_PROTECTED(c) ((c) & FA_PROTECT)
  163 +#define FA_IS_SKIP(c) (((c) & FA_PROTECT) && ((c) & FA_NUMERIC))
  164 +
  165 +#define FA_IS_ZERO(c) \
  166 + (((c) & FA_INTENSITY) == FA_INT_ZERO_NSEL)
  167 +#define FA_IS_HIGH(c) \
  168 + (((c) & FA_INTENSITY) == FA_INT_HIGH_SEL)
  169 +#define FA_IS_NORMAL(c) \
  170 + ( \
  171 + ((c) & FA_INTENSITY) == FA_INT_NORM_NSEL \
  172 + || \
  173 + ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \
  174 + )
  175 +#define FA_IS_SELECTABLE(c) \
  176 + ( \
  177 + ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \
  178 + || \
  179 + ((c) & FA_INTENSITY) == FA_INT_HIGH_SEL \
  180 + )
  181 +#define FA_IS_INTENSE(c) \
  182 + ((c & FA_INT_HIGH_SEL) == FA_INT_HIGH_SEL)
  183 +
  184 +/* Extended attributes */
  185 +#define XA_ALL 0x00
  186 +#define XA_3270 0xc0
  187 +#define XA_VALIDATION 0xc1
  188 +#define XAV_FILL 0x04
  189 +#define XAV_ENTRY 0x02
  190 +#define XAV_TRIGGER 0x01
  191 +#define XA_OUTLINING 0xc2
  192 +#define XAO_UNDERLINE 0x01
  193 +#define XAO_RIGHT 0x02
  194 +#define XAO_OVERLINE 0x04
  195 +#define XAO_LEFT 0x08
  196 +#define XA_HIGHLIGHTING 0x41
  197 +#define XAH_DEFAULT 0x00
  198 +#define XAH_NORMAL 0xf0
  199 +#define XAH_BLINK 0xf1
  200 +#define XAH_REVERSE 0xf2
  201 +#define XAH_UNDERSCORE 0xf4
  202 +#define XAH_INTENSIFY 0xf8
  203 +#define XA_FOREGROUND 0x42
  204 +#define XAC_DEFAULT 0x00
  205 +#define XA_CHARSET 0x43
  206 +#define XA_BACKGROUND 0x45
  207 +#define XA_TRANSPARENCY 0x46
  208 +#define XAT_DEFAULT 0x00
  209 +#define XAT_OR 0xf0
  210 +#define XAT_XOR 0xf1
  211 +#define XAT_OPAQUE 0xff
  212 +#define XA_INPUT_CONTROL 0xfe
  213 +#define XAI_DISABLED 0x00
  214 +#define XAI_ENABLED 0x01
  215 +
  216 +/* WCC definitions */
  217 +#define WCC_RESET(c) ((c) & 0x40)
  218 +#define WCC_START_PRINTER(c) ((c) & 0x08)
  219 +#define WCC_SOUND_ALARM(c) ((c) & 0x04)
  220 +#define WCC_KEYBOARD_RESTORE(c) ((c) & 0x02)
  221 +#define WCC_RESET_MDT(c) ((c) & 0x01)
  222 +
  223 +/* AIDs */
  224 +#define AID_NO 0x60 /* no AID generated */
  225 +#define AID_QREPLY 0x61
  226 +#define AID_ENTER 0x7d
  227 +#define AID_PF1 0xf1
  228 +#define AID_PF2 0xf2
  229 +#define AID_PF3 0xf3
  230 +#define AID_PF4 0xf4
  231 +#define AID_PF5 0xf5
  232 +#define AID_PF6 0xf6
  233 +#define AID_PF7 0xf7
  234 +#define AID_PF8 0xf8
  235 +#define AID_PF9 0xf9
  236 +#define AID_PF10 0x7a
  237 +#define AID_PF11 0x7b
  238 +#define AID_PF12 0x7c
  239 +#define AID_PF13 0xc1
  240 +#define AID_PF14 0xc2
  241 +#define AID_PF15 0xc3
  242 +#define AID_PF16 0xc4
  243 +#define AID_PF17 0xc5
  244 +#define AID_PF18 0xc6
  245 +#define AID_PF19 0xc7
  246 +#define AID_PF20 0xc8
  247 +#define AID_PF21 0xc9
  248 +#define AID_PF22 0x4a
  249 +#define AID_PF23 0x4b
  250 +#define AID_PF24 0x4c
  251 +#define AID_OICR 0xe6
  252 +#define AID_MSR_MHS 0xe7
  253 +#define AID_SELECT 0x7e
  254 +#define AID_PA1 0x6c
  255 +#define AID_PA2 0x6e
  256 +#define AID_PA3 0x6b
  257 +#define AID_CLEAR 0x6d
  258 +#define AID_SYSREQ 0xf0
  259 +
  260 +#define AID_SF 0x88
  261 +#define SFID_QREPLY 0x81
  262 +
  263 +/* Colors */
  264 +#define COLOR_NEUTRAL_BLACK 0
  265 +#define COLOR_BLUE 1
  266 +#define COLOR_RED 2
  267 +#define COLOR_PINK 3
  268 +#define COLOR_GREEN 4
  269 +#define COLOR_TURQUOISE 5
  270 +#define COLOR_YELLOW 6
  271 +#define COLOR_NEUTRAL_WHITE 7
  272 +#define COLOR_BLACK 8
  273 +#define COLOR_DEEP_BLUE 9
  274 +#define COLOR_ORANGE 10
  275 +#define COLOR_PURPLE 11
  276 +#define COLOR_PALE_GREEN 12
  277 +#define COLOR_PALE_TURQUOISE 13
  278 +#define COLOR_GREY 14
  279 +#define COLOR_WHITE 15
  280 +
  281 +/* Data stream manipulation macros. */
  282 +#define MASK32 0xff000000U
  283 +#define MASK24 0x00ff0000U
  284 +#define MASK16 0x0000ff00U
  285 +#define MASK08 0x000000ffU
  286 +#define MINUS1 0xffffffffU
  287 +
  288 +#define SET16(ptr, val) { \
  289 + *((ptr)++) = ((val) & MASK16) >> 8; \
  290 + *((ptr)++) = ((val) & MASK08); \
  291 +}
  292 +#define GET16(val, ptr) { \
  293 + (val) = *((ptr)+1); \
  294 + (val) += *(ptr) << 8; \
  295 +}
  296 +#define SET32(ptr, val) { \
  297 + *((ptr)++) = ((val) & MASK32) >> 24; \
  298 + *((ptr)++) = ((val) & MASK24) >> 16; \
  299 + *((ptr)++) = ((val) & MASK16) >> 8; \
  300 + *((ptr)++) = ((val) & MASK08); \
  301 +}
  302 +#define HIGH8(s) (((s) >> 8) & 0xff)
  303 +#define LOW8(s) ((s) & 0xff)
  304 +
  305 +/* Other EBCDIC control codes. */
  306 +#define EBC_null 0x00
  307 +#define EBC_ff 0x0c
  308 +#define EBC_cr 0x0d
  309 +#define EBC_so 0x0e
  310 +#define EBC_si 0x0f
  311 +#define EBC_nl 0x15
  312 +#define EBC_em 0x19
  313 +#define EBC_dup 0x1c
  314 +#define EBC_fm 0x1e
  315 +#define EBC_space 0x40
  316 +#define EBC_nobreakspace 0x41
  317 +#define EBC_period 0x4b
  318 +#define EBC_ampersand 0x50
  319 +#define EBC_underscore 0x6d
  320 +#define EBC_greater 0x6e
  321 +#define EBC_question 0x6f
  322 +#define EBC_Yacute 0xad
  323 +#define EBC_diaeresis 0xbd
  324 +#define EBC_minus 0xca
  325 +#define EBC_0 0xf0
  326 +#define EBC_9 0xf9
  327 +#define EBC_eo 0xff
  328 +
  329 +/* BIND definitions. */
  330 +#define BIND_RU LIB3270_BIND_RU
  331 +#define BIND_OFF_PLU_NAME_LEN LIB3270_BIND_OFF_PLU_NAME_LEN
  332 +#define BIND_OFF_PLU_NAME LIB3270_BIND_OFF_PLU_NAME
  333 +#define BIND_PLU_NAME_MAX LIB3270_BIND_PLU_NAME_MAX
@@ -1177,7 +1177,7 @@ ansi_printing(H3270 *hSession, int ig1 unused, int ig2 unused) @@ -1177,7 +1177,7 @@ ansi_printing(H3270 *hSession, int ig1 unused, int ig2 unused)
1177 ctlr_add(hSession,hSession->cursor_addr, ebc_ch, default_cs); 1177 ctlr_add(hSession,hSession->cursor_addr, ebc_ch, default_cs);
1178 #if defined(X3270_DBCS) /*[*/ 1178 #if defined(X3270_DBCS) /*[*/
1179 if (default_cs == CS_DBCS) 1179 if (default_cs == CS_DBCS)
1180 - (void) ctlr_dbcs_postprocess(); 1180 + (void) ctlr_dbcs_postprocess(hSession);
1181 #endif /*]*/ 1181 #endif /*]*/
1182 break; 1182 break;
1183 } 1183 }
@@ -40,7 +40,7 @@ @@ -40,7 +40,7 @@
40 40
41 #include "globals.h" 41 #include "globals.h"
42 #include <errno.h> 42 #include <errno.h>
43 -#include <lib3270/3270ds.h> 43 +#include "3270ds.h"
44 //#include "appres.h" 44 //#include "appres.h"
45 // #include "ctlr.h" 45 // #include "ctlr.h"
46 #include "screen.h" 46 #include "screen.h"
@@ -237,19 +237,19 @@ void ctlr_set_rows_cols(H3270 *session, int mn, int ovc, int ovr) @@ -237,19 +237,19 @@ void ctlr_set_rows_cols(H3270 *session, int mn, int ovc, int ovr)
237 * Set the formatted screen flag. A formatted screen is a screen that 237 * Set the formatted screen flag. A formatted screen is a screen that
238 * has at least one field somewhere on it. 238 * has at least one field somewhere on it.
239 */ 239 */
240 -static void set_formatted(H3270 *session) 240 +static void set_formatted(H3270 *hSession)
241 { 241 {
242 register int baddr; 242 register int baddr;
243 243
244 - CHECK_SESSION_HANDLE(session); 244 + CHECK_SESSION_HANDLE(hSession);
245 245
246 - session->formatted = False; 246 + hSession->formatted = False;
247 baddr = 0; 247 baddr = 0;
248 do 248 do
249 { 249 {
250 - if(session->ea_buf[baddr].fa) 250 + if(hSession->ea_buf[baddr].fa)
251 { 251 {
252 - session->formatted = True; 252 + hSession->formatted = True;
253 break; 253 break;
254 } 254 }
255 INC_BA(baddr); 255 INC_BA(baddr);
@@ -259,53 +259,53 @@ static void set_formatted(H3270 *session) @@ -259,53 +259,53 @@ static void set_formatted(H3270 *session)
259 /* 259 /*
260 * Called when a host is half connected. 260 * Called when a host is half connected.
261 */ 261 */
262 -static void ctlr_half_connect(H3270 *session, int ignored unused, void *dunno) 262 +static void ctlr_half_connect(H3270 *hSession, int ignored unused, void *dunno)
263 { 263 {
264 - ticking_start(session,True); 264 + ticking_start(hSession,True);
265 } 265 }
266 266
267 /* 267 /*
268 * Called when a host connects, disconnects, or changes ANSI/3270 modes. 268 * Called when a host connects, disconnects, or changes ANSI/3270 modes.
269 */ 269 */
270 -static void ctlr_connect(H3270 *session, int ignored unused, void *dunno) 270 +static void ctlr_connect(H3270 *hSession, int ignored unused, void *dunno)
271 { 271 {
272 - ticking_stop(session);  
273 - status_untiming(session); 272 + ticking_stop(hSession);
  273 + status_untiming(hSession);
274 274
275 - if (session->ever_3270)  
276 - session->ea_buf[-1].fa = FA_PRINTABLE | FA_MODIFY; 275 + if (hSession->ever_3270)
  276 + hSession->ea_buf[-1].fa = FA_PRINTABLE | FA_MODIFY;
277 else 277 else
278 - session->ea_buf[-1].fa = FA_PRINTABLE | FA_PROTECT;  
279 - if (!IN_3270 || (IN_SSCP && (session->kybdlock & KL_OIA_TWAIT))) 278 + hSession->ea_buf[-1].fa = FA_PRINTABLE | FA_PROTECT;
  279 + if (!IN_3270 || (IN_SSCP && (hSession->kybdlock & KL_OIA_TWAIT)))
280 { 280 {
281 - lib3270_kybdlock_clear(session,KL_OIA_TWAIT);  
282 - status_reset(session); 281 + lib3270_kybdlock_clear(hSession,KL_OIA_TWAIT);
  282 + status_reset(hSession);
283 } 283 }
284 284
285 - session->default_fg = 0x00;  
286 - session->default_bg = 0x00;  
287 - session->default_gr = 0x00;  
288 - session->default_cs = 0x00;  
289 - session->default_ic = 0x00;  
290 - session->reply_mode = SF_SRM_FIELD;  
291 - session->crm_nattr = 0; 285 + hSession->default_fg = 0x00;
  286 + hSession->default_bg = 0x00;
  287 + hSession->default_gr = 0x00;
  288 + hSession->default_cs = 0x00;
  289 + hSession->default_ic = 0x00;
  290 + hSession->reply_mode = SF_SRM_FIELD;
  291 + hSession->crm_nattr = 0;
292 } 292 }
293 293
294 294
295 295
296 -LIB3270_EXPORT int lib3270_field_addr(H3270 *h, int baddr) 296 +LIB3270_EXPORT int lib3270_field_addr(H3270 *hSession, int baddr)
297 { 297 {
298 int sbaddr; 298 int sbaddr;
299 299
300 - CHECK_SESSION_HANDLE(h); 300 + CHECK_SESSION_HANDLE(hSession);
301 301
302 - if (!h->formatted) 302 + if (!hSession->formatted)
303 return -1; 303 return -1;
304 304
305 sbaddr = baddr; 305 sbaddr = baddr;
306 do 306 do
307 { 307 {
308 - if(h->ea_buf[baddr].fa) 308 + if(hSession->ea_buf[baddr].fa)
309 return baddr; 309 return baddr;
310 DEC_BA(baddr); 310 DEC_BA(baddr);
311 } while (baddr != sbaddr); 311 } while (baddr != sbaddr);
@@ -316,23 +316,24 @@ LIB3270_EXPORT int lib3270_field_addr(H3270 *h, int baddr) @@ -316,23 +316,24 @@ LIB3270_EXPORT int lib3270_field_addr(H3270 *h, int baddr)
316 /* 316 /*
317 * Get Field width 317 * Get Field width
318 */ 318 */
319 -int lib3270_field_length(H3270 *h, int baddr) 319 +int lib3270_field_length(H3270 *hSession, int baddr)
320 { 320 {
321 int saddr; 321 int saddr;
322 int addr; 322 int addr;
323 int width = 0; 323 int width = 0;
324 324
325 - CHECK_SESSION_HANDLE(h); 325 + CHECK_SESSION_HANDLE(hSession);
326 326
327 - addr = find_field_attribute(h,baddr); 327 + addr = find_field_attribute(hSession,baddr);
328 328
329 if(addr < 0) 329 if(addr < 0)
330 return -1; 330 return -1;
331 331
332 saddr = addr; 332 saddr = addr;
333 INC_BA(addr); 333 INC_BA(addr);
334 - do {  
335 - if(h->ea_buf[addr].fa) 334 + do
  335 + {
  336 + if(hSession->ea_buf[addr].fa)
336 return width; 337 return width;
337 INC_BA(addr); 338 INC_BA(addr);
338 width++; 339 width++;
@@ -346,9 +347,9 @@ int lib3270_field_length(H3270 *h, int baddr) @@ -346,9 +347,9 @@ int lib3270_field_length(H3270 *h, int baddr)
346 * Find the field attribute for the given buffer address. Return its address 347 * Find the field attribute for the given buffer address. Return its address
347 * rather than its value. 348 * rather than its value.
348 */ 349 */
349 -unsigned char get_field_attribute(H3270 *h, int baddr) 350 +unsigned char get_field_attribute(H3270 *hSession, int baddr)
350 { 351 {
351 - return h->ea_buf[find_field_attribute(h,baddr)].fa; 352 + return hSession->ea_buf[find_field_attribute(hSession,baddr)].fa;
352 } 353 }
353 354
354 /* 355 /*
@@ -356,7 +357,7 @@ unsigned char get_field_attribute(H3270 *h, int baddr) @@ -356,7 +357,7 @@ unsigned char get_field_attribute(H3270 *h, int baddr)
356 * unprotected attribute byte, or 0 if no nonzero-width unprotected field 357 * unprotected attribute byte, or 0 if no nonzero-width unprotected field
357 * can be found. 358 * can be found.
358 */ 359 */
359 -int next_unprotected(H3270 *session, int baddr0) 360 +int next_unprotected(H3270 *hSession, int baddr0)
360 { 361 {
361 register int baddr, nbaddr; 362 register int baddr, nbaddr;
362 363
@@ -365,7 +366,7 @@ int next_unprotected(H3270 *session, int baddr0) @@ -365,7 +366,7 @@ int next_unprotected(H3270 *session, int baddr0)
365 { 366 {
366 baddr = nbaddr; 367 baddr = nbaddr;
367 INC_BA(nbaddr); 368 INC_BA(nbaddr);
368 - if(session->ea_buf[baddr].fa &&!FA_IS_PROTECTED(session->ea_buf[baddr].fa) &&!session->ea_buf[nbaddr].fa) 369 + if(hSession->ea_buf[baddr].fa &&!FA_IS_PROTECTED(hSession->ea_buf[baddr].fa) &&!hSession->ea_buf[nbaddr].fa)
369 return nbaddr; 370 return nbaddr;
370 } while (nbaddr != baddr0); 371 } while (nbaddr != baddr0);
371 372
@@ -1267,7 +1268,7 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er @@ -1267,7 +1268,7 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er
1267 trace_ds(hSession,"%s",rcba(hSession,baddr)); 1268 trace_ds(hSession,"%s",rcba(hSession,baddr));
1268 1269
1269 previous = ORDER; 1270 previous = ORDER;
1270 - if (baddr >= h3270.cols * h3270.rows) 1271 + if (baddr >= hSession->cols * hSession->rows)
1271 { 1272 {
1272 ABORT_WRITE("invalid EUA address"); 1273 ABORT_WRITE("invalid EUA address");
1273 } 1274 }
@@ -1283,16 +1284,15 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er @@ -1283,16 +1284,15 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er
1283 } 1284 }
1284 do 1285 do
1285 { 1286 {
1286 - if (h3270.ea_buf[h3270.buffer_addr].fa)  
1287 - current_fa = h3270.ea_buf[h3270.buffer_addr].fa; 1287 + if (hSession->ea_buf[hSession->buffer_addr].fa)
  1288 + current_fa = hSession->ea_buf[hSession->buffer_addr].fa;
1288 else if (!FA_IS_PROTECTED(current_fa)) 1289 else if (!FA_IS_PROTECTED(current_fa))
1289 { 1290 {
1290 - ctlr_add(&h3270,h3270.buffer_addr, EBC_null,  
1291 - CS_BASE); 1291 + ctlr_add(hSession,hSession->buffer_addr, EBC_null,CS_BASE);
1292 } 1292 }
1293 - INC_BA(h3270.buffer_addr);  
1294 - } while (h3270.buffer_addr != baddr);  
1295 - current_fa = get_field_attribute(hSession,h3270.buffer_addr); 1293 + INC_BA(hSession->buffer_addr);
  1294 + } while (hSession->buffer_addr != baddr);
  1295 + current_fa = get_field_attribute(hSession,hSession->buffer_addr);
1296 last_cmd = True; 1296 last_cmd = True;
1297 last_zpt = False; 1297 last_zpt = False;
1298 break; 1298 break;
@@ -1308,14 +1308,14 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er @@ -1308,14 +1308,14 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er
1308 if (*cp) 1308 if (*cp)
1309 trace_ds(hSession,"'"); 1309 trace_ds(hSession,"'");
1310 1310
1311 - ctlr_add(hSession,h3270.buffer_addr, *cp, CS_GE);  
1312 - ctlr_add_fg(hSession,h3270.buffer_addr, h3270.default_fg);  
1313 - ctlr_add_bg(hSession,h3270.buffer_addr, h3270.default_bg);  
1314 - ctlr_add_gr(hSession,h3270.buffer_addr, h3270.default_gr);  
1315 - ctlr_add_ic(hSession,h3270.buffer_addr, h3270.default_ic);  
1316 - INC_BA(h3270.buffer_addr); 1311 + ctlr_add(hSession,hSession->buffer_addr, *cp, CS_GE);
  1312 + ctlr_add_fg(hSession,hSession->buffer_addr, hSession->default_fg);
  1313 + ctlr_add_bg(hSession,hSession->buffer_addr, hSession->default_bg);
  1314 + ctlr_add_gr(hSession,hSession->buffer_addr, hSession->default_gr);
  1315 + ctlr_add_ic(hSession,hSession->buffer_addr, hSession->default_ic);
  1316 + INC_BA(hSession->buffer_addr);
1317 1317
1318 - current_fa = get_field_attribute(hSession,h3270.buffer_addr); 1318 + current_fa = get_field_attribute(hSession,hSession->buffer_addr);
1319 last_cmd = False; 1319 last_cmd = False;
1320 last_zpt = False; 1320 last_zpt = False;
1321 break; 1321 break;
@@ -1323,11 +1323,11 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er @@ -1323,11 +1323,11 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er
1323 case ORDER_MF: /* modify field */ 1323 case ORDER_MF: /* modify field */
1324 END_TEXT("ModifyField"); 1324 END_TEXT("ModifyField");
1325 if (previous != SBA) 1325 if (previous != SBA)
1326 - trace_ds(hSession,"%s",rcba(hSession,h3270.buffer_addr)); 1326 + trace_ds(hSession,"%s",rcba(hSession,hSession->buffer_addr));
1327 previous = ORDER; 1327 previous = ORDER;
1328 cp++; 1328 cp++;
1329 na = *cp; 1329 na = *cp;
1330 - if (h3270.ea_buf[h3270.buffer_addr].fa) 1330 + if (hSession->ea_buf[hSession->buffer_addr].fa)
1331 { 1331 {
1332 for (i = 0; i < (int)na; i++) 1332 for (i = 0; i < (int)na; i++)
1333 { 1333 {
@@ -1336,8 +1336,7 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er @@ -1336,8 +1336,7 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er
1336 { 1336 {
1337 trace_ds(hSession," 3270"); 1337 trace_ds(hSession," 3270");
1338 cp++; 1338 cp++;
1339 - ctlr_add_fa(hSession,h3270.buffer_addr, *cp,  
1340 - h3270.ea_buf[h3270.buffer_addr].cs); 1339 + ctlr_add_fa(hSession,hSession->buffer_addr, *cp,hSession->ea_buf[hSession->buffer_addr].cs);
1341 trace_ds(hSession,"%s",see_attr(*cp)); 1340 trace_ds(hSession,"%s",see_attr(*cp));
1342 } 1341 }
1343 else if (*cp == XA_FOREGROUND) 1342 else if (*cp == XA_FOREGROUND)
@@ -1456,12 +1455,12 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er @@ -1456,12 +1455,12 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er
1456 } 1455 }
1457 if (!any_fa) 1456 if (!any_fa)
1458 START_FIELD(0); 1457 START_FIELD(0);
1459 - ctlr_add_cs(&h3270,h3270.buffer_addr, efa_cs);  
1460 - ctlr_add_fg(&h3270,h3270.buffer_addr, efa_fg);  
1461 - ctlr_add_bg(&h3270,h3270.buffer_addr, efa_bg);  
1462 - ctlr_add_gr(&h3270,h3270.buffer_addr, efa_gr);  
1463 - ctlr_add_ic(&h3270,h3270.buffer_addr, efa_ic);  
1464 - INC_BA(h3270.buffer_addr); 1458 + ctlr_add_cs(hSession,h3270.buffer_addr, efa_cs);
  1459 + ctlr_add_fg(hSession,h3270.buffer_addr, efa_fg);
  1460 + ctlr_add_bg(hSession,h3270.buffer_addr, efa_bg);
  1461 + ctlr_add_gr(hSession,h3270.buffer_addr, efa_gr);
  1462 + ctlr_add_ic(hSession,h3270.buffer_addr, efa_ic);
  1463 + INC_BA(hSession->buffer_addr);
1465 last_cmd = True; 1464 last_cmd = True;
1466 last_zpt = False; 1465 last_zpt = False;
1467 break; 1466 break;
@@ -1526,12 +1525,12 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er @@ -1526,12 +1525,12 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er
1526 if (h3270.default_cs == CS_DBCS || d != DBCS_NONE) { 1525 if (h3270.default_cs == CS_DBCS || d != DBCS_NONE) {
1527 ABORT_WRITE("invalid format control order in DBCS field"); 1526 ABORT_WRITE("invalid format control order in DBCS field");
1528 } 1527 }
1529 - ctlr_add(&h3270,h3270.buffer_addr, *cp, h3270.default_cs);  
1530 - ctlr_add_fg(&h3270,h3270.buffer_addr, h3270.default_fg);  
1531 - ctlr_add_bg(&h3270,h3270.buffer_addr, h3270.default_bg);  
1532 - ctlr_add_gr(&h3270,h3270.buffer_addr, h3270.default_gr);  
1533 - ctlr_add_ic(&h3270,h3270.buffer_addr, h3270.default_ic);  
1534 - INC_BA(h3270.buffer_addr); 1528 + ctlr_add(&h3270,hSession->buffer_addr, *cp, hSession->default_cs);
  1529 + ctlr_add_fg(&h3270,hSession->buffer_addr, hSession->default_fg);
  1530 + ctlr_add_bg(&h3270,hSession->buffer_addr, hSession->default_bg);
  1531 + ctlr_add_gr(&h3270,hSession->buffer_addr, hSession->default_gr);
  1532 + ctlr_add_ic(&h3270,hSession->buffer_addr, hSession->default_ic);
  1533 + INC_BA(hSession->buffer_addr);
1535 last_cmd = True; 1534 last_cmd = True;
1536 last_zpt = False; 1535 last_zpt = False;
1537 break; 1536 break;
@@ -1555,7 +1554,7 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er @@ -1555,7 +1554,7 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er
1555 ctlr_add_bg(&h3270,h3270.buffer_addr, h3270.default_bg); 1554 ctlr_add_bg(&h3270,h3270.buffer_addr, h3270.default_bg);
1556 ctlr_add_gr(&h3270,h3270.buffer_addr, h3270.default_gr); 1555 ctlr_add_gr(&h3270,h3270.buffer_addr, h3270.default_gr);
1557 ctlr_add_ic(&h3270,h3270.buffer_addr, h3270.default_ic); 1556 ctlr_add_ic(&h3270,h3270.buffer_addr, h3270.default_ic);
1558 - INC_BA(h3270.buffer_addr); 1557 + INC_BA(hSession->buffer_addr);
1559 last_cmd = True; 1558 last_cmd = True;
1560 last_zpt = False; 1559 last_zpt = False;
1561 break; 1560 break;
@@ -1594,7 +1593,7 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er @@ -1594,7 +1593,7 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er
1594 ctlr_add_bg(&h3270,h3270.buffer_addr, h3270.default_bg); 1593 ctlr_add_bg(&h3270,h3270.buffer_addr, h3270.default_bg);
1595 ctlr_add_gr(&h3270,h3270.buffer_addr, h3270.default_gr); 1594 ctlr_add_gr(&h3270,h3270.buffer_addr, h3270.default_gr);
1596 ctlr_add_ic(&h3270,h3270.buffer_addr, h3270.default_ic); 1595 ctlr_add_ic(&h3270,h3270.buffer_addr, h3270.default_ic);
1597 - INC_BA(h3270.buffer_addr); 1596 + INC_BA(hSession->buffer_addr);
1598 last_cmd = True; 1597 last_cmd = True;
1599 last_zpt = False; 1598 last_zpt = False;
1600 break; 1599 break;
@@ -1646,14 +1645,14 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er @@ -1646,14 +1645,14 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er
1646 ctlr_add_bg(&h3270,h3270.buffer_addr, h3270.default_bg); 1645 ctlr_add_bg(&h3270,h3270.buffer_addr, h3270.default_bg);
1647 ctlr_add_gr(&h3270,h3270.buffer_addr, h3270.default_gr); 1646 ctlr_add_gr(&h3270,h3270.buffer_addr, h3270.default_gr);
1648 ctlr_add_ic(&h3270,h3270.buffer_addr, h3270.default_ic); 1647 ctlr_add_ic(&h3270,h3270.buffer_addr, h3270.default_ic);
1649 - INC_BA(h3270.buffer_addr); 1648 + INC_BA(hSession->buffer_addr);
1650 if (add_dbcs) { 1649 if (add_dbcs) {
1651 ctlr_add(&h3270,h3270.buffer_addr, add_c2, h3270.default_cs); 1650 ctlr_add(&h3270,h3270.buffer_addr, add_c2, h3270.default_cs);
1652 ctlr_add_fg(&h3270,h3270.buffer_addr, h3270.default_fg); 1651 ctlr_add_fg(&h3270,h3270.buffer_addr, h3270.default_fg);
1653 ctlr_add_bg(&h3270,h3270.buffer_addr, h3270.default_bg); 1652 ctlr_add_bg(&h3270,h3270.buffer_addr, h3270.default_bg);
1654 ctlr_add_gr(&h3270,h3270.buffer_addr, h3270.default_gr); 1653 ctlr_add_gr(&h3270,h3270.buffer_addr, h3270.default_gr);
1655 ctlr_add_ic(&h3270,h3270.buffer_addr, h3270.default_ic); 1654 ctlr_add_ic(&h3270,h3270.buffer_addr, h3270.default_ic);
1656 - INC_BA(h3270.buffer_addr); 1655 + INC_BA(hSession->buffer_addr);
1657 } 1656 }
1658 last_cmd = False; 1657 last_cmd = False;
1659 last_zpt = False; 1658 last_zpt = False;
@@ -1703,7 +1702,7 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er @@ -1703,7 +1702,7 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er
1703 ctlr_add_bg(&h3270,h3270.buffer_addr, h3270.default_bg); 1702 ctlr_add_bg(&h3270,h3270.buffer_addr, h3270.default_bg);
1704 ctlr_add_gr(&h3270,h3270.buffer_addr, h3270.default_gr); 1703 ctlr_add_gr(&h3270,h3270.buffer_addr, h3270.default_gr);
1705 ctlr_add_ic(&h3270,h3270.buffer_addr, h3270.default_ic); 1704 ctlr_add_ic(&h3270,h3270.buffer_addr, h3270.default_ic);
1706 - INC_BA(h3270.buffer_addr); 1705 + INC_BA(hSession->buffer_addr);
1707 #if defined(X3270_DBCS) /*[*/ 1706 #if defined(X3270_DBCS) /*[*/
1708 if (add_dbcs) { 1707 if (add_dbcs) {
1709 ctlr_add(h3270.buffer_addr, add_c2, h3270.default_cs); 1708 ctlr_add(h3270.buffer_addr, add_c2, h3270.default_cs);
@@ -1711,7 +1710,7 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er @@ -1711,7 +1710,7 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er
1711 ctlr_add_bg(h3270.buffer_addr, h3270.default_bg); 1710 ctlr_add_bg(h3270.buffer_addr, h3270.default_bg);
1712 ctlr_add_gr(h3270.buffer_addr, h3270.default_gr); 1711 ctlr_add_gr(h3270.buffer_addr, h3270.default_gr);
1713 ctlr_add_ic(&h3270,h3270.buffer_addr, h3270.default_ic); 1712 ctlr_add_ic(&h3270,h3270.buffer_addr, h3270.default_ic);
1714 - INC_BA(h3270.buffer_addr); 1713 + INC_BA(hSession->buffer_addr);
1715 } 1714 }
1716 #endif /*]*/ 1715 #endif /*]*/
1717 last_cmd = False; 1716 last_cmd = False;
@@ -1733,10 +1732,10 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er @@ -1733,10 +1732,10 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er
1733 lib3270_ring_bell(hSession); 1732 lib3270_ring_bell(hSession);
1734 1733
1735 /* Set up the DBCS state. */ 1734 /* Set up the DBCS state. */
1736 - if (ctlr_dbcs_postprocess() < 0 && rv == PDS_OKAY_NO_OUTPUT) 1735 + if (ctlr_dbcs_postprocess(hSession) < 0 && rv == PDS_OKAY_NO_OUTPUT)
1737 rv = PDS_BAD_ADDR; 1736 rv = PDS_BAD_ADDR;
1738 1737
1739 - h3270.trace_primed = 0; 1738 + hSession->trace_primed = 0;
1740 1739
1741 ps_process(hSession); 1740 ps_process(hSession);
1742 1741
@@ -1977,16 +1976,14 @@ valid_dbcs_char(unsigned char c1, unsigned char c2) @@ -1977,16 +1976,14 @@ valid_dbcs_char(unsigned char c1, unsigned char c2)
1977 * 1976 *
1978 * Returns 0 for success, -1 for failure. 1977 * Returns 0 for success, -1 for failure.
1979 */ 1978 */
1980 -int  
1981 -ctlr_dbcs_postprocess(void) 1979 +int ctlr_dbcs_postprocess(H3270 *hSession)
1982 { 1980 {
1983 int baddr; /* current buffer address */ 1981 int baddr; /* current buffer address */
1984 int faddr0; /* address of first field attribute */ 1982 int faddr0; /* address of first field attribute */
1985 int faddr; /* address of current field attribute */ 1983 int faddr; /* address of current field attribute */
1986 int last_baddr; /* last buffer address to search */ 1984 int last_baddr; /* last buffer address to search */
1987 int pbaddr = -1; /* previous buffer address */ 1985 int pbaddr = -1; /* previous buffer address */
1988 - int dbaddr = -1; /* first data position of current DBCS (sub-)  
1989 - field */ 1986 + int dbaddr = -1; /* first data position of current DBCS (sub-) field */
1990 Boolean so = False, si = False; 1987 Boolean so = False, si = False;
1991 Boolean dbcs_field = False; 1988 Boolean dbcs_field = False;
1992 int rc = 0; 1989 int rc = 0;
@@ -2032,7 +2029,7 @@ ctlr_dbcs_postprocess(void) @@ -2032,7 +2029,7 @@ ctlr_dbcs_postprocess(void)
2032 case EBC_so: 2029 case EBC_so:
2033 /* Two SO's or SO in DBCS field are invalid. */ 2030 /* Two SO's or SO in DBCS field are invalid. */
2034 if (so || dbcs_field) { 2031 if (so || dbcs_field) {
2035 - trace_ds(&h3270,"DBCS postprocess: invalid SO found at %s\n", rcba(baddr)); 2032 + trace_ds(hSession,"DBCS postprocess: invalid SO found at %s\n", rcba(baddr));
2036 rc = -1; 2033 rc = -1;
2037 } else { 2034 } else {
2038 dbaddr = baddr; 2035 dbaddr = baddr;
@@ -2045,7 +2042,7 @@ ctlr_dbcs_postprocess(void) @@ -2045,7 +2042,7 @@ ctlr_dbcs_postprocess(void)
2045 case EBC_si: 2042 case EBC_si:
2046 /* Two SI's or SI in DBCS field are invalid. */ 2043 /* Two SI's or SI in DBCS field are invalid. */
2047 if (si || dbcs_field) { 2044 if (si || dbcs_field) {
2048 - trace_ds(&h3270,"Postprocess: Invalid SO found at %s\n", rcba(baddr)); 2045 + trace_ds(hSession,"Postprocess: Invalid SO found at %s\n", rcba(baddr));
2049 rc = -1; 2046 rc = -1;
2050 ea_buf[baddr].db = DBCS_NONE; 2047 ea_buf[baddr].db = DBCS_NONE;
2051 } else { 2048 } else {
@@ -2058,7 +2055,7 @@ ctlr_dbcs_postprocess(void) @@ -2058,7 +2055,7 @@ ctlr_dbcs_postprocess(void)
2058 default: 2055 default:
2059 /* Non-base CS in DBCS subfield is invalid. */ 2056 /* Non-base CS in DBCS subfield is invalid. */
2060 if (so && ea_buf[baddr].cs != CS_BASE) { 2057 if (so && ea_buf[baddr].cs != CS_BASE) {
2061 - trace_ds(&h3270,"DBCS postprocess: invalid character set found at %s\n",rcba(baddr)); 2058 + trace_ds(hSession,"DBCS postprocess: invalid character set found at %s\n",rcba(baddr));
2062 rc = -1; 2059 rc = -1;
2063 ea_buf[baddr].cs = CS_BASE; 2060 ea_buf[baddr].cs = CS_BASE;
2064 } 2061 }
@@ -2109,7 +2106,7 @@ ctlr_dbcs_postprocess(void) @@ -2109,7 +2106,7 @@ ctlr_dbcs_postprocess(void)
2109 !IS_RIGHT(ea_buf[baddr].db) && 2106 !IS_RIGHT(ea_buf[baddr].db) &&
2110 ea_buf[pbaddr].db != DBCS_DEAD) { 2107 ea_buf[pbaddr].db != DBCS_DEAD) {
2111 if (!ea_buf[baddr].fa) { 2108 if (!ea_buf[baddr].fa) {
2112 - trace_ds(&h3270,"DBCS postprocess: dead position at %s\n", rcba(pbaddr)); 2109 + trace_ds(hSession,"DBCS postprocess: dead position at %s\n", rcba(pbaddr));
2113 rc = -1; 2110 rc = -1;
2114 } 2111 }
2115 ea_buf[pbaddr].cc = EBC_null; 2112 ea_buf[pbaddr].cc = EBC_null;
@@ -91,9 +91,9 @@ enum dbcs_why { DBCS_FIELD, DBCS_SUBFIELD, DBCS_ATTRIBUTE }; @@ -91,9 +91,9 @@ enum dbcs_why { DBCS_FIELD, DBCS_SUBFIELD, DBCS_ATTRIBUTE };
91 #if defined(X3270_DBCS) /*[*/ 91 #if defined(X3270_DBCS) /*[*/
92 LIB3270_INTERNAL enum dbcs_state ctlr_dbcs_state(int baddr); 92 LIB3270_INTERNAL enum dbcs_state ctlr_dbcs_state(int baddr);
93 LIB3270_INTERNAL enum dbcs_state ctlr_lookleft_state(int baddr, enum dbcs_why *why); 93 LIB3270_INTERNAL enum dbcs_state ctlr_lookleft_state(int baddr, enum dbcs_why *why);
94 - LIB3270_INTERNAL int ctlr_dbcs_postprocess(void); 94 + LIB3270_INTERNAL int ctlr_dbcs_postprocess(H3270 *hSession);
95 #else /*][*/ 95 #else /*][*/
96 #define ctlr_dbcs_state(b) DBCS_NONE 96 #define ctlr_dbcs_state(b) DBCS_NONE
97 #define ctlr_lookleft_state(b, w) DBCS_NONE 97 #define ctlr_lookleft_state(b, w) DBCS_NONE
98 - #define ctlr_dbcs_postprocess() 0 98 + #define ctlr_dbcs_postprocess(hSession) 0
99 #endif /*]*/ 99 #endif /*]*/
@@ -41,12 +41,7 @@ @@ -41,12 +41,7 @@
41 41
42 #if defined(X3270_FT) /*[*/ 42 #if defined(X3270_FT) /*[*/
43 43
44 -// #include <lib3270/api.h>  
45 -  
46 -//#include "appres.h"  
47 -// #include "ctlr.h"  
48 -#include <lib3270/3270ds.h>  
49 - 44 +#include "3270ds.h"
50 #include "actionsc.h" 45 #include "actionsc.h"
51 #include "ctlrc.h" 46 #include "ctlrc.h"
52 #include "ft_cutc.h" 47 #include "ft_cutc.h"
@@ -42,7 +42,7 @@ @@ -42,7 +42,7 @@
42 #if defined(X3270_FT) /*[*/ 42 #if defined(X3270_FT) /*[*/
43 43
44 //#include "appres.h" 44 //#include "appres.h"
45 -#include <lib3270/3270ds.h> 45 +#include "3270ds.h"
46 #include "ft_dft_ds.h" 46 #include "ft_dft_ds.h"
47 47
48 #include "actionsc.h" 48 #include "actionsc.h"
@@ -51,8 +51,7 @@ @@ -51,8 +51,7 @@
51 #include <errno.h> 51 #include <errno.h>
52 #include <stdarg.h> 52 #include <stdarg.h>
53 53
54 -//#include "appres.h"  
55 -#include <lib3270/3270ds.h> 54 +#include "3270ds.h"
56 #include "resources.h" 55 #include "resources.h"
57 56
58 #include "actionsc.h" 57 #include "actionsc.h"
@@ -30,7 +30,7 @@ @@ -30,7 +30,7 @@
30 #include <stdlib.h> 30 #include <stdlib.h>
31 #include <lib3270.h> 31 #include <lib3270.h>
32 #include <lib3270/session.h> 32 #include <lib3270/session.h>
33 - #include <lib3270/3270ds.h> 33 +#include "3270ds.h"
34 #include <lib3270/html.h> 34 #include <lib3270/html.h>
35 35
36 #include "globals.h" 36 #include "globals.h"
@@ -54,7 +54,7 @@ struct ta; @@ -54,7 +54,7 @@ struct ta;
54 // #include <X11/keysym.h> 54 // #include <X11/keysym.h>
55 55
56 #include <fcntl.h> 56 #include <fcntl.h>
57 -#include <lib3270/3270ds.h> 57 +#include "3270ds.h"
58 // #include "appres.h" 58 // #include "appres.h"
59 // #include "ctlr.h" 59 // #include "ctlr.h"
60 #include "resources.h" 60 #include "resources.h"
@@ -982,7 +982,7 @@ static Boolean key_Character(H3270 *hSession, int code, Boolean with_ge, Boolean @@ -982,7 +982,7 @@ static Boolean key_Character(H3270 *hSession, int code, Boolean with_ge, Boolean
982 cursor_move(hSession,baddr); 982 cursor_move(hSession,baddr);
983 } 983 }
984 984
985 - (void) ctlr_dbcs_postprocess(); 985 + (void) ctlr_dbcs_postprocess(hSession);
986 return True; 986 return True;
987 } 987 }
988 988
@@ -1367,7 +1367,7 @@ static Boolean do_delete(H3270 *hSession) @@ -1367,7 +1367,7 @@ static Boolean do_delete(H3270 *hSession)
1367 mdt_set(hSession,hSession->cursor_addr); 1367 mdt_set(hSession,hSession->cursor_addr);
1368 1368
1369 /* Patch up the DBCS state for display. */ 1369 /* Patch up the DBCS state for display. */
1370 - (void) ctlr_dbcs_postprocess(); 1370 + (void) ctlr_dbcs_postprocess(hSession);
1371 return True; 1371 return True;
1372 } 1372 }
1373 1373
@@ -1650,22 +1650,30 @@ static int nu_word(H3270 *hSession, int baddr) @@ -1650,22 +1650,30 @@ static int nu_word(H3270 *hSession, int baddr)
1650 return -1; 1650 return -1;
1651 } 1651 }
1652 1652
1653 -/* Find the next word in this field, or -1 */  
1654 -static int  
1655 -nt_word(int baddr) 1653 +/**
  1654 + * Find the next word in this field
  1655 + *
  1656 + * @return Next word or -1
  1657 + */
  1658 +static int nt_word(H3270 *hSession, int baddr)
1656 { 1659 {
1657 int baddr0 = baddr; 1660 int baddr0 = baddr;
1658 unsigned char c; 1661 unsigned char c;
1659 Boolean in_word = True; 1662 Boolean in_word = True;
1660 1663
1661 - do {  
1662 - c = h3270.ea_buf[baddr].cc;  
1663 - if (h3270.ea_buf[baddr].fa) 1664 + do
  1665 + {
  1666 + c = hSession->ea_buf[baddr].cc;
  1667 +
  1668 + if (hSession->ea_buf[baddr].fa)
1664 return -1; 1669 return -1;
1665 - if (in_word) { 1670 +
  1671 + if (in_word)
  1672 + {
1666 if (c == EBC_space || c == EBC_null) 1673 if (c == EBC_space || c == EBC_null)
1667 in_word = False; 1674 in_word = False;
1668 - } else { 1675 + } else
  1676 + {
1669 if (c != EBC_space && c != EBC_null) 1677 if (c != EBC_space && c != EBC_null)
1670 return baddr; 1678 return baddr;
1671 } 1679 }
@@ -1707,7 +1715,7 @@ LIB3270_ACTION( nextword ) @@ -1707,7 +1715,7 @@ LIB3270_ACTION( nextword )
1707 } 1715 }
1708 1716
1709 /* If there's another word in this field, go to it. */ 1717 /* If there's another word in this field, go to it. */
1710 - baddr = nt_word(hSession->cursor_addr); 1718 + baddr = nt_word(hSession,hSession->cursor_addr);
1711 if (baddr != -1) { 1719 if (baddr != -1) {
1712 cursor_move(hSession,baddr); 1720 cursor_move(hSession,baddr);
1713 return 0; 1721 return 0;
@@ -1985,22 +1993,22 @@ LIB3270_ACTION( eraseeol ) @@ -1985,22 +1993,22 @@ LIB3270_ACTION( eraseeol )
1985 return 0; 1993 return 0;
1986 #endif /*]*/ 1994 #endif /*]*/
1987 1995
1988 - baddr = h3270.cursor_addr;  
1989 - fa = get_field_attribute(&h3270,baddr);  
1990 - if (FA_IS_PROTECTED(fa) || h3270.ea_buf[baddr].fa) 1996 + baddr = hSession->cursor_addr;
  1997 + fa = get_field_attribute(hSession,baddr);
  1998 + if (FA_IS_PROTECTED(fa) || hSession->ea_buf[baddr].fa)
1991 { 1999 {
1992 - operator_error(&h3270,KL_OERR_PROTECTED); 2000 + operator_error(hSession,KL_OERR_PROTECTED);
1993 return -1; 2001 return -1;
1994 } 2002 }
1995 2003
1996 - if (h3270.formatted) 2004 + if (hSession->formatted)
1997 { 2005 {
1998 /* erase to next field attribute or current line */ 2006 /* erase to next field attribute or current line */
1999 do 2007 do
2000 { 2008 {
2001 - ctlr_add(&h3270,baddr, EBC_null, 0); 2009 + ctlr_add(hSession,baddr, EBC_null, 0);
2002 INC_BA(baddr); 2010 INC_BA(baddr);
2003 - } while (!h3270.ea_buf[baddr].fa && BA_TO_COL(baddr) > 0); 2011 + } while (!hSession->ea_buf[baddr].fa && BA_TO_COL(baddr) > 0);
2004 2012
2005 mdt_set(hSession,hSession->cursor_addr); 2013 mdt_set(hSession,hSession->cursor_addr);
2006 } 2014 }
@@ -2009,23 +2017,25 @@ LIB3270_ACTION( eraseeol ) @@ -2009,23 +2017,25 @@ LIB3270_ACTION( eraseeol )
2009 /* erase to end of current line */ 2017 /* erase to end of current line */
2010 do 2018 do
2011 { 2019 {
2012 - ctlr_add(&h3270,baddr, EBC_null, 0); 2020 + ctlr_add(hSession,baddr, EBC_null, 0);
2013 INC_BA(baddr); 2021 INC_BA(baddr);
2014 } while(baddr != 0 && BA_TO_COL(baddr) > 0); 2022 } while(baddr != 0 && BA_TO_COL(baddr) > 0);
2015 } 2023 }
2016 2024
2017 /* If the cursor was in a DBCS subfield, re-create the SI. */ 2025 /* If the cursor was in a DBCS subfield, re-create the SI. */
2018 d = ctlr_lookleft_state(cursor_addr, &why); 2026 d = ctlr_lookleft_state(cursor_addr, &why);
2019 - if (IS_DBCS(d) && why == DBCS_SUBFIELD) {  
2020 - if (d == DBCS_RIGHT) {  
2021 - baddr = h3270.cursor_addr; 2027 + if (IS_DBCS(d) && why == DBCS_SUBFIELD)
  2028 + {
  2029 + if (d == DBCS_RIGHT)
  2030 + {
  2031 + baddr = hSession->cursor_addr;
2022 DEC_BA(baddr); 2032 DEC_BA(baddr);
2023 - h3270.ea_buf[baddr].cc = EBC_si; 2033 + hSession->ea_buf[baddr].cc = EBC_si;
2024 } else 2034 } else
2025 - h3270.ea_buf[h3270.cursor_addr].cc = EBC_si; 2035 + hSession->ea_buf[hSession->cursor_addr].cc = EBC_si;
2026 } 2036 }
2027 - (void) ctlr_dbcs_postprocess();  
2028 - h3270.display(&h3270); 2037 + (void) ctlr_dbcs_postprocess(hSession);
  2038 + hSession->display(hSession);
2029 return 0; 2039 return 0;
2030 } 2040 }
2031 2041
@@ -2079,7 +2089,7 @@ LIB3270_ACTION( eraseeof ) @@ -2079,7 +2089,7 @@ LIB3270_ACTION( eraseeof )
2079 } else 2089 } else
2080 h3270.ea_buf[hSession->cursor_addr].cc = EBC_si; 2090 h3270.ea_buf[hSession->cursor_addr].cc = EBC_si;
2081 } 2091 }
2082 - (void) ctlr_dbcs_postprocess(); 2092 + (void) ctlr_dbcs_postprocess(hSession);
2083 hSession->display(hSession); 2093 hSession->display(hSession);
2084 return 0; 2094 return 0;
2085 } 2095 }
@@ -2440,7 +2450,7 @@ static Boolean remargin(H3270 *hSession, int lmargin) @@ -2440,7 +2450,7 @@ static Boolean remargin(H3270 *hSession, int lmargin)
2440 return True; 2450 return True;
2441 } 2451 }
2442 2452
2443 -LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int pasting) 2453 +LIB3270_EXPORT int lib3270_emulate_input(H3270 *hSession, char *s, int len, int pasting)
2444 { 2454 {
2445 enum { BASE, BACKSLASH, BACKX, BACKP, BACKPA, BACKPF, OCTAL, HEX, XGE } state = BASE; 2455 enum { BASE, BACKSLASH, BACKX, BACKP, BACKPA, BACKPF, OCTAL, HEX, XGE } state = BASE;
2446 int literal = 0; 2456 int literal = 0;
@@ -2462,10 +2472,10 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p @@ -2462,10 +2472,10 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p
2462 char *ws; 2472 char *ws;
2463 #endif /*]*/ 2473 #endif /*]*/
2464 2474
2465 - CHECK_SESSION_HANDLE(session); 2475 + CHECK_SESSION_HANDLE(hSession);
2466 2476
2467 - orig_addr = session->cursor_addr;  
2468 - orig_col = BA_TO_COL(session->cursor_addr); 2477 + orig_addr = hSession->cursor_addr;
  2478 + orig_col = BA_TO_COL(hSession->cursor_addr);
2469 2479
2470 if(len < 0) 2480 if(len < 0)
2471 len = strlen(s); 2481 len = strlen(s);
@@ -2474,12 +2484,14 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p @@ -2474,12 +2484,14 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p
2474 * Convert from a multi-byte string to a Unicode string. 2484 * Convert from a multi-byte string to a Unicode string.
2475 */ 2485 */
2476 #if defined(X3270_DBCS) /*[*/ 2486 #if defined(X3270_DBCS) /*[*/
2477 - if (len > w_ibuf_len) { 2487 + if (len > w_ibuf_len)
  2488 + {
2478 w_ibuf_len = len; 2489 w_ibuf_len = len;
2479 w_ibuf = (UChar *)Realloc(w_ibuf, w_ibuf_len * sizeof(UChar)); 2490 w_ibuf = (UChar *)Realloc(w_ibuf, w_ibuf_len * sizeof(UChar));
2480 } 2491 }
2481 len = mb_to_unicode(s, len, w_ibuf, w_ibuf_len, NULL); 2492 len = mb_to_unicode(s, len, w_ibuf, w_ibuf_len, NULL);
2482 - if (len < 0) { 2493 + if (len < 0)
  2494 + {
2483 return 0; /* failed */ 2495 return 0; /* failed */
2484 } 2496 }
2485 ws = w_ibuf; 2497 ws = w_ibuf;
@@ -2491,13 +2503,14 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p @@ -2491,13 +2503,14 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p
2491 * In the switch statements below, "break" generally means "consume 2503 * In the switch statements below, "break" generally means "consume
2492 * this character," while "continue" means "rescan this character." 2504 * this character," while "continue" means "rescan this character."
2493 */ 2505 */
2494 - while (len) { 2506 + while (len)
  2507 + {
2495 2508
2496 /* 2509 /*
2497 * It isn't possible to unlock the keyboard from a string, 2510 * It isn't possible to unlock the keyboard from a string,
2498 * so if the keyboard is locked, it's fatal 2511 * so if the keyboard is locked, it's fatal
2499 */ 2512 */
2500 - if (session->kybdlock) 2513 + if (hSession->kybdlock)
2501 { 2514 {
2502 trace_event(" keyboard locked, string dropped\n"); 2515 trace_event(" keyboard locked, string dropped\n");
2503 return 0; 2516 return 0;
@@ -2506,13 +2519,13 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p @@ -2506,13 +2519,13 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p
2506 if (pasting && IN_3270) { 2519 if (pasting && IN_3270) {
2507 2520
2508 /* Check for cursor wrap to top of screen. */ 2521 /* Check for cursor wrap to top of screen. */
2509 - if (session->cursor_addr < orig_addr) 2522 + if (hSession->cursor_addr < orig_addr)
2510 return len-1; /* wrapped */ 2523 return len-1; /* wrapped */
2511 2524
2512 /* Jump cursor over left margin. */ 2525 /* Jump cursor over left margin. */
2513 - if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_MARGINED_PASTE) &&  
2514 - BA_TO_COL(session->cursor_addr) < orig_col) {  
2515 - if (!remargin(&h3270,orig_col)) 2526 + if (lib3270_get_toggle(hSession,LIB3270_TOGGLE_MARGINED_PASTE) && BA_TO_COL(hSession->cursor_addr) < orig_col)
  2527 + {
  2528 + if (!remargin(hSession,orig_col))
2516 return len-1; 2529 return len-1;
2517 skipped = True; 2530 skipped = True;
2518 } 2531 }
@@ -2520,59 +2533,73 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p @@ -2520,59 +2533,73 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p
2520 2533
2521 c = *ws; 2534 c = *ws;
2522 2535
2523 - switch (state) { 2536 + switch (state)
  2537 + {
2524 case BASE: 2538 case BASE:
2525 - switch (c) {  
2526 - case '\b':  
2527 - lib3270_cursor_left(session); 2539 + switch (c)
  2540 + {
  2541 + case '\b':
  2542 + lib3270_cursor_left(hSession);
2528 skipped = False; 2543 skipped = False;
2529 break; 2544 break;
2530 - case '\f':  
2531 - if (pasting) {  
2532 - key_ACharacter(session,(unsigned char) ' ',KT_STD, ia, &skipped);  
2533 - } else {  
2534 - lib3270_clear(session); 2545 +
  2546 + case '\f':
  2547 + if (pasting)
  2548 + {
  2549 + key_ACharacter(hSession,(unsigned char) ' ',KT_STD, ia, &skipped);
  2550 + } else
  2551 + {
  2552 + lib3270_clear(hSession);
2535 skipped = False; 2553 skipped = False;
2536 if (IN_3270) 2554 if (IN_3270)
2537 return len-1; 2555 return len-1;
2538 } 2556 }
2539 break; 2557 break;
2540 - case '\n':  
2541 - if (pasting) { 2558 +
  2559 + case '\n':
  2560 + if (pasting)
  2561 + {
2542 if (!skipped) 2562 if (!skipped)
2543 - lib3270_cursor_newline(session);  
2544 -// action_internal(Newline_action,ia, CN, CN); 2563 + lib3270_cursor_newline(hSession);
2545 skipped = False; 2564 skipped = False;
2546 - } else {  
2547 - lib3270_enter(session); 2565 + }
  2566 + else
  2567 + {
  2568 + lib3270_enter(hSession);
2548 skipped = False; 2569 skipped = False;
2549 if (IN_3270) 2570 if (IN_3270)
2550 return len-1; 2571 return len-1;
2551 } 2572 }
2552 break; 2573 break;
2553 - case '\r': /* ignored */ 2574 +
  2575 + case '\r': /* ignored */
2554 break; 2576 break;
2555 - case '\t':  
2556 - lib3270_nextfield(session); 2577 +
  2578 + case '\t':
  2579 + lib3270_nextfield(hSession);
2557 skipped = False; 2580 skipped = False;
2558 break; 2581 break;
2559 - case '\\': /* backslashes are NOT special when  
2560 - pasting */ 2582 +
  2583 + case '\\': /* backslashes are NOT special when pasting */
2561 if (!pasting) 2584 if (!pasting)
2562 state = BACKSLASH; 2585 state = BACKSLASH;
2563 else 2586 else
2564 - key_ACharacter(session,(unsigned char) c,KT_STD, ia, &skipped); 2587 + key_ACharacter(hSession,(unsigned char) c,KT_STD, ia, &skipped);
2565 break; 2588 break;
2566 - case '\033': /* ESC is special only when pasting */ 2589 +
  2590 + case '\033': /* ESC is special only when pasting */
2567 if (pasting) 2591 if (pasting)
2568 state = XGE; 2592 state = XGE;
2569 break; 2593 break;
2570 - case '[': /* APL left bracket */  
2571 - key_ACharacter(session,(unsigned char) c, KT_STD, ia, &skipped); 2594 +
  2595 + case '[': /* APL left bracket */
  2596 + key_ACharacter(hSession,(unsigned char) c, KT_STD, ia, &skipped);
2572 break; 2597 break;
2573 - case ']': /* APL right bracket */  
2574 - key_ACharacter(session,(unsigned char) c, KT_STD, ia, &skipped); 2598 +
  2599 + case ']': /* APL right bracket */
  2600 + key_ACharacter(hSession,(unsigned char) c, KT_STD, ia, &skipped);
2575 break; 2601 break;
  2602 +
2576 default: 2603 default:
2577 /* 2604 /*
2578 #if defined(X3270_DBCS) 2605 #if defined(X3270_DBCS)
@@ -2593,232 +2620,271 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p @@ -2593,232 +2620,271 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p
2593 break; 2620 break;
2594 } 2621 }
2595 #endif */ 2622 #endif */
2596 - key_ACharacter(session,(unsigned char) c, KT_STD, ia, &skipped); 2623 + key_ACharacter(hSession,(unsigned char) c, KT_STD, ia, &skipped);
2597 break; 2624 break;
2598 } 2625 }
2599 break; 2626 break;
  2627 +
2600 case BACKSLASH: /* last character was a backslash */ 2628 case BACKSLASH: /* last character was a backslash */
2601 - switch (c) {  
2602 - case 'a':  
2603 - popup_an_error(session,"%s: Bell not supported",action_name(String_action));  
2604 -// cancel_if_idle_command();  
2605 - state = BASE;  
2606 - break;  
2607 - case 'b':  
2608 - lib3270_cursor_left(session);  
2609 -// action_internal(Left_action, ia, CN, CN);  
2610 - skipped = False;  
2611 - state = BASE;  
2612 - break;  
2613 - case 'f':  
2614 - lib3270_clear(session);  
2615 - skipped = False;  
2616 - state = BASE;  
2617 - if (IN_3270)  
2618 - return len-1;  
2619 - else 2629 + switch (c)
  2630 + {
  2631 + case 'a':
  2632 + popup_an_error(hSession,_( "%s: Bell not supported" ),action_name(String_action));
  2633 + state = BASE;
2620 break; 2634 break;
2621 - case 'n':  
2622 - lib3270_enter(session);  
2623 - skipped = False;  
2624 - state = BASE;  
2625 - if (IN_3270)  
2626 - return len-1;  
2627 - else 2635 +
  2636 + case 'b':
  2637 + lib3270_cursor_left(hSession);
  2638 + skipped = False;
  2639 + state = BASE;
2628 break; 2640 break;
2629 - case 'p':  
2630 - state = BACKP;  
2631 - break;  
2632 2641
2633 - case 'r':  
2634 - lib3270_cursor_newline(session);  
2635 -// action_internal(Newline_action, ia, CN, CN); 2642 + case 'f':
  2643 + lib3270_clear(hSession);
  2644 + skipped = False;
  2645 + state = BASE;
  2646 + if (IN_3270)
  2647 + return len-1;
  2648 + else
  2649 + break;
  2650 +
  2651 + case 'n':
  2652 + lib3270_enter(hSession);
  2653 + skipped = False;
  2654 + state = BASE;
  2655 + if (IN_3270)
  2656 + return len-1;
  2657 + else
  2658 + break;
  2659 +
  2660 + case 'p':
  2661 + state = BACKP;
  2662 + break;
  2663 +
  2664 + case 'r':
  2665 + lib3270_cursor_newline(hSession);
2636 skipped = False; 2666 skipped = False;
2637 state = BASE; 2667 state = BASE;
2638 break; 2668 break;
2639 2669
2640 - case 't':  
2641 - lib3270_nextfield(session);  
2642 - skipped = False;  
2643 - state = BASE;  
2644 - break;  
2645 - case 'T':  
2646 - lib3270_nextfield(session);  
2647 - skipped = False;  
2648 - state = BASE;  
2649 - break;  
2650 - case 'v':  
2651 - popup_an_error(NULL,"%s: Vertical tab not supported",action_name(String_action));  
2652 -// cancel_if_idle_command();  
2653 - state = BASE;  
2654 - break;  
2655 - case 'x':  
2656 - state = BACKX;  
2657 - break;  
2658 - case '\\':  
2659 - key_ACharacter(session,(unsigned char) c, KT_STD, ia,&skipped);  
2660 - state = BASE; 2670 + case 't':
  2671 + lib3270_nextfield(hSession);
  2672 + skipped = False;
  2673 + state = BASE;
  2674 + break;
  2675 +
  2676 + case 'T':
  2677 + lib3270_nextfield(hSession);
  2678 + skipped = False;
  2679 + state = BASE;
  2680 + break;
  2681 +
  2682 + case 'v':
  2683 + popup_an_error(hSession,_( "%s: Vertical tab not supported" ),action_name(String_action));
  2684 + state = BASE;
  2685 + break;
  2686 +
  2687 + case 'x':
  2688 + state = BACKX;
  2689 + break;
  2690 +
  2691 + case '\\':
  2692 + key_ACharacter(hSession,(unsigned char) c, KT_STD, ia,&skipped);
  2693 + state = BASE;
  2694 + break;
  2695 +
  2696 + case '0':
  2697 + case '1':
  2698 + case '2':
  2699 + case '3':
  2700 + case '4':
  2701 + case '5':
  2702 + case '6':
  2703 + case '7':
  2704 + state = OCTAL;
  2705 + literal = 0;
  2706 + nc = 0;
  2707 + continue;
  2708 +
  2709 + default:
  2710 + state = BASE;
  2711 + continue;
  2712 + }
2661 break; 2713 break;
2662 - case '0':  
2663 - case '1':  
2664 - case '2':  
2665 - case '3':  
2666 - case '4':  
2667 - case '5':  
2668 - case '6':  
2669 - case '7':  
2670 - state = OCTAL;  
2671 - literal = 0;  
2672 - nc = 0;  
2673 - continue;  
2674 - default:  
2675 - state = BASE;  
2676 - continue;  
2677 - }  
2678 - break; 2714 +
2679 case BACKP: /* last two characters were "\p" */ 2715 case BACKP: /* last two characters were "\p" */
2680 - switch (c) {  
2681 - case 'a':  
2682 - literal = 0;  
2683 - nc = 0;  
2684 - state = BACKPA;  
2685 - break;  
2686 - case 'f':  
2687 - literal = 0;  
2688 - nc = 0;  
2689 - state = BACKPF;  
2690 - break;  
2691 - default:  
2692 - popup_an_error(NULL,"%s: Unknown character after \\p",  
2693 - action_name(String_action));  
2694 -// cancel_if_idle_command();  
2695 - state = BASE; 2716 + switch (c)
  2717 + {
  2718 + case 'a':
  2719 + literal = 0;
  2720 + nc = 0;
  2721 + state = BACKPA;
  2722 + break;
  2723 +
  2724 + case 'f':
  2725 + literal = 0;
  2726 + nc = 0;
  2727 + state = BACKPF;
  2728 + break;
  2729 +
  2730 + default:
  2731 + popup_an_error(hSession,_( "%s: Unknown character after \\p" ),action_name(String_action));
  2732 + state = BASE;
  2733 + break;
  2734 + }
2696 break; 2735 break;
2697 - }  
2698 - break; 2736 +
2699 case BACKPF: /* last three characters were "\pf" */ 2737 case BACKPF: /* last three characters were "\pf" */
2700 - if (nc < 2 && isdigit(c)) {  
2701 - literal = (literal * 10) + (c - '0');  
2702 - nc++;  
2703 - } else if (!nc) {  
2704 - popup_an_error(NULL,"%s: Unknown character after \\pf",  
2705 - action_name(String_action));  
2706 -// cancel_if_idle_command();  
2707 - state = BASE;  
2708 - } else {  
2709 - do_pf(literal);  
2710 - skipped = False;  
2711 - if (IN_3270)  
2712 - return len-1;  
2713 - state = BASE;  
2714 - continue;  
2715 - }  
2716 - break; 2738 + if (nc < 2 && isdigit(c))
  2739 + {
  2740 + literal = (literal * 10) + (c - '0');
  2741 + nc++;
  2742 + }
  2743 + else if (!nc)
  2744 + {
  2745 + popup_an_error(hSession,_( "%s: Unknown character after \\pf" ),action_name(String_action));
  2746 + state = BASE;
  2747 + }
  2748 + else
  2749 + {
  2750 + do_pf(literal);
  2751 + skipped = False;
  2752 + if (IN_3270)
  2753 + return len-1;
  2754 + state = BASE;
  2755 + continue;
  2756 + }
  2757 + break;
  2758 +
2717 case BACKPA: /* last three characters were "\pa" */ 2759 case BACKPA: /* last three characters were "\pa" */
2718 - if (nc < 1 && isdigit(c)) {  
2719 - literal = (literal * 10) + (c - '0');  
2720 - nc++;  
2721 - } else if (!nc) {  
2722 - popup_an_error(NULL,"%s: Unknown character after \\pa",  
2723 - action_name(String_action));  
2724 -// cancel_if_idle_command();  
2725 - state = BASE;  
2726 - } else {  
2727 - do_pa(literal);  
2728 - skipped = False;  
2729 - if (IN_3270)  
2730 - return len-1;  
2731 - state = BASE;  
2732 - continue;  
2733 - }  
2734 - break; 2760 + if (nc < 1 && isdigit(c))
  2761 + {
  2762 + literal = (literal * 10) + (c - '0');
  2763 + nc++;
  2764 + }
  2765 + else if (!nc)
  2766 + {
  2767 + popup_an_error(hSession,_( "%s: Unknown character after \\pa" ),action_name(String_action));
  2768 + state = BASE;
  2769 + }
  2770 + else
  2771 + {
  2772 + do_pa(literal);
  2773 + skipped = False;
  2774 + if (IN_3270)
  2775 + return len-1;
  2776 + state = BASE;
  2777 + continue;
  2778 + }
  2779 + break;
  2780 +
2735 case BACKX: /* last two characters were "\x" */ 2781 case BACKX: /* last two characters were "\x" */
2736 - if (isxdigit(c)) {  
2737 - state = HEX;  
2738 - literal = 0;  
2739 - nc = 0;  
2740 - continue;  
2741 - } else {  
2742 - popup_an_error(session,_( "%s: Missing hex digits after \\x" ),action_name(String_action));  
2743 -// cancel_if_idle_command();  
2744 - state = BASE; 2782 + if (isxdigit(c))
  2783 + {
  2784 + state = HEX;
  2785 + literal = 0;
  2786 + nc = 0;
  2787 + continue;
  2788 + }
  2789 + else
  2790 + {
  2791 + popup_an_error(hSession,_( "%s: Missing hex digits after \\x" ),action_name(String_action));
  2792 + state = BASE;
  2793 + continue;
  2794 + }
2745 continue; 2795 continue;
2746 - } 2796 +
2747 case OCTAL: /* have seen \ and one or more octal digits */ 2797 case OCTAL: /* have seen \ and one or more octal digits */
2748 - if (nc < 3 && isdigit(c) && c < '8') {  
2749 - literal = (literal * 8) + FROM_HEX(c);  
2750 - nc++;  
2751 - break;  
2752 - } else {  
2753 - key_ACharacter(session,(unsigned char) literal, KT_STD,ia, &skipped);  
2754 - state = BASE;  
2755 - continue;  
2756 - } 2798 + if (nc < 3 && isdigit(c) && c < '8')
  2799 + {
  2800 + literal = (literal * 8) + FROM_HEX(c);
  2801 + nc++;
  2802 + break;
  2803 + }
  2804 + else
  2805 + {
  2806 + key_ACharacter(hSession,(unsigned char) literal, KT_STD,ia, &skipped);
  2807 + state = BASE;
  2808 + continue;
  2809 + }
  2810 +
2757 case HEX: /* have seen \ and one or more hex digits */ 2811 case HEX: /* have seen \ and one or more hex digits */
2758 - if (nc < 2 && isxdigit(c)) {  
2759 - literal = (literal * 16) + FROM_HEX(c);  
2760 - nc++;  
2761 - break;  
2762 - } else {  
2763 - key_ACharacter(session,(unsigned char) literal, KT_STD, ia, &skipped);  
2764 - state = BASE;  
2765 - continue;  
2766 - } 2812 + if (nc < 2 && isxdigit(c))
  2813 + {
  2814 + literal = (literal * 16) + FROM_HEX(c);
  2815 + nc++;
  2816 + break;
  2817 + }
  2818 + else
  2819 + {
  2820 + key_ACharacter(hSession,(unsigned char) literal, KT_STD, ia, &skipped);
  2821 + state = BASE;
  2822 + continue;
  2823 + }
  2824 +
2767 case XGE: /* have seen ESC */ 2825 case XGE: /* have seen ESC */
2768 - switch (c) {  
2769 - case ';': /* FM */  
2770 - key_Character(session, EBC_fm, False, True, &skipped);  
2771 - break;  
2772 - case '*': /* DUP */  
2773 - key_Character(session, EBC_dup, False, True, &skipped);  
2774 - break;  
2775 - default:  
2776 - key_ACharacter(session,(unsigned char) c, KT_GE, ia,&skipped); 2826 + switch (c)
  2827 + {
  2828 + case ';': /* FM */
  2829 + key_Character(hSession, EBC_fm, False, True, &skipped);
  2830 + break;
  2831 +
  2832 + case '*': /* DUP */
  2833 + key_Character(hSession, EBC_dup, False, True, &skipped);
  2834 + break;
  2835 +
  2836 + default:
  2837 + key_ACharacter(hSession,(unsigned char) c, KT_GE, ia,&skipped);
  2838 + break;
  2839 + }
  2840 + state = BASE;
2777 break; 2841 break;
2778 - }  
2779 - state = BASE;  
2780 - break;  
2781 } 2842 }
2782 ws++; 2843 ws++;
2783 len--; 2844 len--;
2784 } 2845 }
2785 2846
2786 - switch (state) { 2847 + switch (state)
  2848 + {
2787 case BASE: 2849 case BASE:
2788 - if (lib3270_get_toggle(session,LIB3270_TOGGLE_MARGINED_PASTE) &&  
2789 - BA_TO_COL(session->cursor_addr) < orig_col) {  
2790 - (void) remargin(session,orig_col);  
2791 - }  
2792 - break; 2850 + if (lib3270_get_toggle(hSession,LIB3270_TOGGLE_MARGINED_PASTE) && BA_TO_COL(hSession->cursor_addr) < orig_col)
  2851 + {
  2852 + (void) remargin(hSession,orig_col);
  2853 + }
  2854 + break;
  2855 +
2793 case OCTAL: 2856 case OCTAL:
2794 case HEX: 2857 case HEX:
2795 - key_ACharacter(session,(unsigned char) literal, KT_STD, ia, &skipped);  
2796 - state = BASE;  
2797 - if (lib3270_get_toggle(session,LIB3270_TOGGLE_MARGINED_PASTE) &&  
2798 - BA_TO_COL(session->cursor_addr) < orig_col) {  
2799 - (void) remargin(session,orig_col);  
2800 - }  
2801 - break;  
2802 - case BACKPF:  
2803 - if (nc > 0) {  
2804 - do_pf(literal); 2858 + key_ACharacter(hSession,(unsigned char) literal, KT_STD, ia, &skipped);
2805 state = BASE; 2859 state = BASE;
2806 - }  
2807 - break; 2860 + if (lib3270_get_toggle(hSession,LIB3270_TOGGLE_MARGINED_PASTE) && BA_TO_COL(hSession->cursor_addr) < orig_col)
  2861 + {
  2862 + (void) remargin(hSession,orig_col);
  2863 + }
  2864 + break;
  2865 +
  2866 + case BACKPF:
  2867 + if (nc > 0)
  2868 + {
  2869 + do_pf(literal);
  2870 + state = BASE;
  2871 + }
  2872 + break;
  2873 +
2808 case BACKPA: 2874 case BACKPA:
2809 - if (nc > 0) {  
2810 - do_pa(literal);  
2811 - state = BASE;  
2812 - }  
2813 - break; 2875 + if (nc > 0)
  2876 + {
  2877 + do_pa(literal);
  2878 + state = BASE;
  2879 + }
  2880 + break;
  2881 +
2814 default: 2882 default:
2815 - popup_an_error(NULL,"%s: Missing data after \\",  
2816 - action_name(String_action));  
2817 -// cancel_if_idle_command();  
2818 - break; 2883 + popup_an_error(hSession,"%s: Missing data after \\",action_name(String_action));
  2884 + break;
2819 } 2885 }
2820 2886
2821 - session->display(session); 2887 + hSession->display(hSession);
2822 return len; 2888 return len;
2823 } 2889 }
2824 2890
@@ -46,8 +46,7 @@ @@ -46,8 +46,7 @@
46 46
47 #include <fcntl.h> 47 #include <fcntl.h>
48 48
49 -#include <lib3270/3270ds.h>  
50 -//#include "appres.h" 49 +#include "3270ds.h"
51 #include "resources.h" 50 #include "resources.h"
52 51
53 #include "actionsc.h" 52 #include "actionsc.h"
@@ -99,16 +98,16 @@ @@ -99,16 +98,16 @@
99 * Move the cursor back within the legal paste area. 98 * Move the cursor back within the legal paste area.
100 * Returns a Boolean indicating success. 99 * Returns a Boolean indicating success.
101 */ 100 */
102 - static int remargin(H3270 *session, int lmargin) 101 + static int remargin(H3270 *hSession, int lmargin)
103 { 102 {
104 int ever = False; 103 int ever = False;
105 int baddr, b0 = 0; 104 int baddr, b0 = 0;
106 int faddr; 105 int faddr;
107 unsigned char fa; 106 unsigned char fa;
108 107
109 - if(lib3270_get_toggle(session,LIB3270_TOGGLE_MARGINED_PASTE)) 108 + if(lib3270_get_toggle(hSession,LIB3270_TOGGLE_MARGINED_PASTE))
110 { 109 {
111 - baddr = session->cursor_addr; 110 + baddr = hSession->cursor_addr;
112 while(BA_TO_COL(baddr) < lmargin) 111 while(BA_TO_COL(baddr) < lmargin)
113 { 112 {
114 baddr = ROWCOL_TO_BA(BA_TO_ROW(baddr), lmargin); 113 baddr = ROWCOL_TO_BA(BA_TO_ROW(baddr), lmargin);
@@ -118,46 +117,46 @@ @@ -118,46 +117,46 @@
118 ever = True; 117 ever = True;
119 } 118 }
120 119
121 - faddr = find_field_attribute(session,baddr);  
122 - fa = session->ea_buf[faddr].fa; 120 + faddr = find_field_attribute(hSession,baddr);
  121 + fa = hSession->ea_buf[faddr].fa;
123 if (faddr == baddr || FA_IS_PROTECTED(fa)) 122 if (faddr == baddr || FA_IS_PROTECTED(fa))
124 { 123 {
125 - baddr = next_unprotected(session,baddr); 124 + baddr = next_unprotected(hSession,baddr);
126 if (baddr <= b0) 125 if (baddr <= b0)
127 return 0; 126 return 0;
128 } 127 }
129 128
130 } 129 }
131 - cursor_move(session,baddr); 130 + cursor_move(hSession,baddr);
132 } 131 }
133 132
134 return -1; 133 return -1;
135 } 134 }
136 135
137 - static int paste_char(H3270 *session, PASTE_DATA *data, unsigned char c) 136 + static int paste_char(H3270 *hSession, PASTE_DATA *data, unsigned char c)
138 { 137 {
139 138
140 - if(lib3270_get_toggle(session,LIB3270_TOGGLE_SMART_PASTE)) 139 + if(lib3270_get_toggle(hSession,LIB3270_TOGGLE_SMART_PASTE))
141 { 140 {
142 - int faddr = find_field_attribute(session,session->cursor_addr);  
143 - if(FA_IS_PROTECTED(session->ea_buf[faddr].fa))  
144 - session->cursor_addr++; 141 + int faddr = find_field_attribute(hSession,hSession->cursor_addr);
  142 + if(FA_IS_PROTECTED(hSession->ea_buf[faddr].fa))
  143 + hSession->cursor_addr++;
145 else 144 else
146 - key_ACharacter(session, c, KT_STD, IA_PASTE, NULL); 145 + key_ACharacter(hSession, c, KT_STD, IA_PASTE, NULL);
147 } 146 }
148 else 147 else
149 { 148 {
150 - key_ACharacter(session, c, KT_STD, IA_PASTE, NULL); 149 + key_ACharacter(hSession, c, KT_STD, IA_PASTE, NULL);
151 } 150 }
152 151
153 data->qtd++; 152 data->qtd++;
154 153
155 - if(BA_TO_ROW(session->cursor_addr) != data->row) 154 + if(BA_TO_ROW(hSession->cursor_addr) != data->row)
156 { 155 {
157 - trace("Row changed from %d to %d",data->row,BA_TO_ROW(session->cursor_addr));  
158 - if(!remargin(session,data->orig_col)) 156 + trace("Row changed from %d to %d",data->row,BA_TO_ROW(hSession->cursor_addr));
  157 + if(!remargin(hSession,data->orig_col))
159 return 0; 158 return 0;
160 - data->row = BA_TO_ROW(session->cursor_addr); 159 + data->row = BA_TO_ROW(hSession->cursor_addr);
161 return '\n'; 160 return '\n';
162 } 161 }
163 162
@@ -167,35 +166,35 @@ @@ -167,35 +166,35 @@
167 /** 166 /**
168 * Set string at cursor position. 167 * Set string at cursor position.
169 * 168 *
170 - * @param h Session handle.  
171 - * @param str String to set 169 + * @param hSession Session handle.
  170 + * @param str String to set
172 * 171 *
173 * @return Number of characters inserted; <0 in case of error. 172 * @return Number of characters inserted; <0 in case of error.
174 * 173 *
175 */ 174 */
176 -LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str) 175 +LIB3270_EXPORT int lib3270_set_string(H3270 *hSession, const unsigned char *str)
177 { 176 {
178 PASTE_DATA data; 177 PASTE_DATA data;
179 unsigned char last = 1; 178 unsigned char last = 1;
180 179
181 - CHECK_SESSION_HANDLE(h); 180 + CHECK_SESSION_HANDLE(hSession);
182 181
183 memset(&data,0,sizeof(data)); 182 memset(&data,0,sizeof(data));
184 - data.row = BA_TO_ROW(h->cursor_addr);  
185 - data.orig_addr = h->cursor_addr;  
186 - data.orig_col = BA_TO_COL(h->cursor_addr); 183 + data.row = BA_TO_ROW(hSession->cursor_addr);
  184 + data.orig_addr = hSession->cursor_addr;
  185 + data.orig_col = BA_TO_COL(hSession->cursor_addr);
187 186
188 - if(h->kybdlock) 187 + if(hSession->kybdlock)
189 return -EINVAL; 188 return -EINVAL;
190 189
191 - h->suspend(h); 190 + hSession->suspend(hSession);
192 191
193 - while(*str && last && !h->kybdlock && h->cursor_addr >= data.orig_addr) 192 + while(*str && last && !hSession->kybdlock && hSession->cursor_addr >= data.orig_addr)
194 { 193 {
195 switch(*str) 194 switch(*str)
196 { 195 {
197 case '\t': 196 case '\t':
198 - last = paste_char(h,&data, ' '); 197 + last = paste_char(hSession,&data, ' ');
199 break; 198 break;
200 199
201 case '\n': 200 case '\n':
@@ -205,37 +204,37 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str) @@ -205,37 +204,37 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str)
205 int faddr; 204 int faddr;
206 unsigned char fa; 205 unsigned char fa;
207 206
208 - baddr = (h->cursor_addr + h->cols) % (h->cols * h->rows); /* down */  
209 - baddr = (baddr / h->cols) * h->cols; /* 1st col */  
210 - faddr = find_field_attribute(h,baddr);  
211 - fa = h->ea_buf[faddr].fa; 207 + baddr = (hSession->cursor_addr + hSession->cols) % (hSession->cols * hSession->rows); /* down */
  208 + baddr = (baddr / hSession->cols) * hSession->cols; /* 1st col */
  209 + faddr = find_field_attribute(hSession,baddr);
  210 + fa = hSession->ea_buf[faddr].fa;
212 if (faddr != baddr && !FA_IS_PROTECTED(fa)) 211 if (faddr != baddr && !FA_IS_PROTECTED(fa))
213 - cursor_move(h,baddr); 212 + cursor_move(hSession,baddr);
214 else 213 else
215 - cursor_move(h,next_unprotected(h,baddr));  
216 - data.row = BA_TO_ROW(h->cursor_addr); 214 + cursor_move(hSession,next_unprotected(hSession,baddr));
  215 + data.row = BA_TO_ROW(hSession->cursor_addr);
217 } 216 }
218 last = ' '; 217 last = ' ';
219 data.qtd++; 218 data.qtd++;
220 break; 219 break;
221 220
222 default: 221 default:
223 - last = paste_char(h,&data, *str); 222 + last = paste_char(hSession,&data, *str);
224 223
225 } 224 }
226 str++; 225 str++;
227 226
228 - if(IN_3270 && lib3270_get_toggle(h,LIB3270_TOGGLE_MARGINED_PASTE) && BA_TO_COL(h->cursor_addr) < data.orig_col) 227 + if(IN_3270 && lib3270_get_toggle(hSession,LIB3270_TOGGLE_MARGINED_PASTE) && BA_TO_COL(hSession->cursor_addr) < data.orig_col)
229 { 228 {
230 - if(!remargin(h,data.orig_col)) 229 + if(!remargin(hSession,data.orig_col))
231 last = 0; 230 last = 0;
232 } 231 }
233 232
234 - if(h->cursor_addr == data.orig_addr) 233 + if(hSession->cursor_addr == data.orig_addr)
235 break; 234 break;
236 } 235 }
237 236
238 - h->resume(h); 237 + hSession->resume(hSession);
239 238
240 return data.qtd; 239 return data.qtd;
241 } 240 }
@@ -70,7 +70,7 @@ @@ -70,7 +70,7 @@
70 70
71 #include "api.h" 71 #include "api.h"
72 72
73 -#include <lib3270/3270ds.h> 73 +#include "3270ds.h"
74 #include "popupsc.h" 74 #include "popupsc.h"
75 #include "proxyc.h" 75 #include "proxyc.h"
76 #include "resolverc.h" 76 #include "resolverc.h"
@@ -56,8 +56,7 @@ @@ -56,8 +56,7 @@
56 56
57 #include <assert.h> 57 #include <assert.h>
58 #include <stdarg.h> 58 #include <stdarg.h>
59 -#include <lib3270/3270ds.h>  
60 -//#include "appres.h" 59 +#include "3270ds.h"
61 60
62 #include "popupsc.h" 61 #include "popupsc.h"
63 #include "tablesc.h" 62 #include "tablesc.h"
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@
38 #include "globals.h" 38 #include "globals.h"
39 #include <signal.h> 39 #include <signal.h>
40 //#include "appres.h" 40 //#include "appres.h"
41 -#include <lib3270/3270ds.h> 41 +#include "3270ds.h"
42 #include "resources.h" 42 #include "resources.h"
43 // #include "ctlr.h" 43 // #include "ctlr.h"
44 44
@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
44 #include <signal.h> 44 #include <signal.h>
45 #include <stdarg.h> 45 #include <stdarg.h>
46 #include <fcntl.h> 46 #include <fcntl.h>
47 -#include <lib3270/3270ds.h> 47 +#include "3270ds.h"
48 48
49 #include "tablesc.h" 49 #include "tablesc.h"
50 #if !defined(PR3287) /*[*/ 50 #if !defined(PR3287) /*[*/
@@ -43,7 +43,7 @@ @@ -43,7 +43,7 @@
43 #include "ctlrc.h" 43 #include "ctlrc.h"
44 #include "ftc.h" 44 #include "ftc.h"
45 #include "kybdc.h" 45 #include "kybdc.h"
46 -#include <lib3270/3270ds.h> 46 +#include "3270ds.h"
47 47
48 /*---[ Globals ]--------------------------------------------------------------------------------------------------------------*/ 48 /*---[ Globals ]--------------------------------------------------------------------------------------------------------------*/
49 49
@@ -42,7 +42,7 @@ @@ -42,7 +42,7 @@
42 #if !defined(_WIN32) /*[*/ 42 #if !defined(_WIN32) /*[*/
43 #include <netinet/in.h> 43 #include <netinet/in.h>
44 #endif /*]*/ 44 #endif /*]*/
45 -#include <lib3270/3270ds.h> 45 +#include "3270ds.h"
46 // #include "appres.h" 46 // #include "appres.h"
47 #include "screen.h" 47 #include "screen.h"
48 // #include "ctlr.h" 48 // #include "ctlr.h"
@@ -81,7 +81,7 @@ @@ -81,7 +81,7 @@
81 // #include <stdarg.h> 81 // #include <stdarg.h>
82 82
83 #include "tn3270e.h" 83 #include "tn3270e.h"
84 -#include <lib3270/3270ds.h> 84 +#include "3270ds.h"
85 85
86 // #include "appres.h" 86 // #include "appres.h"
87 87
@@ -1001,7 +1001,7 @@ LIB3270_EXPORT void lib3270_data_recv(H3270 *hSession, size_t nr, const unsigned @@ -1001,7 +1001,7 @@ LIB3270_EXPORT void lib3270_data_recv(H3270 *hSession, size_t nr, const unsigned
1001 { 1001 {
1002 if(telnet_fsm(hSession,*cp)) 1002 if(telnet_fsm(hSession,*cp))
1003 { 1003 {
1004 - (void) ctlr_dbcs_postprocess(); 1004 + (void) ctlr_dbcs_postprocess(hSession);
1005 host_disconnect(hSession,True); 1005 host_disconnect(hSession,True);
1006 return; 1006 return;
1007 } 1007 }
@@ -1010,7 +1010,7 @@ LIB3270_EXPORT void lib3270_data_recv(H3270 *hSession, size_t nr, const unsigned @@ -1010,7 +1010,7 @@ LIB3270_EXPORT void lib3270_data_recv(H3270 *hSession, size_t nr, const unsigned
1010 #if defined(X3270_ANSI) 1010 #if defined(X3270_ANSI)
1011 if (IN_ANSI) 1011 if (IN_ANSI)
1012 { 1012 {
1013 - (void) ctlr_dbcs_postprocess(); 1013 + (void) ctlr_dbcs_postprocess(hSession);
1014 } 1014 }
1015 1015
1016 if (hSession->ansi_data) 1016 if (hSession->ansi_data)
@@ -1135,7 +1135,7 @@ void net_input(H3270 *session) @@ -1135,7 +1135,7 @@ void net_input(H3270 *session)
1135 { 1135 {
1136 if (telnet_fsm(session,*cp)) 1136 if (telnet_fsm(session,*cp))
1137 { 1137 {
1138 - (void) ctlr_dbcs_postprocess(); 1138 + (void) ctlr_dbcs_postprocess(hSession);
1139 host_disconnect(session,True); 1139 host_disconnect(session,True);
1140 return; 1140 return;
1141 } 1141 }
@@ -1144,7 +1144,7 @@ void net_input(H3270 *session) @@ -1144,7 +1144,7 @@ void net_input(H3270 *session)
1144 #if defined(X3270_ANSI) 1144 #if defined(X3270_ANSI)
1145 if (IN_ANSI) 1145 if (IN_ANSI)
1146 { 1146 {
1147 - (void) ctlr_dbcs_postprocess(); 1147 + (void) ctlr_dbcs_postprocess(hSession);
1148 } 1148 }
1149 1149
1150 if (session->ansi_data) 1150 if (session->ansi_data)
@@ -52,7 +52,7 @@ @@ -52,7 +52,7 @@
52 #include <signal.h> 52 #include <signal.h>
53 #include <stdarg.h> 53 #include <stdarg.h>
54 #include <fcntl.h> 54 #include <fcntl.h>
55 -#include <lib3270/3270ds.h> 55 +#include "3270ds.h"
56 //#include "appres.h" 56 //#include "appres.h"
57 #include "objects.h" 57 #include "objects.h"
58 #include "resources.h" 58 #include "resources.h"