Mercurial > hg
comparison mercurial/config.py @ 14642:fdcdb221a922
config: handle comment lines in continuations (issue2854)
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 16 Jun 2011 13:24:44 -0500 |
parents | 4e3eda05189b |
children | 4392594746f6 |
comparison
equal
deleted
inserted
replaced
14641:f2789767a2c4 | 14642:fdcdb221a922 |
---|---|
72 | 72 |
73 def parse(self, src, data, sections=None, remap=None, include=None): | 73 def parse(self, src, data, sections=None, remap=None, include=None): |
74 sectionre = re.compile(r'\[([^\[]+)\]') | 74 sectionre = re.compile(r'\[([^\[]+)\]') |
75 itemre = re.compile(r'([^=\s][^=]*?)\s*=\s*(.*\S|)') | 75 itemre = re.compile(r'([^=\s][^=]*?)\s*=\s*(.*\S|)') |
76 contre = re.compile(r'\s+(\S|\S.*\S)\s*$') | 76 contre = re.compile(r'\s+(\S|\S.*\S)\s*$') |
77 emptyre = re.compile(r'(;|#|\s*$)') | 77 emptyre = re.compile(r'\s*(;|#|\s*$)') |
78 commentre = re.compile(r'(;|#)') | |
78 unsetre = re.compile(r'%unset\s+(\S+)') | 79 unsetre = re.compile(r'%unset\s+(\S+)') |
79 includere = re.compile(r'%include\s+(\S|\S.*\S)\s*$') | 80 includere = re.compile(r'%include\s+(\S|\S.*\S)\s*$') |
80 section = "" | 81 section = "" |
81 item = None | 82 item = None |
82 line = 0 | 83 line = 0 |
83 cont = False | 84 cont = False |
84 | 85 |
85 for l in data.splitlines(True): | 86 for l in data.splitlines(True): |
86 line += 1 | 87 line += 1 |
87 if cont: | 88 if cont: |
89 if commentre.match(l): | |
90 continue | |
88 m = contre.match(l) | 91 m = contre.match(l) |
89 if m: | 92 if m: |
90 if sections and section not in sections: | 93 if sections and section not in sections: |
91 continue | 94 continue |
92 v = self.get(section, item) + "\n" + m.group(1) | 95 v = self.get(section, item) + "\n" + m.group(1) |