add: if ( categorie -> no_derniere_sous_categ != sous_categ_max ) categorie -> no_derniere_sous_categ = sous_categ_max;
context: gboolean recuperation_categories_xml ( xmlNodePtr node_categories ){    while ( node_categories )    {	/* on va recuperer ici les generalites des categories */	if ( !strcmp ( node_categories -> name,		       "Generalites" ))	{	    xmlNodePtr node_generalites;	    node_generalites = node_categories -> children;	    while ( node_generalites )	    {		if ( !strcmp ( node_generalites -> name,			       "Nb_categories" ))		    nb_enregistrements_categories = my_atoi ( xmlNodeGetContent ( node_generalites ));		if ( !strcmp ( node_generalites -> name,			       "No_derniere_categorie" ))		    no_derniere_categorie = my_atoi ( xmlNodeGetContent ( node_generalites ));		node_generalites = node_generalites -> next;	    }	}	/* on va recuperer ici les categories */	if ( !strcmp ( node_categories -> name,		       "Detail_des_categories" ))	{	    xmlNodePtr node_detail;	    liste_struct_categories = NULL;	    node_detail = node_categories -> children;	    while ( node_detail )	    {		struct struct_categ *categorie;		xmlNodePtr node_sous_categ;		categorie = calloc ( 1,				     sizeof ( struct struct_categ ) );		if ( node_detail -> type != XML_TEXT_NODE )		{		    categorie -> no_categ = my_atoi ( xmlGetProp ( node_detail,								   "No" ));		    categorie -> nom_categ = xmlGetProp ( node_detail,							  "Nom" );		    categorie -> type_categ = my_atoi ( xmlGetProp ( node_detail,								     "Type" ));		    if  ( xmlHasProp(node_detail, "No_derniere_sous_cagegorie"))		    {			    categorie -> no_derniere_sous_categ = my_atoi ( xmlGetProp ( node_detail,											 "No_derniere_sous_cagegorie" ));		    } 		    else 		    {			    categorie -> no_derniere_sous_categ = my_atoi ( xmlGetProp ( node_detail,											 "No_derniere_sous_categorie" ));		    }		    /*  pour chaque categorie, on recupère les sous-categories */		    categorie -> liste_sous_categ = NULL;		    node_sous_categ = node_detail -> children;		    while ( node_sous_categ )		    {			struct struct_sous_categ *sous_categ;			if ( node_sous_categ -> type != XML_TEXT_NODE )			{			    sous_categ = calloc ( 1, sizeof ( struct struct_sous_categ ) );			    sous_categ -> no_sous_categ = my_atoi ( xmlGetProp ( node_sous_categ,										 "No" ));			    sous_categ -> nom_sous_categ = xmlGetProp ( node_sous_categ,									"Nom" );			    categorie -> liste_sous_categ = g_slist_append ( categorie -> liste_sous_categ,									     sous_categ );			}			node_sous_categ = node_sous_categ -> next;		    }		    liste_struct_categories = g_slist_append ( liste_struct_categories,							       categorie );		}		node_detail = node_detail -> next;	    }	}	node_categories = node_categories -> next;    }    return TRUE;}