On 2013-10-23 21:46, Sven Barth wrote:
"Writeln" is a complex functionality. So you should better trust us
(hint: I'm a compiler developer) when we say this is more difficult
than you imagine.
I know you're a compiler developer; and, I have no intention of
challenging you on that front --actually, I don't want to challenge
anyone on any front at all, I have enough challenges as it is.
And, I am not trying to replace all of WriteLn functionality with my own
code.
I am guessing, just guessing, FPC uses WriteLn to communicate with other
modules (perhaps Lazarus too), but I also need its output directly in my
app.
How about this:
Instead of redirecting all of its output through the callback, I only
use callback to redirect a copy of its output --leaving the rest of its
functionality intact?
As I wrote in my post: See the CRT unit.
It does exactly that. You need maybe 20 lines of code to do as you
want.
Will do, thanks.
But, let me ask this:
If I used the CRT unit, would I need to add it to every single unit in
the project that uses WriteLn?
Michael did not say that you should use the CRT unit, but that the
unit implements something similar and that you should take a look at
it to implement your own variant of it.
And then you need to include your own unit only once (e.g. either you
put the "hooking" into the initialization section or you do it at the
start of your program)
I took a look at crt.pas and AFAIC it is not significantly less complex
than finding the place of WriteLn in compiler code and altering it to
use a callback ;)
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus