[grisbi-bugs] [Grisbi 0002089]: Problème pour lire et écrire un fichier .gsb
Grisbi Bug Tracker
bugtracker at grisbi.org
Jeu 8 Mai 19:06:09 CEST 2025
The following issue has been CLOSED
======================================================================
https://www.grisbi.org/bugsreports/view.php?id=2089
======================================================================
Reported By: LudovicRousseau
Assigned To: pbiava
======================================================================
Project: Grisbi
Issue ID: 2089
Category: Main
Reproducibility: always
Severity: crash
Priority: normal
Status: closed
OS: Autre(Other)
Unstable Impact: Yes
Version OS:
Version GTK:
Resolution: fixed
Fixed in Version: 2.0.x
======================================================================
Date Submitted: 2021-01-16 11:33 CET
Last Modified: 2025-05-08 19:06 CEST
======================================================================
Summary: Problème pour lire et écrire un fichier .gsb
Description:
Grisbi version 2.0.0 64 bits Windows
Avec le fichier joint, au chargement j'ai une erreur avec une fenêtre vide et
juste un bouton Fermer.
Ensuite le fichier s'ouvre.
Si je sauvegarde le fichier (Ctrl-S) j'ai encore cette fenêtre vide avec juste
le bouton Fermer.
======================================================================
----------------------------------------------------------------------
(0005896) pbiava (administrator) - 2021-01-16 15:36
https://www.grisbi.org/bugsreports/view.php?id=2089#c5896
----------------------------------------------------------------------
J'ai supprimé votre fichier car il contient des données personnelles. Sous
Linux j'ai le message ci-dessous qui s'affiche.
Je regarde sous Windows.
----------------------------------------------------------------------
(0005897) pbiava (administrator) - 2021-01-16 15:47
https://www.grisbi.org/bugsreports/view.php?id=2089#c5897
----------------------------------------------------------------------
Sous Windows 10 je n'ai pas de message. En premier lieu vous pourriez mettre ici
une copie d'écran pour que je vois ce qui se passe ?
----------------------------------------------------------------------
(0005898) LudovicRousseau (administrator) - 2021-01-16 17:19
https://www.grisbi.org/bugsreports/view.php?id=2089#c5898
----------------------------------------------------------------------
Le message d'erreur c'est parce que le fichier est lisible par tous après une
copie depuis Windows.
J'ai un peu corrigé le code dans
https://github.com/grisbi/grisbi/commit/d562c19f530b95aa64ee9a66c32d2f427058892f
Maintenant je refais le test dans une VM Windows 10 et je n'ai plus le
problème. Le problème ne vient pas du contenu du fichier ?
C'est possible d'avoir des logs sur Windows ? Sans faire une compilation
spéciale ?
----------------------------------------------------------------------
(0005899) LudovicRousseau (administrator) - 2021-01-16 18:30
https://www.grisbi.org/bugsreports/view.php?id=2089#c5899
----------------------------------------------------------------------
Voila le message d'erreur que j'ai
----------------------------------------------------------------------
(0005900) LudovicRousseau (administrator) - 2021-01-16 18:41
https://www.grisbi.org/bugsreports/view.php?id=2089#c5900
----------------------------------------------------------------------
J'ai encore le problème avec une version anonymisée et sans aucune entrée
dans le fichier.
----------------------------------------------------------------------
(0005901) pbiava (administrator) - 2021-01-16 20:54
https://www.grisbi.org/bugsreports/view.php?id=2089#c5901
----------------------------------------------------------------------
Ce qui est étonnant c'est qu'on ait pas la case à cocher dans cette fenêtre.
----------------------------------------------------------------------
(0005902) LudovicRousseau (administrator) - 2021-01-16 22:53
https://www.grisbi.org/bugsreports/view.php?id=2089#c5902
----------------------------------------------------------------------
J'ai déjà eu ce genre de boîte de dialogue quand le texte n'est pas en UTF-8
valide.
Il faut que j'essaie avec Grisbi en anglais.
----------------------------------------------------------------------
(0005903) LudovicRousseau (administrator) - 2021-01-16 23:25
https://www.grisbi.org/bugsreports/view.php?id=2089#c5903
----------------------------------------------------------------------
En mettant Grisbi en anglais j'ai aussi une boite de dialogue sans texte.
La différence est que le bouton est maintenant "Close" à la place de "Fermer".
Super.
----------------------------------------------------------------------
(0005904) LudovicRousseau (administrator) - 2021-01-16 23:29
https://www.grisbi.org/bugsreports/view.php?id=2089#c5904
----------------------------------------------------------------------
J'ai le même comportement avec Grisbi 1.2.2 64 bits pour Windows. Une boite de
dialogue vide à l'ouverture du fichier toto.gsb.
----------------------------------------------------------------------
(0005905) R1 (reporter) - 2021-01-17 10:24
https://www.grisbi.org/bugsreports/view.php?id=2089#c5905
----------------------------------------------------------------------
Pour info: je n'ai pas le soucis avec le fichier toto.gsb ci dessus et Grisbi
1.9.98 (GTK+ version : 3.24.24 / Grisbi git hash : fdb9c10ec) sous Windows 10,
en français.
----------------------------------------------------------------------
(0005906) pbiava (administrator) - 2021-01-17 11:07
https://www.grisbi.org/bugsreports/view.php?id=2089#c5906
----------------------------------------------------------------------
Le commit d562c19f ne concerne pas Windows donc je ne vois pas le rapport direct
avec notre affaire. Toutefois je ne connais pas la façon dont Windows gère les
droits des fichiers.
Le fichier toto.gsb s'ouvre sans message sur Win10 à jour. J'ai l'option
"Forcer l'enregistrement des fichiers verrouillés" cochée et je suis
administrateur de mon poste.
----------------------------------------------------------------------
(0005907) LudovicRousseau (administrator) - 2021-01-17 17:04
https://www.grisbi.org/bugsreports/view.php?id=2089#c5907
----------------------------------------------------------------------
J'arrive bien à ouvrir quand même le fichier sur mon Windows 10.
Mais j'ai d'abord cette boîte de dialogue sans texte (je ne sais pas ce qu'il y
a de spécial sur ce Windows)..
Problème présent à la fois sur Grisbi 1.2.2 et 2.0.0 sur cette machine.
Pour l'instant je reproduis le problème à chaque fois.
----------------------------------------------------------------------
(0005908) pbiava (administrator) - 2021-01-17 17:06
https://www.grisbi.org/bugsreports/view.php?id=2089#c5908
----------------------------------------------------------------------
J'ai bien le message sous Linux avec toto.gsb mais rien sous Win10 et grisbi
1.9.x et 2.0.0. Je vais refaire le test la version 1.2.2 et on verra.
----------------------------------------------------------------------
(0005909) LudovicRousseau (administrator) - 2021-01-17 17:53
https://www.grisbi.org/bugsreports/view.php?id=2089#c5909
----------------------------------------------------------------------
J'ai compilé Grisbi avec l'option --enable-early-debug pour avoir des logs.
Et quand j'ai le dialogue vide j'ai comme log :
Sun Jan 17 16:41:28 2021, 2,129000 : Debug -
gsb_file_save.c:1734:gsb_file_save_save_file - F:\Nouveau dossier\Pierre &
Chloé ôÔ\toto_20210117T164128.gsb
Sun Jan 17 16:41:28 2021, 2,129000 : Debug -
gsb_rgba.c:505:gsb_rgba_get_string_to_save
Le dossier F:\Nouveau dossier\Pierre & Chloé ôÔ\ n'existe pas. Je n'ai même
plus de lecteur F:
J'imagine que le message d'erreur est pour me dire qu'il y a un problème pour
sauvegarder le fichier. Peut-être à cause des caractères "é ôÔ" dans le
chemin la chaîne n'est pas valide UTF-8 et n'est pas affichée. Problème !
Dans mon grisbi.conf (joint) j'ai :
[Backup]
backup-path=F:\\Nouveau dossier\\Pierre & Chloé ôÔ
compress-backup=false
make-backup-every-minutes=false
make-backup-nb-minutes=0
make-backup-single-file=false
remove-backup-files=false
remove-backup-months=12
sauvegarde-fermeture=true
sauvegarde-ouverture=true
Alors que dans les configurations de Grisbi le "Répertoire de sauvegarde"
indique "(Aucun)". Voir copie d'écran.
Encore un problème UTF-8 ?
----------------------------------------------------------------------
(0005910) LudovicRousseau (administrator) - 2021-01-17 18:02
https://www.grisbi.org/bugsreports/view.php?id=2089#c5910
----------------------------------------------------------------------
C'est le caractère "&" qui pose problème.
J'ai la fenêtre vide juste avec :
backup-path=C:\\&
Ici il n'y a PAS de dossier C:\\& donc Grisbi veut afficher un message.
Mais Grisbi devrait afficher le message d'erreur correctement.
----------------------------------------------------------------------
(0005911) LudovicRousseau (administrator) - 2021-01-17 18:16
https://www.grisbi.org/bugsreports/view.php?id=2089#c5911
----------------------------------------------------------------------
Bon, c'est pas un bug spécifique à Windows.
J'ai le même problème sur macOS avec le chemin (non existant) :
backup-path=/Users/rousseau/a/&
----------------------------------------------------------------------
(0005912) pbiava (administrator) - 2021-01-17 18:30
https://www.grisbi.org/bugsreports/view.php?id=2089#c5912
----------------------------------------------------------------------
En principe au chargement de grisbi si il n'y a pas de backup dans le fichier
grisbi le force avec gsb_dirs_get_user_data_dir (). ça ce semble pas
fonctionner sous grisbi.[EDIT] : sous Wndows
Pour ce qui concerne la lettre &, je me souviens qu'on avait eu il y a longtemps
un problème avec ça sous Linux. Par exemple dans mon fichier de compte j'ai
ça :
Owner="Pierre "&" Sylvie"
[EDIT] grisbi cache la conversion voir l'image jointe
C'est certain que ce doit être difficile à interpréter dans un chemin de
fichier. Maintenant il faut regarder pourquoi le messages n'est pas bon. Je
pense que c'est un problème de conversion UTF8 si on passe le nom du fichier en
paramètre du message ce qui est probable.
----------------------------------------------------------------------
(0005913) pbiava (administrator) - 2021-01-17 18:31
https://www.grisbi.org/bugsreports/view.php?id=2089#c5913
----------------------------------------------------------------------
Image extraite de mon fichier de comptes
----------------------------------------------------------------------
(0005914) pbiava (administrator) - 2021-01-17 18:46
https://www.grisbi.org/bugsreports/view.php?id=2089#c5914
----------------------------------------------------------------------
Il faudrait essayer avec ça g_filename_to_uri () et ça g_filename_from_uri ()
suivant le cas
----------------------------------------------------------------------
(0005915) LudovicRousseau (administrator) - 2021-01-17 18:48
https://www.grisbi.org/bugsreports/view.php?id=2089#c5915
----------------------------------------------------------------------
Corrigé dans
https://github.com/grisbi/grisbi/commit/d2091ea569a1be0635e47df362a8263563afb311
J'ai aussi fait 2 autres commit pour corriger le même problème à d'autres
endroits.
Mais il doit en rester à corriger.
----------------------------------------------------------------------
(0005916) pbiava (administrator) - 2021-01-17 18:50
https://www.grisbi.org/bugsreports/view.php?id=2089#c5916
----------------------------------------------------------------------
Je viens de créer un fichier pierre&sylvie je l'ai ouvert sans message puis
fermé et ré-ouvert toujours sans message.
----------------------------------------------------------------------
(0005917) pbiava (administrator) - 2021-01-17 18:56
https://www.grisbi.org/bugsreports/view.php?id=2089#c5917
----------------------------------------------------------------------
Vu ta correction mais ce problème n'existe pas sous Linux. voir image jointe.
Si ta correction corrige le problème temps mieux. Je regarde si il y a d'autres
endroits.
----------------------------------------------------------------------
(0005918) LudovicRousseau (administrator) - 2021-01-17 19:56
https://www.grisbi.org/bugsreports/view.php?id=2089#c5918
----------------------------------------------------------------------
Le problème existe sous GNU/Linux aussi. Je viens de tester.
Configure Grisbi avec :
[Backup]
backup-path=/home/rousseau/.local/share/grisbi/&
sauvegarde-ouverture=true
Et ouvrir un fichier .gsb.
J'ai le dialogue vide avec juste le bouton Fermer
Et dans la console j'ai le message :
(grisbi:32042): Gtk-WARNING **: 19:54:49.777: Failed to set text 'Cannot save
file '/home/rousseau/.local/share/grisbi/&/Mes comptes_20210117T195449.gsb':
Failed to create file “/home/rousseau/.local/share/grisbi/&/Mes
comptes_20210117T195449.gsb.ZFTSX0”: Aucun fichier ou dossier de ce type' from
markup due to error parsing markup: Error on line 1: Entity did not end with a
semicolon; most likely you used an ampersand character without intending to
start an entity — escape ampersand as &
Je confirme aussi que si je fais comme toi et renomme un fichier de compte j'ai
bien le message "le fichier n'existe pas" avec le nom du fichier "A&B.gsb" qui
s'affiche correctement.
Ce qui est étrange est que le problème n'apparait pas partout. À creuser...
----------------------------------------------------------------------
(0005919) LudovicRousseau (administrator) - 2021-01-17 21:05
https://www.grisbi.org/bugsreports/view.php?id=2089#c5919
----------------------------------------------------------------------
J'ai trouvé pourquoi ça ne le fait pas à chaque fois.
Si dialogue_special() est appelé avec le paramètre hint non NULL alors on
passe dans la branche
https://github.com/grisbi/grisbi/blob/master/src/dialog.c#L187
gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (dialog), dialogue_make_hint
(primary_text, NULL));
et on passe dans dialogue_make_hint() qui appel g_markup_printf_escaped()
Alors que si hint est NULL on fait juste appel à
gtk_message_dialog_set_markup().
Peut-être que le moyen le plus simple et sûr de tout corriger et de passer par
g_markup_printf_escaped() dans TOUT les cas.
----------------------------------------------------------------------
(0005920) LudovicRousseau (administrator) - 2021-01-17 21:24
https://www.grisbi.org/bugsreports/view.php?id=2089#c5920
----------------------------------------------------------------------
Le problème devrait être complètement corrigé avec ma modification
https://github.com/grisbi/grisbi/commit/e86c41ad010aef59ecd09ebd24ff661445c8b058
Du coup les 3 patches d2091ea569a1be0635e47df362a8263563afb311
9ef460b0185fdee5a6fdb6531862d5d19925f466 et
5532316e3e98cc6c2c6ae6770012dd70c07525a7 sont maintenant en trop.
----------------------------------------------------------------------
(0005921) pbiava (administrator) - 2021-01-18 06:44
https://www.grisbi.org/bugsreports/view.php?id=2089#c5921
----------------------------------------------------------------------
OK.
----------------------------------------------------------------------
(0005922) pbiava (administrator) - 2021-01-18 18:12
https://www.grisbi.org/bugsreports/view.php?id=2089#c5922
----------------------------------------------------------------------
Pourquoi tu ne traites pas de la même façon le texte secondaire ? Il peut y
avoir le même problème d'affichage de nom de fichier.
----------------------------------------------------------------------
(0005923) LudovicRousseau (administrator) - 2021-01-18 18:48
https://www.grisbi.org/bugsreports/view.php?id=2089#c5923
----------------------------------------------------------------------
Parce que le texte secondaire (dans le cas où on a text et hint) est affiché
par gtk_message_dialog_format_secondary_text () et pas par
gtk_message_dialog_format_secondary_markup ().
Le texte secondaire n'est pas considéré comme au format Pango text markup
language donc il devrait être affiché tel quel sans problème avec le '&'.
La preuve que ça marche bien est ta copie d'écran avec le fichier
"pierre&sylvie.gsb".
Issue History
Date Modified Username Field Change
======================================================================
2021-01-16 11:33 LudovicRousseauNew Issue
2021-01-16 11:33 LudovicRousseauFile Added: Mes comptes.gsb
2021-01-16 15:33 pbiava File Deleted: Mes comptes.gsb
2021-01-16 15:36 pbiava File Added: Capture-20210116153251-644x253.png
2021-01-16 15:36 pbiava Note Added: 0005896
2021-01-16 15:47 pbiava Note Added: 0005897
2021-01-16 15:48 pbiava Assigned To => pbiava
2021-01-16 15:48 pbiava Status new => assigned
2021-01-16 17:19 LudovicRousseauNote Added: 0005898
2021-01-16 18:30 LudovicRousseauFile Added: erreur.png
2021-01-16 18:30 LudovicRousseauNote Added: 0005899
2021-01-16 18:41 LudovicRousseauFile Added: toto.gsb
2021-01-16 18:41 LudovicRousseauNote Added: 0005900
2021-01-16 20:54 pbiava Note Added: 0005901
2021-01-16 22:53 LudovicRousseauNote Added: 0005902
2021-01-16 23:25 LudovicRousseauNote Added: 0005903
2021-01-16 23:29 LudovicRousseauNote Added: 0005904
2021-01-17 10:24 R1 Note Added: 0005905
2021-01-17 11:07 pbiava Note Added: 0005906
2021-01-17 17:04 LudovicRousseauNote Added: 0005907
2021-01-17 17:06 pbiava Note Added: 0005908
2021-01-17 17:53 LudovicRousseauFile Added: grisbi.conf
2021-01-17 17:53 LudovicRousseauFile Added: preferences.png
2021-01-17 17:53 LudovicRousseauNote Added: 0005909
2021-01-17 18:02 LudovicRousseauNote Added: 0005910
2021-01-17 18:16 LudovicRousseauNote Added: 0005911
2021-01-17 18:26 pbiava Note Added: 0005912
2021-01-17 18:27 pbiava Note Edited: 0005912
2021-01-17 18:28 pbiava Note Edited: 0005912
2021-01-17 18:30 pbiava Note Edited: 0005912
2021-01-17 18:31 pbiava File Added: Capture extrait de mon fichier de
comptes.png
2021-01-17 18:31 pbiava Note Added: 0005913
2021-01-17 18:46 pbiava Note Added: 0005914
2021-01-17 18:48 LudovicRousseauNote Added: 0005915
2021-01-17 18:50 LudovicRousseauStatus assigned => resolved
2021-01-17 18:50 LudovicRousseauResolution open => fixed
2021-01-17 18:50 LudovicRousseauFixed in Version => 2.0.x
2021-01-17 18:50 pbiava Note Added: 0005916
2021-01-17 18:56 pbiava File Added: Capture-pierre&sylvie n'existe
pas.png
2021-01-17 18:56 pbiava Note Added: 0005917
2021-01-17 19:56 LudovicRousseauNote Added: 0005918
2021-01-17 21:05 LudovicRousseauNote Added: 0005919
2021-01-17 21:24 LudovicRousseauNote Added: 0005920
2021-01-18 06:44 pbiava Note Added: 0005921
2021-01-18 18:12 pbiava Note Added: 0005922
2021-01-18 18:48 LudovicRousseauNote Added: 0005923
2025-05-08 19:06 LudovicRousseauStatus resolved => closed
======================================================================
Plus d'informations sur la liste de diffusion bugsreports