Commit 6717c333fe340488363c00c75bf6da8715328d14
1 parent
76e230f5
Exists in
master
and in
3 other branches
Removendo mais conversões utf-8 da lib, função passa a ser da gui
Showing
3 changed files
with
107 additions
and
82 deletions
Show diff stats
ansi.c
| @@ -1215,12 +1215,12 @@ ansi_multibyte(int ig1, int ig2) | @@ -1215,12 +1215,12 @@ ansi_multibyte(int ig1, int ig2) | ||
| 1215 | 1215 | ||
| 1216 | ch = utf8_lookup(mbs, &fail, NULL); | 1216 | ch = utf8_lookup(mbs, &fail, NULL); |
| 1217 | if (ch != 0) { | 1217 | if (ch != 0) { |
| 1218 | - /* Success! */ | 1218 | + // Success! |
| 1219 | ansi_ch = ch; | 1219 | ansi_ch = ch; |
| 1220 | return ansi_printing(ig1, ig2); | 1220 | return ansi_printing(ig1, ig2); |
| 1221 | } | 1221 | } |
| 1222 | if (fail == ULFAIL_INCOMPLETE) { | 1222 | if (fail == ULFAIL_INCOMPLETE) { |
| 1223 | - /* Go get more. */ | 1223 | + // Go get more. |
| 1224 | pending_mbs[pmi++] = (char)ansi_ch; | 1224 | pending_mbs[pmi++] = (char)ansi_ch; |
| 1225 | return MBPEND; | 1225 | return MBPEND; |
| 1226 | } | 1226 | } |
| 1 | -/* | 1 | +/* |
| 2 | * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | 2 | * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 |
| 3 | * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | 3 | * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a |
| 4 | * aplicativos mainframe. Registro no INPI sob o nome G3270. | 4 | * aplicativos mainframe. Registro no INPI sob o nome G3270. |
| 5 | - * | 5 | + * |
| 6 | * Copyright (C) <2008> <Banco do Brasil S.A.> | 6 | * Copyright (C) <2008> <Banco do Brasil S.A.> |
| 7 | - * | 7 | + * |
| 8 | * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | 8 | * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob |
| 9 | * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | 9 | * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela |
| 10 | * Free Software Foundation. | 10 | * Free Software Foundation. |
| 11 | - * | 11 | + * |
| 12 | * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | 12 | * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER |
| 13 | * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | 13 | * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO |
| 14 | * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | 14 | * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para |
| 15 | * obter mais detalhes. | 15 | * obter mais detalhes. |
| 16 | - * | 16 | + * |
| 17 | * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | 17 | * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este |
| 18 | * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | 18 | * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple |
| 19 | * Place, Suite 330, Boston, MA, 02111-1307, USA | 19 | * Place, Suite 330, Boston, MA, 02111-1307, USA |
| 20 | - * | 20 | + * |
| 21 | * Este programa está nomeado como see.c e possui 489 linhas de código. | 21 | * Este programa está nomeado como see.c e possui 489 linhas de código. |
| 22 | - * | ||
| 23 | - * Contatos: | ||
| 24 | - * | 22 | + * |
| 23 | + * Contatos: | ||
| 24 | + * | ||
| 25 | * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | 25 | * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) |
| 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) |
| @@ -90,16 +90,24 @@ see_ebc(unsigned char ch) | @@ -90,16 +90,24 @@ see_ebc(unsigned char ch) | ||
| 90 | case FCORDER_SO: | 90 | case FCORDER_SO: |
| 91 | return "SO"; | 91 | return "SO"; |
| 92 | } | 92 | } |
| 93 | + | ||
| 94 | + if (ebc2asc[ch]) | ||
| 95 | + (void) sprintf(buf,"%c", ebc2asc[ch]); | ||
| 96 | + else | ||
| 97 | + (void) sprintf(buf, "\\%o", ch); | ||
| 98 | + | ||
| 99 | +/* | ||
| 93 | if (ebc2asc[ch]) | 100 | if (ebc2asc[ch]) |
| 94 | (void) sprintf(buf, | 101 | (void) sprintf(buf, |
| 95 | -#if !defined(PR3287) /*[*/ | 102 | +#if !defined(PR3287) |
| 96 | "%s", utf8_expand(ebc2asc[ch]) | 103 | "%s", utf8_expand(ebc2asc[ch]) |
| 97 | -#else /*][*/ | 104 | +#else |
| 98 | "%c", ebc2asc[ch] | 105 | "%c", ebc2asc[ch] |
| 99 | -#endif /*]*/ | 106 | +#endif |
| 100 | ); | 107 | ); |
| 101 | else | 108 | else |
| 102 | (void) sprintf(buf, "\\%o", ch); | 109 | (void) sprintf(buf, "\\%o", ch); |
| 110 | +*/ | ||
| 103 | return buf; | 111 | return buf; |
| 104 | } | 112 | } |
| 105 | 113 | ||
| @@ -107,77 +115,77 @@ const char * | @@ -107,77 +115,77 @@ const char * | ||
| 107 | see_aid(unsigned char code) | 115 | see_aid(unsigned char code) |
| 108 | { | 116 | { |
| 109 | switch (code) { | 117 | switch (code) { |
| 110 | - case AID_NO: | 118 | + case AID_NO: |
| 111 | return "NoAID"; | 119 | return "NoAID"; |
| 112 | - case AID_ENTER: | 120 | + case AID_ENTER: |
| 113 | return "Enter"; | 121 | return "Enter"; |
| 114 | - case AID_PF1: | 122 | + case AID_PF1: |
| 115 | return "PF1"; | 123 | return "PF1"; |
| 116 | - case AID_PF2: | 124 | + case AID_PF2: |
| 117 | return "PF2"; | 125 | return "PF2"; |
| 118 | - case AID_PF3: | 126 | + case AID_PF3: |
| 119 | return "PF3"; | 127 | return "PF3"; |
| 120 | - case AID_PF4: | 128 | + case AID_PF4: |
| 121 | return "PF4"; | 129 | return "PF4"; |
| 122 | - case AID_PF5: | 130 | + case AID_PF5: |
| 123 | return "PF5"; | 131 | return "PF5"; |
| 124 | - case AID_PF6: | 132 | + case AID_PF6: |
| 125 | return "PF6"; | 133 | return "PF6"; |
| 126 | - case AID_PF7: | 134 | + case AID_PF7: |
| 127 | return "PF7"; | 135 | return "PF7"; |
| 128 | - case AID_PF8: | 136 | + case AID_PF8: |
| 129 | return "PF8"; | 137 | return "PF8"; |
| 130 | - case AID_PF9: | 138 | + case AID_PF9: |
| 131 | return "PF9"; | 139 | return "PF9"; |
| 132 | - case AID_PF10: | 140 | + case AID_PF10: |
| 133 | return "PF10"; | 141 | return "PF10"; |
| 134 | - case AID_PF11: | 142 | + case AID_PF11: |
| 135 | return "PF11"; | 143 | return "PF11"; |
| 136 | - case AID_PF12: | 144 | + case AID_PF12: |
| 137 | return "PF12"; | 145 | return "PF12"; |
| 138 | - case AID_PF13: | 146 | + case AID_PF13: |
| 139 | return "PF13"; | 147 | return "PF13"; |
| 140 | - case AID_PF14: | 148 | + case AID_PF14: |
| 141 | return "PF14"; | 149 | return "PF14"; |
| 142 | - case AID_PF15: | 150 | + case AID_PF15: |
| 143 | return "PF15"; | 151 | return "PF15"; |
| 144 | - case AID_PF16: | 152 | + case AID_PF16: |
| 145 | return "PF16"; | 153 | return "PF16"; |
| 146 | - case AID_PF17: | 154 | + case AID_PF17: |
| 147 | return "PF17"; | 155 | return "PF17"; |
| 148 | - case AID_PF18: | 156 | + case AID_PF18: |
| 149 | return "PF18"; | 157 | return "PF18"; |
| 150 | - case AID_PF19: | 158 | + case AID_PF19: |
| 151 | return "PF19"; | 159 | return "PF19"; |
| 152 | - case AID_PF20: | 160 | + case AID_PF20: |
| 153 | return "PF20"; | 161 | return "PF20"; |
| 154 | - case AID_PF21: | 162 | + case AID_PF21: |
| 155 | return "PF21"; | 163 | return "PF21"; |
| 156 | - case AID_PF22: | 164 | + case AID_PF22: |
| 157 | return "PF22"; | 165 | return "PF22"; |
| 158 | - case AID_PF23: | 166 | + case AID_PF23: |
| 159 | return "PF23"; | 167 | return "PF23"; |
| 160 | - case AID_PF24: | 168 | + case AID_PF24: |
| 161 | return "PF24"; | 169 | return "PF24"; |
| 162 | - case AID_OICR: | 170 | + case AID_OICR: |
| 163 | return "OICR"; | 171 | return "OICR"; |
| 164 | - case AID_MSR_MHS: | 172 | + case AID_MSR_MHS: |
| 165 | return "MSR_MHS"; | 173 | return "MSR_MHS"; |
| 166 | - case AID_SELECT: | 174 | + case AID_SELECT: |
| 167 | return "Select"; | 175 | return "Select"; |
| 168 | - case AID_PA1: | 176 | + case AID_PA1: |
| 169 | return "PA1"; | 177 | return "PA1"; |
| 170 | - case AID_PA2: | 178 | + case AID_PA2: |
| 171 | return "PA2"; | 179 | return "PA2"; |
| 172 | - case AID_PA3: | 180 | + case AID_PA3: |
| 173 | return "PA3"; | 181 | return "PA3"; |
| 174 | - case AID_CLEAR: | 182 | + case AID_CLEAR: |
| 175 | return "Clear"; | 183 | return "Clear"; |
| 176 | - case AID_SYSREQ: | 184 | + case AID_SYSREQ: |
| 177 | return "SysReq"; | 185 | return "SysReq"; |
| 178 | case AID_QREPLY: | 186 | case AID_QREPLY: |
| 179 | return "QueryReplyAID"; | 187 | return "QueryReplyAID"; |
| 180 | - default: | 188 | + default: |
| 181 | return unknown(code); | 189 | return unknown(code); |
| 182 | } | 190 | } |
| 183 | } | 191 | } |
utf8.c
| @@ -42,9 +42,10 @@ | @@ -42,9 +42,10 @@ | ||
| 42 | #include "popupsc.h" | 42 | #include "popupsc.h" |
| 43 | #include "utf8c.h" | 43 | #include "utf8c.h" |
| 44 | 44 | ||
| 45 | -char *locale_codeset = CN; | 45 | +// char *locale_codeset = CN; |
| 46 | + | ||
| 47 | +// static int utf8_ix = -1; | ||
| 46 | 48 | ||
| 47 | -static int utf8_ix = -1; | ||
| 48 | // static Boolean is_utf8 = False; | 49 | // static Boolean is_utf8 = False; |
| 49 | #if defined(X3270_DBCS) /*[*/ | 50 | #if defined(X3270_DBCS) /*[*/ |
| 50 | static Boolean is_gb18030 = False; | 51 | static Boolean is_gb18030 = False; |
| @@ -452,33 +453,38 @@ utf8_set_display_charsets(char *cslist, char *csname) | @@ -452,33 +453,38 @@ utf8_set_display_charsets(char *cslist, char *csname) | ||
| 452 | } | 453 | } |
| 453 | */ | 454 | */ |
| 454 | /* Expand an 8-bit character in the 'implied' character set. */ | 455 | /* Expand an 8-bit character in the 'implied' character set. */ |
| 455 | -char * | ||
| 456 | -utf8_expand(unsigned char c) | 456 | +/* |
| 457 | +char * utf8_expand(unsigned char c) | ||
| 457 | { | 458 | { |
| 458 | - static char nox[2]; | 459 | + static char nox[2]; |
| 459 | 460 | ||
| 460 | - if (c & 0x80) { | ||
| 461 | - if (utf8_ix >= 0) { | 461 | + if (c & 0x80) |
| 462 | + { | ||
| 463 | + if (utf8_ix >= 0) | ||
| 464 | + { | ||
| 462 | if (c >= 0xa0) | 465 | if (c >= 0xa0) |
| 463 | return utf8_tab[utf8_ix][c - 0xa0]; | 466 | return utf8_tab[utf8_ix][c - 0xa0]; |
| 464 | else | 467 | else |
| 465 | return " "; | 468 | return " "; |
| 466 | -#if defined(X3270_DBCS) /*[*/ | ||
| 467 | - } else if (dbcs) { | ||
| 468 | - /* | ||
| 469 | - * GB18030 it treated as a special case of UTF-8, | ||
| 470 | - * above. GB2312 does not support these characters. | ||
| 471 | - * Other DBCS encodings will need to be added as they | ||
| 472 | - * are better understood. | ||
| 473 | - */ | ||
| 474 | - return " "; | ||
| 475 | -#endif /*]*/ | ||
| 476 | } | 469 | } |
| 470 | +#if defined(X3270_DBCS) | ||
| 471 | + else if (dbcs) | ||
| 472 | + { | ||
| 473 | + // | ||
| 474 | + // GB18030 it treated as a special case of UTF-8, | ||
| 475 | + // above. GB2312 does not support these characters. | ||
| 476 | + // Other DBCS encodings will need to be added as they | ||
| 477 | + // are better understood. | ||
| 478 | + // | ||
| 479 | + return " "; | ||
| 480 | + } | ||
| 481 | +#endif | ||
| 477 | } | 482 | } |
| 478 | nox[0] = c; | 483 | nox[0] = c; |
| 479 | nox[1] = '\0'; | 484 | nox[1] = '\0'; |
| 480 | return nox; | 485 | return nox; |
| 481 | } | 486 | } |
| 487 | +*/ | ||
| 482 | 488 | ||
| 483 | /* | 489 | /* |
| 484 | * Look up a multi-byte UTF-8 string and return its value in the 'implied' | 490 | * Look up a multi-byte UTF-8 string and return its value in the 'implied' |
| @@ -487,34 +493,45 @@ utf8_expand(unsigned char c) | @@ -487,34 +493,45 @@ utf8_expand(unsigned char c) | ||
| 487 | */ | 493 | */ |
| 488 | unsigned char utf8_lookup(char *mbs, enum ulfail *fail, int *consumed) | 494 | unsigned char utf8_lookup(char *mbs, enum ulfail *fail, int *consumed) |
| 489 | { | 495 | { |
| 490 | - int i; | 496 | + if (fail != NULL) |
| 497 | + *fail = ULFAIL_NOUTF8; | ||
| 498 | + | ||
| 499 | +/* | ||
| 500 | + int i; | ||
| 491 | int mblen = strlen(mbs); | 501 | int mblen = strlen(mbs); |
| 492 | 502 | ||
| 493 | - if (utf8_ix < 0) { | ||
| 494 | - if (fail != NULL) | ||
| 495 | - *fail = ULFAIL_NOUTF8; | ||
| 496 | - return 0; | 503 | + if (utf8_ix < 0) |
| 504 | + { | ||
| 505 | + if (fail != NULL) | ||
| 506 | + *fail = ULFAIL_NOUTF8; | ||
| 507 | + return 0; | ||
| 497 | } | 508 | } |
| 498 | - for (i = 0; i < HI_SIZE; i++) { | ||
| 499 | - int tlen = strlen(utf8_tab[utf8_ix][i]); | ||
| 500 | 509 | ||
| 501 | - /* Check for dummy " " entry. */ | 510 | + for (i = 0; i < HI_SIZE; i++) |
| 511 | + { | ||
| 512 | + int tlen = strlen(utf8_tab[utf8_ix][i]); | ||
| 513 | + | ||
| 514 | + // Check for dummy " " entry. | ||
| 502 | if (tlen == 1) | 515 | if (tlen == 1) |
| 503 | - continue; | 516 | + continue; |
| 504 | 517 | ||
| 505 | - /* Check for incomplete string. */ | ||
| 506 | - if (mblen < tlen) { | 518 | + // Check for incomplete string. |
| 519 | + if (mblen < tlen) | ||
| 520 | + { | ||
| 507 | if (fail != NULL) | 521 | if (fail != NULL) |
| 508 | *fail = ULFAIL_INCOMPLETE; | 522 | *fail = ULFAIL_INCOMPLETE; |
| 509 | return 0; | 523 | return 0; |
| 510 | } | 524 | } |
| 511 | - if (!strncmp(mbs, utf8_tab[utf8_ix][i], tlen)) { | ||
| 512 | - if (consumed != NULL) | ||
| 513 | - *consumed = tlen; | ||
| 514 | - return 0xa0 + i; | 525 | + |
| 526 | + if (!strncmp(mbs, utf8_tab[utf8_ix][i], tlen)) | ||
| 527 | + { | ||
| 528 | + if (consumed != NULL) | ||
| 529 | + *consumed = tlen; | ||
| 530 | + return 0xa0 + i; | ||
| 515 | } | 531 | } |
| 516 | } | 532 | } |
| 517 | if (fail != NULL) | 533 | if (fail != NULL) |
| 518 | - *fail = ULFAIL_INVALID; | 534 | + *fail = ULFAIL_INVALID; |
| 535 | +*/ | ||
| 519 | return 0; | 536 | return 0; |
| 520 | } | 537 | } |