mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-03-01 14:15:49 +08:00
ITS#1328 LDIFv1 CR/LF fix
This commit is contained in:
parent
e7d3103424
commit
2c1273cd17
@ -1156,7 +1156,7 @@ read_one_record( FILE *fp )
|
||||
while ( fgets( line, sizeof(line), fp ) != NULL ) {
|
||||
int len = strlen( line );
|
||||
|
||||
if( len < 2 ) {
|
||||
if( len < 2 || ( len == 3 && *line == '\r' )) {
|
||||
if( buf == NULL ) {
|
||||
continue;
|
||||
} else {
|
||||
|
@ -24,7 +24,7 @@ int ldif_debug = 0;
|
||||
|
||||
#define RIGHT2 0x03
|
||||
#define RIGHT4 0x0f
|
||||
#define CONTINUED_LINE_MARKER '\001'
|
||||
#define CONTINUED_LINE_MARKER '\r'
|
||||
|
||||
#ifdef CSRIMALLOC
|
||||
#define ber_memalloc malloc
|
||||
@ -274,7 +274,13 @@ ldif_getline( char **next )
|
||||
line = *next;
|
||||
|
||||
while ( (*next = strchr( *next, '\n' )) != NULL ) {
|
||||
unsigned char c = *(*next + 1);
|
||||
unsigned char c = (*next)[1];
|
||||
|
||||
#if CONTINUED_LINE_MARKER != '\r'
|
||||
if ( (*next)[-1] == '\r' ) {
|
||||
(*next)[-1] = CONTINUED_LINE_MARKER;
|
||||
}
|
||||
#endif
|
||||
|
||||
if ( !isspace( c ) || c == '\n' ) {
|
||||
*(*next)++ = '\0';
|
||||
@ -282,7 +288,7 @@ ldif_getline( char **next )
|
||||
}
|
||||
|
||||
**next = CONTINUED_LINE_MARKER;
|
||||
*(*next+1) = CONTINUED_LINE_MARKER;
|
||||
(*next)[1] = CONTINUED_LINE_MARKER;
|
||||
(*next)++;
|
||||
}
|
||||
} while( *line == '#' );
|
||||
|
Loading…
Reference in New Issue
Block a user