home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / prof_c / 13ansi / setattr.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-08-11  |  763 b   |  38 lines

  1. /*
  2.  *    setattr -- execute an attribute update
  3.  */
  4.  
  5. #include <stdio.h>
  6. #include <local\ansi.h>
  7. #include <local\ibmcolor.h>
  8.  
  9. #define C_MASK    0x7
  10.  
  11. void
  12. setattr(pos, attr)
  13. POSITION pos;    /* attribute position */
  14. int attr;    /* composite attribute number (base attr | intensity) */
  15. {
  16.     static int ibm2ansi[] = {
  17.         ANSI_BLACK, ANSI_BLUE, ANSI_GREEN, ANSI_CYAN,
  18.         ANSI_RED, ANSI_MAGENTA, ANSI_BROWN, ANSI_WHITE
  19.     };
  20.  
  21.     switch (pos) {
  22.     case FGND:
  23.         if (attr & IBM_BRIGHT)
  24.             ANSI_SGR(ANSI_BOLD);
  25.         ANSI_SGR(ibm2ansi[attr & C_MASK] + ANSI_FOREGROUND);
  26.         break;
  27.     case BKGND:
  28.         if (attr & IBM_BRIGHT)
  29.             ANSI_SGR(ANSI_BLINK);
  30.         ANSI_SGR(ibm2ansi[attr & C_MASK] + ANSI_BACKGROUND);
  31.         break;
  32.     case BDR:
  33.         palette(0, attr);
  34.         break;
  35.     }
  36.     return;
  37. }
  38.