From e8b36da22f7d0d9dae5436ce4cf5527730f1d584 Mon Sep 17 00:00:00 2001 From: Shpoike Date: Thu, 29 Jun 2023 01:35:55 +0100 Subject: [PATCH] allow eg poke_ssqc 5.touch=0 --- engine/qclib/pr_exec.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/engine/qclib/pr_exec.c b/engine/qclib/pr_exec.c index 2941c0922..69451f43b 100644 --- a/engine/qclib/pr_exec.c +++ b/engine/qclib/pr_exec.c @@ -1040,16 +1040,17 @@ char *PDECL PR_EvaluateDebugString(pubprogfuncs_t *ppf, const char *key) mfunction_t *func; progsnum_t i; progsnum_t progsnum = -1; - if (str[0] && str[1] == ':') + char *end; + if (!strcmp(str, "0")) { - progsnum = atoi(str); - str+=2; - } - else if (str[0] && str[1] && str[2] == ':') - { - progsnum = atoi(str); - str+=3; + *(func_t *)val = 0; + break; } + progsnum = strtol(str, &end, 10); + if (end != str && *end == ':') + str = end+1; //skip past the num: prefix + else + progsnum = -1; //wasn't a num: prefix func = ED_FindFunction (progfuncs, str, &i, progsnum); if (!func) @@ -1058,7 +1059,7 @@ char *PDECL PR_EvaluateDebugString(pubprogfuncs_t *ppf, const char *key) *assignment = '='; - strcpy(buf, "Can't find field "); + strcpy(buf, "Can't find function "); l = strlen(buf); if (nl > sizeof(buf)-l-2) nl = sizeof(buf)-l-2;