From 87745262f3f02dc68c95ad218a7d335de2e72118 Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Sun, 20 Mar 2016 15:19:25 -0400 Subject: [PATCH] Fixes SDQL's CALL --- code/modules/admin/verbs/SDQL2/SDQL_2.dm | 5 ++++- code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 3442edb9298..75290c6779b 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -91,7 +91,10 @@ // To stop any procs which sleep from executing slowly. if(d) if(hascall(d, v)) - spawn() call(d, v)(arglist(args_list)) // Spawn in case the function sleeps. + var/list/arguments[0] + for(var/list/arg in args_list) + arguments += SDQL_expression(d, arg) + spawn() call(d, v)(arglist(arguments)) // Spawn in case the function sleeps. if("delete") for(var/datum/d in objs) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm index 007453a980d..78833453a7f 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm @@ -397,16 +397,20 @@ //call_function: ['(' [arguments] ')'] call_function(i, list/node, list/arguments) + var/list/cur_argument = list() if(length(tokenl(i))) node += token(i++) if(token(i) != "(") parse_error("Expected ( but found '[token(i)]'") else if(token(i + 1) != ")") do - i = expression(i + 1, arguments) + i = expression(i + 1, cur_argument) if(token(i) == ",") + arguments += list(cur_argument) + cur_argument = list() continue while(token(i) && token(i) != ")") + arguments += list(cur_argument) else i++ else