--- svn2feed.py.orig	2008-06-27 11:50:38.000000000 +0200
+++ svn2feed.py	2008-06-30 11:31:35.000000000 +0200
@@ -78,10 +78,11 @@
 
 import getopt
 import os
-import popen2
+import subprocess
 import cPickle as pickle
 import datetime
 import time
+import re
 
 def usage_and_exit(errmsg=None):
     """Print a usage message, plus an ERRMSG (if provided), then exit.
@@ -127,28 +128,29 @@
         revision = str(revision)
 
         cmd = [self.svnlook_cmd, 'info', '-r', revision, self.repos_path]
-        child_out, child_in, child_err = popen2.popen3(cmd)
-        info_lines = child_out.readlines()
-        child_out.close()
-        child_in.close()
-        child_err.close()
+        proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
+        proc.wait()
+        info_lines = proc.stdout.readlines()
 
         cmd = [self.svnlook_cmd, 'changed', '-r', revision, self.repos_path]
-        child_out, child_in, child_err = popen2.popen3(cmd)
-        changed_data = child_out.read()
-        child_out.close()
-        child_in.close()
-        child_err.close()
-
-        desc = ("\nRevision: %s\nLog: %sModified: \n%s"
-                % (revision, info_lines[3], changed_data))
+        proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
+        proc.wait()
+        changed_data = proc.stdout.readlines()
+
+        desc = '<p style="font-weight: bold;">Log Message:</p>\n'
+        desc += '<pre>%s</pre>\n' % '\n'.join(info_lines[3:])
+        desc += '<p style="font-weight: bold;">Files Changed:</p>\n'
+        desc += '<ul>\n'
+        for f in changed_data:
+                desc += '<li>%s</li>\n' % re.split('\s', f, 1)[1]
+        desc += '</ul>'
 
         item_dict = {
             'author': info_lines[0].strip('\n'),
-            'title': "Revision %s" % revision,
+            'title': "[r%s] %s" % (revision, info_lines[3]),
             'link': self.item_url and "%s?rev=%s" % (self.item_url, revision),
             'date': self._format_updated_ts(info_lines[1]),
-            'description': "<pre>" + desc + "</pre>",
+            'description': desc,
             }
 
         return item_dict
@@ -411,13 +413,9 @@
         svnlook_cmd = 'svnlook'
         if svn_path is not None:
             svnlook_cmd = os.path.join(svn_path, 'svnlook')
-        child_out, child_in, child_err = popen2.popen3([svnlook_cmd,
-                                                        'youngest',
-                                                        repos_path])
-        cmd_out = child_out.readlines()
-        child_out.close()
-        child_in.close()
-        child_err.close()
+        cmd = [svnlook_cmd, 'youngest', repos_path]
+        proc = subprocess.Popen(cmd)
+        cmd_out = proc.stdout.readlines()
         try:
             revisions = [int(cmd_out[0])]
         except IndexError, msg:

