[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

bash et UTF-8



Bonjour,

j'utilise putty pour me logger en ssh sur un serveur woody.
La version de bash est :
# bash --version
GNU bash, version 2.05a.0(1)-release (i386-pc-linux-gnu)
Copyright 2001 Free Software Foundation, Inc.

J'ai configuré ma locale en UTF-8.

Lorsque je tape la séquence de caractères "ls aé" sur la ligne de commande, j'ai des caractères "ls aé" qui sont correctement affichés. Maintenant, je tape backspace pour effacer le "é" et je le remplace par "2". J'ai les caractères "ls a2" qui sont donc affichés.
Je valide la commande, et bash me retourne une erreur :

# ls a2
ls: a▒2: Chaîne multi-octets ou étendue de caractères invalide ou incomplète

Comme vous le voyez, il y a un caractère pourri qui a été inséré, comme si le caractère codé sur 2 octets n'avait été que partiellement supprimé.

Je n'ai pas du tout ce comportement sous vim, qui est configuré pour fonctionner en UTF-8. De même pour putty.

En faisant quelques recherches, j'ai constaté que l'auteur de putty mettait en garde les utilisateurs sur des incompatibilités possibles de certaines applications avec unicode.
En cherchant du côté de bash, j'ai trouvé le patch suivant :
ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05b-patches/bash205b-007

Hé ! ça ressemble à un patch pour mon problème.

Le truc, c'est qu'une version 2.05b, il n'y en a pas en paquet, visiblement.
Par ailleurs, si je regarde le paquet debian 2.05a, c'est une version patchée, à la debian, j'ai l'impression :
# apt-cache showpkg bash
Package: bash
Versions:
3.0-3(/var/lib/apt/lists/ftp.fr.debian.org_debian_dists_unstable_main_binary-i386_Packages)
2.05a-11(/var/lib/apt/lists/ftp.fr.debian.org_debian_dists_stable_main_binary-i386_Packages)(/var/lib/dpkg/status)

il y a en effet un "-11" qui suit, comme si c'était la 11ème version du 2.05a pour woody.

Bref, je ne sais pas trop quoi penser : est-ce que le patch 7 pour la 2.05b aurait été appliqué à la 2.05a-11, et que donc le bug existe toujours ? ou bien faut-il que je compile un bash moi-même ? Ça m'ennuie de devoir compiler le shell sur lequel presque tout le reste repose, en cas de bug corrigé dans les patches "-11", mais pas en 2.05b prise sur le site de gnu.

Il y a peut-être un moyen plus simple de corriger le problème, tout en restant en UTF-8 ? genre virer le mode vi, mais je n'ai pas compris comment ça marchait.

Je donc suis à l'écoute de vos conseils avisés :)
--
pii 233





Reply to: