Commit 50a7673afc151c6efd6ae09e7d3e413625ceebc5
1 parent
d40c906d
Exists in
master
and in
3 other branches
wip - Reduzindo tamanho da tabela de charsets
Showing
11 changed files
with
246 additions
and
341 deletions
Show diff stats
charset.c
| @@ -18,7 +18,7 @@ | @@ -18,7 +18,7 @@ | ||
| 18 | * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | 18 | * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin |
| 19 | * St, Fifth Floor, Boston, MA 02110-1301 USA | 19 | * St, Fifth Floor, Boston, MA 02110-1301 USA |
| 20 | * | 20 | * |
| 21 | - * Este programa está nomeado como charset.c e possui 749 linhas de código. | 21 | + * Este programa está nomeado como charset.c e possui - linhas de código. |
| 22 | * | 22 | * |
| 23 | * Contatos: | 23 | * Contatos: |
| 24 | * | 24 | * |
| @@ -26,7 +26,6 @@ | @@ -26,7 +26,6 @@ | ||
| 26 | * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | 26 | * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) |
| 27 | * licinio@bb.com.br (Licínio Luis Branco) | 27 | * licinio@bb.com.br (Licínio Luis Branco) |
| 28 | * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | 28 | * kraucer@bb.com.br (Kraucer Fernandes Mazuco) |
| 29 | - * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) | ||
| 30 | * | 29 | * |
| 31 | */ | 30 | */ |
| 32 | 31 | ||
| @@ -49,12 +48,6 @@ | @@ -49,12 +48,6 @@ | ||
| 49 | #include <stdlib.h> | 48 | #include <stdlib.h> |
| 50 | #endif // !ANDROID | 49 | #endif // !ANDROID |
| 51 | 50 | ||
| 52 | -/* | ||
| 53 | -#if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) | ||
| 54 | -#include "screenc.h" | ||
| 55 | -#endif | ||
| 56 | -*/ | ||
| 57 | - | ||
| 58 | #include "tablesc.h" | 51 | #include "tablesc.h" |
| 59 | #include "utf8c.h" | 52 | #include "utf8c.h" |
| 60 | #include "utilc.h" | 53 | #include "utilc.h" |
| @@ -63,49 +56,31 @@ | @@ -63,49 +56,31 @@ | ||
| 63 | 56 | ||
| 64 | #include <errno.h> | 57 | #include <errno.h> |
| 65 | 58 | ||
| 66 | -//#include <locale.h> | ||
| 67 | - | ||
| 68 | -/* | ||
| 69 | -#if !defined(_WIN32) | ||
| 70 | -#include <langinfo.h> | ||
| 71 | -#endif | ||
| 72 | -*/ | ||
| 73 | - | ||
| 74 | -// #include <lib3270/api.h> | ||
| 75 | - | ||
| 76 | #define EURO_SUFFIX "-euro" | 59 | #define EURO_SUFFIX "-euro" |
| 77 | #define ES_SIZE (sizeof(EURO_SUFFIX) - 1) | 60 | #define ES_SIZE (sizeof(EURO_SUFFIX) - 1) |
| 78 | 61 | ||
| 79 | /* Globals. */ | 62 | /* Globals. */ |
| 80 | -// static Boolean charset_changed = False; | ||
| 81 | -#define DEFAULT_CGEN 0x02b90000 | ||
| 82 | -#define DEFAULT_CSET 0x00000025 | ||
| 83 | -unsigned long cgcsgid = DEFAULT_CGEN | DEFAULT_CSET; | ||
| 84 | -unsigned long cgcsgid_dbcs = 0L; | 63 | +// unsigned long cgcsgid = LIB3270_DEFAULT_CGEN | LIB3270_DEFAULT_CSET; |
| 64 | +// unsigned long cgcsgid_dbcs = 0L; | ||
| 85 | const char *default_display_charset = "3270cg-1a,3270cg-1,iso8859-1"; | 65 | const char *default_display_charset = "3270cg-1a,3270cg-1,iso8859-1"; |
| 86 | -// char *converter_names; | ||
| 87 | -char *encoding; | ||
| 88 | - | ||
| 89 | -/* | ||
| 90 | -#if defined(X3270_DISPLAY) | ||
| 91 | -unsigned char xk_selector = 0; | ||
| 92 | -#endif | ||
| 93 | -*/ | 66 | +// char *encoding; |
| 94 | 67 | ||
| 95 | -unsigned char auto_keymap = 0; | 68 | +// unsigned char auto_keymap = 0; |
| 96 | 69 | ||
| 97 | /* Statics. */ | 70 | /* Statics. */ |
| 98 | static enum cs_result resource_charset(H3270 *hSession, const char *csname, char *cs, char *ftcs); | 71 | static enum cs_result resource_charset(H3270 *hSession, const char *csname, char *cs, char *ftcs); |
| 72 | + | ||
| 99 | typedef enum { CS_ONLY, FT_ONLY, BOTH } remap_scope; | 73 | 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); | ||
| 101 | -static void remap_one(unsigned char ebc, KeySym iso, remap_scope scope,Boolean one_way); | 74 | + |
| 75 | +static enum cs_result remap_chars(H3270 *hSession, const char *csname, char *spec, remap_scope scope, int *ne); | ||
| 76 | +static void remap_one(H3270 *hSession, unsigned char ebc, KeySym iso, remap_scope scope,Boolean one_way); | ||
| 102 | 77 | ||
| 103 | #if defined(DEBUG_CHARSET) /*[*/ | 78 | #if defined(DEBUG_CHARSET) /*[*/ |
| 104 | static enum cs_result check_charset(void); | 79 | static enum cs_result check_charset(void); |
| 105 | static char *char_if_ascii7(unsigned long l); | 80 | static char *char_if_ascii7(unsigned long l); |
| 106 | #endif /*]*/ | 81 | #endif /*]*/ |
| 107 | 82 | ||
| 108 | -static void set_cgcsgids(const char *spec); | 83 | +static void set_cgcsgids(H3270 *hSession, const char *spec); |
| 109 | static int set_cgcsgid(char *spec, unsigned long *idp); | 84 | static int set_cgcsgid(char *spec, unsigned long *idp); |
| 110 | 85 | ||
| 111 | static KeySym StringToKeysym(char *s); | 86 | static KeySym StringToKeysym(char *s); |
| @@ -113,54 +88,55 @@ static KeySym StringToKeysym(char *s); | @@ -113,54 +88,55 @@ static KeySym StringToKeysym(char *s); | ||
| 113 | // static void set_charset_name(char *csname); | 88 | // static void set_charset_name(char *csname); |
| 114 | // static char *charset_name = CN; | 89 | // static char *charset_name = CN; |
| 115 | 90 | ||
| 116 | -static void | ||
| 117 | -charset_defaults(void) | 91 | +static void charset_defaults(void) |
| 118 | { | 92 | { |
| 119 | /* Go to defaults first. */ | 93 | /* Go to defaults first. */ |
| 120 | - (void) memcpy((char *)ebc2cg, (char *)ebc2cg0, 256); | ||
| 121 | - (void) memcpy((char *)cg2ebc, (char *)cg2ebc0, 256); | ||
| 122 | - (void) memcpy((char *)ebc2asc, (char *)ebc2asc0, 256); | ||
| 123 | - (void) memcpy((char *)asc2ebc, (char *)asc2ebc0, 256); | 94 | + (void) memcpy((char *)ebc2cg, (const char *)ebc2cg0, 256); |
| 95 | + (void) memcpy((char *)cg2ebc, (const char *)cg2ebc0, 256); | ||
| 96 | + (void) memcpy((char *)ebc2asc, (const char *)ebc2asc0, 256); | ||
| 97 | + (void) memcpy((char *)asc2ebc, (const char *)asc2ebc0, 256); | ||
| 124 | #if defined(X3270_FT) /*[*/ | 98 | #if defined(X3270_FT) /*[*/ |
| 125 | - (void) memcpy((char *)ft2asc, (char *)ft2asc0, 256); | ||
| 126 | - (void) memcpy((char *)asc2ft, (char *)asc2ft0, 256); | 99 | + (void) memcpy((char *)ft2asc, (const char *)ft2asc0, 256); |
| 100 | + (void) memcpy((char *)asc2ft, (const char *)asc2ft0, 256); | ||
| 127 | #endif /*]*/ | 101 | #endif /*]*/ |
| 128 | clear_xks(); | 102 | clear_xks(); |
| 129 | } | 103 | } |
| 130 | 104 | ||
| 131 | -static unsigned char save_ebc2cg[256]; | ||
| 132 | -static unsigned char save_cg2ebc[256]; | ||
| 133 | -static unsigned char save_ebc2asc[256]; | ||
| 134 | -static unsigned char save_asc2ebc[256]; | 105 | +struct charset_buffer |
| 106 | +{ | ||
| 107 | + unsigned char ebc2cg[256]; | ||
| 108 | + unsigned char cg2ebc[256]; | ||
| 109 | + unsigned char ebc2asc[256]; | ||
| 110 | + unsigned char asc2ebc[256]; | ||
| 135 | 111 | ||
| 136 | -#if defined(X3270_FT) /*[*/ | ||
| 137 | -static unsigned char save_ft2asc[256]; | ||
| 138 | -static unsigned char save_asc2ft[256]; | ||
| 139 | -#endif /*]*/ | 112 | + #if defined(X3270_FT) /*[*/ |
| 113 | + unsigned char ft2asc[256]; | ||
| 114 | + unsigned char asc2ft[256]; | ||
| 115 | + #endif /*]*/ | ||
| 116 | +}; | ||
| 140 | 117 | ||
| 141 | -static void | ||
| 142 | -save_charset(void) | 118 | + |
| 119 | +static void save_charset(struct charset_buffer *save) | ||
| 143 | { | 120 | { |
| 144 | - (void) memcpy((char *)save_ebc2cg, (char *)ebc2cg, 256); | ||
| 145 | - (void) memcpy((char *)save_cg2ebc, (char *)cg2ebc, 256); | ||
| 146 | - (void) memcpy((char *)save_ebc2asc, (char *)ebc2asc, 256); | ||
| 147 | - (void) memcpy((char *)save_asc2ebc, (char *)asc2ebc, 256); | 121 | + (void) memcpy((char *)save->ebc2cg, (char *)ebc2cg, 256); |
| 122 | + (void) memcpy((char *)save->cg2ebc, (char *)cg2ebc, 256); | ||
| 123 | + (void) memcpy((char *)save->ebc2asc, (char *)ebc2asc, 256); | ||
| 124 | + (void) memcpy((char *)save->asc2ebc, (char *)asc2ebc, 256); | ||
| 148 | #if defined(X3270_FT) /*[*/ | 125 | #if defined(X3270_FT) /*[*/ |
| 149 | - (void) memcpy((char *)save_ft2asc, (char *)ft2asc, 256); | ||
| 150 | - (void) memcpy((char *)save_asc2ft, (char *)asc2ft, 256); | 126 | + (void) memcpy((char *)save->ft2asc, (char *)ft2asc, 256); |
| 127 | + (void) memcpy((char *)save->asc2ft, (char *)asc2ft, 256); | ||
| 151 | #endif /*]*/ | 128 | #endif /*]*/ |
| 152 | } | 129 | } |
| 153 | 130 | ||
| 154 | -static void | ||
| 155 | -restore_charset(void) | 131 | +static void restore_charset(struct charset_buffer *save) |
| 156 | { | 132 | { |
| 157 | - (void) memcpy((char *)ebc2cg, (char *)save_ebc2cg, 256); | ||
| 158 | - (void) memcpy((char *)cg2ebc, (char *)save_cg2ebc, 256); | ||
| 159 | - (void) memcpy((char *)ebc2asc, (char *)save_ebc2asc, 256); | ||
| 160 | - (void) memcpy((char *)asc2ebc, (char *)save_asc2ebc, 256); | 133 | + (void) memcpy((char *)ebc2cg, (char *)save->ebc2cg, 256); |
| 134 | + (void) memcpy((char *)cg2ebc, (char *)save->cg2ebc, 256); | ||
| 135 | + (void) memcpy((char *)ebc2asc, (char *)save->ebc2asc, 256); | ||
| 136 | + (void) memcpy((char *)asc2ebc, (char *)save->asc2ebc, 256); | ||
| 161 | #if defined(X3270_FT) /*[*/ | 137 | #if defined(X3270_FT) /*[*/ |
| 162 | - (void) memcpy((char *)ft2asc, (char *)save_ft2asc, 256); | ||
| 163 | - (void) memcpy((char *)asc2ft, (char *)save_asc2ft, 256); | 138 | + (void) memcpy((char *)ft2asc, (char *)save->ft2asc, 256); |
| 139 | + (void) memcpy((char *)asc2ft, (char *)save->asc2ft, 256); | ||
| 164 | #endif /*]*/ | 140 | #endif /*]*/ |
| 165 | } | 141 | } |
| 166 | 142 | ||
| @@ -207,14 +183,14 @@ enum cs_result charset_init(H3270 *hSession, const char *csname) | @@ -207,14 +183,14 @@ enum cs_result charset_init(H3270 *hSession, const char *csname) | ||
| 207 | // const char *ftcs; | 183 | // const char *ftcs; |
| 208 | enum cs_result rc; | 184 | enum cs_result rc; |
| 209 | char *ccs, *cftcs; | 185 | char *ccs, *cftcs; |
| 210 | - const char *ak; | ||
| 211 | - | 186 | + const char *ak; |
| 187 | + struct charset_buffer save; | ||
| 212 | 188 | ||
| 213 | /* Do nothing, successfully. */ | 189 | /* Do nothing, successfully. */ |
| 214 | if (csname == CN || !strcasecmp(csname, "us")) | 190 | if (csname == CN || !strcasecmp(csname, "us")) |
| 215 | { | 191 | { |
| 216 | charset_defaults(); | 192 | charset_defaults(); |
| 217 | - set_cgcsgids(CN); | 193 | + set_cgcsgids(hSession,CN); |
| 218 | set_display_charset(hSession, "ISO-8859-1"); | 194 | set_display_charset(hSession, "ISO-8859-1"); |
| 219 | return CS_OKAY; | 195 | return CS_OKAY; |
| 220 | } | 196 | } |
| @@ -244,15 +220,15 @@ enum cs_result charset_init(H3270 *hSession, const char *csname) | @@ -244,15 +220,15 @@ enum cs_result charset_init(H3270 *hSession, const char *csname) | ||
| 244 | cftcs = lib3270_get_resource_string(hSession,"ftCharset",csname,NULL); | 220 | cftcs = lib3270_get_resource_string(hSession,"ftCharset",csname,NULL); |
| 245 | 221 | ||
| 246 | /* Save the current definitions, and start over with the defaults. */ | 222 | /* Save the current definitions, and start over with the defaults. */ |
| 247 | - save_charset(); | 223 | + save_charset(&save); |
| 248 | charset_defaults(); | 224 | charset_defaults(); |
| 249 | 225 | ||
| 250 | /* Check for auto-keymap. */ | 226 | /* Check for auto-keymap. */ |
| 251 | ak = lib3270_get_resource_string(hSession,"autoKeymap", csname, NULL); | 227 | ak = lib3270_get_resource_string(hSession,"autoKeymap", csname, NULL); |
| 252 | if (ak != NULL) | 228 | if (ak != NULL) |
| 253 | - auto_keymap = !strcasecmp(ak, "true"); | 229 | + hSession->auto_keymap = strcasecmp(ak, "true") ? 0 : 1; |
| 254 | else | 230 | else |
| 255 | - auto_keymap = 0; | 231 | + hSession->auto_keymap = 0; |
| 256 | 232 | ||
| 257 | /* Interpret them. */ | 233 | /* Interpret them. */ |
| 258 | rc = resource_charset(hSession,csname, ccs, cftcs); | 234 | rc = resource_charset(hSession,csname, ccs, cftcs); |
| @@ -267,7 +243,7 @@ enum cs_result charset_init(H3270 *hSession, const char *csname) | @@ -267,7 +243,7 @@ enum cs_result charset_init(H3270 *hSession, const char *csname) | ||
| 267 | #endif /*]*/ | 243 | #endif /*]*/ |
| 268 | 244 | ||
| 269 | if (rc != CS_OKAY) | 245 | if (rc != CS_OKAY) |
| 270 | - restore_charset(); | 246 | + restore_charset(&save); |
| 271 | 247 | ||
| 272 | /* | 248 | /* |
| 273 | #if defined(X3270_DBCS) | 249 | #if defined(X3270_DBCS) |
| @@ -291,9 +267,10 @@ enum cs_result charset_init(H3270 *hSession, const char *csname) | @@ -291,9 +267,10 @@ enum cs_result charset_init(H3270 *hSession, const char *csname) | ||
| 291 | return rc; | 267 | return rc; |
| 292 | } | 268 | } |
| 293 | 269 | ||
| 294 | -/* Set a CGCSGID. Return 0 for success, -1 for failure. */ | ||
| 295 | -static int | ||
| 296 | -set_cgcsgid(char *spec, unsigned long *r) | 270 | +/** |
| 271 | + * Set a CGCSGID. Return 0 for success, -1 for failure. | ||
| 272 | + */ | ||
| 273 | +static int set_cgcsgid(char *spec, unsigned long *r) | ||
| 297 | { | 274 | { |
| 298 | unsigned long cp; | 275 | unsigned long cp; |
| 299 | char *ptr; | 276 | char *ptr; |
| @@ -303,7 +280,7 @@ set_cgcsgid(char *spec, unsigned long *r) | @@ -303,7 +280,7 @@ set_cgcsgid(char *spec, unsigned long *r) | ||
| 303 | ptr != spec && | 280 | ptr != spec && |
| 304 | *ptr == '\0') { | 281 | *ptr == '\0') { |
| 305 | if (!(cp & ~0xffffL)) | 282 | if (!(cp & ~0xffffL)) |
| 306 | - *r = DEFAULT_CGEN | cp; | 283 | + *r = LIB3270_DEFAULT_CGEN | cp; |
| 307 | else | 284 | else |
| 308 | *r = cp; | 285 | *r = cp; |
| 309 | return 0; | 286 | return 0; |
| @@ -312,7 +289,7 @@ set_cgcsgid(char *spec, unsigned long *r) | @@ -312,7 +289,7 @@ set_cgcsgid(char *spec, unsigned long *r) | ||
| 312 | } | 289 | } |
| 313 | 290 | ||
| 314 | /* Set the CGCSGIDs. */ | 291 | /* Set the CGCSGIDs. */ |
| 315 | -static void set_cgcsgids(const char *spec) | 292 | +static void set_cgcsgids(H3270 *hSession, const char *spec) |
| 316 | { | 293 | { |
| 317 | int n_ids = 0; | 294 | int n_ids = 0; |
| 318 | char *spec_copy; | 295 | char *spec_copy; |
| @@ -327,21 +304,21 @@ static void set_cgcsgids(const char *spec) | @@ -327,21 +304,21 @@ static void set_cgcsgids(const char *spec) | ||
| 327 | buf = CN; | 304 | buf = CN; |
| 328 | switch (n_ids) { | 305 | switch (n_ids) { |
| 329 | case 0: | 306 | case 0: |
| 330 | - idp = &cgcsgid; | 307 | + idp = &hSession->cgcsgid; |
| 331 | break; | 308 | break; |
| 332 | #if defined(X3270_DBCS) /*[*/ | 309 | #if defined(X3270_DBCS) /*[*/ |
| 333 | case 1: | 310 | case 1: |
| 334 | - idp = &cgcsgid_dbcs; | 311 | + idp = &hSession->cgcsgid_dbcs; |
| 335 | break; | 312 | break; |
| 336 | #endif /*]*/ | 313 | #endif /*]*/ |
| 337 | default: | 314 | default: |
| 338 | - popup_an_error(NULL,"Extra CGCSGID(s), ignoring"); | 315 | + popup_an_error(hSession,_( "Extra CGCSGID(s), ignoring" )); |
| 339 | break; | 316 | break; |
| 340 | } | 317 | } |
| 341 | if (idp == NULL) | 318 | if (idp == NULL) |
| 342 | break; | 319 | break; |
| 343 | if (set_cgcsgid(token, idp) < 0) { | 320 | if (set_cgcsgid(token, idp) < 0) { |
| 344 | - popup_an_error(NULL,"Invalid CGCSGID '%s', ignoring",token); | 321 | + popup_an_error(hSession,_( "Invalid CGCSGID '%s', ignoring" ),token); |
| 345 | n_ids = -1; | 322 | n_ids = -1; |
| 346 | break; | 323 | break; |
| 347 | } | 324 | } |
| @@ -352,9 +329,9 @@ static void set_cgcsgids(const char *spec) | @@ -352,9 +329,9 @@ static void set_cgcsgids(const char *spec) | ||
| 352 | return; | 329 | return; |
| 353 | } | 330 | } |
| 354 | 331 | ||
| 355 | - cgcsgid = DEFAULT_CGEN | DEFAULT_CSET; | 332 | + hSession->cgcsgid = LIB3270_DEFAULT_CGEN | LIB3270_DEFAULT_CSET; |
| 356 | #if defined(X3270_DBCS) /*[*/ | 333 | #if defined(X3270_DBCS) /*[*/ |
| 357 | - cgcsgid_dbcs = 0L; | 334 | + hSession->cgcsgid_dbcs = 0L; |
| 358 | #endif /*]*/ | 335 | #endif /*]*/ |
| 359 | } | 336 | } |
| 360 | 337 | ||
| @@ -385,11 +362,11 @@ static enum cs_result resource_charset(H3270 *hSession, const char *csname, char | @@ -385,11 +362,11 @@ static enum cs_result resource_charset(H3270 *hSession, const char *csname, char | ||
| 385 | char * dcs; | 362 | char * dcs; |
| 386 | 363 | ||
| 387 | /* Interpret the spec. */ | 364 | /* Interpret the spec. */ |
| 388 | - rc = remap_chars(csname, cs, (ftcs == NULL)? BOTH: CS_ONLY, &ne); | 365 | + rc = remap_chars(hSession, csname, cs, (ftcs == NULL)? BOTH: CS_ONLY, &ne); |
| 389 | if (rc != CS_OKAY) | 366 | if (rc != CS_OKAY) |
| 390 | return rc; | 367 | return rc; |
| 391 | if (ftcs != NULL) { | 368 | if (ftcs != NULL) { |
| 392 | - rc = remap_chars(csname, ftcs, FT_ONLY, &ne); | 369 | + rc = remap_chars(hSession, csname, ftcs, FT_ONLY, &ne); |
| 393 | if (rc != CS_OKAY) | 370 | if (rc != CS_OKAY) |
| 394 | return rc; | 371 | return rc; |
| 395 | } | 372 | } |
| @@ -449,7 +426,7 @@ static enum cs_result resource_charset(H3270 *hSession, const char *csname, char | @@ -449,7 +426,7 @@ static enum cs_result resource_charset(H3270 *hSession, const char *csname, char | ||
| 449 | // set_cgcsgids(get_fresource("%s.%s", "codepage", csname)); | 426 | // set_cgcsgids(get_fresource("%s.%s", "codepage", csname)); |
| 450 | { | 427 | { |
| 451 | char *ptr = lib3270_get_resource_string(hSession,"codepage", csname, NULL); | 428 | char *ptr = lib3270_get_resource_string(hSession,"codepage", csname, NULL); |
| 452 | - set_cgcsgids(ptr); | 429 | + set_cgcsgids(hSession,ptr); |
| 453 | lib3270_free(ptr); | 430 | lib3270_free(ptr); |
| 454 | } | 431 | } |
| 455 | 432 | ||
| @@ -500,8 +477,7 @@ parse_keysym(char *s, Boolean extended) | @@ -500,8 +477,7 @@ parse_keysym(char *s, Boolean extended) | ||
| 500 | } | 477 | } |
| 501 | 478 | ||
| 502 | /* Process a single character definition. */ | 479 | /* Process a single character definition. */ |
| 503 | -static void | ||
| 504 | -remap_one(unsigned char ebc, KeySym iso, remap_scope scope, Boolean one_way) | 480 | +static void remap_one(H3270 *hSession, unsigned char ebc, KeySym iso, remap_scope scope, Boolean one_way) |
| 505 | { | 481 | { |
| 506 | unsigned char cg; | 482 | unsigned char cg; |
| 507 | 483 | ||
| @@ -515,7 +491,7 @@ remap_one(unsigned char ebc, KeySym iso, remap_scope scope, Boolean one_way) | @@ -515,7 +491,7 @@ remap_one(unsigned char ebc, KeySym iso, remap_scope scope, Boolean one_way) | ||
| 515 | if (iso == 0x20) | 491 | if (iso == 0x20) |
| 516 | one_way = True; | 492 | one_way = True; |
| 517 | 493 | ||
| 518 | - if (!auto_keymap || iso <= 0xff) { | 494 | + if (!hSession->auto_keymap || iso <= 0xff) { |
| 519 | #if defined(X3270_FT) /*[*/ | 495 | #if defined(X3270_FT) /*[*/ |
| 520 | unsigned char aa; | 496 | unsigned char aa; |
| 521 | #endif /*]*/ | 497 | #endif /*]*/ |
| @@ -524,17 +500,21 @@ remap_one(unsigned char ebc, KeySym iso, remap_scope scope, Boolean one_way) | @@ -524,17 +500,21 @@ remap_one(unsigned char ebc, KeySym iso, remap_scope scope, Boolean one_way) | ||
| 524 | if (iso <= 0xff) { | 500 | if (iso <= 0xff) { |
| 525 | cg = asc2cg[iso]; | 501 | cg = asc2cg[iso]; |
| 526 | 502 | ||
| 527 | - if (cg2asc[cg] == iso || iso == 0) { | 503 | + if (cg2asc[cg] == iso || iso == 0) |
| 504 | + { | ||
| 528 | /* well-defined */ | 505 | /* well-defined */ |
| 529 | ebc2cg[ebc] = cg; | 506 | ebc2cg[ebc] = cg; |
| 530 | if (!one_way) | 507 | if (!one_way) |
| 531 | cg2ebc[cg] = ebc; | 508 | cg2ebc[cg] = ebc; |
| 532 | - } else { | 509 | + } |
| 510 | + else | ||
| 511 | + { | ||
| 533 | /* into a hole */ | 512 | /* into a hole */ |
| 534 | ebc2cg[ebc] = CG_boxsolid; | 513 | ebc2cg[ebc] = CG_boxsolid; |
| 535 | } | 514 | } |
| 536 | } | 515 | } |
| 537 | - if (ebc > 0x40) { | 516 | + if (ebc > 0x40) |
| 517 | + { | ||
| 538 | ebc2asc[ebc] = iso; | 518 | ebc2asc[ebc] = iso; |
| 539 | if (!one_way) | 519 | if (!one_way) |
| 540 | asc2ebc[iso] = ebc; | 520 | asc2ebc[iso] = ebc; |
| @@ -579,9 +559,8 @@ remap_one(unsigned char ebc, KeySym iso, remap_scope scope, Boolean one_way) | @@ -579,9 +559,8 @@ remap_one(unsigned char ebc, KeySym iso, remap_scope scope, Boolean one_way) | ||
| 579 | } | 559 | } |
| 580 | } | 560 | } |
| 581 | 561 | ||
| 582 | -/* | ||
| 583 | - * Parse an EBCDIC character set map, a series of pairs of numeric EBCDIC codes | ||
| 584 | - * and keysyms. | 562 | +/** |
| 563 | + * Parse an EBCDIC character set map, a series of pairs of numeric EBCDIC codes and keysyms. | ||
| 585 | * | 564 | * |
| 586 | * If the keysym is in the range 1..255, it is a remapping of the EBCDIC code | 565 | * If the keysym is in the range 1..255, it is a remapping of the EBCDIC code |
| 587 | * for a standard Latin-1 graphic, and the CG-to-EBCDIC map will be modified | 566 | * for a standard Latin-1 graphic, and the CG-to-EBCDIC map will be modified |
| @@ -592,7 +571,7 @@ remap_one(unsigned char ebc, KeySym iso, remap_scope scope, Boolean one_way) | @@ -592,7 +571,7 @@ remap_one(unsigned char ebc, KeySym iso, remap_scope scope, Boolean one_way) | ||
| 592 | * characters that replace certain standard Latin-1 graphics. The keysym | 571 | * characters that replace certain standard Latin-1 graphics. The keysym |
| 593 | * will be entered into the extended keysym translation table. | 572 | * will be entered into the extended keysym translation table. |
| 594 | */ | 573 | */ |
| 595 | -static enum cs_result remap_chars(const char *csname, char *spec, remap_scope scope, int *ne) | 574 | +static enum cs_result remap_chars(H3270 *hSession, const char *csname, char *spec, remap_scope scope, int *ne) |
| 596 | { | 575 | { |
| 597 | char *s; | 576 | char *s; |
| 598 | char *ebcs, *isos; | 577 | char *ebcs, *isos; |
| @@ -620,7 +599,7 @@ static enum cs_result remap_chars(const char *csname, char *spec, remap_scope sc | @@ -620,7 +599,7 @@ static enum cs_result remap_chars(const char *csname, char *spec, remap_scope sc | ||
| 620 | 599 | ||
| 621 | while ((tok = strtok(s, " \t\n")) != CN) { | 600 | while ((tok = strtok(s, " \t\n")) != CN) { |
| 622 | if (ebc >= 256) { | 601 | if (ebc >= 256) { |
| 623 | - popup_an_error(NULL,"Charset has more than 256 entries"); | 602 | + popup_an_error(hSession,_( "Charset has more than 256 entries" )); |
| 624 | rc = CS_BAD; | 603 | rc = CS_BAD; |
| 625 | break; | 604 | break; |
| 626 | } | 605 | } |
| @@ -634,20 +613,18 @@ static enum cs_result remap_chars(const char *csname, char *spec, remap_scope sc | @@ -634,20 +613,18 @@ static enum cs_result remap_chars(const char *csname, char *spec, remap_scope sc | ||
| 634 | if (strlen(tok) == 1) | 613 | if (strlen(tok) == 1) |
| 635 | iso = tok[0] & 0xff; | 614 | iso = tok[0] & 0xff; |
| 636 | else { | 615 | else { |
| 637 | - popup_an_error(NULL,"Invalid charset " | ||
| 638 | - "entry '%s' (#%d)", | ||
| 639 | - tok, ebc); | 616 | + popup_an_error(hSession,_( "Invalid charset entry '%s' (#%d)" ),tok, ebc); |
| 640 | rc = CS_BAD; | 617 | rc = CS_BAD; |
| 641 | break; | 618 | break; |
| 642 | } | 619 | } |
| 643 | } | 620 | } |
| 644 | - remap_one(ebc, iso, scope, one_way); | 621 | + remap_one(hSession, ebc, iso, scope, one_way); |
| 645 | 622 | ||
| 646 | ebc++; | 623 | ebc++; |
| 647 | s = CN; | 624 | s = CN; |
| 648 | } | 625 | } |
| 649 | if (ebc != 256) { | 626 | if (ebc != 256) { |
| 650 | - popup_an_error(NULL,"Charset has %d entries, need 256", ebc); | 627 | + popup_an_error(NULL,_( "Charset has %d entries, need 256" ), ebc); |
| 651 | rc = CS_BAD; | 628 | rc = CS_BAD; |
| 652 | } else { | 629 | } else { |
| 653 | /* | 630 | /* |
| @@ -680,12 +657,11 @@ static enum cs_result remap_chars(const char *csname, char *spec, remap_scope sc | @@ -680,12 +657,11 @@ static enum cs_result remap_chars(const char *csname, char *spec, remap_scope sc | ||
| 680 | ((ebc = strtoul(ebcs, &ptr, 0)), | 657 | ((ebc = strtoul(ebcs, &ptr, 0)), |
| 681 | ptr == ebcs || *ptr != '\0') || | 658 | ptr == ebcs || *ptr != '\0') || |
| 682 | (iso = parse_keysym(isos, True)) == NoSymbol) { | 659 | (iso = parse_keysym(isos, True)) == NoSymbol) { |
| 683 | - popup_an_error(NULL,"Cannot parse %s \"%s\", entry %d", | ||
| 684 | - ResCharset, csname, *ne); | 660 | + popup_an_error(hSession,_( "Cannot parse %s \"%s\", entry %d" ), "charset", csname, *ne); |
| 685 | rc = CS_BAD; | 661 | rc = CS_BAD; |
| 686 | break; | 662 | break; |
| 687 | } | 663 | } |
| 688 | - remap_one(ebc, iso, scope, one_way); | 664 | + remap_one(hSession, ebc, iso, scope, one_way); |
| 689 | } | 665 | } |
| 690 | } | 666 | } |
| 691 | lib3270_free(spec); | 667 | lib3270_free(spec); |
host.c
| @@ -746,7 +746,7 @@ LIB3270_EXPORT void lib3270_register_schange(H3270 *h, LIB3270_STATE_CHANGE tx, | @@ -746,7 +746,7 @@ LIB3270_EXPORT void lib3270_register_schange(H3270 *h, LIB3270_STATE_CHANGE tx, | ||
| 746 | /* Signal a state change. */ | 746 | /* Signal a state change. */ |
| 747 | void lib3270_st_changed(H3270 *h, LIB3270_STATE tx, int mode) | 747 | void lib3270_st_changed(H3270 *h, LIB3270_STATE tx, int mode) |
| 748 | { | 748 | { |
| 749 | -#if defined(DEBUG) || defined(ANDROID) | 749 | +#if defined(DEBUG) |
| 750 | 750 | ||
| 751 | static const char * state_name[LIB3270_STATE_USER] = | 751 | static const char * state_name[LIB3270_STATE_USER] = |
| 752 | { | 752 | { |
html.c
| @@ -386,11 +386,6 @@ | @@ -386,11 +386,6 @@ | ||
| 386 | else | 386 | else |
| 387 | { | 387 | { |
| 388 | append_element(&info,HTML_ELEMENT_LINE_BREAK); | 388 | append_element(&info,HTML_ELEMENT_LINE_BREAK); |
| 389 | -/* | ||
| 390 | -#if defined(DEBUG) || defined(ANDROID) | ||
| 391 | - append_string(&info,"\n"); | ||
| 392 | -#endif // DEBUG | ||
| 393 | -*/ | ||
| 394 | } | 389 | } |
| 395 | 390 | ||
| 396 | } | 391 | } |
| @@ -422,23 +417,6 @@ | @@ -422,23 +417,6 @@ | ||
| 422 | 417 | ||
| 423 | info.text = lib3270_realloc(info.text,strlen(info.text)+2); | 418 | info.text = lib3270_realloc(info.text,strlen(info.text)+2); |
| 424 | 419 | ||
| 425 | -/* | ||
| 426 | -#if defined(DEBUG) || defined(ANDROID) | ||
| 427 | - { | ||
| 428 | - char *text = strdup(info.text); | ||
| 429 | - char *save; | ||
| 430 | - char *ptr; | ||
| 431 | - | ||
| 432 | - for(ptr=strtok_r(text,"\n",&save);ptr;ptr = strtok_r(NULL,"\n",&save)) | ||
| 433 | - { | ||
| 434 | - trace("%s",ptr); | ||
| 435 | - } | ||
| 436 | - | ||
| 437 | - free(text); | ||
| 438 | - } | ||
| 439 | -#endif // DEBUG | ||
| 440 | -*/ | ||
| 441 | - | ||
| 442 | return info.text; | 420 | return info.text; |
| 443 | } | 421 | } |
| 444 | 422 |
kybd.c
| @@ -180,7 +180,7 @@ struct ta | @@ -180,7 +180,7 @@ struct ta | ||
| 180 | */ | 180 | */ |
| 181 | 181 | ||
| 182 | 182 | ||
| 183 | -#if defined(DEBUG) || defined(ANDROID) | 183 | +#if defined(DEBUG) |
| 184 | #define ENQUEUE_ACTION(x) enq_ta(hSession, (void (*)(H3270 *, const char *, const char *)) x, NULL, NULL, #x) | 184 | #define ENQUEUE_ACTION(x) enq_ta(hSession, (void (*)(H3270 *, const char *, const char *)) x, NULL, NULL, #x) |
| 185 | #else | 185 | #else |
| 186 | #define ENQUEUE_ACTION(x) enq_ta(hSession, (void (*)(H3270 *, const char *, const char *)) x, NULL, NULL) | 186 | #define ENQUEUE_ACTION(x) enq_ta(hSession, (void (*)(H3270 *, const char *, const char *)) x, NULL, NULL) |
| @@ -263,7 +263,7 @@ static int enq_chk(H3270 *hSession) | @@ -263,7 +263,7 @@ static int enq_chk(H3270 *hSession) | ||
| 263 | /* | 263 | /* |
| 264 | * Put an action on the typeahead queue. | 264 | * Put an action on the typeahead queue. |
| 265 | */ | 265 | */ |
| 266 | -#if defined(DEBUG) || defined(ANDROID) | 266 | +#if defined(DEBUG) |
| 267 | static void enq_ta(H3270 *hSession, void (*fn)(H3270 *, const char *, const char *), const char *parm1, const char *parm2, const char *name) | 267 | static void enq_ta(H3270 *hSession, void (*fn)(H3270 *, const char *, const char *), const char *parm1, const char *parm2, const char *name) |
| 268 | #else | 268 | #else |
| 269 | static void enq_ta(H3270 *hSession, void (*fn)(H3270 *, const char *, const char *), const char *parm1, const char *parm2) | 269 | static void enq_ta(H3270 *hSession, void (*fn)(H3270 *, const char *, const char *), const char *parm1, const char *parm2) |
| @@ -758,7 +758,7 @@ static Boolean key_Character(H3270 *hSession, int code, Boolean with_ge, Boolean | @@ -758,7 +758,7 @@ static Boolean key_Character(H3270 *hSession, int code, Boolean with_ge, Boolean | ||
| 758 | 758 | ||
| 759 | (void) sprintf(codename, "%d", code |(with_ge ? GE_WFLAG : 0) | (pasting ? PASTE_WFLAG : 0)); | 759 | (void) sprintf(codename, "%d", code |(with_ge ? GE_WFLAG : 0) | (pasting ? PASTE_WFLAG : 0)); |
| 760 | 760 | ||
| 761 | -#if defined(DEBUG) || defined(ANDROID) | 761 | +#if defined(DEBUG) |
| 762 | enq_ta(hSession,key_Character_wrapper, codename, CN, "key_Character_wrapper"); | 762 | enq_ta(hSession,key_Character_wrapper, codename, CN, "key_Character_wrapper"); |
| 763 | #else | 763 | #else |
| 764 | enq_ta(hSession,key_Character_wrapper, codename, CN); | 764 | enq_ta(hSession,key_Character_wrapper, codename, CN); |
proxy.c
| @@ -572,7 +572,7 @@ static int proxy_socks4(H3270 *hSession, int fd, char *host, unsigned short port | @@ -572,7 +572,7 @@ static int proxy_socks4(H3270 *hSession, int fd, char *host, unsigned short port | ||
| 572 | user = getenv("USER"); | 572 | user = getenv("USER"); |
| 573 | if (user == CN) | 573 | if (user == CN) |
| 574 | user = "nobody"; | 574 | user = "nobody"; |
| 575 | -#endif | 575 | +#endif // ANDROID |
| 576 | 576 | ||
| 577 | /* Send the request to the server. */ | 577 | /* Send the request to the server. */ |
| 578 | if (use_4a) { | 578 | if (use_4a) { |
screen.c
| @@ -613,21 +613,7 @@ void show_3270_popup_dialog(H3270 *session, LIB3270_NOTIFY type, const char *tit | @@ -613,21 +613,7 @@ void show_3270_popup_dialog(H3270 *session, LIB3270_NOTIFY type, const char *tit | ||
| 613 | 613 | ||
| 614 | static int logpopup(H3270 *session, void *widget, LIB3270_NOTIFY type, const char *title, const char *msg, const char *fmt, va_list arg) | 614 | static int logpopup(H3270 *session, void *widget, LIB3270_NOTIFY type, const char *title, const char *msg, const char *fmt, va_list arg) |
| 615 | { | 615 | { |
| 616 | -#ifdef ANDROID | ||
| 617 | - | ||
| 618 | - char len = strlen(fmt); | ||
| 619 | - char * mask = malloc(len+5); | ||
| 620 | - strncpy(mask,fmt,len); | ||
| 621 | - mask[len] = '\n'; | ||
| 622 | - mask[len+1] = 0; | ||
| 623 | - __android_log_vprint(ANDROID_LOG_VERBOSE, PACKAGE_NAME, mask, arg); | ||
| 624 | - | ||
| 625 | -#else | ||
| 626 | - | ||
| 627 | lib3270_write_va_log(session,"lib3270",fmt,arg); | 616 | lib3270_write_va_log(session,"lib3270",fmt,arg); |
| 628 | - | ||
| 629 | -#endif // ANDROID | ||
| 630 | - | ||
| 631 | return 0; | 617 | return 0; |
| 632 | } | 618 | } |
| 633 | 619 |
session.c
| @@ -44,6 +44,7 @@ | @@ -44,6 +44,7 @@ | ||
| 44 | #include "ftc.h" | 44 | #include "ftc.h" |
| 45 | #include "kybdc.h" | 45 | #include "kybdc.h" |
| 46 | #include "3270ds.h" | 46 | #include "3270ds.h" |
| 47 | +#include "tablesc.h" | ||
| 47 | 48 | ||
| 48 | /*---[ Globals ]--------------------------------------------------------------------------------------------------------------*/ | 49 | /*---[ Globals ]--------------------------------------------------------------------------------------------------------------*/ |
| 49 | 50 | ||
| @@ -130,20 +131,9 @@ static void set_cursor(H3270 *session, LIB3270_CURSOR id) | @@ -130,20 +131,9 @@ static void set_cursor(H3270 *session, LIB3270_CURSOR id) | ||
| 130 | 131 | ||
| 131 | static void message(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *msg, const char *text) | 132 | static void message(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *msg, const char *text) |
| 132 | { | 133 | { |
| 133 | -#ifdef ANDROID | ||
| 134 | - | ||
| 135 | - __android_log_print(ANDROID_LOG_VERBOSE, PACKAGE_NAME, "%s\n",title); | ||
| 136 | - __android_log_print(ANDROID_LOG_VERBOSE, PACKAGE_NAME, "%s\n",msg); | ||
| 137 | - __android_log_print(ANDROID_LOG_VERBOSE, PACKAGE_NAME, "%s\n",text); | ||
| 138 | - | ||
| 139 | -#else | ||
| 140 | - | ||
| 141 | lib3270_write_log(session,"%s",title); | 134 | lib3270_write_log(session,"%s",title); |
| 142 | lib3270_write_log(session,"%s",msg); | 135 | lib3270_write_log(session,"%s",msg); |
| 143 | lib3270_write_log(session,"%s",text); | 136 | lib3270_write_log(session,"%s",text); |
| 144 | - | ||
| 145 | -#endif // ANDROID | ||
| 146 | - | ||
| 147 | } | 137 | } |
| 148 | 138 | ||
| 149 | static void update_ssl(H3270 *session, LIB3270_SSL_STATE state) | 139 | static void update_ssl(H3270 *session, LIB3270_SSL_STATE state) |
| @@ -170,6 +160,7 @@ static void lib3270_session_init(H3270 *hSession, const char *model) | @@ -170,6 +160,7 @@ static void lib3270_session_init(H3270 *hSession, const char *model) | ||
| 170 | 160 | ||
| 171 | memset(hSession,0,sizeof(H3270)); | 161 | memset(hSession,0,sizeof(H3270)); |
| 172 | hSession->sz = sizeof(H3270); | 162 | hSession->sz = sizeof(H3270); |
| 163 | + initialize_tables(hSession); | ||
| 173 | 164 | ||
| 174 | // Default calls | 165 | // Default calls |
| 175 | hSession->write = lib3270_sock_send; | 166 | hSession->write = lib3270_sock_send; |
| @@ -214,6 +205,8 @@ static void lib3270_session_init(H3270 *hSession, const char *model) | @@ -214,6 +205,8 @@ static void lib3270_session_init(H3270 *hSession, const char *model) | ||
| 214 | hSession->saved_wraparound_mode = 1; | 205 | hSession->saved_wraparound_mode = 1; |
| 215 | hSession->once_cset = -1; | 206 | hSession->once_cset = -1; |
| 216 | hSession->state = LIB3270_ANSI_STATE_DATA; | 207 | hSession->state = LIB3270_ANSI_STATE_DATA; |
| 208 | + hSession->cgcsgid = LIB3270_DEFAULT_CGEN | LIB3270_DEFAULT_CSET; | ||
| 209 | + | ||
| 217 | 210 | ||
| 218 | for(f=0;f<4;f++) | 211 | for(f=0;f<4;f++) |
| 219 | hSession->csd[f] = hSession->saved_csd[f] = LIB3270_ANSI_CSD_US; | 212 | hSession->csd[f] = hSession->saved_csd[f] = LIB3270_ANSI_CSD_US; |
| @@ -945,7 +945,7 @@ static void do_qr_charsets(H3270 *hSession) | @@ -945,7 +945,7 @@ static void do_qr_charsets(H3270 *hSession) | ||
| 945 | *hSession->obptr++ = 0x00; /* SUBSN */ | 945 | *hSession->obptr++ = 0x00; /* SUBSN */ |
| 946 | } | 946 | } |
| 947 | #endif /*]*/ | 947 | #endif /*]*/ |
| 948 | - SET32(hSession->obptr, cgcsgid); /* CGCSGID */ | 948 | + SET32(hSession->obptr, hSession->cgcsgid); /* CGCSGID */ |
| 949 | if (!*standard_font) | 949 | if (!*standard_font) |
| 950 | { | 950 | { |
| 951 | /* special 3270 font, includes APL */ | 951 | /* special 3270 font, includes APL */ |
tables.c
| @@ -42,7 +42,7 @@ | @@ -42,7 +42,7 @@ | ||
| 42 | #include "globals.h" | 42 | #include "globals.h" |
| 43 | #include "tablesc.h" | 43 | #include "tablesc.h" |
| 44 | 44 | ||
| 45 | -unsigned short asc2cg[256] = { | 45 | +const unsigned short asc2cg[256] = { |
| 46 | /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 46 | /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 47 | /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 47 | /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 48 | /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 48 | /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| @@ -76,7 +76,7 @@ unsigned short asc2cg[256] = { | @@ -76,7 +76,7 @@ unsigned short asc2cg[256] = { | ||
| 76 | /*f0*/ 0xf7, 0x5f, 0x43, 0x5d, 0x58, 0x46, 0x53, 0x9d, | 76 | /*f0*/ 0xf7, 0x5f, 0x43, 0x5d, 0x58, 0x46, 0x53, 0x9d, |
| 77 | /*f8*/ 0x9b, 0x44, 0x5e, 0x59, 0x4e, 0x49, 0xf9, 0x47 | 77 | /*f8*/ 0x9b, 0x44, 0x5e, 0x59, 0x4e, 0x49, 0xf9, 0x47 |
| 78 | }; | 78 | }; |
| 79 | -unsigned short cg2asc[256] = { | 79 | +const unsigned short cg2asc[256] = { |
| 80 | /*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xad, | 80 | /*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xad, |
| 81 | /*08*/ 0x3e, 0x3c, 0x5b, 0x5d, 0x29, 0x28, 0x7d, 0x7b, | 81 | /*08*/ 0x3e, 0x3c, 0x5b, 0x5d, 0x29, 0x28, 0x7d, 0x7b, |
| 82 | /*10*/ 0x20, 0x3d, 0x27, 0x22, 0x2f, 0x5c, 0x7c, 0xa6, | 82 | /*10*/ 0x20, 0x3d, 0x27, 0x22, 0x2f, 0x5c, 0x7c, 0xa6, |
| @@ -110,111 +110,112 @@ unsigned short cg2asc[256] = { | @@ -110,111 +110,112 @@ unsigned short cg2asc[256] = { | ||
| 110 | /*f0*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xf0, | 110 | /*f0*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xf0, |
| 111 | /*f8*/ 0x20, 0xfe, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 | 111 | /*f8*/ 0x20, 0xfe, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 |
| 112 | }; | 112 | }; |
| 113 | -#define EBC2CG \ | ||
| 114 | -/*00*/ 0x00, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, \ | ||
| 115 | -/*08*/ 0xdf, 0xdf, 0xdf, 0xdf, 0x02, 0x03, 0x00, 0x00, \ | ||
| 116 | -/*10*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0x04, 0xdf, 0xdf, \ | ||
| 117 | -/*18*/ 0xdf, 0x05, 0xdf, 0xdf, 0x9f, 0xdf, 0x9e, 0xdf, \ | ||
| 118 | -/*20*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, \ | ||
| 119 | -/*28*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, \ | ||
| 120 | -/*30*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, \ | ||
| 121 | -/*38*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, \ | ||
| 122 | -/*40*/ 0x10, 0x01, 0x55, 0x50, 0x40, 0x5a, 0x45, 0x9c, \ | ||
| 123 | -/*48*/ 0x4f, 0x5f, 0x1b, 0x32, 0x09, 0x0d, 0x35, 0x16, \ | ||
| 124 | -/*50*/ 0x30, 0x4a, 0x56, 0x51, 0x41, 0x5c, 0x57, 0x52, \ | ||
| 125 | -/*58*/ 0x42, 0x2a, 0x19, 0x1a, 0xbf, 0x0c, 0xbe, 0x36, \ | ||
| 126 | -/*60*/ 0x31, 0x14, 0x75, 0x70, 0x60, 0x7a, 0x65, 0xbc, \ | ||
| 127 | -/*68*/ 0xbd, 0x7f, 0x17, 0x33, 0x2e, 0x2f, 0x08, 0x18, \ | ||
| 128 | -/*70*/ 0x9b, 0x7b, 0x76, 0x71, 0x61, 0x7c, 0x77, 0x72, \ | ||
| 129 | -/*78*/ 0x62, 0x3d, 0x34, 0x2c, 0x2d, 0x12, 0x11, 0x13, \ | ||
| 130 | -/*80*/ 0xbb, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, \ | ||
| 131 | -/*88*/ 0x87, 0x88, 0x6c, 0x6d, 0xf7, 0x49, 0xf9, 0xd6, \ | ||
| 132 | -/*90*/ 0x38, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, \ | ||
| 133 | -/*98*/ 0x90, 0x91, 0x6a, 0x6b, 0x9a, 0x3f, 0xba, 0x1f, \ | ||
| 134 | -/*a0*/ 0x54, 0x3b, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, \ | ||
| 135 | -/*a8*/ 0x98, 0x99, 0x6e, 0x6f, 0xd7, 0x48, 0xd9, 0xd1, \ | ||
| 136 | -/*b0*/ 0x3a, 0x1c, 0x1d, 0x39, 0xd0, 0x2b, 0x1e, 0x4b, \ | ||
| 137 | -/*b8*/ 0x4c, 0x4d, 0x0a, 0x0b, 0x37, 0x3c, 0x3e, 0x5b, \ | ||
| 138 | -/*c0*/ 0x0f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, \ | ||
| 139 | -/*c8*/ 0xa7, 0xa8, 0x07, 0x58, 0x53, 0x43, 0x5d, 0x46, \ | ||
| 140 | -/*d0*/ 0x0e, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, \ | ||
| 141 | -/*d8*/ 0xb0, 0xb1, 0x67, 0x59, 0x4e, 0x44, 0x5e, 0x47, \ | ||
| 142 | -/*e0*/ 0x15, 0x9d, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, \ | ||
| 143 | -/*e8*/ 0xb8, 0xb9, 0x68, 0x78, 0x73, 0x63, 0x7d, 0x66, \ | ||
| 144 | -/*f0*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, \ | 113 | + |
| 114 | +const unsigned short ebc2cg0[256] = { | ||
| 115 | +/*00*/ 0x00, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
| 116 | +/*08*/ 0xdf, 0xdf, 0xdf, 0xdf, 0x02, 0x03, 0x00, 0x00, | ||
| 117 | +/*10*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0x04, 0xdf, 0xdf, | ||
| 118 | +/*18*/ 0xdf, 0x05, 0xdf, 0xdf, 0x9f, 0xdf, 0x9e, 0xdf, | ||
| 119 | +/*20*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
| 120 | +/*28*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
| 121 | +/*30*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
| 122 | +/*38*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, | ||
| 123 | +/*40*/ 0x10, 0x01, 0x55, 0x50, 0x40, 0x5a, 0x45, 0x9c, | ||
| 124 | +/*48*/ 0x4f, 0x5f, 0x1b, 0x32, 0x09, 0x0d, 0x35, 0x16, | ||
| 125 | +/*50*/ 0x30, 0x4a, 0x56, 0x51, 0x41, 0x5c, 0x57, 0x52, | ||
| 126 | +/*58*/ 0x42, 0x2a, 0x19, 0x1a, 0xbf, 0x0c, 0xbe, 0x36, | ||
| 127 | +/*60*/ 0x31, 0x14, 0x75, 0x70, 0x60, 0x7a, 0x65, 0xbc, | ||
| 128 | +/*68*/ 0xbd, 0x7f, 0x17, 0x33, 0x2e, 0x2f, 0x08, 0x18, | ||
| 129 | +/*70*/ 0x9b, 0x7b, 0x76, 0x71, 0x61, 0x7c, 0x77, 0x72, | ||
| 130 | +/*78*/ 0x62, 0x3d, 0x34, 0x2c, 0x2d, 0x12, 0x11, 0x13, | ||
| 131 | +/*80*/ 0xbb, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, | ||
| 132 | +/*88*/ 0x87, 0x88, 0x6c, 0x6d, 0xf7, 0x49, 0xf9, 0xd6, | ||
| 133 | +/*90*/ 0x38, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, | ||
| 134 | +/*98*/ 0x90, 0x91, 0x6a, 0x6b, 0x9a, 0x3f, 0xba, 0x1f, | ||
| 135 | +/*a0*/ 0x54, 0x3b, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, | ||
| 136 | +/*a8*/ 0x98, 0x99, 0x6e, 0x6f, 0xd7, 0x48, 0xd9, 0xd1, | ||
| 137 | +/*b0*/ 0x3a, 0x1c, 0x1d, 0x39, 0xd0, 0x2b, 0x1e, 0x4b, | ||
| 138 | +/*b8*/ 0x4c, 0x4d, 0x0a, 0x0b, 0x37, 0x3c, 0x3e, 0x5b, | ||
| 139 | +/*c0*/ 0x0f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, | ||
| 140 | +/*c8*/ 0xa7, 0xa8, 0x07, 0x58, 0x53, 0x43, 0x5d, 0x46, | ||
| 141 | +/*d0*/ 0x0e, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, | ||
| 142 | +/*d8*/ 0xb0, 0xb1, 0x67, 0x59, 0x4e, 0x44, 0x5e, 0x47, | ||
| 143 | +/*e0*/ 0x15, 0x9d, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, | ||
| 144 | +/*e8*/ 0xb8, 0xb9, 0x68, 0x78, 0x73, 0x63, 0x7d, 0x66, | ||
| 145 | +/*f0*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, | ||
| 145 | /*f8*/ 0x28, 0x29, 0x69, 0x79, 0x74, 0x64, 0x7e, 0x06 | 146 | /*f8*/ 0x28, 0x29, 0x69, 0x79, 0x74, 0x64, 0x7e, 0x06 |
| 146 | -unsigned short ebc2cg[256] = { EBC2CG }; | ||
| 147 | -unsigned short ebc2cg0[256] = { EBC2CG }; | ||
| 148 | -#define CG2EBC \ | ||
| 149 | -/*00*/ 0x00, 0x41, 0x0c, 0x0d, 0x15, 0x19, 0xff, 0xca, \ | ||
| 150 | -/*08*/ 0x6e, 0x4c, 0xba, 0xbb, 0x5d, 0x4d, 0xd0, 0xc0, \ | ||
| 151 | -/*10*/ 0x40, 0x7e, 0x7d, 0x7f, 0x61, 0xe0, 0x4f, 0x6a, \ | ||
| 152 | -/*18*/ 0x6f, 0x5a, 0x5b, 0x4a, 0xb1, 0xb2, 0xb6, 0x9f, \ | ||
| 153 | -/*20*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, \ | ||
| 154 | -/*28*/ 0xf8, 0xf9, 0x59, 0xb5, 0x7b, 0x7c, 0x6c, 0x6d, \ | ||
| 155 | -/*30*/ 0x50, 0x60, 0x4b, 0x6b, 0x7a, 0x4e, 0x5f, 0xbc, \ | ||
| 156 | -/*38*/ 0x90, 0xb3, 0xb0, 0xa1, 0xbd, 0x79, 0xbe, 0x9d, \ | ||
| 157 | -/*40*/ 0x44, 0x54, 0x58, 0xcd, 0xdd, 0x46, 0xcf, 0xdf, \ | ||
| 158 | -/*48*/ 0xad, 0x8d, 0x51, 0xb7, 0xb8, 0xb9, 0xdc, 0x48, \ | ||
| 159 | -/*50*/ 0x43, 0x53, 0x57, 0xcc, 0xa0, 0x42, 0x52, 0x56, \ | ||
| 160 | -/*58*/ 0xcb, 0xdb, 0x45, 0xbf, 0x55, 0xce, 0xde, 0x49, \ | ||
| 161 | -/*60*/ 0x64, 0x74, 0x78, 0xed, 0xfd, 0x66, 0xef, 0xda, \ | ||
| 162 | -/*68*/ 0xea, 0xfa, 0x9a, 0x9b, 0x8a, 0x8b, 0xaa, 0xab, \ | ||
| 163 | -/*70*/ 0x63, 0x73, 0x77, 0xec, 0xfc, 0x62, 0x72, 0x76, \ | ||
| 164 | -/*78*/ 0xeb, 0xfb, 0x65, 0x71, 0x75, 0xee, 0xfe, 0x69, \ | ||
| 165 | -/*80*/ 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, \ | ||
| 166 | -/*88*/ 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, \ | ||
| 167 | -/*90*/ 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, \ | ||
| 168 | -/*98*/ 0xa8, 0xa9, 0x9c, 0x70, 0x47, 0xe1, 0x1e, 0x1c, \ | ||
| 169 | -/*a0*/ 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, \ | ||
| 170 | -/*a8*/ 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, \ | ||
| 171 | -/*b0*/ 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, \ | ||
| 172 | -/*b8*/ 0xe8, 0xe9, 0x9e, 0x80, 0x67, 0x68, 0x5e, 0x5c, \ | ||
| 173 | -/*c0*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | ||
| 174 | -/*c8*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | ||
| 175 | -/*d0*/ 0xb4, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xac, \ | ||
| 176 | -/*d8*/ 0x00, 0xae, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | ||
| 177 | -/*e0*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | ||
| 178 | -/*e8*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | ||
| 179 | -/*f0*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, \ | 147 | +}; |
| 148 | + | ||
| 149 | +const unsigned short cg2ebc0[256] = { | ||
| 150 | +/*00*/ 0x00, 0x41, 0x0c, 0x0d, 0x15, 0x19, 0xff, 0xca, | ||
| 151 | +/*08*/ 0x6e, 0x4c, 0xba, 0xbb, 0x5d, 0x4d, 0xd0, 0xc0, | ||
| 152 | +/*10*/ 0x40, 0x7e, 0x7d, 0x7f, 0x61, 0xe0, 0x4f, 0x6a, | ||
| 153 | +/*18*/ 0x6f, 0x5a, 0x5b, 0x4a, 0xb1, 0xb2, 0xb6, 0x9f, | ||
| 154 | +/*20*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, | ||
| 155 | +/*28*/ 0xf8, 0xf9, 0x59, 0xb5, 0x7b, 0x7c, 0x6c, 0x6d, | ||
| 156 | +/*30*/ 0x50, 0x60, 0x4b, 0x6b, 0x7a, 0x4e, 0x5f, 0xbc, | ||
| 157 | +/*38*/ 0x90, 0xb3, 0xb0, 0xa1, 0xbd, 0x79, 0xbe, 0x9d, | ||
| 158 | +/*40*/ 0x44, 0x54, 0x58, 0xcd, 0xdd, 0x46, 0xcf, 0xdf, | ||
| 159 | +/*48*/ 0xad, 0x8d, 0x51, 0xb7, 0xb8, 0xb9, 0xdc, 0x48, | ||
| 160 | +/*50*/ 0x43, 0x53, 0x57, 0xcc, 0xa0, 0x42, 0x52, 0x56, | ||
| 161 | +/*58*/ 0xcb, 0xdb, 0x45, 0xbf, 0x55, 0xce, 0xde, 0x49, | ||
| 162 | +/*60*/ 0x64, 0x74, 0x78, 0xed, 0xfd, 0x66, 0xef, 0xda, | ||
| 163 | +/*68*/ 0xea, 0xfa, 0x9a, 0x9b, 0x8a, 0x8b, 0xaa, 0xab, | ||
| 164 | +/*70*/ 0x63, 0x73, 0x77, 0xec, 0xfc, 0x62, 0x72, 0x76, | ||
| 165 | +/*78*/ 0xeb, 0xfb, 0x65, 0x71, 0x75, 0xee, 0xfe, 0x69, | ||
| 166 | +/*80*/ 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, | ||
| 167 | +/*88*/ 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, | ||
| 168 | +/*90*/ 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, | ||
| 169 | +/*98*/ 0xa8, 0xa9, 0x9c, 0x70, 0x47, 0xe1, 0x1e, 0x1c, | ||
| 170 | +/*a0*/ 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, | ||
| 171 | +/*a8*/ 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, | ||
| 172 | +/*b0*/ 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, | ||
| 173 | +/*b8*/ 0xe8, 0xe9, 0x9e, 0x80, 0x67, 0x68, 0x5e, 0x5c, | ||
| 174 | +/*c0*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 175 | +/*c8*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 176 | +/*d0*/ 0xb4, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xac, | ||
| 177 | +/*d8*/ 0x00, 0xae, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 178 | +/*e0*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 179 | +/*e8*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 180 | +/*f0*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, | ||
| 180 | /*f8*/ 0x00, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | 181 | /*f8*/ 0x00, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
| 181 | -unsigned short cg2ebc[256] = { CG2EBC }; | ||
| 182 | -unsigned short cg2ebc0[256] = { CG2EBC }; | ||
| 183 | -#define EBC2ASC \ | ||
| 184 | -/*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \ | ||
| 185 | -/*08*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \ | ||
| 186 | -/*10*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \ | ||
| 187 | -/*18*/ 0x20, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x3b, 0x20, \ | ||
| 188 | -/*20*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \ | ||
| 189 | -/*28*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \ | ||
| 190 | -/*30*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \ | ||
| 191 | -/*38*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \ | ||
| 192 | -/*40*/ 0x20, 0x20, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, \ | ||
| 193 | -/*48*/ 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, \ | ||
| 194 | -/*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, \ | ||
| 195 | -/*58*/ 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0xac, \ | ||
| 196 | -/*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, \ | ||
| 197 | -/*68*/ 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, \ | ||
| 198 | -/*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, \ | ||
| 199 | -/*78*/ 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, \ | ||
| 200 | -/*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, \ | ||
| 201 | -/*88*/ 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, \ | ||
| 202 | -/*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, \ | ||
| 203 | -/*98*/ 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, \ | ||
| 204 | -/*a0*/ 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, \ | ||
| 205 | -/*a8*/ 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, \ | ||
| 206 | -/*b0*/ 0x5e, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, \ | ||
| 207 | -/*b8*/ 0xbd, 0xbe, 0x5b, 0x5d, 0xaf, 0xa8, 0xb4, 0xd7, \ | ||
| 208 | -/*c0*/ 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, \ | ||
| 209 | -/*c8*/ 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, \ | ||
| 210 | -/*d0*/ 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, \ | ||
| 211 | -/*d8*/ 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, \ | ||
| 212 | -/*e0*/ 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, \ | ||
| 213 | -/*e8*/ 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, \ | ||
| 214 | -/*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, \ | 182 | +}; |
| 183 | + | ||
| 184 | +const unsigned short ebc2asc0[256] = { | ||
| 185 | +/*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
| 186 | +/*08*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
| 187 | +/*10*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
| 188 | +/*18*/ 0x20, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x3b, 0x20, | ||
| 189 | +/*20*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
| 190 | +/*28*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
| 191 | +/*30*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
| 192 | +/*38*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | ||
| 193 | +/*40*/ 0x20, 0x20, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, | ||
| 194 | +/*48*/ 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, | ||
| 195 | +/*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, | ||
| 196 | +/*58*/ 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0xac, | ||
| 197 | +/*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, | ||
| 198 | +/*68*/ 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, | ||
| 199 | +/*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, | ||
| 200 | +/*78*/ 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, | ||
| 201 | +/*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, | ||
| 202 | +/*88*/ 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, | ||
| 203 | +/*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, | ||
| 204 | +/*98*/ 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, | ||
| 205 | +/*a0*/ 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, | ||
| 206 | +/*a8*/ 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, | ||
| 207 | +/*b0*/ 0x5e, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, | ||
| 208 | +/*b8*/ 0xbd, 0xbe, 0x5b, 0x5d, 0xaf, 0xa8, 0xb4, 0xd7, | ||
| 209 | +/*c0*/ 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, | ||
| 210 | +/*c8*/ 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, | ||
| 211 | +/*d0*/ 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, | ||
| 212 | +/*d8*/ 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, | ||
| 213 | +/*e0*/ 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, | ||
| 214 | +/*e8*/ 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, | ||
| 215 | +/*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, | ||
| 215 | /*f8*/ 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x20 | 216 | /*f8*/ 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x20 |
| 216 | -unsigned short ebc2asc[256] = { EBC2ASC }; | ||
| 217 | -unsigned short ebc2asc0[256] = { EBC2ASC }; | 217 | +}; |
| 218 | + | ||
| 218 | #define EBC2ASC7 \ | 219 | #define EBC2ASC7 \ |
| 219 | /*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \ | 220 | /*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \ |
| 220 | /*08*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \ | 221 | /*08*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \ |
| @@ -248,8 +249,9 @@ unsigned short ebc2asc0[256] = { EBC2ASC }; | @@ -248,8 +249,9 @@ unsigned short ebc2asc0[256] = { EBC2ASC }; | ||
| 248 | /*e8*/ 0x59, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | 249 | /*e8*/ 0x59, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ |
| 249 | /*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, \ | 250 | /*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, \ |
| 250 | /*f8*/ 0x38, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20 | 251 | /*f8*/ 0x38, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20 |
| 251 | -unsigned short ebc2asc7[256] = { EBC2ASC7 }; | ||
| 252 | -unsigned short ebc2asc70[256] = { EBC2ASC7 }; | 252 | +const unsigned short ebc2asc7[256] = { EBC2ASC7 }; |
| 253 | +const unsigned short ebc2asc70[256] = { EBC2ASC7 }; | ||
| 254 | + | ||
| 253 | #define ASC2EBC \ | 255 | #define ASC2EBC \ |
| 254 | /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | 256 | /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ |
| 255 | /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ | 257 | /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ |
| @@ -283,45 +285,9 @@ unsigned short ebc2asc70[256] = { EBC2ASC7 }; | @@ -283,45 +285,9 @@ unsigned short ebc2asc70[256] = { EBC2ASC7 }; | ||
| 283 | /*e8*/ 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, \ | 285 | /*e8*/ 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, \ |
| 284 | /*f0*/ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, \ | 286 | /*f0*/ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, \ |
| 285 | /*f8*/ 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf | 287 | /*f8*/ 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf |
| 286 | -unsigned short asc2ebc[256] = { ASC2EBC }; | ||
| 287 | -unsigned short asc2ebc0[256] = { ASC2EBC }; | ||
| 288 | -#if defined(X3270_DISPLAY) /*[*/ | ||
| 289 | -unsigned short cg2uc[256] = { | ||
| 290 | -/*00*/ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, | ||
| 291 | -/*08*/ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, | ||
| 292 | -/*10*/ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, | ||
| 293 | -/*18*/ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, | ||
| 294 | -/*20*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, | ||
| 295 | -/*28*/ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, | ||
| 296 | -/*30*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, | ||
| 297 | -/*38*/ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, | ||
| 298 | -/*40*/ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x47, | ||
| 299 | -/*48*/ 0x48, 0x48, 0x7b, 0x4b, 0x4c, 0x4d, 0x74, 0xbd, | ||
| 300 | -/*50*/ 0x70, 0x71, 0x72, 0x73, 0x54, 0x75, 0x76, 0x77, | ||
| 301 | -/*58*/ 0x78, 0x79, 0x7a, 0x5b, 0x7c, 0x7d, 0x7e, 0x7f, | ||
| 302 | -/*60*/ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, | ||
| 303 | -/*68*/ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, | ||
| 304 | -/*70*/ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, | ||
| 305 | -/*78*/ 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, | ||
| 306 | -/*80*/ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, | ||
| 307 | -/*88*/ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, | ||
| 308 | -/*90*/ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, | ||
| 309 | -/*98*/ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0x9d, 0x9e, 0x9f, | ||
| 310 | -/*a0*/ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, | ||
| 311 | -/*a8*/ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, | ||
| 312 | -/*b0*/ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, | ||
| 313 | -/*b8*/ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, | ||
| 314 | -/*c0*/ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, | ||
| 315 | -/*c8*/ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, | ||
| 316 | -/*d0*/ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, | ||
| 317 | -/*d8*/ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, | ||
| 318 | -/*e0*/ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, | ||
| 319 | -/*e8*/ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, | ||
| 320 | -/*f0*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xd7, | ||
| 321 | -/*f8*/ 0xf8, 0xd9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff | ||
| 322 | -}; | ||
| 323 | -#endif /*]*/ | ||
| 324 | -unsigned short ge2asc[256] = { | 288 | +const unsigned short asc2ebc0[256] = { ASC2EBC }; |
| 289 | + | ||
| 290 | +const unsigned short ge2asc[256] = { | ||
| 325 | /*00*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | 291 | /*00*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, |
| 326 | /*08*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | 292 | /*08*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, |
| 327 | /*10*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, | 293 | /*10*/ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, |
| @@ -391,7 +357,7 @@ unsigned short ge2cg8[256] = { | @@ -391,7 +357,7 @@ unsigned short ge2cg8[256] = { | ||
| 391 | /*f8*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf | 357 | /*f8*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf |
| 392 | }; | 358 | }; |
| 393 | #endif /*[*/ | 359 | #endif /*[*/ |
| 394 | -unsigned short asc2uc[256] = { | 360 | +const unsigned short asc2uc[256] = { |
| 395 | /*00*/ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, | 361 | /*00*/ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, |
| 396 | /*08*/ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, | 362 | /*08*/ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, |
| 397 | /*10*/ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, | 363 | /*10*/ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, |
| @@ -425,7 +391,7 @@ unsigned short asc2uc[256] = { | @@ -425,7 +391,7 @@ unsigned short asc2uc[256] = { | ||
| 425 | /*f0*/ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xf7, | 391 | /*f0*/ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xf7, |
| 426 | /*f8*/ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xff | 392 | /*f8*/ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xff |
| 427 | }; | 393 | }; |
| 428 | -unsigned short ebc2uc[256] = { | 394 | +const unsigned short ebc2uc[256] = { |
| 429 | /*00*/ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, | 395 | /*00*/ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, |
| 430 | /*08*/ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, | 396 | /*08*/ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, |
| 431 | /*10*/ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, | 397 | /*10*/ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, |
| @@ -477,8 +443,7 @@ unsigned short ebc2uc[256] = { | @@ -477,8 +443,7 @@ unsigned short ebc2uc[256] = { | ||
| 477 | 0xa4,0xb5,0xa1,0xbf,0xd0,0xdd,0xde,0xae,0x5e,0xa3,0xa5,0xb7,0xa9,0xa7,0xb6,0xbc, \ | 443 | 0xa4,0xb5,0xa1,0xbf,0xd0,0xdd,0xde,0xae,0x5e,0xa3,0xa5,0xb7,0xa9,0xa7,0xb6,0xbc, \ |
| 478 | 0xbd,0xbe,0x5b,0x5d,0xaf,0xa8,0xb4,0xd7,0xad,0xf4,0xf6,0xf2,0xf3,0xf5,0xb9,0xfb, \ | 444 | 0xbd,0xbe,0x5b,0x5d,0xaf,0xa8,0xb4,0xd7,0xad,0xf4,0xf6,0xf2,0xf3,0xf5,0xb9,0xfb, \ |
| 479 | 0xfc,0xf9,0xfa,0xff,0xb2,0xd4,0xd6,0xd2,0xd3,0xd5,0xb3,0xdb,0xdc,0xd9,0xda,0xff | 445 | 0xfc,0xf9,0xfa,0xff,0xb2,0xd4,0xd6,0xd2,0xd3,0xd5,0xb3,0xdb,0xdc,0xd9,0xda,0xff |
| 480 | -unsigned short ft2asc[256] = { FT2ASC }; | ||
| 481 | -unsigned short ft2asc0[256] = { FT2ASC }; | 446 | +const unsigned short ft2asc0[256] = { FT2ASC }; |
| 482 | #define ASC2FT \ | 447 | #define ASC2FT \ |
| 483 | 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, \ | 448 | 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, \ |
| 484 | 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, \ | 449 | 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, \ |
| @@ -496,6 +461,26 @@ unsigned short ft2asc0[256] = { FT2ASC }; | @@ -496,6 +461,26 @@ unsigned short ft2asc0[256] = { FT2ASC }; | ||
| 496 | 0xd4,0xb9,0xf7,0xf8,0xf5,0xf9,0xf6,0xe7,0xc3,0xfd,0xfe,0xfb,0xfc,0xd5,0xd6,0xb1, \ | 461 | 0xd4,0xb9,0xf7,0xf8,0xf5,0xf9,0xf6,0xe7,0xc3,0xfd,0xfe,0xfb,0xfc,0xd5,0xd6,0xb1, \ |
| 497 | 0xa3,0xa4,0xa1,0xa5,0xa2,0xa6,0xcd,0xa7,0xac,0xa9,0xaa,0xab,0xb0,0xad,0xae,0xaf, \ | 462 | 0xa3,0xa4,0xa1,0xa5,0xa2,0xa6,0xcd,0xa7,0xac,0xa9,0xaa,0xab,0xb0,0xad,0xae,0xaf, \ |
| 498 | 0xc6,0xa8,0xeb,0xec,0xe9,0xed,0xea,0x9f,0xba,0xf1,0xf2,0xef,0xf0,0xc7,0xc8,0xf3 | 463 | 0xc6,0xa8,0xeb,0xec,0xe9,0xed,0xea,0x9f,0xba,0xf1,0xf2,0xef,0xf0,0xc7,0xc8,0xf3 |
| 499 | -unsigned short asc2ft[256] = { ASC2FT }; | ||
| 500 | -unsigned short asc2ft0[256] = { ASC2FT }; | 464 | +const unsigned short asc2ft0[256] = { ASC2FT }; |
| 501 | #endif /*]*/ | 465 | #endif /*]*/ |
| 466 | + | ||
| 467 | +unsigned short ebc2cg[256]; | ||
| 468 | +unsigned short cg2ebc[256]; | ||
| 469 | +unsigned short ebc2asc[256]; | ||
| 470 | +unsigned short asc2ebc[256]; | ||
| 471 | +unsigned short asc2ft[256]; | ||
| 472 | +unsigned short ft2asc[256]; | ||
| 473 | + | ||
| 474 | +LIB3270_INTERNAL void initialize_tables(H3270 *hSession) | ||
| 475 | +{ | ||
| 476 | + /* Go to defaults first. */ | ||
| 477 | + memcpy(ebc2cg, ebc2cg0, sizeof(ebc2cg)); | ||
| 478 | + memcpy(cg2ebc, cg2ebc0, sizeof(cg2ebc)); | ||
| 479 | + memcpy(ebc2asc, ebc2asc0, sizeof(ebc2asc)); | ||
| 480 | + memcpy(asc2ebc, asc2ebc0, sizeof(asc2ebc)); | ||
| 481 | +#if defined(X3270_FT) /*[*/ | ||
| 482 | + memcpy(ft2asc, ft2asc0, sizeof(ft2asc)); | ||
| 483 | + memcpy(asc2ft, asc2ft0, sizeof(asc2ft)); | ||
| 484 | +#endif /*]*/ | ||
| 485 | + | ||
| 486 | +} |
tablesc.h
| @@ -16,25 +16,26 @@ | @@ -16,25 +16,26 @@ | ||
| 16 | * tablesc.h | 16 | * tablesc.h |
| 17 | * Global declarations for tables.c. | 17 | * Global declarations for tables.c. |
| 18 | */ | 18 | */ |
| 19 | - | ||
| 20 | -LIB3270_INTERNAL unsigned short asc2cg[256]; | ||
| 21 | -LIB3270_INTERNAL unsigned short cg2asc[256]; | 19 | +LIB3270_INTERNAL void initialize_tables(H3270 *hSession); |
| 22 | LIB3270_INTERNAL unsigned short ebc2cg[256]; | 20 | LIB3270_INTERNAL unsigned short ebc2cg[256]; |
| 23 | -LIB3270_INTERNAL unsigned short ebc2cg0[256]; | ||
| 24 | LIB3270_INTERNAL unsigned short cg2ebc[256]; | 21 | LIB3270_INTERNAL unsigned short cg2ebc[256]; |
| 25 | -LIB3270_INTERNAL unsigned short cg2ebc0[256]; | ||
| 26 | LIB3270_INTERNAL unsigned short ebc2asc[256]; | 22 | LIB3270_INTERNAL unsigned short ebc2asc[256]; |
| 27 | -LIB3270_INTERNAL unsigned short ebc2asc0[256]; | ||
| 28 | -LIB3270_INTERNAL unsigned short ebc2asc7[256]; | ||
| 29 | -LIB3270_INTERNAL unsigned short ebc2asc70[256]; | ||
| 30 | LIB3270_INTERNAL unsigned short asc2ebc[256]; | 23 | LIB3270_INTERNAL unsigned short asc2ebc[256]; |
| 31 | -LIB3270_INTERNAL unsigned short asc2ebc0[256]; | ||
| 32 | -LIB3270_INTERNAL unsigned short cg2uc[256]; | ||
| 33 | -LIB3270_INTERNAL unsigned short ge2asc[256]; | ||
| 34 | -LIB3270_INTERNAL unsigned short ge2cg8[256]; | ||
| 35 | -LIB3270_INTERNAL unsigned short asc2uc[256]; | ||
| 36 | -LIB3270_INTERNAL unsigned short ebc2uc[256]; | ||
| 37 | LIB3270_INTERNAL unsigned short ft2asc[256]; | 24 | LIB3270_INTERNAL unsigned short ft2asc[256]; |
| 38 | -LIB3270_INTERNAL unsigned short ft2asc0[256]; | ||
| 39 | LIB3270_INTERNAL unsigned short asc2ft[256]; | 25 | LIB3270_INTERNAL unsigned short asc2ft[256]; |
| 40 | -LIB3270_INTERNAL unsigned short asc2ft0[256]; | 26 | + |
| 27 | +LIB3270_INTERNAL const unsigned short asc2cg[256]; | ||
| 28 | +LIB3270_INTERNAL const unsigned short cg2asc[256]; | ||
| 29 | +LIB3270_INTERNAL const unsigned short ebc2cg0[256]; | ||
| 30 | +LIB3270_INTERNAL const unsigned short cg2ebc0[256]; | ||
| 31 | +LIB3270_INTERNAL const unsigned short ebc2asc0[256]; | ||
| 32 | +LIB3270_INTERNAL const unsigned short ebc2asc7[256]; | ||
| 33 | +LIB3270_INTERNAL const unsigned short ebc2asc70[256]; | ||
| 34 | +LIB3270_INTERNAL const unsigned short asc2ebc0[256]; | ||
| 35 | +// LIB3270_INTERNAL const unsigned short cg2uc[256]; | ||
| 36 | +LIB3270_INTERNAL const unsigned short ge2asc[256]; | ||
| 37 | +LIB3270_INTERNAL const unsigned short ge2cg8[256]; | ||
| 38 | +LIB3270_INTERNAL const unsigned short asc2uc[256]; | ||
| 39 | +LIB3270_INTERNAL const unsigned short ebc2uc[256]; | ||
| 40 | +LIB3270_INTERNAL const unsigned short ft2asc0[256]; | ||
| 41 | +LIB3270_INTERNAL const unsigned short asc2ft0[256]; |
util.c
| @@ -929,20 +929,6 @@ LIB3270_EXPORT void * lib3270_malloc(int len) | @@ -929,20 +929,6 @@ LIB3270_EXPORT void * lib3270_malloc(int len) | ||
| 929 | return r; | 929 | return r; |
| 930 | } | 930 | } |
| 931 | 931 | ||
| 932 | -/* | ||
| 933 | -void * Calloc(size_t nelem, size_t elsize) | ||
| 934 | -{ | ||
| 935 | - int sz = nelem * elsize; | ||
| 936 | - char * r = malloc(sz); | ||
| 937 | - | ||
| 938 | - if(!r) | ||
| 939 | - Error(NULL,"Out of memory in %s",__FUNCTION__); | ||
| 940 | - | ||
| 941 | - memset(r, 0, sz); | ||
| 942 | - return r; | ||
| 943 | -} | ||
| 944 | -*/ | ||
| 945 | - | ||
| 946 | LIB3270_EXPORT char * lib3270_get_resource_string(H3270 *hSession, const char *first_element, ...) | 932 | LIB3270_EXPORT char * lib3270_get_resource_string(H3270 *hSession, const char *first_element, ...) |
| 947 | { | 933 | { |
| 948 | #ifdef ANDROID | 934 | #ifdef ANDROID |