[grisbi-bugs] [Grisbi-old 0001831]: N'arrive pas à ouvrir un fichier ni à afficher le message d'erreur correspondant
Grisbi Bug Tracker
bugtracker at grisbi.org
Jeu 5 Avr 16:17:54 CEST 2018
The following issue has been RESOLVED.
======================================================================
http://www.grisbi.org/bugsreports/view.php?id=1831
======================================================================
Reported By: LudovicRousseau
Assigned To: LudovicRousseau
======================================================================
Project: Grisbi-old
Issue ID: 1831
Category: Main
Reproducibility: always
Severity: minor
Priority: normal
Status: resolved
Resolution: fixed
Fixed in Version:
======================================================================
Date Submitted: 2018-03-30 20:10 CEST
Last Modified: 2018-04-05 16:17 CEST
======================================================================
Summary: N'arrive pas à ouvrir un fichier ni à afficher le
message d'erreur correspondant
Description:
J'ai utilisé la version 1.1.92 Windows pour créer un fichier "vide".
Grisbi n'arrive pas à ouvrir ce fichier.
Grisbi n'arrive pas non plus a afficher le message d'erreur indiquant qu'il
n'arrive pas à ouvrir le fichier.
Donc j'ai juste un dialog avec un bouton "fermer" et aucun texte.
Dans la console j'ai :
(grisbi:31553): Gtk-WARNING **: Failed to set text 'Une erreur est survenue
pendant l'extraction du fichier :
Erreur #0
Erreur à la ligne 13, caractère 26 : Codage UTF-8 non valide dans le nom —
« \xa0 » n'est pas valide' from markup due to error parsing markup: Erreur à
la ligne 3, caractère 108 : Codage UTF-8 non valide dans le nom — « Une
erreur est survenue pendant l'extraction du fichier :
Erreur #0
Erreur à la ligne 13, caractère 26 : Codage UTF-8 non valide dans le nom —
« \xa0 » n'est pas valide » n'est pas valide
(grisbi:31553): Gtk-WARNING **: Failed to set text 'Une erreur est survenue
pendant l'extraction du fichier :
Erreur #0
Erreur à la ligne 13, caractère 26 : Codage UTF-8 non valide dans le nom —
« \xa0 » n'est pas valide' from markup due to error parsing markup: Erreur à
la ligne 3, caractère 108 : Codage UTF-8 non valide dans le nom — « Une
erreur est survenue pendant l'extraction du fichier :
Erreur #0
Erreur à la ligne 13, caractère 26 : Codage UTF-8 non valide dans le nom —
« \xa0 » n'est pas valide » n'est pas valide
J'imagine que le texte a afficher n'est pas en UTF-8 justement parce que le
fichier contient un encodage qui n'est pas UTF-8.
La ligne fautive est :
Thousands_separator=" "
Ce n'est pas un espace (ASCII 32) entre les guillemets.
Steps to Reproduce:
Créer un fichier vide avec Grisbi 1.1.92 sous Windows
Sauver le fichier
Ouvrir le fichier avec Grisbi 1.1.92.
J'ai le même problème sous macOS et Windows.
Fichier joint.
Additional Information:
Il y a au moins 2 bugs :
- le fichier créé sous Windows n'est plus lisible
- le message d'erreur ne s'affiche pas
======================================================================
----------------------------------------------------------------------
(0004386) LudovicRousseau (developer) - 2018-03-30 22:47
http://www.grisbi.org/bugsreports/view.php?id=1831#c4386
----------------------------------------------------------------------
Fixed in
https://github.com/grisbi/grisbi/commit/15084192db87011dcb55fbc4cb9f1797c5ac7e47
----------------------------------------------------------------------
(0004390) pbiava (administrator) - 2018-04-01 15:20
http://www.grisbi.org/bugsreports/view.php?id=1831#c4390
----------------------------------------------------------------------
Je rouvre ce bug car la solution pose problème. En effet le changement de
version de la glib impose le changement de gtk-3. Ce qui rend obsolète toutes
les versions longues (LTS) des distributions linux dont certaines vont jusqu'en
2021 me semble-t-il.
J'ai fait une modification dans le fichier joint pour la première erreur qui
concerne le séparateur des milliers j'espère que ça va la corriger.
Je peux importer ton fichier en choisissant un un des codages suivants
(ISO-8859-1 ou 15 ou WINDOWS-1252) mais les catégories on aussi un problème de
codage. J'ai essayé tout un tas d'Unicode mais aucun ne convient. Quel est donc
le jeu de caractère par défaut de MAC-OSX. ?
Sinon j'ai fait le test de création d'un nouveau fichier et je n'ai pas eu le
problème de lecture sous linux.
J'ai eu du mal à trouver le bug. En effet il est dans le projet grisbi-old.
----------------------------------------------------------------------
(0004391) LudovicRousseau (developer) - 2018-04-01 16:47
http://www.grisbi.org/bugsreports/view.php?id=1831#c4391
----------------------------------------------------------------------
Le fichier a été créé sur Windows 10, pas sur macOS.
Le fichier gsb_locale.c ne résous pas le problème d'affichage du message
d'erreur au chargement. Ce fichier est sensé résoudre quel problème ?
Je suis d'accord que imposer une version récente de glib est très
contraignant. Je propose de n'utiliser g_utf8_make_valid() que si la fonction
est disponible.
Au pire le message d'erreur n'est pas affiché. C'est un régression car avec
Grisbi 1.0.2 je n'ai pas le même problème.
Je joins 2 copie d'écran des message d'erreur :
- Grisbi 1.0.2
- Grisbi 1.1.92 avec le problème
- Grisbi 1.1.92 corrigé
----------------------------------------------------------------------
(0004392) pbiava (administrator) - 2018-04-01 17:21
http://www.grisbi.org/bugsreports/view.php?id=1831#c4392
----------------------------------------------------------------------
Ce fichier sert juste à forcer le chargement des données locales en UTF8 si le
charset UTF8 n'est pas en base. Donc ça ne résout pas le problème de ce
fichier par contre ça devrait éviter d'avoir cette erreur à la création d'un
nouveau fichier.
Je vais essayer de créer un fichier à partir de Windows 10. Pour l'instant je
ne l'ai fait que sous Windows 8.
La première image est celle que tu avais quand tu n'avais pas utilisé la
fonction g_utf8_make_valid () c'est ça ?
Ce qui est rassurant c'est que on n'a pas de problème sur Mac OSX.
----------------------------------------------------------------------
(0004393) LudovicRousseau (developer) - 2018-04-01 18:14
http://www.grisbi.org/bugsreports/view.php?id=1831#c4393
----------------------------------------------------------------------
grisbi 1.0.2.png c'est Grisbi 1.0.2 avec le problème mais moins grave.
Grisbi 1.1.92.png c'est Grisbi 1.1.92 sans utiliser g_utf8_make_valid(). Aucun
message d'erreur n'est affiché
Grisbi 1.1.92 fixed.png c'est Grisbi 1.1.92 avec ma correction
----------------------------------------------------------------------
(0004394) LudovicRousseau (developer) - 2018-04-01 18:22
http://www.grisbi.org/bugsreports/view.php?id=1831#c4394
----------------------------------------------------------------------
Grisbi est revenu à GLIB 2.44 et utilise du code conditionnel.
Par contre je ne sais pas où définir HAVE_G_UTF8_MAKE_VALID pour que
g_utf8_make_valid() soit utilisé sous Windows.
----------------------------------------------------------------------
(0004395) pbiava (administrator) - 2018-04-01 18:43
http://www.grisbi.org/bugsreports/view.php?id=1831#c4395
----------------------------------------------------------------------
En fait il faut agir autrement. Il faut utiliser
GLIB_CHECK_VERSION(major,minor,micro) à l'image de ce que j'ai fait à
différents endroits de grisbi avec GTK_CHECK_VERSION (3,22,0). Ainsi ça
fonctionnera chaque fois qu'on aura la bonne version de glib2.
exemple :
#if GTK_CHECK_VERSION (3,22,0)
gtk_menu_popup_at_pointer (GTK_MENU (menu), NULL);
#else
gtk_menu_popup ( GTK_MENU(menu), NULL, NULL, NULL, NULL, 3,
gtk_get_current_event_time());
#endif
Ça c'est pour traiter un cas d'obsolescence mais le principe est
généralisable. C'est compilé donc sans problème à l'exécution.
[Edit] En plus ça facilite le nettoyage quand la version nécessaire est
atteinte.
----------------------------------------------------------------------
(0004396) LudovicRousseau (developer) - 2018-04-01 21:45
http://www.grisbi.org/bugsreports/view.php?id=1831#c4396
----------------------------------------------------------------------
Perfect.
Implémenté et poussé.
----------------------------------------------------------------------
(0004397) pbiava (administrator) - 2018-04-02 06:20
http://www.grisbi.org/bugsreports/view.php?id=1831#c4397
----------------------------------------------------------------------
Je ne comprends pas pourquoi tu utilises encore HAVE_G_UTF8_MAKE_VALID. Ça n'a
plus d'utilité.
----------------------------------------------------------------------
(0004398) LudovicRousseau (developer) - 2018-04-02 15:09
http://www.grisbi.org/bugsreports/view.php?id=1831#c4398
----------------------------------------------------------------------
c'est pour ne pas répéter GLIB_CHECK_VERSION (2,52,0)
et rendre explicite le fait que le code dépend de la disponibilité de
g_utf8_make_valid()
----------------------------------------------------------------------
(0004401) pbiava (administrator) - 2018-04-02 18:36
http://www.grisbi.org/bugsreports/view.php?id=1831#c4401
----------------------------------------------------------------------
Personellement j'aurais fait comme ça :
gchar tmp_str1;
.
.
#if GLIB_CHECK_VERSION (2,52,0)
tmp_str1 = g_utf8_make_valid (error -> message, -1);
#else
tmp_str1 = g_strdup (error -> message);
.
.
g_free (tmp_str1);
ce qui simplifie le code.
Par ailleurs, il se peut qu'on utilise d'autres fonctions nouvelles. Dans ce cas
appliquer ce modèle complexifie le code inutilement.
----------------------------------------------------------------------
(0004403) LudovicRousseau (developer) - 2018-04-02 18:54
http://www.grisbi.org/bugsreports/view.php?id=1831#c4403
----------------------------------------------------------------------
j'avais pensé à ça aussi. Changes le code si tu préfères.
----------------------------------------------------------------------
(0004415) pbiava (administrator) - 2018-04-03 09:07
http://www.grisbi.org/bugsreports/view.php?id=1831#c4415
----------------------------------------------------------------------
Ludovic , peux-tu essayer le fichier ci-joint créé sous W10 avec la version
1.1.92 de grisbi. Chez moi il fonctionne sans problème
----------------------------------------------------------------------
(0004417) LudovicRousseau (developer) - 2018-04-03 13:03
http://www.grisbi.org/bugsreports/view.php?id=1831#c4417
----------------------------------------------------------------------
ça marche ici aussi sur macOS.
Thousands_separator=" "
le séparateur est bien une espace dans ton fichier.
----------------------------------------------------------------------
(0004418) LudovicRousseau (developer) - 2018-04-03 13:17
http://www.grisbi.org/bugsreports/view.php?id=1831#c4418
----------------------------------------------------------------------
j'ai recréé un fichier vide (joint) sur Windows 10 avec Grisbi 1.1.92 et je
reproduis le problème.
Grisbi, même sur Windows 10, n'arrive pas à ouvrir le fichier.
Je peux tester un nouveau build pour Windows
----------------------------------------------------------------------
(0004421) pbiava (administrator) - 2018-04-03 13:53
http://www.grisbi.org/bugsreports/view.php?id=1831#c4421
----------------------------------------------------------------------
Je vais essayer d'en faire un autre.
----------------------------------------------------------------------
(0004431) LudovicRousseau (developer) - 2018-04-05 09:05
http://www.grisbi.org/bugsreports/view.php?id=1831#c4431
----------------------------------------------------------------------
Le problème est corrigé avec la version Windows
Grisbi-64bit-1.1.92-2018.04.04-setup.exe
- le fichier créé n'est plus invalide
- ouvrir un fichier invalide affiche un message d'erreur correct et abandonne le
chargement
je propose de fermer ce bug.
----------------------------------------------------------------------
(0004432) pbiava (administrator) - 2018-04-05 09:24
http://www.grisbi.org/bugsreports/view.php?id=1831#c4432
----------------------------------------------------------------------
OK pour la fermeture. As-tu constaté les problèmes d'affichage du bug 1646 ?
----------------------------------------------------------------------
(0004433) LudovicRousseau (developer) - 2018-04-05 11:50
http://www.grisbi.org/bugsreports/view.php?id=1831#c4433
----------------------------------------------------------------------
oui mais c'est corrigé.
----------------------------------------------------------------------
(0004436) pbiava (administrator) - 2018-04-05 16:17
http://www.grisbi.org/bugsreports/view.php?id=1831#c4436
----------------------------------------------------------------------
je pensais avec la nouvelle version.
----------------------------------------------------------------------
(0004437) pbiava (administrator) - 2018-04-05 16:17
http://www.grisbi.org/bugsreports/view.php?id=1831#c4437
----------------------------------------------------------------------
fixed in Github
Issue History
Date Modified Username Field Change
======================================================================
2018-03-30 20:10 LudovicRousseauNew Issue
2018-03-30 20:10 LudovicRousseauFile Added: Mes comptes.gsb
2018-03-30 22:47 LudovicRousseauAssigned To => LudovicRousseau
2018-03-30 22:47 LudovicRousseauStatus new => resolved
2018-03-30 22:47 LudovicRousseauResolution open => fixed
2018-03-30 22:47 LudovicRousseauNote Added: 0004386
2018-04-01 15:20 pbiava File Added: gsb_locale.c
2018-04-01 15:20 pbiava Note Added: 0004390
2018-04-01 16:47 LudovicRousseauStatus resolved => feedback
2018-04-01 16:47 LudovicRousseauResolution fixed => reopened
2018-04-01 16:47 LudovicRousseauNote Added: 0004391
2018-04-01 16:48 LudovicRousseauFile Added: grisbi 1.0.2.png
2018-04-01 16:48 LudovicRousseauFile Added: Grisbi 1.1.92.png
2018-04-01 16:48 LudovicRousseauFile Added: Grisbi 1.1.92 fixed.png
2018-04-01 17:21 pbiava Note Added: 0004392
2018-04-01 18:14 LudovicRousseauNote Added: 0004393
2018-04-01 18:22 LudovicRousseauNote Added: 0004394
2018-04-01 18:39 pbiava Note Added: 0004395
2018-04-01 18:43 pbiava Note Edited: 0004395
2018-04-01 21:45 LudovicRousseauNote Added: 0004396
2018-04-02 06:20 pbiava Note Added: 0004397
2018-04-02 15:09 LudovicRousseauNote Added: 0004398
2018-04-02 18:36 pbiava Note Added: 0004401
2018-04-02 18:54 LudovicRousseauNote Added: 0004403
2018-04-03 09:07 pbiava File Added: Mes comptes-2.gsb
2018-04-03 09:07 pbiava Note Added: 0004415
2018-04-03 13:03 LudovicRousseauNote Added: 0004417
2018-04-03 13:17 LudovicRousseauFile Added: Mes comptes-3.gsb
2018-04-03 13:17 LudovicRousseauNote Added: 0004418
2018-04-03 13:53 pbiava Note Added: 0004421
2018-04-05 09:05 LudovicRousseauNote Added: 0004431
2018-04-05 09:24 pbiava Note Added: 0004432
2018-04-05 11:50 LudovicRousseauNote Added: 0004433
2018-04-05 16:17 pbiava Note Added: 0004436
2018-04-05 16:17 pbiava Status feedback => resolved
2018-04-05 16:17 pbiava Resolution reopened => fixed
2018-04-05 16:17 pbiava Note Added: 0004437
======================================================================
Plus d'informations sur la liste de diffusion bugsreports