Lines Matching refs:scheme
62 * Type for checking scheme.
150 check_scheme_t **scheme;
164 for (scheme = (check_scheme_t **)standard_check_schemes;
165 *scheme != NULL; scheme++) {
166 r = idn__strhash_put(scheme_hash, (*scheme)->prefix, *scheme);
258 check_scheme_t *scheme;
293 * Find a scheme.
295 if (idn__strhash_get(scheme_hash, scheme_prefix, (void **)&scheme)
297 ERROR(("idn_checker_add(): invalid scheme \"%-.30s\"\n",
302 if (scheme_parameter == NULL && scheme->parameter != NULL)
303 scheme_parameter = scheme->parameter;
306 * Add the scheme.
323 r = scheme->create(scheme_parameter, &scheme_context);
327 memcpy(ctx->schemes + ctx->nschemes, scheme, sizeof(check_scheme_t));
411 check_scheme_t *scheme = NULL;
419 scheme = (check_scheme_t *) malloc(sizeof(check_scheme_t));
420 if (scheme == NULL) {
425 scheme->prefix = (char *) malloc(strlen(prefix) + 1);
426 if (scheme->prefix == NULL) {
431 strcpy(scheme->prefix, prefix);
432 scheme->parameter = NULL;
433 scheme->create = create;
434 scheme->destroy = destroy;
435 scheme->lookup = lookup;
437 r = idn__strhash_put(scheme_hash, prefix, scheme);
440 if (scheme != NULL)
441 free(scheme->prefix);
442 free(scheme);