nbytes = 0, /* number of bytes read from a datafile */
nmagic = 0; /* number of valid magic[]s */
FILE *efopen();
-#ifdef MAGIC
-char *magicfile = MAGIC; /* where magic be found */
-#else
char *magicfile = "/etc/magic"; /* where magic be found */
-#endif
char *progname;
struct stat statbuf;
struct utimbuf { /* for utime(2), belongs in a .h file */
char *inname;
{
int fd;
- char buf[HOWMANY+1];
+ char buf[HOWMANY];
struct utimbuf utbuf;
- if (strcmp("-", inname) == 0) {
- /* Standard input */
- if (fstat(0, &statbuf)<0)
- warning("cannot fstat; ");
- fd = 0;
- goto readit;
- }
-
(void) printf("%s:\t", inname);
/*
if (fsmagic(inname) != 0) {
/*NULLBODY*/;
} else if ((fd = open(inname, 0)) < 0) {
- /* We can't open it, but we were able to stat it. */
- if (statbuf.st_mode & 0002) ckfputs("writeable, ", stdout);
- if (statbuf.st_mode & 0111) ckfputs("executable, ", stdout);
- warning("can't read");
+ warning("can't open for reading");
} else {
-readit:
/*
* try looking at the first HOWMANY bytes
*/
if ((nbytes = read(fd, buf, HOWMANY)) == -1)
warning("read failed");
- buf[nbytes] = '\0'; /* Terminate string */
/*
- * try tests in /etc/magic (or surrogate magic file)
+ * try tests in /etc/magic (or surrogate magic file
*/
if (softmagic(buf) == 1)
/*NULLBODY*/;
*/
ckfputs("data", stdout);
}
- if (strcmp("-", inname) != 0) {
- /*
- * Restore access, modification times if we read it.
- */
- utbuf.actime = statbuf.st_atime;
- utbuf.modtime = statbuf.st_mtime;
- (void) utime(inname, &utbuf);
- /* we don't care if we lack perms */
- (void) close(fd);
- }
+ /*
+ * Restore access, modification times if we read the file.
+ */
+ utbuf.actime = statbuf.st_atime;
+ utbuf.modtime = statbuf.st_mtime;
+ (void) utime(inname, &utbuf); /* don't care if we lack perms */
+ (void) close(fd);
}
(void) putchar('\n');