--- a/scripts/config2help.c 2017-08-24 17:14:30.000000000 -0700
+++ b/scripts/config2help.c 2017-02-21 09:27:25.000000000 -0800
@@ -248,7 +248,7 @@
// entry until we run out of matching pairs.
for (;;) {
struct symbol *throw = 0, *catch;
- char *this, *that, *cusage, *tusage, *name;
+ char *this, *that, *cusage, *tusage, *name = NULL, *that_start;
int len;
// find a usage: name and collate all enabled entries with that name
@@ -261,11 +261,16 @@
// Align usage: lines, finding a matching pair so we can suck help
// text out of throw into catch, copying from this to that
- if (!throw) name = that;
+ if (!throw) {
+ if (name)
+ free(name);
+ name = strdup(that);
+ that_start = that;
+ }
else if (strncmp(name, that, len) || !isspace(that[len])) continue;
catch->enabled++;
while (!isspace(*that) && *that) that++;
- if (!throw) len = that-name;
+ if (!throw) len = that-that_start;
that = trim(that);
if (!throw) {
throw = catch;
@@ -370,6 +375,8 @@
}
}
+ if (name)
+ free(name);
// Did we find one?
if (!throw) break;