Changeset 635 for libcaca/trunk


Ignore:
Timestamp:
Mar 16, 2006, 7:44:07 PM (15 years ago)
Author:
Sam Hocevar
Message:
  • Fixed syntax errors in the generated PostScript? document if ( ) \ or Unicode characters are encountered.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/cucul/export_ps.c

    r634 r635  
    108108        for(x = 0; x < qq->width; x++)
    109109        {
     110            uint32_t c = *linechar++;
     111
    110112            cur += sprintf(cur, "newpath\n");
    111113            cur += sprintf(cur, "%d %d moveto\n", (x + 1) * 6, y * 10);
    112114            cur += sprintf(cur, "%s setrgbcolor\n",
    113115                                palette[*lineattr++ & 0x0f]);
    114             cur += sprintf(cur, "(%c) show\n", *linechar++ & 0x7f);
     116
     117            if(c < 0x00000020)
     118                cur += sprintf(cur, "(?) show\n");
     119            else if(c >= 0x00000080)
     120                cur += sprintf(cur, "(?) show\n");
     121            else switch((uint8_t)(c & 0x7f))
     122            {
     123                case '\\': cur += sprintf(cur, "(\\\\) show\n"); break;
     124                case '(': cur += sprintf(cur, "(\\() show\n"); break;
     125                case ')':
     126                    cur += sprintf(cur, "(\\%c) show\n", c);
     127                    break;
     128                default:
     129                    cur += sprintf(cur, "(%c) show\n", c);
     130                    break;
     131            }
    115132        }
    116133    }
Note: See TracChangeset for help on using the changeset viewer.