diff --git a/buffer/__init__.py b/buffer/__init__.py index bd9ce6e..3c97f39 100644 --- a/buffer/__init__.py +++ b/buffer/__init__.py @@ -1,3 +1,4 @@ +from collections import defaultdict import codecs, datetime, grp, os, pwd, re, shutil, stat, string import fcntl, select, pty, threading import aes, dirutil, regex, highlight, lex, term diff --git a/method/cvs.py b/method/cvs.py index e75658b..1009708 100644 --- a/method/cvs.py +++ b/method/cvs.py @@ -94,9 +94,16 @@ class CvsStatus(Method): assert m, "regex6 %r" % lines[7] soptions = m.group(1) - w.set_error('%s %s %s/%s [%s|%s|%s]' % (ffile, fstatus, - wrev, rrev, stag, - sdate, soptions)) + w.buffer.metadata['cvs-filename'] = ffile + w.buffer.metadata['cvs-status'] = fstatus + w.buffer.metadata['cvs-wrev'] = wrev + w.buffer.metadata['cvs-rrev'] = rrev + w.buffer.metadata['cvs-tag'] = stag + w.buffer.metadata['cvs-date'] = sdate + w.buffer.metadata['vc-info'] = '[cvs:%s/%s]' % (wrev, rrev) + + tpl = (ffile, fstatus, wrev, rrev, stag, sdate, soptions) + w.set_error('%s %s %s/%s [%s|%s|%s]' % tpl) class CvsLog(Method): '''diff the current file with the version in CVS''' diff --git a/method/svn.py b/method/svn.py index 238b97a..49881a0 100644 --- a/method/svn.py +++ b/method/svn.py @@ -124,11 +124,12 @@ class SvnStatus(Method): except: raise Exception, '%r %r' % (fields, data[6:]) - w.buffer.metadata['svn-filename'] = lrev - w.buffer.metadata['svn-status'] = lrev + w.buffer.metadata['svn-filename'] = filename + w.buffer.metadata['svn-status'] = status w.buffer.metadata['svn-lrev'] = lrev - w.buffer.metadata['svn-rrev'] = lrev - w.buffer.metadata['svn-author'] = lrev + w.buffer.metadata['svn-rrev'] = rrev + w.buffer.metadata['svn-author'] = lauthor + w.set_error('%s %s %s/%s [%s]' % (filename, status, rrev, lrev, lauthor)) class SvnLog(Method): diff --git a/mode/__init__.py b/mode/__init__.py index bf21525..8583030 100644 --- a/mode/__init__.py +++ b/mode/__init__.py @@ -1,3 +1,4 @@ +from collections import defaultdict import math, os, string import color, method from lex import Lexer @@ -101,7 +102,8 @@ class Fundamental(Handler): actions = [] _bindings = {} completers = {} - format = "%(flag)s %(bname)-18s (%(mname)s) %(indent)s %(cursor)s/%(mark)s %(perc)s" + #format = "%(flag)s %(bname)-18s (%(mname)s) %(indent)s %(cursor)s/%(mark)s %(perc)s" + format = "%(flag)s %(bname)-18s (%(mname)s) %(indent)s %(cursor)s %(perc)s %(vc-info)s" header_size = 3 header_fg = 'default' @@ -420,16 +422,19 @@ class Fundamental(Handler): def get_status_names(self): w = self.window c = w.logical_cursor() - d = { + d = defaultdict(str) + d2 = { 'bname': w.buffer.name(), 'mname': self.name(), 'flag': self._get_flag(), 'perc': self._get_perc(), 'indent': self._get_indent(), 'cursor': '(%d,%d)' % (c.y + 1, c.x + 1), - 'first': '(%d,%d)' % (w.first.y + 1, w.first.x + 1), + 'first': '(%d,%d)' % (w.first.y + 1, w.first.x + 1), 'mark': self._get_mark(), } + d.update(d2) + d.update(dict(w.buffer.metadata)) return d def get_status_bar(self): names = self.get_status_names()