home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpm / fortran / ratfor.lbr / UNIQUE.RTF < prev    next >
Encoding:
Text File  |  1986-04-27  |  1.1 KB  |  69 lines

  1. include "b:ratdefn.rtf"
  2. # unique - strip adjacent duplicate lines
  3.    character buf1(MAXLINE), buf2(MAXLINE)
  4.    integer equal, getlin, getarg
  5.    integer t, n, nflag
  6.  
  7.    call initio
  8.  
  9.    nflag = NO
  10.    if (getarg(1, buf1, MAXLINE) ^= EOF)
  11.       if (buf1(1) == MINUS & (buf1(2) == LETN | buf1(2) == BIGN) &
  12.       buf1(3) == EOS)
  13.          nflag = YES
  14.       else
  15.      call error("usage: unique [-n].")
  16.    t = getlin(buf1, STDIN)
  17.    while (t ^= EOF) {
  18.       n = 1
  19.       for (t = getlin(buf2, STDIN); t ^= EOF; t = getlin(buf2, STDIN))
  20.      if (equal(buf1, buf2) == NO)
  21.         break
  22.      else
  23.         n = n + 1
  24.       if (nflag == YES) {
  25.      call putdec(n, 5)
  26.      call putch(TAB, STDOUT)
  27.      }
  28.       call putlin(buf1, STDOUT)
  29.       if (t == EOF)
  30.      break
  31.       n = 1
  32.       for (t = getlin(buf1, STDIN); t ^= EOF; t = getlin(buf1, STDIN))
  33.      if (equal(buf1, buf2) == NO)
  34.         break
  35.      else
  36.         n = n + 1
  37.       if (nflag == YES) {
  38.      call putdec(n, 5)
  39.      call putch(TAB, STDOUT)
  40.      }
  41.       call putlin(buf2, STDOUT)
  42.       }
  43.    call putch(EOF, STDOUT)
  44.    stop
  45.    end
  46. 
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.