Under certain circumstances, an unterminated string with a missing double-quote
can crash the compiler. I can't find the actual cause of the error.
It looks like the grammar table is built wrong, and so the backpatcher goes off the rails.
Ideally, we shouldn't build an illegal grammar table.
In practice, I expect the compiler has lots of bugs where it builds illegal tables after errors occur.
Usually a gross source error like that causes a "Fatal error: Too many errors: giving up"
before construct_storyfile is called, and so we don't see this.
In this case, it got all the way to backpatching. A trivial fix would be to put a line at the top of construct_storyfile: I don't think that breaks expected behavior for anybody.
The code already skips calling output_file() if no_errors is nonzero.
One side effect is that a simple (non-cascading) error in the source will
suppress "overflowed RAM limit" and "overflowed game file limit" errors.
About Patches
Issue C63022 [previous patch]
Missing " may crash the compiler
Submitted by: Mesmer
Appeared in: Compiler 6.30 or before
Fixed in: -
Problem
Solution (by Andrew Plotkin)
if (no_errors) return;
Last updated 17 April 2013.
This site is no longer supported; information may be out of date.
Maintained as a historical archive by the Interactive Fiction Technology Foundation.
Copyright 1993-2018 IFTF, CC-BY-SA unless otherwise noted.
This page was originally managed by Roger Firth.