home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / program / compiler / nasm20b / nasm_src / buffer.h < prev    next >
C/C++ Source or Header  |  1993-01-19  |  2KB  |  36 lines

  1. /* ---------------------------------------------------------------------- */
  2. /*                   Copyright (C) 1991 by Natürlich!                     */
  3. /*                      This file is copyrighted!                         */
  4. /*                Refer to the documentation for details.                 */
  5. /* ---------------------------------------------------------------------- */
  6. #ifndef _BUFFER_
  7. # define _BUFFER_
  8.  
  9. # define BUF_FILE     0
  10. # define BUF_MACRO    1
  11. # define BUF_UNDO     2
  12. # define BUF_AUX      3
  13. # define BUF_FREE     0x20
  14. # define BUF_ALLOC    0x40
  15. # define BUF_TOKEN    0x80
  16. # define BUF_TYPEMASK 0x8F
  17.  
  18. /* Little routine to unhook buffer needs a helping pointer */
  19. # if VERSION
  20. #  define kill_buffer( hp)                                             \
  21.      hp = bp;                   /* get buffer to be freed           */ \
  22.      if( bp = bp->before)       /* New buffer is the one before     */ \
  23.      {                                                                 \
  24.         if( (hp->type ^ bp->type) & BUF_TYPEMASK)                      \
  25.            freshflag = 1;                                              \
  26.         bp->next = 0;           /* of course only if there was one  */ \
  27.         gettoken = (int (*)(void)) bp->get;  /* new input routine */   \
  28.      }                          /* **-PORT #1-** 1 line up */          \
  29.      (*hp->done)(hp);           /* Call cleanup action (almost OO)  */ \
  30.      if( hp->type & BUF_FREE)   /* dynamic buffer struct ? then     */ \
  31.         nfree( (void huge *) hp); /* Remove buffer struct           */
  32. # endif
  33.  
  34. #define inc_line()   if( bp) bp->line++
  35. #endif
  36.