From fb7eec298588ba199f6689ad029675e69da2157b Mon Sep 17 00:00:00 2001 From: Glandos Date: Sun, 1 Dec 2013 12:11:53 +0100 Subject: [PATCH 1/3] Don't show '//' when using path separator Currently, the cwd segment is showing //etc when we are in /etc and / when we are in the root file. This small patch fix this --- powerline/segments/common.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/powerline/segments/common.py b/powerline/segments/common.py index f13f6f8c..d77da305 100644 --- a/powerline/segments/common.py +++ b/powerline/segments/common.py @@ -115,7 +115,7 @@ def cwd(pl, segment_info, dir_shorten_len=None, dir_limit_depth=None, use_path_s for part in cwd: if not part: continue - if use_path_separator: + if use_path_separator and not part == os.sep: part += os.sep ret.append({ 'contents': part, @@ -123,7 +123,7 @@ def cwd(pl, segment_info, dir_shorten_len=None, dir_limit_depth=None, use_path_s 'draw_inner_divider': draw_inner_divider, }) ret[-1]['highlight_group'] = ['cwd:current_folder', 'cwd'] - if use_path_separator: + if use_path_separator and len(ret) > 1: ret[-1]['contents'] = ret[-1]['contents'][:-1] return ret From c97bc8249fa0b1045c1b7fe92835383088504f9b Mon Sep 17 00:00:00 2001 From: Glandos Date: Sun, 1 Dec 2013 12:35:12 +0100 Subject: [PATCH 2/3] Fix display for home directory --- powerline/segments/common.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/powerline/segments/common.py b/powerline/segments/common.py index d77da305..63f17169 100644 --- a/powerline/segments/common.py +++ b/powerline/segments/common.py @@ -115,7 +115,7 @@ def cwd(pl, segment_info, dir_shorten_len=None, dir_limit_depth=None, use_path_s for part in cwd: if not part: continue - if use_path_separator and not part == os.sep: + if use_path_separator: part += os.sep ret.append({ 'contents': part, @@ -123,8 +123,10 @@ def cwd(pl, segment_info, dir_shorten_len=None, dir_limit_depth=None, use_path_s 'draw_inner_divider': draw_inner_divider, }) ret[-1]['highlight_group'] = ['cwd:current_folder', 'cwd'] - if use_path_separator and len(ret) > 1: + if use_path_separator: ret[-1]['contents'] = ret[-1]['contents'][:-1] + if len(ret) > 1 and ret[0]['contents'][0] == os.sep: + ret[0]['contents'] = ret[0]['contents'][1:] return ret From b75d2b531f06d988947fa791cb8980076fc5fdc5 Mon Sep 17 00:00:00 2001 From: ZyX Date: Thu, 23 Jan 2014 18:45:09 +0400 Subject: [PATCH 3/3] Add tests --- tests/test_segments.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/test_segments.py b/tests/test_segments.py index d9d12527..6a52881c 100644 --- a/tests/test_segments.py +++ b/tests/test_segments.py @@ -145,6 +145,22 @@ class TestCommon(TestCase): {'contents': 'fo/', 'divider_highlight_group': 'cwd:divider', 'draw_inner_divider': False}, {'contents': 'bar', 'divider_highlight_group': 'cwd:divider', 'draw_inner_divider': False, 'highlight_group': ['cwd:current_folder', 'cwd']} ]) + cwd[0] = '/etc' + self.assertEqual(common.cwd(pl=pl, segment_info=segment_info, use_path_separator=False), [ + {'contents': '/', 'divider_highlight_group': 'cwd:divider', 'draw_inner_divider': True}, + {'contents': 'etc', 'divider_highlight_group': 'cwd:divider', 'draw_inner_divider': True, 'highlight_group': ['cwd:current_folder', 'cwd']}, + ]) + self.assertEqual(common.cwd(pl=pl, segment_info=segment_info, use_path_separator=True), [ + {'contents': '/', 'divider_highlight_group': 'cwd:divider', 'draw_inner_divider': False}, + {'contents': 'etc', 'divider_highlight_group': 'cwd:divider', 'draw_inner_divider': False, 'highlight_group': ['cwd:current_folder', 'cwd']}, + ]) + cwd[0] = '/' + self.assertEqual(common.cwd(pl=pl, segment_info=segment_info, use_path_separator=False), [ + {'contents': '/', 'divider_highlight_group': 'cwd:divider', 'draw_inner_divider': True, 'highlight_group': ['cwd:current_folder', 'cwd']}, + ]) + self.assertEqual(common.cwd(pl=pl, segment_info=segment_info, use_path_separator=True), [ + {'contents': '/', 'divider_highlight_group': 'cwd:divider', 'draw_inner_divider': False, 'highlight_group': ['cwd:current_folder', 'cwd']}, + ]) ose = OSError() ose.errno = 2 cwd[0] = ose