Import v6.12.3 of the Inform 6 standard library
[informlib.git] / parser.h
index d0b427ecd480f1f1951d63ddeec89b86af76765e..e7165ec830bc8a1711ef86d42a3d53798a6bf7e9 100644 (file)
--- a/parser.h
+++ b/parser.h
@@ -1,9 +1,9 @@
 ! ==============================================================================
 !   PARSER:  Front end to parser.
 !
-!   Supplied for use with Inform 6 -- Release 6.12.2 -- Serial number 180520
+!   Supplied for use with Inform 6 -- Release 6.12.3 -- Serial number 190320
 !
-!   Copyright Graham Nelson 1993-2004 and David Griffith 2012-2018
+!   Copyright Graham Nelson 1993-2004 and David Griffith 2012-2019
 !
 !   This file is free software: you can redistribute it and/or modify
 !   it under the terms of the GNU Affero General Public License as
@@ -70,11 +70,11 @@ System_file;
 ! ------------------------------------------------------------------------------
 
 #Ifndef VN_1633;
-Message fatalerror "*** Library 6.12.2 needs Inform v6.33 or later to work ***";
+Message fatalerror "*** Library 6.12.3 needs Inform v6.33 or later to work ***";
 #Endif; ! VN_
 
-Constant LibSerial       "180520";
-Constant LibRelease      "6.12.2";
+Constant LibSerial       "190320";
+Constant LibRelease      "6.12.3pre";
 Constant LIBRARY_VERSION  612;
 Constant Grammar__Version 2;
 
@@ -6429,7 +6429,7 @@ Object  InformLibrary "(Inform Library)"
 #Endif; ! TARGET_ZCODE
 
 #Ifndef DrawStatusLine;
-[ DrawStatusLine width posa posb;
+[ DrawStatusLine width posa posb posc;
     #Ifdef TARGET_GLULX;
     ! If we have no status window, we must not try to redraw it.
     if (gg_statuswin == 0)
@@ -6444,7 +6444,9 @@ Object  InformLibrary "(Inform Library)"
     MoveCursor(1, 1);
 
     width = ScreenWidth();
-    posa = width-26; posb = width-13;
+    posa = width-26;
+    posb = width-13;
+    posc = width-5;
     spaces width;
 
     MoveCursor(1, 2);
@@ -6473,12 +6475,22 @@ Object  InformLibrary "(Inform Library)"
             MoveCursor(1, posb);
             print (string) MOVES__TX, sline2;
         }
-        #Ifndef NO_SCORE;
-        if (width > 53 && width <= 66) {
-            MoveCursor(1, posb);
-            print sline1, "/", sline2;
-        }
-        #Endif;
+       if (width > 53 && width <= 66) {
+           MoveCursor(1, posb);
+           #Ifdef NO_SCORE;
+           print (string) MOVES__TX, sline2;
+           #Ifnot;
+           print sline1, "/", sline2;
+           #Endif;
+       }
+       if (width < 53) {
+          MoveCursor(1, posc);
+          #Ifdef NO_SCORE;
+          print (string) MOVES_S__TX, sline2;
+          #Ifnot;
+          print sline1, "/", sline2;
+          #Endif;
+       }
     }
 
     MainWindow(); ! set_window
@@ -6629,10 +6641,8 @@ Object  InformLibrary "(Inform Library)"
     gg_scriptstr = 0;
     gg_savestr = 0;
     gg_statuswin_cursize = 0;
-    #Ifdef DEBUG;
     gg_commandstr = 0;
     gg_command_reading = false;
-    #Endif; ! DEBUG
     ! Also tell the game to clear its object references.
     if (IdentifyGlkObject(0) == false) LibraryExtensions.RunWhile(ext_identifyglkobject, 0, 0);
 
@@ -6641,12 +6651,10 @@ Object  InformLibrary "(Inform Library)"
         switch (gg_arguments-->0) {
             GG_SAVESTR_ROCK: gg_savestr = id;
             GG_SCRIPTSTR_ROCK: gg_scriptstr = id;
-            #Ifdef DEBUG;
             GG_COMMANDWSTR_ROCK: gg_commandstr = id;
                                  gg_command_reading = false;
             GG_COMMANDRSTR_ROCK: gg_commandstr = id;
                                  gg_command_reading = true;
-            #Endif; ! DEBUG
             default: if (IdentifyGlkObject(1, 1, id, gg_arguments-->0) == false)
                          LibraryExtensions.RunWhile(ext_identifyglkobject, false, 1, 1, id, gg_arguments-->0);
         }