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:
-rw-r--r--build_files/buildbot/slave_compile.py4
-rw-r--r--intern/cycles/blender/addon/properties.py2
-rw-r--r--intern/cycles/blender/addon/ui.py18
-rw-r--r--release/scripts/modules/bl_i18n_utils/bl_extract_messages.py2
-rw-r--r--release/scripts/modules/bl_i18n_utils/settings.py6
-rw-r--r--release/scripts/modules/bl_i18n_utils/utils.py2
-rw-r--r--release/scripts/modules/bpy_extras/anim_utils.py2
-rw-r--r--release/scripts/modules/bpy_types.py14
-rw-r--r--release/scripts/modules/console/complete_import.py9
-rw-r--r--release/scripts/startup/bl_operators/node.py6
-rw-r--r--release/scripts/startup/bl_operators/rigidbody.py6
-rw-r--r--release/scripts/startup/bl_operators/wm.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_paint_common.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_render.py4
-rw-r--r--release/scripts/startup/bl_ui/space_image.py2
-rw-r--r--release/scripts/startup/bl_ui/space_nla.py2
-rw-r--r--release/scripts/startup/bl_ui/space_node.py6
-rw-r--r--release/scripts/startup/bl_ui/space_view3d_toolbar.py4
-rw-r--r--source/blender/blenkernel/intern/seqeffects.c8
-rw-r--r--source/blender/bmesh/operators/bmo_create.c2
-rw-r--r--source/blender/editors/space_node/node_select.c7
-rw-r--r--source/blender/windowmanager/intern/wm_init_exit.c2
22 files changed, 59 insertions, 53 deletions
diff --git a/build_files/buildbot/slave_compile.py b/build_files/buildbot/slave_compile.py
index caa4acc4ecd..a8fc05829fb 100644
--- a/build_files/buildbot/slave_compile.py
+++ b/build_files/buildbot/slave_compile.py
@@ -156,9 +156,9 @@ else:
if builder.find('win') != -1:
dlls = ('msvcm90.dll', 'msvcp90.dll', 'msvcr90.dll', 'vcomp90.dll', 'Microsoft.VC90.CRT.manifest', 'Microsoft.VC90.OpenMP.manifest')
if builder.find('win64') == -1:
- dlls_path = 'C:\\b\\redist\\x86'
+ dlls_path = 'C:\\b\\redist\\x86'
else:
- dlls_path = 'C:\\b\\redist\\amd64'
+ dlls_path = 'C:\\b\\redist\\amd64'
for dll in dlls:
shutil.copyfile(os.path.join(dlls_path, dll), os.path.join(install_dir, dll))
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index 09db010363e..039fd39fc7d 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -416,7 +416,7 @@ class CyclesCameraSettings(bpy.types.PropertyGroup):
default=0.0,
step=1,
precision=4,
- subtype = 'DISTANCE'
+ subtype='DISTANCE',
)
cls.aperture_blades = IntProperty(
name="Aperture Blades",
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index aa489a297e7..4c3061e13a9 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -219,7 +219,7 @@ class CyclesRender_PT_performance(CyclesButtonsPanel, Panel):
sub.label(text="Final Render:")
sub.prop(rd, "use_persistent_data", text="Persistent Images")
-
+
class CyclesRender_PT_opengl(CyclesButtonsPanel, Panel):
bl_label = "OpenGL Render"
bl_options = {'DEFAULT_CLOSED'}
@@ -230,18 +230,18 @@ class CyclesRender_PT_opengl(CyclesButtonsPanel, Panel):
rd = context.scene.render
split = layout.split()
-
+
col = split.column()
col.prop(rd, "use_antialiasing")
sub = col.row()
sub.active = rd.use_antialiasing
sub.prop(rd, "antialiasing_samples", expand=True)
-
+
col = split.column()
col.label(text="Alpha:")
col.prop(rd, "alpha_mode", text="")
-
-
+
+
class CyclesRender_PT_layers(CyclesButtonsPanel, Panel):
bl_label = "Layers"
bl_options = {'DEFAULT_CLOSED'}
@@ -872,8 +872,8 @@ class CyclesTexture_PT_context(CyclesButtonsPanel, Panel):
split = layout.split(percentage=0.2)
split.label(text="Type:")
split.prop(tex, "type", text="")
-
-
+
+
class CyclesTexture_PT_node(CyclesButtonsPanel, Panel):
bl_label = "Node"
bl_context = "texture"
@@ -902,7 +902,7 @@ class CyclesTexture_PT_mapping(CyclesButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
-
+
node = context.texture_node
mapping = node.texture_mapping
@@ -934,7 +934,7 @@ class CyclesTexture_PT_colors(CyclesButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
-
+
node = context.texture_node
mapping = node.color_mapping
diff --git a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
index 2229f267468..26b6845530d 100644
--- a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
+++ b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
@@ -446,7 +446,7 @@ def dump_py_messages_from_files(msgs, reports, files, settings):
nds_ls.extend(nds)
ret = _extract_string_merge(estr_ls, nds_ls)
return ret
-
+
def extract_strings_split(node):
"""
Returns a list args as returned by 'extract_strings()', But split into groups based on separate_nodes, this way
diff --git a/release/scripts/modules/bl_i18n_utils/settings.py b/release/scripts/modules/bl_i18n_utils/settings.py
index 31e457151bb..832adc80934 100644
--- a/release/scripts/modules/bl_i18n_utils/settings.py
+++ b/release/scripts/modules/bl_i18n_utils/settings.py
@@ -240,7 +240,7 @@ PYGETTEXT_KEYWORDS = (() +
for it in ("IFACE_", "TIP_", "DATA_", "N_")) +
tuple((r"{}\(\s*" + _ctxt_re + r"\s*,\s*" + _msg_re + r"\s*\)").format(it)
- for it in ("CTX_IFACE_", "CTX_TIP_", "CTX_DATA_", "CTX_N_")) +
+ for it in ("CTX_IFACE_", "CTX_TIP_", "CTX_DATA_", "CTX_N_")) +
tuple(("{}\\((?:[^\"',]+,){{1,2}}\\s*" + _msg_re + r"\s*(?:\)|,)").format(it)
for it in ("BKE_report", "BKE_reportf", "BKE_reports_prepend", "BKE_reports_prependf",
@@ -252,7 +252,7 @@ PYGETTEXT_KEYWORDS = (() +
tuple(("{}\\((?:[^\"',]+,)\\s*" + _msg_re + r"\s*(?:\)|,)").format(it)
for it in ("modifier_setError",)) +
- tuple((r"{}\(\s*" + _msg_re + r"\s*,\s*(?:" + \
+ tuple((r"{}\(\s*" + _msg_re + r"\s*,\s*(?:" +
r"\s*,\s*)?(?:".join(_ctxt_re_gen(i) for i in range(PYGETTEXT_MAX_MULTI_CTXT)) + r")?\s*\)").format(it)
for it in ("BLF_I18N_MSGID_MULTI_CTXT",))
)
@@ -354,7 +354,7 @@ PARSER_PY_ID = "__PY__"
PARSER_PY_MARKER_BEGIN = "\n# ##### BEGIN AUTOGENERATED I18N SECTION #####\n"
PARSER_PY_MARKER_END = "\n# ##### END AUTOGENERATED I18N SECTION #####\n"
-PARSER_MAX_FILE_SIZE = 2**24 # in bytes, i.e. 16 Mb.
+PARSER_MAX_FILE_SIZE = 2 ** 24 # in bytes, i.e. 16 Mb.
###############################################################################
# PATHS
diff --git a/release/scripts/modules/bl_i18n_utils/utils.py b/release/scripts/modules/bl_i18n_utils/utils.py
index 4ab92880bde..5e9464b782a 100644
--- a/release/scripts/modules/bl_i18n_utils/utils.py
+++ b/release/scripts/modules/bl_i18n_utils/utils.py
@@ -173,7 +173,7 @@ class I18nMessage:
self.comment_lines.remove(l)
lines_src = []
lines_src_custom = []
- for src in sources:
+ for src in sources:
if is_valid_po_path(src):
lines_src.append(self.settings.PO_COMMENT_PREFIX_SOURCE + src)
else:
diff --git a/release/scripts/modules/bpy_extras/anim_utils.py b/release/scripts/modules/bpy_extras/anim_utils.py
index 20a9a412f26..de702b53978 100644
--- a/release/scripts/modules/bpy_extras/anim_utils.py
+++ b/release/scripts/modules/bpy_extras/anim_utils.py
@@ -169,7 +169,7 @@ def bake_action(frame_start,
euler_prev = None
for (f, matrix) in zip(frame_range, obj_info):
- name = "Action Bake" # XXX: placeholder
+ name = "Action Bake" # XXX: placeholder
obj.matrix_basis = matrix
obj.keyframe_insert("location", -1, f, name, options)
diff --git a/release/scripts/modules/bpy_types.py b/release/scripts/modules/bpy_types.py
index f42fd8e3107..85a532e9a27 100644
--- a/release/scripts/modules/bpy_types.py
+++ b/release/scripts/modules/bpy_types.py
@@ -729,6 +729,7 @@ class Menu(StructRNA, _GenericUI, metaclass=RNAMeta):
self.preset_operator,
filter_ext=lambda ext: ext.lower() in {".py", ".xml"})
+
class Region(StructRNA):
__slots__ = ()
@@ -782,9 +783,11 @@ def gen_valid_identifier(seq):
if ch == '_' or ch.isalpha() or ch.isdigit():
yield ch
+
def sanitize_identifier(name):
return ''.join(gen_valid_identifier(name))
+
def unique_identifier(name, identifier_list):
# First some basic sanitation, to make a usable identifier string from the name
base = sanitize_identifier(name)
@@ -796,6 +799,7 @@ def unique_identifier(name, identifier_list):
identifier = base + str(index)
return identifier
+
class RNAMetaNode(RNAMetaPropGroup):
def __new__(cls, name, bases, classdict, **args):
# Wrapper for node.init, to add sockets from templates
@@ -846,7 +850,7 @@ class Node(StructRNA, metaclass=RNAMetaNode):
@classmethod
def poll(cls, ntree):
- return True
+ return True
class NodeSocket(StructRNA, metaclass=RNAMetaPropGroup):
@@ -870,17 +874,18 @@ class CompositorNode(Node):
@classmethod
def poll(cls, ntree):
- return ntree.bl_idname == 'CompositorNodeTree'
+ return ntree.bl_idname == 'CompositorNodeTree'
def update(self):
self.tag_need_exec()
+
class ShaderNode(Node):
__slots__ = ()
@classmethod
def poll(cls, ntree):
- return ntree.bl_idname == 'ShaderNodeTree'
+ return ntree.bl_idname == 'ShaderNodeTree'
class TextureNode(Node):
@@ -888,5 +893,4 @@ class TextureNode(Node):
@classmethod
def poll(cls, ntree):
- return ntree.bl_idname == 'TextureNodeTree'
-
+ return ntree.bl_idname == 'TextureNodeTree'
diff --git a/release/scripts/modules/console/complete_import.py b/release/scripts/modules/console/complete_import.py
index 9277e04af76..f28f61b303d 100644
--- a/release/scripts/modules/console/complete_import.py
+++ b/release/scripts/modules/console/complete_import.py
@@ -111,10 +111,11 @@ def module_list(path):
else:
folder_list = []
#folder_list = glob.glob(os.path.join(path,'*'))
- folder_list = [p for p in folder_list \
- if os.path.exists(os.path.join(path, p, '__init__.py')) \
- or p[-3:] in {'.py', '.so'} \
- or p[-4:] in {'.pyc', '.pyo', '.pyd'}]
+ folder_list = [
+ p for p in folder_list
+ if (os.path.exists(os.path.join(path, p, '__init__.py')) or
+ p[-3:] in {'.py', '.so'} or
+ p[-4:] in {'.pyc', '.pyo', '.pyd'})]
folder_list = [os.path.basename(p).split('.')[0] for p in folder_list]
return folder_list
diff --git a/release/scripts/startup/bl_operators/node.py b/release/scripts/startup/bl_operators/node.py
index 5c7f3c3f4b2..c9063436bb3 100644
--- a/release/scripts/startup/bl_operators/node.py
+++ b/release/scripts/startup/bl_operators/node.py
@@ -127,7 +127,8 @@ def node_class_items_iter(node_class, context):
tree_idname = context.space_data.edit_tree.bl_idname
for group in bpy.data.node_groups:
if group.bl_idname == tree_idname:
- yield (group.name, "", {"node_tree":group}) # XXX empty string should be replaced by description from tree
+ # XXX empty string should be replaced by description from tree
+ yield (group.name, "", {"node_tree": group})
else:
yield (node_class.bl_rna.name, node_class.bl_rna.description, {})
@@ -169,7 +170,7 @@ class NODE_OT_add_search(NodeAddOperator, Operator):
for index, item in enumerate(node_items_iter(context)):
if str(index) == self.type:
node = self.create_node(context, item[0].bl_rna.identifier)
- for prop,value in item[3].items():
+ for prop, value in item[3].items():
setattr(node, prop, value)
break
return {'FINISHED'}
@@ -257,4 +258,3 @@ class NODE_OT_tree_path_parent(Operator):
space.path.pop()
return {'FINISHED'}
-
diff --git a/release/scripts/startup/bl_operators/rigidbody.py b/release/scripts/startup/bl_operators/rigidbody.py
index f327c602fb6..80516a85d43 100644
--- a/release/scripts/startup/bl_operators/rigidbody.py
+++ b/release/scripts/startup/bl_operators/rigidbody.py
@@ -146,7 +146,7 @@ class BakeToKeyframes(Operator):
# this is a little roundabout but there's no better way right now
aa = mat.to_quaternion().to_axis_angle()
obj.rotation_axis_angle = (aa[1], ) + aa[0][:]
- else: # euler
+ else: # euler
# make sure euler rotation is compatible to previous frame
obj.rotation_euler = mat.to_euler(rot_mode, obj_prev.rotation_euler)
@@ -275,10 +275,10 @@ class ConnectRigidBodies(Operator):
self._add_constraint(context, objs_sorted[i-1], objs_sorted[i])
change = True
- else: # SELECTED_TO_ACTIVE
+ else: # SELECTED_TO_ACTIVE
for obj in objects:
self._add_constraint(context, obj_act, obj)
- change = True;
+ change = True
if change:
# restore selection
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index bb17f5979be..660faecc564 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -830,7 +830,7 @@ def _wm_doc_get_id(doc_id, do_url=True, url_prefix=""):
rna = "bpy.ops.%s.%s" % (class_name, class_prop)
else:
rna_class = getattr(bpy.types, class_name)
-
+
# an operator setting (selected from a running operator), rare case
# note: Py defined operators are subclass of Operator,
# C defined operators are subclass of OperatorProperties.
diff --git a/release/scripts/startup/bl_ui/properties_paint_common.py b/release/scripts/startup/bl_ui/properties_paint_common.py
index 17dcf267c3b..391874ea3dc 100644
--- a/release/scripts/startup/bl_ui/properties_paint_common.py
+++ b/release/scripts/startup/bl_ui/properties_paint_common.py
@@ -93,7 +93,7 @@ def brush_texture_settings(layout, brush, sculpt):
col.prop(brush, "texture_angle_source_random", text="")
else:
col.prop(brush, "texture_angle_source_no_random", text="")
-
+
else:
col.prop(brush, "texture_angle_source_random", text="")
else:
diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py
index b5de3701b49..dc9b5e99788 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -474,12 +474,12 @@ class RENDER_PT_output(RenderButtonsPanel, Panel):
layout.prop(rd, "filepath", text="")
split = layout.split()
-
+
col = split.column()
col.active = not rd.is_movie_format
col.prop(rd, "use_overwrite")
col.prop(rd, "use_placeholder")
-
+
split.prop(rd, "use_file_extension")
layout.template_image_settings(image_settings, color_management=False)
diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py
index d2bbca358aa..f4896cb2648 100644
--- a/release/scripts/startup/bl_ui/space_image.py
+++ b/release/scripts/startup/bl_ui/space_image.py
@@ -778,7 +778,7 @@ class IMAGE_PT_paint_stroke(BrushButtonsPanel, Panel):
toolsettings = context.tool_settings.image_paint
brush = toolsettings.brush
-
+
col = layout.column()
col.prop(toolsettings, "input_samples")
diff --git a/release/scripts/startup/bl_ui/space_nla.py b/release/scripts/startup/bl_ui/space_nla.py
index 49dedaa83c5..dd3ec33d56b 100644
--- a/release/scripts/startup/bl_ui/space_nla.py
+++ b/release/scripts/startup/bl_ui/space_nla.py
@@ -167,7 +167,7 @@ class NLA_MT_add(Menu):
layout.separator()
layout.operator("nla.tracks_add").above_selected = False
layout.operator("nla.tracks_add", text="Add Tracks Above Selected").above_selected = True
-
+
layout.separator()
layout.operator("nla.selected_objects_add")
diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py
index 6e92b55f88c..26c76bd6655 100644
--- a/release/scripts/startup/bl_ui/space_node.py
+++ b/release/scripts/startup/bl_ui/space_node.py
@@ -44,7 +44,7 @@ class NODE_HT_header(Header):
row.menu("NODE_MT_node")
layout.prop(snode, "tree_type", text="", expand=True)
-
+
if snode.tree_type == 'ShaderNodeTree':
if scene.render.use_shading_nodes:
layout.prop(snode, "shader_type", text="", expand=True)
@@ -84,7 +84,7 @@ class NODE_HT_header(Header):
row = layout.row(align=True)
row.prop(snode, "backdrop_channels", text="", expand=True)
layout.prop(snode, "use_auto_render")
-
+
else:
# Custom node tree is edited as independent ID block
layout.template_ID(snode, "node_tree", new="node.new_node_tree")
@@ -292,7 +292,7 @@ class NODE_UL_interface_sockets(bpy.types.UIList):
if self.layout_type in {'DEFAULT', 'COMPACT'}:
row = layout.row(align=True)
- # inputs get icon on the left
+ # inputs get icon on the left
if socket.in_out == 'IN':
row.template_node_socket(color)
diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 54d3b61c665..63c8365dd67 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -1180,7 +1180,7 @@ class VIEW3D_PT_tools_projectpaint(View3DPanel, Panel):
row = layout.row()
row.prop(ipaint, "use_normal_falloff")
-
+
sub = row.row()
sub.active = (ipaint.use_normal_falloff)
sub.prop(ipaint, "normal_angle", text="")
@@ -1214,7 +1214,7 @@ class VIEW3D_PT_tools_projectpaint(View3DPanel, Panel):
col.operator("paint.project_image", text="Apply Camera Image")
col.operator("image.save_dirty", text="Save All Edited")
-
+
class VIEW3D_PT_imagepaint_options(View3DPaintPanel):
bl_label = "Options"
diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c
index b6b4501ca5a..5bae967165c 100644
--- a/source/blender/blenkernel/intern/seqeffects.c
+++ b/source/blender/blenkernel/intern/seqeffects.c
@@ -970,7 +970,7 @@ static void do_sub_effect_byte(float facf0, float facf1, int x, int y, unsigned
tempc[2] = max_ff(rt1[2] - fac1 * rt2[2], 0.0f);
tempc[3] = max_ff(rt1[3] - fac1 * rt2[3], 0.0f);
- if (tempc[3] < 1e-6)
+ if (tempc[3] < 1e-6f)
tempc[3] = 0.0f;
premul_float_to_straight_uchar(rt, tempc);
@@ -992,7 +992,7 @@ static void do_sub_effect_byte(float facf0, float facf1, int x, int y, unsigned
tempc[2] = max_ff(rt1[2] - fac3 * rt2[2], 0.0f);
tempc[3] = max_ff(rt1[3] - fac3 * rt2[3], 0.0f);
- if (tempc[3] < 1e-6)
+ if (tempc[3] < 1e-6f)
tempc[3] = 0.0f;
premul_float_to_straight_uchar(rt, tempc);
@@ -1024,7 +1024,7 @@ static void do_sub_effect_float(float facf0, float facf1, int x, int y, float *r
rt[2] = max_ff(rt1[2] - fac1 * rt2[2], 0.0f);
rt[3] = max_ff(rt1[3] - fac1 * rt2[3], 0.0f);
- if (rt[3] < 1e-6)
+ if (rt[3] < 1e-6f)
rt[3] = 0.0f;
rt1 += 4; rt2 += 4; rt += 4;
@@ -1041,7 +1041,7 @@ static void do_sub_effect_float(float facf0, float facf1, int x, int y, float *r
rt[2] = max_ff(rt1[2] - fac3 * rt2[2], 0.0f);
rt[3] = max_ff(rt1[3] - fac3 * rt2[3], 0.0f);
- if (rt[3] < 1e-6)
+ if (rt[3] < 1e-6f)
rt[3] = 0.0f;
rt1 += 4; rt2 += 4; rt += 4;
diff --git a/source/blender/bmesh/operators/bmo_create.c b/source/blender/bmesh/operators/bmo_create.c
index e83cc8ae3ea..b8b78aab277 100644
--- a/source/blender/bmesh/operators/bmo_create.c
+++ b/source/blender/bmesh/operators/bmo_create.c
@@ -109,7 +109,7 @@ void bmo_contextual_create_exec(BMesh *bm, BMOperator *op)
else ok = false; /* only ever want one of these */
}
else if (tot_edges == 1) {
- if (v_a == NULL) v_a = v;
+ if (v_a == NULL) v_a = v;
else if (v_b == NULL) v_b = v;
else ok = false; /* only ever want 2 of these */
}
diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c
index cdb89a66867..62537fb713f 100644
--- a/source/blender/editors/space_node/node_select.c
+++ b/source/blender/editors/space_node/node_select.c
@@ -823,9 +823,10 @@ static int node_select_same_type_step_exec(bContext *C, wmOperator *op)
/* is note outside view? */
if (active->totr.xmax < ar->v2d.cur.xmin || active->totr.xmin > ar->v2d.cur.xmax ||
- active->totr.ymax < ar->v2d.cur.ymin || active->totr.ymin > ar->v2d.cur.ymax)
- space_node_view_flag(C, snode, CTX_wm_region(C), NODE_SELECT);
-
+ active->totr.ymax < ar->v2d.cur.ymin || active->totr.ymin > ar->v2d.cur.ymax)
+ {
+ space_node_view_flag(C, snode, CTX_wm_region(C), NODE_SELECT);
+ }
}
if (node_array)
diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c
index 67b0f920662..193af2f92c6 100644
--- a/source/blender/windowmanager/intern/wm_init_exit.c
+++ b/source/blender/windowmanager/intern/wm_init_exit.c
@@ -229,7 +229,7 @@ void WM_init(bContext *C, int argc, const char **argv)
* however python is not initialized when called from this function.
*
* unlikey any handlers are set but its possible,
- * note that recovering the last session does its own callbacks callbacks. */
+ * note that recovering the last session does its own callbacks. */
BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_LOAD_POST);
}
}