Commit 597d8ae92b130bcf24d65e4807f3d2724d1b2ea7
1 parent
2347f103
Exists in
master
and in
5 other branches
Incluindo handle de sessão nas funções de carga de recursos
Showing
8 changed files
with
82 additions
and
78 deletions
Show diff stats
src/include/lib3270.h
@@ -867,7 +867,7 @@ | @@ -867,7 +867,7 @@ | ||
867 | * @return Resource string (Release with lib3270_free()) | 867 | * @return Resource string (Release with lib3270_free()) |
868 | * | 868 | * |
869 | */ | 869 | */ |
870 | - LIB3270_EXPORT char * lib3270_get_resource_string(const char *first_element, ...); | 870 | + LIB3270_EXPORT char * lib3270_get_resource_string(H3270 *hSession, const char *first_element, ...); |
871 | 871 | ||
872 | LIB3270_EXPORT const char * lib3270_get_version(void); | 872 | LIB3270_EXPORT const char * lib3270_get_version(void); |
873 | LIB3270_EXPORT const char * lib3270_get_revision(void); | 873 | LIB3270_EXPORT const char * lib3270_get_revision(void); |
src/lib3270/ansi.c
@@ -482,7 +482,7 @@ static const char csnames[] = "0AB"; | @@ -482,7 +482,7 @@ static const char csnames[] = "0AB"; | ||
482 | #if defined(X3270_DBCS) /*[*/ | 482 | #if defined(X3270_DBCS) /*[*/ |
483 | static unsigned char mb_pending = 0; | 483 | static unsigned char mb_pending = 0; |
484 | static char mb_buffer[LIB3270_MB_MAX]; | 484 | static char mb_buffer[LIB3270_MB_MAX]; |
485 | -static int dbcs_process(int ch, unsigned char ebc[]); | 485 | +static int dbcs_process(H3270 *hSession, int ch, unsigned char ebc[]); |
486 | #endif /*]*/ | 486 | #endif /*]*/ |
487 | // static int pmi = 0; | 487 | // static int pmi = 0; |
488 | // static char pending_mbs[LIB3270_MB_MAX]; | 488 | // static char pending_mbs[LIB3270_MB_MAX]; |
@@ -1107,7 +1107,7 @@ ansi_printing(H3270 *hSession, int ig1 unused, int ig2 unused) | @@ -1107,7 +1107,7 @@ ansi_printing(H3270 *hSession, int ig1 unused, int ig2 unused) | ||
1107 | int len; | 1107 | int len; |
1108 | unsigned char ebc[2]; | 1108 | unsigned char ebc[2]; |
1109 | 1109 | ||
1110 | - len = dbcs_process(ansi_ch, ebc); | 1110 | + len = dbcs_process(hSession, ansi_ch, ebc); |
1111 | switch (len) { | 1111 | switch (len) { |
1112 | default: | 1112 | default: |
1113 | case 0: | 1113 | case 0: |
@@ -1148,7 +1148,7 @@ ansi_printing(H3270 *hSession, int ig1 unused, int ig2 unused) | @@ -1148,7 +1148,7 @@ ansi_printing(H3270 *hSession, int ig1 unused, int ig2 unused) | ||
1148 | break; | 1148 | break; |
1149 | } | 1149 | } |
1150 | } else if (ansi_ch & 0x80) { | 1150 | } else if (ansi_ch & 0x80) { |
1151 | - (void) dbcs_process(ansi_ch, NULL); | 1151 | + (void) dbcs_process(hSession, ansi_ch, NULL); |
1152 | ebc_ch = EBC_space; | 1152 | ebc_ch = EBC_space; |
1153 | } | 1153 | } |
1154 | } | 1154 | } |
@@ -1722,13 +1722,13 @@ void ansi_in3270(H3270 *session, int in3270, void *dunno) | @@ -1722,13 +1722,13 @@ void ansi_in3270(H3270 *session, int in3270, void *dunno) | ||
1722 | } | 1722 | } |
1723 | 1723 | ||
1724 | #if defined(X3270_DBCS) /*[*/ | 1724 | #if defined(X3270_DBCS) /*[*/ |
1725 | -static void trace_pending_mb(void) | 1725 | +static void trace_pending_mb(H3270 *hSession) |
1726 | { | 1726 | { |
1727 | int i; | 1727 | int i; |
1728 | 1728 | ||
1729 | for (i = 0; i < mb_pending; i++) | 1729 | for (i = 0; i < mb_pending; i++) |
1730 | { | 1730 | { |
1731 | - trace_ds(&h3270," %02x", mb_buffer[i] & 0xff); | 1731 | + trace_ds(hSession," %02x", mb_buffer[i] & 0xff); |
1732 | } | 1732 | } |
1733 | } | 1733 | } |
1734 | #endif /*]*/ | 1734 | #endif /*]*/ |
@@ -1758,7 +1758,7 @@ ansi_process(H3270 *hSession, unsigned int c) | @@ -1758,7 +1758,7 @@ ansi_process(H3270 *hSession, unsigned int c) | ||
1758 | if (mb_pending && fn != &ansi_printing) | 1758 | if (mb_pending && fn != &ansi_printing) |
1759 | { | 1759 | { |
1760 | trace_ds(hSession,"Dropped incomplete multi-byte character"); | 1760 | trace_ds(hSession,"Dropped incomplete multi-byte character"); |
1761 | - trace_pending_mb(); | 1761 | + trace_pending_mb(hSession); |
1762 | trace_ds(hSession,"\n"); | 1762 | trace_ds(hSession,"\n"); |
1763 | mb_pending = 0; | 1763 | mb_pending = 0; |
1764 | } | 1764 | } |
@@ -1863,30 +1863,29 @@ void toggle_lineWrap(H3270 *hSession, struct lib3270_toggle *t unused, LIB3270_T | @@ -1863,30 +1863,29 @@ void toggle_lineWrap(H3270 *hSession, struct lib3270_toggle *t unused, LIB3270_T | ||
1863 | 1863 | ||
1864 | #if defined(X3270_DBCS) /*[*/ | 1864 | #if defined(X3270_DBCS) /*[*/ |
1865 | /* Accumulate and process pending DBCS characters. */ | 1865 | /* Accumulate and process pending DBCS characters. */ |
1866 | -static int | ||
1867 | -dbcs_process(int ch, unsigned char ebc[]) | 1866 | +static int dbcs_process(H3270 *hSession, int ch, unsigned char ebc[]) |
1868 | { | 1867 | { |
1869 | UChar Ubuf[2]; | 1868 | UChar Ubuf[2]; |
1870 | UErrorCode err = U_ZERO_ERROR; | 1869 | UErrorCode err = U_ZERO_ERROR; |
1871 | 1870 | ||
1872 | - /* See if we have too many. */ | 1871 | + // See if we have too many. |
1873 | if (mb_pending >= MB_MAX) { | 1872 | if (mb_pending >= MB_MAX) { |
1874 | trace_ds(&h3270,"Multi-byte character "); | 1873 | trace_ds(&h3270,"Multi-byte character "); |
1875 | - trace_pending_mb(); | 1874 | + trace_pending_mb(hSession); |
1876 | trace_ds(&h3270," too long, dropping\n"); | 1875 | trace_ds(&h3270," too long, dropping\n"); |
1877 | mb_pending = 0; | 1876 | mb_pending = 0; |
1878 | return 0; | 1877 | return 0; |
1879 | } | 1878 | } |
1880 | 1879 | ||
1881 | 1880 | ||
1882 | - /* Store it and see if we're done. */ | 1881 | + // Store it and see if we're done. |
1883 | mb_buffer[mb_pending++] = ch & 0xff; | 1882 | mb_buffer[mb_pending++] = ch & 0xff; |
1884 | - /* An interesting idea. */ | 1883 | + // An interesting idea. |
1885 | if (mb_pending == 1) | 1884 | if (mb_pending == 1) |
1886 | return 0; | 1885 | return 0; |
1887 | 1886 | ||
1888 | if (mb_to_unicode(mb_buffer, mb_pending, Ubuf, 2, &err) > 0) { | 1887 | if (mb_to_unicode(mb_buffer, mb_pending, Ubuf, 2, &err) > 0) { |
1889 | - /* It translated! */ | 1888 | + // It translated! |
1890 | if (dbcs_map8(Ubuf[0], ebc)) { | 1889 | if (dbcs_map8(Ubuf[0], ebc)) { |
1891 | mb_pending = 0; | 1890 | mb_pending = 0; |
1892 | return 1; | 1891 | return 1; |
@@ -1895,7 +1894,7 @@ dbcs_process(int ch, unsigned char ebc[]) | @@ -1895,7 +1894,7 @@ dbcs_process(int ch, unsigned char ebc[]) | ||
1895 | return 2; | 1894 | return 2; |
1896 | } else { | 1895 | } else { |
1897 | trace_ds(&h3270,"Can't map multi-byte character"); | 1896 | trace_ds(&h3270,"Can't map multi-byte character"); |
1898 | - trace_pending_mb(); | 1897 | + trace_pending_mb(&h3270); |
1899 | trace_ds(&h3270," -> U+%04x to SBCS or DBCS, dropping\n", | 1898 | trace_ds(&h3270," -> U+%04x to SBCS or DBCS, dropping\n", |
1900 | Ubuf[0] & 0xffff); | 1899 | Ubuf[0] & 0xffff); |
1901 | mb_pending = 0; | 1900 | mb_pending = 0; |
@@ -1903,7 +1902,7 @@ dbcs_process(int ch, unsigned char ebc[]) | @@ -1903,7 +1902,7 @@ dbcs_process(int ch, unsigned char ebc[]) | ||
1903 | } | 1902 | } |
1904 | } | 1903 | } |
1905 | 1904 | ||
1906 | - /* It failed. See why. */ | 1905 | + // It failed. See why |
1907 | switch (err) { | 1906 | switch (err) { |
1908 | case U_TRUNCATED_CHAR_FOUND: | 1907 | case U_TRUNCATED_CHAR_FOUND: |
1909 | /* 'Cause we're not finished. */ | 1908 | /* 'Cause we're not finished. */ |
@@ -1911,12 +1910,12 @@ dbcs_process(int ch, unsigned char ebc[]) | @@ -1911,12 +1910,12 @@ dbcs_process(int ch, unsigned char ebc[]) | ||
1911 | case U_INVALID_CHAR_FOUND: | 1910 | case U_INVALID_CHAR_FOUND: |
1912 | case U_ILLEGAL_CHAR_FOUND: | 1911 | case U_ILLEGAL_CHAR_FOUND: |
1913 | trace_ds(&h3270,"Invalid multi-byte character"); | 1912 | trace_ds(&h3270,"Invalid multi-byte character"); |
1914 | - trace_pending_mb(); | 1913 | + trace_pending_mb(&h3270); |
1915 | trace_ds(&h3270,", dropping\n"); | 1914 | trace_ds(&h3270,", dropping\n"); |
1916 | break; | 1915 | break; |
1917 | default: | 1916 | default: |
1918 | trace_ds(&h3270,"Unexpected ICU error %d translating multi-type character", (int)err); | 1917 | trace_ds(&h3270,"Unexpected ICU error %d translating multi-type character", (int)err); |
1919 | - trace_pending_mb(); | 1918 | + trace_pending_mb(&h3270); |
1920 | trace_ds(&h3270,", dropping\n"); | 1919 | trace_ds(&h3270,", dropping\n"); |
1921 | break; | 1920 | break; |
1922 | } | 1921 | } |
src/lib3270/charset.c
@@ -95,7 +95,7 @@ unsigned char xk_selector = 0; | @@ -95,7 +95,7 @@ unsigned char xk_selector = 0; | ||
95 | unsigned char auto_keymap = 0; | 95 | unsigned char auto_keymap = 0; |
96 | 96 | ||
97 | /* Statics. */ | 97 | /* Statics. */ |
98 | -static enum cs_result resource_charset(const char *csname, char *cs, char *ftcs); | 98 | +static enum cs_result resource_charset(H3270 *hSession, const char *csname, char *cs, char *ftcs); |
99 | typedef enum { CS_ONLY, FT_ONLY, BOTH } remap_scope; | 99 | typedef enum { CS_ONLY, FT_ONLY, BOTH } remap_scope; |
100 | static enum cs_result remap_chars(const char *csname, char *spec, remap_scope scope, int *ne); | 100 | static enum cs_result remap_chars(const char *csname, char *spec, remap_scope scope, int *ne); |
101 | static void remap_one(unsigned char ebc, KeySym iso, remap_scope scope,Boolean one_way); | 101 | static void remap_one(unsigned char ebc, KeySym iso, remap_scope scope,Boolean one_way); |
@@ -201,7 +201,7 @@ wide_resource_init(char *csname) | @@ -201,7 +201,7 @@ wide_resource_init(char *csname) | ||
201 | /* | 201 | /* |
202 | * Change character sets. | 202 | * Change character sets. |
203 | */ | 203 | */ |
204 | -enum cs_result charset_init(H3270 *session, const char *csname) | 204 | +enum cs_result charset_init(H3270 *hSession, const char *csname) |
205 | { | 205 | { |
206 | // char *cs; | 206 | // char *cs; |
207 | // const char *ftcs; | 207 | // const char *ftcs; |
@@ -215,7 +215,7 @@ enum cs_result charset_init(H3270 *session, const char *csname) | @@ -215,7 +215,7 @@ enum cs_result charset_init(H3270 *session, const char *csname) | ||
215 | { | 215 | { |
216 | charset_defaults(); | 216 | charset_defaults(); |
217 | set_cgcsgids(CN); | 217 | set_cgcsgids(CN); |
218 | - set_display_charset(session, "ISO-8859-1"); | 218 | + set_display_charset(hSession, "ISO-8859-1"); |
219 | return CS_OKAY; | 219 | return CS_OKAY; |
220 | } | 220 | } |
221 | 221 | ||
@@ -223,7 +223,7 @@ enum cs_result charset_init(H3270 *session, const char *csname) | @@ -223,7 +223,7 @@ enum cs_result charset_init(H3270 *session, const char *csname) | ||
223 | #ifdef ANDROID | 223 | #ifdef ANDROID |
224 | ccs = strdup("0xad: [ \n 0xba: Yacute \n0xbd: ] \n 0xbb: diaeresis \n"); | 224 | ccs = strdup("0xad: [ \n 0xba: Yacute \n0xbd: ] \n 0xbb: diaeresis \n"); |
225 | #else | 225 | #else |
226 | - ccs = lib3270_get_resource_string("charset", csname, NULL); | 226 | + ccs = lib3270_get_resource_string(hSession,"charset", csname, NULL); |
227 | #endif | 227 | #endif |
228 | /* | 228 | /* |
229 | if (cs == CN && strlen(csname) > ES_SIZE && !strcasecmp(csname + strlen(csname) - ES_SIZE, EURO_SUFFIX)) | 229 | if (cs == CN && strlen(csname) > ES_SIZE && !strcasecmp(csname + strlen(csname) - ES_SIZE, EURO_SUFFIX)) |
@@ -241,21 +241,21 @@ enum cs_result charset_init(H3270 *session, const char *csname) | @@ -241,21 +241,21 @@ enum cs_result charset_init(H3270 *session, const char *csname) | ||
241 | return CS_NOTFOUND; | 241 | return CS_NOTFOUND; |
242 | 242 | ||
243 | /* Grab the File Transfer character set. */ | 243 | /* Grab the File Transfer character set. */ |
244 | - cftcs = lib3270_get_resource_string("ftCharset",csname,NULL); | 244 | + cftcs = lib3270_get_resource_string(hSession,"ftCharset",csname,NULL); |
245 | 245 | ||
246 | /* Save the current definitions, and start over with the defaults. */ | 246 | /* Save the current definitions, and start over with the defaults. */ |
247 | save_charset(); | 247 | save_charset(); |
248 | charset_defaults(); | 248 | charset_defaults(); |
249 | 249 | ||
250 | /* Check for auto-keymap. */ | 250 | /* Check for auto-keymap. */ |
251 | - ak = lib3270_get_resource_string("autoKeymap", csname, NULL); | 251 | + ak = lib3270_get_resource_string(hSession,"autoKeymap", csname, NULL); |
252 | if (ak != NULL) | 252 | if (ak != NULL) |
253 | auto_keymap = !strcasecmp(ak, "true"); | 253 | auto_keymap = !strcasecmp(ak, "true"); |
254 | else | 254 | else |
255 | auto_keymap = 0; | 255 | auto_keymap = 0; |
256 | 256 | ||
257 | /* Interpret them. */ | 257 | /* Interpret them. */ |
258 | - rc = resource_charset(csname, ccs, cftcs); | 258 | + rc = resource_charset(hSession,csname, ccs, cftcs); |
259 | 259 | ||
260 | /* Free them. */ | 260 | /* Free them. */ |
261 | lib3270_free(ccs); | 261 | lib3270_free(ccs); |
@@ -376,7 +376,7 @@ set_charset_name(char *csname) | @@ -376,7 +376,7 @@ set_charset_name(char *csname) | ||
376 | */ | 376 | */ |
377 | 377 | ||
378 | /* Define a charset from resources. */ | 378 | /* Define a charset from resources. */ |
379 | -static enum cs_result resource_charset(const char *csname, char *cs, char *ftcs) | 379 | +static enum cs_result resource_charset(H3270 *hSession, const char *csname, char *cs, char *ftcs) |
380 | { | 380 | { |
381 | enum cs_result rc; | 381 | enum cs_result rc; |
382 | int ne = 0; | 382 | int ne = 0; |
@@ -395,7 +395,7 @@ static enum cs_result resource_charset(const char *csname, char *cs, char *ftcs) | @@ -395,7 +395,7 @@ static enum cs_result resource_charset(const char *csname, char *cs, char *ftcs) | ||
395 | } | 395 | } |
396 | 396 | ||
397 | // rcs = get_fresource("%s.%s", "displayCharset", csname); | 397 | // rcs = get_fresource("%s.%s", "displayCharset", csname); |
398 | - rcs = lib3270_get_resource_string("displayCharset", csname, NULL); | 398 | + rcs = lib3270_get_resource_string(hSession,"displayCharset", csname, NULL); |
399 | 399 | ||
400 | /* Isolate the pieces. */ | 400 | /* Isolate the pieces. */ |
401 | if (rcs != CN) | 401 | if (rcs != CN) |
@@ -448,18 +448,18 @@ static enum cs_result resource_charset(const char *csname, char *cs, char *ftcs) | @@ -448,18 +448,18 @@ static enum cs_result resource_charset(const char *csname, char *cs, char *ftcs) | ||
448 | /* Set up the cgcsgid. */ | 448 | /* Set up the cgcsgid. */ |
449 | // set_cgcsgids(get_fresource("%s.%s", "codepage", csname)); | 449 | // set_cgcsgids(get_fresource("%s.%s", "codepage", csname)); |
450 | { | 450 | { |
451 | - char *ptr = lib3270_get_resource_string("codepage", csname, NULL); | 451 | + char *ptr = lib3270_get_resource_string(hSession,"codepage", csname, NULL); |
452 | set_cgcsgids(ptr); | 452 | set_cgcsgids(ptr); |
453 | lib3270_free(ptr); | 453 | lib3270_free(ptr); |
454 | } | 454 | } |
455 | 455 | ||
456 | // dcs = get_fresource("%s.%s", "displayCharset", csname); | 456 | // dcs = get_fresource("%s.%s", "displayCharset", csname); |
457 | - dcs = lib3270_get_resource_string("displayCharset", csname, NULL); | 457 | + dcs = lib3270_get_resource_string(hSession,"displayCharset", csname, NULL); |
458 | 458 | ||
459 | if (dcs != NULL) | 459 | if (dcs != NULL) |
460 | - set_display_charset(&h3270,dcs); | 460 | + set_display_charset(hSession,dcs); |
461 | else | 461 | else |
462 | - set_display_charset(&h3270,"ISO-8859-1"); | 462 | + set_display_charset(hSession,"ISO-8859-1"); |
463 | 463 | ||
464 | lib3270_free(dcs); | 464 | lib3270_free(dcs); |
465 | 465 |
src/lib3270/ctlr.c
@@ -1233,29 +1233,29 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er | @@ -1233,29 +1233,29 @@ enum pds ctlr_write(H3270 *hSession, unsigned char buf[], int buflen, Boolean er | ||
1233 | else | 1233 | else |
1234 | { | 1234 | { |
1235 | if (ra_ge) | 1235 | if (ra_ge) |
1236 | - ctlr_add(hSession,h3270.buffer_addr, add_c1,CS_GE); | ||
1237 | - else if (h3270.default_cs) | ||
1238 | - ctlr_add(hSession,h3270.buffer_addr, add_c1,h3270.default_cs); | 1236 | + ctlr_add(hSession,hSession->buffer_addr, add_c1,CS_GE); |
1237 | + else if (hSession->default_cs) | ||
1238 | + ctlr_add(hSession,hSession->buffer_addr, add_c1,hSession->default_cs); | ||
1239 | else | 1239 | else |
1240 | - ctlr_add(hSession,h3270.buffer_addr, add_c1,0); | 1240 | + ctlr_add(hSession,hSession->buffer_addr, add_c1,0); |
1241 | } | 1241 | } |
1242 | - ctlr_add_fg(hSession,h3270.buffer_addr, h3270.default_fg); | ||
1243 | - ctlr_add_gr(hSession,h3270.buffer_addr, h3270.default_gr); | ||
1244 | - ctlr_add_ic(hSession,h3270.buffer_addr, h3270.default_ic); | 1242 | + ctlr_add_fg(hSession,hSession->buffer_addr, hSession->default_fg); |
1243 | + ctlr_add_gr(hSession,hSession->buffer_addr, hSession->default_gr); | ||
1244 | + ctlr_add_ic(hSession,hSession->buffer_addr, hSession->default_ic); | ||
1245 | 1245 | ||
1246 | INC_BA(hSession->buffer_addr); | 1246 | INC_BA(hSession->buffer_addr); |
1247 | if (add_dbcs) | 1247 | if (add_dbcs) |
1248 | { | 1248 | { |
1249 | - ctlr_add(hSession,h3270.buffer_addr, add_c2,h3270.default_cs); | ||
1250 | - ctlr_add_fg(hSession,h3270.buffer_addr, h3270.default_fg); | ||
1251 | - ctlr_add_bg(hSession,h3270.buffer_addr, h3270.default_bg); | ||
1252 | - ctlr_add_gr(hSession,h3270.buffer_addr, h3270.default_gr); | ||
1253 | - ctlr_add_ic(hSession,h3270.buffer_addr, h3270.default_ic); | 1249 | + ctlr_add(hSession,hSession->buffer_addr, add_c2,hSession->default_cs); |
1250 | + ctlr_add_fg(hSession,hSession->buffer_addr, h3270.default_fg); | ||
1251 | + ctlr_add_bg(hSession,hSession->buffer_addr, hSession->default_bg); | ||
1252 | + ctlr_add_gr(hSession,hSession->buffer_addr, hSession->default_gr); | ||
1253 | + ctlr_add_ic(hSession,hSession->buffer_addr, hSession->default_ic); | ||
1254 | INC_BA(hSession->buffer_addr); | 1254 | INC_BA(hSession->buffer_addr); |
1255 | } | 1255 | } |
1256 | - } while (h3270.buffer_addr != baddr); | 1256 | + } while (hSession->buffer_addr != baddr); |
1257 | 1257 | ||
1258 | - current_fa = get_field_attribute(&h3270,h3270.buffer_addr); | 1258 | + current_fa = get_field_attribute(hSession,hSession->buffer_addr); |
1259 | last_cmd = True; | 1259 | last_cmd = True; |
1260 | last_zpt = False; | 1260 | last_zpt = False; |
1261 | break; | 1261 | break; |
src/lib3270/kybd.c
@@ -2062,19 +2062,19 @@ LIB3270_ACTION( eraseeof ) | @@ -2062,19 +2062,19 @@ LIB3270_ACTION( eraseeof ) | ||
2062 | #endif /*]*/ | 2062 | #endif /*]*/ |
2063 | baddr = hSession->cursor_addr; | 2063 | baddr = hSession->cursor_addr; |
2064 | fa = get_field_attribute(hSession,baddr); | 2064 | fa = get_field_attribute(hSession,baddr); |
2065 | - if (FA_IS_PROTECTED(fa) || h3270.ea_buf[baddr].fa) { | ||
2066 | - operator_error(&h3270,KL_OERR_PROTECTED); | 2065 | + if (FA_IS_PROTECTED(fa) || hSession->ea_buf[baddr].fa) { |
2066 | + operator_error(hSession,KL_OERR_PROTECTED); | ||
2067 | return -1; | 2067 | return -1; |
2068 | } | 2068 | } |
2069 | if (hSession->formatted) { /* erase to next field attribute */ | 2069 | if (hSession->formatted) { /* erase to next field attribute */ |
2070 | do { | 2070 | do { |
2071 | - ctlr_add(&h3270,baddr, EBC_null, 0); | 2071 | + ctlr_add(hSession,baddr, EBC_null, 0); |
2072 | INC_BA(baddr); | 2072 | INC_BA(baddr); |
2073 | - } while (!h3270.ea_buf[baddr].fa); | 2073 | + } while (!hSession->ea_buf[baddr].fa); |
2074 | mdt_set(hSession,hSession->cursor_addr); | 2074 | mdt_set(hSession,hSession->cursor_addr); |
2075 | } else { /* erase to end of screen */ | 2075 | } else { /* erase to end of screen */ |
2076 | do { | 2076 | do { |
2077 | - ctlr_add(&h3270,baddr, EBC_null, 0); | 2077 | + ctlr_add(hSession,baddr, EBC_null, 0); |
2078 | INC_BA(baddr); | 2078 | INC_BA(baddr); |
2079 | } while (baddr != 0); | 2079 | } while (baddr != 0); |
2080 | } | 2080 | } |
@@ -2085,9 +2085,9 @@ LIB3270_ACTION( eraseeof ) | @@ -2085,9 +2085,9 @@ LIB3270_ACTION( eraseeof ) | ||
2085 | if (d == DBCS_RIGHT) { | 2085 | if (d == DBCS_RIGHT) { |
2086 | baddr = hSession->cursor_addr; | 2086 | baddr = hSession->cursor_addr; |
2087 | DEC_BA(baddr); | 2087 | DEC_BA(baddr); |
2088 | - h3270.ea_buf[baddr].cc = EBC_si; | 2088 | + hSession->ea_buf[baddr].cc = EBC_si; |
2089 | } else | 2089 | } else |
2090 | - h3270.ea_buf[hSession->cursor_addr].cc = EBC_si; | 2090 | + hSession->ea_buf[hSession->cursor_addr].cc = EBC_si; |
2091 | } | 2091 | } |
2092 | (void) ctlr_dbcs_postprocess(hSession); | 2092 | (void) ctlr_dbcs_postprocess(hSession); |
2093 | hSession->display(hSession); | 2093 | hSession->display(hSession); |
@@ -2183,7 +2183,7 @@ LIB3270_ACTION( deleteword ) | @@ -2183,7 +2183,7 @@ LIB3270_ACTION( deleteword ) | ||
2183 | 2183 | ||
2184 | /* Make sure we're on a modifiable field. */ | 2184 | /* Make sure we're on a modifiable field. */ |
2185 | if (FA_IS_PROTECTED(fa) || hSession->ea_buf[baddr].fa) { | 2185 | if (FA_IS_PROTECTED(fa) || hSession->ea_buf[baddr].fa) { |
2186 | - operator_error(&h3270,KL_OERR_PROTECTED); | 2186 | + operator_error(hSession,KL_OERR_PROTECTED); |
2187 | return -1; | 2187 | return -1; |
2188 | } | 2188 | } |
2189 | 2189 | ||
@@ -2377,28 +2377,33 @@ LIB3270_ACTION( fieldend ) | @@ -2377,28 +2377,33 @@ LIB3270_ACTION( fieldend ) | ||
2377 | return 0; | 2377 | return 0; |
2378 | } | 2378 | } |
2379 | 2379 | ||
2380 | -/* PA key action for String actions */ | ||
2381 | -static void | ||
2382 | -do_pa(unsigned n) | 2380 | +/** |
2381 | + * PA key action for String actions | ||
2382 | + */ | ||
2383 | +static void do_pa(H3270 *hSession, unsigned n) | ||
2383 | { | 2384 | { |
2384 | - if (n < 1 || n > PA_SZ) { | ||
2385 | - popup_an_error(NULL, _( "Unknown PA key %d" ), n); | 2385 | + if (n < 1 || n > PA_SZ) |
2386 | + { | ||
2387 | + popup_an_error(hSession, _( "Unknown PA key %d" ), n); | ||
2386 | return; | 2388 | return; |
2387 | } | 2389 | } |
2388 | 2390 | ||
2389 | - lib3270_pakey(&h3270,n); | 2391 | + lib3270_pakey(hSession,n); |
2390 | 2392 | ||
2391 | } | 2393 | } |
2392 | 2394 | ||
2393 | -/* PF key action for String actions */ | ||
2394 | -static void do_pf(unsigned n) | 2395 | +/** |
2396 | + * PF key action for String actions | ||
2397 | + */ | ||
2398 | +static void do_pf(H3270 *hSession, unsigned n) | ||
2395 | { | 2399 | { |
2396 | - if (n < 1 || n > PF_SZ) { | ||
2397 | - popup_an_error(NULL, _( "Unknown PF key %d" ), n); | 2400 | + if (n < 1 || n > PF_SZ) |
2401 | + { | ||
2402 | + popup_an_error(hSession, _( "Unknown PF key %d" ), n); | ||
2398 | return; | 2403 | return; |
2399 | } | 2404 | } |
2400 | 2405 | ||
2401 | - lib3270_pfkey(&h3270,n); | 2406 | + lib3270_pfkey(hSession,n); |
2402 | } | 2407 | } |
2403 | 2408 | ||
2404 | /* | 2409 | /* |
@@ -2747,7 +2752,7 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *hSession, char *s, int len, int | @@ -2747,7 +2752,7 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *hSession, char *s, int len, int | ||
2747 | } | 2752 | } |
2748 | else | 2753 | else |
2749 | { | 2754 | { |
2750 | - do_pf(literal); | 2755 | + do_pf(hSession,literal); |
2751 | skipped = False; | 2756 | skipped = False; |
2752 | if (IN_3270) | 2757 | if (IN_3270) |
2753 | return len-1; | 2758 | return len-1; |
@@ -2769,7 +2774,7 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *hSession, char *s, int len, int | @@ -2769,7 +2774,7 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *hSession, char *s, int len, int | ||
2769 | } | 2774 | } |
2770 | else | 2775 | else |
2771 | { | 2776 | { |
2772 | - do_pa(literal); | 2777 | + do_pa(hSession, literal); |
2773 | skipped = False; | 2778 | skipped = False; |
2774 | if (IN_3270) | 2779 | if (IN_3270) |
2775 | return len-1; | 2780 | return len-1; |
@@ -2866,7 +2871,7 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *hSession, char *s, int len, int | @@ -2866,7 +2871,7 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *hSession, char *s, int len, int | ||
2866 | case BACKPF: | 2871 | case BACKPF: |
2867 | if (nc > 0) | 2872 | if (nc > 0) |
2868 | { | 2873 | { |
2869 | - do_pf(literal); | 2874 | + do_pf(hSession,literal); |
2870 | state = BASE; | 2875 | state = BASE; |
2871 | } | 2876 | } |
2872 | break; | 2877 | break; |
@@ -2874,7 +2879,7 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *hSession, char *s, int len, int | @@ -2874,7 +2879,7 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *hSession, char *s, int len, int | ||
2874 | case BACKPA: | 2879 | case BACKPA: |
2875 | if (nc > 0) | 2880 | if (nc > 0) |
2876 | { | 2881 | { |
2877 | - do_pa(literal); | 2882 | + do_pa(hSession,literal); |
2878 | state = BASE; | 2883 | state = BASE; |
2879 | } | 2884 | } |
2880 | break; | 2885 | break; |
src/lib3270/resources.c
@@ -127,7 +127,7 @@ void add_resource(const char *name, const char *value) | @@ -127,7 +127,7 @@ void add_resource(const char *name, const char *value) | ||
127 | } | 127 | } |
128 | 128 | ||
129 | 129 | ||
130 | -const char * get_resource(const char *name) | 130 | +const char * get_resource(H3270 *hSession, const char *name) |
131 | { | 131 | { |
132 | struct dresource *d; | 132 | struct dresource *d; |
133 | int i; | 133 | int i; |
@@ -136,7 +136,7 @@ const char * get_resource(const char *name) | @@ -136,7 +136,7 @@ const char * get_resource(const char *name) | ||
136 | { | 136 | { |
137 | if (!strcmp(d->name, name)) | 137 | if (!strcmp(d->name, name)) |
138 | { | 138 | { |
139 | - lib3270_write_log(&h3270,"resource","%s=\"%s\"",name,d->value); | 139 | + lib3270_write_log(hSession,"resource","%s=\"%s\"",name,d->value); |
140 | return d->value; | 140 | return d->value; |
141 | } | 141 | } |
142 | } | 142 | } |
@@ -146,7 +146,7 @@ const char * get_resource(const char *name) | @@ -146,7 +146,7 @@ const char * get_resource(const char *name) | ||
146 | if (!strncmp(fallbacks[i], name, strlen(name)) && *(fallbacks[i] + strlen(name)) == ':') | 146 | if (!strncmp(fallbacks[i], name, strlen(name)) && *(fallbacks[i] + strlen(name)) == ':') |
147 | { | 147 | { |
148 | const char *ret = fallbacks[i] + strlen(name) + 2; | 148 | const char *ret = fallbacks[i] + strlen(name) + 2; |
149 | - lib3270_write_log(&h3270,"resource","%s=\"%s\"",name,ret); | 149 | + lib3270_write_log(hSession,"resource","%s=\"%s\"",name,ret); |
150 | return ret; | 150 | return ret; |
151 | } | 151 | } |
152 | } | 152 | } |
@@ -156,7 +156,7 @@ const char * get_resource(const char *name) | @@ -156,7 +156,7 @@ const char * get_resource(const char *name) | ||
156 | { | 156 | { |
157 | if (!strcmp(rdb[i].name, name)) | 157 | if (!strcmp(rdb[i].name, name)) |
158 | { | 158 | { |
159 | - lib3270_write_log(&h3270,"resource","%s=\"%s\"",name,rdb[i].value); | 159 | + lib3270_write_log(hSession,"resource","%s=\"%s\"",name,rdb[i].value); |
160 | return rdb[i].value; | 160 | return rdb[i].value; |
161 | } | 161 | } |
162 | } | 162 | } |
@@ -165,7 +165,7 @@ const char * get_resource(const char *name) | @@ -165,7 +165,7 @@ const char * get_resource(const char *name) | ||
165 | } | 165 | } |
166 | 166 | ||
167 | /* A version of get_resource that accepts sprintf arguments. */ | 167 | /* A version of get_resource that accepts sprintf arguments. */ |
168 | -const char * get_fresource(const char *fmt, ...) | 168 | +const char * get_fresource(H3270 *hSession, const char *fmt, ...) |
169 | { | 169 | { |
170 | va_list args; | 170 | va_list args; |
171 | char *name; | 171 | char *name; |
@@ -174,7 +174,7 @@ const char * get_fresource(const char *fmt, ...) | @@ -174,7 +174,7 @@ const char * get_fresource(const char *fmt, ...) | ||
174 | va_start(args, fmt); | 174 | va_start(args, fmt); |
175 | name = lib3270_vsprintf(fmt, args); | 175 | name = lib3270_vsprintf(fmt, args); |
176 | va_end(args); | 176 | va_end(args); |
177 | - r = get_resource(name); | 177 | + r = get_resource(hSession,name); |
178 | lib3270_free(name); | 178 | lib3270_free(name); |
179 | return r; | 179 | return r; |
180 | } | 180 | } |
src/lib3270/util.c
@@ -943,7 +943,7 @@ void * Calloc(size_t nelem, size_t elsize) | @@ -943,7 +943,7 @@ void * Calloc(size_t nelem, size_t elsize) | ||
943 | } | 943 | } |
944 | */ | 944 | */ |
945 | 945 | ||
946 | -LIB3270_EXPORT char * lib3270_get_resource_string(const char *first_element, ...) | 946 | +LIB3270_EXPORT char * lib3270_get_resource_string(H3270 *hSession, const char *first_element, ...) |
947 | { | 947 | { |
948 | #ifdef ANDROID | 948 | #ifdef ANDROID |
949 | 949 | ||
@@ -972,7 +972,7 @@ LIB3270_EXPORT char * lib3270_get_resource_string(const char *first_element, ... | @@ -972,7 +972,7 @@ LIB3270_EXPORT char * lib3270_get_resource_string(const char *first_element, ... | ||
972 | 972 | ||
973 | *ptr = 0; | 973 | *ptr = 0; |
974 | 974 | ||
975 | - res = get_resource(str); | 975 | + res = get_resource(hSession,str); |
976 | 976 | ||
977 | trace("%s(%s)=%s",__FUNCTION__,str,res ? res : "NULL"); | 977 | trace("%s(%s)=%s",__FUNCTION__,str,res ? res : "NULL"); |
978 | 978 |
src/lib3270/utilc.h
@@ -23,8 +23,8 @@ LIB3270_INTERNAL char *ctl_see(int c); | @@ -23,8 +23,8 @@ LIB3270_INTERNAL char *ctl_see(int c); | ||
23 | LIB3270_INTERNAL char *do_subst(const char *s, Boolean do_vars, Boolean do_tilde); | 23 | LIB3270_INTERNAL char *do_subst(const char *s, Boolean do_vars, Boolean do_tilde); |
24 | LIB3270_INTERNAL void fcatv(FILE *f, char *s); | 24 | LIB3270_INTERNAL void fcatv(FILE *f, char *s); |
25 | LIB3270_INTERNAL const char *get_message(const char *key); | 25 | LIB3270_INTERNAL const char *get_message(const char *key); |
26 | -LIB3270_INTERNAL const char *get_fresource(const char *fmt, ...) printflike(1, 2); | ||
27 | -LIB3270_INTERNAL const char *get_resource(const char *name); | 26 | +LIB3270_INTERNAL const char *get_fresource(H3270 *hSession, const char *fmt, ...) printflike(2, 3); |
27 | +LIB3270_INTERNAL const char *get_resource(H3270 *hSession, const char *name); | ||
28 | LIB3270_INTERNAL char *scatv(const char *s, char *buf, size_t len); | 28 | LIB3270_INTERNAL char *scatv(const char *s, char *buf, size_t len); |
29 | LIB3270_INTERNAL int split_dbcs_resource(const char *value, char sep, char **part1, | 29 | LIB3270_INTERNAL int split_dbcs_resource(const char *value, char sep, char **part1, |
30 | char **part2); | 30 | char **part2); |