[grisbi-devel] [bug] espace insécable dans les champs valeurs

Ludovic Rousseau ludovic.rousseau at gmail.com
Sat May 4 15:10:36 CEST 2019


Le sam. 4 mai 2019 à 12:40, Pierre PANTALÉON <pipantal at free.fr> a écrit :
> Bonjour,

Bonjour,

> je viens par mon post signaler un petit bug.
> En effet, sur mon site bancaire, lorsque je fais un « copier » d’un
> solde de compte qui contient un espace insécable pour séparer les
> milliers (ce qui est un comportement tout à fait normal en langue et
> typographie française) et que je le copie dans un champs valeur,
> celui-ci reste en rouge car non reconnu.
> Dans les paramètres, il y a l’espace, la virgule, le point et rien.
> Donc je ne sais pas comment on pourrait faire, mais il faudrait rajouter
> l’espace insécable pour qu’on puisse faire un « copier-coller » simplement.
> Pour information, il s’agit de la banque en ligne Boursorama qui affiche
> les soldes et autres valeurs avec des espaces insécables.
> Merci à tous.
>
> La solution pourrait être de rajouter un « ou » logique dans le choix de
> paramètre « espace » comme séparateur de milliers plutôt que rajouter un
> 5ème choix.

Même si l'entrée est affichée en rouge la valeur est quand même
correctement utilisée, non ?

Le choix du séparateur de milliers ne sert pas que pour la validation
d'une saisie mais aussi pour la sortie.
Je ne sais pas si c'est judicieux d'utiliser une espace non-sécable
pour l'affichage et l'export. Ça risque de créer des problèmes si
l'export en texte est utilisé par d'autres outils.
Pour tester ça il suffit d'éditer le fichier .gsb et de changer la ligne :
Thousands_separator=" "
en remplaçant " " par " " (le deuxième est un espace insécable).

J'ai un patch très simple pour accepter l'espace non-sécable dans une saisie :
diff --git a/src/gsb_form_widget.c b/src/gsb_form_widget.c
index ff3810146..e1614bea4 100644
--- a/src/gsb_form_widget.c
+++ b/src/gsb_form_widget.c
@@ -1084,7 +1084,7 @@ gboolean gsb_form_widget_get_valide_amout_entry
(const gchar *string)
             if (g_unichar_isdefined (thousands_sep))
             {
                 if (ch != '.' && ch != ',' && ch != '+' && ch != '-'
-                 && ch != '*' && ch != '/' && ch != thousands_sep)
+                 && ch != '*' && ch != '/' && ch != thousands_sep &&
ch != 0x00A0 /* NO-BREAK SPACE */)
                 {
                     g_free (mon_decimal_point);
                     g_free (mon_thousands_sep);

Je ne sais pas si ça peut avoir des effet de bords. J'aimerais que
Pierre nous donne son avis.

à+

-- 
 Dr. Ludovic Rousseau


More information about the devel mailing list