Date: Mon, 18 Jun 2001 16:11:01 +0100
From: Regis Nicolas <Regis.Nicolas@corp.palm.com>
To: "'aaron@ardiri.com'" <aaron@ardiri.com>
Subject: Evaluation problem solution

Aaron,

I found the problem:
You need to comment out some code added by Renaud in pilrc.c, function
ParseCInclude(), line 4926 and after:

                  GetExpectLt(&tok, ltId, "identifier");
                  strcpy(szId, tok.lex.szId);

                  //
                  // RMa hack to determine if we have or not a value for
this define
                  // that determine if it a define for multi include
protection or not
                  //
                  hackP = strstr(szLine, tok.lex.szId);
                  hackP += strlen(tok.lex.szId);
                  while ((*hackP == ' ') || (*hackP == '\t'))
                    hackP++;
                  if (*hackP != 0x0a)
                  {
/* RNi: removed because it was breaking the constant evaluation.
                    if ((*hackP < '0') || (*hackP > '9'))
                    {
                      if (!vfQuiet)
                        WarningLine
                          ("Found a define using an another define. Can't
process it");
                      NextLine();
                    }
                    else
*/
                    {
                      wIdVal = WGetConstEx("Constant");
                      AddSym(szId, wIdVal);
                    }

See what I commented out.
This has been done for strange case when we have
#define toto tutu
but tutu is defined after the definition of toto.
I think the bug is still here after commenting that out but at least
everything works like before.

Cordially,
Regis.

------------------------------------------------------------------
Regis NICOLAS - Manager, Telecommunication Software
Palm Computing Europe, a Palm Inc. company

When the finger points to the sky, the idiot looks at the finger.

