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 web site has not been fully supported since April 2008. Information may be out of date. This page was originally managed by Roger Firth.