<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: 12pt">
<DIV>I can confirm the odd behavior as described, however</DIV>
<DIV> </DIV>
<DIV>include inner "xdir/testinc.rl"; works, if xdir is a subdirectory,
but it </DIV>
<DIV>shouldn't because of '/' (*)</DIV>
<DIV> </DIV>
<DIV>include inner "xdir\testinc.rl"; fails, though it should work because
'\' </DIV>
<DIV>is correct here</DIV>
<DIV> </DIV>
<DIV>In line 48 in rlscan.cpp there is a definition for the OS dependent path
</DIV>
<DIV>separator, but there are only 2 references to it in rlscan (lines 838 and
</DIV>
<DIV>857). I would have expected more occurences.</DIV>
<DIV> </DIV>
<DIV>My guess is that the problem is related to a possibly inconsistent handling
</DIV>
<DIV>of the Windows path separator '\' in various parts of the code (mea culpa
</DIV>
<DIV>verisimilis). I don't know much about mingw, but its older brother cygwin
</DIV>
<DIV>handles path issues pretty much transparently inside its lib and allows '/'
</DIV>
<DIV>and '\' as far as I remember.</DIV>
<DIV> </DIV>
<DIV>Since includes works on other platforms and partially on Windows boxes (see
</DIV>
<DIV>*), the scanner with its basic include handling is very unlikely part of
the </DIV>
<DIV>problem.</DIV>
<DIV> </DIV>
<DIV>I'll probably find some more time tomorrow to verify this and in case it is
</DIV>
<DIV>the problem, there will be some design decisions to be made:</DIV>
<DIV> </DIV>
<DIV>(1) Use PATH_SEP and patch wherever necessary with a lot of #ifdefs: ugly
</DIV>
<DIV>and then one could use only '\' on the VisualStudio build, i.e. one cannot
</DIV>
<DIV>really move code between different platforms</DIV>
<DIV> </DIV>
<DIV>(2) Factor out path handling using a small number of support routines to
</DIV>
<DIV>mimic the behavior of cygwin/mingw: looks good to me</DIV>
<DIV> </DIV>
<DIV>Actually, I'd prefer to allow any character on any platform like you can
use </DIV>
<DIV>any delimiter for regular expressions. In this case there would be
different </DIV>
<DIV>defaults for different platforms, but this could be changed with a command
</DIV>
<DIV>line switch. It could even make sense to allow an array of path separators,
</DIV>
<DIV>where '/' and '\' would be the default on Windows machines.</DIV>
<DIV> </DIV>
<DIV>jg </DIV></DIV></DIV></BODY></HTML>