The R Project SVN R

Rev

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

Rev 44311 Rev 45209
Line 743... Line 743...
743
 
743
 
744
SEXP attribute_hidden do_isloaded(SEXP call, SEXP op, SEXP args, SEXP env)
744
SEXP attribute_hidden do_isloaded(SEXP call, SEXP op, SEXP args, SEXP env)
745
{
745
{
746
    const char *sym, *type="", *pkg = "";
746
    const char *sym, *type="", *pkg = "";
747
    int val = 1, nargs = length(args);
747
    int val = 1, nargs = length(args);
748
    R_RegisteredNativeSymbol symbol = {R_FORTRAN_SYM, {NULL}, NULL};
748
    R_RegisteredNativeSymbol symbol = {R_ANY_SYM, {NULL}, NULL};
749
 
749
 
750
    if (nargs < 1) error(_("no arguments supplied"));
750
    if (nargs < 1) error(_("no arguments supplied"));
751
    if (nargs > 3) error(_("too many arguments"));
751
    if (nargs > 3) error(_("too many arguments"));
752
 
752
 
753
    if(!isValidString(CAR(args)))
753
    if(!isValidString(CAR(args)))
Line 765... Line 765...
765
	if(strcmp(type, "C") == 0) symbol.type = R_C_SYM;
765
	if(strcmp(type, "C") == 0) symbol.type = R_C_SYM;
766
	else if(strcmp(type, "Fortran") == 0) symbol.type = R_FORTRAN_SYM;
766
	else if(strcmp(type, "Fortran") == 0) symbol.type = R_FORTRAN_SYM;
767
	else if(strcmp(type, "Call") == 0) symbol.type = R_CALL_SYM;
767
	else if(strcmp(type, "Call") == 0) symbol.type = R_CALL_SYM;
768
	else if(strcmp(type, "External") == 0) symbol.type = R_EXTERNAL_SYM;
768
	else if(strcmp(type, "External") == 0) symbol.type = R_EXTERNAL_SYM;
769
    }
769
    }
770
    if(strlen(type)) {
-
 
771
	if(!(R_FindSymbol(sym, pkg, &symbol))) val = 0;
-
 
772
    } else {
-
 
773
	if (!(R_FindSymbol(sym, pkg, NULL)) && 
-
 
774
	    !(R_FindSymbol(sym, pkg, &symbol))) val = 0;
770
    if(!(R_FindSymbol(sym, pkg, &symbol))) val = 0;
775
    }
-
 
776
    return ScalarLogical(val);
771
    return ScalarLogical(val);
777
}
772
}
778
 
773
 
779
/*   Call dynamically loaded "internal" functions */
774
/*   Call dynamically loaded "internal" functions */
780
/*   code by Jean Meloche <jean@stat.ubc.ca> */
775
/*   code by Jean Meloche <jean@stat.ubc.ca> */