From 0ab7852e1f6af738924353d1a9ae724239d9b553 Mon Sep 17 00:00:00 2001 From: pauget Date: Tue, 1 Nov 2005 18:02:35 +0100 Subject: [PATCH] Gestion de l'encodage pour la fonction prompt (par Stphane). darcs-hash:20051101170235-41617-47fba016ac1075f704cfb9c5b66919fcf0e85ed2.gz --- gestion/affich_tools.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) 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 :