1typedef unsigned char byte;
2typedef unsigned int uint;
3typedef unsigned long ulong;
4typedef ulong gs_char;
5typedef struct gs_show_enum_s gs_show_enum;
6typedef struct gs_font_s gs_font;
7typedef struct gx_font_stack_item_s {
8  gs_font *font;
9} gx_font_stack_item;
10typedef struct gx_font_stack_s {
11  gx_font_stack_item items[1 + 5 ];
12} gx_font_stack;
13struct gs_show_enum_s {
14  gx_font_stack fstack;
15};
16typedef enum {
17  ft_composite = 0,
18} font_type;
19struct gs_font_s {
20  font_type FontType;
21};
22typedef enum {
23  fmap_escape = 3,
24  fmap_shift = 8
25  } fmap_type;
26typedef struct gs_type0_data_s {
27  fmap_type FMapType;
28} gs_type0_data;
29gs_type0_next_char(register gs_show_enum *penum)
30{
31  const byte *p;
32  int fdepth;
33  gs_font *pfont;
34  gs_type0_data *pdata;
35  uint fidx;
36  gs_char chr;
37  for (; pfont->FontType == ft_composite; )
38    {
39      fmap_type fmt;
40      switch ( fmt )
41	{
42	  do {} while (0);
43	rdown:
44	  continue;
45	case fmap_shift:
46	  p++;
47	  do {} while (0);
48	  goto rdown;
49	}
50      break;
51    }
52 up:
53  while ( fdepth > 0 )
54    {
55      switch ( pdata->FMapType )
56	{
57	default:
58	  continue;
59	case fmap_escape:
60	  fidx = *++p;
61	  do {} while (0);
62	  if ( fidx == chr && fdepth > 1 )
63	    goto up;
64	down:
65	  fdepth--;
66	  do {} while (0);
67	}
68      break;
69    }
70  while ( (pfont = penum->fstack.items[fdepth].font)->FontType == ft_composite )
71    ;
72}
73