|
|
|
|
@ -546,7 +546,7 @@ int map_search (char *name, struct map_search_data *data, int datasize) {
|
|
|
|
|
d_printf ("map_search something went wrong. realstart < 0 name:%s", name);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
d_printf ("search blocksize:%lld blockstart:%lld realstart:%d j:%d", blocksize, blockstart, realstart, j, data->name);
|
|
|
|
|
d_printf ("search blocksize:%lld blockstart:%lld realstart:%lld j:%d", (long long int)blocksize, (long long int)blockstart, (long long int)realstart, j, data->name);
|
|
|
|
|
if ((cmpres = strncasecmp (name, data->name, strlen (name)))> 0) {
|
|
|
|
|
/* name is lager than data */
|
|
|
|
|
blocksize = blocksize - (realstart+j-blockstart);
|
|
|
|
|
@ -561,14 +561,16 @@ int map_search (char *name, struct map_search_data *data, int datasize) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* find first data inside list, go backwards until no match found */
|
|
|
|
|
d_printf ("found blockstart:%lld blocksize:%d, realstart:%ld text:'%-12s'", blockstart, blocksize, realstart, data->name);
|
|
|
|
|
d_printf ("found blockstart:%lld blocksize:%lld, realstart:%lld text:'%-12s'", (long long int)blockstart,
|
|
|
|
|
(long long int)blocksize, (long long int)realstart, data->name);
|
|
|
|
|
j = 0;
|
|
|
|
|
if (cmpres <= 0) {
|
|
|
|
|
blockstart = realstart;
|
|
|
|
|
d_printf ("<=0 blockstart:%ld realstart:%ld name:%s", blockstart, realstart, name);
|
|
|
|
|
d_printf ("<=0 blockstart:%lld realstart:%lld name:%s", (long long int)blockstart,
|
|
|
|
|
(long long int)realstart, name);
|
|
|
|
|
do {
|
|
|
|
|
realstart = maps_readpos (blockstart, data, &j);
|
|
|
|
|
d_printf ("blockstart:%ld realstart:%ld data->name:%s", blockstart, realstart, data->name);
|
|
|
|
|
d_printf ("blockstart:%lld realstart:%lld data->name:%s", (long long int) blockstart, (long long int) realstart, data->name);
|
|
|
|
|
blockstart = realstart-2;
|
|
|
|
|
cmpres = strncasecmp (name, data->name, strlen (name));
|
|
|
|
|
d_printf (" cmpres:%d", cmpres);
|
|
|
|
|
@ -577,10 +579,10 @@ int map_search (char *name, struct map_search_data *data, int datasize) {
|
|
|
|
|
}
|
|
|
|
|
else if (cmpres > 0) {
|
|
|
|
|
blockstart = realstart;
|
|
|
|
|
d_printf (">0 blockstart:%ld realstart:%ld name:%s", blockstart, realstart, name);
|
|
|
|
|
d_printf (">0 blockstart:%lld realstart:%lld name:%s", (long long int) blockstart, (long long int) realstart, name);
|
|
|
|
|
do {
|
|
|
|
|
realstart = maps_readpos (blockstart, data, &j);
|
|
|
|
|
d_printf ("blockstart:%ld realstart:%ld data->name:%s", blockstart, realstart, data->name);
|
|
|
|
|
d_printf ("blockstart:%lld realstart:%lld data->name:%s", (long long int)blockstart, (long long int)realstart, data->name);
|
|
|
|
|
blockstart = realstart+j;
|
|
|
|
|
cmpres = strncasecmp (name, data->name, strlen (name));
|
|
|
|
|
d_printf (" cmpres:%d", cmpres);
|
|
|
|
|
@ -593,7 +595,7 @@ int map_search (char *name, struct map_search_data *data, int datasize) {
|
|
|
|
|
if (blockstart < 0) blockstart = 0;
|
|
|
|
|
for (i = 0, k = 0; i < datasize*2 && k < datasize; i++) {
|
|
|
|
|
realstart = maps_readpos (blockstart, data+k, &j);
|
|
|
|
|
d_printf ("create list: k:%d i:%d blockstart:%lld j:%d '%s'", k, i, blockstart, j, data[k].name);
|
|
|
|
|
d_printf ("create list: k:%d i:%d blockstart:%lld j:%d '%s'", k, i, (long long int)blockstart, j, data[k].name);
|
|
|
|
|
if (realstart < 0) break;
|
|
|
|
|
blockstart = realstart + j;
|
|
|
|
|
if (strncasecmp (name, data[k].name, strlen (name)) == 0) k++;
|
|
|
|
|
|