From bb4c34a3fb51361e706291f80eed2f07f1bc4561 Mon Sep 17 00:00:00 2001 From: q66 Date: Fri, 2 Sep 2016 19:34:59 +0100 Subject: [PATCH] better type list verification, don't print message on bad new_command --- cubescript.cc | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/cubescript.cc b/cubescript.cc index 7d4ec8a6..5f8e2bbd 100644 --- a/cubescript.cc +++ b/cubescript.cc @@ -1245,25 +1245,30 @@ CsCommand *CsState::new_command( case 'r': case '$': if (nargs < MaxArguments) { - nargs++; + ++nargs; } break; case '1': case '2': case '3': case '4': + if (nargs < (*fmt - '0')) { + return nullptr; + } + if ((fmt.size() != 2) || ((fmt[1] != 'C') && (fmt[1] != 'V'))) { + return nullptr; + } if (nargs < MaxArguments) { fmt.push_front_n(*fmt - '0' + 1); } break; case 'C': case 'V': + if (fmt.size() != 1) { + return nullptr; + } break; default: - get_err().writefln( - "builtin %s declared with illegal type: %c", - name, fmt.front() - ); return nullptr; } }