hgext/win32text.py
author Giorgos Keramidas <keramida@ceid.upatras.gr>
Wed, 13 Jun 2007 15:02:09 +0300
changeset 4566 9b3a818adae6
parent 1300 e58b1c9a0dec
child 4848 30762680fcd2
permissions -rw-r--r--
test-patchbomb: sed -e may not work with extended regexps Non-GNU versions of the sed(1) utility (i.e. on Solaris or BSD) may not support extended regexps (i.e. including \| branches), or may need a special option to enable it (like -E instead of -e). Expand the sed RE in tests/test-patchbomb to fix running this test on FreeBSD and Solaris.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1297
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     1
import mercurial.util
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     2
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     3
def dumbdecode(s, cmd):
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     4
    return s.replace('\n', '\r\n')
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     5
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     6
def dumbencode(s, cmd):
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     7
    return s.replace('\r\n', '\n')
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     8
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     9
def clevertest(s, cmd):
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    10
    if '\0' in s: return False
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    11
    return True
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    12
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    13
def cleverdecode(s, cmd):
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    14
    if clevertest(s, cmd):
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    15
        return dumbdecode(s, cmd)
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    16
    return s
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    17
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    18
def cleverencode(s, cmd):
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    19
    if clevertest(s, cmd):
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    20
        return dumbencode(s, cmd)
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    21
    return s
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    22
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    23
mercurial.util.filtertable.update({
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    24
    'dumbdecode:': dumbdecode,
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    25
    'dumbencode:': dumbencode,
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    26
    'cleverdecode:': cleverdecode,
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    27
    'cleverencode:': cleverencode,
496074e0a38b Add win32text extension module.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    28
    })