The R Project SVN R

Rev

Rev 6676 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6676 Rev 6994
Line 62... Line 62...
62
    SEXP c;
62
    SEXP c;
63
    PROTECT(formals);
63
    PROTECT(formals);
64
    PROTECT(body);
64
    PROTECT(body);
65
    PROTECT(rho);
65
    PROTECT(rho);
66
    c = allocSExp(CLOSXP);
66
    c = allocSExp(CLOSXP);
-
 
67
 
-
 
68
#ifdef not_used_CheckFormals
-
 
69
    if(isList(formals))
-
 
70
	FORMALS(c) = formals;
-
 
71
    else
-
 
72
        error("invalid formal arguments for \"function\"");
-
 
73
#else
67
    FORMALS(c) = formals;
74
    FORMALS(c) = formals;
-
 
75
#endif
-
 
76
    if(isList(body) || isLanguage(body) || isSymbol(body)
-
 
77
       || isExpression(body) || isVector(body))
68
    BODY(c) = body;
78
	BODY(c) = body;
-
 
79
    else
-
 
80
        error("invalid body argument for \"function\"\n"
-
 
81
	      "Should NEVER happen; please bug.report() [mkCLOSXP]\n");
-
 
82
 
69
    if(rho == R_NilValue)
83
    if(rho == R_NilValue)
70
	CLOENV(c) = R_GlobalEnv;
84
	CLOENV(c) = R_GlobalEnv;
71
    else
85
    else
72
	CLOENV(c) = rho;
86
	CLOENV(c) = rho;
73
    UNPROTECT(3);
87
    UNPROTECT(3);
74
    return c;
88
    return c;
75
}
89
}
76
 
90
 
77
 
-
 
78
/* mkChar - make a character (CHARSXP) variable */
91
/* mkChar - make a character (CHARSXP) variable */
79
 
92
 
80
SEXP mkChar(const char *name)
93
SEXP mkChar(const char *name)
81
{
94
{
82
    SEXP c;
95
    SEXP c;