MINOR: acl: add a function to dump the list of known ACL keywords

New function acl_dump_kwd() dumps the registered ACL keywords and their
sample-fetch equivalent to stdout. It's called by dump_registered_keywords()
for keyword class "acl".
diff --git a/include/haproxy/acl.h b/include/haproxy/acl.h
index ab96d19..07a2315 100644
--- a/include/haproxy/acl.h
+++ b/include/haproxy/acl.h
@@ -146,6 +146,8 @@
  */
 int init_acl(void);
 
+void acl_dump_kwd(void);
+
 void free_acl_cond(struct acl_cond *cond);
 
 #endif /* _HAPROXY_ACL_H */
diff --git a/src/acl.c b/src/acl.c
index 480dd11..77d6717 100644
--- a/src/acl.c
+++ b/src/acl.c
@@ -1308,6 +1308,24 @@
 	return err;
 }
 
+/* dump known ACL keywords on stdout */
+void acl_dump_kwd(void)
+{
+	struct acl_kw_list *kwl;
+	const char *name;
+	int index;
+
+	list_for_each_entry(kwl, &acl_keywords.list, list) {
+		for (index = 0; kwl->kw[index].kw != NULL; index++) {
+			name = kwl->kw[index].fetch_kw;
+			if (!name)
+				name = kwl->kw[index].kw;
+
+			printf("%s = %s -m %s\n", kwl->kw[index].kw, name, pat_match_names[kwl->kw[index].match_type]);
+		}
+	}
+}
+
 void free_acl_cond(struct acl_cond *cond)
 {
 	struct acl_term_suite *suite, *suiteb;
diff --git a/src/haproxy.c b/src/haproxy.c
index 16fafc3..72c065e 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -1825,6 +1825,7 @@
 		if (strcmp(kwd_dump, "help") == 0) {
 			printf("# List of supported keyword classes:\n");
 			printf("all: list all keywords\n");
+			printf("acl: ACL keywords\n");
 			printf("cfg: configuration keywords\n");
 			printf("cli: CLI keywords\n");
 			printf("flt: filter names\n");
@@ -1835,6 +1836,11 @@
 			all = 1;
 		}
 
+		if (all || strcmp(kwd_dump, "acl") == 0) {
+			printf("# List of registered ACL keywords:\n");
+			acl_dump_kwd();
+		}
+
 		if (all || strcmp(kwd_dump, "cfg") == 0) {
 			printf("# List of registered configuration keywords:\n");
 			cfg_dump_registered_keywords();