add: if ( c == '\r' ) { c =(gchar)fgetc(fichier); if ( c != '\n' ) { ungetc ( c, fichier ); } }
context: gint get_line_from_file ( FILE *fichier,			  gchar **string ){    gchar c = 0;    gint i = 0;    gint j = 0;    gchar *pointeur_char = NULL;    if ( !fichier )	return 0;	        /*     on commence par allouer une taille de 30 caractÃšres, qu'on augment ensuite de 30 par 30 */    pointeur_char = (gchar*)realloc(pointeur_char,30*sizeof(gchar));    if ( !pointeur_char )    {	/* 	aie, pb de mÃ©moire, on vire */	dialogue_error ( _("Memory allocation error" ));	return 0;    }    while ( ( c != '\n' ) && (c != '\r'))    {	c =(gchar)fgetc(fichier);	if (feof(fichier)) break;	pointeur_char[j++] = c;	if ( ++i == 29 )	{	    pointeur_char = (gchar*)realloc(pointeur_char, j + 1 + 30*sizeof(gchar));	    if ( !pointeur_char )	    {		/* 	aie, pb de mÃ©moire, on vire */		dialogue_error ( _("Memory allocation error" ));		return 0;	    }	    i = 0;	}    }    pointeur_char[j] = 0;    *string = pointeur_char;    if ( feof(fichier))	return EOF;    else	return 1;}