]> projects.mako.cc - mw/commitdiff
fixed issue with special char in filename (related to utf8)
authorkeby <keby@erebor.(none)>
Thu, 20 May 2010 20:57:51 +0000 (22:57 +0200)
committerkeby <keby@erebor.(none)>
Thu, 20 May 2010 20:57:51 +0000 (22:57 +0200)
src/mw/clicommands.py
src/mw/metadir.py

index e02ec798eb589507afe6fe2984ed7f0e8422c3a2..55e4027431d56dab01e9e172557d2f0cc697caf2 100644 (file)
@@ -230,7 +230,6 @@ class CommitCommand(CommandBase):
                 if revid != awaitedrevid :
                      print "Ignoring %s - Edition conflict detected %s - %s " % ( file , awaitedrevid, revid)
                      continue
-                raw_input()
                 edittoken = response['query']['pages'][pageid]['edittoken']
                 # FIXME use basetimestamp and starttimestamp
                 filename = os.path.join(self.metadir.root, file)
index 3f8d96782551c01bb2f4cf66c34b6b72bebb67ea..3b7828dfb5194e4e7e0a79c779549231ec48d006 100644 (file)
@@ -102,6 +102,7 @@ class Metadir(object):
     def get_pageid_from_pagename(self, pagename):
         fd = file(os.path.join(self.location, 'cache', 'pagedict'), 'r')
         pagedict = json.loads(fd.read())
+        pagename = pagename.decode('utf-8')
         if pagename in pagedict.keys():
             return pagedict[pagename]
         else:
@@ -177,6 +178,7 @@ class Metadir(object):
         # oldrvid=0 means latest fetched revision
         # newrvid=0 means working copy
         filename = mw.api.pagename_to_filename(pagename) + '.wiki'
+        filename = filename.decode('utf-8')
         pageid = self.get_pageid_from_pagename(pagename)
         if not pageid:
             raise ValueError('page named %s has not been fetched' % pagename)
@@ -185,9 +187,9 @@ class Metadir(object):
                 oldrvid = self.pages_get_rv_list(pageid)[-1]
             oldrv = self.pages_get_rv(pageid, oldrvid)
             oldname = 'a/%s (revision %i)' % (filename, oldrvid)
-            old = [i + '\n' for i in oldrv['content'].split('\n')]
+            old = [i + '\n' for i in oldrv['content'].encode('utf-8').split('\n')]
             if newrvid == 0:
-                cur_content = codecs.open(filename, 'r', 'utf-8').read()
+                cur_content = codecs.open(filename, 'r', 'utf-8').read().encode('utf-8')
                 if (len(cur_content) != 0) and (cur_content[-1] == '\n'):
                     cur_content = cur_content[:-1]
                 newname = 'b/%s (working copy)' % filename
@@ -198,8 +200,7 @@ class Metadir(object):
                 new = [i + '\n' for i in newrv['content'].split('\n')]
             diff_fd = StringIO()
             bzrlib.diff.internal_diff(oldname, old, newname, new, diff_fd)
-            diff_fd.seek(0)
-            diff = diff_fd.read()
+            diff = diff_fd.getvalue()
             if diff[-1] == '\n':
                 diff = diff[:-1]
             return diff

Benjamin Mako Hill || Want to submit a patch?