~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/osutils.py

  • Committer: Martin Pool
  • Date: 2005-08-18 05:52:29 UTC
  • Revision ID: mbp@sourcefrog.net-20050818055229-cac46ebce364d04c
- avoid compiling REs at module load time

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
    os.chmod(filename, mod)
38
38
 
39
39
 
40
 
_QUOTE_RE = re.compile(r'([^a-zA-Z0-9.,:/_~-])')
 
40
_QUOTE_RE = None
41
41
 
42
 
_SLASH_RE = re.compile(r'[\\/]+')
43
42
 
44
43
def quotefn(f):
45
44
    """Return a quoted filename filename
47
46
    This previously used backslash quoting, but that works poorly on
48
47
    Windows."""
49
48
    # TODO: I'm not really sure this is the best format either.x
 
49
    global _QUOTE_RE
 
50
    if _QUOTE_RE == None:
 
51
        _QUOTE_RE = re.compile(r'([^a-zA-Z0-9.,:/_~-])')
 
52
        
50
53
    if _QUOTE_RE.search(f):
51
54
        return '"' + f + '"'
52
55
    else:
334
337
        return email
335
338
 
336
339
 
337
 
_EMAIL_RE = re.compile(r'[\w+.-]+@[\w+.-]+')
338
340
def user_email(branch):
339
341
    """Return just the email component of a username."""
340
342
    e = _get_user_id(branch)
341
343
    if e:
342
 
        m = _EMAIL_RE.search(e)
 
344
        m = re.search(r'[\w+.-]+@[\w+.-]+', e)
343
345
        if not m:
344
346
            raise BzrError("%r doesn't seem to contain a reasonable email address" % e)
345
347
        return m.group(0)