diff options
Diffstat (limited to 'src/vim9expr.c')
-rw-r--r-- | src/vim9expr.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/vim9expr.c b/src/vim9expr.c index 1485bd93cf..19cd55d3c8 100644 --- a/src/vim9expr.c +++ b/src/vim9expr.c @@ -2107,14 +2107,20 @@ compile_expr8( break; /* - * "null" constant + * "null" or "null_*" constant */ - case 'n': if (STRNCMP(*arg, "null", 4) == 0 - && !eval_isnamec((*arg)[4])) + case 'n': if (STRNCMP(*arg, "null", 4) == 0) { - *arg += 4; - rettv->v_type = VAR_SPECIAL; - rettv->vval.v_number = VVAL_NULL; + char_u *p = *arg + 4; + int len; + + for (len = 0; eval_isnamec(p[len]); ++len) + ; + ret = handle_predefined(*arg, len + 4, rettv); + if (ret == FAIL) + ret = NOTDONE; + else + *arg += len + 4; } else ret = NOTDONE; |