int my_fgetsUpToLfOrTab( char *szLine, int len, FILE *f ) { int length; char *p; char szSkip[256]; int bTooLongLine = 0; do { p = fgetsTab( szLine, len-1, f ); if ( !p ) { return -1; /* end of file or cannot read */ } szLine[len-1] = '\0'; /* bTooLongLine = !strchr( szLine, '\n' ); */ bTooLongLine = ( !p && ((int)strlen(szLine)) == len-2 ); LtrimRtrim( szLine, &length ); } while ( !length ); if ( bTooLongLine ) { while ( p = fgetsTab( szSkip, sizeof(szSkip)-1, f ) ) { szSkip[sizeof(szSkip)-1] = '\0'; if ( strchr( szSkip, '\n' ) ) break; } } return length; }
int my_fgets( char *szLine, int len, FILE *f, int *bTooLongLine ) { int length; char *p; do { p = fgets( szLine, len-1, f ); if ( !p ) { *bTooLongLine = 0; return -1; /* end of file or cannot read */ } szLine[len-1] = '\0'; p = strchr( szLine, '\n' ); *bTooLongLine = ( !p && ((int)strlen(szLine)) == len-2 ); LtrimRtrim( szLine, &length ); } while ( !length ); return length; }
int inchi_ios_getsTab1( char *szLine, int len, INCHI_IOSTREAM *f, int *bTooLongLine ) { int length; char *p; /*do {*/ p = inchi_ios_str_getsTab( szLine, len-1, f ); if ( !p ) { *bTooLongLine = 0; return -1; /* end of file or cannot read */ } szLine[len-1] = '\0'; /* *bTooLongLine = !strchr( szLine, '\n' ); */ p = strchr( szLine, '\n' ); *bTooLongLine = ( !p && ((int)strlen(szLine)) == len-2 ); LtrimRtrim( szLine, &length ); /*} while ( !length );*/ return length; }
int inchi_fgetsLfTab( char *szLine, int len, FILE *f ) { int length; char *p; char szSkip[256]; int bTooLongLine = 0; do { p = inchi_fgetsTab( szLine, len, f ); if ( !p ) { return -1; /* end of file or cannot read */ } bTooLongLine = ( (int)strlen(szLine) == len-1 && szLine[len-2] != '\n' ); LtrimRtrim( szLine, &length ); } while ( !length ); if ( bTooLongLine ) { while ( p = inchi_fgetsTab( szSkip, sizeof(szSkip)-1, f ) ) { if ( strchr( szSkip, '\n' ) ) break; } } return length; }