From: Gurusamy Sarathy <gsar@cpan.org>
Date: Thu, 9 Mar 2000 11:17:07 +0000 (+0000)
Subject: patch from Larry to make -T filetest algorithm recognize utf8 as
X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=b3f66c6826305b811380423899df98c19b2337d3;p=p5sagit%2Fp5-mst-13.2.git

patch from Larry to make -T filetest algorithm recognize utf8 as
"text"

p4raw-id: //depot/perl@5625
---

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' &&