X Tutup
Skip to content

Commit 566dfe5

Browse files
committed
Enable option to disable Unicode box (fixes bpython#254)
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
1 parent 5725b53 commit 566dfe5

File tree

2 files changed

+31
-7
lines changed

2 files changed

+31
-7
lines changed

bpython/config.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# -*- coding: utf-8 -*-
2+
13
from __future__ import with_statement
24
import os
35
import sys
@@ -60,7 +62,8 @@ def loadini(struct, configfile):
6062
'pastebin_expiry': '1week',
6163
'pastebin_helper': '',
6264
'save_append_py': False,
63-
'editor': os.environ.get('VISUAL', os.environ.get('EDITOR', 'vi'))
65+
'editor': os.environ.get('VISUAL', os.environ.get('EDITOR', 'vi')),
66+
'unicode_box': True
6467
},
6568
'keyboard': {
6669
'backspace': 'C-h',
@@ -240,6 +243,27 @@ def get_key_no_doublebind(attr, already_used={}):
240243
if struct.autocomplete_mode not in bpython.autocomplete.ALL_MODES:
241244
struct.autocomplete_mode = default_completion
242245

246+
# set box drawing characters
247+
if config.getboolean('general', 'unicode_box'):
248+
struct.left_border = u'│'
249+
struct.right_border = u'│'
250+
struct.top_border = u'─'
251+
struct.bottom_border = u'─'
252+
struct.left_bottom_corner = u'└'
253+
struct.right_bottom_corner = u'┘'
254+
struct.left_top_corner = u'┌'
255+
struct.right_top_corner = u'┐'
256+
else:
257+
struct.left_border = u'|'
258+
struct.right_border = u'|'
259+
struct.top_border = u'-'
260+
struct.bottom_border = u'-'
261+
struct.left_bottom_corner = u'+'
262+
struct.right_bottom_corner = u'+'
263+
struct.left_top_corner = u'+'
264+
struct.right_top_corner = u'+'
265+
266+
243267
def load_theme(struct, path, colors, default_colors):
244268
theme = ConfigParser()
245269
with open(path, 'r') as f:

bpython/curtsiesfrontend/replpainter.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -154,10 +154,10 @@ def paint_infobox(rows, columns, matches, argspec, match, docstring, config, for
154154

155155
output_lines = []
156156
border_color = func_for_letter(config.color_scheme['main'])
157-
output_lines.append(border_color(u'┌─'+u'─'*width+u'─┐'))
157+
output_lines.append(border_color(config.left_top_corner+config.top_border*(width+2)+config.right_top_corner))
158158
for line in lines:
159-
output_lines.append(border_color(u'│ ')+((line+' '*(width - len(line)))[:width])+border_color(u' │'))
160-
output_lines.append(border_color(u'└─'+u'─'*width+u'─┘'))
159+
output_lines.append(border_color(config.left_border+u' ')+((line+' '*(width - len(line)))[:width])+border_color(u' ' + config.right_border))
160+
output_lines.append(border_color(config.left_bottom_corner+config.bottom_border*(width+2)+config.right_bottom_corner))
161161
r = fsarray(output_lines[:min(rows-1, len(output_lines)-1)] + output_lines[-1:])
162162
return r
163163

@@ -166,10 +166,10 @@ def paint_last_events(rows, columns, names):
166166
return fsarray([])
167167
width = min(max(len(name) for name in names), columns-2)
168168
output_lines = []
169-
output_lines.append(u'┌'+u'─'*width+u'┐')
169+
output_lines.append(config.left_top_corner+config.top_border*(width+2)+config.right_top_corner)
170170
for name in names[-(rows-2):]:
171-
output_lines.append(u'│'+name[:width].center(width)+u'│')
172-
output_lines.append(u'└'+u'─'*width+u'┘')
171+
output_lines.append(config.left_border+name[:width].center(width)+config.right_border)
172+
output_lines.append(config.left_bottom_corner+config.bottom_border*width+config.right_bottom_corner)
173173
return fsarray(output_lines)
174174

175175
def paint_statusbar(rows, columns, msg, config):

0 commit comments

Comments
 (0)
X Tutup