diff options
-rw-r--r-- | parser.c | 4 | ||||
-rw-r--r-- | parser.h | 8 |
2 files changed, 10 insertions, 2 deletions
@@ -402,7 +402,7 @@ variable **iparse(instance *it, const char *s) for (int c = 0; c >= 0; end++) { if (s[end] == '(') c++; - if (c == 0 && last != end && (s[end] == ',' || s[end] == ')')) { + if (c == 0 && last != end && (s[end] == ',' || s[end] == ')' || s[end] == '\0')) { argcount++; char *arg = strnclone(s + last, end - last); uint32_t parenidx = ooffset; @@ -418,7 +418,7 @@ variable **iparse(instance *it, const char *s) ops[parenidx] = (variable *)(OP_MAGIC | count); last = end + 1; } - if (s[end] == ')') + if (s[end] == ')' || s[end] == '\0') c--; } if (s[end] != '\0') @@ -79,6 +79,14 @@ int idoline(instance *it, const char *s); void inew_cfunc(instance *it, const char *name, func_t func); /** + * Creates a script-accessible float number. + * @param it the current instance + * @param name the name of the new variable + * @param f the variable's initial value + */ +void inew_number(instance *it, const char *name, float f); + +/** * Pops a word from the instance's stack. * @param it the current instance * @return the popped value |