rem: if ( stat ( g_strconcat ( PIXMAPS_DIR, "/euro.gif", NULL ),&buffer_stat ) != -1 )
add: if ( stat ( g_strconcat ( PIXMAPS_DIR, C_DIRECTORY_SEPARATOR, "euro.gif", NULL ),&buffer_stat ) != -1 )
context: int main (int argc, char *argv[]){#ifndef _WIN32    struct sigaction sig_sev;#endif    gint demande_page;    struct stat buffer_stat;    /* on ajoute la possibilit de mettre l'option --onglet dans la ligne de commande */    /* Permet d'ouvrir le fichier demand sur l'onglet dsir  */    /* w=-1 : fentre de configuration */    /*    x=numro de l'onglet de configuration (0-9) */    /* w=0 : onglet d'accueil (identique sans argument) */    /* w=1 : onglet des oprations */    /* w=2 : onglet de l'chancier */    /* w=3 : onglet des comptes */    /* w=4 : onglet des tiers */    /* w=5 : onglet des catgories */    /* w=6 : onglet des imputations budgtaires */    /* w=7 : onglet des tats */    /*   x=numro de l'tat  afficher */    /*   y=absent pour rester sur l'tat, numro de l'onglet principal de personnalisation sinon */    /*   z=numro de l'onglet secondaire de la personnalisation */    /*   Exemples : */    /* grisbi --onglet=3 mes_comptes */    /* place grisbi directement sur l'chancier du fichier mes_comptes */    /* grisbi --onglet=-1,3 mes_comptes */    /* affiche la configuration de grisbi et la place sur Affichage */    /* grisbi --onglet=7,2 mes_comptes */    /* affiche le 3me tat */    /* grisbi --onglet=7,2,2,2 mes_comptes */    /* affiche l'onglet opration de l'onglet Affichage des donnes du 3me tat */	/*   setlocale (LC_ALL, ""); */	bindtextdomain (PACKAGE, LOCALEDIR);	bind_textdomain_codeset (PACKAGE, "UTF-8");	textdomain (PACKAGE);	/* FIXME : tous les arguments du gnome_init... */	/* 	gnome_init_with_popt_table ("Grisbi", VERSION, argc, argv, options, 0, &ctx); */	gtk_init ( &argc, &argv );	/* on commence par dtourner le signal SIGSEGV */#ifndef _WIN32    /* sauf sous Windows*/	memset ( &sig_sev, 0, sizeof ( struct sigaction ));	sig_sev.sa_handler = traitement_sigsegv;	sig_sev.sa_flags = 0;	sigemptyset (&(sig_sev.sa_mask));	if ( sigaction ( SIGSEGV, &sig_sev, NULL ))	    printf (_("Error on sigaction: SIGSEGV won't be trapped\n"));#endif	/*  Cration de la fentre principale */	window = gtk_window_new ( GTK_WINDOW_TOPLEVEL );	gtk_signal_connect ( GTK_OBJECT (window),			     "delete_event",			     GTK_SIGNAL_FUNC ( fermeture_grisbi ),			     NULL );	gtk_signal_connect (GTK_OBJECT (window),			    "destroy",			    GTK_SIGNAL_FUNC ( fermeture_grisbi ),			    NULL );	gtk_window_set_policy ( GTK_WINDOW ( window ),				TRUE,				TRUE,				FALSE );	/* 	cration de la pixmap du logiciel */	if ( stat ( g_strconcat ( PIXMAPS_DIR, "/euro.gif", NULL ),&buffer_stat ) != -1 )	    gtk_window_set_default_icon_from_file ( g_strconcat(PIXMAPS_DIR,								"/euro.gif",								NULL),						    NULL );	window_vbox_principale = gtk_vbox_new ( FALSE,						5 );	gtk_container_add ( GTK_CONTAINER ( window ),			    window_vbox_principale );	gtk_widget_show ( window_vbox_principale );	/*   cration des menus */	menu_general = init_menus ( window_vbox_principale );	gtk_box_pack_start ( GTK_BOX ( window_vbox_principale ),			     menu_general,			     FALSE,			     FALSE,			     0 );	/* on grise les fonctions inutiles au dpart */	init_variables ( FALSE );	style_label_nom_compte = NULL;	charge_configuration();	/* on met dans le menu les derniers fichiers ouverts */	affiche_derniers_fichiers_ouverts ();	/*   si la taille avait dj t sauve, on remet l'ancienne taille 	     la fenetre */	if ( largeur_window && hauteur_window )	    gtk_window_set_default_size ( GTK_WINDOW ( window ),					  largeur_window,					  hauteur_window );	else	    gtk_window_set_default_size ( GTK_WINDOW ( window ),					  640, 480 );	gtk_widget_show ( window );	/*   on applique la fonte aux listes si ncessaire */	initialisation_couleurs_listes ();	/* 	on met en place l'idle */	id_fonction_idle = g_idle_add ( (GSourceFunc) utilisation_temps_idle,					NULL );		/* on vrifie les arguments de ligne de commande */	demande_page = 0;	switch ( argc )	{	    case 1:		/* il n'y a aucun argument */		/* ouvre le dernier fichier s'il existe et si c'est demand */		if ( etat.dernier_fichier_auto		     &&		     nom_fichier_comptes		     &&		     strlen ( nom_fichier_comptes ) )		    ouverture_confirmee();		break;	    case 2:		/* l'argument peut tre soit --onglet, soit le fichier  ouvrir */		if ( !strncmp ( argv[1],				"--",				2 ))		{		    demande_page = 1;		    /* ouvre le dernier fichier s'il existe et si c'est demand */		    if ( etat.dernier_fichier_auto			 &&			 nom_fichier_comptes			 &&			 strlen ( nom_fichier_comptes ) )			ouverture_confirmee();		}		else		{		    nom_fichier_comptes = argv[1];		    ouverture_confirmee();		}		break;	    case 3:		/* il y a --onglet et un nom de fichier */		/*       il faut que argv[1] commence par -- sinon on considre que c'est le nom de fichier */		/* et on oublie le 2me argument */		if ( !strncmp ( argv[1],				"--",				2 ))		{		    demande_page = 1;		    /* ouvre le fichier demand */		    nom_fichier_comptes = argv[2];		    ouverture_confirmee();		}		else		{		    nom_fichier_comptes = argv[1];		    ouverture_confirmee();		}		break;	}	/*    ce niveau, le fichier doit tre charg, on met sur l'onglet demand si ncessaire */	if ( nb_comptes	     &&	     demande_page )	{	    gchar **split_argument;	    split_argument = g_strsplit ( argv[1],					  "=",					  2 );	    /*       si le 2me argument retourn est null, c'est qu'on avait marqu --onglet= */	    /* et dans ce cas on fait rien */	    if ( split_argument[1] )	    {		gchar **split_chiffres;		split_chiffres = g_strsplit ( split_argument[1],					      ",",					      0 );		/* 	  comme split_argument[1] existait, split_chiffres[0] existe forcemment */		switch ( my_atoi ( split_chiffres[0] ))		{		    case -1:			/* on demande l'onglet de configuration */			/* on affiche l'onglet du 2me argument s'il existe */			if ( split_chiffres[1] )			    preferences ( my_atoi ( split_chiffres[1] ));			else			    preferences ( NOT_A_PAGE );			break;		    case 0:		    case 1:		    case 2:		    case 3:		    case 4:		    case 5:		    case 6:			gtk_notebook_set_page ( GTK_NOTEBOOK ( notebook_general ),						my_atoi ( split_chiffres[0] ));			break;		    case 7:			/* on demande l'onglet des tats  */			gtk_notebook_set_page ( GTK_NOTEBOOK ( notebook_general ),						my_atoi ( split_chiffres[0] ));			/* s'il y a un chiffre ensuite, on ouvre l'tat correspondant  ce chiffre */			if ( split_chiffres[1]			     &&			     liste_struct_etats )			{			    GSList *liste_tmp;			    liste_tmp = g_slist_nth ( liste_struct_etats,						      my_atoi ( split_chiffres[1] ));			    /* si on a slectionn un tat qui n'existait pas, on ouvre le 1er */			    if ( !liste_tmp )				liste_tmp = liste_struct_etats;			    etat_courant = liste_tmp -> data;			    remplissage_liste_etats ();			    gtk_widget_set_sensitive ( bouton_personnaliser_etat,						       TRUE );			    gtk_widget_set_sensitive ( bouton_exporter_etat,						       TRUE );			    gtk_widget_set_sensitive ( bouton_dupliquer_etat,						       TRUE );			    gtk_widget_set_sensitive ( bouton_effacer_etat,						       TRUE );			    gtk_label_set_text ( GTK_LABEL ( label_etat_courant ),						 etat_courant -> nom_etat );			    rafraichissement_etat ( etat_courant );			    /* s'il y a une suite dans la demande en ligne de commande, on ouvre la personnalisation */			    if ( split_chiffres[2] )			    {				personnalisation_etat ();				/* le 1er chiffre correspond aux 1ers onglets */				gtk_notebook_set_page ( GTK_NOTEBOOK ( notebook_config_etat ),							my_atoi ( split_chiffres[2] ));				/* s'il y a encore un chiffre, c'est pour le sous onglet */				if ( split_chiffres[3] )				{				    switch ( my_atoi ( split_chiffres[2] ))				    {					case 0:					    gtk_notebook_set_page ( GTK_NOTEBOOK ( notebook_selection ),								    my_atoi ( split_chiffres[3] ));					    break;					case 2:					    gtk_notebook_set_page ( GTK_NOTEBOOK ( notebook_aff_donnees ),								    my_atoi ( split_chiffres[3] ));					    break;				    }				}			    }			}			break;		}	    }	}	gtk_main ();	exit(0);}