Commit 9b7cff165247d35005147075719624451905cf29
1 parent
c29f3eb1
Exists in
master
and in
5 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
src/lib3270/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 | } |
src/lib3270/see.c
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 | } |
src/lib3270/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 | } |