#include #include "etc.h" #if 0 /* Lit une ligne de texte en interprétant les demandes de continuation et commentaires Retourne buf, ou NULL si eof Les blancs à la fin de la ligne sont toujours éliminés. Tous ce qui suit un comcar est un commentaire. la ligne est coupé avant */ export char *fgets_strip0 ( char *buf, int sizebuf, FILE *fin, char contcar, /* Caractère de continuation, généralement \ */ char comcar, /* Début d'un commentaire, généralement # */ int *noline, /* Compteur réviser permettant de connaitre */ /* où on est rendu dans le fichier */ /* Ou NULL */ int *empty) /* Sera != 0 si la ligne est vide et ne contennait */ /* même pas un commentaire */ { int nocomment = 1; /* Aucun commentaire rencontré ? */ int contline=0; char *debut = buf; char *ret = NULL; *buf = '\0'; *empty = 1; while (fgets(buf,sizebuf,fin)!=NULL){ char *end = strip_end (buf); char *pt = strchr(buf,comcar); if (pt != NULL){ nocomment = 0; *pt = '\0'; end = strip_end (buf); } if (noline != NULL) (*noline)++; ret = debut; if (contline){ char *pt = str_skip(buf); if (pt > buf+1){ strcpy (buf+1,pt); buf[0] = ' '; end-=(int)(pt-buf)-1; }else if (pt == buf+1){ buf[0] = ' '; } } if (end > buf && *(end-1) == contcar){ if (end == buf+1 || *(end-2) != contcar){ /* Continuation demandé */ contline = 1; end--; *end = '\0'; buf = end; }else{ *(end-1) = '\0'; break; } }else{ break; } } *empty = debut[0] == '\0' && nocomment; return ret; } /* Lit une ligne de texte en interprétant les demandes de continuation et commentaires Retourne buf, ou NULL si eof Les blancs à la fin de la ligne sont toujours éliminés. Tous ce qui suit un comcar est un commentaire. la ligne est coupé avant */ export char *fgets_strip ( char *buf, int sizebuf, FILE *fin, char contcar, /* Caractère de continuation, généralement \ */ char comcar, /* Début d'un commentaire, généralement # */ int *noline) /* Compteur réviser permettant de connaitre */ /* où on est rendu dans le fichier */ /* Ou NULL */ { int empty; return fgets_strip0 (buf,sizebuf,fin,contcar,comcar,noline,&empty); } #endif