svn commit: r253888 - stable/9/usr.bin/grep/regex

Andrey A. Chernov ache at FreeBSD.org
Fri Aug 2 17:13:29 UTC 2013


Author: ache
Date: Fri Aug  2 17:13:29 2013
New Revision: 253888
URL: http://svnweb.freebsd.org/changeset/base/253888

Log:
  MFC r253810
  
  grep -i does not work for simple patterns and single byte locales, like
  	LANG=ru_RU.KOI8-R grep -i <some single KOI8-R letter>
  Fix it.
  
  Approved by:    re (delphij,kib)

Modified:
  stable/9/usr.bin/grep/regex/tre-fastmatch.c
Directory Properties:
  stable/9/usr.bin/grep/   (props changed)

Modified: stable/9/usr.bin/grep/regex/tre-fastmatch.c
==============================================================================
--- stable/9/usr.bin/grep/regex/tre-fastmatch.c	Fri Aug  2 14:44:11 2013	(r253887)
+++ stable/9/usr.bin/grep/regex/tre-fastmatch.c	Fri Aug  2 17:13:29 2013	(r253888)
@@ -395,7 +395,7 @@ static int	fastcmp(const fastmatch_t *fg
 	    if (p == NULL)						\
 	      return REG_ESPACE;					\
 	    for (unsigned int i = 0; i < plen; i++)			\
-	      p[i] = tolower(pat[i]);					\
+	      p[i] = tolower((unsigned char)pat[i]);                    \
 	    _CALC_BMGS(arr, p, plen);					\
 	    xfree(p);							\
 	  }								\
@@ -1030,7 +1030,7 @@ fastcmp(const fastmatch_t *fg, const voi
 	    continue;
 
 	  /* Compare */
-	  if (fg->icase ? (tolower(pat_byte[i]) == tolower(str_byte[i]))
+	  if (fg->icase ? (tolower((unsigned char)pat_byte[i]) == tolower((unsigned char)str_byte[i]))
 		    : (pat_byte[i] == str_byte[i]))
 	  continue;
       }


More information about the svn-src-all mailing list