125 ['# HG changeset patch', '# Date z'] |
124 ['# HG changeset patch', '# Date z'] |
126 >>> inserthgheader(['# HG changeset patch', ''], '# Date ', 'z') |
125 >>> inserthgheader(['# HG changeset patch', ''], '# Date ', 'z') |
127 ['# HG changeset patch', '# Date z', ''] |
126 ['# HG changeset patch', '# Date z', ''] |
128 >>> inserthgheader(['# HG changeset patch', '# User y'], '# Date ', 'z') |
127 >>> inserthgheader(['# HG changeset patch', '# User y'], '# Date ', 'z') |
129 ['# HG changeset patch', '# User y', '# Date z'] |
128 ['# HG changeset patch', '# User y', '# Date z'] |
|
129 >>> inserthgheader(['# HG changeset patch', '# Date x', '# User y'], |
|
130 ... '# User ', 'z') |
|
131 ['# HG changeset patch', '# Date x', '# User z'] |
130 >>> inserthgheader(['# HG changeset patch', '# Date y'], '# Date ', 'z') |
132 >>> inserthgheader(['# HG changeset patch', '# Date y'], '# Date ', 'z') |
131 ['# HG changeset patch', '# Date z'] |
133 ['# HG changeset patch', '# Date z'] |
132 >>> inserthgheader(['# HG changeset patch', '', '# Date y'], '# Date ', 'z') |
134 >>> inserthgheader(['# HG changeset patch', '', '# Date y'], '# Date ', 'z') |
133 ['# HG changeset patch', '# Date z', '', '# Date y'] |
135 ['# HG changeset patch', '# Date z', '', '# Date y'] |
134 >>> inserthgheader(['# HG changeset patch', '# Parent y'], '# Date ', 'z') |
136 >>> inserthgheader(['# HG changeset patch', '# Parent y'], '# Date ', 'z') |
135 ['# HG changeset patch', '# Date z', '# Parent y'] |
137 ['# HG changeset patch', '# Date z', '# Parent y'] |
136 """ |
138 """ |
137 start = lines.index('# HG changeset patch') + 1 |
139 start = lines.index('# HG changeset patch') + 1 |
138 newindex = HGHEADERS.index(header) |
140 newindex = HGHEADERS.index(header) |
|
141 bestpos = len(lines) |
139 for i in range(start, len(lines)): |
142 for i in range(start, len(lines)): |
140 line = lines[i] |
143 line = lines[i] |
|
144 if not line.startswith('# '): |
|
145 bestpos = min(bestpos, i) |
|
146 break |
141 for lineindex, h in enumerate(HGHEADERS): |
147 for lineindex, h in enumerate(HGHEADERS): |
142 if line.startswith(h): |
148 if line.startswith(h): |
143 if lineindex < newindex: |
|
144 break # next line |
|
145 if lineindex == newindex: |
149 if lineindex == newindex: |
146 lines[i] = header + value |
150 lines[i] = header + value |
147 else: |
151 return lines |
148 lines.insert(i, header + value) |
152 if lineindex > newindex: |
149 return lines |
153 bestpos = min(bestpos, i) |
150 lines.append(header + value) |
154 break # next line |
|
155 lines.insert(bestpos, header + value) |
151 return lines |
156 return lines |
152 |
157 |
153 def insertplainheader(lines, header, value): |
158 def insertplainheader(lines, header, value): |
154 if lines and lines[0] and ':' not in lines[0]: |
159 if lines and lines[0] and ':' not in lines[0]: |
155 lines.insert(0, '') |
160 lines.insert(0, '') |