@@ -461,15 +461,6 @@ static void *export_html3(caca_canvas_t const *cv, size_t *bytes)
int x, y, len;
int x, y, len;
int maxcols;
int maxcols;
/* The HTML table markup: less than 1000 bytes
* A line: 10 chars for "<tr></tr>\n"
* A glyph: 40 chars for "<td bgcolor=#xxxxxx><font color=#xxxxxx>"
* up to 36 chars for "<b><i><u><blink></blink></u></i></b>"
* up to 48 chars for "&#xxxxxx;", or " " (\t); far less for pure ASCII
* 12 chars for "</font></td>" */
*bytes = 1000 + cv->height * (10 + cv->width * (40 + 36 + 48 + 12));
cur = data = malloc(*bytes);
/* Table */
/* Table */
maxcols = 0;
maxcols = 0;
for(y = 0; y < cv->height; y++)
for(y = 0; y < cv->height; y++)
@@ -488,8 +479,16 @@ static void *export_html3(caca_canvas_t const *cv, size_t *bytes)
maxcols = cols;
maxcols = cols;
}
}
cur += sprintf(cur, "<table border='0' cols='%d' cellpadding='0' cellspacing='0'>\n",
maxcols);
/* The HTML table markup: less than 1000 bytes
* A line: 10 chars for "<tr></tr>\n"
* A glyph: up to 44 chars for "<td bgcolor=\"#xxxxxx\"><font color=\"#xxxxxx\">"
* up to 45 chars for "<tt><b><i><u><blink></blink></u></i></b></tt>"
* up to 9 chars for "&#xxxxxx;" (far less for pure ASCII)
* 12 chars for "</font></td>" */
*bytes = 1000 + cv->height * (10 + maxcols * (44 + 45 + 9 + 12));
cur = data = malloc(*bytes);
cur += sprintf(cur, "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
for(y = 0; y < cv->height; y++)
for(y = 0; y < cv->height; y++)
{
{
@@ -518,20 +517,21 @@ static void *export_html3(caca_canvas_t const *cv, size_t *bytes)
cur += sprintf(cur, "<td");
cur += sprintf(cur, "<td");
if(caca_attr_to_ansi_bg(lineattr[x]) < 0x10)
if(caca_attr_to_ansi_bg(lineattr[x]) < 0x10)
cur += sprintf(cur, " bgcolor=#%.06lx", (unsigned long int)
cur += sprintf(cur, " bgcolor=\" #%.06lx\" ", (unsigned long int)
_caca_attr_to_rgb24bg(lineattr[x]));
_caca_attr_to_rgb24bg(lineattr[x]));
if((len + thistab) > 1)
if((len + thistab) > 1)
cur += sprintf(cur, " colspan=%d", len + thistab);
cur += sprintf(cur, " colspan=\" %d\" ", len + thistab);
cur += sprintf(cur, ">");
cur += sprintf(cur, ">");
needfont = caca_attr_to_ansi_fg(lineattr[x]) < 0x10;
needfont = caca_attr_to_ansi_fg(lineattr[x]) < 0x10;
if(needfont)
if(needfont)
cur += sprintf(cur, "<font color=#%.06lx>", (unsigned long int)
cur += sprintf(cur, "<font color=\" #%.06lx\" >", (unsigned long int)
_caca_attr_to_rgb24fg(lineattr[x]));
_caca_attr_to_rgb24fg(lineattr[x]));
cur += sprintf(cur, "<tt>");
if(lineattr[x] & CACA_BOLD)
if(lineattr[x] & CACA_BOLD)
cur += sprintf(cur, "<b>");
cur += sprintf(cur, "<b>");
if(lineattr[x] & CACA_ITALICS)
if(lineattr[x] & CACA_ITALICS)
@@ -581,6 +581,7 @@ static void *export_html3(caca_canvas_t const *cv, size_t *bytes)
cur += sprintf(cur, "</i>");
cur += sprintf(cur, "</i>");
if(lineattr[x] & CACA_BOLD)
if(lineattr[x] & CACA_BOLD)
cur += sprintf(cur, "</b>");
cur += sprintf(cur, "</b>");
cur += sprintf(cur, "</tt>");
if(needfont)
if(needfont)
cur += sprintf(cur, "</font>");
cur += sprintf(cur, "</font>");