Hide Forgot
Description of problem: Perl regular expression '\p{S}' should match any symbol, similarly '\P{S}' should match any character which is not a symbol. This works fine for basic ascii characters such as '$' but is broken for unicode characters such as '€'. # echo '€' | grep -P '\p{S}' € # echo '€' | grep -P '\P{S}' € # echo '$' | grep -P '\p{S}' $ # echo '$' | grep -P '\P{S}' Looks to be a grep bug as the same works fine in pcregrep: # echo '€' | pcregrep -u '\p{S}' € # echo '€' | pcregrep -u '\P{S}' Tested under cs_CZ.UTF-8 and en_US.UTF-8 locales. Version-Release number of selected component (if applicable): grep-2.6.3-2.el6.x86_64
This request was evaluated by Red Hat Product Management for inclusion in the current release of Red Hat Enterprise Linux. Because the affected component is not scheduled to be updated in the current release, Red Hat is unfortunately unable to address this request at this time. Red Hat invites you to ask your support representative to propose this request, if appropriate and relevant, in the next release of Red Hat Enterprise Linux. If you would like it considered as an exception in the current release, please ask your support representative.
This is bug in grep. It does not request UTF-8 processing in pcre when running in UTF-8 locale. Current behavior is identical to ASCII mode: $ printf '/%s/\n%s\n' '\P{S}' '€' | ./pcretest PCRE version 8.31 2012-07-06 re> data> 0: \xe2 data> But it should run in UTF-8 mode: $ printf '/%s/8\n%s\n' '\P{S}' '€' | ./pcretest PCRE version 8.31 2012-07-06 re> data> No match data> The difference is the "/8" modifier. The PCRE API has PCRE_UTF8 option in pcre_compile(3) for that and grep should pass it to pcre_compile(3) when UTF-8 locale is in effect.
Created attachment 606796 [details] Proposed fIx This is patch against development grep, it applies to 2.14 too.
There seems to be already an upstream report with different fix <http://savannah.gnu.org/patch/?3934>.
This request was evaluated by Red Hat Product Management for inclusion in the current release of Red Hat Enterprise Linux. Because the affected component is not scheduled to be updated in the current release, Red Hat is unable to address this request at this time. Red Hat invites you to ask your support representative to propose this request, if appropriate, in the next release of Red Hat Enterprise Linux.
(In reply to comment #4) Thanks. > There seems to be already an upstream report with different fix > <http://savannah.gnu.org/patch/?3934>. > Also linked to this BZ, waiting for upstream resolution.
Fixed in upstream commit 003797b2d498fd16f67790a3c1129df9d0eb4722.
(In reply to comment #7) > Fixed in upstream commit 003797b2d498fd16f67790a3c1129df9d0eb4722. Thanks.
Fixed in grep-2.6.3-6.el6. Test is included, it is run during the compilation.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2014-0622.html