static SEXP get_last_call(){ SEXP sys_calls_symbol = Rf_install( "sys.calls" ) ; Scoped<SEXP> sys_calls_expr = Rf_lang1(sys_calls_symbol) ; Scoped<SEXP> calls = Rf_eval( sys_calls_expr, R_GlobalEnv ) ; SEXP res = calls ; while( !Rf_isNull(CDR(res)) ) res = CDR(res); return CAR(res) ; }
SEXP get_last_call(){ SEXP sys_calls_symbol = Rf_install( "sys.calls" ) ; SEXP sys_calls_expr = PROTECT( Rf_lang1(sys_calls_symbol) ) ; SEXP calls = PROTECT( Rf_eval( sys_calls_expr, R_GlobalEnv ) ) ; SEXP res = calls ; while( !Rf_isNull(CDR(res)) ) res = CDR(res); UNPROTECT(2); return CAR(res) ; }