text searching in conf2 will now be much more accurate when one "word" contains multiple tags
SVN revision: 83083
This commit is contained in:
parent
59a62b437f
commit
89cbf7d653
|
@ -2567,7 +2567,7 @@ e_configure_option_ctx_new(void)
|
||||||
EAPI Eina_Bool
|
EAPI Eina_Bool
|
||||||
e_configure_option_ctx_update(E_Configure_Option_Ctx *ctx, const char *str)
|
e_configure_option_ctx_update(E_Configure_Option_Ctx *ctx, const char *str)
|
||||||
{
|
{
|
||||||
Eina_List *l, *ll, *tlist, *clist = NULL;
|
Eina_List *l, *ll, *tlist, *tmp, *clist = NULL;
|
||||||
Eina_Stringshare *tag, *alias;
|
Eina_Stringshare *tag, *alias;
|
||||||
char *s, *e;
|
char *s, *e;
|
||||||
|
|
||||||
|
@ -2585,27 +2585,55 @@ e_configure_option_ctx_update(E_Configure_Option_Ctx *ctx, const char *str)
|
||||||
e[0] = 0;
|
e[0] = 0;
|
||||||
if (e - s > 1)
|
if (e - s > 1)
|
||||||
{
|
{
|
||||||
|
tmp = NULL;
|
||||||
EINA_LIST_FOREACH_SAFE(tlist, l, ll, alias)
|
EINA_LIST_FOREACH_SAFE(tlist, l, ll, alias)
|
||||||
{
|
{
|
||||||
if ((!strcasestr(s, alias)) && (!strcasestr(alias, s))) continue;
|
if ((!strcasestr(s, alias)) && (!strcasestr(alias, s))) continue;
|
||||||
tag = eina_hash_find(tags_alias_hash, alias);
|
tag = eina_hash_find(tags_alias_hash, alias);
|
||||||
if (eina_list_data_find(clist, tag)) continue;
|
if (eina_list_data_find(clist, tag))
|
||||||
clist = eina_list_append(clist, tag);
|
{
|
||||||
|
if (strcasecmp(s, alias)) continue;
|
||||||
|
tmp = eina_list_free(tmp);
|
||||||
|
break;
|
||||||
|
}
|
||||||
tlist = eina_list_remove(tlist, l);
|
tlist = eina_list_remove(tlist, l);
|
||||||
|
if (strcasecmp(s, alias))
|
||||||
|
{
|
||||||
|
tmp = eina_list_append(tmp, tag);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
tmp = eina_list_free(tmp);
|
||||||
|
tmp = eina_list_append(tmp, tag);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
if (tmp) clist = eina_list_merge(clist, tmp);
|
||||||
}
|
}
|
||||||
s = e + 1;
|
s = e + 1;
|
||||||
}
|
}
|
||||||
if (e - s > 1)
|
if (e - s > 1)
|
||||||
{
|
{
|
||||||
|
tmp = NULL;
|
||||||
EINA_LIST_FOREACH_SAFE(tlist, l, ll, alias)
|
EINA_LIST_FOREACH_SAFE(tlist, l, ll, alias)
|
||||||
{
|
{
|
||||||
if ((!strcasestr(s, alias)) && (!strcasestr(alias, s))) continue;
|
if ((!strcasestr(s, alias)) && (!strcasestr(alias, s))) continue;
|
||||||
tag = eina_hash_find(tags_alias_hash, alias);
|
tag = eina_hash_find(tags_alias_hash, alias);
|
||||||
if (eina_list_data_find(clist, tag)) continue;
|
if (eina_list_data_find(clist, tag))
|
||||||
clist = eina_list_append(clist, tag);
|
{
|
||||||
|
if (strcasecmp(s, alias)) continue;
|
||||||
|
tmp = eina_list_free(tmp);
|
||||||
|
break;
|
||||||
|
}
|
||||||
tlist = eina_list_remove(tlist, l);
|
tlist = eina_list_remove(tlist, l);
|
||||||
|
if (strcasecmp(s, alias))
|
||||||
|
{
|
||||||
|
tmp = eina_list_append(tmp, tag);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
tmp = eina_list_free(tmp);
|
||||||
|
tmp = eina_list_append(tmp, tag);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
if (tmp) clist = eina_list_merge(clist, tmp);
|
||||||
}
|
}
|
||||||
eina_list_free(tlist);
|
eina_list_free(tlist);
|
||||||
tlist = eina_list_clone(tags_list);
|
tlist = eina_list_clone(tags_list);
|
||||||
|
@ -2615,25 +2643,53 @@ e_configure_option_ctx_update(E_Configure_Option_Ctx *ctx, const char *str)
|
||||||
e[0] = 0;
|
e[0] = 0;
|
||||||
if (e - s > 1)
|
if (e - s > 1)
|
||||||
{
|
{
|
||||||
|
tmp = NULL;
|
||||||
EINA_LIST_FOREACH_SAFE(tlist, l, ll, tag)
|
EINA_LIST_FOREACH_SAFE(tlist, l, ll, tag)
|
||||||
{
|
{
|
||||||
if ((!strcasestr(s, tag)) && (!strcasestr(tag, s))) continue;
|
if ((!strcasestr(s, tag)) && (!strcasestr(tag, s))) continue;
|
||||||
if (eina_list_data_find(clist, tag)) continue;
|
if (eina_list_data_find(clist, tag))
|
||||||
clist = eina_list_append(clist, tag);
|
{
|
||||||
|
if (strcasecmp(s, tag)) continue;
|
||||||
|
tmp = eina_list_free(tmp);
|
||||||
|
break;
|
||||||
|
}
|
||||||
tlist = eina_list_remove(tlist, l);
|
tlist = eina_list_remove(tlist, l);
|
||||||
|
if (strcasecmp(s, tag))
|
||||||
|
{
|
||||||
|
tmp = eina_list_append(tmp, tag);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
tmp = eina_list_free(tmp);
|
||||||
|
tmp = eina_list_append(tmp, tag);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
if (tmp) clist = eina_list_merge(clist, tmp);
|
||||||
}
|
}
|
||||||
s = e + 1;
|
s = e + 1;
|
||||||
}
|
}
|
||||||
if (e - s > 1)
|
if (e - s > 1)
|
||||||
{
|
{
|
||||||
|
tmp = NULL;
|
||||||
EINA_LIST_FOREACH_SAFE(tlist, l, ll, tag)
|
EINA_LIST_FOREACH_SAFE(tlist, l, ll, tag)
|
||||||
{
|
{
|
||||||
if ((!strcasestr(s, tag)) && (!strcasestr(tag, s))) continue;
|
if ((!strcasestr(s, tag)) && (!strcasestr(tag, s))) continue;
|
||||||
if (eina_list_data_find(clist, tag)) continue;
|
if (eina_list_data_find(clist, tag))
|
||||||
clist = eina_list_append(clist, tag);
|
{
|
||||||
|
if (strcasecmp(s, tag)) continue;
|
||||||
|
tmp = eina_list_free(tmp);
|
||||||
|
break;
|
||||||
|
}
|
||||||
tlist = eina_list_remove(tlist, l);
|
tlist = eina_list_remove(tlist, l);
|
||||||
|
if (strcasecmp(s, tag))
|
||||||
|
{
|
||||||
|
tmp = eina_list_append(tmp, tag);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
tmp = eina_list_free(tmp);
|
||||||
|
tmp = eina_list_append(tmp, tag);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
if (tmp) clist = eina_list_merge(clist, tmp);
|
||||||
}
|
}
|
||||||
eina_list_free(tlist);
|
eina_list_free(tlist);
|
||||||
if (eina_list_count(clist) != eina_list_count(ctx->tags))
|
if (eina_list_count(clist) != eina_list_count(ctx->tags))
|
||||||
|
|
Loading…
Reference in New Issue