Inform - Support - Patches

About Patches  

Compiler  
Library  

DM4 Errata  

Issue L60903

Punctuation conflicts with Infix
Submitted by: Torbjörn Andersson     Appeared in: Library 6/9     Fixed in: Library 6/10
Problem

It has been pointed out a few times that using the Infix feature breaks commands like DUFFY, ANALYZE LADDER or TAKE SPELL BOOK. READ IT. This is a library error or, rather, Infix breaks the assumption that , and . are not dictionary words. In the NextWord() function in Parserm.h, it says

  if (j==0)
  {  k=wn*4-3; i=buffer->(parse->k);
      if (i==',') j=comma_word;
      if (i=='.') j=THEN1__WD;
  }
Solution

As far as I know, this is how the library has done it since pretty much forever. Replacing these lines with something like this:

  switch(j)
  {  ',//': j=comma_word;
     './/': j=THEN1__WD;
  }

should fix it, hopefully without introducing any new exciting bugs. The local variable 'k' can be removed as well, as it is no longer used.


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.