.IR hash ]
.RI [ file
\&...]
+ .br
+ .B fshash
+ .RB \-u
+ .B \-c
+ .I cache
+ .RB [ \-H
+ .IR hash ]
+ .RI [ dir ]
.SH DESCRIPTION
The
.B fshash
.I hash
function, which can be any hash function supported by Python's
.BR hashlib .
-If this option may be omitted then the hash is read from the cache file;
-if there is no cache file either, then an error is reported.
+This option may be omitted: if it is, then the hash is read from the
+cache file; if there is no cache file either, then an error is reported.
+ .TP
+ .B \-u, \-\-udiff
+ Rather than produce a manifest, read a unified
+ .BR diff (1)
+ from standard input, and clear from the cache all files mentioned as
+ being different. Filenames in the diff are considered relative to
+ .I dir ,
+ defaulting to the current working directory.
.PP
Positional arguments are interpreted as files and directories to be
processed, in order. A directory name which ends in
object type and any special information about it, in square brackets,
and padded with spaces so as to take the same width as a hash; see
below for details.
- as follows.
.hP 2.
A `virtual inode identifier': a string which will be the same in two
lines if and only if they represent hard links to the same underlying
.BR symbolic-link .
The name is followed by
.RB ` \~\->\~ '
-and the link target (or by
+and the link target (or
.BI <E nn \~ message >
if there was an error reading the link destination).
.TP