-// Search for image anew.
- int l = -1, r = images.size();
- int m = 0, n = -1;
- while( r-l > 1 ) {
- m = (l + r) / 2;
- image_item *item = images[m];
- if( !(n=strcasecmp(name, item->name)) ) {
- item->used = 1;
- last_image = item;
- return item->data;
+// look forwards thru data sets for name
+ int start_item = 0;
+ for( int i=0,n=data_items.size(); i<n; ++i ) {
+ int end_item = start_item + data_items[i];
+ int r = end_item, l = start_item-1;
+// binary search for image
+ int m = 0, v = -1;
+ while( r-l > 1 ) {
+ m = (l + r) / 2;
+ image_item *item = images[m];
+ if( !(v=strcasecmp(name, item->name)) ) {
+ item->used = 1;
+ last_image = item;
+ return item->data;
+ }
+ if( v > 0 ) l = m; else r = m;