summaryrefslogtreecommitdiff
path: root/scripts/merge-abilist.awk
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/merge-abilist.awk')
-rw-r--r--scripts/merge-abilist.awk9
1 files changed, 8 insertions, 1 deletions
diff --git a/scripts/merge-abilist.awk b/scripts/merge-abilist.awk
index 88ca0b08ea..91999d9221 100644
--- a/scripts/merge-abilist.awk
+++ b/scripts/merge-abilist.awk
@@ -131,15 +131,22 @@ END {
# S[I] is a sorted, comma-separated list of SET:CONFIG pairs.
# All we have to do is pretty-print them.
nc = split(s[i], c, ",");
- lastvers = "";
+ lastvers = lastconf = "";
for (j = 1; j <= nc; ++j) {
split(c[j], temp, ":");
version = temp[1];
conf = temp[2];
if (version != lastvers)
printf "%s%s", (lastvers != "" ? "\n| " : ""), version;
+ # Hack: if CONF is foo.*/bar and LASTCONF was foo.*,
+ # then we can omit the foo.*/bar since foo.* matches already.
+ # Note we don't update LASTCONF, so foo.*/baz next time will match too.
+ else if ((slash = index(conf, ".*/")) > 0 && \
+ substr(conf, 1, slash + 2 - 1) == lastconf)
+ continue;
printf " %s", conf;
lastvers = version;
+ lastconf = conf;
}
print "";
outpipe = "sort";