From thomas.friedrichsmeier at ruhr-uni-bochum.de  Mon Sep 12 18:02:39 2005
From: thomas.friedrichsmeier at ruhr-uni-bochum.de (Thomas Friedrichsmeier)
Date: Mon, 12 Sep 2005 18:02:39 +0200
Subject: [Rd] ptr_R_EditFile, R_WriteConsole, and R_ShowMessage
Message-ID: <200509121802.40246.thomas.friedrichsmeier@ruhr-uni-bochum.de>

Hi!

I have an application embedding R. For that of course, it is great, that since 
R 2.1.0 the pointers in Rinterface.h allow me to override some callbacks, 
easily. However, after implementing/overriding a couple of those, I'm a bit 
confused about when exactly they get called. So, here are a few specific 
questions:

ptr_R_EditFile:
I can find exactly one point in the R-sources where ptr_R_EditFile acutally 
seems to be used (at least if non-NULL). By default the pointer is set to 
NULL with the comment "for futur expansion".
I wonder:
1) Why is this needed at all? Shouldn't the more generic R_EditFiles 
(ptr_R_EditFiles) suffice for the more specific case of editing a single 
file?
2) Why is ptr_R_EditFiles only available on aqua? Ok, it says on other 
platforms this does not currently work. But if I'd be able to create a 
working implementation in my application, why shouldn't I be allowed to 
override it (ok, I still can by just declaring it extern, but it's not 
exported in rinterface.h)? R could still check ptr_R_EditFiles for NULL 
before using it.
3) Am I correct in assuming that the parameter char* buf is supposed to keep 
the filename?

R_ShowMessage (ptr_R_ShowMessage):
This one, too, seems to have very few use-cases (but at least some). Most seem 
to be for errors during startup.
I wonder:
1) If this callback is most useful during startR (...), can it even be used in 
a meaningful way? After all, startR () also initializes all the callbacks to 
the standard values.
2) That aside, what is the policy for R_ShowMessage? Can I assume all messages 
being shown this way are errors of some sort? Or could there also be mere 
informational messages (which in a GUI would be presented in slightly 
different ways)?

R_WriteConsole (ptr_R_WriteConsole):
This is a great callback. It will allow me to get rid of my hacky sinks 
(currently I use a sink to a file to retrieve the output). Even better would 
be an additional callback ptr_R_WriteErr. Is there any particular reason, why 
this does not exist? Could it be added?

Thanks!
Thomas



[Rd] ptr_R_EditFile, R_WriteConsole, and R_ShowMessage
Thomas Friedrichsmeier