According to me:
> According to Geoff Hutchison:
> > At 12:02 PM +0200 8/17/00, abel deuring wrote:
> > >5. If two config files specified (for searches in in two databases, or
> > >accidentally by the bug mentioned above), and if the second config file
> > >contains an "include" statement, the lines following this include
> > >statement are not used.
> >
> > Hmm, I'll try to reproduce that, though it may take some additional
> > sleuthing to find the culprit code in the flex/bison code.
> >
> > Thanks again for your patch (and sorry that the snapshots were broken).
>
> The flex code uses a stack to keep track of open config files for
> includes. My guess is that code gets confused by multiple config files
> in the collection support. The includes in the new flex code are also
> broken in that include file names are now interpreted relative to the
> current directory of the process, rather than the parent directory of
> the current config file. The stack should also keep track of file names
> and the code should be fixed to use them. In short, that code seems to
> need a lot of debugging and testing.
Well, I think I found the cause of the bug Abel reported, just by looking
at the code. It turns out that after it hits EOF on the first top-level
(i.e. not included) config file, the stack pointer gets decremented
once too often, so it's at the wrong value when it parses the second
top-level file.
I think this is the fix, but I don't have time to test it, and I'm not
even sure I have the right tools to rebuild the needed files from the flex
source, so I'll just submit it as a patch for someone else to commit.
Hope that's OK. The file name stacking for proper interpretation of
relative file names will take a bit more work, so I'll leave that for
later (or for someone else). Here's my patch:
Index: htcommon/conf_lexer.lxx
===================================================================
RCS file: /opt/htdig/cvs/htdig3/htcommon/conf_lexer.lxx,v
retrieving revision 1.1.2.8
diff -u -p -r1.1.2.8 conf_lexer.lxx
--- htcommon/conf_lexer.lxx 2000/05/06 20:46:37 1.1.2.8
+++ htcommon/conf_lexer.lxx 2000/08/17 22:07:40
@@ -131,13 +131,13 @@ include[ \t]*: BEGIN(incl);
}
<<EOF>> {
- if ( --include_stack_ptr < 0 )
+ if ( include_stack_ptr <= 0 )
yyterminate();
else
{
yy_delete_buffer( YY_CURRENT_BUFFER );
yy_switch_to_buffer(
- include_stack[include_stack_ptr] );
+ include_stack[--include_stack_ptr] );
}
}
--
Gilles R. Detillieux E-mail: <[EMAIL PROTECTED]>
Spinal Cord Research Centre WWW: http://www.scrc.umanitoba.ca/~grdetil
Dept. Physiology, U. of Manitoba Phone: (204)789-3766
Winnipeg, MB R3E 3J7 (Canada) Fax: (204)789-3930
------------------------------------
To unsubscribe from the htdig3-dev mailing list, send a message to
[EMAIL PROTECTED]
You will receive a message to confirm this.