- sprintf(buffer, "%s(%s)", gedcom_n, charwidth_string[enc]);
- search_node.gedcom_name = buffer;
- datum = tfind(&search_node, &encoding_mapping, node_compare);
- free(buffer);
- if (datum == NULL) {
- gedcom_error(_("No encoding defined for '%s'"), gedcom_n);
- return NULL;
+ sprintf(key, "%s(%s)", gedcom_n, charwidth_string[enc]);
+
+ node = hash_lookup(encodings, key);
+ free(key);
+ if (node) {
+ return hnode_get(node);