diff options
Diffstat (limited to 'lib/libldapschema/loutput.c')
| -rw-r--r-- | lib/libldapschema/loutput.c | 19 |
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); |
