Make Tmux and PangoMarkup Renderers merge arguments like shell one

For PangoMarkup it is pretty useless currently (segment_info does not contain 
anything useful).

Note: this does its job by replacing default behavior.

Source of issue: previous default used either segment_info argument (containing 
{"args": args, "environ": os.environ}) or default segment_info, shell renderer 
merged default segment_info with .render() argument. Now segment_info is merged 
by default and old behavior moved to vim renderer which is the only one that is 
designed to use this.

Fixes #391
This commit is contained in:
ZyX 2013-04-03 23:09:40 +04:00
parent 05016c1f4d
commit 878255aff0
3 changed files with 8 additions and 8 deletions

View File

@ -67,7 +67,11 @@ class Renderer(object):
return segment
def get_segment_info(self, segment_info):
return segment_info or self.segment_info
r = self.segment_info.copy()
r.update(segment_info)
if 'PWD' in r['environ']:
r['getcwd'] = lambda: r['environ']['PWD']
return r
def render(self, mode=None, width=None, side=None, output_raw=False, segment_info=None, matcher_info=None):
'''Render all segments.

View File

@ -19,13 +19,6 @@ class ShellRenderer(Renderer):
tmux_escape = False
screen_escape = False
def get_segment_info(self, segment_info):
r = self.segment_info.copy()
r.update(segment_info)
if 'PWD' in r['environ']:
r['getcwd'] = lambda: r['environ']['PWD']
return r
def hlstyle(self, fg=None, bg=None, attr=None):
'''Highlight a segment.

View File

@ -65,6 +65,9 @@ class VimRenderer(Renderer):
def strwidth(string):
return vim.strwidth(string)
def get_segment_info(self, segment_info):
return segment_info or self.segment_info
def render(self, window_id, winidx, current):
'''Render all segments.'''
if current: