]> git.pond.sub.org Git - empserver/blobdiff - info/mksubj.pl
ship: Unbreak MOB_ACCESS real-time mobility update for ships
[empserver] / info / mksubj.pl
index 406390985fd9fc50a58778f9f71a414732679d08..2394ce26faccc1413be54dba53494343228a09f0 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 #
 #   Empire - A multi-player, client/server Internet based war game.
-#   Copyright (C) 1986-2013, Dave Pare, Jeff Bailey, Thomas Ruschak,
+#   Copyright (C) 1986-2021, Dave Pare, Jeff Bailey, Thomas Ruschak,
 #                 Ken Stevens, Steve McClure, Markus Armbruster
 #
 #   Empire is free software: you can redistribute it and/or modify
@@ -29,7 +29,7 @@
 #
 #   Known contributors to this file:
 #      Ken Stevens (when it was still info.pl)
-#      Markus Armbruster, 2006-2013
+#      Markus Armbruster, 2006-2016
 #
 # Usage: mksubj.pl SUBJECT... INFO-FILE...
 #
@@ -43,7 +43,7 @@ my @Chapters = qw/Introduction Concept Command Server/;
 
 my @Levels = qw/Basic Expert Obsolete/;
 
-# $Subjects{SUBJECT} is a reference to an an anonymous array
+# $Subjects{SUBJECT} is a reference to an anonymous array
 # containing SUBJECT's topics
 my %Subjects;
 
@@ -77,6 +77,8 @@ for (keys %Subjects) {
     update_subj($_);
 }
 
+write_toc();
+
 sub fn2topic {
     my ($fn) = @_;
     $fn =~ s,.*/([^/]*)\.t$,$1,;
@@ -135,7 +137,7 @@ sub parse_file {
        if (/^\.SA "([^\"]*)"/) {
            parse_see_also($topic, $1);
        } else {
-           error("Incorrect .SA Syntax.  Syntax should be '.SA \"item1, item2\"'");
+           error("Incorrect .SA argument, expecting '.SA \"item1, item2\"'");
        }
     } else {
        error(".SA request is missing");
@@ -249,6 +251,18 @@ sub same_contents {
     return $contents eq $old;
 }
 
+sub write_toc {
+    my @toc;
+    for (keys %chapter) {
+       push @toc, "$chapter{$_} $_";
+    }
+    open(TOC, ">info/toc")
+       or die "Can't open info/toc for writing: $!";
+    print TOC join("\n", sort @toc);
+    print TOC "\n";
+    close TOC;
+}
+
 # Print an integrity error message and exit with code 1
 sub error {
     my ($error) = @_;