Hi Tomas, now I experimented a little with the glyphs. I would suggest that we use an 'idx' instead of an 'assoc' list, as there might be quite a lot of entries.
So I put "glyphlist.txt" in "lib/", and this code in the beginning of "lib/ps.l": # *PsGlyph (in "lib/glyphlist.txt" (use (L C) (while (setq L (line)) (unless (= '"#" (car L)) (setq L (split L '";") C (char (hex (pack (cadr L)))) L (pack (car L)) ) (if (idx '*PsGlyph C T) (push (car @) L) (set C (cons L)) ) ) ) ) ) (====) # "*PgX" "*PgY" # "*DX" "*DY" "*Pos" "*Fonts" "*Size" "*Font" "*Pag" "*Lim" "*FF" "*UL" ... This uses the characters directly as indexes into the tree (no numeric conversion is needed later), and stores the glyph names in the values of these transient symbols. But now there are two things I don't understand: 1. You concatenated all names for glyphs with identical character code into a single entry: > (let A (assoc H *PsGlyph) > (if A > (con A (cons G (cdr A))) > (push '*PsGlyph (list H G)) ) ) ) ) ) ) ) This is the case, for example, in space;0020 spacehackarabic;0020 I'm doing the same above (the 'push'). But does that really make sense? This would print all the names of a glyph when its character code is processed. 2. There are entries in "glyphlist.txt" that have more than one numeric value following the semicolon, like lamedholamdagesh;05DC 05B9 05BC What do these numbers mean? How is the resulting unicode to be calculated? You wrote > H (hex (pack (tail (- I) L))) ) but this surely won't work in such a multi-value case, right? I tried it with the "app/" demo application. The german umlauts show up correctly (even without using "bin/lat1"). But if I try the Russian locale, it seems that all characters within a string are printed one over the other, all on the same spot. What might be the reason? I attach an experimental version of "lib/ps.l". For now, it simply outputs the glyph name and 'glypshow' for any characters (i.e. also for ASCII characters). I'll optimize that later. Cheers, - Alex -- UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe