From: Hallvard Furuseth Date: Fri, 31 Oct 2003 19:13:20 +0000 (+0000) Subject: Ignore comments surrounded by empty lines in ldif_read_record(). X-Git-Tag: OPENLDAP_REL_ENG_2_1_MP~470 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=e0999334d2f8138e07a434525ab2dc12becd46c1;p=openldap Ignore comments surrounded by empty lines in ldif_read_record(). Slapadd treated these as separate, incorrect, entries. --- diff --git a/libraries/libldif/line64.c b/libraries/libldif/line64.c index c3775a7bd2..b82933d971 100644 --- a/libraries/libldif/line64.c +++ b/libraries/libldif/line64.c @@ -571,7 +571,7 @@ ldif_read_record( { char linebuf[BUFSIZ], *line, *nbufp; ber_len_t lcur = 0, len, linesize; - int last_ch = '\n', found_entry = 0, stop; + int last_ch = '\n', found_entry = 0, stop, top_comment = 0; line = linebuf; linesize = sizeof( linebuf ); @@ -588,18 +588,25 @@ ldif_read_record( (*lno)++; if ( line[0] == '\n' ) { - if ( !found_entry ) + if ( !found_entry ) { + lcur = 0; + top_comment = 0; continue; + } break; } if ( !found_entry ) { - /* Found a new entry */ - found_entry = 1; - - if ( isdigit( (unsigned char) line[0] ) ) { - /* skip index */ - continue; + if ( line[0] == '#' ) { + top_comment = 1; + } else if ( ! ( top_comment && line[0] == ' ' ) ) { + /* Found a new entry */ + found_entry = 1; + + if ( isdigit( (unsigned char) line[0] ) ) { + /* skip index */ + continue; + } } } }