Re: [Rd] Revision of shell.exec?

From: Dirk Eddelbuettel <edd_at_debian.org>
Date: Thu, 15 Sep 2011 07:16:32 -0500

On 14 September 2011 at 16:56, Simon Urbanek wrote:
|
| On Sep 14, 2011, at 4:44 PM, Dirk Eddelbuettel wrote:
|
| >
| > On 14 September 2011 at 16:22, Simon Urbanek wrote:
| > |
| > | On Sep 14, 2011, at 4:15 PM, Brian Oney wrote:
| > |
| > | > Hi there,
| > | > new idea (at 10 at night). All the emails keep me thinking (btw thanks for all the feedback).
| > | > What does this do on linux?
| > | >
| > | > getOption("pdfviewer")
| > | > ### I got this idea from: getS3method("print","vignette")
| > | >
| > |
| > | It gives you the detected PDF viewer as I was explaining (essentially R_PDFVIEWER). The two detected settings I was referring to are R_PDFVIEWER (for PDF) and R_BROWSER (for URLs) which are the initial settings for the "pdfviewer" and "browser" options.
| > |
| > | Note that it's what it say it is - R_PDFVIEWER is usually something like acroread or evince so not particularly useful for your purpose ...
| >
| > R> getOption("pdfviewer")
| > [1] "/usr/bin/xdg-open"
| > R>
| >
| > We've had that as xdg-open in Debian / Ubuntu for a while now...
| >
|
| Yes, but that's merely a side-effect. For example on Ubuntu (R from sources) I get
|
| gis:~$ Rscript -e 'cat(getOption("pdfviewer"),"\n")'
| /usr/bin/X11/evince
|
| because xdg-open is not installed by default. My point is that the setting is meant for something else, so misappropriating it, although possible, may not be wise. If you really want to go down that alley, you could use some logic like
|
| if (identical(getOption("pdfviewer"), getOption("browser"))) { # better chance that it's something that can open things universally
| } else { ## well, bad luck ... }
|
| That will work on Macs and possibly on OSes that have generic open commands ... (but is not guaranteed to ...).

Not a side-effect, but carefully planned by several parties :)

Kurt has this in m4/R.m4 for R's configure:

  AC_DEFUN([R_PROG_BROWSER],
  [if test -z "${R_BROWSER}"; then
    AC_PATH_PROGS(R_BROWSER, [firefox mozilla galeon opera xdg-open kfmclient gnome-moz-remote open])   fi

and

  AC_DEFUN([R_PROG_PDFVIEWER],
  [AC_PATH_PROGS(R_PDFVIEWER,

                 [${R_PDFVIEWER} acroread acroread4 xdg-open evince xpdf gv gnome-gv ggv okular kpdf open gpdf kghostview])

so xdg-open can be use as R_BROWSER and R_PDFVIEWER. That is a 'Good Thing' because xdg-open is itself a wrapper which finds the appropriate _installed_ binary via the desktop resources -- shifting the choice from compile-time to run-time.

I then ensure via a Build-Depends on the xdg-utils package ensure that xdg-open is present when R is built (as the Debian / Ubuntu binary). (I also set 'R_BROWSER=xdg-open' in the call to configure which may be redundant.)

So we could try to generalize this and, if on Linux, look for xdg-open and call that.

Dirk

-- 
New Rcpp master class for R and C++ integration is scheduled for 
San Francisco (Oct 8), more details / reg.info available at
http://www.revolutionanalytics.com/products/training/public/rcpp-master-class.php

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Thu 15 Sep 2011 - 20:31:51 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 16 Sep 2011 - 13:00:32 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive