HomeFreeBSD

awk: revert to upstream behavior for ranges for gawk compatibility

Description

awk: revert to upstream behavior for ranges for gawk compatibility

In 2005, FreeBSD changed one-true-awk to honor the locale's collating
order. This was billed as a temporary patch. It was also compatible with
the then-current behavior of gawk. That temporary patch has lasted 16
years now.

However, IEEE Std 1003.1-2008 changed the behaivor of ranges in regular
expressions outside of the "C" and "POSIX" locales to be undefined.

Starting in 2011, gawk 4.0 stopped using the locale for the range
regular expressions and used the traditional behavior only. The
maintainer had grown weary of answering why '[A-Z]' would sometimes
match lower-case expressions. The details about are explained here:
https://www.gnu.org/software/gawk/manual/html_node/Ranges-and-Locales.html

To restore compatibility with other implementaitons of awk, revert this
patch. FreeBSD is the odd-system out. It also has the nice side effect
of eliminating the last of our differences with upstream one-true-awk.

Reviewed by: cy, rgrimes
MFC After: 2 weeks
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D31114

(cherry picked from commit 628bd30ab5a492839b84dbf2aaf25848dae3866a)

Details

Provenance
impAuthored on Jul 22 2021, 2:22 AM
Reviewer
cy
Differential Revision
D31114: awk: revert to upstream behavior for ranges for gawk compatibility
Parents
rGea4936b4708e: awk: Reduce diffs with upstream to almost nothing.
Branches
Unknown
Tags
Unknown