diff --git a/gestion/affich_tools.py b/gestion/affich_tools.py index 0d9189e3..1936d3b5 100755 --- a/gestion/affich_tools.py +++ b/gestion/affich_tools.py @@ -9,6 +9,10 @@ Licence : GPLv2 import sys, sre, os, tempfile +# Détermination de l'encodage +from locale import getpreferredencoding +encoding = getpreferredencoding() + if 'TERM' in os.environ and os.environ['TERM'] != 'unknown': el = os.popen('tput cr ; tput el').read() else: @@ -140,14 +144,16 @@ def get_screen_size(): except: return (24, 80) -def prompt(prompt, defaut=''): - """ Pose la question prompt, retourne la réponse """ - sys.stdout.write(coul(prompt,'gras')) +def prompt(prompt, defaut='', couleur='gras'): + u""" + Pose la question prompt en couleur (défaut gras), retourne la réponse. + """ + sys.stdout.write(coul(prompt, couleur).encode(encoding)) if defaut : - sys.stdout.write(" ["+defaut+"]") - sys.stdout.write(" ") - v=sys.stdin.readline().strip() - if not v : v = defaut + sys.stdout.write((" [%s]" % defaut).encode(encoding)) + sys.stdout.write(" ".encode(encoding)) + v = sys.stdin.readline().decode(encoding).strip() + if not v: v = defaut return v class anim :