From: Kurt Zeilenga Date: Tue, 25 Sep 2001 18:48:48 +0000 (+0000) Subject: ITS#1328 LDIFv1 CR/LF fix X-Git-Tag: LDBM_PRE_GIANT_RWLOCK~1061 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=2c1273cd17169b4c2e593d59274f4e92c1c82dc8;p=openldap ITS#1328 LDIFv1 CR/LF fix --- diff --git a/clients/tools/ldapmodify.c b/clients/tools/ldapmodify.c index 353ad0ae33..121bd64821 100644 --- a/clients/tools/ldapmodify.c +++ b/clients/tools/ldapmodify.c @@ -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 { diff --git a/libraries/libldif/line64.c b/libraries/libldif/line64.c index 947d35a616..f0db46a0f7 100644 --- a/libraries/libldif/line64.c +++ b/libraries/libldif/line64.c @@ -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 == '#' );