diff --git a/README.md b/README.md
index f1ca7c609..d5d7971fc 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Inform 7
-[Version](notes/versioning.md): 10.2.0-beta+6V97 'Krypton' (13 November 2022)
+[Version](notes/versioning.md): 10.2.0-beta+6V98 'Krypton' (15 November 2022)
## About Inform
diff --git a/build.txt b/build.txt
index bc4a31e2b..92442eb42 100644
--- a/build.txt
+++ b/build.txt
@@ -1,3 +1,3 @@
Prerelease: beta
-Build Date: 13 November 2022
-Build Number: 6V97
+Build Date: 15 November 2022
+Build Number: 6V98
diff --git a/docs/BasicInformKit/S-fl.html b/docs/BasicInformKit/S-fl.html
index cde9655f0..56219bf70 100644
--- a/docs/BasicInformKit/S-fl.html
+++ b/docs/BasicInformKit/S-fl.html
@@ -484,7 +484,6 @@ the file; files are opened using resource IDs rather than filenames.
struc-->AUXF_STREAM = stream_id;
struc-->AUXF_STATUS = AUXF_STATUS_IS_OPEN_FOR_READ;
glk_stream_set_position(stream_id, 0, seekmode_End);
- print "End pos is ", glk_stream_get_position(stream_id), "^";
glk_stream_set_position(stream_id, 0, seekmode_Start);
} else {
InternalFileIO_Error(file_id, "unable to open for reading");
@@ -495,9 +494,28 @@ the file; files are opened using resource IDs rather than filenames.
return -1;
}
stream_id = struc-->AUXF_STREAM;
- glk_stream_set_position(stream_id, at, seekmode_Start);
+ if (at >= 0) glk_stream_set_position(stream_id, at, seekmode_Start);
return glk_get_char_stream_uni(stream_id);
];
+
+[ InternalFileIO_Line txt file_id file_id pos tsize c;
+ TEXT_TY_Transmute(txt);
+ TEXT_TY_Empty(txt);
+ tsize = BlkValueLBCapacity(txt);
+ while (true) {
+ c = InternalFileBinaryRead(file_id, -1);
+ if (c == 10) { BlkValueWrite(txt, pos, 0); rtrue; }
+ if (c == -1) break;
+ if (pos+1 >= tsize) {
+ if (BlkValueSetLBCapacity(txt, 2*pos) == false) rfalse;
+ tsize = BlkValueLBCapacity(txt);
+ }
+ BlkValueWrite(txt, pos++, c);
+ }
+ BlkValueWrite(txt, pos, 0);
+ if (pos > 0) rtrue;
+ rfalse;
+];
The phrases making up the basic Inform language, and in terms of which all other phrases and rules are defined.
-
+
+
+
+To repeat with (loopvar - nonexisting text variable)
+ running through (F - internal file) begin -- end loop:
+ (-
+ for ({-my:1} = InternalFileIO_Line({-by-reference:loopvar}, {F}): {-my:1}:
+ {-my:1} = InternalFileIO_Line({-by-reference:loopvar}, {F}))
+ {-block}
+ -).
+
+
@@ -1001,7 +1013,7 @@ in Perl. Here "in loop" means "in any of the forms of while or repeat".
(documented at ph_next):
(- continue; -).
-
@@ -1029,7 +1041,7 @@ randomness below.
(documented at ph_enumlast):
decide on K before the default value of K.
-
@@ -1061,7 +1073,7 @@ given description ("a random closed door").
(documented at ph_seed):
(- VM_Seed_RNG({N}); -).
-
@@ -1133,7 +1145,7 @@ structural levels of text (character, word, punctuated word, etc.).
(documented at ph_paranum):
(- TEXT_TY_GetBlob({-new:text}, {-by-reference:T}, {N}, PARA_BLOB) -).
-
@@ -1142,7 +1154,7 @@ think about; as a one-off phrase, it may as well go here.
(documented at ph_subform):
(- TEXT_TY_SubstitutedForm({-new:text}, {-by-reference:T}) -).
-
+
@@ -1310,7 +1322,7 @@ subexpressions (which the plain text case doesn't have).
To decide which relation of objects is meaning of (V - a verb): (- {V}(CV_MEANING) -).
-
@@ -1369,7 +1381,7 @@ or "blanking" it — requires specialist phrases.
(documented at ph_blankouttable):
(- TableBlankOutAll({T}); -).
-
@@ -1464,7 +1476,7 @@ in", so that there's no need to imitate.
(documented at ph_isnotlistedin):
(- (LIST_OF_TY_FindItem({-by-reference:L}, {N}) == false) -).
-
@@ -1474,7 +1486,7 @@ current members (in creation order), but there's no reverse process.
(documented at ph_listofdesc):
(- {-new-list-of:list of K} -).
-
@@ -1537,7 +1549,7 @@ mechanism, in "Sort.i6t", which handles both lists and tables.
(documented at ph_sortlistpropertyreverse):
(- LIST_OF_TY_Sort({-lvalue-by-reference:L}, -1, {P}, {-property-holds-block-value:P}); -).
-
@@ -1671,7 +1683,7 @@ apply such a function.
(documented at ph_apply3):
(- {-primitive-definition:function-application}; -).
-
@@ -1708,7 +1720,7 @@ programming languages also have Inform analogues.
add the item to the filtered list;
decide on the filtered list.
-
+
@@ -1731,7 +1743,7 @@ programming languages also have Inform analogues.
(documented at ph_continueactivity):
(- rfalse; -) - in to only.
-