diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index 52bece60361..845229e49e3 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -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')) { diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index 858baf61576..f5057fd4d43 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -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); } diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index c8ba61db87e..55998ba6e9f 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -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 \ ) /* --- */