diff options
| author | David M. Syzdek <david@syzdek.net> | 2019-12-02 19:51:37 -0900 |
|---|---|---|
| committer | David M. Syzdek <david@syzdek.net> | 2019-12-02 19:51:37 -0900 |
| commit | 5ca8dad947b76673402e373988832f50207c3205 (patch) | |
| tree | b1b4ab6fbdd28e15e697e06661d1e91ff044a7e7 | |
| parent | a680491e83b4d84bfd0cb54b3cd77aa11d860654 (diff) | |
| download | ldap-utils-5ca8dad947b76673402e373988832f50207c3205.tar.gz ldap-utils-5ca8dad947b76673402e373988832f50207c3205.tar.bz2 ldap-utils-5ca8dad947b76673402e373988832f50207c3205.tar.xz ldap-utils-5ca8dad947b76673402e373988832f50207c3205.zip | |
libldapschema: updating how line wrap is calculated
| -rw-r--r-- | lib/libldapschema/lformat.c | 4 | ||||
| -rw-r--r-- | lib/libldapschema/loutput.c | 19 |
2 files changed, 15 insertions, 8 deletions
diff --git a/lib/libldapschema/lformat.c b/lib/libldapschema/lformat.c index 6a28645..ee6bf7f 100644 --- a/lib/libldapschema/lformat.c +++ b/lib/libldapschema/lformat.c | |||
| @@ -102,6 +102,7 @@ int ldapschema_fmt_definition( char * restrict str, size_t size, const char * re | |||
| 102 | size_t deflen; | 102 | size_t deflen; |
| 103 | size_t indent; | 103 | size_t indent; |
| 104 | size_t x; | 104 | size_t x; |
| 105 | size_t keylen; | ||
| 105 | char last; | 106 | char last; |
| 106 | 107 | ||
| 107 | assert(def != NULL); | 108 | assert(def != NULL); |
| @@ -156,6 +157,7 @@ int ldapschema_fmt_definition( char * restrict str, size_t size, const char * re | |||
| 156 | 157 | ||
| 157 | default: | 158 | default: |
| 158 | for(tmppos = defpos; IS_KEYWORD( def[tmppos] ); tmppos++); | 159 | for(tmppos = defpos; IS_KEYWORD( def[tmppos] ); tmppos++); |
| 160 | for(keylen = 0; IS_STRNG(def[keylen+defpos]); keylen++); | ||
| 159 | if ( (tmppos != defpos) && (IS_SPACE(def[tmppos]) || (def[tmppos] == '\0')) ) | 161 | if ( (tmppos != defpos) && (IS_SPACE(def[tmppos]) || (def[tmppos] == '\0')) ) |
| 160 | { | 162 | { |
| 161 | // styling for upper case keywords | 163 | // styling for upper case keywords |
| @@ -167,7 +169,7 @@ int ldapschema_fmt_definition( char * restrict str, size_t size, const char * re | |||
| 167 | } else | 169 | } else |
| 168 | { | 170 | { |
| 169 | // styling for unquoted strings | 171 | // styling for unquoted strings |
| 170 | if ((strpos - bol) < width) | 172 | if ((strpos - bol + keylen + 2 + (indent*3)) < width) |
| 171 | { | 173 | { |
| 172 | APPEND( ' ' ); | 174 | APPEND( ' ' ); |
| 173 | } else | 175 | } else |
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); |
