> J'imagine de plus qu'un patch faisant grosso modo comprendre aux TTY
> que, au niveau de l'affichage, « espace fine insécable = espace
> insécable » serait assez simple à implémenter et règlerait notre
> problème (même si c'est faux, sémantiquement)
> 
> Le hic c'est que je ne sais pas contre quel logiciel rapporter ce bug :
> je ne sais pas quel programme « fournit » les TTY (ou du moins gère
> leurs rendus de textes).
Il s'agit ici du programme /bin/setfont et des fichiers qui se trouvent
dans /usr/share/kbd/unimaps/*.uni, tous deux faisant partie du paquetage
'kbd'.
Pour faire comprendre à la console du noyau Linux (attention, je fais la
distinction entre la "console" qui est l'affichage "mode texte" sans X11
et le "tty" qui est un mécanisme qui s'applique également à xterm, konsole,
rxvt) il suffit de trois étapes:
  1. Sauvegarder le mapping Unicode de la console:
     $ setfont -v -ou unimap
     et voir que ce fichier contient deux lignes
        0x20    U+0020
        0x20    U+00a0
  2. Ajouter une ligne
        0x20    U+202f
     à ce fichier, et le sauvegarder.
  3. Appliquer ce fichier:
     $ setfont -v -u unimap
Et maintenant, essaye
     $ /usr/bin/printf '\u202Fx\n'
et tu vois que c'est bon.
Donc, à ta place, j'écrirais au gérand de 'kbd' [1][2] en lui proposant
de traiter U+202f de la même manière que U+00a0 dans tous les fichiers *.uni.
Je note que ceci serait consistent avec la fonction 'wcwidth' de la glibc:
Ce programme
=============================================================
#include <locale.h>
#include <wctype.h>
#include <wchar.h>
#include <stdio.h>
int main () {
  setlocale (LC_ALL, "de_DE.UTF-8");
  printf ("wcwidth (0x00A0) = %d\n", wcwidth (0x00A0));
  printf ("wcwidth (0x202F) = %d\n", wcwidth (0x202F));
  return 0;
}
=============================================================
affiche:
wcwidth (0x00A0) = 1
wcwidth (0x202F) = 1
Bruno
[1] https://lists.altlinux.org/mailman/listinfo/kbd
[2] http://git.altlinux.org/people/legion/packages/kbd.git