From: Rudolf Polzer Date: Tue, 1 Oct 2013 15:49:44 +0000 (+0200) Subject: an eval toy for the RPN hackers. RPN probably is turing complete with this. X-Git-Tag: xonotic-v0.8.0~312 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=9b499ce88659e97759cd4f8f5846b363553566eb;p=xonotic%2Fxonotic-data.pk3dir.git an eval toy for the RPN hackers. RPN probably is turing complete with this. --- diff --git a/qcsrc/common/command/rpn.qc b/qcsrc/common/command/rpn.qc index 66e8554a8..4fc918c4a 100644 --- a/qcsrc/common/command/rpn.qc +++ b/qcsrc/common/command/rpn.qc @@ -535,6 +535,10 @@ void GenericCommand_rpn(float request, float argc, string command) } else if(rpncmd == "sprintf1s") { s = rpn_pop(); rpn_set(sprintf(s, rpn_get())); + } else if(rpncmd == "eval") { + s = rpn_pop(); + tokenize_console(strcat(s, substring(command, argv_end_index(rpnpos), -1))); + rpnpos = -1; } else { rpn_push(cvar_string(rpncmd)); } @@ -587,6 +591,7 @@ void GenericCommand_rpn(float request, float argc, string command) print(" s /MD4 digest ---------------------> s : MD4 digest\n"); print(" s /SHA256 digest ------------------> s : SHA256 digest\n"); print(" s /formatstring sprintf1s ---------> s : sprintf with 1 string (pad, cut)\n"); + print(" s eval ----------------------------> : does something eval\n"); print(" Set operations operate on 'such''strings'.\n"); print(" Unknown tokens insert their cvar value.\n"); return;