The R Project SVN R

Rev

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

Rev 43117 Rev 43237
Line 70... Line 70...
70
	if(p && strcmp(p, "FALSE") == 0) {
70
	if(p && strcmp(p, "FALSE") == 0) {
71
	    rcompgen_available = 0;
71
	    rcompgen_available = 0;
72
	    return gl_tab(buf, offset, loc);   
72
	    return gl_tab(buf, offset, loc);   
73
	}
73
	}
74
	/* First check if namespace is loaded */
74
	/* First check if namespace is loaded */
75
	if(findVarInFrame(R_NamespaceRegistry, install("rcompgen"))
75
	if(findVarInFrame(R_NamespaceRegistry, install("utils"))
76
	   != R_UnboundValue) rcompgen_available = 1;
76
	   != R_UnboundValue) rcompgen_available = 1;
77
	else { /* Then try to load it */
77
	else { /* Then try to load it */
78
	    char *p = "try(loadNamespace('rcompgen'), silent=TRUE)";
78
	    char *p = "try(loadNamespace('rcompgen'), silent=TRUE)";
79
	    PROTECT(cmdSexp = mkString(p));
79
	    PROTECT(cmdSexp = mkString(p));
80
	    cmdexpr = PROTECT(R_ParseVector(cmdSexp, -1, &status, R_NilValue));
80
	    cmdexpr = PROTECT(R_ParseVector(cmdSexp, -1, &status, R_NilValue));
81
	    if(status == PARSE_OK) {
81
	    if(status == PARSE_OK) {
82
		for(i = 0; i < length(cmdexpr); i++)
82
		for(i = 0; i < length(cmdexpr); i++)
83
		    eval(VECTOR_ELT(cmdexpr, i), R_GlobalEnv);
83
		    eval(VECTOR_ELT(cmdexpr, i), R_GlobalEnv);
84
	    }
84
	    }
85
	    UNPROTECT(2);
85
	    UNPROTECT(2);
86
	    if(findVarInFrame(R_NamespaceRegistry, install("rcompgen"))
86
	    if(findVarInFrame(R_NamespaceRegistry, install("utils"))
87
	       != R_UnboundValue) rcompgen_available = 1;
87
	       != R_UnboundValue) rcompgen_available = 1;
88
	    else {
88
	    else {
89
		rcompgen_available = 0;
89
		rcompgen_available = 0;
90
		return -1; /* no change */
90
		return -1; /* no change */
91
	    }
91
	    }