Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2016-03-26 08:01:02 +0300
committerJoshua Leung <aligorith@gmail.com>2016-03-26 08:02:02 +0300
commit5759e335c3462b9d705b68be18d621364af18688 (patch)
tree44bab6286d7ce6630405e1cc41e978efc6cbbef5
parent0512e20ae9939f4a688f4f485acdf246dc4d7682 (diff)
Driver Variable Name Validation: Added missing check for zero-length (i.e. "blank") names
-rw-r--r--source/blender/blenkernel/intern/fcurve.c5
-rw-r--r--source/blender/editors/space_graph/graph_buttons.c3
-rw-r--r--source/blender/makesdna/DNA_anim_types.h5
3 files changed, 12 insertions, 1 deletions
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 \
)
/* --- */