X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=progs%2Fdump_entry.c;h=4d3bb14270259a75e088f3552791a0ad77c6bea9;hb=42259b594b5dabd37fe2bc294051d2db82e873a2;hp=b644e8e7667a9613b4f07be9f9778e4911aec76d;hpb=04d942c3d98cf0a929c6afb17be8c10d4ae39af0;p=ncurses.git diff --git a/progs/dump_entry.c b/progs/dump_entry.c index b644e8e7..4d3bb142 100644 --- a/progs/dump_entry.c +++ b/progs/dump_entry.c @@ -40,7 +40,7 @@ #include "termsort.c" /* this C file is generated */ #include /* so is this */ -MODULE_ID("$Id: dump_entry.c,v 1.178 2020/07/04 20:00:29 tom Exp $") +MODULE_ID("$Id: dump_entry.c,v 1.180 2020/11/14 18:18:13 tom Exp $") #define DISCARD(string) string = ABSENT_STRING #define PRINTF (void) printf @@ -747,7 +747,7 @@ leading_DYN(DYNBUF * buffer, const char *leading) } bool -has_params(const char *src) +has_params(const char *src, bool formatting) { bool result = FALSE; int len = (int) strlen(src); @@ -765,7 +765,11 @@ has_params(const char *src) } } if (!ifthen) { - result = ((len > 50) && params); + if (formatting) { + result = ((len > 50) && params); + } else { + result = params; + } } return result; } @@ -774,7 +778,7 @@ static char * fmt_complex(TERMTYPE2 *tterm, const char *capability, char *src, int level) { bool percent = FALSE; - bool params = has_params(src); + bool params = has_params(src, TRUE); while (*src != '\0') { switch (*src) { @@ -801,7 +805,7 @@ fmt_complex(TERMTYPE2 *tterm, const char *capability, char *src, int level) strncpy_DYN(&tmpbuf, "%", (size_t) 1); strncpy_DYN(&tmpbuf, src, (size_t) 1); src++; - params = has_params(src); + params = has_params(src, TRUE); if (!params && *src != '\0' && *src != '%') { strncpy_DYN(&tmpbuf, "\n", (size_t) 1); indent_DYN(&tmpbuf, level + 1); @@ -1110,7 +1114,7 @@ fmt_entry(TERMTYPE2 *tterm, ? parametrized[i] : ((*srccap == 'k') ? 0 - : has_params(srccap))); + : has_params(srccap, FALSE))); char *cv = _nc_infotocap(name, srccap, params); if (cv == 0) { @@ -1125,7 +1129,7 @@ fmt_entry(TERMTYPE2 *tterm, char *s = srccap, *d = buffer; int need = 3 + (int) strlen(name); while ((*d = *s++) != 0) { - if ((d - buffer + 1) >= (int) sizeof(buffer)) { + if ((d - buffer + 2) >= (int) sizeof(buffer)) { fprintf(stderr, "%s: value for %s is too long\n", _nc_progname,