free((genericptr_t) g.symset[which_set].name);
g.symset[which_set].name = (char *) 0;
}
+#ifdef ENHANCED_SYMBOLS
+ free_all_glyphmap_u();
+ purge_custom_entries(which_set);
+#endif
}
boolean symset_is_compatible(enum symset_handling_types handling, unsigned long wincap2)
symp = match_sym(buf);
if (!symp && buf[0] == 'G' && buf[1] == '_') {
#ifdef ENHANCED_SYMBOLS
- is_glyph = match_glyph(buf);
+ if (g.chosen_symset_start) {
+ is_glyph = match_glyph(buf);
+ } else {
+ is_glyph = TRUE; /* report error only once */
+ }
#else
enhanced_unavailable = TRUE;
#endif
}
#ifdef ENHANCED_SYMBOLS
} else {
- glyphrep_to_custom_map_entries(buf, &glyph);
+ if (g.chosen_symset_start) {
+ glyphrep_to_custom_map_entries(buf, &glyph);
+ }
#endif
}
}
struct customization_detail *details;
if (g.symset[which_set].handling == H_UTF8
- && g.sym_customizations[UNICODESET].count
- && g.sym_customizations[UNICODESET].details) {
+ && g.sym_customizations[which_set].count
+ && g.sym_customizations[which_set].details) {
/* These UTF-8 customizations get applied to the glyphmap array,
not to symset entries */
- details = g.sym_customizations[UNICODESET].details;
+ details = g.sym_customizations[which_set].details;
while (details) {
gm = &glyphmap[details->content.urep.glyphidx];
(void) set_map_u(gm,
(findwhat->color != 0L) ? findwhat->color : 0L);
#endif
add_custom_urep_entry(known_handling[H_UTF8], glyph,
- uval, utf8str, findwhat->color, UNICODESET);
+ uval, utf8str, findwhat->color, g.symset_which_set);
}
}