19
rcc_context rccInitContext(rcc_init_flags flags, unsigned int max_languages, unsigned int max_classes, const char *locale) {
21
rcc_context rccCreateContext(rcc_init_flags flags, unsigned int max_languages, unsigned int max_classes, const char *locale) {
109
111
rccRegisterLanguage(ctx, rcc_default_languages);
110
112
ctx->current_config = NULL;
115
for (i=0;i<RCC_MAX_OPTIONS;i++)
118
ctx->configuration_lock = 0;
113
119
ctx->configure = 1;
172
int rccLockConfiguration(rcc_context ctx, unsigned int lock_code) {
174
if (ctx->configuration_lock) return -3;
175
ctx->configuration_lock = lock_code;
179
int rccUnlockConfiguration(rcc_context ctx, unsigned int lock_code) {
181
if (ctx->configuration_lock != lock_code) return -3;
182
ctx->configuration_lock = 0;
166
186
rcc_language_id rccRegisterLanguage(rcc_context ctx, rcc_language *language) {
167
187
if ((!ctx)||(!language)) return -1;
188
if (ctx->configuration_lock) return -3;
168
190
if (ctx->n_languages == ctx->max_languages) return -2;
169
191
ctx->languages[ctx->n_languages++] = language;
170
192
ctx->languages[ctx->n_languages] = NULL;
214
236
rcc_class_id rccRegisterClass(rcc_context ctx, rcc_class *cl) {
215
237
if ((!ctx)||(!cl)) return -1;
238
if (ctx->configuration_lock) return -3;
216
239
if (ctx->n_classes == ctx->max_classes) return -2;
217
241
ctx->configure = 1;
218
242
ctx->classes[ctx->n_languages++] = cl;
219
243
ctx->classes[ctx->n_languages] = NULL;
227
251
return ctx->classes[class_id]->class_type;
230
static rcc_language_ptr *rccGetLanguageList(rcc_context ctx) {
231
if (!ctx) return NULL;
232
return ctx->languages;
235
static rcc_charset *rccGetCharsetList(rcc_context ctx, rcc_language_id language_id) {
236
if ((!ctx)||(language_id<0)||(language_id>=ctx->n_languages)) return NULL;
237
return ctx->languages[language_id]->charsets;
240
static rcc_engine_ptr *rccGetEngineList(rcc_context ctx, rcc_language_id language_id) {
241
if ((!ctx)||(language_id<0)||(language_id>=ctx->n_languages)) return NULL;
242
return ctx->languages[language_id]->engines;
245
static rcc_charset *rccGetCurrentCharsetList(rcc_context ctx) {
246
rcc_language_id language_id;
248
if (!ctx) return NULL;
250
language_id = rccGetCurrentLanguage(ctx);
251
if (language_id<0) return NULL;
253
return rccGetCharsetList(ctx, language_id);
256
static rcc_engine_ptr *rccGetCurrentEngineList(rcc_context ctx) {
257
rcc_language_id language_id;
259
if (!ctx) return NULL;
261
language_id = rccGetCurrentLanguage(ctx);
262
if (language_id<0) return NULL;
264
return rccGetEngineList(ctx, language_id);
267
static rcc_charset *rccGetCurrentAutoCharsetList(rcc_context ctx) {
268
rcc_language_id language_id;
269
rcc_engine_id engine_id;
271
if (!ctx) return NULL;
273
language_id = rccGetCurrentLanguage(ctx);
274
engine_id = rccGetCurrentEngine(ctx);
275
if ((language_id<0)||(engine_id<0)) return NULL;
278
return ctx->languages[language_id]->engines[engine_id]->charsets;
282
255
int rccConfigure(rcc_context ctx) {