Merge patch series "some string cleanup, and a tweak of the "config" command"

Rasmus Villemoes <rv@rasmusvillemoes.dk> says:

This started by me wanting something like what patch 8 does. That
wasn't too hard, except we had no strcasestr(), and also our regex
engine (which I didn't really want to pull into the mix anyway)
doesn't have a flag that requests case-insensitive matching. So I
wanted to add strcasestr(), but then I stumbled on a bunch of stuff
that should be cleaned up in str-land.

Link: https://lore.kernel.org/r/20260708203711.849489-1-rv@rasmusvillemoes.dk
This commit is contained in:
Tom Rini
2026-07-21 13:52:00 -06:00
8 changed files with 146 additions and 107 deletions
+23 -3
View File
@@ -6,6 +6,7 @@
#include <command.h>
#include <gzip.h>
#include <malloc.h>
#include <linux/string.h>
#include "config_data_gz.h"
#include "config_data_size.h"
@@ -29,7 +30,23 @@ static int do_config(struct cmd_tbl *cmdtp, int flag, int argc,
}
dst[data_size] = 0;
puts(dst);
if (argc > 1) {
const char *s = argv[1];
char *b = dst, *e = dst + data_size, *n;
while (b < e) {
n = strchrnul(b, '\n');
*n = '\0';
if (strcasestr(b, s)) {
puts(b);
puts("\n");
}
b = n + 1;
}
} else {
puts(dst);
}
free:
free(dst);
@@ -38,7 +55,10 @@ free:
}
U_BOOT_CMD(
config, 1, 1, do_config,
config, 2, 1, do_config,
"print .config",
""
"[str]\n"
"\n"
"When the optional argument is given, only lines containing\n"
"that string are printed. Matching is case-insensitive."
);