summaryrefslogtreecommitdiffstats
path: root/usr.bin/file
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2000-11-26 22:19:56 +0000
committerobrien <obrien@FreeBSD.org>2000-11-26 22:19:56 +0000
commit734ffeb5ee37368fd8302a978e5b5bece2534cdb (patch)
tree2e026e339edb762c417e7b8451de762377f171ed /usr.bin/file
parent92a7efc5b66e70b5180fb33be1040e6c6de7b660 (diff)
downloadFreeBSD-src-734ffeb5ee37368fd8302a978e5b5bece2534cdb.zip
FreeBSD-src-734ffeb5ee37368fd8302a978e5b5bece2534cdb.tar.gz
Use the vendor's manpages (which are in old -man format) rather than
our modified one based on a much older version of the vendor's manpage.
Diffstat (limited to 'usr.bin/file')
-rw-r--r--usr.bin/file/Makefile20
-rw-r--r--usr.bin/file/file.1405
-rw-r--r--usr.bin/file/magic.5222
3 files changed, 16 insertions, 631 deletions
diff --git a/usr.bin/file/Makefile b/usr.bin/file/Makefile
index 5fc7b1bd..9c00d58 100644
--- a/usr.bin/file/Makefile
+++ b/usr.bin/file/Makefile
@@ -24,13 +24,13 @@
#
# Hacked and dismembered for bmake (Geoff Rehmet).
-MAGICDIR= /usr/share/misc/magic
+MAGICFILE= /usr/share/misc/magic
MAGICMODE= 444
SRCDIR= ${.CURDIR}/../../contrib/file
.PATH: ${SRCDIR}
-CFLAGS+= -DMAGIC='"$(MAGICDIR)"' -DBUILTIN_ELF -DELFCORE -DHAVE_CONFIG_H
+CFLAGS+= -DMAGIC='"$(MAGICFILE)"' -DBUILTIN_ELF -DELFCORE -DHAVE_CONFIG_H
CFLAGS+= -I${.CURDIR}
PROG= file
@@ -41,7 +41,7 @@ SRCS= file.c apprentice.c fsmagic.c softmagic.c ascmagic.c \
MAN1= file.1
MAN5= magic.5
-CLEANFILES+= magic
+CLEANFILES+= magic file.1 magic.5 version
MAGFILES= ${SRCDIR}/Header\
${SRCDIR}/Localstuff\
@@ -52,8 +52,20 @@ all: file magic
magic: $(MAGFILES)
cat $(MAGFILES) > $(.TARGET)
+version: Makefile.std
+ @sed '/.*VERSION.*=[ ]*/s///w ${.TARGET}' ${.ALLSRC} > /dev/null
+
+.for MP in file.1 magic.5
+${MP}: ${SRCDIR}/${MP:C/[0-9]$/man/} version
+ sed -e 's|__CSECTION__|1|g'\
+ -e 's|__FSECTION__|5|g'\
+ -e 's|__MAGIC__|${MAGICFILE}|g'\
+ -e "s|__VERSION__|`cat version`|g"\
+ ${SRCDIR}/${MP:C/[0-9]$/man/} > ${.TARGET}
+.endfor
+
beforeinstall:
$(INSTALL) $(COPY) -o $(BINOWN) -g $(BINGRP) -m $(MAGICMODE) \
- magic $(DESTDIR)$(MAGICDIR)
+ magic $(DESTDIR)$(MAGICFILE)
.include <bsd.prog.mk>
diff --git a/usr.bin/file/file.1 b/usr.bin/file/file.1
deleted file mode 100644
index 189b25c..0000000
--- a/usr.bin/file/file.1
+++ /dev/null
@@ -1,405 +0,0 @@
-.\" $FreeBSD$
-.Dd July 30, 1997
-.Dt FILE 1 "Copyright but distributable"
-.Os
-.Sh NAME
-.Nm file
-.Nd determine file type
-.Sh SYNOPSIS
-.Nm
-.Op Fl vczL
-.Op Fl f Ar namefile
-.Op Fl m Ar magicfiles
-.Ar
-.Sh DESCRIPTION
-This manual page documents version 3.22 of the
-.Nm
-command.
-.Nm File
-tests each argument in an attempt to classify it.
-There are three sets of tests, performed in this order:
-filesystem tests, magic number tests, and language tests.
-The
-.Em first
-test that succeeds causes the file type to be printed.
-.Pp
-The type printed will usually contain one of the words
-.Em text
-(the file contains only
-.Tn ASCII
-characters and is probably safe to read on an
-.Tn ASCII
-terminal),
-.Em executable
-(the file contains the result of compiling a program
-in a form understandable to some
-.Ux
-kernel or another),
-or
-.Em data
-meaning anything else (data is usually `binary' or non-printable).
-Exceptions are well-known file formats (core files, tar archives)
-that are known to contain binary data.
-When modifying the file
-.Pa /usr/share/misc/magic
-or the program itself,
-.Em "preserve these keywords" .
-.Pp
-People depend on knowing that all the readable files in a directory
-have the word ``text'' printed.
-Don't do as Berkeley did \- change ``shell commands text''
-to ``shell script''.
-.Pp
-The filesystem tests are based on examining the return from a
-.Xr stat 2
-system call.
-The program checks to see if the file is empty,
-or if it's some sort of special file.
-Any known file types appropriate to the system you are running on
-(sockets, symbolic links, or named pipes (FIFOs) on those systems that
-implement them)
-are intuited if they are defined in
-the system header file
-.Pa sys/stat.h .
-.Pp
-The magic number tests are used to check for files with data in
-particular fixed formats.
-The canonical example of this is a binary executable (compiled program)
-.Pa a.out
-file, whose format is defined in
-.Pa a.out.h
-and possibly
-.Pa exec.h
-in the standard include directory.
-These files have a `magic number' stored in a particular place
-near the beginning of the file that tells the
-.Ux
-operating system
-that the file is a binary executable, and which of several types thereof.
-The concept of `magic number' has been applied by extension to data files.
-Any file with some invariant identifier at a small fixed
-offset into the file can usually be described in this way.
-The information in these files is read from the magic file
-.Pa /usr/share/misc/magic .
-.Pp
-If an argument appears to be an
-.Tn ASCII
-file,
-.Nm
-attempts to guess its language.
-The language tests look for particular strings (cf
-.Pa names.h )
-that can appear anywhere in the first few blocks of a file.
-For example, the keyword
-.Em .br
-indicates that the file is most likely a
-.Xr troff 1
-input file, just as the keyword
-.Em struct
-indicates a C program.
-These tests are less reliable than the previous
-two groups, so they are performed last.
-The language test routines also test for some miscellany
-(such as
-.Xr tar 1
-archives) and determine whether an unknown file should be
-labelled as `ASCII text' or `data'.
-.Sh OPTIONS
-.Bl -tag -width indent
-.It Fl v
-Print the version of the program and exit.
-.It Fl m Ar list
-Specify an alternate
-.Ar list
-of files containing magic numbers.
-This can be a single file, or a colon-separated list of files.
-.It Fl z
-Try to look inside compressed files.
-.It Fl c
-Cause a checking printout of the parsed form of the magic file.
-This is usually used in conjunction with
-.Fl m
-to debug a new magic file before installing it.
-.It Fl f Ar namefile
-Read the names of the files to be examined from
-.Ar namefile
-(one per line)
-before the argument list.
-Either
-.Ar namefile
-or at least one filename argument must be present;
-to test the standard input, use ``-'' as a filename argument.
-.It Fl L
-Cause symlinks to be followed, as the like-named option in
-.Xr ls 1 .
-(on systems that support symbolic links).
-.El
-.Sh FILES
-.Bl -tag -width /usr/share/misc/magic -compact
-.It Pa /usr/share/misc/magic
-default list of magic numbers (used to be
-.Pa /etc/magic
-prior to
-.Fx 3.0 )
-.El
-.Sh ENVIRONMENT
-The environment variable
-.Em MAGIC
-can be used to set the default magic number files.
-.Sh SEE ALSO
-.Xr od 1 ,
-.Xr strings 1 ,
-.Xr magic 5
-.Sh STANDARDS CONFORMANCE
-This program is believed to exceed the System V Interface Definition
-of FILE(CMD), as near as one can determine from the vague language
-contained therein.
-Its behaviour is mostly compatible with the System V program of the same name.
-This version knows more magic, however, so it will produce
-different (albeit more accurate) output in many cases.
-.Pp
-The one significant difference
-between this version and System V
-is that this version treats any white space
-as a delimiter, so that spaces in pattern strings must be escaped.
-For example,
-.Bd -literal -compact
->10 string language impress (imPRESS data)
-.Ed
-in an existing magic file would have to be changed to
-.Bd -literal -compact
->10 string language\e impress (imPRESS data)
-.Ed
-.Pp
-In addition, in this version, if a pattern string contains a backslash,
-it must be escaped. For example
-.Bd -literal -compact
-0 string \ebegindata Andrew Toolkit document
-.Ed
-in an existing magic file would have to be changed to
-.Bd -literal -compact
-0 string \e\ebegindata Andrew Toolkit document
-.Ed
-.Pp
-SunOS releases 3.2 and later from Sun Microsystems include a
-.Xr file 1
-command derived from the System V one, but with some extensions.
-My version differs from Sun's only in minor ways.
-It includes the extension of the `&' operator, used as,
-for example,
-.Bd -literal -compact
->16 long&0x7fffffff >0 not stripped
-.Ed
-.Sh MAGIC DIRECTORY
-The magic file entries have been collected from various sources,
-mainly USENET, and contributed by various authors.
-.An Christos Zoulas
-(address below) will collect additional
-or corrected magic file entries.
-A consolidation of magic file entries
-will be distributed periodically.
-.Pp
-The order of entries in the magic file is significant.
-Depending on what system you are using, the order that
-they are put together may be incorrect.
-If your old
-.Nm
-command uses a magic file,
-keep the old magic file around for comparison purposes
-(rename it to
-.Pa /usr/share/misc/magic.orig Ns ).
-.Sh HISTORY
-There has been a
-.Nm
-command in every
-.Ux
-since at least Research Version 6
-(man page dated January, 1975).
-The System V version introduced one significant major change:
-the external list of magic number types.
-This slowed the program down slightly but made it a lot more flexible.
-.Pp
-This program, based on the System V version,
-was written by
-.An Ian Darwin
-without looking at anybody else's source code.
-.Pp
-.An John Gilmore
-revised the code extensively, making it better than
-the first version.
-.An Geoff Collyer
-found several inadequacies
-and provided some magic file entries.
-The program has undergone continued evolution since.
-.Sh AUTHORS
-.An -nosplit
-Written by
-.An Ian F. Darwin Aq ian@sq.com ,
-UUCP address {utzoo | ihnp4}!darwin!ian,
-postal address: P.O. Box 603, Station F, Toronto, Ontario, CANADA M4Y 2L8.
-.Pp
-Altered by
-.An Rob McMahon Aq cudcv@warwick.ac.uk ,
-1989, to extend the `&' operator
-from simple `x&y != 0' to `x&y op z'.
-.Pp
-Altered by
-.An Guy Harris Aq guy@auspex.com ,
-1993, to:
-.Bl -item -offset indent
-.It
-put the ``old-style'' `&'
-operator back the way it was, because
-.Bl -enum -offset indent
-.It
-Rob McMahon's change broke the
-previous style of usage,
-.It
-The SunOS ``new-style'' `&' operator, which this version of
-.Nm
-supports, also handles `x&y op z',
-.It
-Rob's change wasn't documented in any case;
-.El
-.It
-put in multiple levels of `>';
-.It
-put in ``beshort'', ``leshort'', etc. keywords to look at numbers in the
-file in a specific byte order, rather than in the native byte order of
-the process running
-.Nm .
-.El
-.Pp
-Changes by
-.An Ian Darwin
-and various authors including
-.An Christos Zoulas Aq christos@deshaw.com ,
-1990-1992.
-.Sh LEGAL NOTICE
-Copyright (c) Ian F. Darwin, Toronto, Canada,
-1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993.
-.Pp
-This software is not subject to and may not be made subject to any
-license of the American Telephone and Telegraph Company, Sun
-Microsystems Inc., Digital Equipment Inc., Lotus Development Inc., the
-Regents of the University of California, The X Consortium or MIT, or
-The Free Software Foundation.
-.Pp
-This software is not subject to any export provision of the United States
-Department of Commerce, and may be exported to any country or planet.
-.Pp
-Permission is granted to anyone to use this software for any purpose on
-any computer system, and to alter it and redistribute it freely, subject
-to the following restrictions:
-.Pp
-.Bl -enum -offset indent
-.It
-The author is not responsible for the consequences of use of this
-software, no matter how awful, even if they arise from flaws in it;
-.It
-The origin of this software must not be misrepresented, either by
-explicit claim or by omission. Since few users ever read sources,
-credits must appear in the documentation;
-.It
-Altered versions must be plainly marked as such, and must not be
-misrepresented as being the original software. Since few users
-ever read sources, credits must appear in the documentation;
-.It
-This notice may not be removed or altered.
-.El
-.Pp
-A few support files (
-.Fn getopt ,
-.Fn strtok )
-distributed with this package
-are by
-.An Henry Spencer
-and are subject to the same terms as above.
-.Pp
-A few simple support files (
-.Fn strtol ,
-.Fn strchr )
-distributed with this package
-are in the public domain; they are so marked.
-.Pp
-The files
-.Pa tar.h
-and
-.Pa is_tar.c
-were written by
-.An John Gilmore
-from his public-domain
-.Nm tar
-program, and are not covered by the above restrictions.
-.Sh BUGS
-There must be a better way to automate the construction of the Magic
-file from all the glop in Magdir.
-What is it?
-Better yet, the magic file should be compiled into binary (say,
-.Xr ndbm 3
-or, better yet, fixed-length
-.Tn ASCII
-strings for use in heterogenous network environments) for faster startup.
-Then the program would run as fast as the Version 7 program of the same name,
-with the flexibility of the System V version.
-.Pp
-.Nm File
-uses several algorithms that favor speed over accuracy,
-thus it can be misled about the contents of
-.Tn ASCII
-files.
-.Pp
-The support for
-.Tn ASCII
-files (primarily for programming languages)
-is simplistic, inefficient and requires recompilation to update.
-.Pp
-There should be an ``else'' clause to follow a series of continuation lines.
-.Pp
-The magic file and keywords should have regular expression support.
-Their use of
-.Tn ASCII TAB
-as a field delimiter is ugly and makes
-it hard to edit the files, but is entrenched.
-.Pp
-It might be advisable to allow upper-case letters in keywords
-for e.g.,
-.Xr troff 1
-commands vs man page macros.
-Regular expression support would make this easy.
-.Pp
-The program doesn't grok \s-2FORTRAN\s0.
-It should be able to figure \s-2FORTRAN\s0 by seeing some keywords which
-appear indented at the start of line.
-Regular expression support would make this easy.
-.Pp
-The list of keywords in
-.Em ascmagic
-probably belongs in the Magic file.
-This could be done by using some keyword like `*' for the offset value.
-.Pp
-Another optimization would be to sort
-the magic file so that we can just run down all the
-tests for the first byte, first word, first long, etc, once we
-have fetched it. Complain about conflicts in the magic file entries.
-Make a rule that the magic entries sort based on file offset rather
-than position within the magic file?
-.Pp
-The program should provide a way to give an estimate
-of ``how good'' a guess is.
-We end up removing guesses (e.g. ``From '' as first 5 chars of file) because
-they are not as good as other guesses (e.g. ``Newsgroups:'' versus
-"Return-Path:"). Still, if the others don't pan out, it should be
-possible to use the first guess.
-.Pp
-This program is slower than some vendors'
-.Nm
-commands.
-.Pp
-This manual page, and particularly this section, is too long.
-.Sh AVAILABILITY
-You can obtain the original author's latest version by anonymous FTP
-on
-.Em ftp.deshaw.com
-in the directory
-.Pa /pub/file/file-X.YY.tar.gz
diff --git a/usr.bin/file/magic.5 b/usr.bin/file/magic.5
deleted file mode 100644
index 30cfff1..0000000
--- a/usr.bin/file/magic.5
+++ /dev/null
@@ -1,222 +0,0 @@
-.\"
-.\" @(#)$FreeBSD$
-.\"
-.\" install as magic.4 on USG, magic.5 on V7 or Berkeley systems.
-.\"
-.Dd September 3, 1994
-.Dt MAGIC 5
-.Os "Public Domain"
-.Sh NAME
-.Nm magic
-.Nd file command's magic number file
-.Sh DESCRIPTION
-This manual page documents the format of the magic file as
-used by the
-.Xr file 1
-command, version 3.22. The
-.Nm file
-command identifies the type of a file using,
-among other tests,
-a test for whether the file begins with a certain
-.Em "magic number" .
-The file
-.Pa /usr/share/misc/magic
-specifies what magic numbers are to be tested for,
-what message to print if a particular magic number is found,
-and additional information to extract from the file.
-.Pp
-Each line of the file specifies a test to be performed.
-A test compares the data starting at a particular offset
-in the file with a 1-byte, 2-byte, or 4-byte numeric value or
-a string. If the test succeeds, a message is printed.
-The line consists of the following fields:
-.Bl -tag -width indent
-.It offset
-A number specifying the offset, in bytes, into the file of the data
-which is to be tested.
-.It type
-The type of the data to be tested. The possible values are:
-.Bl -tag -width indent
-.It byte
-A one-byte value.
-.It short
-A two-byte value (on most systems) in this machine's native byte order.
-.It long
-A four-byte value (on most systems) in this machine's native byte order.
-.It string
-A string of bytes.
-.It date
-A four-byte value interpreted as a unix date.
-.It beshort
-A two-byte value (on most systems) in big-endian byte order.
-.It belong
-A four-byte value (on most systems) in big-endian byte order.
-.It bedate
-A four-byte value (on most systems) in big-endian byte order,
-interpreted as a unix date.
-.It leshort
-A two-byte value (on most systems) in little-endian byte order.
-.It lelong
-A four-byte value (on most systems) in little-endian byte order.
-.It ledate
-A four-byte value (on most systems) in little-endian byte order,
-interpreted as a unix date.
-.El
-.El
-.Pp
-The numeric types may optionally be followed by
-.Em &
-and a numeric value,
-to specify that the value is to be AND'ed with the
-numeric value before any comparisons are done. Prepending a
-.Em u
-to the type indicates that ordered comparisons should be unsigned.
-.Bl -tag -width indent
-.It test
-The value to be compared with the value from the file. If the type is
-numeric, this value
-is specified in C form; if it is a string, it is specified as a C string
-with the usual escapes permitted (e.g. \en for new-line).
-.It ""
-Numeric values
-may be preceded by a character indicating the operation to be performed.
-It may be
-.Em = ,
-to specify that the value from the file must equal the specified value,
-.Em < ,
-to specify that the value from the file must be less than the specified
-value,
-.Em > ,
-to specify that the value from the file must be greater than the specified
-value,
-.Em & ,
-to specify that the value from the file must have set all of the bits
-that are set in the specified value,
-.Em ^ ,
-to specify that the value from the file must have clear any of the bits
-that are set in the specified value, or
-.Em x ,
-to specify that any value will match.
-If the character is omitted,
-it is assumed to be
-.Em = .
-.It ""
-Numeric values are specified in C form; e.g.
-.Em 13
-is decimal,
-.Em 013
-is octal, and
-.Em 0x13
-is hexadecimal.
-.It ""
-For string values, the byte string from the
-file must match the specified byte string.
-The operators
-.Em = ,
-.Em <
-and
-.Em >
-(but not
-.Em & )
-can be applied to strings.
-The length used for matching is that of the string argument
-in the magic file. This means that a line can match any string, and
-then presumably print that string, by doing
-.Em >\e0
-(because all strings are greater than the null string).
-.It message
-The message to be printed if the comparison succeeds. If the string
-contains a
-.Xr printf 3
-format specification, the value from the file (with any specified masking
-performed) is printed using the message as the format string.
-.El
-.Pp
-Some file formats contain additional information which is to be printed
-along with the file type. A line which begins with the character
-.Em >
-indicates additional tests and messages to be printed. The number of
-.Em >
-on the line indicates the level of the test; a line with no
-.Em >
-at the beginning is considered to be at level 0.
-Each line at level
-.Em n+1
-is under the control of the line at level
-.Em n
-most closely preceding it in the magic file.
-If the test on a line at level
-.Em n
-succeeds, the tests specified in all the subsequent lines at level
-.Em n+1
-are performed, and the messages printed if the tests succeed. The next
-line at level
-.Em n
-terminates this.
-If the first character following the last
-.Em >
-is a
-.Em (
-then the string after the parenthesis is interpreted as an indirect offset.
-That means that the number after the parenthesis is used as an offset in
-the file.
-The value at that offset is read, and is used again as an offset
-in the file.
-Indirect offsets are of the form:
-.Em (x[.[bsl]][+-][y]) .
-The value of
-.Em x
-is used as an offset in the file.
-A byte, short or long is read at that offset
-depending on the
-.Em [bsl]
-type specifier.
-To that number the value of
-.Em y
-is added and the result is used as an offset in the file.
-The default type
-if one is not specified is long.
-.Pp
-Sometimes you do not know the exact offset as this depends on the length of
-preceding fields.
-You can specify an offset relative to the end of the
-last uplevel field (of course this may only be done for sublevel tests, i.e.
-test beginning with
-.Em > Ns ).
-Such a relative offset is specified using
-.Em &
-as a prefix to the offset.
-.Sh BUGS
-The formats
-.Em long ,
-.Em belong ,
-.Em lelong ,
-.Em short ,
-.Em beshort ,
-.Em leshort ,
-.Em date ,
-.Em bedate ,
-and
-.Em ledate
-are system-dependent; perhaps they should be specified as a number
-of bytes (2B, 4B, etc),
-since the files being recognized typically come from
-a system on which the lengths are invariant.
-.Pp
-There is (currently) no support for specified-endian data to be used in
-indirect offsets.
-.Sh SEE ALSO
-.Xr file 1
-.\"
-.\" From: guy@sun.uucp (Guy Harris)
-.\" Newsgroups: net.bugs.usg
-.\" Subject: /etc/magic's format isn't well documented
-.\" Message-ID: <2752@sun.uucp>
-.\" Date: 3 Sep 85 08:19:07 GMT
-.\" Organization: Sun Microsystems, Inc.
-.\" Lines: 136
-.\"
-.\" Here's a manual page for the format accepted by the "file" made by adding
-.\" the changes I posted to the S5R2 version.
-.\"
-.\" Modified for Ian Darwin's version of the file command.
OpenPOWER on IntegriCloud