MINOR: filters: alphabetically sort the list of filter names
There are very few but they're registered from constructors, hence
in a random order. The scope had to be copied when retrieving the
next keyword. Note that this also has the effect of listing them
sorted in haproxy -vv.
diff --git a/src/filters.c b/src/filters.c
index 4594098..12159f2 100644
--- a/src/filters.c
+++ b/src/filters.c
@@ -136,24 +136,38 @@
flt_dump_kws(char **out)
{
struct flt_kw_list *kwl;
+ const struct flt_kw *kwp, *kw;
+ const char *scope = NULL;
int index;
if (out)
*out = NULL;
- list_for_each_entry(kwl, &flt_keywords.list, list) {
- for (index = 0; kwl->kw[index].kw != NULL; index++) {
- if (kwl->kw[index].parse ||
- flt_find_kw(kwl->kw[index].kw) == &kwl->kw[index]) {
- if (out)
- memprintf(out, "%s[%4s] %s%s\n", *out ? *out : "",
- kwl->scope,
- kwl->kw[index].kw,
- kwl->kw[index].parse ? "" : " (not supported)");
- else
- printf("%s [%s]\n",
- kwl->kw[index].kw, kwl->scope);
+
+ for (kw = kwp = NULL;; kwp = kw) {
+ list_for_each_entry(kwl, &flt_keywords.list, list) {
+ for (index = 0; kwl->kw[index].kw != NULL; index++) {
+ if ((kwl->kw[index].parse ||
+ flt_find_kw(kwl->kw[index].kw) == &kwl->kw[index])
+ && strordered(kwp ? kwp->kw : NULL,
+ kwl->kw[index].kw,
+ kw != kwp ? kw->kw : NULL)) {
+ kw = &kwl->kw[index];
+ scope = kwl->scope;
+ }
}
}
+
+ if (kw == kwp)
+ break;
+
+ if (out)
+ memprintf(out, "%s[%4s] %s%s\n", *out ? *out : "",
+ scope,
+ kw->kw,
+ kw->parse ? "" : " (not supported)");
+ else
+ printf("%s [%s]\n",
+ kw->kw, scope);
}
}