I don't know if it's a bug, but it's certainly not the desired behaviour.
Here's a patch I wrote quickly. Keep in mind that I'm not a competent C
programmer; I had 1 class in C a year ago. I'm certain there is a more elegant
(and verified bug-free) way to do this. Graham?
in inform.c, near line 813:
do { word(b,next_token++); j++;
if (i<strlen(b)) i=strlen(b);
/* Check for character literals. @@?? should count as 1 character, not 4. */
for (k=0;k<=strlen(b);k++) {
if (b[k]=='@') {
k++;
if (b[k]=='@') {
k++; k++;
i = i - 3;
}
}
}
/* End kludgy check for literals. */
if (b[0]!=0)
{ if (strcmp(b,"\"\"")==0)
I haven't tested this very much at all- I only compiled your boxes to make sure
it fixed the problem.
Your mileage may vary, no warranty is expressed or implied, yadda yadda yada.
-Josh