Cleanup: trailing commas
Needed for clan-format not to wrap onto one line.
This commit is contained in:
@@ -141,7 +141,7 @@ static PyStructSequence_Desc app_info_desc = {
|
||||
(char *)"bpy.app", /* name */
|
||||
bpy_app_doc, /* doc */
|
||||
app_info_fields, /* fields */
|
||||
ARRAY_SIZE(app_info_fields) - 1
|
||||
ARRAY_SIZE(app_info_fields) - 1,
|
||||
};
|
||||
|
||||
static PyObject *make_app_info(void)
|
||||
@@ -445,7 +445,7 @@ static PyGetSetDef bpy_app_getsets[] = {
|
||||
{(char *)"autoexec_fail", bpy_app_global_flag_get, NULL, NULL, (void *)G_FLAG_SCRIPT_AUTOEXEC_FAIL},
|
||||
{(char *)"autoexec_fail_quiet", bpy_app_global_flag_get, NULL, NULL, (void *)G_FLAG_SCRIPT_AUTOEXEC_FAIL_QUIET},
|
||||
{(char *)"autoexec_fail_message", bpy_app_autoexec_fail_message_get, NULL, NULL, NULL},
|
||||
{NULL, NULL, NULL, NULL, NULL}
|
||||
{NULL, NULL, NULL, NULL, NULL},
|
||||
};
|
||||
|
||||
static void py_struct_seq_getset_init(void)
|
||||
|
||||
@@ -38,14 +38,14 @@ static PyStructSequence_Field app_alembic_info_fields[] = {
|
||||
{(char *)"supported", (char *)"Boolean, True when Blender is built with Alembic support"},
|
||||
{(char *)"version", (char *)"The Alembic version as a tuple of 3 numbers"},
|
||||
{(char *)"version_string", (char *)"The Alembic version formatted as a string"},
|
||||
{NULL}
|
||||
{NULL},
|
||||
};
|
||||
|
||||
static PyStructSequence_Desc app_alembic_info_desc = {
|
||||
(char *)"bpy.app.alembic", /* name */
|
||||
(char *)"This module contains information about Alembic blender is linked against", /* doc */
|
||||
app_alembic_info_fields, /* fields */
|
||||
ARRAY_SIZE(app_alembic_info_fields) - 1
|
||||
ARRAY_SIZE(app_alembic_info_fields) - 1,
|
||||
};
|
||||
|
||||
static PyObject *make_alembic_info(void)
|
||||
|
||||
@@ -59,7 +59,7 @@ static PyStructSequence_Field app_builtopts_info_fields[] = {
|
||||
{(char *)"openmp", NULL},
|
||||
{(char *)"openvdb", NULL},
|
||||
{(char *)"alembic", NULL},
|
||||
{NULL}
|
||||
{NULL},
|
||||
};
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ static PyStructSequence_Desc app_builtopts_info_desc = {
|
||||
(char *)"bpy.app.build_options", /* name */
|
||||
(char *)"This module contains information about options blender is built with", /* doc */
|
||||
app_builtopts_info_fields, /* fields */
|
||||
ARRAY_SIZE(app_builtopts_info_fields) - 1
|
||||
ARRAY_SIZE(app_builtopts_info_fields) - 1,
|
||||
};
|
||||
|
||||
static PyObject *make_builtopts_info(void)
|
||||
|
||||
@@ -47,7 +47,7 @@ static PyStructSequence_Field app_ffmpeg_info_fields[] = {
|
||||
DEF_FFMPEG_LIB_VERSION(avformat),
|
||||
DEF_FFMPEG_LIB_VERSION(avutil),
|
||||
DEF_FFMPEG_LIB_VERSION(swscale),
|
||||
{NULL}
|
||||
{NULL},
|
||||
};
|
||||
|
||||
#undef DEF_FFMPEG_LIB_VERSION
|
||||
@@ -56,7 +56,7 @@ static PyStructSequence_Desc app_ffmpeg_info_desc = {
|
||||
(char *)"bpy.app.ffmpeg", /* name */
|
||||
(char *)"This module contains information about FFmpeg blender is linked against", /* doc */
|
||||
app_ffmpeg_info_fields, /* fields */
|
||||
ARRAY_SIZE(app_ffmpeg_info_fields) - 1
|
||||
ARRAY_SIZE(app_ffmpeg_info_fields) - 1,
|
||||
};
|
||||
|
||||
static PyObject *make_ffmpeg_info(void)
|
||||
|
||||
@@ -66,14 +66,14 @@ static PyStructSequence_Field app_cb_info_fields[] = {
|
||||
#define APP_CB_OTHER_FIELDS 1
|
||||
{(char *)"persistent", (char *)"Function decorator for callback functions not to be removed when loading new files"},
|
||||
|
||||
{NULL}
|
||||
{NULL},
|
||||
};
|
||||
|
||||
static PyStructSequence_Desc app_cb_info_desc = {
|
||||
(char *)"bpy.app.handlers", /* name */
|
||||
(char *)"This module contains callback lists", /* doc */
|
||||
app_cb_info_fields, /* fields */
|
||||
ARRAY_SIZE(app_cb_info_fields) - 1
|
||||
ARRAY_SIZE(app_cb_info_fields) - 1,
|
||||
};
|
||||
|
||||
#if 0
|
||||
|
||||
@@ -42,7 +42,7 @@ static PyStructSequence_Desc app_ocio_info_desc = {
|
||||
(char *)"bpy.app.ocio", /* name */
|
||||
(char *)"This module contains information about OpenColorIO blender is linked against", /* doc */
|
||||
app_ocio_info_fields, /* fields */
|
||||
ARRAY_SIZE(app_ocio_info_fields) - 1
|
||||
ARRAY_SIZE(app_ocio_info_fields) - 1,
|
||||
};
|
||||
|
||||
static PyObject *make_ocio_info(void)
|
||||
|
||||
@@ -35,14 +35,14 @@ static PyStructSequence_Field app_oiio_info_fields[] = {
|
||||
{(char *)"supported", (char *)("Boolean, True when Blender is built with OpenImageIO support")},
|
||||
{(char *)("version"), (char *)("The OpenImageIO version as a tuple of 3 numbers")},
|
||||
{(char *)("version_string"), (char *)("The OpenImageIO version formatted as a string")},
|
||||
{NULL}
|
||||
{NULL},
|
||||
};
|
||||
|
||||
static PyStructSequence_Desc app_oiio_info_desc = {
|
||||
(char *)"bpy.app.oiio", /* name */
|
||||
(char *)"This module contains information about OpeImageIO blender is linked against", /* doc */
|
||||
app_oiio_info_fields, /* fields */
|
||||
ARRAY_SIZE(app_oiio_info_fields) - 1
|
||||
ARRAY_SIZE(app_oiio_info_fields) - 1,
|
||||
};
|
||||
|
||||
static PyObject *make_oiio_info(void)
|
||||
|
||||
@@ -35,14 +35,14 @@ static PyStructSequence_Field app_opensubdiv_info_fields[] = {
|
||||
{(char *)"supported", (char *)("Boolean, True when Blender is built with OpenSubdiv support")},
|
||||
{(char *)("version"), (char *)("The OpenSubdiv version as a tuple of 3 numbers")},
|
||||
{(char *)("version_string"), (char *)("The OpenSubdiv version formatted as a string")},
|
||||
{NULL}
|
||||
{NULL},
|
||||
};
|
||||
|
||||
static PyStructSequence_Desc app_opensubdiv_info_desc = {
|
||||
(char *)"bpy.app.opensubdiv", /* name */
|
||||
(char *)"This module contains information about OpenSubdiv blender is linked against", /* doc */
|
||||
app_opensubdiv_info_fields, /* fields */
|
||||
ARRAY_SIZE(app_opensubdiv_info_fields) - 1
|
||||
ARRAY_SIZE(app_opensubdiv_info_fields) - 1,
|
||||
};
|
||||
|
||||
static PyObject *make_opensubdiv_info(void)
|
||||
|
||||
@@ -38,14 +38,14 @@ static PyStructSequence_Field app_openvdb_info_fields[] = {
|
||||
{(char *)"supported", (char *)("Boolean, True when Blender is built with OpenVDB support")},
|
||||
{(char *)("version"), (char *)("The OpenVDB version as a tuple of 3 numbers")},
|
||||
{(char *)("version_string"), (char *)("The OpenVDB version formatted as a string")},
|
||||
{NULL}
|
||||
{NULL},
|
||||
};
|
||||
|
||||
static PyStructSequence_Desc app_openvdb_info_desc = {
|
||||
(char *)"bpy.app.openvdb", /* name */
|
||||
(char *)"This module contains information about OpenVDB blender is linked against", /* doc */
|
||||
app_openvdb_info_fields, /* fields */
|
||||
ARRAY_SIZE(app_openvdb_info_fields) - 1
|
||||
ARRAY_SIZE(app_openvdb_info_fields) - 1,
|
||||
};
|
||||
|
||||
static PyObject *make_openvdb_info(void)
|
||||
|
||||
@@ -52,14 +52,14 @@ static PyStructSequence_Field app_sdl_info_fields[] = {
|
||||
{(char *)"available", (char *)("Boolean, True when SDL is available. This is False when "
|
||||
"either *supported* is False, or *dynload* is True and "
|
||||
"Blender cannot find the correct library.")},
|
||||
{NULL}
|
||||
{NULL},
|
||||
};
|
||||
|
||||
static PyStructSequence_Desc app_sdl_info_desc = {
|
||||
(char *)"bpy.app.sdl", /* name */
|
||||
(char *)"This module contains information about SDL blender is linked against", /* doc */
|
||||
app_sdl_info_fields, /* fields */
|
||||
ARRAY_SIZE(app_sdl_info_fields) - 1
|
||||
ARRAY_SIZE(app_sdl_info_fields) - 1,
|
||||
};
|
||||
|
||||
static PyObject *make_sdl_info(void)
|
||||
|
||||
@@ -171,7 +171,7 @@ static struct PyMethodDef M_AppTimers_methods[] = {
|
||||
METH_O, bpy_app_timers_unregister_doc},
|
||||
{"is_registered", (PyCFunction)bpy_app_timers_is_registered,
|
||||
METH_O, bpy_app_timers_is_registered_doc},
|
||||
{NULL, NULL, 0, NULL}
|
||||
{NULL, NULL, 0, NULL},
|
||||
};
|
||||
|
||||
static struct PyModuleDef M_AppTimers_module_def = {
|
||||
|
||||
@@ -384,7 +384,7 @@ static PyStructSequence_Desc app_translations_contexts_desc = {
|
||||
(char *)"bpy.app.translations.contexts", /* name */
|
||||
(char *)"This named tuple contains all pre-defined translation contexts", /* doc */
|
||||
app_translations_contexts_fields, /* fields */
|
||||
ARRAY_SIZE(app_translations_contexts_fields) - 1
|
||||
ARRAY_SIZE(app_translations_contexts_fields) - 1,
|
||||
};
|
||||
|
||||
static PyObject *app_translations_contexts_make(void)
|
||||
@@ -435,7 +435,7 @@ static PyMemberDef app_translations_members[] = {
|
||||
app_translations_contexts_doc},
|
||||
{(char *)"contexts_C_to_py", T_OBJECT_EX, offsetof(BlenderAppTranslations, contexts_C_to_py), READONLY,
|
||||
app_translations_contexts_C_to_py_doc},
|
||||
{NULL}
|
||||
{NULL},
|
||||
};
|
||||
|
||||
PyDoc_STRVAR(app_translations_locale_doc,
|
||||
@@ -479,7 +479,7 @@ static PyGetSetDef app_translations_getseters[] = {
|
||||
/* {name, getter, setter, doc, userdata} */
|
||||
{(char *)"locale", (getter)app_translations_locale_get, NULL, app_translations_locale_doc, NULL},
|
||||
{(char *)"locales", (getter)app_translations_locales_get, NULL, app_translations_locales_doc, NULL},
|
||||
{NULL}
|
||||
{NULL},
|
||||
};
|
||||
|
||||
/* pgettext helper. */
|
||||
@@ -657,7 +657,7 @@ static PyMethodDef app_translations_methods[] = {
|
||||
app_translations_pgettext_data_doc},
|
||||
{"locale_explode", (PyCFunction)app_translations_locale_explode, METH_VARARGS | METH_KEYWORDS | METH_STATIC,
|
||||
app_translations_locale_explode_doc},
|
||||
{NULL}
|
||||
{NULL},
|
||||
};
|
||||
|
||||
static PyObject *app_translations_new(PyTypeObject *type, PyObject *UNUSED(args), PyObject *UNUSED(kw))
|
||||
|
||||
@@ -230,7 +230,7 @@ static struct _inittab bpy_internal_modules[] = {
|
||||
#endif
|
||||
{"gpu", BPyInit_gpu},
|
||||
{"idprop", BPyInit_idprop},
|
||||
{NULL, NULL}
|
||||
{NULL, NULL},
|
||||
};
|
||||
|
||||
/* call BPY_context_set first */
|
||||
|
||||
@@ -237,7 +237,7 @@ static PyObject *bpy_msgbus_subscribe_rna(PyObject *UNUSED(self), PyObject *args
|
||||
PyObject *py_options = NULL;
|
||||
EnumPropertyItem py_options_enum[] = {
|
||||
{IS_PERSISTENT, "PERSISTENT", 0, ""},
|
||||
{0, NULL, 0, NULL, NULL}
|
||||
{0, NULL, 0, NULL, NULL},
|
||||
};
|
||||
int options = 0;
|
||||
|
||||
|
||||
@@ -422,7 +422,7 @@ static struct PyMethodDef bpy_ops_methods[] = {
|
||||
{"dir", (PyCFunction) pyop_dir, METH_NOARGS, NULL},
|
||||
{"get_rna_type", (PyCFunction) pyop_getrna_type, METH_O, NULL},
|
||||
{"macro_define", (PyCFunction) PYOP_wrap_macro_define, METH_VARARGS, NULL},
|
||||
{NULL, NULL, 0, NULL}
|
||||
{NULL, NULL, 0, NULL},
|
||||
};
|
||||
|
||||
static struct PyModuleDef bpy_ops_module = {
|
||||
|
||||
@@ -61,7 +61,8 @@ static const EnumPropertyItem property_flag_items[] = {
|
||||
{PROP_LIB_EXCEPTION, "LIBRARY_EDITABLE", 0, "Library Editable", ""},
|
||||
{PROP_PROPORTIONAL, "PROPORTIONAL", 0, "Adjust values proportionally to eachother", ""},
|
||||
{PROP_TEXTEDIT_UPDATE, "TEXTEDIT_UPDATE", 0, "Update on every keystroke in textedit 'mode'", ""},
|
||||
{0, NULL, 0, NULL, NULL}};
|
||||
{0, NULL, 0, NULL, NULL},
|
||||
};
|
||||
|
||||
#define BPY_PROPDEF_OPTIONS_DOC \
|
||||
" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE', 'LIBRARY_EDITABLE', 'PROPORTIONAL'," \
|
||||
@@ -74,7 +75,8 @@ static const EnumPropertyItem property_flag_enum_items[] = {
|
||||
{PROP_ANIMATABLE, "ANIMATABLE", 0, "Animatable", ""},
|
||||
{PROP_LIB_EXCEPTION, "LIBRARY_EDITABLE", 0, "Library Editable", ""},
|
||||
{PROP_ENUM_FLAG, "ENUM_FLAG", 0, "Enum Flag", ""},
|
||||
{0, NULL, 0, NULL, NULL}};
|
||||
{0, NULL, 0, NULL, NULL},
|
||||
};
|
||||
|
||||
#define BPY_PROPDEF_OPTIONS_ENUM_DOC \
|
||||
" :arg options: Enumerator in ['HIDDEN', 'SKIP_SAVE', 'ANIMATABLE', 'ENUM_FLAG', 'LIBRARY_EDITABLE'].\n" \
|
||||
@@ -92,7 +94,8 @@ static const EnumPropertyItem property_subtype_string_items[] = {
|
||||
{PROP_PASSWORD, "PASSWORD", 0, "Password", "A string that is displayed hidden ('********')"},
|
||||
|
||||
{PROP_NONE, "NONE", 0, "None", ""},
|
||||
{0, NULL, 0, NULL, NULL}};
|
||||
{0, NULL, 0, NULL, NULL},
|
||||
};
|
||||
|
||||
#define BPY_PROPDEF_SUBTYPE_STRING_DOC \
|
||||
" :arg subtype: Enumerator in ['FILE_PATH', 'DIR_PATH', 'FILE_NAME', 'BYTE_STRING', 'PASSWORD', 'NONE'].\n" \
|
||||
@@ -108,7 +111,8 @@ static const EnumPropertyItem property_subtype_number_items[] = {
|
||||
{PROP_DISTANCE, "DISTANCE", 0, "Distance", ""},
|
||||
|
||||
{PROP_NONE, "NONE", 0, "None", ""},
|
||||
{0, NULL, 0, NULL, NULL}};
|
||||
{0, NULL, 0, NULL, NULL},
|
||||
};
|
||||
|
||||
#define BPY_PROPDEF_SUBTYPE_NUMBER_DOC \
|
||||
" :arg subtype: Enumerator in ['PIXEL', 'UNSIGNED', 'PERCENTAGE', 'FACTOR', 'ANGLE', 'TIME', 'DISTANCE', 'NONE'].\n" \
|
||||
@@ -130,7 +134,8 @@ static const EnumPropertyItem property_subtype_array_items[] = {
|
||||
{PROP_LAYER_MEMBER, "LAYER_MEMBER", 0, "Layer Member", ""},
|
||||
|
||||
{PROP_NONE, "NONE", 0, "None", ""},
|
||||
{0, NULL, 0, NULL, NULL}};
|
||||
{0, NULL, 0, NULL, NULL},
|
||||
};
|
||||
|
||||
#define BPY_PROPDEF_SUBTYPE_ARRAY_DOC \
|
||||
" :arg subtype: Enumerator in ['COLOR', 'TRANSLATION', 'DIRECTION', " \
|
||||
@@ -3175,7 +3180,7 @@ static struct PyMethodDef props_methods[] = {
|
||||
{"CollectionProperty", (PyCFunction)BPy_CollectionProperty, METH_VARARGS | METH_KEYWORDS, BPy_CollectionProperty_doc},
|
||||
|
||||
{"RemoveProperty", (PyCFunction)BPy_RemoveProperty, METH_VARARGS | METH_KEYWORDS, BPy_RemoveProperty_doc},
|
||||
{NULL, NULL, 0, NULL}
|
||||
{NULL, NULL, 0, NULL},
|
||||
};
|
||||
|
||||
static struct PyModuleDef props_module = {
|
||||
|
||||
@@ -5259,7 +5259,7 @@ static struct PyMethodDef pyrna_struct_methods[] = {
|
||||
{"callback_add", (PyCFunction)pyrna_callback_classmethod_add, METH_VARARGS | METH_CLASS, NULL},
|
||||
{"callback_remove", (PyCFunction)pyrna_callback_classmethod_remove, METH_VARARGS | METH_CLASS, NULL},
|
||||
#endif
|
||||
{NULL, NULL, 0, NULL}
|
||||
{NULL, NULL, 0, NULL},
|
||||
};
|
||||
|
||||
static struct PyMethodDef pyrna_prop_methods[] = {
|
||||
@@ -5267,7 +5267,7 @@ static struct PyMethodDef pyrna_prop_methods[] = {
|
||||
{"as_bytes", (PyCFunction)pyrna_prop_as_bytes, METH_NOARGS, pyrna_prop_as_bytes_doc},
|
||||
{"update", (PyCFunction)pyrna_prop_update, METH_NOARGS, pyrna_prop_update_doc},
|
||||
{"__dir__", (PyCFunction)pyrna_prop_dir, METH_NOARGS, NULL},
|
||||
{NULL, NULL, 0, NULL}
|
||||
{NULL, NULL, 0, NULL},
|
||||
};
|
||||
|
||||
static struct PyMethodDef pyrna_prop_array_methods[] = {
|
||||
@@ -5284,7 +5284,7 @@ static struct PyMethodDef pyrna_prop_collection_methods[] = {
|
||||
|
||||
{"get", (PyCFunction)pyrna_prop_collection_get, METH_VARARGS, pyrna_prop_collection_get_doc},
|
||||
{"find", (PyCFunction)pyrna_prop_collection_find, METH_O, pyrna_prop_collection_find_doc},
|
||||
{NULL, NULL, 0, NULL}
|
||||
{NULL, NULL, 0, NULL},
|
||||
};
|
||||
|
||||
static struct PyMethodDef pyrna_prop_collection_idprop_methods[] = {
|
||||
@@ -5292,7 +5292,7 @@ static struct PyMethodDef pyrna_prop_collection_idprop_methods[] = {
|
||||
{"remove", (PyCFunction)pyrna_prop_collection_idprop_remove, METH_O, NULL},
|
||||
{"clear", (PyCFunction)pyrna_prop_collection_idprop_clear, METH_NOARGS, NULL},
|
||||
{"move", (PyCFunction)pyrna_prop_collection_idprop_move, METH_VARARGS, NULL},
|
||||
{NULL, NULL, 0, NULL}
|
||||
{NULL, NULL, 0, NULL},
|
||||
};
|
||||
|
||||
/* only needed for subtyping, so a new class gets a valid BPy_StructRNA
|
||||
@@ -7181,7 +7181,7 @@ static PyObject *pyrna_unregister_class(PyObject *self, PyObject *py_class);
|
||||
|
||||
static struct PyMethodDef pyrna_basetype_methods[] = {
|
||||
{"__dir__", (PyCFunction)pyrna_basetype_dir, METH_NOARGS, ""},
|
||||
{NULL, NULL, 0, NULL}
|
||||
{NULL, NULL, 0, NULL},
|
||||
};
|
||||
|
||||
/* used to call ..._keys() direct, but we need to filter out operator subclasses */
|
||||
@@ -8494,7 +8494,7 @@ static struct BPyRNA_CallBack pyrna_cb_methods[] = {
|
||||
|
||||
{{"draw_cursor_add", (PyCFunction)pyrna_callback_classmethod_add, METH_VARARGS | METH_STATIC, ""}, &RNA_WindowManager},
|
||||
{{"draw_cursor_remove", (PyCFunction)pyrna_callback_classmethod_remove, METH_VARARGS | METH_STATIC, ""}, &RNA_WindowManager},
|
||||
{{NULL, NULL, 0, NULL}, NULL}
|
||||
{{NULL, NULL, 0, NULL}, NULL},
|
||||
};
|
||||
|
||||
void BPY_rna_register_cb(void)
|
||||
|
||||
@@ -55,7 +55,7 @@ static const EnumPropertyItem region_draw_mode_items[] = {
|
||||
{REGION_DRAW_POST_PIXEL, "POST_PIXEL", 0, "Post Pixel", ""},
|
||||
{REGION_DRAW_POST_VIEW, "POST_VIEW", 0, "Post View", ""},
|
||||
{REGION_DRAW_PRE_VIEW, "PRE_VIEW", 0, "Pre View", ""},
|
||||
{0, NULL, 0, NULL, NULL}
|
||||
{0, NULL, 0, NULL, NULL},
|
||||
};
|
||||
|
||||
static void cb_region_draw(const bContext *C, ARegion *UNUSED(ar), void *customdata)
|
||||
|
||||
@@ -155,7 +155,7 @@ static struct PyMethodDef bpy_utils_previews_methods[] = {
|
||||
{"new", (PyCFunction)bpy_utils_previews_new, METH_VARARGS, bpy_utils_previews_new_doc},
|
||||
{"load", (PyCFunction)bpy_utils_previews_load, METH_VARARGS, bpy_utils_previews_load_doc},
|
||||
{"release", (PyCFunction)bpy_utils_previews_release, METH_VARARGS, bpy_utils_previews_release_doc},
|
||||
{NULL, NULL, 0, NULL}
|
||||
{NULL, NULL, 0, NULL},
|
||||
};
|
||||
|
||||
PyDoc_STRVAR(bpy_utils_previews_doc,
|
||||
|
||||
@@ -75,13 +75,13 @@ static PyStructSequence_Desc bpyunits_systems_desc = {
|
||||
(char *)"bpy.utils.units.systems", /* name */
|
||||
(char *)"This named tuple contains all pre-defined unit systems", /* doc */
|
||||
bpyunits_systems_fields, /* fields */
|
||||
ARRAY_SIZE(bpyunits_systems_fields) - 1
|
||||
ARRAY_SIZE(bpyunits_systems_fields) - 1,
|
||||
};
|
||||
static PyStructSequence_Desc bpyunits_categories_desc = {
|
||||
(char *)"bpy.utils.units.categories", /* name */
|
||||
(char *)"This named tuple contains all pre-defined unit names", /* doc */
|
||||
bpyunits_categories_fields, /* fields */
|
||||
ARRAY_SIZE(bpyunits_categories_fields) - 1
|
||||
ARRAY_SIZE(bpyunits_categories_fields) - 1,
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user