Inform - Support - Patches

About Patches  

Compiler  
Library  

DM4 Errata  

Issue L61129     [previous patch]

Results from 'grammar' property are misplaced
Submitted by: Sarganar     Appeared in: Library 6/11 or before     Fixed in: -
Problem

An animate or talkable object's grammar property can return 1 to mean (quoting from DM4) "you can stop parsing now because I have done it all, and put the resulting order into the variables action, noun and second". However, the library code to handle this return value does not work correctly.

Solution

The following code occurs around line 1386 in parserm.h:

    if (usual_grammar_after == 0) {
        j = verb_wordnum;
        i = RunRoutines(actor, grammar);
        ...
        if (i == 1) {
            results-->0 = action;
            results-->1 = noun;        ! THESE LINES
            results-->2 = second;      ! ARE WRONG
            rtrue;
        }
        ...
    }

The marked code is incorrect. It should read:

        if (i == 1) {
            results-->0 = action;
            results-->1 = 2;           ! Number of parameters
            results-->2 = noun;
            results-->3 = second;
            rtrue;
        }


Last updated 26 June 2008. The librarian in charge of this page is Roger Firth. Please email any comments, suggestions or corrections to roger@firthworks.com.