summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuel Gil Peyrot <linkmauve@linkmauve.fr>2018-06-07 14:42:14 +0200
committerEmmanuel Gil Peyrot <linkmauve@linkmauve.fr>2018-06-07 14:42:14 +0200
commite846825fc812cdf48717dd1c156d430101e2f5d0 (patch)
tree44fcd031feddf55d721ac888b82936cf3e0a8919
parent0319ce5079bffec5cad9637ee396d489194d63e7 (diff)
downloadpoezio-e846825fc812cdf48717dd1c156d430101e2f5d0.tar.gz
poezio-e846825fc812cdf48717dd1c156d430101e2f5d0.tar.bz2
poezio-e846825fc812cdf48717dd1c156d430101e2f5d0.tar.xz
poezio-e846825fc812cdf48717dd1c156d430101e2f5d0.zip
Add a check for Unicode support.
This makes poezio refuse to run if the environment is known broken.
-rw-r--r--poezio/__main__.py4
-rw-r--r--poezio/poezio.py17
2 files changed, 19 insertions, 2 deletions
diff --git a/poezio/__main__.py b/poezio/__main__.py
index 1f46f051..d6f60f24 100644
--- a/poezio/__main__.py
+++ b/poezio/__main__.py
@@ -1,7 +1,7 @@
def run():
- from poezio.poezio import main, test_curses, test_env
+ from poezio.poezio import main, test_curses, test_env, test_unicode
- if not test_curses() or not test_env():
+ if not test_curses() or not test_env() or not test_unicode():
import sys
sys.exit(1)
else:
diff --git a/poezio/poezio.py b/poezio/poezio.py
index 841e706f..d74eca74 100644
--- a/poezio/poezio.py
+++ b/poezio/poezio.py
@@ -53,6 +53,23 @@ def test_env():
return True
+def test_unicode():
+ import poopt
+ try:
+ poopt.wcswidth('✔')
+ except UnicodeError:
+ print("""\
+ERROR: The current system is misconfigured for Unicode.
+
+Check your locale setup, especially the $LANG environment variable and \
+whether it matches a locale built on your system. Also check that it is a \
+.UTF-8 locale, and not using some legacy encoding.
+
+Poezio is unable to display characters properly, so it will now exit.""")
+ return False
+ return True
+
+
def main():
"""
Entry point.