[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #52137] unexpected behaviour when combining -I and -n

From: Geoff Clare
Subject: [bug #52137] unexpected behaviour when combining -I and -n
Date: Thu, 16 Nov 2017 04:42:01 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0

Follow-up Comment #10, bug #52137 (project findutils):

James wrote in comment #8:

> In issue 6, -L and -n are specified to interact such that the last-specified
takes effect. The -I option is specified, but no interaction with -L or -n is
called out.
> In issue 7, we have the previously quoted phrase:
> "The -I, -L, and -n options are mutually-exclusive. Some implementations use
the last one specified if more than one is given on a command line; other
implementations treat combinations of the options in different ways."
> However, this quote is taken from the Rationale section which is
non-normative (per the comment earlier in the document, "The following
sections are informative.")
> Since the text stating that these options are mutually exclusive is
non-normative, and that the text doesn't seem to indicate that the user should
expect anything other than a perhaps-unexpected combination of behaviours, I'm
left not totally sure that the xargs implementation is allowed to issue a
> Geoff, do you have an opinion on whether a diagnostic is permissible?

You noticed the descriptive text changes but you missed the all-important
SYNOPSIS change.

Issue 6: [-I replstr][-L number][-n number

Issue 7: [-I replstr|-L number|-n number]

The vertical bars indicate that the options are mutually exclusive.

So yes you can write a diagnostic.

> If we do issue a diagnostic, but all invocations of the named utility return
0, is it still conforming for xargs also to return 0? 

The general rule is that if you write a diagnostic, the exit status has to be
non-zero.  However, in this particular case there is a get-out courtesy of XBD
12.1 item 8:

"The use of conflicting mutually-exclusive arguments produces undefined
results, unless a utility description specifies otherwise."

Since it says the result is "undefined", you can do anything you want.


Reply to this item at:


  Message sent via/by Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]