Lines Matching refs:scheme
64 * Type for mapping scheme.
122 map_scheme_t **scheme;
135 for (scheme = (map_scheme_t **)standard_map_schemes;
136 *scheme != NULL; scheme++) {
137 r = idn__strhash_put(scheme_hash, (*scheme)->prefix, *scheme);
228 map_scheme_t *scheme;
265 * Find a scheme.
267 if (idn__strhash_get(scheme_hash, scheme_prefix, (void **)&scheme)
269 ERROR(("idn_mapper_add(): invalid scheme name \"%-.30s\"\n",
275 if (scheme->parameter != NULL)
276 scheme_parameter = scheme->parameter;
278 scheme_parameter = scheme->prefix;
282 * Add the scheme.
299 r = scheme->create(scheme_parameter, &scheme_context);
303 memcpy(ctx->schemes + ctx->nschemes, scheme, sizeof(map_scheme_t));
407 * Perform i-th map scheme.
442 map_scheme_t *scheme = NULL;
450 scheme = (map_scheme_t *) malloc(sizeof(map_scheme_t));
451 if (scheme == NULL) {
456 scheme->prefix = (char *) malloc(strlen(prefix) + 1);
457 if (scheme->prefix == NULL) {
462 strcpy(scheme->prefix, prefix);
463 scheme->parameter = NULL;
464 scheme->create = create;
465 scheme->destroy = destroy;
466 scheme->map = map;
468 r = idn__strhash_put(scheme_hash, prefix, scheme);
475 if (scheme != NULL)
476 free(scheme->prefix);
477 free(scheme);