Cleanup: spelling
This commit is contained in:
@@ -371,7 +371,7 @@ void *BLI_mempool_calloc(BLI_mempool *pool)
|
||||
/**
|
||||
* Free an element from the mempool.
|
||||
*
|
||||
* \note doesnt protect against double frees, don't be stupid!
|
||||
* \note doesn't protect against double frees, take care!
|
||||
*/
|
||||
void BLI_mempool_free(BLI_mempool *pool, void *addr)
|
||||
{
|
||||
|
||||
@@ -61,7 +61,7 @@ void BLI_movelisttolist(ListBase *dst, ListBase *src)
|
||||
}
|
||||
|
||||
/**
|
||||
* moves the entire contents of \a src at the begining of \a dst.
|
||||
* moves the entire contents of \a src at the beginning of \a dst.
|
||||
*/
|
||||
void BLI_movelisttolist_reverse(ListBase *dst, ListBase *src)
|
||||
{
|
||||
|
||||
@@ -1811,7 +1811,7 @@ void blend_m4_m4m4(float out[4][4], const float dst[4][4], const float src[4][4]
|
||||
*
|
||||
* \note This code is about five times slower as the 'naive' interpolation done by #blend_m3_m3m3
|
||||
* (it typically remains below 2 usec on an average i74700, while #blend_m3_m3m3 remains below 0.4 usec).
|
||||
* However, it gives expected results even with non-uniformaly scaled matrices, see T46418 for an example.
|
||||
* However, it gives expected results even with non-uniformly scaled matrices, see T46418 for an example.
|
||||
*
|
||||
* Based on "Matrix Animation and Polar Decomposition", by Ken Shoemake & Tom Duff
|
||||
*
|
||||
|
||||
@@ -1626,11 +1626,13 @@ bool BLI_ensure_filename(char *filepath, size_t maxlen, const char *filename)
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Converts "/foo/bar.txt" to "/foo/" and "bar.txt"
|
||||
* - wont change 'string'
|
||||
* - wont create any directories
|
||||
* - dosnt use CWD, or deal with relative paths.
|
||||
* - Only fill's in *dir and *file when they are non NULL
|
||||
/**
|
||||
* Converts `/foo/bar.txt` to "/foo/" and `bar.txt`
|
||||
*
|
||||
* - Wont change \a string.
|
||||
* - Wont create any directories.
|
||||
* - Doesn't use CWD, or deal with relative paths.
|
||||
* - Only fill's in \a dir and \a file when they are non NULL.
|
||||
* */
|
||||
void BLI_split_dirfile(const char *string, char *dir, char *file, const size_t dirlen, const size_t filelen)
|
||||
{
|
||||
|
||||
@@ -839,7 +839,7 @@ void BLI_threaded_malloc_begin(void)
|
||||
unsigned int level = atomic_fetch_and_add_u(&thread_levels, 1);
|
||||
if (level == 0) {
|
||||
MEM_set_lock_callback(BLI_lock_malloc_thread, BLI_unlock_malloc_thread);
|
||||
/* There is a little chance that two threads will meed to acces to a
|
||||
/* There is a little chance that two threads will need to access to a
|
||||
* scheduler which was not yet created from main thread. which could
|
||||
* cause scheduler created multiple times.
|
||||
*/
|
||||
@@ -874,10 +874,10 @@ static bool check_is_threadripper2_alike_topology(void)
|
||||
return false;
|
||||
}
|
||||
if (strstr(cpu_brand, "Threadripper")) {
|
||||
/* NOTE: We consinder all Threadrippers having similar topology to
|
||||
/* NOTE: We consider all Thread-rippers having similar topology to
|
||||
* the second one. This is because we are trying to utilize NUMA node
|
||||
* 0 as much as possible. This node does exist on earlier versions of
|
||||
* threadripper and setting affinity to it should not have negative
|
||||
* thread-ripper and setting affinity to it should not have negative
|
||||
* effect.
|
||||
* This allows us to avoid per-model check, making the code more
|
||||
* reliable for the CPUs which are not yet released.
|
||||
@@ -893,7 +893,7 @@ static bool check_is_threadripper2_alike_topology(void)
|
||||
* up their DR slots, making it only two dies connected to a DDR slot
|
||||
* with actual memory in it. */
|
||||
if (strstr(cpu_brand, "EPYC")) {
|
||||
/* NOTE: Similarly to Threadripper we do not do model check. */
|
||||
/* NOTE: Similarly to Thread-ripper we do not do model check. */
|
||||
is_threadripper2 = true;
|
||||
}
|
||||
MEM_freeN(cpu_brand);
|
||||
@@ -913,7 +913,7 @@ static void threadripper_put_process_on_fast_node(void)
|
||||
* However, if scene fits into memory adjacent to a single die we don't
|
||||
* want OS to re-schedule the process to another die since that will make
|
||||
* it further away from memory allocated for .blend file. */
|
||||
/* NOTE: Even if NUMA is avasilable in the API but is disabled in BIOS on
|
||||
/* NOTE: Even if NUMA is available in the API but is disabled in BIOS on
|
||||
* this workstation we still process here. If NUMA is disabled it will be a
|
||||
* single node, so our action is no-visible-changes, but allows to keep
|
||||
* things simple and unified. */
|
||||
@@ -942,7 +942,7 @@ static void threadripper_put_thread_on_fast_node(void)
|
||||
void BLI_thread_put_process_on_fast_node(void)
|
||||
{
|
||||
/* Disabled for now since this causes only 16 threads to be used on a
|
||||
* threadripper for computations like sculpting and fluid sim. The problem
|
||||
* thread-ripper for computations like sculpting and fluid sim. The problem
|
||||
* is that all threads created as children from this thread will inherit
|
||||
* the NUMA node and so will end up on the same node. This can be fixed
|
||||
* case-by-case by assigning the NUMA node for every child thread, however
|
||||
|
||||
@@ -472,8 +472,8 @@ void deg_graph_on_visible_update(Main *bmain, Depsgraph *graph)
|
||||
{
|
||||
for (DEG::IDNode *id_node : graph->id_nodes) {
|
||||
if (!id_node->visible_components_mask) {
|
||||
/* ID has no components which affects anything visible. no meed
|
||||
* bother with it to tag or anything. */
|
||||
/* ID has no components which affects anything visible.
|
||||
* No need bother with it to tag or anything. */
|
||||
continue;
|
||||
}
|
||||
if (id_node->visible_components_mask ==
|
||||
|
||||
@@ -1118,7 +1118,7 @@ static void poselib_preview_apply(bContext *C, wmOperator *op)
|
||||
else
|
||||
RNA_int_set(op->ptr, "pose_index", -2); /* -2 means don't apply any pose */
|
||||
|
||||
/* old optimize trick... this enforces to bypass the depgraph
|
||||
/* old optimize trick... this enforces to bypass the depsgraph
|
||||
* - note: code copied from transform_generics.c -> recalcData()
|
||||
*/
|
||||
// FIXME: shouldn't this use the builtin stuff?
|
||||
|
||||
@@ -295,7 +295,7 @@ static void pose_slide_refresh(bContext *C, tPoseSlideOp *pso)
|
||||
|
||||
/**
|
||||
* Although this lookup is not ideal, we won't be dealing with a lot of objects at a given time.
|
||||
* But if it comes to that we can instead store prev/next frme in the #tPChanFCurveLink.
|
||||
* But if it comes to that we can instead store prev/next frame in the #tPChanFCurveLink.
|
||||
*/
|
||||
static bool pose_frame_range_from_object_get(tPoseSlideOp *pso, Object *ob, float *prevFrameF, float *nextFrameF)
|
||||
{
|
||||
|
||||
@@ -369,7 +369,7 @@ static void gizmo_arrow_exit(bContext *C, wmGizmo *gz, const bool cancel)
|
||||
const bool is_prop_valid = WM_gizmo_target_property_is_valid(gz_prop);
|
||||
|
||||
if (!cancel) {
|
||||
/* Assign incase applying the opetration needs an updated offset
|
||||
/* Assign incase applying the operation needs an updated offset
|
||||
* editmesh bisect needs this. */
|
||||
if (is_prop_valid) {
|
||||
const int transform_flag = RNA_enum_get(arrow->gizmo.ptr, "transform");
|
||||
|
||||
@@ -472,7 +472,7 @@ static int gizmo_cage3d_modal(
|
||||
return OPERATOR_RUNNING_MODAL;
|
||||
}
|
||||
/* For transform logic to be manageable we operate in -0.5..0.5 2D space,
|
||||
* no matter the size of the rectangle, mouse coorts are scaled to unit space.
|
||||
* no matter the size of the rectangle, mouse coords are scaled to unit space.
|
||||
* The mouse coords have been projected into the matrix so we don't need to worry about axis alignment.
|
||||
*
|
||||
* - The cursor offset are multiplied by 'dims'.
|
||||
|
||||
@@ -209,7 +209,7 @@ eAutoPropButsReturn uiDefAutoButsRNA(
|
||||
col = uiLayoutColumn(split, false);
|
||||
}
|
||||
|
||||
/* may meed to add more cases here.
|
||||
/* May need to add more cases here.
|
||||
* don't override enum flag names */
|
||||
|
||||
/* name is shown above, empty name for button below */
|
||||
|
||||
@@ -454,8 +454,8 @@ static void findnearestvert__doClosest(void *userData, BMVert *eve, const float
|
||||
*
|
||||
* \param r_dist: (in/out), minimal distance to the nearest and at the end, actual distance
|
||||
* \param use_select_bias:
|
||||
* - When true, selected vertice are given a 5 pixel bias to make them further than unselect verts.
|
||||
* - When false, unselected vertice are given the bias.
|
||||
* - When true, selected vertices are given a 5 pixel bias to make them further than unselect verts.
|
||||
* - When false, unselected vertices are given the bias.
|
||||
* \param use_cycle: Cycle over elements within #FIND_NEAR_CYCLE_THRESHOLD_MIN in order of index.
|
||||
*/
|
||||
BMVert *EDBM_vert_find_nearest_ex(
|
||||
@@ -1757,7 +1757,7 @@ static bool mouse_mesh_loop(bContext *C, const int mval[2], bool extend, bool de
|
||||
if (select) {
|
||||
if (em->selectmode & SCE_SELECT_VERTEX) {
|
||||
/* Find nearest vert from mouse
|
||||
* (initialize to large values incase only one vertex can be projected) */
|
||||
* (initialize to large values in case only one vertex can be projected) */
|
||||
float v1_co[2], v2_co[2];
|
||||
float length_1 = FLT_MAX;
|
||||
float length_2 = FLT_MAX;
|
||||
|
||||
@@ -1150,7 +1150,7 @@ static int similar_vert_select_exec(bContext *C, wmOperator *op)
|
||||
continue;
|
||||
}
|
||||
|
||||
/* We map back the names of the vertex groups to their corresponsing indices
|
||||
/* We map back the names of the vertex groups to their corresponding indices
|
||||
* for this object. This is fast, and keep the logic for each vertex very simple. */
|
||||
GSetIterator gs_iter;
|
||||
GSET_ITER(gs_iter, gset) {
|
||||
|
||||
@@ -4943,7 +4943,7 @@ static int edbm_decimate_exec(bContext *C, wmOperator *op)
|
||||
}
|
||||
else {
|
||||
/**
|
||||
* Calculate a new ratio based on faces that could be remoevd during decimation.
|
||||
* Calculate a new ratio based on faces that could be removed during decimation.
|
||||
* needed so 0..1 has a meaningful range when operating on the selection.
|
||||
*
|
||||
* This doesn't have to be totally accurate,
|
||||
|
||||
@@ -919,8 +919,10 @@ UvElement *BM_uv_element_get(UvElementMap *map, BMFace *efa, BMLoop *l)
|
||||
/** \name Data Layer Checks
|
||||
* \{ */
|
||||
|
||||
/* last_sel, use em->act_face otherwise get the last selected face in the editselections
|
||||
* at the moment, last_sel is mainly useful for making sure the space image dosnt flicker */
|
||||
/**
|
||||
* last_sel, use em->act_face otherwise get the last selected face in the editselections
|
||||
* at the moment, last_sel is mainly useful for making sure the space image doesn't flicker.
|
||||
*/
|
||||
BMFace *EDBM_uv_active_face_get(BMEditMesh *em, const bool sloppy, const bool selected)
|
||||
{
|
||||
BMFace *efa = NULL;
|
||||
|
||||
@@ -267,15 +267,15 @@ void ED_mesh_mirrtopo_init(
|
||||
}
|
||||
|
||||
if ((tot_unique <= tot_unique_prev) && (tot_unique_edges <= tot_unique_edges_prev)) {
|
||||
/* Finish searching for unique values when 1 loop dosnt give a
|
||||
* higher number of unique values compared to the previous loop */
|
||||
/* Finish searching for unique values when 1 loop dosn't give a
|
||||
* higher number of unique values compared to the previous loop. */
|
||||
break;
|
||||
}
|
||||
else {
|
||||
tot_unique_prev = tot_unique;
|
||||
tot_unique_edges_prev = tot_unique_edges;
|
||||
}
|
||||
/* Copy the hash calculated this iter, so we can use them next time */
|
||||
/* Copy the hash calculated this iteration, so we can use them next time */
|
||||
memcpy(topo_hash_prev, topo_hash, sizeof(MirrTopoHash_t) * totvert);
|
||||
|
||||
topo_pass++;
|
||||
|
||||
@@ -247,7 +247,7 @@ bool ED_vgroup_parray_alloc(ID *id, MDeformVert ***dvert_arr, int *dvert_tot, co
|
||||
* For use with tools that use ED_vgroup_parray_alloc with \a use_vert_sel == true.
|
||||
* This finds the unselected mirror deform verts and copies the weights to them from the selected.
|
||||
*
|
||||
* \note \a dvert_array has mirrored weights filled in, incase cleanup operations are needed on both.
|
||||
* \note \a dvert_array has mirrored weights filled in, in case cleanup operations are needed on both.
|
||||
*/
|
||||
void ED_vgroup_parray_mirror_sync(
|
||||
Object *ob,
|
||||
|
||||
@@ -446,7 +446,7 @@ void ED_area_do_msg_notify_tag_refresh(
|
||||
/**
|
||||
* Although there's no general support for minimizing areas, the status-bar can
|
||||
* be snapped to be only a few pixels high. A few pixels rather than 0 so it
|
||||
* can be un-minimized again. We consider it pseudo-minimalized and don't draw
|
||||
* can be un-minimized again. We consider it pseudo-minimized and don't draw
|
||||
* it then.
|
||||
*/
|
||||
static bool area_is_pseudo_minimized(const ScrArea *area)
|
||||
|
||||
@@ -796,8 +796,8 @@ static void paint_draw_alpha_overlay(
|
||||
UnifiedPaintSettings *ups, Brush *brush,
|
||||
ViewContext *vc, int x, int y, float zoom, ePaintMode mode)
|
||||
{
|
||||
/* color means that primary brush texture is colured and
|
||||
* secondary is used for alpha/mask control */
|
||||
/* Color means that primary brush texture is colored and
|
||||
* secondary is used for alpha/mask control. */
|
||||
bool col = ELEM(mode, PAINT_MODE_TEXTURE_3D, PAINT_MODE_TEXTURE_2D, PAINT_MODE_VERTEX) ? true : false;
|
||||
eOverlayControlFlags flags = BKE_paint_get_overlay_flags();
|
||||
gpuPushAttr(GPU_DEPTH_BUFFER_BIT | GPU_BLEND_BIT);
|
||||
|
||||
@@ -83,9 +83,9 @@
|
||||
|
||||
#include "paint_intern.h"
|
||||
|
||||
/* this is a static resource for non-globality,
|
||||
* Maybe it should be exposed as part of the
|
||||
* paint operation, but for now just give a public interface */
|
||||
/* This is a static resource for non-global access.
|
||||
* Maybe it should be exposed as part of the paint operation, but for now just give a public interface.
|
||||
*/
|
||||
static ImagePaintPartialRedraw imapaintpartial = {0, 0, 0, 0, 0};
|
||||
|
||||
ImagePaintPartialRedraw *get_imapaintpartial(void)
|
||||
|
||||
@@ -1747,7 +1747,7 @@ static float project_paint_uvpixel_mask(
|
||||
} /* otherwise no mask normal is needed, were within the limit */
|
||||
}
|
||||
|
||||
/* This only works when the opacity dosnt change while painting, stylus pressure messes with this
|
||||
/* This only works when the opacity doesn't change while painting, stylus pressure messes with this
|
||||
* so don't use it. */
|
||||
// if (ps->is_airbrush == 0) mask *= BKE_brush_alpha_get(ps->brush);
|
||||
|
||||
|
||||
@@ -1887,7 +1887,7 @@ static void do_wpaint_brush_draw_task_cb_ex(
|
||||
/* Test to see if the vertex coordinates are within the spherical brush region. */
|
||||
if (sculpt_brush_test_sq_fn(&test, vd.co)) {
|
||||
/* Note: grids are 1:1 with corners (aka loops).
|
||||
* For multires, take the vert whose loop cooresponds to the current grid.
|
||||
* For multires, take the vert whose loop corresponds to the current grid.
|
||||
* Otherwise, take the current vert. */
|
||||
const int v_index = has_grids ? data->me->mloop[vd.grid_indices[vd.g]].v : vd.vert_indices[vd.i];
|
||||
const float grid_alpha = has_grids ? 1.0f / vd.gridsize : 1.0f;
|
||||
@@ -2675,7 +2675,7 @@ static void do_vpaint_brush_draw_task_cb_ex(
|
||||
/* Test to see if the vertex coordinates are within the spherical brush region. */
|
||||
if (sculpt_brush_test_sq_fn(&test, vd.co)) {
|
||||
/* Note: Grids are 1:1 with corners (aka loops).
|
||||
* For grid based pbvh, take the vert whose loop cooresponds to the current grid.
|
||||
* For grid based pbvh, take the vert whose loop corresponds to the current grid.
|
||||
* Otherwise, take the current vert. */
|
||||
const int v_index = has_grids ? data->me->mloop[vd.grid_indices[vd.g]].v : vd.vert_indices[vd.i];
|
||||
const float grid_alpha = has_grids ? 1.0f / vd.gridsize : 1.0f;
|
||||
@@ -2769,7 +2769,7 @@ static void do_vpaint_brush_blur_task_cb_ex(
|
||||
{
|
||||
/* Test to see if the vertex coordinates are within the spherical brush region. */
|
||||
if (sculpt_brush_test_sq_fn(&test, vd.co)) {
|
||||
/* For grid based pbvh, take the vert whose loop cooresponds to the current grid.
|
||||
/* For grid based pbvh, take the vert whose loop corresponds to the current grid.
|
||||
* Otherwise, take the current vert. */
|
||||
const int v_index = has_grids ? data->me->mloop[vd.grid_indices[vd.g]].v : vd.vert_indices[vd.i];
|
||||
const float grid_alpha = has_grids ? 1.0f / vd.gridsize : 1.0f;
|
||||
@@ -2888,7 +2888,7 @@ static void do_vpaint_brush_smear_task_cb_ex(
|
||||
{
|
||||
/* Test to see if the vertex coordinates are within the spherical brush region. */
|
||||
if (sculpt_brush_test_sq_fn(&test, vd.co)) {
|
||||
/* For grid based pbvh, take the vert whose loop cooresponds to the current grid.
|
||||
/* For grid based pbvh, take the vert whose loop corresponds to the current grid.
|
||||
* Otherwise, take the current vert. */
|
||||
const int v_index = has_grids ? data->me->mloop[vd.grid_indices[vd.g]].v : vd.vert_indices[vd.i];
|
||||
const float grid_alpha = has_grids ? 1.0f / vd.gridsize : 1.0f;
|
||||
|
||||
@@ -1543,7 +1543,7 @@ void ED_node_link_intersect_test(ScrArea *sa, int test)
|
||||
/* check if the node rect intersetcts the line from this point to next one */
|
||||
if (BLI_rctf_isect_segment(&select->totr, coord_array[i], coord_array[i + 1])) {
|
||||
/* store the shortest distance to the upper left edge
|
||||
* of all intersetctions found so far */
|
||||
* of all intersections found so far */
|
||||
const float node_xy[] = {select->totr.xmin, select->totr.ymax};
|
||||
|
||||
/* to be precise coord_array should be clipped by select->totr,
|
||||
|
||||
@@ -2292,7 +2292,7 @@ static bool bmesh_test_dist_add(
|
||||
}
|
||||
|
||||
/**
|
||||
* \param mtx: Measure disatnce in this space.
|
||||
* \param mtx: Measure distance in this space.
|
||||
* \param dists: Store the closest connected distance to selected vertices.
|
||||
* \param index: Optionally store the original index we're measuring the distance to (can be NULL).
|
||||
*/
|
||||
@@ -5806,17 +5806,17 @@ static void ObjectToTransData(TransInfo *t, TransData *td, Object *ob)
|
||||
if (t->mode == TFM_DUMMY)
|
||||
skip_invert = true;
|
||||
|
||||
/* NOTE: This is not really following copy-on-write design and we shoud not
|
||||
/* NOTE: This is not really following copy-on-write design and we should not
|
||||
* be re-evaluating the evaluated object. But as the comment above mentioned
|
||||
* this is part of a hack.
|
||||
* More proper solution would be to make a shallwe copy of the object and
|
||||
* More proper solution would be to make a shallow copy of the object and
|
||||
* evaluate that, and access matrix of that evaluated copy of the object.
|
||||
* Might be more tricky than it sounds, if some logic later on accesses the
|
||||
* object matrix via td->ob->obmat. */
|
||||
Object *object_eval = DEG_get_evaluated_object(t->depsgraph, ob);
|
||||
if (skip_invert == false && constinv == false) {
|
||||
object_eval->transflag |= OB_NO_CONSTRAINTS; /* BKE_object_where_is_calc checks this */
|
||||
/* It is possiblre to have transform data initialization prior to a
|
||||
/* It is possible to have transform data initialization prior to a
|
||||
* complete dependency graph evaluated. Happens, for example, when
|
||||
* changing transformation mode. */
|
||||
BKE_object_tfm_copy(object_eval, ob);
|
||||
@@ -5829,7 +5829,7 @@ static void ObjectToTransData(TransInfo *t, TransData *td, Object *ob)
|
||||
/* Copy newly evaluated fields to the original object, similar to how
|
||||
* active dependency graph will do it. */
|
||||
copy_m4_m4(ob->obmat, object_eval->obmat);
|
||||
/* Only copy negative scale flag, this is the only flag which is modifed by
|
||||
/* Only copy negative scale flag, this is the only flag which is modified by
|
||||
* the BKE_object_where_is_calc(). The rest of the flags we need to keep,
|
||||
* otherwise we might loose dupli flags (see T61787). */
|
||||
ob->transflag &= ~OB_NEG_SCALE;
|
||||
@@ -6465,8 +6465,8 @@ static void special_aftertrans_update__mesh(bContext *UNUSED(C), TransInfo *t)
|
||||
TransData *td;
|
||||
int i;
|
||||
|
||||
/* rather then adjusting the selection (which the user would notice)
|
||||
* tag all mirrored verts, then automerge those */
|
||||
/* Rather then adjusting the selection (which the user would notice)
|
||||
* tag all mirrored verts, then auto-merge those. */
|
||||
BM_mesh_elem_hflag_disable_all(bm, BM_VERT, BM_ELEM_TAG, false);
|
||||
|
||||
for (i = 0, td = tc->data; i < tc->data_len; i++, td++) {
|
||||
@@ -6528,8 +6528,8 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
|
||||
FOREACH_TRANS_DATA_CONTAINER (t, tc) {
|
||||
EdgeSlideData *sld = tc->custom.mode.data;
|
||||
|
||||
/* free temporary faces to avoid automerging and deleting
|
||||
* during cleanup - psy-fi */
|
||||
/* Free temporary faces to avoid auto-merging and deleting
|
||||
* during cleanup - psy-fi. */
|
||||
freeEdgeSlideTempFaces(sld);
|
||||
}
|
||||
}
|
||||
@@ -8357,8 +8357,8 @@ static void createTransGPencil(bContext *C, TransInfo *t)
|
||||
curvemapping_initialize(ts->gp_sculpt.cur_falloff);
|
||||
}
|
||||
|
||||
/* First Pass: Count the number of datapoints required for the strokes,
|
||||
* (and additional info about the configuration - e.g. 2D/3D?)
|
||||
/* First Pass: Count the number of data-points required for the strokes,
|
||||
* (and additional info about the configuration - e.g. 2D/3D?).
|
||||
*/
|
||||
for (gpl = gpd->layers.first; gpl; gpl = gpl->next) {
|
||||
/* only editable and visible layers are considered */
|
||||
|
||||
@@ -466,7 +466,7 @@ static int add_name(const char *str)
|
||||
/*
|
||||
* Put )(void) at the end? Maybe )(). Should check this with
|
||||
* old sdna. Actually, sometimes )(), sometimes )(void...)
|
||||
* Alas.. such is the nature of braindamage :(
|
||||
* Alas.. such is the nature of brain-damage :(
|
||||
*
|
||||
* Sorted it out: always do )(), except for headdraw and
|
||||
* windraw, part of ScrArea. This is important, because some
|
||||
|
||||
Reference in New Issue
Block a user