From d7d1d092778c4c97047ad98d8f779b250dc2c3e4 Mon Sep 17 00:00:00 2001 From: Graham Nelson Date: Sun, 11 Jun 2023 14:34:38 +0100 Subject: [PATCH] Removal of BasicInformExtrasKit --- README.md | 3 +- colony.txt | 1 - docs-src/html/panels_kits.html | 62 ++++---- docs-src/kits.inweb | 2 +- docs/BasicInformExtrasKit/S-msc.html | 135 ------------------ docs/BasicInformExtrasKit/index.html | 64 --------- docs/BasicInformKit/S-lst.html | 2 +- docs/BasicInformKit/S-prn.html | 69 ++++++++- docs/BasicInformKit/S-rlb.html | 5 +- docs/CommandParserKit/S-prs.html | 6 +- docs/WorldModelKit/S-lst.html | 80 ++++++----- docs/WorldModelKit/S-ord.html | 5 +- docs/WorldModelKit/S-otf.html | 2 +- docs/WorldModelKit/S-prn.html | 4 +- docs/WorldModelKit/S-rtp.html | 2 +- docs/WorldModelKit/S-wrl.html | 4 +- docs/inbuild/1-mn.html | 2 +- docs/inbuild/M-agtk.html | 35 +++-- docs/inbuild/M-rc.html | 1 + docs/inbuild/M-ui.html | 4 +- docs/inpolicy/2-kv.html | 1 - docs/kits.html | 64 ++++----- docs/pipeline-module/4-sws.html | 2 +- docs/pipeline-module/4-tsk.html | 4 +- docs/supervisor-module/4-km.html | 4 +- inbuild/Manual/A Guide to Kits.w | 33 +++-- inbuild/Manual/Using Inbuild.w | 4 +- .../supervisor-module/Chapter 4/Kit Manager.w | 4 +- inform7/Figures/memory-diagnostics.txt | 80 +++++------ inform7/Figures/timings-diagnostics.txt | 28 ++-- .../Inter/BasicInformExtrasKit/Contents.w | 9 -- .../Sections/Miscellany.i6t | 78 ---------- .../BasicInformExtrasKit/kit_metadata.json | 10 -- .../Inter/BasicInformKit/Sections/Lists.i6t | 2 +- .../BasicInformKit/Sections/Printing.i6t | 64 ++++++++- .../BasicInformKit/Sections/Rulebooks.i6t | 5 +- .../Inter/BasicInformKit/Sections/Startup.i6t | 27 ++++ .../Inter/BasicInformKit/kit_metadata.json | 9 -- .../CommandParserKit/Sections/Parser.i6t | 6 +- .../WorldModelKit/Sections/ListWriter.i6t | 80 ++++++----- .../WorldModelKit/Sections/OrderOfPlay.i6t | 5 +- .../WorldModelKit/Sections/OutOfWorld.i6t | 2 +- .../Inter/WorldModelKit/Sections/Printing.i6t | 4 +- .../Inter/WorldModelKit/Sections/RTP.i6t | 2 +- .../WorldModelKit/Sections/WorldModel.i6t | 4 +- inform7/inform7.giscript | 1 - inpolicy/Chapter 2/Kit Versioning.w | 1 - .../Chapter 4/Shorten Wiring Stage.w | 2 +- .../Chapter 4/The Standard Kits.w | 4 +- scripts/inform.mkscript | 1 - scripts/inform.rmscript | 3 +- 51 files changed, 439 insertions(+), 592 deletions(-) delete mode 100644 docs/BasicInformExtrasKit/S-msc.html delete mode 100644 docs/BasicInformExtrasKit/index.html delete mode 100644 inform7/Internal/Inter/BasicInformExtrasKit/Contents.w delete mode 100644 inform7/Internal/Inter/BasicInformExtrasKit/Sections/Miscellany.i6t delete mode 100644 inform7/Internal/Inter/BasicInformExtrasKit/kit_metadata.json create mode 100644 inform7/Internal/Inter/BasicInformKit/Sections/Startup.i6t diff --git a/README.md b/README.md index da997210f..6b5f31b18 100644 --- a/README.md +++ b/README.md @@ -125,10 +125,11 @@ following command-line tools: The following webs are the source for kits of Inter code shipped with Inform (at the subtree inform7/Internal/Inter). Kits are libraries of code needed at run-time, and whose source is written in Inform 6 notation: * BasicInformKit - Support for Inform as a programming language - [★ Web](https://ganelson.github.io/inform/BasicInformKit/index.html) +* Architecture16Kit - Support for running on 16-bit platforms - [★ Web](https://ganelson.github.io/inform/Architecture16Kit/index.html) +* Architecture32Kit - Support for running on 32-bit platforms - [★ Web](https://ganelson.github.io/inform/Architecture32Kit/index.html) * WorldModelKit - Support for modelling space, time and actions in interactive fiction - [★ Web](https://ganelson.github.io/inform/WorldModelKit/index.html) * EnglishLanguageKit - Support for English as the natural language used - [★ Web](https://ganelson.github.io/inform/EnglishLanguageKit/index.html) * CommandParserKit - Support for parsing turn-by-turn commands in interactive fiction - [★ Web](https://ganelson.github.io/inform/CommandParserKit/index.html) -* BasicInformExtrasKit - Additional support needed only if the Standard Rules are not used - [★ Web](https://ganelson.github.io/inform/BasicInformExtrasKit/index.html) * DialogueKit - Additional support for dialogue (under construction) - [★ Web](https://ganelson.github.io/inform/DialogueKit/index.html) ### Extensions shipped with Inform diff --git a/colony.txt b/colony.txt index e7d90f95d..f8e39d1f3 100644 --- a/colony.txt +++ b/colony.txt @@ -62,7 +62,6 @@ web: "WorldModelKit" at "inform7/Internal/Inter/WorldModelKit" in "docs/WorldMod web: "EnglishLanguageKit" at "inform7/Internal/Inter/EnglishLanguageKit" in "docs/EnglishLanguageKit" web: "CommandParserKit" at "inform7/Internal/Inter/CommandParserKit" in "docs/CommandParserKit" web: "BasicInformKit" at "inform7/Internal/Inter/BasicInformKit" in "docs/BasicInformKit" -web: "BasicInformExtrasKit" at "inform7/Internal/Inter/BasicInformExtrasKit" in "docs/BasicInformExtrasKit" web: "Architecture16Kit" at "inform7/Internal/Inter/Architecture16Kit" in "docs/Architecture16Kit" web: "Architecture32Kit" at "inform7/Internal/Inter/Architecture32Kit" in "docs/Architecture32Kit" web: "DialogueKit" at "inform7/Internal/Inter/DialogueKit" in "docs/DialogueKit" diff --git a/docs-src/html/panels_kits.html b/docs-src/html/panels_kits.html index a0d8e5720..201f74d27 100644 --- a/docs-src/html/panels_kits.html +++ b/docs-src/html/panels_kits.html @@ -5,40 +5,6 @@

A kit of Inter code providing runtime support for all programs written with Inform.

-
- BasicInformExtrasKit -

BasicInformExtrasKit

-

A kit of Inter code providing runtime support for all programs not using - WorldModelKit.

-
-
- EnglishLanguageKit -

EnglishLanguageKit

-

A kit of Inter code providing runtime support for programs compiled - with English as their natural language.

-
- -
-
- WorldModelKit -

WorldModelKit

-

A kit of Inter code providing runtime support for interactive fiction - projects with a simulated world.

-
-
- CommandParserKit -

CommandParserKit

-

A kit of Inter code providing runtime support for interactive fiction - projects with a command parser interface.

-
-
- DialogueKit -

DialogueKit

-

A kit of Inter code eventually to provide runtime support for dialogue, an experimental - new feature of Inform which is not yet implemented.

-
-
-
Architecture16Kit

Architecture16Kit

@@ -53,3 +19,31 @@ executables via C.

+
+
+ EnglishLanguageKit +

EnglishLanguageKit

+

A kit of Inter code providing runtime support for programs compiled + with English as their natural language.

+
+
+ WorldModelKit +

WorldModelKit

+

A kit of Inter code providing runtime support for interactive fiction + projects with a simulated world.

+
+
+ CommandParserKit +

CommandParserKit

+

A kit of Inter code providing runtime support for interactive fiction + projects with a command parser interface.

+
+
+
+
+ DialogueKit +

DialogueKit

+

A kit of Inter code eventually to provide runtime support for dialogue, an experimental + new feature of Inform which is not yet implemented.

+
+
diff --git a/docs-src/kits.inweb b/docs-src/kits.inweb index a45d8733b..a2110d56e 100755 --- a/docs-src/kits.inweb +++ b/docs-src/kits.inweb @@ -15,7 +15,7 @@ the project is being compiled to a 16-bit or a 32-bit platform. However, if the "Basic Inform" checkbox is ticked on the Settings panel for the project, the kits will instead be: = (text) -Architecture32Kit + BasicInformKit + EnglishLanguageKit + BasicInformExtrasKit +Architecture32Kit + BasicInformKit + EnglishLanguageKit = And these are also the defaults when Inform projects are compiled from the command line, with the optional |-basic| switch forcing us into the second case. diff --git a/docs/BasicInformExtrasKit/S-msc.html b/docs/BasicInformExtrasKit/S-msc.html deleted file mode 100644 index a914723cf..000000000 --- a/docs/BasicInformExtrasKit/S-msc.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - Miscellany - - - - - - - - - - - - - - - -
- - -

Additions to the Basic Inform template which are needed only if the Standard Rules are not to be used.

- -
- -

§1. Identification.

- -
-Constant BASICINFORMEXTRASKIT = 1;
-
-

§2. Justification. Q. Why isn't all of this done with conditional compilation in the Basic Inform -template files? A. That wouldn't work, since template files are assimilated -before it is known how they will be used. -

- -

§3. Miscellany.

- -
-Constant ACTION_PROCESSING_RB = -1; Identifier needs to exist even when the rulebook does not
-
-[ DefaultTopic; return 0; ];
-[ PrintSnippet x; ];
-[ LIST_WRITER_INTERNAL_RM x;
-    print " and ";
-];
-[ PRINT_PROTAGONIST_INTERNAL_R; ];
-[ RunTimeProblemShowWM n x y z; ];
-[ OwnerOf o; return nothing; ];
-[ MoveObject from to; ];
-[ WriteListOfMarkedObjects in_style
-    obj c;
-    objectloop (obj ofclass Object && obj has workflag2) {
-        c++;
-    }
-    objectloop (obj ofclass Object && obj has workflag2) {
-        PrintShortName(obj);
-        c--;
-        if (c > 0) print ", ";
-    }
-];
-
-[ Main;
-    self = COL_HSIZE; To ensure this definition is not optimised out
-    VM_Initialise();
-    INITIALISE_MEMORY_R();
-    SEED_RANDOM_NUMBER_GENERATOR_R();
-    Submain();
-];
-
-[ INITIALISE_MEMORY_R;
-    VM_PreInitialise();
-    LanguageInitialise();
-
-    HeapInitialise(); Create a completely unused memory allocation heap
-    StackFramingInitialise(); Create an empty stack
-    CreateDynamicRelations(); Create relation structures on the heap
-
-    rfalse;
-];
-
-[ DrawStatusLine width posb;
-];
-
-[ GetGNAOfObject obj case gender;
-    if (gender == 0) {
-        if (case == 0) gender = LanguageAnimateGender;
-        else gender = LanguageInanimateGender;
-    }
-    if (obj has pluralname) case = case + 3;
-    return case;
-];
-
-[ PNToVP gna;
-if (prior_named_noun == player) return story_viewpoint;
-    if (prior_named_noun) gna = GetGNAOfObject(prior_named_noun);
-    if (((gna%6)/3 == 1) || (prior_named_list >= 2)) return 6;
-    return 3;
-];
-
- - -
- - - diff --git a/docs/BasicInformExtrasKit/index.html b/docs/BasicInformExtrasKit/index.html deleted file mode 100644 index 1d28d2616..000000000 --- a/docs/BasicInformExtrasKit/index.html +++ /dev/null @@ -1,64 +0,0 @@ - - - BasicInformExtrasKit - - - - - - - - - - - - - - -
- -

Additional Inter-level support for non-interactive fiction uses of the Inform language. This is version 1.

-
-
-
    -
  • -

    - Miscellany - - Additions to the Basic Inform template which are needed only if the Standard Rules are not to be used.

    -
  • -
-
-
-

Powered by Inweb.

-
- - - diff --git a/docs/BasicInformKit/S-lst.html b/docs/BasicInformKit/S-lst.html index a884987da..7b93a4543 100644 --- a/docs/BasicInformKit/S-lst.html +++ b/docs/BasicInformKit/S-lst.html @@ -275,7 +275,7 @@ use the "listing contents of..." activity in any circumstances. if (BasicInformKit`SERIAL_COMMA_CFGF) { if (no_items ~= 2) print ","; } - LIST_WRITER_INTERNAL_RM('C'); + LW_Response('C'); } } } diff --git a/docs/BasicInformKit/S-prn.html b/docs/BasicInformKit/S-prn.html index 8e06a9248..803bf98aa 100644 --- a/docs/BasicInformKit/S-prn.html +++ b/docs/BasicInformKit/S-prn.html @@ -51,7 +51,7 @@

To handle the printing of names of objects.

-
+

§1. Short Name Storage. None of the following functions should be called for the Z-machine if the short name exceeds the size of the following buffer: whereas the Glulx @@ -124,7 +124,7 @@ do it by carrying out an activity.

 [ PSN__ o;
-    if (o == 0) { LIST_WRITER_INTERNAL_RM('Y'); rtrue; }
+    if (o == 0) { LW_Response('Y'); rtrue; }
     switch (metaclass(o)) {
         Routine:  print "<routine ", o, ">"; rtrue;
         String:   print "<string ~", (string) o, "~>"; rtrue;
@@ -149,7 +149,7 @@ the following "for" rule.
 [ STANDARD_NAME_PRINTING_R obj;
     obj = parameter_value;
     if (obj == 0) {
-        LIST_WRITER_INTERNAL_RM('Y'); return;
+        LW_Response('Y'); return;
     }
     switch (metaclass(obj)) {
         Routine:  print "<routine ", obj, ">"; return;
@@ -257,7 +257,7 @@ indefinite singular depends on the text of the object's name.
 
 
 [ IndefArt obj i s;
-    if (obj == 0) { LIST_WRITER_INTERNAL_RM('Y'); rtrue; }
+    if (obj == 0) { LW_Response('Y'); rtrue; }
     i = indef_mode; indef_mode = true; s = self; self = obj;
     if (obj has proper) { indef_mode = NULL; print (PSN__) obj; indef_mode = i; self = s; return; }
     if ((obj provides article) && (TEXT_TY_Compare(obj.article, EMPTY_TEXT_VALUE) ~= 0)) {
@@ -268,7 +268,7 @@ indefinite singular depends on the text of the object's name.
 ];
 
 [ CIndefArt obj i s;
-    if (obj == 0) { LIST_WRITER_INTERNAL_RM('X'); rtrue; }
+    if (obj == 0) { LW_Response('X'); rtrue; }
     i = indef_mode; indef_mode = true; s = self; self = obj;
     if (obj has proper) {
         indef_mode = NULL;
@@ -313,6 +313,65 @@ indefinite singular depends on the text of the object's name.
     PrefaceByArticle(obj, 0); indef_mode = i; self = s;
 ];
 
+

§6. Miscellaneous. What the following functions have in common is that they are all minimal +definitions which apply only to Basic Inform programs. More elaborate +WorldModelKit alternatives will be used if that kit is present, as it +always is for non-Basic Inform projects. +

+ +
+[ DrawStatusLine width posb; ]; No status line is displayed
+[ DefaultTopic; return 0; ]; Topics exist only in CommandParserKit
+[ PrintSnippet x; ]; Snippets exist only in CommandParserKit
+[ PRINT_PROTAGONIST_INTERNAL_R; ]; There is no player in Basic Inform
+[ RunTimeProblemShowWM n x y z; ]; Prints RTPs only occurring in WorldModelKit
+
+

§7. PNToVP() takes no arguments and returns the GNA (gender-noun-animation) for +the prior_named_noun. +

+ +
+[ PNToVP gna;
+    if (prior_named_noun) gna = GetGNAOfObject(prior_named_noun);
+    if (((gna%6)/3 == 1) || (prior_named_list >= 2)) return 6;
+    return 3;
+];
+[ GetGNAOfObject obj case gender;
+    if (gender == 0) {
+        if (case == 0) gender = LanguageAnimateGender;
+        else gender = LanguageInanimateGender;
+    }
+    if (obj has pluralname) case = case + 3;
+    return case;
+];
+
+

§8. This provides just a little of the list-writer. +

+ +
+[ WriteListOfMarkedObjects in_style
+    obj c;
+    objectloop (obj ofclass Object && obj has workflag2) {
+        c++;
+    }
+    objectloop (obj ofclass Object && obj has workflag2) {
+        PrintShortName(obj);
+        c--;
+        if (c > 0) print ", ";
+    }
+];
+[ LW_Response X o; print " and "; ];
+
+

§9. These two functions are not really to do with printing, but are also stubs +provided for Basic Inform only. +

+ +
+[ OwnerOf o; return nothing; ]; "owner" implies personhood, and we have no people
+[ MoveObject A B; this is considerably more restricted by WorldModelKit
+    if ((A) && (B)) move A to B;
+];
+
diff --git a/docs/BasicInformKit/S-rlb.html b/docs/BasicInformKit/S-rlb.html index 73143a811..ea33525ee 100644 --- a/docs/BasicInformKit/S-rlb.html +++ b/docs/BasicInformKit/S-rlb.html @@ -156,6 +156,7 @@ or failed if —
 Global process_rulebook_count; Depth of processing recursion
 Global debugging_rules = false; Are we tracing rule invocations?
+Global rulebook_without_variables = -1; WorldModelKit sets this to ACTION_PROCESSING_RB
 
 [ FollowRulebook rulebook parameter no_paragraph_skips
     rv ss spv;
@@ -175,10 +176,10 @@ or failed if —
     if ((rulebook >= 0) && (rulebook < NUMBER_RULEBOOKS_CREATED)) {
         rv = rulebooks_array-->rulebook;
         if (rv ~= EMPTY_RULEBOOK) {
-            if (rulebook ~= ACTION_PROCESSING_RB) MStack_CreateRBVars(rulebook);
+            if (rulebook ~= rulebook_without_variables) MStack_CreateRBVars(rulebook);
             if (say__p) RulebookParBreak(no_paragraph_skips);
             rv = rv(no_paragraph_skips);
-            if (rulebook ~= ACTION_PROCESSING_RB) MStack_DestroyRBVars(rulebook);
+            if (rulebook ~= rulebook_without_variables) MStack_DestroyRBVars(rulebook);
         } else {
             rv = 0;
         }
diff --git a/docs/CommandParserKit/S-prs.html b/docs/CommandParserKit/S-prs.html
index e27fa899e..677ea5944 100644
--- a/docs/CommandParserKit/S-prs.html
+++ b/docs/CommandParserKit/S-prs.html
@@ -352,7 +352,7 @@ are above 32K. This only rarely happens, but it can.
 

-[ PrintSnippet snip from to i w1 w2;
++replacing(from BasicInformKit) [ PrintSnippet snip from to i w1 w2;
     w1 = snip/100; w2 = w1 + (snip%100) - 1;
     if ((w2<w1) || (w1<1) || (w2>WordCount())) {
         if ((w1 == 1) && (w2 == 0)) rfalse;
@@ -4009,7 +4009,7 @@ Manual}, 4th edition.
     rfalse;
 ];
 
-[ GetGNAOfObject obj case gender;
++replacing(from BasicInformKit) [ GetGNAOfObject obj case gender;
     if (obj hasnt animate) case = 6;
     if (obj has male) gender = male;
     if (obj has female) gender = female;
@@ -4288,7 +4288,7 @@ is defined in the Standard Rules, not here.
 

-[ DefaultTopic; return GPR_FAIL; ];
++replacing(from BasicInformKit) [ DefaultTopic; return GPR_FAIL; ];
 

§67. Recognition-only-GPR. An I6 general parsing routine to look at words from the position marker wn in the player's command to see if they match the contents of the diff --git a/docs/WorldModelKit/S-lst.html b/docs/WorldModelKit/S-lst.html index 45f3376a1..c794911b4 100644 --- a/docs/WorldModelKit/S-lst.html +++ b/docs/WorldModelKit/S-lst.html @@ -244,9 +244,9 @@ before objects in Room B if A was created before B in the source text). if (mixed_parentage) common_parent = nothing; if (length == 0) { - if (in_style & ISARE_BIT ~= 0) LIST_WRITER_INTERNAL_RM('W'); - else if (in_style & CFIRSTART_BIT ~= 0) LIST_WRITER_INTERNAL_RM('X'); - else LIST_WRITER_INTERNAL_RM('Y'); + if (in_style & ISARE_BIT ~= 0) LW_Response('W'); + else if (in_style & CFIRSTART_BIT ~= 0) LW_Response('X'); + else LW_Response('Y'); } else { @push MarkedObjectArray; @push MarkedObjectLength; MarkedObjectArray = RequisitionStack(length); @@ -296,7 +296,7 @@ prior named list number and gender for everything matching a description. return; ]; -[ PNToVP gna; ++replacing(from BasicInformKit) [ PNToVP gna; if (prior_named_noun == player) return story_viewpoint; if (prior_named_noun) gna = GetGNAOfObject(prior_named_noun); if (((gna%6)/3 == 1) || (prior_named_list >= 2)) return 6; @@ -589,8 +589,8 @@ variables detailing the current list-writing process, and begin. first = c_iterator(first, depth, 0, START_ITF); if (first == nothing) { - if (in_style & ISARE_BIT ~= 0) LIST_WRITER_INTERNAL_RM('W'); - else LIST_WRITER_INTERNAL_RM('Y'); + if (in_style & ISARE_BIT ~= 0) LW_Response('W'); + else LW_Response('Y'); if (in_style & NEWLINE_BIT ~= 0) new_line; } else { if ((noactivity) || (iter)) { @@ -822,7 +822,7 @@ in the above sense. if (c_style & ISARE_BIT ~= 0) { SetLWI(index, -1, o); - LIST_WRITER_INTERNAL_RM('V', o); + LW_Response('V', o); if (c_style & NEWLINE_BIT ~= 0) print ":^"; else print (char) ' '; c_style = c_style - ISARE_BIT; @@ -891,7 +891,7 @@ in the above sense. if (BasicInformKit`SERIAL_COMMA_CFGF) { if (cl > 1) print ","; } - LIST_WRITER_INTERNAL_RM('C'); + LW_Response('C'); } if (groups_to_do > 1) print ", "; } @@ -1032,17 +1032,17 @@ the iterator used at the top level) and increasing the depth by 1. if (o has container && o hasnt open) combo=combo+2; if ((o has container && (o has open || o has transparent)) && (child(o)==0)) combo=combo+4; - if (combo) LIST_WRITER_INTERNAL_RM('A'); space and open bracket + if (combo) LW_Response('A'); space and open bracket switch (combo) { - 1: LIST_WRITER_INTERNAL_RM('D', o); - 2: LIST_WRITER_INTERNAL_RM('E', o); - 3: LIST_WRITER_INTERNAL_RM('H', o); - 4: LIST_WRITER_INTERNAL_RM('F', o); - 5: LIST_WRITER_INTERNAL_RM('I', o); - 6: LIST_WRITER_INTERNAL_RM('G', o); - 7: LIST_WRITER_INTERNAL_RM('J', o); + 1: LW_Response('D', o); + 2: LW_Response('E', o); + 3: LW_Response('H', o); + 4: LW_Response('F', o); + 5: LW_Response('I', o); + 6: LW_Response('G', o); + 7: LW_Response('J', o); } - if (combo) LIST_WRITER_INTERNAL_RM('B'); close bracket + if (combo) LW_Response('B'); close bracket } EndActivity(PRINTING_ROOM_DESC_DETAILS_ACT, o); } end of PARTINV_BIT processing @@ -1050,10 +1050,10 @@ the iterator used at the top level) and increasing the depth by 1. if (c_style & FULLINV_BIT) { BeginActivity(PRINTING_INVENTORY_DETAILS_ACT, o); if (ForActivity(PRINTING_INVENTORY_DETAILS_ACT, o) == false) { - if (o has light && o has worn) { LIST_WRITER_INTERNAL_RM('A'); LIST_WRITER_INTERNAL_RM('K', o); parenth_flag = true; } + if (o has light && o has worn) { LW_Response('A'); LW_Response('K', o); parenth_flag = true; } else { - if (o has light) { LIST_WRITER_INTERNAL_RM('A'); LIST_WRITER_INTERNAL_RM('D', o); parenth_flag = true; } - if (o has worn) { LIST_WRITER_INTERNAL_RM('A'); LIST_WRITER_INTERNAL_RM('L', o); parenth_flag = true; } + if (o has light) { LW_Response('A'); LW_Response('D', o); parenth_flag = true; } + if (o has worn) { LW_Response('A'); LW_Response('L', o); parenth_flag = true; } } if (o has container) { @@ -1061,25 +1061,25 @@ the iterator used at the top level) and increasing the depth by 1. if (parenth_flag) { if (BasicInformKit`SERIAL_COMMA_CFGF) print ","; - LIST_WRITER_INTERNAL_RM('C'); - } else LIST_WRITER_INTERNAL_RM('A', o); + LW_Response('C'); + } else LW_Response('A', o); if (o has open) { - if (child(o)) LIST_WRITER_INTERNAL_RM('M', o); - else LIST_WRITER_INTERNAL_RM('N', o); + if (child(o)) LW_Response('M', o); + else LW_Response('N', o); } else { - if (o has lockable && o has locked) LIST_WRITER_INTERNAL_RM('P', o); - else LIST_WRITER_INTERNAL_RM('O', o); + if (o has lockable && o has locked) LW_Response('P', o); + else LW_Response('O', o); } parenth_flag = true; } else { if (child(o)==0 && o has transparent) { - if (parenth_flag) { LIST_WRITER_INTERNAL_RM('C'); LIST_WRITER_INTERNAL_RM('F'); } - else { LIST_WRITER_INTERNAL_RM('A'); LIST_WRITER_INTERNAL_RM('F'); LIST_WRITER_INTERNAL_RM('B'); } + if (parenth_flag) { LW_Response('C'); LW_Response('F'); } + else { LW_Response('A'); LW_Response('F'); LW_Response('B'); } } } } - if (parenth_flag) LIST_WRITER_INTERNAL_RM('B'); + if (parenth_flag) LW_Response('B'); } EndActivity(PRINTING_INVENTORY_DETAILS_ACT, o); } end of FULLINV_BIT processing @@ -1094,7 +1094,7 @@ the iterator used at the top level) and increasing the depth by 1. } if (child_count && (c_style & ALWAYS_BIT)) { - if (c_style & ENGLISH_BIT) { print " "; LIST_WRITER_INTERNAL_RM('Q', o); print " "; } + if (c_style & ENGLISH_BIT) { print " "; LW_Response('Q', o); print " "; } recurse_flag = true; } @@ -1102,18 +1102,18 @@ the iterator used at the top level) and increasing the depth by 1. if (o has supporter) { if (c_style & ENGLISH_BIT) { if (c_style & TERSE_BIT) { - LIST_WRITER_INTERNAL_RM('A', o); - LIST_WRITER_INTERNAL_RM('R', o); - } else LIST_WRITER_INTERNAL_RM('S', o); + LW_Response('A', o); + LW_Response('R', o); + } else LW_Response('S', o); } recurse_flag = true; } if (o has container && (o has open || o has transparent)) { if (c_style & ENGLISH_BIT) { if (c_style & TERSE_BIT) { - LIST_WRITER_INTERNAL_RM('A', o); - LIST_WRITER_INTERNAL_RM('T', o); - } else LIST_WRITER_INTERNAL_RM('U', o); + LW_Response('A', o); + LW_Response('T', o); + } else LW_Response('U', o); } recurse_flag = true; } @@ -1121,7 +1121,7 @@ the iterator used at the top level) and increasing the depth by 1. if (recurse_flag && (c_style & ENGLISH_BIT)) { SetLWI(child_count, -1, eldest_child); - LIST_WRITER_INTERNAL_RM('V', o); print " "; + LW_Response('V', o); print " "; } if (c_style & NEWLINE_BIT) new_line; @@ -1135,7 +1135,7 @@ the iterator used at the top level) and increasing the depth by 1. WriteListR(o, depth+1, true); @pull c_iterator; @pull listing_size; @pull listing_together; @pull lt_value; - if (c_style & TERSE_BIT) LIST_WRITER_INTERNAL_RM('B'); + if (c_style & TERSE_BIT) LW_Response('B'); } ];

@@ -1146,6 +1146,10 @@ response texts used by the list-writer.
 [ LIST_WRITER_INTERNAL_R;
 ];
+
++replacing(from BasicInformKit) [ LW_Response X o;
+    return LIST_WRITER_INTERNAL_RM(X, o);
+];