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:
Diffstat (limited to 'source/blender/blenkernel/intern/blender.c')
-rw-r--r--source/blender/blenkernel/intern/blender.c52
1 files changed, 33 insertions, 19 deletions
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c
index 70ab52828f2..e8aa13a8beb 100644
--- a/source/blender/blenkernel/intern/blender.c
+++ b/source/blender/blenkernel/intern/blender.c
@@ -66,7 +66,7 @@
Global G;
UserDef U;
-char versionstr[48] = "";
+static char blender_version_string[48] = "";
/* ********** free ********** */
@@ -102,26 +102,43 @@ void BKE_blender_free(void)
free_nodesystem();
}
-void BKE_blender_version_string(char *version_str,
- size_t maxncpy,
- short version,
- short subversion,
- bool v_prefix,
- bool include_subversion)
+static void blender_version_init(void)
{
- const char *prefix = v_prefix ? "v" : "";
-
- if (include_subversion && subversion > 0) {
- BLI_snprintf(
- version_str, maxncpy, "%s%d.%02d.%d", prefix, version / 100, version % 100, subversion);
+ const char *version_cycle = "";
+ if (STREQ(STRINGIFY(BLENDER_VERSION_CYCLE), "alpha")) {
+ version_cycle = " Alpha";
+ }
+ else if (STREQ(STRINGIFY(BLENDER_VERSION_CYCLE), "beta")) {
+ version_cycle = " Beta";
+ }
+ else if (STREQ(STRINGIFY(BLENDER_VERSION_CYCLE), "rc")) {
+ version_cycle = " Release Candidate";
+ }
+ else if (STREQ(STRINGIFY(BLENDER_VERSION_CYCLE), "release")) {
+ version_cycle = "";
}
else {
- BLI_snprintf(version_str, maxncpy, "%s%d.%02d", prefix, version / 100, version % 100);
+ BLI_assert(!"Invalid Blender version cycle");
}
+
+ BLI_snprintf(blender_version_string,
+ ARRAY_SIZE(blender_version_string),
+ "%d.%02d.%d%s",
+ BLENDER_VERSION / 100,
+ BLENDER_VERSION % 100,
+ BLENDER_VERSION_PATCH,
+ version_cycle);
+}
+
+const char *BKE_blender_version_string(void)
+{
+ return blender_version_string;
}
void BKE_blender_globals_init(void)
{
+ blender_version_init();
+
memset(&G, 0, sizeof(Global));
U.savetime = 1;
@@ -130,9 +147,6 @@ void BKE_blender_globals_init(void)
strcpy(G.ima, "//");
- BKE_blender_version_string(
- versionstr, sizeof(versionstr), BLENDER_VERSION, BLENDER_SUBVERSION, true, true);
-
#ifndef WITH_PYTHON_SECURITY /* default */
G.f |= G_FLAG_SCRIPT_AUTOEXEC;
#else
@@ -182,7 +196,7 @@ static void userdef_free_keymaps(UserDef *userdef)
{
for (wmKeyMap *km = userdef->user_keymaps.first, *km_next; km; km = km_next) {
km_next = km->next;
- for (wmKeyMapDiffItem *kmdi = km->diff_items.first; kmdi; kmdi = kmdi->next) {
+ LISTBASE_FOREACH (wmKeyMapDiffItem *, kmdi, &km->diff_items) {
if (kmdi->add_item) {
keymap_item_free(kmdi->add_item);
MEM_freeN(kmdi->add_item);
@@ -193,7 +207,7 @@ static void userdef_free_keymaps(UserDef *userdef)
}
}
- for (wmKeyMapItem *kmi = km->items.first; kmi; kmi = kmi->next) {
+ LISTBASE_FOREACH (wmKeyMapItem *, kmi, &km->items) {
keymap_item_free(kmi);
}
@@ -250,7 +264,7 @@ void BKE_blender_userdef_data_free(UserDef *userdef, bool clear_fonts)
userdef_free_addons(userdef);
if (clear_fonts) {
- for (uiFont *font = userdef->uifonts.first; font; font = font->next) {
+ LISTBASE_FOREACH (uiFont *, font, &userdef->uifonts) {
BLF_unload_id(font->blf_id);
}
BLF_default_set(-1);