Changeset 1778 for libcaca


Ignore:
Timestamp:
Jun 28, 2007, 9:43:41 AM (13 years ago)
Author:
Sam Hocevar
Message:
  • Slightly nicer code in driver_x11.c.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/caca/driver_x11.c

    r1775 r1778  
    550550                          int w, int h, uint32_t attr, uint32_t ch)
    551551{
     552    static uint8_t const udlr[] =
     553    {
     554        /* 0x2500 - 0x250f: ─ . │ . . . . . . . . . ┌ . . . */
     555        0x05, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00,
     556        0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
     557        /* 0x2510 - 0x251f: ┐ . . . └ . . . ┘ . . . ├ . . . */
     558        0x14, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00,
     559        0x44, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00,
     560        /* 0x2520 - 0x252f: . . . . ┤ . . . . . . . ┬ . . . */
     561        0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00,
     562        0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
     563        /* 0x2530 - 0x253f: . . . . ┴ . . . . . . . ┼ . . . */
     564        0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00,
     565        0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00,
     566        /* 0x2540 - 0x254f: . . . . . . . . . . . . . . . . */
     567        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     568        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     569        /* 0x2550 - 0x255f: ═ ║ ╒ ╓ ╔ ╕ ╖ ╗ ╘ ╙ ╚ ╛ ╜ ╝ ╞ ╟ */
     570        0x0a, 0xa0, 0x12, 0x21, 0x22, 0x18, 0x24, 0x28,
     571        0x42, 0x81, 0x82, 0x48, 0x84, 0x88, 0x52, 0xa1,
     572        /* 0x2560 - 0x256c: ╠ ╡ ╢ ╣ ╤ ╥ ╦ ╧ ╨ ╩ ╪ ╫ ╬ */
     573        0xa2, 0x58, 0xa4, 0xa8, 0x1a, 0x25, 0x2a, 0x4a,
     574        0x85, 0x8a, 0x5a, 0xa5, 0xaa,
     575    };
     576
    552577    Display *dpy = dp->drv.p->dpy;
    553578    Pixmap px = dp->drv.p->pixmap;
     
    575600     * characters, print what cucul_utf32_to_ascii() returns. */
    576601
    577     if(ch >= 0x2500 && ch <= 0x256c)
    578     {
    579         static uint8_t const udlr[] =
    580         {
    581             /* 0x2500 - 0x250f: ─ . │ . . . . . . . . . ┌ . . . */
    582             0x05, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00,
    583             0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
    584             /* 0x2510 - 0x251f: ┐ . . . └ . . . ┘ . . . ├ . . . */
    585             0x14, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00,
    586             0x44, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00,
    587             /* 0x2520 - 0x252f: . . . . ┤ . . . . . . . ┬ . . . */
    588             0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00,
    589             0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
    590             /* 0x2530 - 0x253f: . . . . ┴ . . . . . . . ┼ . . . */
    591             0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00,
    592             0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00,
    593             /* 0x2540 - 0x254f: . . . . . . . . . . . . . . . . */
    594             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    595             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    596             /* 0x2550 - 0x255f: ═ ║ ╒ ╓ ╔ ╕ ╖ ╗ ╘ ╙ ╚ ╛ ╜ ╝ ╞ ╟ */
    597             0x0a, 0xa0, 0x12, 0x21, 0x22, 0x18, 0x24, 0x28,
    598             0x42, 0x81, 0x82, 0x48, 0x84, 0x88, 0x52, 0xa1,
    599             /* 0x2560 - 0x256c: ╠ ╡ ╢ ╣ ╤ ╥ ╦ ╧ ╨ ╩ ╪ ╫ ╬ */
    600             0xa2, 0x58, 0xa4, 0xa8, 0x1a, 0x25, 0x2a, 0x4a,
    601             0x85, 0x8a, 0x5a, 0xa5, 0xaa,
    602         };
    603 
     602    if(ch >= 0x2500 && ch <= 0x256c && udlr[ch - 0x2500])
     603    {
    604604        uint16_t D = udlr[ch - 0x2500];
    605 
    606         if(!D)
    607             goto next_try;
    608605
    609606        if(D & 0x04)
     
    658655        return;
    659656    }
    660 next_try:
    661657
    662658    switch(ch)
Note: See TracChangeset for help on using the changeset viewer.