Ignore:
Timestamp:
Nov 12, 2006, 10:29:31 PM (16 years ago)
Author:
Sam Hocevar
Message:
  • When importing an utf-8 file, set background and foreground colours to the nearest ANSI values for the current attribute. When importing an ANSI file, force them to lightgray on black.
File:
1 edited

Legend:

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

    r1362 r1378  
    4747    uint8_t fg, bg;   /* ANSI-context fg/bg */
    4848    uint8_t efg, ebg; /* Effective (libcucul) fg/bg */
     49    uint8_t dfg, dbg; /* Default fg/bg */
    4950    uint8_t bold, negative, concealed;
    5051};
     
    354355
    355356    cucul_set_canvas_size(cv, width, height);
     357    if(utf8)
     358    {
     359        grcm.dfg = cucul_attr_to_ansi_fg(cv->curattr);
     360        grcm.dbg = cucul_attr_to_ansi_bg(cv->curattr);
     361    }
     362    else
     363    {
     364        grcm.dfg = CUCUL_LIGHTGRAY;
     365        grcm.dbg = CUCUL_BLACK;
     366        cucul_set_color_ansi(cv, grcm.dfg, grcm.dbg);
     367    }
     368
    356369    ansi_parse_grcm(cv, &grcm, 1, &dummy);
    357370
     
    479492            case 'K': /* EL - Erase In Line */
    480493                if(width < 80)
    481                     cucul_set_color_ansi(cv, CUCUL_DEFAULT, CUCUL_TRANSPARENT);
     494                    cucul_set_color_ansi(cv, grcm.dfg, grcm.dbg);
    482495                    cucul_set_canvas_size(cv, width = 80, height);
    483496                for(j = x; j < 80; j++)
     
    529542        if((unsigned int)x + wch > width)
    530543        {
    531             cucul_set_color_ansi(cv, CUCUL_DEFAULT, CUCUL_TRANSPARENT);
     544            cucul_set_color_ansi(cv, grcm.dfg, grcm.dbg);
    532545            cucul_set_canvas_size(cv, width = x + wch, height);
    533546        }
     
    535548        if((unsigned int)y >= height)
    536549        {
    537             cucul_set_color_ansi(cv, CUCUL_DEFAULT, CUCUL_TRANSPARENT);
     550            cucul_set_color_ansi(cv, grcm.dfg, grcm.dbg);
    538551            cucul_set_canvas_size(cv, width, height = y + 1);
    539552        }
     
    547560    if((unsigned int)y > height)
    548561    {
    549         cucul_set_color_ansi(cv, CUCUL_DEFAULT, CUCUL_TRANSPARENT);
     562        cucul_set_color_ansi(cv, grcm.dfg, grcm.dbg);
    550563        cucul_set_canvas_size(cv, width, height = y);
    551564    }
     
    581594        {
    582595        case 0: /* default rendition */
    583             g->fg = CUCUL_DEFAULT;
    584             g->bg = CUCUL_TRANSPARENT;
     596            g->fg = g->dfg;
     597            g->bg = g->dbg;
    585598            g->bold = g->negative = g->concealed = 0;
    586599            break;
     
    605618            break;
    606619        case 39: /* default display colour (implementation-defined) */
    607             g->fg = CUCUL_DEFAULT;
     620            g->fg = g->dfg;
    608621            break;
    609622        case 49: /* default background colour (implementation-defined) */
    610             g->bg = CUCUL_TRANSPARENT;
     623            g->bg = g->dbg;
    611624            break;
    612625        default:
Note: See TracChangeset for help on using the changeset viewer.