changeset 6473:9c897ffd3637

Backed out changeset 7f4257b5cbfc util.binary heuristic cannot be trusted when decoding working directory files.
author Patrick Mezard <pmezard@gmail.com>
date Fri, 04 Apr 2008 23:09:54 +0200
parents 7f4257b5cbfc
children 6ed371423d34
files hgext/win32text.py
diffstat 1 files changed, 11 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/win32text.py	Thu Mar 13 10:42:46 2008 +0100
+++ b/hgext/win32text.py	Fri Apr 04 23:09:54 2008 +0200
@@ -22,7 +22,6 @@
 # [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
@@ -47,15 +46,19 @@
 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 util.binary(s):
-        return s
-    return dumbdecode(s, cmd, **kwargs)
+    if clevertest(s, cmd):
+        return dumbdecode(s, cmd, **kwargs)
+    return s
 
 def cleverencode(s, cmd):
-    if util.binary(s):
-        return s
-    return dumbencode(s, cmd)
+    if clevertest(s, cmd):
+        return dumbencode(s, cmd)
+    return s
 
 _filters = {
     'dumbdecode:': dumbdecode,
@@ -72,7 +75,7 @@
             if f not in c:
                 continue
             data = c[f].data()
-            if not util.binary(data) and '\r\n' in data:
+            if '\0' not in data and '\r\n' in data:
                 if not halt:
                     ui.warn(_('Attempt to commit or push text file(s) '
                               'using CRLF line endings\n'))