[devhelp] KeywordModel: use dh_link_belongs_to_page()
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [devhelp] KeywordModel: use dh_link_belongs_to_page()
- Date: Wed, 6 Dec 2017 20:23:55 +0000 (UTC)
commit b65d98e427a039a2c29d845fabae51b9afb2db37
Author: Sébastien Wilmet <swilmet gnome org>
Date: Wed Dec 6 21:03:23 2017 +0100
KeywordModel: use dh_link_belongs_to_page()
This simplifies the code, and the DhLink function better handles the
index.html page. Also with the DhLink function we avoid string
allocation, so it probably has better performances.
src/dh-keyword-model.c | 20 +++-----------------
1 files changed, 3 insertions(+), 17 deletions(-)
---
diff --git a/src/dh-keyword-model.c b/src/dh-keyword-model.c
index 35bd0ef..a40b1d8 100644
--- a/src/dh-keyword-model.c
+++ b/src/dh-keyword-model.c
@@ -68,7 +68,6 @@ typedef struct {
const gchar *book_id;
const gchar *skip_book_id;
const gchar *page_id;
- gchar *page_filename_prefix;
const gchar *language;
guint case_sensitive : 1;
guint prefix : 1;
@@ -454,20 +453,12 @@ keyword_model_search_book (DhBook *book,
/* Filter by page? */
if (settings->page_id != NULL) {
- gchar *file_name;
-
- file_name = (settings->case_sensitive ?
- g_strdup (dh_link_get_file_name (link)) :
- g_ascii_strdown (dh_link_get_file_name (link), -1));
-
- /* First, filter out all keywords not belonging
- * to this given page. */
- if (!g_str_has_prefix (file_name, settings->page_filename_prefix)) {
+ if (!dh_link_belongs_to_page (link,
+ settings->page_id,
+ settings->case_sensitive)) {
/* No need of this keyword. */
- g_free (file_name);
continue;
}
- g_free (file_name);
/* This means we got no keywords to look for. */
if (settings->keywords == NULL) {
@@ -661,14 +652,11 @@ keyword_model_search (DhKeywordModel *model,
settings.book_id = book_id;
settings.skip_book_id = NULL;
settings.page_id = page_id;
- settings.page_filename_prefix = NULL;
settings.language = language;
settings.case_sensitive = case_sensitive;
settings.prefix = TRUE;
if (page_id != NULL) {
- settings.page_filename_prefix = g_strdup_printf ("%s.", page_id);
-
/* If filtering per page, increase the maximum number of
* hits. This is due to the fact that a page may have
* more than MAX_HITS keywords, and the page link may be
@@ -742,8 +730,6 @@ keyword_model_search (DhKeywordModel *model,
out:
dh_globbed_keywords_free (settings.keyword_globs);
- g_free (settings.page_filename_prefix);
-
return out;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]