home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / progc / itcjun90.arj / TAB.H < prev    next >
Text File  |  1991-09-07  |  2KB  |  66 lines

  1. /************************************************
  2. * TAB.H - function prototypes for tab & entab    *
  3. *                                                *
  4. * 900424 MCMason - written for Turbo C v2.0        *
  5. ************************************************/
  6.  
  7. #define TRUE  (1==1)
  8. #define FALSE (!TRUE)
  9. extern void    entab(char [], char []);
  10. extern void    detab(char [], char []);
  11.  
  12. #if !defined(TAB) || ((TAB!=1)&&(TAB!=2))
  13.     #error TAB must be defined to either 1 or 2
  14. #endif
  15.  
  16. #if TAB==1
  17. /************************************************
  18. *  Technique #1 - computed tabs                    *
  19. ************************************************/
  20.     #ifdef TABMAN
  21.         int _tabSize;
  22.     #else
  23.         extern int _tabSize;
  24.     #endif
  25.  
  26.     #define setTab(x) (_tabSize=x)
  27.     #define isTab(x)  (!(x%_tabSize))
  28.     #define clrTab(x)
  29.     #define initTab()
  30.  
  31. #else    /* TAB==2 */
  32. /************************************************
  33. * Technique #2 - use bit arrays                    *
  34. ************************************************/
  35.  
  36.     #if !defined(BitList)
  37.         #include "bitlist.h"
  38.     #endif
  39.  
  40.     #define MAXTAB 70    /* Max column number    */
  41.     #define initTab() {tabList=blCreate(MAXTAB);}
  42.     #define setTab(x) blSetBit(tabList,x,1)
  43.     #define isTab(x)  ((x>=MAXTAB) ? TRUE :\
  44.                       blGetBit(tabList,x))
  45.  
  46.     #if !defined(TABMAN)    /* && TAB==2 */
  47.         extern BitList tabList;
  48.         void clrTab(int);
  49.     #else    /* defined(TABMAN) && TAB==2 */
  50.         BitList tabList;    /* List of tabstops    */
  51.  
  52.     /********************************************
  53.     * clrTab - remove one or all tabstops        *
  54.     *                                            *
  55.     * INP:    t - tabstop to remove, -1 for all    *
  56.     ********************************************/
  57.     void clrTab(int t)
  58.         {
  59.         if (t==-1)        /* Remove all? */
  60.             blListOp(blCLEAR,tabList);    /* YES */
  61.         else
  62.             blSetBit(tabList,t,0);        /* NO  */
  63.         }
  64.     #endif    /* defined(TABMAN) && TAB==2 */
  65. #endif    /* TAB==2 */
  66.