home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / zip / gnu / flex237.lzh / FLEX237 / YYREAD.C < prev   
C/C++ Source or Header  |  1993-07-23  |  606b  |  40 lines

  1. #ifdef atarist
  2.  
  3. #include <unistd.h>
  4. #include <string.h>
  5. #include <memory.h>
  6.  
  7. /*
  8.  * read, ignoring CR's
  9.  *
  10.  *  ++jrb
  11.  */
  12. int _yyread(int fd, char *buf, int size)
  13. {
  14.     int count = read(fd, buf, size);
  15.     int done = 0, i;
  16.  
  17.     if(count <= 0)
  18.     return count;
  19.  
  20.     do{
  21.     for(i = done; i < (done+count); i++)
  22.     {
  23.         if(buf[i] == '\r')
  24.         {
  25.         if(count != 1)
  26.           bcopy(&buf[i+1], &buf[i], (size_t)(count -1 - (i - done)));
  27.         count -= 1;
  28.         }
  29.     }
  30.     done += count;
  31.     if(done == size)
  32.         return done;
  33.     count = read(fd, &buf[done], (size - done));
  34.     } while(count > 0);
  35.  
  36.     return done;
  37. }
  38.  
  39. #endif /* atarist */
  40.