[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