From dc140165ae1022d518984a1e7a3bc7862e528cc4 Mon Sep 17 00:00:00 2001 From: Colomban Wendling Date: Tue, 19 Aug 2014 03:42:58 +0200 Subject: [PATCH] Use GeanyFindFlags instead of plain integer when expecting Geany find flags This makes the API more obvious on what argument is expected, and avoid confusion between Geany and Scintilla find flags. --- src/callbacks.c | 2 +- src/document.c | 10 +++++----- src/document.h | 8 ++++---- src/search.c | 28 ++++++++++++++-------------- src/search.h | 45 +++++++++++++++++++++++---------------------- 5 files changed, 47 insertions(+), 46 deletions(-) diff --git a/src/callbacks.c b/src/callbacks.c index 3eab3633b..734ea2a73 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -828,7 +828,7 @@ G_MODULE_EXPORT void on_use_auto_indentation1_toggled(GtkCheckMenuItem *checkmen static void find_usage(gboolean in_session) { - gint flags; + GeanyFindFlags flags; gchar *search_text; GeanyDocument *doc = document_get_current(); diff --git a/src/document.c b/src/document.c index b2e7c8e20..ac6079a78 100644 --- a/src/document.c +++ b/src/document.c @@ -2033,7 +2033,7 @@ gboolean document_search_bar_find(GeanyDocument *doc, const gchar *text, gboolea * @param original_text Text as it was entered by user, or @c NULL to use @c text */ gint document_find_text(GeanyDocument *doc, const gchar *text, const gchar *original_text, - gint flags, gboolean search_backwards, GeanyMatchInfo **match_, + GeanyFindFlags flags, gboolean search_backwards, GeanyMatchInfo **match_, gboolean scroll, GtkWidget *parent) { gint selection_end, selection_start, search_pos; @@ -2113,7 +2113,7 @@ gint document_find_text(GeanyDocument *doc, const gchar *text, const gchar *orig * @param original_find_text Text to find as it was entered by user, or @c NULL to use @c find_text */ gint document_replace_text(GeanyDocument *doc, const gchar *find_text, const gchar *original_find_text, - const gchar *replace_text, gint flags, gboolean search_backwards) + const gchar *replace_text, GeanyFindFlags flags, gboolean search_backwards) { gint selection_end, selection_start, search_pos; GeanyMatchInfo *match = NULL; @@ -2199,7 +2199,7 @@ static void show_replace_summary(GeanyDocument *doc, gint count, const gchar *or * Returns: the number of replacements made. */ static guint document_replace_range(GeanyDocument *doc, const gchar *find_text, const gchar *replace_text, - gint flags, gint start, gint end, gboolean scroll_to_match, gint *new_range_end) + GeanyFindFlags flags, gint start, gint end, gboolean scroll_to_match, gint *new_range_end) { gint count = 0; struct Sci_TextToFind ttf; @@ -2236,7 +2236,7 @@ document_replace_range(GeanyDocument *doc, const gchar *find_text, const gchar * void document_replace_sel(GeanyDocument *doc, const gchar *find_text, const gchar *replace_text, - const gchar *original_find_text, const gchar *original_replace_text, gint flags) + const gchar *original_find_text, const gchar *original_replace_text, GeanyFindFlags flags) { gint selection_end, selection_start, selection_mode, selected_lines, last_line = 0; gint max_column = 0, count = 0; @@ -2339,7 +2339,7 @@ void document_replace_sel(GeanyDocument *doc, const gchar *find_text, const gcha /* returns number of replacements made. */ gint document_replace_all(GeanyDocument *doc, const gchar *find_text, const gchar *replace_text, - const gchar *original_find_text, const gchar *original_replace_text, gint flags) + const gchar *original_find_text, const gchar *original_replace_text, GeanyFindFlags flags) { gint len, count; g_return_val_if_fail(doc != NULL && find_text != NULL && replace_text != NULL, FALSE); diff --git a/src/document.h b/src/document.h index 85f1c6b53..620857d81 100644 --- a/src/document.h +++ b/src/document.h @@ -242,17 +242,17 @@ gboolean document_search_bar_find(GeanyDocument *doc, const gchar *text, gboolea gboolean backwards); gint document_find_text(GeanyDocument *doc, const gchar *text, const gchar *original_text, - gint flags, gboolean search_backwards, GeanyMatchInfo **match_, + GeanyFindFlags flags, gboolean search_backwards, GeanyMatchInfo **match_, gboolean scroll, GtkWidget *parent); gint document_replace_text(GeanyDocument *doc, const gchar *find_text, const gchar *original_find_text, - const gchar *replace_text, gint flags, gboolean search_backwards); + const gchar *replace_text, GeanyFindFlags flags, gboolean search_backwards); gint document_replace_all(GeanyDocument *doc, const gchar *find_text, const gchar *replace_text, - const gchar *original_find_text, const gchar *original_replace_text, gint flags); + const gchar *original_find_text, const gchar *original_replace_text, GeanyFindFlags flags); void document_replace_sel(GeanyDocument *doc, const gchar *find_text, const gchar *replace_text, - const gchar *original_find_text, const gchar *original_replace_text, gint flags); + const gchar *original_find_text, const gchar *original_replace_text, GeanyFindFlags flags); void document_update_tags(GeanyDocument *doc); diff --git a/src/search.c b/src/search.c index 0c2439ce2..78ff16bd0 100644 --- a/src/search.c +++ b/src/search.c @@ -156,7 +156,7 @@ static void search_close_pid(GPid child_pid, gint status, gpointer user_data); static gchar **search_get_argv(const gchar **argv_prefix, const gchar *dir); -static GRegex *compile_regex(const gchar *str, gint sflags); +static GRegex *compile_regex(const gchar *str, GeanyFindFlags sflags); static void @@ -1167,7 +1167,7 @@ on_find_replace_checkbutton_toggled(GtkToggleButton *togglebutton, gpointer user } -static GeanyMatchInfo *match_info_new(gint flags, gint start, gint end) +static GeanyMatchInfo *match_info_new(GeanyFindFlags flags, gint start, gint end) { GeanyMatchInfo *info = g_slice_alloc(sizeof *info); @@ -1192,7 +1192,7 @@ void geany_match_info_free(GeanyMatchInfo *info) * foreach_slist(node, matches) * geany_match_info_free(node->data); * g_slist_free(matches); */ -static GSList *find_range(ScintillaObject *sci, gint flags, struct Sci_TextToFind *ttf) +static GSList *find_range(ScintillaObject *sci, GeanyFindFlags flags, struct Sci_TextToFind *ttf) { GSList *matches = NULL; GeanyMatchInfo *info; @@ -1226,7 +1226,7 @@ static GSList *find_range(ScintillaObject *sci, gint flags, struct Sci_TextToFin /* Clears markers if text is null/empty. * @return Number of matches marked. */ -gint search_mark_all(GeanyDocument *doc, const gchar *search_text, gint flags) +gint search_mark_all(GeanyDocument *doc, const gchar *search_text, GeanyFindFlags flags) { gint count = 0; struct Sci_TextToFind ttf; @@ -1279,7 +1279,7 @@ on_find_entry_activate_backward(GtkEntry *entry, gpointer user_data) } -static gboolean int_search_flags(gint match_case, gint whole_word, gint regexp, gint multiline, gint word_start) +static GeanyFindFlags int_search_flags(gint match_case, gint whole_word, gint regexp, gint multiline, gint word_start) { return (match_case ? GEANY_FIND_MATCHCASE : 0) | (regexp ? GEANY_FIND_REGEXP : 0) | @@ -1395,7 +1395,7 @@ on_replace_entry_activate(GtkEntry *entry, gpointer user_data) static void replace_in_session(GeanyDocument *doc, - gint search_flags_re, gboolean search_replace_escape_re, + GeanyFindFlags search_flags_re, gboolean search_replace_escape_re, const gchar *find, const gchar *replace, const gchar *original_find, const gchar *original_replace) { @@ -1436,7 +1436,7 @@ static void on_replace_dialog_response(GtkDialog *dialog, gint response, gpointer user_data) { GeanyDocument *doc = document_get_current(); - gint search_flags_re; + GeanyFindFlags search_flags_re; gboolean search_backwards_re, search_replace_escape_re; gchar *find, *replace, *original_find = NULL, *original_replace = NULL; @@ -1930,7 +1930,7 @@ static void search_close_pid(GPid child_pid, gint status, gpointer user_data) } -static GRegex *compile_regex(const gchar *str, gint sflags) +static GRegex *compile_regex(const gchar *str, GeanyFindFlags sflags) { GRegex *regex; GError *error = NULL; @@ -2042,7 +2042,7 @@ static gint geany_find_flags_to_sci_flags(GeanyFindFlags flags) } -gint search_find_prev(ScintillaObject *sci, const gchar *str, gint flags, GeanyMatchInfo **match_) +gint search_find_prev(ScintillaObject *sci, const gchar *str, GeanyFindFlags flags, GeanyMatchInfo **match_) { gint ret; @@ -2055,7 +2055,7 @@ gint search_find_prev(ScintillaObject *sci, const gchar *str, gint flags, GeanyM } -gint search_find_next(ScintillaObject *sci, const gchar *str, gint flags, GeanyMatchInfo **match_) +gint search_find_next(ScintillaObject *sci, const gchar *str, GeanyFindFlags flags, GeanyMatchInfo **match_) { GeanyMatchInfo *match; GRegex *regex; @@ -2140,7 +2140,7 @@ gint search_replace_match(ScintillaObject *sci, const GeanyMatchInfo *match, con } -gint search_find_text(ScintillaObject *sci, gint flags, struct Sci_TextToFind *ttf, GeanyMatchInfo **match_) +gint search_find_text(ScintillaObject *sci, GeanyFindFlags flags, struct Sci_TextToFind *ttf, GeanyMatchInfo **match_) { GeanyMatchInfo *match = NULL; GRegex *regex; @@ -2179,7 +2179,7 @@ gint search_find_text(ScintillaObject *sci, gint flags, struct Sci_TextToFind *t } -static gint find_document_usage(GeanyDocument *doc, const gchar *search_text, gint flags) +static gint find_document_usage(GeanyDocument *doc, const gchar *search_text, GeanyFindFlags flags) { gchar *buffer, *short_file_name; struct Sci_TextToFind ttf; @@ -2220,7 +2220,7 @@ static gint find_document_usage(GeanyDocument *doc, const gchar *search_text, gi void search_find_usage(const gchar *search_text, const gchar *original_search_text, - gint flags, gboolean in_session) + GeanyFindFlags flags, gboolean in_session) { GeanyDocument *doc; gint count = 0; @@ -2274,7 +2274,7 @@ void search_find_usage(const gchar *search_text, const gchar *original_search_te * the new search range end (ttf->chrg.cpMax). * Note: Normally you would call sci_start/end_undo_action() around this call. */ guint search_replace_range(ScintillaObject *sci, struct Sci_TextToFind *ttf, - gint flags, const gchar *replace_text) + GeanyFindFlags flags, const gchar *replace_text) { gint count = 0; gint offset = 0; /* difference between search pos and replace pos */ diff --git a/src/search.h b/src/search.h index e732697ce..e6726fea9 100644 --- a/src/search.h +++ b/src/search.h @@ -37,17 +37,27 @@ struct GeanyDocument; /* document.h includes this header */ struct _ScintillaObject; struct Sci_TextToFind; +typedef enum GeanyFindFlags +{ + GEANY_FIND_MATCHCASE = 1 << 0, + GEANY_FIND_WHOLEWORD = 1 << 1, + GEANY_FIND_WORDSTART = 1 << 2, + GEANY_FIND_REGEXP = 1 << 3, + GEANY_FIND_MULTILINE = 1 << 4 +} +GeanyFindFlags; + /* the flags given in the search dialog for "find next", also used by the search bar */ typedef struct GeanySearchData { - gchar *text; - gint flags; - gboolean backwards; + gchar *text; + GeanyFindFlags flags; + gboolean backwards; /* set to TRUE when text was set by a search bar callback to keep track of * search bar background colour */ - gboolean search_bar; + gboolean search_bar; /* text as it was entered by user */ - gchar *original_text; + gchar *original_text; } GeanySearchData; @@ -61,15 +71,6 @@ enum GeanyFindSelOptions GEANY_FIND_SEL_AGAIN }; -enum GeanyFindFlags -{ - GEANY_FIND_MATCHCASE = 1 << 0, - GEANY_FIND_WHOLEWORD = 1 << 1, - GEANY_FIND_WORDSTART = 1 << 2, - GEANY_FIND_REGEXP = 1 << 3, - GEANY_FIND_MULTILINE = 1 << 4 -}; - /** Search preferences */ typedef struct GeanySearchPrefs { @@ -86,10 +87,10 @@ extern GeanySearchPrefs search_prefs; typedef struct GeanyMatchInfo { - gint flags; + GeanyFindFlags flags; /* range */ gint start, end; - /* only valid if (flags & SCFIND_REGEX) */ + /* only valid if (flags & GEANY_FIND_REGEX) */ gchar *match_text; /* text actually matched */ struct { @@ -114,24 +115,24 @@ void search_show_find_in_files_dialog_full(const gchar *text, const gchar *dir); void geany_match_info_free(GeanyMatchInfo *info); -gint search_find_prev(struct _ScintillaObject *sci, const gchar *str, gint flags, GeanyMatchInfo **match_); +gint search_find_prev(struct _ScintillaObject *sci, const gchar *str, GeanyFindFlags flags, GeanyMatchInfo **match_); -gint search_find_next(struct _ScintillaObject *sci, const gchar *str, gint flags, GeanyMatchInfo **match_); +gint search_find_next(struct _ScintillaObject *sci, const gchar *str, GeanyFindFlags flags, GeanyMatchInfo **match_); -gint search_find_text(struct _ScintillaObject *sci, gint flags, struct Sci_TextToFind *ttf, GeanyMatchInfo **match_); +gint search_find_text(struct _ScintillaObject *sci, GeanyFindFlags flags, struct Sci_TextToFind *ttf, GeanyMatchInfo **match_); void search_find_again(gboolean change_direction); -void search_find_usage(const gchar *search_text, const gchar *original_search_text, gint flags, gboolean in_session); +void search_find_usage(const gchar *search_text, const gchar *original_search_text, GeanyFindFlags flags, gboolean in_session); void search_find_selection(struct GeanyDocument *doc, gboolean search_backwards); -gint search_mark_all(struct GeanyDocument *doc, const gchar *search_text, gint flags); +gint search_mark_all(struct GeanyDocument *doc, const gchar *search_text, GeanyFindFlags flags); gint search_replace_match(struct _ScintillaObject *sci, const GeanyMatchInfo *match, const gchar *replace_text); guint search_replace_range(struct _ScintillaObject *sci, struct Sci_TextToFind *ttf, - gint flags, const gchar *replace_text); + GeanyFindFlags flags, const gchar *replace_text); G_END_DECLS -- 2.11.4.GIT