/* [<][>][^][v][top][bottom][index][help] */
DEFINITIONS
This source file includes following definitions.
- convlib_ces_conversion_supportedP
- convlib_open_input_conversion_port
- convlib_open_output_conversion_port
- convlib_ces_guess_from_string
- Scm_Init_convlib
1 /* Generated by genstub. Do not edit. */
2 #include <gauche.h>
3 #if defined(__CYGWIN__) || defined(__MINGW32__)
4 #define SCM_CGEN_CONST /*empty*/
5 #else
6 #define SCM_CGEN_CONST const
7 #endif
8 #include "charconv.h"
9 static ScmObj convlib_ces_conversion_supportedP(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
10 {
11 ScmObj from_scm;
12 ScmObj from;
13 ScmObj to_scm;
14 ScmObj to;
15 SCM_ENTER_SUBR("ces-conversion-supported?");
16 from_scm = SCM_ARGREF(0);
17 from = (from_scm);
18 to_scm = SCM_ARGREF(1);
19 to = (to_scm);
20 {
21 {
22 int SCM_RESULT;
23 const char *cfrom = Scm_GetCESName(from, "from-code");
24 const char *cto = Scm_GetCESName(to, "to-code");
25 SCM_RESULT = Scm_ConversionSupportedP(cfrom, cto);
26 SCM_RETURN(SCM_MAKE_BOOL(SCM_RESULT));
27 }
28 }
29 }
30
31 static SCM_DEFINE_STRING_CONST(convlib_ces_conversion_supportedP__NAME, "ces-conversion-supported?", 25, 25);
32 static SCM_DEFINE_SUBR(convlib_ces_conversion_supportedP__STUB, 2, 0, SCM_OBJ(&convlib_ces_conversion_supportedP__NAME), convlib_ces_conversion_supportedP, NULL, NULL);
33
34 static SCM_DEFINE_STRING_CONST(KEYARG_to_code__NAME, "to-code", 7, 7);
35 static ScmObj KEYARG_to_code = SCM_UNBOUND;
36 static SCM_DEFINE_STRING_CONST(KEYARG_buffer_size__NAME, "buffer-size", 11, 11);
37 static ScmObj KEYARG_buffer_size = SCM_UNBOUND;
38 static SCM_DEFINE_STRING_CONST(KEYARG_ownerP__NAME, "owner?", 6, 6);
39 static ScmObj KEYARG_ownerP = SCM_UNBOUND;
40 static SCM_DEFINE_STRING_CONST(KEYARG_handler__NAME, "handler", 7, 7);
41 static ScmObj KEYARG_handler = SCM_UNBOUND;
42 static ScmObj convlib_open_input_conversion_port(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
43 {
44 ScmObj source_scm;
45 ScmPort* source;
46 ScmObj from_code_scm;
47 ScmObj from_code;
48 ScmObj to_code_scm;
49 ScmObj to_code;
50 ScmObj buffer_size_scm;
51 int buffer_size;
52 ScmObj ownerP_scm;
53 ScmObj ownerP;
54 ScmObj handler_scm;
55 ScmObj handler;
56 ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
57 SCM_ENTER_SUBR("open-input-conversion-port");
58 source_scm = SCM_ARGREF(0);
59 if (!SCM_IPORTP(source_scm)) Scm_Error("input port required, but got %S", source_scm);
60 source = SCM_PORT(source_scm);
61 from_code_scm = SCM_ARGREF(1);
62 from_code = (from_code_scm);
63 to_code_scm = Scm_GetKeyword(SCM_OBJ(KEYARG_to_code), SCM_OPTARGS, SCM_FALSE);
64 to_code = (to_code_scm);
65 buffer_size_scm = Scm_GetKeyword(SCM_OBJ(KEYARG_buffer_size), SCM_OPTARGS, Scm_MakeInteger(0));
66 if (!SCM_INTP(buffer_size_scm)) Scm_Error("small integer required, but got %S", buffer_size_scm);
67 buffer_size = SCM_INT_VALUE(buffer_size_scm);
68 ownerP_scm = Scm_GetKeyword(SCM_OBJ(KEYARG_ownerP), SCM_OPTARGS, SCM_FALSE);
69 ownerP = (ownerP_scm);
70 handler_scm = Scm_GetKeyword(SCM_OBJ(KEYARG_handler), SCM_OPTARGS, SCM_FALSE);
71 handler = (handler_scm);
72 {
73 {
74 ScmObj SCM_RESULT;
75 const char *fc = Scm_GetCESName(from_code, "from-code");
76 const char *tc = Scm_GetCESName(to_code, "to-code");
77 SCM_RESULT =
78 Scm_MakeInputConversionPort(source, fc, tc, handler, buffer_size,
79 !SCM_FALSEP(ownerP));
80 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
81 }
82 }
83 }
84
85 static SCM_DEFINE_STRING_CONST(convlib_open_input_conversion_port__NAME, "open-input-conversion-port", 26, 26);
86 static SCM_DEFINE_SUBR(convlib_open_input_conversion_port__STUB, 2, 1, SCM_OBJ(&convlib_open_input_conversion_port__NAME), convlib_open_input_conversion_port, NULL, NULL);
87
88 static SCM_DEFINE_STRING_CONST(KEYARG_from_code__NAME, "from-code", 9, 9);
89 static ScmObj KEYARG_from_code = SCM_UNBOUND;
90 static ScmObj convlib_open_output_conversion_port(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
91 {
92 ScmObj sink_scm;
93 ScmPort* sink;
94 ScmObj to_code_scm;
95 ScmObj to_code;
96 ScmObj from_code_scm;
97 ScmObj from_code;
98 ScmObj buffer_size_scm;
99 int buffer_size;
100 ScmObj ownerP_scm;
101 ScmObj ownerP;
102 ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
103 SCM_ENTER_SUBR("open-output-conversion-port");
104 sink_scm = SCM_ARGREF(0);
105 if (!SCM_OPORTP(sink_scm)) Scm_Error("output port required, but got %S", sink_scm);
106 sink = SCM_PORT(sink_scm);
107 to_code_scm = SCM_ARGREF(1);
108 to_code = (to_code_scm);
109 from_code_scm = Scm_GetKeyword(SCM_OBJ(KEYARG_from_code), SCM_OPTARGS, SCM_FALSE);
110 from_code = (from_code_scm);
111 buffer_size_scm = Scm_GetKeyword(SCM_OBJ(KEYARG_buffer_size), SCM_OPTARGS, Scm_MakeInteger(0));
112 if (!SCM_INTP(buffer_size_scm)) Scm_Error("small integer required, but got %S", buffer_size_scm);
113 buffer_size = SCM_INT_VALUE(buffer_size_scm);
114 ownerP_scm = Scm_GetKeyword(SCM_OBJ(KEYARG_ownerP), SCM_OPTARGS, SCM_FALSE);
115 ownerP = (ownerP_scm);
116 {
117 {
118 ScmObj SCM_RESULT;
119 const char *fc = Scm_GetCESName(from_code, "from-code");
120 const char *tc = Scm_GetCESName(to_code, "to-code");
121 SCM_RESULT =
122 Scm_MakeOutputConversionPort(sink, tc, fc, buffer_size,
123 !SCM_FALSEP(ownerP));
124 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
125 }
126 }
127 }
128
129 static SCM_DEFINE_STRING_CONST(convlib_open_output_conversion_port__NAME, "open-output-conversion-port", 27, 27);
130 static SCM_DEFINE_SUBR(convlib_open_output_conversion_port__STUB, 2, 1, SCM_OBJ(&convlib_open_output_conversion_port__NAME), convlib_open_output_conversion_port, NULL, NULL);
131
132 static ScmObj convlib_ces_guess_from_string(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
133 {
134 ScmObj string_scm;
135 ScmString* string;
136 ScmObj scheme_scm;
137 ScmString* scheme;
138 SCM_ENTER_SUBR("ces-guess-from-string");
139 string_scm = SCM_ARGREF(0);
140 if (!SCM_STRINGP(string_scm)) Scm_Error("string required, but got %S", string_scm);
141 string = SCM_STRING(string_scm);
142 scheme_scm = SCM_ARGREF(1);
143 if (!SCM_STRINGP(scheme_scm)) Scm_Error("string required, but got %S", scheme_scm);
144 scheme = SCM_STRING(scheme_scm);
145 {
146 {
147 ScmObj SCM_RESULT;
148 u_int size;
149 const char *s = Scm_GetStringContent(string, &size, NULL, NULL);
150 const char *guessed = Scm_GuessCES(Scm_GetStringConst(scheme),
151 s, size);
152 if (guessed) SCM_RESULT = SCM_MAKE_STR(guessed);
153 else SCM_RESULT = SCM_FALSE;
154 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
155 }
156 }
157 }
158
159 static SCM_DEFINE_STRING_CONST(convlib_ces_guess_from_string__NAME, "ces-guess-from-string", 21, 21);
160 static SCM_DEFINE_SUBR(convlib_ces_guess_from_string__STUB, 2, 0, SCM_OBJ(&convlib_ces_guess_from_string__NAME), convlib_ces_guess_from_string, NULL, NULL);
161
162 void Scm_Init_convlib(ScmModule *module)
163 {
164
165 SCM_DEFINE(module, "ces-guess-from-string", SCM_OBJ(&convlib_ces_guess_from_string__STUB));
166 KEYARG_from_code = Scm_MakeKeyword(&KEYARG_from_code__NAME);
167 SCM_DEFINE(module, "open-output-conversion-port", SCM_OBJ(&convlib_open_output_conversion_port__STUB));
168 KEYARG_handler = Scm_MakeKeyword(&KEYARG_handler__NAME);
169 KEYARG_ownerP = Scm_MakeKeyword(&KEYARG_ownerP__NAME);
170 KEYARG_buffer_size = Scm_MakeKeyword(&KEYARG_buffer_size__NAME);
171 KEYARG_to_code = Scm_MakeKeyword(&KEYARG_to_code__NAME);
172 SCM_DEFINE(module, "open-input-conversion-port", SCM_OBJ(&convlib_open_input_conversion_port__STUB));
173 SCM_DEFINE(module, "ces-conversion-supported?", SCM_OBJ(&convlib_ces_conversion_supportedP__STUB));
174 }