#ifndef   ANSISCRN

#define   ANSISCRN

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *       ANSISCRN.H
 *
 *       #include implementation of ANSI screen control codes
 *            Contributed to the public domain 12-26-91 by
 *              Matthew J. Glass.
 *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#include   <stdio.h>


#define   ESC                  27

#define   ANSI_cup(a,b)        printf("%c[%d;%dH",ESC,a,b)

#define   ANSI_up(a)           printf("%c[%dA",ESC,a)

#define   ANSI_down(a)         printf("%c[%dB",ESC,a)

#define   ANSI_right(a)        printf("%c[%dC",ESC,a)

#define   ANSI_left(a)         printf("%c[%dD",ESC,a)

#define   ANSI_locate(a,b)     printf("%c[%d;%df",ESC,a,b)

#define   ANSI_savecurs()      printf("%c[S",ESC)

#define   ANSI_restcurs()      printf("%c[U",ESC)

#define   ANSI_cls()           printf("%c[2J",ESC)

#define   ANSI_cleol()         printf("%c[K",ESC)

#define   ANSI_margins(a,b)    printf("%c[%d;%dr",ESC,a,b)


#define   NORMAL         0     /* attributes for ANSI_attrib() */

#define   BOLD           1

#define   USCORE         2

#define   BLINK          3

#define   REVERSE        4

#define   INVIS          5


#define   BLACK          0     /* colors for ANSI_bg_color() and */

#define   RED            1     /* ANSI_fg_color.                 */

#define   GREEN          2

#define   YELLOW         3

#define   BLUE           4

#define   MAGENTA        5

#define   CYAN           6

#define   WHITE          7

#define   B_BLACK        8     /* bright colors for ANSI_fg_color() */

#define   B_RED          9

#define   B_GREEN        10

#define   B_YELLOW       11

#define   B_BLUE         12

#define   B_MAGENTA      13

#define   B_CYAN         14

#define   B_WHITE        15


static char *_atrb_plt[] = {
   "0","1","4","5","7","8"
   };

static char *_fg_plt[] = {
   "0;30","0;31","0;32","0;33",
   "0;34","0;35","0;36","0;37",
   "1;30","1;31","1;32","1;33",
   "1;34","1;35","1;36","1;37"
   };

static char *_bg_plt[] = {
   "40","41","42","43",
   "44","45","46","47"
    };

#define   ANSI_attrib(a)     printf("%c[%sm",ESC,_atrb_plt[a])

#define   ANSI_fg_color(a)   printf("%c[%sm",ESC, _fg_plt[a] )

#define   ANSI_bg_color(a)   printf("%c[%sm",ESC, _bg_plt[a] )


#endif /* ANSISCRN */



syntax highlighted by Code2HTML, v. 0.9.1