Changeset 8de52d27 in jomae.git
- Timestamp:
- Jul 8, 2024, 2:01:01 AM (10 days ago)
- Branches:
- t13766
- Parents:
- 92f432b3
- Location:
- trac
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trac/htdocs/css/diff.css
r92f432b3 r8de52d27 144 144 vertical-align: top; 145 145 } 146 146 147 .diff table.trac-diff tbody tr:hover td { 147 148 background: #eed; -
trac/mimeview/patch.py
r92f432b3 r8de52d27 87 87 tolines[i] = to[:start] + '\0' + to[start:last] + \ 88 88 '\1' + to[last:] 89 90 space_re = re.compile(' ( +)|^ ')91 def htmlify(match):92 div, mod = divmod(len(match.group(0)), 2)93 return Markup(div * ' ' + mod * ' ')94 89 95 90 comments = [] … … 280 275 line = expandtabs(f[i], tabwidth, '\0\1') 281 276 line = escape(line, quotes=False) 282 line = '<del>'.join(space_re.sub(htmlify, seg) 283 for seg in line.split('\0')) 277 line = '<del>'.join(line.split('\0')) 284 278 line = line.replace('\1', '</del>') 285 279 f[i] = Markup(line) … … 289 283 line = expandtabs(t[i], tabwidth, '\0\1') 290 284 line = escape(line, quotes=False) 291 line = '<ins>'.join(space_re.sub(htmlify, seg) 292 for seg in line.split('\0')) 285 line = '<ins>'.join(line.split('\0')) 293 286 line = line.replace('\1', '</ins>') 294 287 t[i] = Markup(line) -
trac/mimeview/tests/patch.data
r92f432b3 r8de52d27 52 52 </tr> 53 53 <tr class="last"> 54 <th> </th><th>4</th><td class="r"><span>base<ins> modified</ins></span></td>54 <th> </th><th>4</th><td class="r"><span>base<ins>modified</ins></span></td> 55 55 </tr> 56 56 </tbody> … … 100 100 </tr> 101 101 <tr> 102 <th>2</th><th> </th><td class="l"><span><em> No newline at end of file</em></span></td>102 <th>2</th><th> </th><td class="l"><span><em>No newline at end of file</em></span></td> 103 103 </tr> 104 104 … … 150 150 </tr> 151 151 <tr class="last"> 152 <th> </th><th>2</th><td class="r"><span><em> No newline at end of file</em></span></td>152 <th> </th><th>2</th><td class="r"><span><em>No newline at end of file</em></span></td> 153 153 </tr> 154 154 </tbody> -
trac/mimeview/tests/patch.py
r92f432b3 r8de52d27 107 107 '-aa\tb', 108 108 '+aaxb'], 8) 109 self.assertEqual('aa<del> </del>b',109 self.assertEqual('aa<del> </del>b', 110 110 str(changes[0]['diffs'][0][0]['base']['lines'][0])) 111 111 self.assertEqual('aa<ins>x</ins>b', … … 122 122 self.assertEqual('<del></del>*a', 123 123 str(changes[0]['diffs'][0][0]['base']['lines'][0])) 124 self.assertEqual('<ins> </ins>*a',124 self.assertEqual('<ins></ins>*a', 125 125 str(changes[0]['diffs'][0][0]['changed']['lines'][0])) 126 126 -
trac/versioncontrol/diff.py
r92f432b3 r8de52d27 198 198 'equal': 'unmod'} 199 199 200 space_re = re.compile(' ( +)|^ ')201 def htmlify(match):202 div, mod = divmod(len(match.group(0)), 2)203 return Markup(div * ' ' + mod * ' ')204 205 200 def markup_intraline_changes(opcodes): 206 201 for tag, i1, i2, j1, j2 in opcodes: … … 234 229 for line in fromlines[i1:i2]: 235 230 line = line.expandtabs(tabwidth) 236 line = space_re.sub(htmlify, escape(line, quotes=False))237 231 blocks[-1]['base']['lines'].append(Markup(str(line))) 238 232 for line in tolines[j1:j2]: 239 233 line = line.expandtabs(tabwidth) 240 line = space_re.sub(htmlify, escape(line, quotes=False))241 234 blocks[-1]['changed']['lines'].append(Markup(str(line))) 242 235 else: … … 245 238 line = expandtabs(line, tabwidth, '\0\1') 246 239 line = escape(line, quotes=False) 247 line = '<del>'.join(space_re.sub(htmlify, seg) 248 for seg in line.split('\0')) 240 line = '<del>'.join(line.split('\0')) 249 241 line = line.replace('\1', '</del>') 250 242 blocks[-1]['base']['lines'].append( … … 254 246 line = expandtabs(line, tabwidth, '\0\1') 255 247 line = escape(line, quotes=False) 256 line = '<ins>'.join(space_re.sub(htmlify, seg) 257 for seg in line.split('\0')) 248 line = '<ins>'.join(line.split('\0')) 258 249 line = line.replace('\1', '</ins>') 259 250 blocks[-1]['changed']['lines'].append( -
trac/versioncontrol/tests/diff.py
r92f432b3 r8de52d27 225 225 self.assertEqual(block['type'], 'mod') 226 226 self.assertEqual(str(block['base']['lines'][0]), '<del></del>*a') 227 self.assertEqual(str(block['changed']['lines'][0]), 228 '<ins> </ins>*a') 227 self.assertEqual(str(block['changed']['lines'][0]), '<ins> </ins>*a') 229 228 230 229 def test_whitespace_marked_up2(self): … … 233 232 block = changes[0][0] 234 233 self.assertEqual(block['type'], 'mod') 235 self.assertEqual(str(block['base']['lines'][0]), 236 ' <del>a</del>') 237 self.assertEqual(str(block['changed']['lines'][0]), 238 ' <ins>b</ins>') 234 self.assertEqual(str(block['base']['lines'][0]), ' <del>a</del>') 235 self.assertEqual(str(block['changed']['lines'][0]), ' <ins>b</ins>') 239 236 240 237 def test_whitespace_marked_up3(self): … … 243 240 block = changes[0][0] 244 241 self.assertEqual(block['type'], 'mod') 245 self.assertEqual(str(block['base']['lines'][0]), 246 '<del>a</del> ') 247 self.assertEqual(str(block['changed']['lines'][0]), 248 '<ins>b</ins> ') 242 self.assertEqual(str(block['base']['lines'][0]), '<del>a</del> ') 243 self.assertEqual(str(block['changed']['lines'][0]), '<ins>b</ins> ') 249 244 250 245 def test_expandtabs_works_right(self): … … 254 249 self.assertEqual(block['type'], 'mod') 255 250 self.assertEqual(str(block['base']['lines'][0]), 256 'aa<del> </del>b')251 'aa<del> </del>b') 257 252 self.assertEqual(str(block['changed']['lines'][0]), 258 253 'aa<ins>x</ins>b')
Note:
See TracChangeset
for help on using the changeset viewer.