diffutils: Standards conformance
17 Standards conformance
************************
In a few cases, the GNU utilities' default behavior is incompatible with
the POSIX standard. To suppress these incompatibilities, define the
'POSIXLY_CORRECT' environment variable. Unless you are checking for
POSIX conformance, you probably do not need to define 'POSIXLY_CORRECT'.
Normally options and operands can appear in any order, and programs
act as if all the options appear before any operands. For example,
'diff lao tzu -C 2' acts like 'diff -C 2 lao tzu', since '2' is an
option-argument of '-C'. However, if the 'POSIXLY_CORRECT' environment
variable is set, options must appear before operands, unless otherwise
specified for a particular command.
Newer versions of POSIX are occasionally incompatible with older
versions. For example, older versions of POSIX allowed the command
'diff -c -10' to have the same meaning as 'diff -C 10', but POSIX
1003.1-2001 'diff' no longer allows digit-string options like '-10'.
The GNU utilities normally conform to the version of POSIX that is
standard for your system. To cause them to conform to a different
version of POSIX, define the '_POSIX2_VERSION' environment variable to a
value of the form YYYYMM specifying the year and month the standard was
adopted. Two values are currently supported for '_POSIX2_VERSION':
'199209' stands for POSIX 1003.2-1992, and '200112' stands for POSIX
1003.1-2001. For example, if you are running older software that
assumes an older version of POSIX and uses 'diff -c -10', you can work
around the compatibility problems by setting '_POSIX2_VERSION=199209' in
your environment.