The R Project SVN R

Rev

Rev 14948 | Rev 34062 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
14948 duncan 1
/*
2
  Tests using the postcript device from within 
3
  an application that embeds the R interpreter.
4
  Equivalent of evaluating the expressions:
5
    postscript()
6
    plot(1:100)
7
    q()
8
 */
19500 hornik 9
#include <R.h>
10
#include <Rinternals.h>
11
#include <Rdefines.h>
14948 duncan 12
 
13
#include "embeddedRCall.h"
14
 
15
int
16
main(int argc, char *argv[])
17
{
18
    SEXP fun, arg, seq;
19
    SEXP e, e1;
20
    int i;
21
    char *localArgs[] = {"R", "--gui=none", "--no-save", "--silent"};
22
    init_R(argc, argv);
23
 
24
      /* postscript() */
25
    PROTECT(fun = Rf_findFun(Rf_install("postscript"),  R_GlobalEnv));  
26
    PROTECT(e = allocVector(LANGSXP, 1));
27
    SETCAR(e, fun);
28
    eval(e, R_GlobalEnv);
29
    UNPROTECT(2);
30
 
31
 
32
    /* expression 1:100 */
33
 
34
    fun = Rf_findFun(Rf_install("plot"),  R_GlobalEnv);
35
    PROTECT(fun);
36
         /*  1:100 */
37
    PROTECT(e1 = allocVector(LANGSXP, 3));
38
    SETCAR(e1, Rf_install(":"));
39
    SETCAR(CDR(e1), arg = NEW_INTEGER(1));
40
    INTEGER_DATA(arg)[0] = 1;
41
    SETCAR(CDR(CDR(e1)), arg = NEW_INTEGER(1));
42
    INTEGER_DATA(arg)[0] = 100;
43
 
44
 
45
    arg = e1;
46
    e = allocVector(LANGSXP, 3);
47
    PROTECT(e);
48
    SETCAR(e, fun);
49
    SETCAR(CDR(e), arg);
50
 
51
       /* plot( 1:100 )*/
52
    eval(e, R_GlobalEnv);
53
 
54
    UNPROTECT(2);
55
 
56
    /* q() */
57
    PROTECT(fun = Rf_findFun(Rf_install("q"),  R_GlobalEnv));  
58
    PROTECT(e = allocVector(LANGSXP, 2));
59
    SETCAR(e, fun);
60
    SETCAR(CDR(e), arg = NEW_CHARACTER(1));
61
    SET_STRING_ELT(arg, 0, mkChar("no"));
62
    eval(e, R_GlobalEnv);
63
    UNPROTECT(2);
64
 
65
    return(0);
66
}