From: Jim Meyering Date: Sat, 20 May 1995 12:08:35 +0000 (+0000) Subject: (look_up_char_class): Take a string length argument. X-Git-Tag: textutils-1_12_1~166 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e8db76575a4f77e8515426fd0c8b13bbc837a7ca;p=thirdparty%2Fcoreutils.git (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. --- diff --git a/src/tr.c b/src/tr.c index da4f9deb2f..5513976743 100644 --- a/src/tr.c +++ b/src/tr.c @@ -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);