~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/rules.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-02-11 06:15:33 UTC
  • mfrom: (5025.1.6 331095-malloc)
  • Revision ID: pqm@pqm.ubuntu.com-20100211061533-5glf4faoutadhql9
(mbp) avoid malloc(0)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2008, 2009, 2010 Canonical Ltd
 
1
# Copyright (C) 2008 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
21
21
 
22
22
from bzrlib import (
23
23
    config,
24
 
    cmdline,
 
24
    commands,
25
25
    errors,
26
26
    globbing,
27
27
    osutils,
64
64
        """
65
65
        raise NotImplementedError(self.get_selected_items)
66
66
 
67
 
    def get_single_value(self, path, preference_name):
68
 
        """Get a single preference for a single file.
69
 
        
70
 
        :returns: The string preference value, or None.
71
 
        """
72
 
        for key, value in self.get_selected_items(path, [preference_name]):
73
 
            return value
74
 
        return None
75
 
 
76
67
 
77
68
class _IniBasedRulesSearcher(_RulesSearcher):
78
69
 
83
74
 
84
75
        :param inifile: the name of the file or a sequence of lines.
85
76
        """
86
 
        self._cfg = configobj.ConfigObj(inifile, encoding='utf-8')
 
77
        options = {'encoding': 'utf-8'}
 
78
        self._cfg = configobj.ConfigObj(inifile, options=options)
87
79
        sections = self._cfg.keys()
88
80
        patterns = []
89
81
        self.pattern_to_section = {}
90
82
        for s in sections:
91
83
            if s.startswith(FILE_PREFS_PREFIX):
92
 
                file_patterns = cmdline.split(s[FILE_PREFS_PREFIX_LEN:])
 
84
                file_patterns = commands.shlex_split_unicode(
 
85
                    s[FILE_PREFS_PREFIX_LEN:])
93
86
                patterns.extend(file_patterns)
94
87
                for fp in file_patterns:
95
88
                    self.pattern_to_section[fp] = s