SDL: wikiheaders.pl: create Unsupported.md file with list of functions undocumented in either the headers or the wiki

From b00cbd76aa6b79a64aa52c80595295bc1342b360 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Wed, 6 Sep 2023 20:28:23 +0200
Subject: [PATCH] wikiheaders.pl: create Unsupported.md file with list of
 functions undocumented in either the headers or the wiki

---
 build-scripts/wikiheaders.pl | 39 ++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/build-scripts/wikiheaders.pl b/build-scripts/wikiheaders.pl
index a2792a865a2e..44a24bbb00e1 100755
--- a/build-scripts/wikiheaders.pl
+++ b/build-scripts/wikiheaders.pl
@@ -792,6 +792,45 @@ sub usage {
 }
 closedir(DH);
 
+delete $wikifuncs{"Undocumented"};
+
+{
+    my $path = "$wikipath/Undocumented.md";
+    open(FH, '>', $path) or die("Can't open '$path': $!\n");
+
+    print FH "# Undocumented\n\n";
+
+    print FH "## Functions defined in the headers, but not in the wiki\n\n";
+    my $header_only_func = 0;
+    foreach (keys %headerfuncs) {
+        my $fn = $_;
+        if (not defined $wikifuncs{$fn}) {
+            print FH "- [$fn]($fn)\n";
+            $header_only_func = 1;
+        }
+    }
+    if (!$header_only_func) {
+        print FH "(none)\n";
+    }
+    print FH "\n";
+
+    print FH "## Functions defined in the wiki, but not in the headers\n\n";
+
+    my $wiki_only_func = 0;
+    foreach (keys %wikifuncs) {
+        my $fn = $_;
+        if (not defined $headerfuncs{$fn}) {
+            print FH "- [$fn]($fn)\n";
+            $wiki_only_func = 1;
+        }
+    }
+    if (!$wiki_only_func) {
+        print FH "(none)\n";
+    }
+    print FH "\n";
+
+    close(FH);
+}
 
 if ($warn_about_missing) {
     foreach (keys %wikifuncs) {