This source file includes following definitions.
- main
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #include <config.h>
20
21 #include "uniconv.h"
22
23 #include <stdlib.h>
24
25 #include "unistr.h"
26 #include "macros.h"
27 extern int iconv_supports_encoding (const char *encoding);
28
29 int
30 main ()
31 {
32 #if HAVE_ICONV
33 static enum iconv_ilseq_handler handlers[] =
34 { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
35 size_t h;
36
37
38
39
40
41 for (h = 0; h < SIZEOF (handlers); h++)
42 {
43 enum iconv_ilseq_handler handler = handlers[h];
44 static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
45 static const uint8_t expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
46 uint8_t *result = u8_strconv_from_encoding (input, "ISO-8859-1", handler);
47 ASSERT (result != NULL);
48 ASSERT (u8_strcmp (result, expected) == 0);
49 free (result);
50 }
51
52
53 for (h = 0; h < SIZEOF (handlers); h++)
54 {
55 enum iconv_ilseq_handler handler = handlers[h];
56 static const char input[] = "Rafa\263 Maszkowski";
57 static const uint8_t expected[] = "Rafa\305\202 Maszkowski";
58 uint8_t *result = u8_strconv_from_encoding (input, "ISO-8859-2", handler);
59 ASSERT (result != NULL);
60 ASSERT (u8_strcmp (result, expected) == 0);
61 free (result);
62 }
63
64
65 # if defined _LIBICONV_VERSION || !(defined _AIX || defined __sgi || defined __hpux || defined __osf__ || defined __sun)
66 if (iconv_supports_encoding ("ISO-2022-JP-2"))
67 {
68
69 for (h = 0; h < SIZEOF (handlers); h++)
70 {
71 enum iconv_ilseq_handler handler = handlers[h];
72 static const char input[] = "\244\263\244\363\244\313\244\301\244\317";
73 static const uint8_t expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257";
74 uint8_t *result = u8_strconv_from_encoding (input, "autodetect_jp", handler);
75 ASSERT (result != NULL);
76 ASSERT (u8_strcmp (result, expected) == 0);
77 free (result);
78 }
79 for (h = 0; h < SIZEOF (handlers); h++)
80 {
81 enum iconv_ilseq_handler handler = handlers[h];
82 static const char input[] = "\202\261\202\361\202\311\202\277\202\315";
83 static const uint8_t expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257";
84 uint8_t *result = u8_strconv_from_encoding (input, "autodetect_jp", handler);
85 ASSERT (result != NULL);
86 ASSERT (u8_strcmp (result, expected) == 0);
87 free (result);
88 }
89 for (h = 0; h < SIZEOF (handlers); h++)
90 {
91 enum iconv_ilseq_handler handler = handlers[h];
92 static const char input[] = "\033$B$3$s$K$A$O\033(B";
93 static const uint8_t expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257";
94 uint8_t *result = u8_strconv_from_encoding (input, "autodetect_jp", handler);
95 ASSERT (result != NULL);
96 ASSERT (u8_strcmp (result, expected) == 0);
97 free (result);
98 }
99 }
100 # endif
101
102 #endif
103
104 return 0;
105 }