[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] dfa: do not accept [[:UPPER:]] or [[:LOWER:]] internally
From: |
Jim Meyering |
Subject: |
[PATCH] dfa: do not accept [[:UPPER:]] or [[:LOWER:]] internally |
Date: |
Thu, 11 Mar 2010 16:35:41 +0100 |
If anyone presents a case for accepting uses like [[:UPPER:]] or
[[:LoWeR:]], we can always revert this change later --
and add a test case demonstrating the need.
$ grep '[[:UPPER:]]'
grep: Invalid character class name
>From 526c487f454f9538497a3099216476bbad219d19 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Thu, 11 Mar 2010 16:24:47 +0100
Subject: [PATCH] dfa: do not accept [[:UPPER:]] or [[:LOWER:]] internally
* src/dfa.c (parse_bracket_exp_mb): Those class names are not
valid, and rejected elsewhere, so there is no point in allowing
upper or mixed-case versions here.
---
src/dfa.c | 14 ++++++--------
1 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/src/dfa.c b/src/dfa.c
index a81dc83..780b782 100644
--- a/src/dfa.c
+++ b/src/dfa.c
@@ -526,15 +526,13 @@ parse_bracket_exp_mb (void)
if (delim == ':')
/* build character class. */
{
- wctype_t wt;
-
+ char const *class
+ = (case_fold && (!strcmp (str, "upper")
+ || !strcmp (str, "lower"))
+ ? "alpha"
+ : str);
/* Query the character class as wctype_t. */
- if (case_fold
- && (!strcasecmp (str, "upper")
- || !strcasecmp (str, "lower")))
- wt = wctype ("alpha");
- else
- wt = wctype (str);
+ wctype_t wt = wctype (class);
if (ch_classes_al == 0)
MALLOC(work_mbc->ch_classes, wctype_t, ++ch_classes_al);
--
1.7.0.2.393.gfb6b
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] dfa: do not accept [[:UPPER:]] or [[:LOWER:]] internally,
Jim Meyering <=