I wrote, on Sun 25 Mar 2001:
>
> Here is the description from a Unixware 2.1 man page:
>
[snip]
>
> It shouldn't be too hard to update the XCUd5 description of "find"
> based on this.
It turned out to be a little harder than I expected - the text I have
come up with is below. In view of Andrew's warning about the time
constraints for getting POSIX interps into the revision, I have
submitted a POSIX.2 interp request with this as the suggested solution.
I think this means that this now becomes a matter for the POSIX.2
interps group, and further discussion of it here will probably be
discouraged.
Replace the description of the "-exec" primary with:
-exec utility_name [argument . . .] ;
-exec utility_name [argument . . .] {} +
The end of the primary expression shall be punctuated by a
semicolon or by a plus sign. Only a plus sign that follows
an argument containing the two characters "{}" shall
punctuate the end of the primary expression. Other uses of
the plus sign shall not be treated as special.
If the primary expression is punctuated by a semicolon, the
utility utility_name shall be invoked once for each path name
and the primary shall evaluate as true if the utility returns
a zero value as exit status. A utility_name or argument
containing only the two characters "{}" shall be replaced by
the current path name.
If the primary expression is punctuated by a plus sign, the
primary shall always evaluate as true, and the path names for
which the primary is evaluated shall be aggregated into sets.
The utility utility_name shall be invoked once for each set
of aggregated path names. An argument containing only the
two characters "{}" shall be replaced by the set of path
names, with each path name passed as a separate argument to
the invoked utility. The size of each set of path names
shall be limited such that execution of the utility does not
cause the system's {ARG_MAX} limit to be exceeded.
If a utility_name or argument string contains the two
characters "{}", but not just the two characters "{}", it
is implementation-defined whether find replaces those two
characters or uses the string without change. The current
directory for the invocation of utility_name shall be the
same as the current directory when the find utility was
started. If the utility_name names any of the special
built-in utilities in 3.14, the results are undefined.
Also, in the description of the "-ok" primary, change "except that find
shall request" to "except that the use of a plus sign to punctuate the end
of the primary expression need not be supported, and find shall request"
--
Geoff Clare yyy@xxxxxxxxxxx
UniSoft Limited, London, England. yyy@xxxxxxxxxx
|