From b3f66c6826305b811380423899df98c19b2337d3 Mon Sep 17 00:00:00 2001 From: Gurusamy Sarathy Date: Thu, 9 Mar 2000 11:17:07 +0000 Subject: [PATCH] patch from Larry to make -T filetest algorithm recognize utf8 as "text" p4raw-id: //depot/perl@5625 --- pp_sys.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/pp_sys.c b/pp_sys.c index da352a2..a529b25 100644 --- a/pp_sys.c +++ b/pp_sys.c @@ -3078,9 +3078,26 @@ PP(pp_fttext) #else else if (*s & 128) { #ifdef USE_LOCALE - if (!(PL_op->op_private & OPpLOCALE) || !isALPHA_LC(*s)) -#endif - odd++; + if ((PL_op->op_private & OPpLOCALE) && isALPHA_LC(*s)) + continue; +#endif + /* utf8 characters don't count as odd */ + if (*s & 0x40) { + int ulen = UTF8SKIP(s); + if (ulen < len - i) { + int j; + for (j = 1; j < ulen; j++) { + if ((s[j] & 0xc0) != 0x80) + goto not_utf8; + } + --ulen; /* loop does extra increment */ + s += ulen; + i += ulen; + continue; + } + } + not_utf8: + odd++; } else if (*s < 32 && *s != '\n' && *s != '\r' && *s != '\b' && -- 2.7.4