Actually, I may have been too abrupt when I said your fix was "not correct"; I mean, it _is_ not correct in some sense since your post contains some incorrect statements about how and why the problem occurs, and also incorrect implications for the fix.
However, the basic idea behind your proposed fix might be cleaner than my solution; I'll have to think about it. That is, the idea of passing the output pointer to the eval_buffer() command, rather than pushing/popping the variable_buffer. Then the makefile commands inside eval would use the same variable buffer, but they would use new extended parts, and not modify the earlier parts. The portion of your fix which is incorrect is returning the "o" pointer; actually in your fix the value of "o" can never change so it actually always returns the right value (the same value), but making this explicit and not returning it at all is sufficient and probably leaves the code a little cleaner (fewer changes). My concern is whether we might somehow accidentally restart the buffer at the beginning in the middle of the eval; that would be bad. Pushing/popping the buffer is very safe, but kind of gross. I'll look at this. Thanks... -- ------------------------------------------------------------------------------- Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at: http://www.gnu.org http://make.paulandlesley.org "Please remain calm...I may be mad, but I am a professional." --Mad Scientist _______________________________________________ Bug-make mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-make