mirror of
git://git.sv.gnu.org/coreutils
synced 2026-06-03 14:27:59 -04:00
(look_up_char_class): Take a string length argument.
Use strncmp, not strcmp and verify that string lengths are the same. (append_char_class): Update caller. From Andreas Schwab.
This commit is contained in:
@@ -560,13 +560,15 @@ unquote (s, len)
|
||||
in the global char_class_name array. Otherwise, return CC_NO_CLASS. */
|
||||
|
||||
static enum Char_class
|
||||
look_up_char_class (class_str)
|
||||
look_up_char_class (class_str, len)
|
||||
unsigned char *class_str;
|
||||
int len;
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < N_CHAR_CLASSES; i++)
|
||||
if (strcmp ((const char *) class_str, char_class_name[i]) == 0)
|
||||
if (strncmp ((const char *) class_str, char_class_name[i], len) == 0
|
||||
&& strlen (char_class_name[i]) == len)
|
||||
return (enum Char_class) i;
|
||||
return CC_NO_CLASS;
|
||||
}
|
||||
@@ -727,7 +729,7 @@ append_char_class (list, char_class_str, len)
|
||||
enum Char_class char_class;
|
||||
struct List_element *new;
|
||||
|
||||
char_class = look_up_char_class (char_class_str);
|
||||
char_class = look_up_char_class (char_class_str, len);
|
||||
if (char_class == CC_NO_CLASS)
|
||||
{
|
||||
char *tmp = make_printable_str (char_class_str, len);
|
||||
|
||||
Reference in New Issue
Block a user