aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/lib/libldapschema/loutput.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libldapschema/loutput.c')
-rw-r--r--lib/libldapschema/loutput.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/libldapschema/loutput.c b/lib/libldapschema/loutput.c
index b7e656f..35e3347 100644
--- a/lib/libldapschema/loutput.c
+++ b/lib/libldapschema/loutput.c
@@ -62,7 +62,7 @@
62#define LDAPSCHEMA_WIDTH_HEADER 19 62#define LDAPSCHEMA_WIDTH_HEADER 19
63#define LDAPSCHEMA_WIDTH_INDENT 3 63#define LDAPSCHEMA_WIDTH_INDENT 3
64#define LDAPSCHEMA_WIDTH_FIELD (LDAPSCHEMA_WIDTH_HEADER-LDAPSCHEMA_WIDTH_INDENT) 64#define LDAPSCHEMA_WIDTH_FIELD (LDAPSCHEMA_WIDTH_HEADER-LDAPSCHEMA_WIDTH_INDENT)
65#define LDAPSCHEMA_WIDTH_VALUE 45 65#define LDAPSCHEMA_WIDTH_VALUE 59
66 66
67 67
68////////////////// 68//////////////////
@@ -393,6 +393,7 @@ void ldapschema_print_list_models(LDAPSchema * lsd,
393{ 393{
394 size_t pos; 394 size_t pos;
395 const char * key; 395 const char * key;
396 size_t key_len;
396 size_t buff_len; 397 size_t buff_len;
397 char buff[256]; 398 char buff[256];
398 size_t lineno; 399 size_t lineno;
@@ -440,17 +441,21 @@ void ldapschema_print_list_models(LDAPSchema * lsd,
440 if (!(key)) 441 if (!(key))
441 continue; 442 continue;
442 443
443 if ((pos + 1) < list_len) 444 key_len = strlen(key) + 1;
444 buff_len += (size_t)snprintf(&buff[buff_len], sizeof(buff)-buff_len, "%s, ", key ); 445 if ( ((buff_len)) && ((buff_len+key_len) > LDAPSCHEMA_WIDTH_VALUE) )
445 else
446 buff_len += (size_t)snprintf(&buff[buff_len], sizeof(buff)-buff_len, "%s", key );
447 if (buff_len >= LDAPSCHEMA_WIDTH_VALUE)
448 { 446 {
449 ldapschema_print_line( ((!(lineno))?name:NULL), buff); 447 if (buff[buff_len-1] == ' ')
448 buff[buff_len-1] = '\0';
449 ldapschema_print_line( ((!(lineno)) ? name : NULL), buff);
450 buff_len = 0; 450 buff_len = 0;
451 buff[0] = '\0'; 451 buff[0] = '\0';
452 lineno++; 452 lineno++;
453 }; 453 };
454
455 if ((pos + 1) < list_len)
456 buff_len += (size_t)snprintf(&buff[buff_len], sizeof(buff)-buff_len, "%s, ", key );
457 else
458 buff_len += (size_t)snprintf(&buff[buff_len], sizeof(buff)-buff_len, "%s", key );
454 }; 459 };
455 if ((buff_len)) 460 if ((buff_len))
456 ldapschema_print_line( ((!(lineno))?name:NULL), buff); 461 ldapschema_print_line( ((!(lineno))?name:NULL), buff);