summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--ranger/gui/curses_shortcuts.py37
-rw-r--r--ranger/gui/ui.py5
2 files changed, 7 insertions, 35 deletions
diff --git a/ranger/gui/curses_shortcuts.py b/ranger/gui/curses_shortcuts.py
index bae03adc..f654ab11 100644
--- a/ranger/gui/curses_shortcuts.py
+++ b/ranger/gui/curses_shortcuts.py
@@ -21,22 +21,6 @@ from ranger.ext.iter_tools import flatten
 from ranger.gui.color import get_color
 from ranger.core.shared import SettingsAware
 
-def ascii_only(string):
-	# Some python versions have problems with invalid unicode strings.
-	# I think this exception is rare enough that this naive hack is enough.
-	# It simply removes all non-ascii chars from a string.
-	def validate_char(char):
-		try:
-			if ord(char) > 127:
-				return '?'
-		except:
-			return '?'
-		return char
-	if isinstance(string, str):
-		return ''.join(validate_char(c) for c in string)
-	return string
-
-
 class CursesShortcuts(SettingsAware):
 	"""
 	This class defines shortcuts to faciliate operations with curses.
@@ -50,35 +34,20 @@ class CursesShortcuts(SettingsAware):
 	def addstr(self, *args):
 		try:
 			self.win.addstr(*args)
-		except (_curses.error, TypeError):
+		except:
 			pass
-		except UnicodeEncodeError:
-			try:
-				self.win.addstr(*(ascii_only(obj) for obj in args))
-			except (_curses.error, TypeError):
-				pass
 
 	def addnstr(self, *args):
 		try:
 			self.win.addnstr(*args)
-		except (_curses.error, TypeError):
+		except:
 			pass
-		except UnicodeEncodeError:
-			try:
-				self.win.addnstr(*(ascii_only(obj) for obj in args))
-			except (_curses.error, TypeError):
-				pass
 
 	def addch(self, *args):
 		try:
 			self.win.addch(*args)
-		except (_curses.error, TypeError):
+		except:
 			pass
-		except UnicodeEncodeError:
-			try:
-				self.win.addch(*(ascii_only(obj) for obj in args))
-			except (_curses.error, TypeError):
-				pass
 
 	def color(self, *keys):
 		"""Change the colors from now on."""
diff --git a/ranger/gui/ui.py b/ranger/gui/ui.py
index 1f3588f9..098f6a44 100644
--- a/ranger/gui/ui.py
+++ b/ranger/gui/ui.py
@@ -19,7 +19,6 @@ import curses
 import _curses
 
 from .displayable import DisplayableContainer
-from ranger.gui.curses_shortcuts import ascii_only
 from .mouse_event import MouseEvent
 from ranger.ext.keybinding_parser import ALT_KEY
 
@@ -29,6 +28,10 @@ TERMINALS_WITH_TITLE = ("xterm", "xterm-256color", "rxvt",
 
 MOUSEMASK = curses.ALL_MOUSE_EVENTS | curses.REPORT_MOUSE_POSITION
 
+_ASCII = ''.join(chr(c) for c in range(32, 127))
+def ascii_only(string):
+	return ''.join(c if c in _ASCII else '?' for c in string)
+
 def _setup_mouse(signal):
 	if signal['value']:
 		curses.mousemask(MOUSEMASK)
=768bdb4dbf4e8943fe1c3fcf7f8840372ba79ec6'>^
2d05f43c ^
3c435756 ^


84ca523f ^



36f616b5 ^



bb1a1ac2 ^

51530916 ^






6e1eeeeb ^
36f616b5 ^


51530916 ^


1ba81b0f ^
5f05e954 ^
6e1eeeeb ^
36f616b5 ^


1ba81b0f ^
51530916 ^


6573fe1f ^
6e1eeeeb ^



b39ceb27 ^
26785f2a ^
b39ceb27 ^
8f249677 ^
b39ceb27 ^

6e1eeeeb ^


51530916 ^

4ea9905f ^


6e1eeeeb ^
455f0338 ^
6e1eeeeb ^
385ff136 ^
455f0338 ^


6e1eeeeb ^






455f0338 ^
6573fe1f ^
ec99eb7a ^
51530916 ^
6e1eeeeb ^











1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164