Ignore:
Timestamp:
Oct 18, 2008, 11:47:35 PM (12 years ago)
Author:
Sam Hocevar
Message:

Port neercs to the unified libcaca 0.99.beta15 API.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • neercs/trunk/src/term.c

    r2615 r2995  
    2727#include <fcntl.h>
    2828
    29 #include <cucul.h>
     29#include <caca.h>
    3030#include <caca.h>
    3131
     
    9696    int x = 0, y = 0, save_x = 0, save_y = 0;
    9797
    98     width = cucul_get_canvas_width(sc->cv);
    99     height = cucul_get_canvas_height(sc->cv);
    100     x = cucul_get_cursor_x(sc->cv);
    101     y = cucul_get_cursor_y(sc->cv);
     98    width = caca_get_canvas_width(sc->cv);
     99    height = caca_get_canvas_height(sc->cv);
     100    x = caca_get_cursor_x(sc->cv);
     101    y = caca_get_cursor_y(sc->cv);
    102102
    103103    if(!sc->init)
    104104    {
    105         sc->dfg = CUCUL_DEFAULT;
    106         sc->dbg = CUCUL_DEFAULT;
    107 
    108         cucul_set_color_ansi(sc->cv, sc->dfg, sc->dbg);
    109         sc->clearattr = cucul_get_attr(sc->cv, -1, -1);
     105        sc->dfg = CACA_DEFAULT;
     106        sc->dbg = CACA_DEFAULT;
     107
     108        caca_set_color_ansi(sc->cv, sc->dfg, sc->dbg);
     109        sc->clearattr = caca_get_attr(sc->cv, -1, -1);
    110110
    111111        ansi_parse_grcm(sc, 1, &dummy);
     
    204204        else if(buffer[i] == '\x1b' && buffer[i + 1] == 'c')
    205205        {
    206             sc->dfg = CUCUL_DEFAULT;
    207             sc->dbg = CUCUL_DEFAULT;
    208 
    209             cucul_set_color_ansi(sc->cv, sc->dfg, sc->dbg);
    210             sc->clearattr = cucul_get_attr(sc->cv, -1, -1);
     206            sc->dfg = CACA_DEFAULT;
     207            sc->dbg = CACA_DEFAULT;
     208
     209            caca_set_color_ansi(sc->cv, sc->dfg, sc->dbg);
     210            sc->clearattr = caca_get_attr(sc->cv, -1, -1);
    211211            ansi_parse_grcm(sc, 1, &dummy);
    212212
     
    408408                break;
    409409            case 'J': /* ED (0x4a) - Erase In Page */
    410                 savedattr = cucul_get_attr(sc->cv, -1, -1);
    411                 cucul_set_attr(sc->cv, sc->clearattr);
     410                savedattr = caca_get_attr(sc->cv, -1, -1);
     411                caca_set_attr(sc->cv, sc->clearattr);
    412412                if(!argc || argv[0] == 0)
    413413                {
    414                     cucul_draw_line(sc->cv, x, y, width, y, ' ');
    415                     cucul_fill_box(sc->cv, 0, y + 1, width - 1, height - 1, ' ');
     414                    caca_draw_line(sc->cv, x, y, width, y, ' ');
     415                    caca_fill_box(sc->cv, 0, y + 1, width - 1, height - 1, ' ');
    416416                }
    417417                else if(argv[0] == 1)
    418418                {
    419                     cucul_fill_box(sc->cv, 0, 0, width - 1, y - 1, ' ');
    420                     cucul_draw_line(sc->cv, 0, y, x, y, ' ');
     419                    caca_fill_box(sc->cv, 0, 0, width - 1, y - 1, ' ');
     420                    caca_draw_line(sc->cv, 0, y, x, y, ' ');
    421421                }
    422422                else if(argv[0] == 2)
    423423                {
    424424                    //x = y = 0;
    425                     cucul_fill_box(sc->cv, 0, 0, width, height - 1, ' ');
    426                 }
    427                 cucul_set_attr(sc->cv, savedattr);
     425                    caca_fill_box(sc->cv, 0, 0, width, height - 1, ' ');
     426                }
     427                caca_set_attr(sc->cv, savedattr);
    428428                break;
    429429            case 'K': /* EL (0x4b) - Erase In Line */
    430430                if(!argc || argv[0] == 0)
    431                     cucul_draw_line(sc->cv, x, y, width, y, ' ');
     431                    caca_draw_line(sc->cv, x, y, width, y, ' ');
    432432                else if(argv[0] == 1)
    433                     cucul_draw_line(sc->cv, 0, y, x, y, ' ');
     433                    caca_draw_line(sc->cv, 0, y, x, y, ' ');
    434434                else if(argv[0] == 2)
    435435                    if((unsigned int)x < width)
    436                         cucul_draw_line(sc->cv, x, y, width - 1, y, ' ');
     436                        caca_draw_line(sc->cv, x, y, width - 1, y, ' ');
    437437                //x = width;
    438438                break;
     
    442442                for(j = 0; (unsigned int)(j + argv[0]) < width; j++)
    443443                {
    444                     cucul_put_char(sc->cv, j, y,
    445                                    cucul_get_char(sc->cv, j + argv[0], y));
    446                     cucul_put_attr(sc->cv, j, y,
    447                                    cucul_get_attr(sc->cv, j + argv[0], y));
     444                    caca_put_char(sc->cv, j, y,
     445                                   caca_get_char(sc->cv, j + argv[0], y));
     446                    caca_put_attr(sc->cv, j, y,
     447                                   caca_get_attr(sc->cv, j + argv[0], y));
    448448                }
    449449#if 0
    450                 savedattr = cucul_get_attr(sc->cv, -1, -1);
    451                 cucul_set_attr(sc->cv, sc->clearattr);
     450                savedattr = caca_get_attr(sc->cv, -1, -1);
     451                caca_set_attr(sc->cv, sc->clearattr);
    452452                for( ; (unsigned int)j < width; j++)
    453                     cucul_put_char(sc->cv, j, y, ' ');
    454                 cucul_set_attr(sc->cv, savedattr);
     453                    caca_put_char(sc->cv, j, y, ' ');
     454                caca_set_attr(sc->cv, savedattr);
    455455#endif
    456456            case 'X': /* ECH (0x58) - Erase Character */
    457457                if(argc && argv[0])
    458458                {
    459                     savedattr = cucul_get_attr(sc->cv, -1, -1);
    460                     cucul_set_attr(sc->cv, sc->clearattr);
    461                     cucul_draw_line(sc->cv, x, y, x + argv[0] - 1, y, ' ');
    462                     cucul_set_attr(sc->cv, savedattr);
     459                    savedattr = caca_get_attr(sc->cv, -1, -1);
     460                    caca_set_attr(sc->cv, sc->clearattr);
     461                    caca_draw_line(sc->cv, x, y, x + argv[0] - 1, y, ' ');
     462                    caca_set_attr(sc->cv, savedattr);
    463463                }
    464464            case 'd': /* VPA (0x64) - Line Position Absolute */
     
    476476                    for(k = 0; k < width; k++)
    477477                    {
    478                         cucul_put_char(sc->cv, k, j, cucul_get_char(sc->cv, k, j+1));
    479                         cucul_put_attr(sc->cv, k, j, cucul_get_attr(sc->cv, k, j+1));
     478                        caca_put_char(sc->cv, k, j, caca_get_char(sc->cv, k, j+1));
     479                        caca_put_attr(sc->cv, k, j, caca_get_attr(sc->cv, k, j+1));
    480480                    }
    481481                }
    482                 cucul_draw_line(sc->cv, 0, argv[1]-1, width, argv[1]-1, ' ');
     482                caca_draw_line(sc->cv, 0, argv[1]-1, width, argv[1]-1, ' ');
    483483                scrolled = 1;
    484484                break;
     
    560560
    561561            if(i + 6 < size)
    562                 ch = cucul_utf8_to_utf32((char const *)(buffer + i), &bytes);
     562                ch = caca_utf8_to_utf32((char const *)(buffer + i), &bytes);
    563563            else
    564564            {
     
    567567                memcpy(tmp, buffer + i, size - i);
    568568                tmp[size - i] = '\0';
    569                 ch = cucul_utf8_to_utf32(tmp, &bytes);
     569                ch = caca_utf8_to_utf32(tmp, &bytes);
    570570            }
    571571
     
    595595            sc->conv_state.ss = 0; /* no single-shift (GL) */
    596596
    597             wch = cucul_utf32_is_fullwidth(ch) ? 2 : 1;
     597            wch = caca_utf32_is_fullwidth(ch) ? 2 : 1;
    598598            skip += bytes - 1;
    599599        }
     
    611611            int lines = (y - height) + 1;
    612612
    613             savedattr = cucul_get_attr(sc->cv, -1, -1);
     613            savedattr = caca_get_attr(sc->cv, -1, -1);
    614614
    615615            for(j = 0; j + lines < height; j++)
     
    617617                for(k = 0; k < width; k++)
    618618                {
    619                     cucul_put_char(sc->cv, k, j, cucul_get_char(sc->cv, k, j + lines));
    620                     cucul_put_attr(sc->cv, k, j, cucul_get_attr(sc->cv, k, j + lines));
    621                 }
    622             }
    623             cucul_set_attr(sc->cv, sc->clearattr);
    624             cucul_fill_box(sc->cv, 0, height - lines,
     619                    caca_put_char(sc->cv, k, j, caca_get_char(sc->cv, k, j + lines));
     620                    caca_put_attr(sc->cv, k, j, caca_get_attr(sc->cv, k, j + lines));
     621                }
     622            }
     623            caca_set_attr(sc->cv, sc->clearattr);
     624            caca_fill_box(sc->cv, 0, height - lines,
    625625                                   width - 1, height - 1, ' ');
    626626            y -= lines;
    627             cucul_set_attr(sc->cv, savedattr);
     627            caca_set_attr(sc->cv, savedattr);
    628628        }
    629629
     
    631631        if(wch)
    632632        {
    633             cucul_put_char(sc->cv, x, y, ch);
     633            caca_put_char(sc->cv, x, y, ch);
    634634            x += wch;
    635635        }
    636636    }
    637637
    638     cucul_gotoxy(sc->cv, x, y);
     638    caca_gotoxy(sc->cv, x, y);
    639639
    640640    return i;
     
    663663                            unsigned int argc, unsigned int const *argv)
    664664{
    665     static uint8_t const ansi2cucul[] =
    666     {
    667         CUCUL_BLACK, CUCUL_RED, CUCUL_GREEN, CUCUL_BROWN,
    668         CUCUL_BLUE, CUCUL_MAGENTA, CUCUL_CYAN, CUCUL_LIGHTGRAY
     665    static uint8_t const ansi2caca[] =
     666    {
     667        CACA_BLACK, CACA_RED, CACA_GREEN, CACA_BROWN,
     668        CACA_BLUE, CACA_MAGENTA, CACA_CYAN, CACA_LIGHTGRAY
    669669    };
    670670
    671671    unsigned int j;
    672     uint8_t efg, ebg; /* Effective (libcucul) fg/bg */
     672    uint8_t efg, ebg; /* Effective (libcaca) fg/bg */
    673673
    674674    for(j = 0; j < argc; j++)
     
    676676        /* Defined in ECMA-48 8.3.117: SGR - SELECT GRAPHIC RENDITION */
    677677        if(argv[j] >= 30 && argv[j] <= 37)
    678             sc->fg = ansi2cucul[argv[j] - 30];
     678            sc->fg = ansi2caca[argv[j] - 30];
    679679        else if(argv[j] >= 40 && argv[j] <= 47)
    680             sc->bg = ansi2cucul[argv[j] - 40];
     680            sc->bg = ansi2caca[argv[j] - 40];
    681681        else if(argv[j] >= 90 && argv[j] <= 97)
    682             sc->fg = ansi2cucul[argv[j] - 90] + 8;
     682            sc->fg = ansi2caca[argv[j] - 90] + 8;
    683683        else if(argv[j] >= 100 && argv[j] <= 107)
    684             sc->bg = ansi2cucul[argv[j] - 100] + 8;
     684            sc->bg = ansi2caca[argv[j] - 100] + 8;
    685685        else switch(argv[j])
    686686        {
     
    773773    if(sc->concealed)
    774774    {
    775         efg = ebg = CUCUL_TRANSPARENT;
     775        efg = ebg = CACA_TRANSPARENT;
    776776    }
    777777    else
     
    784784            if(efg < 8)
    785785                efg += 8;
    786             else if(efg == CUCUL_DEFAULT)
    787                 efg = CUCUL_WHITE;
    788         }
    789     }
    790 
    791     cucul_set_color_ansi(sc->cv, efg, ebg);
     786            else if(efg == CACA_DEFAULT)
     787                efg = CACA_WHITE;
     788        }
     789    }
     790
     791    caca_set_color_ansi(sc->cv, efg, ebg);
    792792}
    793793
Note: See TracChangeset for help on using the changeset viewer.