diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-02-03 00:43:26 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-02-03 00:43:26 +0300 |
commit | 95bfbd470eeb1ccb3f69b5ba63875772860acdbf (patch) | |
tree | bb3990c0096eec9996c610bc8f81cd11dc11f443 /source/blender/blenlib | |
parent | 1ee7b2fae4c61ac45ae6a7e53e51bea78a7ae306 (diff) |
vertex group sort operator, access from the vgroup panel, sintels mesh has 144 vertex groups which got quite tedious to look through.
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r-- | source/blender/blenlib/BLI_listbase.h | 1 | ||||
-rw-r--r-- | source/blender/blenlib/intern/listbase.c | 21 |
2 files changed, 22 insertions, 0 deletions
diff --git a/source/blender/blenlib/BLI_listbase.h b/source/blender/blenlib/BLI_listbase.h index f4841762227..79f7fb90091 100644 --- a/source/blender/blenlib/BLI_listbase.h +++ b/source/blender/blenlib/BLI_listbase.h @@ -45,6 +45,7 @@ void BLI_insertlink(struct ListBase *listbase, void *vprevlink, void *vnewlink); void *BLI_findlink(struct ListBase *listbase, int number); int BLI_findindex(struct ListBase *listbase, void *vlink); void *BLI_findstring(struct ListBase *listbase, const char *id, int offset); +int BLI_findstringindex(struct ListBase *listbase, const char *id, int offset); void BLI_freelistN(struct ListBase *listbase); void BLI_addtail(struct ListBase *listbase, void *vlink); void BLI_remlink(struct ListBase *listbase, void *vlink); diff --git a/source/blender/blenlib/intern/listbase.c b/source/blender/blenlib/intern/listbase.c index 6626896d266..5c43c2440aa 100644 --- a/source/blender/blenlib/intern/listbase.c +++ b/source/blender/blenlib/intern/listbase.c @@ -363,6 +363,27 @@ void *BLI_findstring(ListBase *listbase, const char *id, int offset) return NULL; } +int BLI_findstringindex(ListBase *listbase, const char *id, int offset) +{ + Link *link= NULL; + const char *id_iter; + int i= 0; + + if (listbase == NULL) return -1; + + link= listbase->first; + while (link) { + id_iter= ((const char *)link) + offset; + + if(id[0] == id_iter[0] && strcmp(id, id_iter)==0) + return i; + i++; + link= link->next; + } + + return -1; +} + void BLI_duplicatelist(ListBase *list1, const ListBase *list2) { struct Link *link1, *link2; |