From 95bfbd470eeb1ccb3f69b5ba63875772860acdbf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 2 Feb 2010 21:43:26 +0000 Subject: vertex group sort operator, access from the vgroup panel, sintels mesh has 144 vertex groups which got quite tedious to look through. --- source/blender/blenlib/BLI_listbase.h | 1 + source/blender/blenlib/intern/listbase.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) (limited to 'source/blender/blenlib') 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; -- cgit v1.2.3