3 Free Software Foundation, Inc.
4 Written by Werner Lemberg <wl@gnu.org>
6 This file is part of groff.
8 groff is free software; you can redistribute it and/or modify it under
9 the terms of the GNU General Public License as published by the Free
10 Software Foundation; either version 2, or (at your option) any later
13 groff is distributed in the hope that it will be useful, but WITHOUT ANY
14 WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
18 You should have received a copy of the GNU General Public License along
19 with groff; see the file COPYING. If not, write to the Free Software
20 Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
23 #include "stringclass.h"
28 struct glyph_to_unicode
{
32 declare_ptable(glyph_to_unicode
)
33 implement_ptable(glyph_to_unicode
)
35 PTABLE(glyph_to_unicode
) glyph_to_unicode_table
;
40 } glyph_to_unicode_list
[] = {
125 { "ff", "0066_0066" },
126 { "Fi", "0066_0066_0069" },
127 { "Fl", "0066_0066_006C" },
128 { "fi", "0066_0069" },
129 { "fl", "0066_006C" },
381 { "product", "220F" },
443 // global constructor
444 static struct glyph_to_unicode_init
{
445 glyph_to_unicode_init();
446 } _glyph_to_unicode_init
;
448 glyph_to_unicode_init::glyph_to_unicode_init() {
449 for (unsigned int i
= 0;
450 i
< sizeof(glyph_to_unicode_list
)/sizeof(glyph_to_unicode_list
[0]);
452 glyph_to_unicode
*gtu
= new glyph_to_unicode
;
453 gtu
->value
= glyph_to_unicode_list
[i
].value
;
454 glyph_to_unicode_table
.define(glyph_to_unicode_list
[i
].key
, gtu
);
458 const char *glyph_name_to_unicode(const char *s
)
460 glyph_to_unicode
*result
= glyph_to_unicode_table
.lookup(s
);
461 return result
? result
->value
: 0;