[Zope3-checkins] CVS: Products3/z3checkins - message.py:1.2
Marius Gedminas
mgedmin@codeworks.lt
Thu, 3 Apr 2003 04:18:17 -0500
Update of /cvs-repository/Products3/z3checkins
In directory cvs.zope.org:/tmp/cvs-serv27939
Modified Files:
message.py
Log Message:
Handle CVS import messages, messages without signatures, and messages with
DOS line endings.
=== Products3/z3checkins/message.py 1.1.1.1 => 1.2 ===
--- Products3/z3checkins/message.py:1.1.1.1 Thu Apr 3 03:19:59 2003
+++ Products3/z3checkins/message.py Thu Apr 3 04:17:46 2003
@@ -153,7 +153,7 @@
in_log_msg = 0
for line in lines:
if in_log_msg:
- if line.startswith('=== '):
+ if line.startswith('=== ') or line == "Status:\n":
break
else:
log_message.append(line)
@@ -208,20 +208,27 @@
def body(self):
"""Colorizes checkin message body."""
- text = self.context.body.replace('&', '&') \
+ text = self.context.body.replace('\r', '')\
+ .replace('&', '&') \
.replace('<', '<') \
.replace('>', '>') \
.replace('"', '"')
- m = re.match('(?s)(.*?\nLog [mM]essage:\n)(.*?\n)\n*(===.*\n)?'
- '(_______________________________________________.*)\Z',
+ m = re.match('(?s)(.*?\nLog [mM]essage:\n)(.*?\n)\n*(Status:\n\n.*?)?'
+ '(===.*?)?'
+ '(\n_______________________________________________.*)?\Z',
text)
if not m:
- return self.context.body
- intro, log, diff, sig = m.groups()
+ return '<pre>%s</pre>' % text
+ intro, log, import_status, diff, sig = m.groups()
log = '<p>%s</p>' % '</p><p>'.join(log.splitlines())
+ if import_status is None:
+ import_status = ''
+
# Unified diff
+ if diff is None:
+ diff = ''
def colorize(style):
return r'<div class="%s">\1</div>' % style
diff = re.sub(r'(?m)^(===.*)$', colorize("file"), diff)
@@ -234,6 +241,10 @@
# Postprocess for Mozilla
diff = re.sub('</div>\n', '\n</div>', diff)
- return '<pre>%s</pre><div class="log">%s</div><pre>%s' \
- '<div class="signature">%s</div></pre>' \
- % (intro, log, diff, sig)
+ if sig is None:
+ sig = ''
+ else:
+ sig = '<div class="signature">%s</div>' % sig
+
+ return '<pre>%s</pre><div class="log">%s</div><pre>%s%s%s</pre>' \
+ % (intro, log, import_status, diff, sig)