Driver Variable Name Validation: Added missing check for zero-length (i.e. "blank") names
This commit is contained in:
parent
0512e20ae9
commit
5759e335c3
@ -1612,6 +1612,11 @@ void driver_variable_name_validate(DriverVar *dvar)
|
||||
/* clear all invalid-name flags */
|
||||
dvar->flag &= ~DVAR_ALL_INVALID_FLAGS;
|
||||
|
||||
/* 0) Zero-length identifiers are not allowed */
|
||||
if (dvar->name[0] == '\0') {
|
||||
dvar->flag |= DVAR_FLAG_INVALID_EMPTY;
|
||||
}
|
||||
|
||||
/* 1) Must start with a letter */
|
||||
/* XXX: We assume that valid unicode letters in other languages are ok too, hence the blacklisting */
|
||||
if (ELEM(dvar->name[0], '0', '1', '2', '3', '4', '5', '6', '7', '8', '9')) {
|
||||
|
@ -527,6 +527,9 @@ static void driver_dvar_invalid_name_query_cb(bContext *C, void *dvar_v, void *U
|
||||
|
||||
DriverVar *dvar = (DriverVar *)dvar_v;
|
||||
|
||||
if (dvar->flag & DVAR_FLAG_INVALID_EMPTY) {
|
||||
uiItemL(layout, "It cannot be left blank", ICON_ERROR);
|
||||
}
|
||||
if (dvar->flag & DVAR_FLAG_INVALID_START_NUM) {
|
||||
uiItemL(layout, "It cannot start with a number", ICON_ERROR);
|
||||
}
|
||||
|
@ -376,6 +376,8 @@ typedef enum eDriverVar_Flags {
|
||||
DVAR_FLAG_INVALID_HAS_SPECIAL = (1 << 6),
|
||||
/* name is a reserved keyword */
|
||||
DVAR_FLAG_INVALID_PY_KEYWORD = (1 << 7),
|
||||
/* name is zero-length */
|
||||
DVAR_FLAG_INVALID_EMPTY = (1 << 8),
|
||||
} eDriverVar_Flags;
|
||||
|
||||
/* All invalid dvar name flags */
|
||||
@ -386,7 +388,8 @@ typedef enum eDriverVar_Flags {
|
||||
DVAR_FLAG_INVALID_HAS_SPACE | \
|
||||
DVAR_FLAG_INVALID_HAS_DOT | \
|
||||
DVAR_FLAG_INVALID_HAS_SPECIAL | \
|
||||
DVAR_FLAG_INVALID_PY_KEYWORD \
|
||||
DVAR_FLAG_INVALID_PY_KEYWORD | \
|
||||
DVAR_FLAG_INVALID_EMPTY \
|
||||
)
|
||||
|
||||
/* --- */
|
||||
|
Loading…
Reference in New Issue
Block a user