rem: chemin_logo = LOGO_PATH;
add: chemin_logo = g_strdup ( LOGO_PATH );
context: gboolean mise_a_jour_versions_anterieures ( gint no_version,					    struct recuperation_version *version ){    gint i;    struct struct_devise *devise;    struct stat buffer_stat;    /*     par défaut le fichier n'est pas modifié sauf si on charge une version précédente */    modification_fichier ( FALSE );    switch ( no_version )    {	/* ************************************* */	/*     ouverture d'un fichier 0.4.0      */	/* ************************************* */	case 40:	    /* il n'y a aucune différence de struct entre la 0.4.0 et la 0.4.1 */	    /* sauf que la 0.4.0 n'attribuait pas le no de relevé aux opés filles */	    /* d'une ventilation */	    for ( i = 0 ; i < nb_comptes ; i++ )	    {		GSList *liste_tmp;		p_tab_nom_de_compte_variable = p_tab_nom_de_compte + i;		liste_tmp = LISTE_OPERATIONS;		while ( liste_tmp )		{		    struct structure_operation *operation;		    operation = liste_tmp -> data;		    /*  si l'opération est une ventil, on refait le tour de la liste pour trouver ses filles */		    if ( operation -> operation_ventilee )		    {			GSList *liste_tmp_2;			liste_tmp_2 = LISTE_OPERATIONS;			while ( liste_tmp_2 )			{			    struct structure_operation *operation_2;			    operation_2 = liste_tmp_2 -> data;			    if ( operation_2 -> no_operation_ventilee_associee == operation -> no_operation )				operation_2 -> no_rapprochement = operation -> no_rapprochement;			    liste_tmp_2 = liste_tmp_2 -> next;			}		    }		    liste_tmp = liste_tmp -> next;		}	    }	    /* ************************************* */	    /* 	    ouverture d'un fichier 0.4.1     */	    /* ************************************* */	case 41:	    /*     ajout de la 0.5 -> valeur_echelle_recherche_date_import qu'on me à 2 */	    valeur_echelle_recherche_date_import = 2;	    /* 	    passage à l'utf8 : on fait le tour des devises pour retrouver l'euro */	    /* Handle Euro nicely */	    devise = devise_par_nom ( g_strdup ("Euro"));	    if ( devise )	    {		devise -> code_devise = "â¬";		devise -> code_iso4217_devise = g_strdup ("EUR");	    }	    /* ************************************* */	    /* 	    ouverture d'un fichier 0.5.0     */	    /* ************************************* */	case 50:	    /* pour l'instant le fichier 0.5.1 ne diffère pas de la version 0.5.0 */	    /*     excepté un changement dans la notation du pointage */	    /*     rien=0 ; P=1 ; T=2 ; R=3 */	    /*     on fait donc le tour des opés pour inverser R et P */	    switch_t_r ();	    /* 	    on met l'organisation des formulaires de tous les comptes à 0 */	    for ( i=0 ; i<nb_comptes ; i++ )	    {		p_tab_nom_de_compte_variable = p_tab_nom_de_compte + i;		ORGANISATION_FORMULAIRE = mise_a_zero_organisation_formulaire(); 	    }	    /* 	    un bug dans la 0.5.0 permettait à des comptes d'avoir un affichage différent, */	    /* 	    même si celui ci devait être identique pour tous, on vérifie ici */	    if ( !etat.retient_affichage_par_compte )	    {		gint affichage_r;		gint nb_lignes_ope;		gint i;		p_tab_nom_de_compte_variable = p_tab_nom_de_compte + compte_courant;		affichage_r = AFFICHAGE_R;		nb_lignes_ope = NB_LIGNES_OPE;		for ( i=0 ; i<nb_comptes ; i++ )		{		    p_tab_nom_de_compte_variable = p_tab_nom_de_compte + i;		    AFFICHAGE_R = affichage_r;		    NB_LIGNES_OPE = nb_lignes_ope;		}	    } 	    /* 	    on met le classement courant par date et ordre croissant */	    for ( i=0 ; i<nb_comptes ; i++ )	    {		p_tab_nom_de_compte_variable = p_tab_nom_de_compte + i;		NO_CLASSEMENT = TRANSACTION_LIST_DATE;		CLASSEMENT_CROISSANT = GTK_SORT_DESCENDING;		CLASSEMENT_COURANT = recupere_classement_par_no ( NO_CLASSEMENT );	    }	    /* ********************************************************* */	    /* 	    à mettre à chaque fois juste avant la version stable */	    /* ********************************************************* */	    modification_fichier ( TRUE );	    	    /* ************************************* */	    /* 	    ouverture d'un fichier 0.5.1     */	    /* ************************************* */	case 51:	    break;	    /* ************************************* */	    /* 	    ouverture d'un fichier 0.6.0     */	    /* ************************************* */	case 60:	    break;	default :	    /* 	à ce niveau, c'est que que la version n'est pas connue de grisbi, on donne alors */	    /* la version nécessaire pour l'ouvrir */	    dialogue_error ( g_strdup_printf ( _("Grisbi version %s is needed to open this file.\nYou are using version %s."),					       version -> version_fichier,					       version -> version_grisbi ));	    return ( FALSE );    }    /*     on met maintenant les généralités pour toutes les versions */    /* 	s'il y avait un ancien logo mais qu'il n'existe plus, on met le logo par défaut */    if ( !chemin_logo	 ||	 !strlen ( chemin_logo )	 ||	 ( chemin_logo	   &&	   strlen ( chemin_logo )	   &&	   stat ( chemin_logo, &buffer_stat) == -1 ))	chemin_logo = LOGO_PATH;    /* on marque le fichier comme ouvert */    modification_etat_ouverture_fichier ( TRUE );    return TRUE;}