Commit: 848c00f7e70950fa012627f84c89b32bb9a4deaa
Author: Campbell Barton
Date:   Wed Jan 7 11:40:44 2015 +1100
Branches: master
https://developer.blender.org/rB848c00f7e70950fa012627f84c89b32bb9a4deaa

cleanup: de-duplicate code

===================================================================

M       source/blender/blenloader/intern/versioning_legacy.c
M       source/blender/editors/space_file/filelist.c
M       source/blender/editors/space_text/text_ops.c

===================================================================

diff --git a/source/blender/blenloader/intern/versioning_legacy.c 
b/source/blender/blenloader/intern/versioning_legacy.c
index 1a1bc3a..6f29892 100644
--- a/source/blender/blenloader/intern/versioning_legacy.c
+++ b/source/blender/blenloader/intern/versioning_legacy.c
@@ -515,6 +515,40 @@ static void do_version_free_effects_245(ListBase *lb)
        }
 }
 
+static void do_version_constraints_245(ListBase *lb)
+{
+       bConstraint *con;
+       bConstraintTarget *ct;
+
+       for (con = lb->first; con; con = con->next) {
+               if (con->type == CONSTRAINT_TYPE_PYTHON) {
+                       bPythonConstraint *data = (bPythonConstraint 
*)con->data;
+                       if (data->tar) {
+                               /* version patching needs to be done */
+                               ct = MEM_callocN(sizeof(bConstraintTarget), 
"PyConTarget");
+
+                               ct->tar = data->tar;
+                               BLI_strncpy(ct->subtarget, data->subtarget, 
sizeof(ct->subtarget));
+                               ct->space = con->tarspace;
+
+                               BLI_addtail(&data->targets, ct);
+                               data->tarnum++;
+
+                               /* clear old targets to avoid problems */
+                               data->tar = NULL;
+                               data->subtarget[0] = '\0';
+                       }
+               }
+               else if (con->type == CONSTRAINT_TYPE_LOCLIKE) {
+                       bLocateLikeConstraint *data = (bLocateLikeConstraint 
*)con->data;
+
+                       /* new headtail functionality makes Bone-Tip function 
obsolete */
+                       if (data->flag & LOCLIKE_TIP)
+                               con->headtail = 1.0f;
+               }
+       }
+}
+
 PartEff *blo_do_version_give_parteff_245(Object *ob)
 {
        PartEff *paf;
@@ -2951,69 +2985,14 @@ void blo_do_versions_pre250(FileData *fd, Library *lib, 
Main *main)
        if ((main->versionfile < 245) || (main->versionfile == 245 && 
main->subversionfile < 7)) {
                Object *ob;
                bPoseChannel *pchan;
-               bConstraint *con;
-               bConstraintTarget *ct;
 
                for (ob = main->object.first; ob; ob = ob->id.next) {
                        if (ob->pose) {
                                for (pchan = ob->pose->chanbase.first; pchan; 
pchan = pchan->next) {
-                                       for (con = pchan->constraints.first; 
con; con = con->next) {
-                                               if (con->type == 
CONSTRAINT_TYPE_PYTHON) {
-                                                       bPythonConstraint *data 
= (bPythonConstraint *)con->data;
-                                                       if (data->tar) {
-                                                               /* version 
patching needs to be done */
-                                                               ct = 
MEM_callocN(sizeof(bConstraintTarget), "PyConTarget");
-
-                                                               ct->tar = 
data->tar;
-                                                               
BLI_strncpy(ct->subtarget, data->subtarget, sizeof(ct->subtarget));
-                                                               ct->space = 
con->tarspace;
-
-                                                               
BLI_addtail(&data->targets, ct);
-                                                               data->tarnum++;
-
-                                                               /* clear old 
targets to avoid problems */
-                                                               data->tar = 
NULL;
-                                                               
data->subtarget[0] = '\0';
-                                                       }
-                                               }
-                                               else if (con->type == 
CONSTRAINT_TYPE_LOCLIKE) {
-                                                       bLocateLikeConstraint 
*data = (bLocateLikeConstraint *)con->data;
-
-                                                       /* new headtail 
functionality makes Bone-Tip function obsolete */
-                                                       if (data->flag & 
LOCLIKE_TIP)
-                                                               con->headtail = 
1.0f;
-                                               }
-                                       }
-                               }
-                       }
-
-                       for (con = ob->constraints.first; con; con = con->next) 
{
-                               if (con->type == CONSTRAINT_TYPE_PYTHON) {
-                                       bPythonConstraint *data = 
(bPythonConstraint *)con->data;
-                                       if (data->tar) {
-                                               /* version patching needs to be 
done */
-                                               ct = 
MEM_callocN(sizeof(bConstraintTarget), "PyConTarget");
-
-                                               ct->tar = data->tar;
-                                               BLI_strncpy(ct->subtarget, 
data->subtarget, sizeof(ct->subtarget));
-                                               ct->space = con->tarspace;
-
-                                               BLI_addtail(&data->targets, ct);
-                                               data->tarnum++;
-
-                                               /* clear old targets to avoid 
problems */
-                                               data->tar = NULL;
-                                               data->subtarget[0] = '\0';
-                                       }
-                               }
-                               else if (con->type == CONSTRAINT_TYPE_LOCLIKE) {
-                                       bLocateLikeConstraint *data = 
(bLocateLikeConstraint *)con->data;
-
-                                       /* new headtail functionality makes 
Bone-Tip function obsolete */
-                                       if (data->flag & LOCLIKE_TIP)
-                                               con->headtail = 1.0f;
+                                       
do_version_constraints_245(&pchan->constraints);
                                }
                        }
+                       do_version_constraints_245(&ob->constraints);
 
                        if (ob->soft && ob->soft->keys) {
                                SoftBody *sb = ob->soft;
diff --git a/source/blender/editors/space_file/filelist.c 
b/source/blender/editors/space_file/filelist.c
index d5e29d7..bcef081 100644
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@ -284,10 +284,8 @@ static bool compare_is_directory(const struct direntry 
*entry)
        return false;
 }
 
-static int compare_name(const void *a1, const void *a2)
+static int compare_direntry_generic(const struct direntry *entry1, const 
struct direntry *entry2)
 {
-       const struct direntry *entry1 = a1, *entry2 = a2;
-
        /* type is equal to stat.st_mode */
 
        if (compare_is_directory(entry1)) {
@@ -311,35 +309,29 @@ static int compare_name(const void *a1, const void *a2)
        if (strcmp(entry1->relname, "..") == 0) return (-1);
        if (strcmp(entry2->relname, "..") == 0) return (1);
        
+       return 0;
+}
+
+static int compare_name(const void *a1, const void *a2)
+{
+       const struct direntry *entry1 = a1, *entry2 = a2;
+       int ret;
+
+       if ((ret = compare_direntry_generic(entry1, entry2))) {
+               return ret;
+       }
+
        return (BLI_natstrcmp(entry1->relname, entry2->relname));
 }
 
 static int compare_date(const void *a1, const void *a2)        
 {
        const struct direntry *entry1 = a1, *entry2 = a2;
+       int ret;
        
-       /* type is equal to stat.st_mode */
-
-       if (compare_is_directory(entry1)) {
-               if (compare_is_directory(entry2) == 0) return (-1);
-       }
-       else {
-               if (compare_is_directory(entry2)) return (1);
-       }
-       if (S_ISREG(entry1->type)) {
-               if (S_ISREG(entry2->type) == 0) return (-1);
-       }
-       else {
-               if (S_ISREG(entry2->type)) return (1);
+       if ((ret = compare_direntry_generic(entry1, entry2))) {
+               return ret;
        }
-       if ((entry1->type & S_IFMT) < (entry2->type & S_IFMT)) return (-1);
-       if ((entry1->type & S_IFMT) > (entry2->type & S_IFMT)) return (1);
-
-       /* make sure "." and ".." are always first */
-       if (strcmp(entry1->relname, ".") == 0) return (-1);
-       if (strcmp(entry2->relname, ".") == 0) return (1);
-       if (strcmp(entry1->relname, "..") == 0) return (-1);
-       if (strcmp(entry2->relname, "..") == 0) return (1);
        
        if (entry1->s.st_mtime < entry2->s.st_mtime) return 1;
        if (entry1->s.st_mtime > entry2->s.st_mtime) return -1;
@@ -350,29 +342,11 @@ static int compare_date(const void *a1, const void *a2)
 static int compare_size(const void *a1, const void *a2)        
 {
        const struct direntry *entry1 = a1, *entry2 = a2;
+       int ret;
 
-       /* type is equal to stat.st_mode */
-
-       if (compare_is_directory(entry1)) {
-               if (compare_is_directory(entry2) == 0) return (-1);
-       }
-       else {
-               if (compare_is_directory(entry2)) return (1);
+       if ((ret = compare_direntry_generic(entry1, entry2))) {
+               return ret;
        }
-       if (S_ISREG(entry1->type)) {
-               if (S_ISREG(entry2->type) == 0) return (-1);
-       }
-       else {
-               if (S_ISREG(entry2->type)) return (1);
-       }
-       if ((entry1->type & S_IFMT) < (entry2->type & S_IFMT)) return (-1);
-       if ((entry1->type & S_IFMT) > (entry2->type & S_IFMT)) return (1);
-
-       /* make sure "." and ".." are always first */
-       if (strcmp(entry1->relname, ".") == 0) return (-1);
-       if (strcmp(entry2->relname, ".") == 0) return (1);
-       if (strcmp(entry1->relname, "..") == 0) return (-1);
-       if (strcmp(entry2->relname, "..") == 0) return (1);
        
        if (entry1->s.st_size < entry2->s.st_size) return 1;
        if (entry1->s.st_size > entry2->s.st_size) return -1;
@@ -384,6 +358,11 @@ static int compare_extension(const void *a1, const void 
*a2)
        const struct direntry *entry1 = a1, *entry2 = a2;
        const char *sufix1, *sufix2;
        const char *nil = "";
+       int ret;
+
+       if ((ret = compare_direntry_generic(entry1, entry2))) {
+               return ret;
+       }
 
        if (!(sufix1 = strstr(entry1->relname, ".blend.gz")))
                sufix1 = strrchr(entry1->relname, '.');
@@ -392,29 +371,6 @@ static int compare_extension(const void *a1, const void 
*a2)
        if (!sufix1) sufix1 = nil;
        if (!sufix2) sufix2 = nil;
 
-       /* type is equal to stat.st_mode */
-
-       if (compare_is_directory(entry1)) {
-               if (compare_is_directory(entry2) == 0) return (-1);
-       }
-       else {
-               if (compare_is_directory(entry2)) return (1);
-       }
-       if (S_ISREG(entry1->type)) {
-               if (S_ISREG(entry2->type) == 0) return (-1);
-       }
-       else {
-               if (S_ISREG(entry2->type)) return (1);
-       }
-       if ((entry1->type & S_IFMT) < (entry2->type & S_IFMT)) return (-1);
-       if ((entry1->type & S_IFMT) > (entry2->type & S_IFMT)) return (1);
-       
-       /* make sure "." and ".." are always first */
-       if (strcmp(entry1->relname, ".") == 0) return (-1);
-       if (strcmp(entry2->relname, ".") == 0) return (1);
-       if (strcmp(entry1->relname, "..") == 0) return (-1);
-       if (strcmp(entry2->relname, "..") == 0) return (1);
-       
        return (BLI_strcasecmp(sufix1, sufix2));
 }
 
diff --git a/source/blender/editors/space_text/text_ops.c 
b/source/blender/editors/space_text/text_ops.c
index 88e0535..1cf0316 100644
--- a/source/blender/editors/space_text/text_ops.c
+++ b/source/blender/editors/space_text/text_ops.c
@@ -714,88 +714,6 @@ void TEXT_OT_refresh_pyconstraints(wmOperatorType *ot)
 
 /******************* paste operator *********************/
 
-static char *txt_copy_selected(Text *text)
-{
-       TextLine *tmp, *linef, *linel;
-       char *buf = NULL;
-       int charf, charl, length = 0;
-       
-       if (!text) return NULL;
-       if (!text->curl) return NULL;
-       if (!text->sell) return NULL;
-
-       if (!txt_has_sel(text)) return NULL;
-
-       if (text->curl == text->sell) {
-               linef = linel = text->curl;
-               
-               if (text->curc < text->selc) {
-                       charf = text->curc;
-                       charl = text->selc;
-               }
-               else {
-                       charf = text->selc;
-                       charl = text->curc;
-               }
-       }
-       else if (txt_get_span(text->curl, text->sell) < 0) {
-               linef = text->sell;
-               linel = text->curl;
-
-               charf = text->selc;
-               charl = text->curc;
-       }
-       else {
-               linef = text->curl;
-               linel = text->sell;
-               
-               charf = text->curc;
-               charl = text->selc;
-       }
-
-       if (linef == linel) {
-               length = charl - charf;
-
-               buf = MEM_callocN(length + 1, "cut buffera");
-               
-               BLI_strncpy(buf, linef->line + charf, length + 1);
-       }
-       else {
-               length += linef->len - charf;
-               length += charl;
-               length++; /* For the '\n' */
-               
-               tmp = linef->next;
-               while (tmp && tmp != linel) {
-                       length += tmp->len + 1;
-                       tmp = tmp->next;
-               }
-               
-               buf = MEM_callocN(length + 1, "cut bufferb");
-               
-               strncpy(buf, linef->line + charf, linef->len - charf);
-               length = linef->len - charf;
-               
-               buf[length++] = '\n';
-               
-               tmp = linef->next;
-               while (tmp && tmp !=

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to