SEXP attribute_hidden do_traceOnOff(SEXP call, SEXP op, SEXP args, SEXP rho) { checkArity(op, args); SEXP onOff = CAR(args); Rboolean prev = GET_TRACE_STATE; if(length(onOff) > 0) { Rboolean _new = asLogical(onOff); if(_new == TRUE || _new == FALSE) SET_TRACE_STATE(_new); else error("Value for tracingState must be TRUE or FALSE"); } return ScalarLogical(prev); }
SEXP attribute_hidden do_traceOnOff(SEXP call, SEXP op, SEXP args, SEXP rho) { checkArity(op, args); SEXP onOff = CAR(args); Rboolean trace = (PRIMVAL(op) == 0), prev = trace ? GET_TRACE_STATE : GET_DEBUG_STATE; if(length(onOff) > 0) { Rboolean _new = asLogical(onOff); if(_new == TRUE || _new == FALSE) if(trace) SET_TRACE_STATE(_new); else SET_DEBUG_STATE(_new); else error(_("Value for '%s' must be TRUE or FALSE"), trace ? "tracingState" : "debuggingState"); } return ScalarLogical(prev); }