[Rd] capabilities() and non-catchable messages
Roger D. Peng
rpeng at jhsph.edu
Mon Jun 20 14:10:00 CEST 2005
Would using 'capture.output()' work for you in this case?
-roger
Henrik Bengtsson wrote:
> Just for the record (not a request for fix) and an ad hoc workaround if
> anyone needs it:
>
> REASON:
> Running an R script as a plugin on a remote Suse Linux 8.2 with R v2.1.0
> (2005-04-18), I have noticed that capabilities() generates (to standard
> error)
>
> Xlib: connection to "base:0.0" refused by server
> Xlib: Client is not authorized to connect to Server
>
> which cannot be caught by tryCatch();
>
> tryCatch({
> print(capabilities());
> }, condition=function(c) {
> cat("Condition caught:\n");
> str(c);
> })
>
> because it is not a 'condition' (error or warning).
>
> CONTEXT:
> Since source() calls capabilities("iconv") this messages always show up.
> My R plugin loads custom code using source() and since the standard
> error from the plugin is checked for messages, the host system
> interprets this as if something problematic has occured.
>
> WORKAROUND:
> The workaround that I use now is to redefine capabilities() temporarily
> (since I do not need "iconv" support):
>
> orgCapabilities <- base::capabilities;
> basePos <- which(search() == "package:base"));
> assign("capabilities", function(...) FALSE, pos=basePos);
>
> source(<my file>)
>
> basePos <- which(search() == "package:base"));
> assign("capabilities", orgCapabilities, pos=basePos);
> rm(orgCapabilities)
>
> Cheers
>
> Henrik
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
More information about the R-devel
mailing list