X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=sympathy.git;a=blobdiff_plain;f=src%2Fhtml.c;h=a255bb0047e869582da684a2f3934047dde9ef06;hp=d5798cca439647c6e50a6f7117af52ee16da0871;hb=ff7ed8bbe26da10e27fa2628919f2017d760d94c;hpb=0793c5beab6d4123b31aee6b9feb7da9c3b0e40e diff --git a/src/html.c b/src/html.c index d5798cc..a255bb0 100644 --- a/src/html.c +++ b/src/html.c @@ -1,4 +1,4 @@ -/* +/* * html.c: * * Copyright (c) 2008 James McKenzie , @@ -6,10 +6,34 @@ * */ -static char rcsid[] = "$Id$"; +static char rcsid[] = "$Id: html.c,v 1.15 2008/03/07 13:16:02 james Exp $"; -/* - * $Log$ +/* + * $Log: html.c,v $ + * Revision 1.15 2008/03/07 13:16:02 james + * *** empty log message *** + * + * Revision 1.14 2008/03/07 12:37:04 james + * *** empty log message *** + * + * Revision 1.13 2008/03/06 16:49:39 james + * *** empty log message *** + * + * Revision 1.12 2008/03/06 16:49:05 james + * *** empty log message *** + * + * Revision 1.11 2008/03/03 06:04:42 james + * *** empty log message *** + * + * Revision 1.10 2008/03/02 10:37:56 james + * *** empty log message *** + * + * Revision 1.9 2008/02/27 09:42:22 james + * *** empty log message *** + * + * Revision 1.8 2008/02/27 01:52:38 james + * *** empty log message *** + * * Revision 1.7 2008/02/27 01:52:08 james * *** empty log message *** * @@ -62,30 +86,29 @@ static int colormap[] = { static void html_entity (FILE * f, int c) { - switch (c) - { - case 32: - fprintf (f, " "); - break; - case 38: - fprintf (f, "&"); - break; - case 60: - fprintf (f, "<"); - break; - case 62: - fprintf (f, ">"); - break; - default: - - if ((c>=32) &&(c<127)) { + switch (c) { + case 32: + fprintf (f, " "); + break; + case 38: + fprintf (f, "&"); + break; + case 60: + fprintf (f, "<"); + break; + case 62: + fprintf (f, ">"); + break; + default: + + if ((c >= 32) && (c < 127)) { fputc (c, f); - } else if (c>127) { - fprintf (f, "&#x%04x;",c); - } else { - fputc(' ',f); - } + } else if (c > 127) { + fprintf (f, "&#x%04x;", c); + } else { + fputc (' ', f); } + } } static void @@ -93,18 +116,15 @@ html_render (FILE * f, CRT_CA c) { int fg, bg; - if (c.attr & CRT_ATTR_REVERSE) - { - fg = CRT_COLOR_BG (c.color); - bg = CRT_COLOR_FG (c.color); - } - else - { - fg = CRT_COLOR_FG (c.color); - bg = CRT_COLOR_BG (c.color); - if (c.attr & CRT_ATTR_BOLD) - fg |= CRT_COLOR_INTENSITY; - } + if (c.attr & CRT_ATTR_REVERSE) { + fg = CRT_COLOR_BG (c.color); + bg = CRT_COLOR_FG (c.color); + } else { + fg = CRT_COLOR_FG (c.color); + bg = CRT_COLOR_BG (c.color); + if (c.attr & CRT_ATTR_BOLD) + fg |= CRT_COLOR_INTENSITY; + } #ifdef CSS fprintf (f, "", colormap[fg], colormap[bg]); @@ -125,10 +145,9 @@ html_render (FILE * f, CRT_CA c) fprintf (f, ""); if (c.attr & CRT_ATTR_UNDERLINE) fprintf (f, ""); - if (c.attr & CRT_ATTR_REVERSE) - { - fprintf (f, ""); - } + if (c.attr & CRT_ATTR_REVERSE) { + fprintf (f, ""); + } #ifdef CSS fprintf (f, ""); #else @@ -148,22 +167,20 @@ html_draw (FILE * f, CRT * c) #else fprintf (f, "\n"); #endif - for (p.y = 0; p.y < CRT_ROWS; ++p.y) - { - o = CRT_ADDR (p.y, 0); + for (p.y = 0; p.y < c->size.y; ++p.y) { + o = CRT_ADDR (p.y, 0); #ifndef CSS - fprintf (f, ""); + fprintf (f, ""); #endif - for (p.x = 0; p.x < CRT_COLS; ++p.x, ++o) - { - html_render (f, c->screen[o]); - } + for (p.x = 0; p.x < c->size.x; ++p.x, ++o) { + html_render (f, c->screen[o]); + } #ifdef CSS - fprintf (f, "\n"); + fprintf (f, "\n"); #else - fprintf (f, "\n"); + fprintf (f, "\n"); #endif - } + } #ifdef CSS fprintf (f, "\n"); #else @@ -172,10 +189,11 @@ html_draw (FILE * f, CRT * c) } -static void +static int html_one_shot (ANSI * a, CRT * c) { html_draw (a->file, c); + return 0; } @@ -190,7 +208,7 @@ ansi_new_html (FILE * f) { ANSI *ret; - ret = malloc (sizeof (ANSI)); + ret = xmalloc (sizeof (ANSI)); memset (ret, 0, sizeof (ANSI)); ret->file = f;