home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_02_09 / 2n09017a < prev    next >
Text File  |  1991-07-31  |  1KB  |  48 lines

  1.  
  2. TAG_IT PROCEDURE(PTR)
  3. ! IF RECORD IDENTIFIED BY 'PTR' IS IN TAG TABLE, REMOVE IT.
  4. ! OTHERWISE, ADD IT
  5. PTR       LONG
  6.  
  7.     CODE
  8.     LOOP X# = 1 TO RECORDS(TAG_TABLE)!IS THIS RECORD TAGGED?
  9.       GET(TAG_TABLE,X#)
  10.       IF (TAG:POINTER = PTR)
  11.          DELETE(TAG_TABLE)               !YES - UNTAG IT
  12.          IF (ERROR()) THEN STOP('Tag Table: ' & ERROR()).
  13.          RETURN                          !AND RETURN
  14.     . .
  15.     TAG:POINTER = PTR                !RECORD IS NOT TAGGED
  16.     ADD(TAG_TABLE)                   !SO TAG IT
  17.     IF (ERROR()) THEN STOP('Tag Table: ' & ERROR()).
  18.  
  19. IS_TAG FUNCTION(PTR)
  20. ! IS RECORD IDENTIFIED BY 'PTR' IN TAG TABLE?
  21. PTR       LONG
  22.  
  23.     CODE
  24.     IF TAG_ALL_FLG THEN RETURN(TRUE).!YES - ALL RECORDS TAGGED
  25.     LOOP X# = 1 TO RECORDS(TAG_TABLE)!SEE IF RECORD IS TAGGED
  26.       GET(TAG_TABLE,X#)
  27.       IF (ERROR()) THEN STOP('Tag Table : ' & ERROR()).
  28.       IF (TAG:POINTER = PTR) THEN RETURN(TRUE).!RECORD IS TAGGED
  29.     .
  30.     RETURN(FALSE)                    !RECORD IS NOT TAGGED
  31.  
  32. CLEAR_TAGS PROCEDURE()
  33. ! CLEAR ALL TAGGED RECORDS
  34.   CODE
  35.   TAG_ALL_FLG = FALSE                !RESET FLAG
  36.   FREE(TAG_TABLE)                    !DEALLOCATE MEMORY TABLE
  37.  
  38. ANY_TAGS FUNCTION()
  39. ! ARE ANY RECORDS TAGGED?
  40.   CODE
  41.   IF TAG_ALL_FLG OR RECORDS(TAG_TABLE) THEN RETURN(TRUE). !YES
  42.   RETURN(FALSE)                      !NO
  43.  
  44. TAG_ALL PROCEDURE()
  45. ! TAG ALL RECORDS
  46.   CODE
  47.   TAG_ALL_FLG = TRUE                 !SET FLAG
  48.