mirror of
git://git.gnupg.org/gnupg.git
synced 2025-04-17 15:44:34 +02:00
dirmngr: Simplify truncation of long strings in debug code.
* dirmngr/ks-engine-ldap.c (modlist_dump): Simplify truncation of long strings. -- Signed-off-by: Neal H. Walfield <neal@g10code.com>
This commit is contained in:
parent
6d5aee23c3
commit
802eec0ca4
@ -1440,29 +1440,22 @@ modlist_dump (LDAPMod **modlist, estream_t output)
|
|||||||
|
|
||||||
for ((ptr = (*m)->mod_values), (i = 1); ptr && *ptr; ptr++, i ++)
|
for ((ptr = (*m)->mod_values), (i = 1); ptr && *ptr; ptr++, i ++)
|
||||||
{
|
{
|
||||||
/* At most about 10 lines. */
|
/* Assuming terminals are about 80 characters wide,
|
||||||
|
display at most most about 10 lines of debugging
|
||||||
|
output. If we do trim the buffer, append '...' to
|
||||||
|
the end. */
|
||||||
const int max_len = 10 * 70;
|
const int max_len = 10 * 70;
|
||||||
size_t value_len = strlen (*ptr);
|
size_t value_len = strlen (*ptr);
|
||||||
char buffer[max_len + 4];
|
int elide = value_len > max_len;
|
||||||
char *temp;
|
|
||||||
int elided = 0;
|
|
||||||
if (value_len > max_len)
|
|
||||||
{
|
|
||||||
temp = buffer;
|
|
||||||
memcpy (temp, *ptr, max_len);
|
|
||||||
temp[max_len] = temp[max_len + 1] = temp[max_len + 2] = '.';
|
|
||||||
temp[max_len + 3] = 0;
|
|
||||||
elided = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
temp = *ptr;
|
|
||||||
|
|
||||||
if (multi)
|
if (multi)
|
||||||
es_fprintf (output, " %d. ", i);
|
es_fprintf (output, " %d. ", i);
|
||||||
es_fprintf (output, "`%s'", temp);
|
es_fprintf (output, "`%.*s", max_len, *ptr);
|
||||||
if (elided)
|
if (elide)
|
||||||
es_fprintf (output, " (%zd bytes elided)",
|
es_fprintf (output, "...' (%zd bytes elided)",
|
||||||
value_len - max_len);
|
value_len - max_len);
|
||||||
|
else
|
||||||
|
es_fprintf (output, "'");
|
||||||
es_fprintf (output, "\n");
|
es_fprintf (output, "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user