[BACK]Return to file.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / grep

Diff for /src/usr.bin/grep/file.c between version 1.1 and 1.2

version 1.1, 2003/06/22 22:20:07 version 1.2, 2003/06/22 22:24:13
Line 37 
Line 37 
   
 static char      fname[MAXPATHLEN];  static char      fname[MAXPATHLEN];
 static char     *lnbuf;  static char     *lnbuf;
 static int       lnbuflen;  static size_t    lnbuflen;
   
 #define FILE_STDIO      0  #define FILE_STDIO      0
 #define FILE_MMAP       1  #define FILE_MMAP       1
Line 50 
Line 50 
         gzFile  *gzf;          gzFile  *gzf;
 };  };
   
   #ifndef NOZ
 static char *  static char *
 gzfgetln(gzFile *f, size_t *len)  gzfgetln(gzFile *f, size_t *len)
 {  {
Line 64 
Line 65 
   
                         if (gzeof(f))                          if (gzeof(f))
                                 break;                                  break;
   
                         gzerrstr = gzerror(f, &gzerr);                          gzerrstr = gzerror(f, &gzerr);
                         if (gzerr == Z_ERRNO)                          if (gzerr == Z_ERRNO)
                                 err(1, "%s", fname);                                  err(1, "%s", fname);
Line 85 
Line 86 
         *len = n;          *len = n;
         return lnbuf;          return lnbuf;
 }  }
   #endif
   
 file_t *  file_t *
 grep_fdopen(int fd, char *mode)  grep_fdopen(int fd, char *mode)
Line 92 
Line 94 
         file_t *f;          file_t *f;
   
         if (fd == 0)          if (fd == 0)
                 sprintf(fname, "(standard input)");                  snprintf(fname, sizeof fname, "(standard input)");
         else          else
                 sprintf(fname, "(fd %d)", fd);                  snprintf(fname, sizeof fname, "(fd %d)", fd);
   
         f = grep_malloc(sizeof *f);          f = grep_malloc(sizeof *f);
   
   #ifndef NOZ
         if (Zflag) {          if (Zflag) {
                 f->type = FILE_GZIP;                  f->type = FILE_GZIP;
                 if ((f->gzf = gzdopen(fd, mode)) != NULL)                  if ((f->gzf = gzdopen(fd, mode)) != NULL)
                         return f;                          return f;
         } else {          } else
   #endif
           {
                 f->type = FILE_STDIO;                  f->type = FILE_STDIO;
                 if ((f->f = fdopen(fd, mode)) != NULL)                  if ((f->f = fdopen(fd, mode)) != NULL)
                         return f;                          return f;
         }          }
   
         free(f);          free(f);
         return NULL;          return NULL;
 }  }
Line 117 
Line 122 
 {  {
         file_t *f;          file_t *f;
   
         snprintf(fname, MAXPATHLEN, "%s", path);          snprintf(fname, sizeof fname, "%s", path);
   
         f = grep_malloc(sizeof *f);          f = grep_malloc(sizeof *f);
   
   #ifndef NOZ
         if (Zflag) {          if (Zflag) {
                 f->type = FILE_GZIP;                  f->type = FILE_GZIP;
                 if ((f->gzf = gzopen(fname, mode)) != NULL)                  if ((f->gzf = gzopen(fname, mode)) != NULL)
                         return f;                          return f;
         } else {          } else
   #endif
           {
                 /* try mmap first; if it fails, try stdio */                  /* try mmap first; if it fails, try stdio */
                 if ((f->mmf = mmopen(fname, mode)) != NULL) {                  if ((f->mmf = mmopen(fname, mode)) != NULL) {
                         f->type = FILE_MMAP;                          f->type = FILE_MMAP;
Line 135 
Line 143 
                 if ((f->f = fopen(path, mode)) != NULL)                  if ((f->f = fopen(path, mode)) != NULL)
                         return f;                          return f;
         }          }
   
         free(f);          free(f);
         return NULL;          return NULL;
 }  }
Line 148 
Line 156 
                 return bin_file(f->f);                  return bin_file(f->f);
         case FILE_MMAP:          case FILE_MMAP:
                 return mmbin_file(f->mmf);                  return mmbin_file(f->mmf);
   #ifndef NOZ
         case FILE_GZIP:          case FILE_GZIP:
                 return gzbin_file(f->gzf);                  return gzbin_file(f->gzf);
   #endif
         default:          default:
                 /* can't happen */                  /* can't happen */
                 errx(1, "invalid file type");                  errx(1, "invalid file type");
Line 164 
Line 174 
                 return ftell(f->f);                  return ftell(f->f);
         case FILE_MMAP:          case FILE_MMAP:
                 return mmtell(f->mmf);                  return mmtell(f->mmf);
   #ifndef NOZ
         case FILE_GZIP:          case FILE_GZIP:
                 return gztell(f->gzf);                  return gztell(f->gzf);
   #endif
         default:          default:
                 /* can't happen */                  /* can't happen */
                 errx(1, "invalid file type");                  errx(1, "invalid file type");
Line 180 
Line 192 
                 return fgetln(f->f, l);                  return fgetln(f->f, l);
         case FILE_MMAP:          case FILE_MMAP:
                 return mmfgetln(f->mmf, l);                  return mmfgetln(f->mmf, l);
   #ifndef NOZ
         case FILE_GZIP:          case FILE_GZIP:
                 return gzfgetln(f->gzf, l);                  return gzfgetln(f->gzf, l);
   #endif
         default:          default:
                 /* can't happen */                  /* can't happen */
                 errx(1, "invalid file type");                  errx(1, "invalid file type");
Line 198 
Line 212 
         case FILE_MMAP:          case FILE_MMAP:
                 mmclose(f->mmf);                  mmclose(f->mmf);
                 break;                  break;
   #ifndef NOZ
         case FILE_GZIP:          case FILE_GZIP:
                 gzclose(f->gzf);                  gzclose(f->gzf);
                 break;                  break;
   #endif
         default:          default:
                 /* can't happen */                  /* can't happen */
                 errx(1, "invalid file type");                  errx(1, "invalid file type");

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2