win32text: use util.binary to detect \0
authorChristian Ebert <blacktrash@gmx.net>
Thu, 13 Mar 2008 10:42:46 +0100
changeset 6247 7f4257b5cbfc
parent 6242 a375ffc2aa1b
child 6248 b4fca699c33d
child 6473 9c897ffd3637
win32text: use util.binary to detect \0
hgext/win32text.py
--- a/hgext/win32text.py	Wed Mar 12 15:44:08 2008 -0700
+++ b/hgext/win32text.py	Thu Mar 13 10:42:46 2008 +0100
@@ -22,6 +22,7 @@
 # [hooks]
 # pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf
 
+from mercurial import util
 from mercurial.i18n import gettext as _
 from mercurial.node import bin, short
 import re
@@ -46,19 +47,15 @@
 def dumbencode(s, cmd):
     return s.replace('\r\n', '\n')
 
-def clevertest(s, cmd):
-    if '\0' in s: return False
-    return True
-
 def cleverdecode(s, cmd, **kwargs):
-    if clevertest(s, cmd):
-        return dumbdecode(s, cmd, **kwargs)
-    return s
+    if util.binary(s):
+        return s
+    return dumbdecode(s, cmd, **kwargs)
 
 def cleverencode(s, cmd):
-    if clevertest(s, cmd):
-        return dumbencode(s, cmd)
-    return s
+    if util.binary(s):
+        return s
+    return dumbencode(s, cmd)
 
 _filters = {
     'dumbdecode:': dumbdecode,
@@ -75,7 +72,7 @@
             if f not in c:
                 continue
             data = c[f].data()
-            if '\0' not in data and '\r\n' in data:
+            if not util.binary(data) and '\r\n' in data:
                 if not halt:
                     ui.warn(_('Attempt to commit or push text file(s) '
                               'using CRLF line endings\n'))