typedef idn_biditype_t (*nameprep_biditypeproc)(PRUint32 v); static struct idn_nameprep { char *version; nameprep_mapproc map_proc; nameprep_checkproc prohibited_proc; nameprep_checkproc unassigned_proc; nameprep_biditypeproc biditype_proc; } nameprep_versions[] = { #define MAKE_NAMEPREP_HANDLE(version, id) \ { version, \ compose_sym2(nameprep_map_, id), \ compose_sym2(nameprep_prohibited_, id), \ compose_sym2(nameprep_unassigned_, id), \ compose_sym2(nameprep_biditype_, id), } MAKE_NAMEPREP_HANDLE("nameprep-11", id11), { NULL, NULL, NULL, NULL, NULL }, }; static idn_result_t idn_nameprep_check(nameprep_checkproc proc, const PRUint32 *str, const PRUint32 **found); idn_result_t idn_nameprep_create(const char *version, idn_nameprep_t *handlep) { idn_nameprep_t handle; assert(handlep != NULL); TRACE(("idn_nameprep_create(version=%-.50s)\n", version == NULL ? "<NULL>" : version));
typedef idn_biditype_t (*nameprep_biditypeproc)(unsigned long v); static struct idn_nameprep { char *version; nameprep_mapproc map_proc; nameprep_checkproc prohibited_proc; nameprep_checkproc unassigned_proc; nameprep_biditypeproc biditype_proc; } nameprep_versions[] = { #define MAKE_NAMEPREP_HANDLE(version, id) \ { version, \ compose_sym2(nameprep_map_, id), \ compose_sym2(nameprep_prohibited_, id), \ compose_sym2(nameprep_unassigned_, id), \ compose_sym2(nameprep_biditype_, id), } MAKE_NAMEPREP_HANDLE("RFC3491", rfc3491), { NULL, NULL, NULL }, }; static idn_result_t idn_nameprep_check(nameprep_checkproc proc, const unsigned long *str, const unsigned long **found); idn_result_t idn_nameprep_create(const char *version, idn_nameprep_t *handlep) { idn_nameprep_t handle; assert(handlep != NULL); TRACE(("idn_nameprep_create(version=%-.50s)\n", version == NULL ? "<NULL>" : version));