home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 3 Comm / 03-Comm.zip / RDQWKSRC.ZIP / ANSI.C next >
C/C++ Source or Header  |  1991-01-15  |  5KB  |  205 lines

  1. /*
  2. ╔══════════════════════════════════════════════════════════════════════════╗
  3. ║                                                                          ║
  4. ║         Test routines to read, in Qmail Format - R.Cougnenc 90 -         ║
  5. ║                                                                          ║
  6. ║                            Public Domain                                 ║
  7. ║                                                                          ║
  8. ╟──────────────────────────────────────────────────────────────────────────╢
  9. ║                                                                          ║
  10. ║       These modules correspond to different tests at reading in          ║
  11. ║       Qmail Format. They were never planned to be released as a          ║
  12. ║       package.                                                           ║
  13. ║                                                                          ║
  14. ║       Source code is not beautified or optimised as they are work        ║
  15. ║       files and are distributed as is.                                   ║
  16. ║                                                                          ║
  17. ║       The program, even at it's rustic stage is fully fonctional,        ║
  18. ║       as I use it regularly...                                           ║
  19. ║                                                                          ║
  20. ║       Feel free to use any or all of these modules, if you can sort      ║
  21. ║       it out! :-)                                                        ║
  22. ║                                                                          ║
  23. ╚══════════════════════════════════════════════════════════════════════════╝
  24. */
  25.  
  26.  
  27. /*
  28.             --------- Ansi screen control functions -------------
  29.  
  30.           These elementary control sequences are implemented on most
  31.           basic ansi terminals.
  32.  
  33.                       R.Cougnenc 88 - Public Domain -
  34. */
  35.  
  36. extern int ansi ;            /* Will just return on ansi=0 */
  37.  
  38. #define ESC 27
  39.  
  40.  
  41. void cls()               /* Clear screen & home cursor */
  42. {
  43.     if( ansi )
  44.     printf("%c[2J%c[H",ESC,ESC);
  45. }
  46. void deleol()            /* del to end of line        */
  47. {
  48.     if( ansi )
  49.     printf("%c[K",ESC);
  50. }
  51. void clear()             /* Reset Attributes          */
  52. {
  53.     if( ansi )
  54.     printf("%c[0m",ESC );
  55. }
  56. void high()              /* HigLitht  (or BoldFace )  */
  57. {
  58.     if( ansi )
  59.     printf("%c[1m",ESC);
  60. }
  61. void blink()             /* blink mode                */
  62. {
  63.     if( ansi )
  64.     printf("%c[5m",ESC);
  65. }
  66. void reverse()           /* Revers video mode         */
  67. {
  68.     if( ansi )
  69.     printf("%c[7m",ESC);
  70. }
  71.  
  72. /*------------- Foreground colors ---------------------*/
  73. void black()
  74. {
  75.     if( ansi )
  76.     printf("%c[30m",ESC);
  77. }
  78. void red()
  79. {
  80.     if( ansi )
  81.     printf("%c[31m",ESC);
  82. }
  83. void green()
  84. {
  85.     if( ansi )
  86.     printf("%c[32m",ESC);
  87. }
  88. void yellow()
  89. {
  90.     if( ansi )
  91.     printf("%c[33m",ESC);
  92. }
  93. void blue()
  94. {
  95.     if( ansi )
  96.     printf("%c[34m",ESC);
  97. }
  98. void magenta()
  99. {
  100.     if( ansi )
  101.     printf("%c[35m",ESC);
  102. }
  103. void cyan()
  104. {
  105.     if( ansi )
  106.     printf("%c[36m",ESC);
  107. }
  108. void white()
  109. {
  110.     if( ansi )
  111.     printf("%c[37m",ESC);
  112. }
  113.  
  114. /*------------- BackGround colors ---------------------*/
  115. void bblack()
  116. {
  117.     if( ansi )
  118.     printf("%c[40m",ESC);
  119. }
  120. void bred()
  121. {
  122.     if( ansi )
  123.     printf("%c[41m",ESC);
  124. }
  125. void bgreen()
  126. {
  127.     if( ansi )
  128.     printf("%c[42m",ESC);
  129. }
  130. void byellow()
  131. {
  132.     if( ansi )
  133.     printf("%c[43m",ESC);
  134. }
  135. void bblue()
  136. {
  137.     if( ansi )
  138.     printf("%c[44m",ESC);
  139. }
  140. void bmagenta()
  141. {
  142.     if( ansi )
  143.     printf("%c[45m",ESC);
  144. }
  145. void bcyan()
  146. {
  147.     if( ansi )
  148.     printf("%c[46m",ESC);
  149. }
  150. void bwhite()
  151. {
  152.     if( ansi )
  153.     printf("%c[47m",ESC);
  154. }
  155.  
  156. /*----------- Cursor position ---------------------------*/
  157.  
  158. void locate( x , y )
  159. int x, y;
  160. {
  161.     if(ansi)
  162.     printf("%c[%d;%dH",ESC,y,x);
  163. }
  164.  
  165. void up(nb)          /* Cursor Up default 1 */
  166. int nb;
  167. {
  168.     if ( ansi )
  169.     {
  170.         if( ! nb ) nb = 1 ;
  171.         printf("%c[%dA",ESC,nb);
  172.     }
  173. }
  174.  
  175. void dn(nb)        /* Cursor down default 1 */
  176. int nb;
  177. {
  178.     if ( ansi )
  179.     {
  180.         if( ! nb ) nb = 1 ;
  181.         printf("%c[%dB",ESC,nb);
  182.     }
  183. }
  184.  
  185. void right(nb)        /* Cursor right default 1 */
  186. int nb;
  187. {
  188.     if ( ansi )
  189.     {
  190.         if( ! nb ) nb = 1 ;
  191.         printf("%c[%dC",ESC,nb);
  192.     }
  193. }
  194.  
  195. void left(nb)        /* Cursor left default 1 */
  196. int nb;
  197. {
  198.     if ( ansi )
  199.     {
  200.         if( ! nb ) nb = 1 ;
  201.         printf("%c[%dD",ESC,nb);
  202.     }
  203. }
  204. /*-----------------------------------------------------------------------*/
  205.