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 2 May 2008. The librarian in charge of this page is Roger Firth. Please email any comments, suggestions or corrections to roger@firthworks.com.