From: Howard Chu Date: Wed, 4 Jun 2014 07:52:01 +0000 (-0700) Subject: ITS#7871 fix ldif-wrap length X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=71ff674a02b71d56fab861c0ad49840d221e8cd2;p=openldap ITS#7871 fix ldif-wrap length Doc has been updated to note the default was actually 78. The off-by-two error is fixed. Note that wrap=1 will still output 2 columns, otherwise it can't output anything besides the continuation character. --- diff --git a/doc/man/man8/slapcat.8 b/doc/man/man8/slapcat.8 index 6a04d4adaf..093fd87da2 100644 --- a/doc/man/man8/slapcat.8 +++ b/doc/man/man8/slapcat.8 @@ -153,7 +153,9 @@ Possible generic options/values are: .in \fIn\fP is the number of columns allowed for the LDIF output -(\fIn\fP equal to \fI0\fP uses the default, corresponding to 76). +(\fIn\fP equal to \fI0\fP uses the default, corresponding to 78). +The minimum is 2, leaving space for one character and one +continuation character. Use \fIno\fP for no wrap. .TP .BI \-s \ subtree-dn diff --git a/libraries/libldap/ldif.c b/libraries/libldap/ldif.c index c9cd59c082..9f868102ee 100644 --- a/libraries/libldap/ldif.c +++ b/libraries/libldap/ldif.c @@ -486,8 +486,8 @@ ldif_must_b64_encode( LDAP_CONST char *s ) return 0; } -/* compatibility with U-Mich off by one bug */ -#define LDIF_KLUDGE 1 +/* compatibility with U-Mich off by two bug */ +#define LDIF_KLUDGE 2 /* NOTE: only preserved for binary compatibility */ void @@ -498,7 +498,7 @@ ldif_sput( LDAP_CONST char *val, ber_len_t vlen ) { - ldif_sput_wrap( out, type, name, val, vlen, LDIF_LINE_WIDTH ); + ldif_sput_wrap( out, type, name, val, vlen, LDIF_LINE_WIDTH+LDIF_KLUDGE ); } void @@ -521,7 +521,8 @@ ldif_sput_wrap( ber_len_t len=0; ber_len_t i; - wrap = LDIF_LINE_WIDTH_WRAP( wrap ); + if ( !wrap ) + wrap = LDIF_LINE_WIDTH+LDIF_KLUDGE; /* prefix */ switch( type ) { @@ -633,7 +634,7 @@ ldif_sput_wrap( b64 = 1; break; } - if ( len - LDIF_KLUDGE > wrap ) { + if ( len >= wrap ) { *(*out)++ = '\n'; *(*out)++ = ' '; len = 1; @@ -662,7 +663,7 @@ ldif_sput_wrap( bits |= (byte[2] & 0xff); for ( i = 0; i < 4; i++, len++, bits <<= 6 ) { - if ( len - LDIF_KLUDGE > wrap ) { + if ( len >= wrap ) { *(*out)++ = '\n'; *(*out)++ = ' '; len = 1; @@ -687,7 +688,7 @@ ldif_sput_wrap( bits |= (byte[2] & 0xff); for ( i = 0; i < 4; i++, len++, bits <<= 6 ) { - if ( len - LDIF_KLUDGE > wrap ) { + if ( len >= wrap ) { *(*out)++ = '\n'; *(*out)++ = ' '; len = 1;