Tidy up the handling of non-standard glyphs by defining glyph_extern()
authorben <ben@cda61777-01e9-0310-a592-d414129be87e>
Sun, 4 Feb 2007 14:16:26 +0000 (14:16 +0000)
committerben <ben@cda61777-01e9-0310-a592-d414129be87e>
Sun, 4 Feb 2007 14:16:26 +0000 (14:16 +0000)
early and using it whenever we need the name of a non-standard glyph.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@7216 cda61777-01e9-0310-a592-d414129be87e

psdata.c

index 7160587..8a01641 100644 (file)
--- a/psdata.c
+++ b/psdata.c
@@ -1125,15 +1125,22 @@ char const **extraglyphs = NULL;
 glyph nextglyph = lenof(ps_glyphs_alphabetic);
 tree234 *extrabyname = NULL;
 
+char const *glyph_extern(glyph glyph) {
+    if (glyph == NOGLYPH) return ".notdef";
+    if (glyph < lenof(ps_glyphs_alphabetic))
+       return ps_glyphs_alphabetic[glyph];
+    else
+       return extraglyphs[glyph - lenof(ps_glyphs_alphabetic)];
+}
+
 static int glyphcmp(void *a, void *b) {
     glyph ga = *(glyph *)a, gb = *(glyph *)b;
-    return strcmp(extraglyphs[ga - lenof(ps_glyphs_alphabetic)],
-                 extraglyphs[gb - lenof(ps_glyphs_alphabetic)]);
+    return strcmp(glyph_extern(ga), glyph_extern(gb));
 }
 
 static int glyphcmp_search(void *a, void *b) {
     glyph gb = *(glyph *)b;
-    return strcmp(a, extraglyphs[gb - lenof(ps_glyphs_alphabetic)]);
+    return strcmp(a, glyph_extern(gb));
 }
 
 glyph glyph_intern(char const *glyphname) {
@@ -1170,14 +1177,6 @@ glyph glyph_intern(char const *glyphname) {
     return k;
 }
 
-char const *glyph_extern(glyph glyph) {
-    if (glyph == NOGLYPH) return ".notdef";
-    if (glyph < lenof(ps_glyphs_alphabetic))
-       return ps_glyphs_alphabetic[glyph];
-    else
-       return extraglyphs[glyph - lenof(ps_glyphs_alphabetic)];
-}
-
 /* ----------------------------------------------------------------------
  * Mapping between PS character names (/aacute, /zcaron etc) and
  * Unicode code points.