add: date = (GDate *) malloc ( sizeof (GDate) );  g_date_set_parse ( date, date_string ); if ( g_date_valid ( date ) ) return date;
context: GDate * gsb_parse_date_string ( gchar * date_string ){    gchar * separators[4] = { "/", ".", "-", NULL };    int jour = -1, mois = -1, annee = -1, i;    gchar **tab_date;    GDate * date;      for ( i = 0; separators[i]; i++ )    {	date = gdate_today();		tab_date = g_strsplit ( date_string, separators[i], 3 );	if ( tab_date[2] && tab_date[1] )	{	    /* on a rentrÃ© les 3 chiffres de la date */	    jour = utils_str_atoi ( tab_date[0] );	    mois = utils_str_atoi ( tab_date[1] );	    annee = utils_str_atoi ( tab_date[2] );	    	    if ( annee < 100 )	    {		if ( annee < 80 )		    annee = annee + 2000;		else		    annee = annee + 1900;	    }	    return g_date_new_dmy ( jour, mois, annee );	}	else	{	    if ( tab_date[1] )	    {		/* on a rentrÃ© la date sous la forme xx/xx,		   il suffit de mettre l'annÃ©e courante */		jour = utils_str_atoi ( tab_date[0] );		mois = utils_str_atoi ( tab_date[1] );		annee = g_date_year ( date );		return g_date_new_dmy ( jour, mois, annee );	    }	    else	    {		/* on a rentrÃ© que le jour de la date, il		   faut mettre le mois et l'annÃ©e courante		   ou bien on a rentrÃ© la date sous forme		   jjmm ou jjmmaa ou jjmmaaaa */		gchar buffer[3];				switch ( strlen ( tab_date[0] ) )		{		/* forme jj ou j */		case 1:		case 2:		    jour = utils_str_atoi ( tab_date[0] );		    mois = g_date_month ( date );		    annee = g_date_year ( date );		    return g_date_new_dmy ( jour, mois, annee );		/* forme jjmm */		case 4 :		    buffer[0] = tab_date[0][0];		    buffer[1] = tab_date[0][1];		    buffer[2] = 0;		    jour = utils_str_atoi ( buffer );		    mois = utils_str_atoi ( tab_date[0] + 2 );		    annee = g_date_year ( date );		    return g_date_new_dmy ( jour, mois, annee );		/* forme jjmmaa */		case 6:		    buffer[0] = tab_date[0][0];		    buffer[1] = tab_date[0][1];		    buffer[2] = 0;		    jour = utils_str_atoi ( buffer );		    buffer[0] = tab_date[0][2];		    buffer[1] = tab_date[0][3];		    mois = utils_str_atoi ( buffer );		    annee = utils_str_atoi ( tab_date[0] + 4 ) + 2000;		    return g_date_new_dmy ( jour, mois, annee );		/* forme jjmmaaaa */		case 8:		    buffer[0] = tab_date[0][0];		    buffer[1] = tab_date[0][1];		    buffer[2] = 0;		    jour = utils_str_atoi ( buffer );		    buffer[0] = tab_date[0][2];		    buffer[1] = tab_date[0][3];		    mois = utils_str_atoi ( buffer );		    annee = utils_str_atoi ( tab_date[0] + 4 );		    return g_date_new_dmy ( jour, mois, annee );		}	    }	}	g_strfreev ( tab_date );    }    return NULL;}