~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/globbing.py

(parthm) Better regex compile errors (Parth Malwankar)

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
import re
24
24
 
 
25
from bzrlib import errors
25
26
from bzrlib.trace import (
26
 
    warning
 
27
    mutter,
 
28
    warning,
27
29
    )
28
30
 
29
31
 
209
211
 
210
212
        :return A matching pattern or None if there is no matching pattern.
211
213
        """
212
 
        for regex, patterns in self._regex_patterns:
213
 
            match = regex.match(filename)
214
 
            if match:
215
 
                return patterns[match.lastindex -1]
 
214
        try:
 
215
            for regex, patterns in self._regex_patterns:
 
216
                match = regex.match(filename)
 
217
                if match:
 
218
                    return patterns[match.lastindex -1]
 
219
        except errors.InvalidPattern, e:
 
220
            # We can't show the default e.message to the user as thats for
 
221
            # the combined pattern we sent to regex. Instead we indicate to
 
222
            # the user that an ignore file needs fixing.
 
223
            mutter('Invalid pattern found in regex: %s.', e.message)
 
224
            e.message = "File ~/.bazaar/ignore or .bzrignore contains errors."
 
225
            raise e
216
226
        return None
217
227
 
218
228
class ExceptionGlobster(object):