Blame plugins/findinfiles/matcher.c

Packit 6978fb
/* matcher.c generated by valac 0.40.2, the Vala compiler
Packit 6978fb
 * generated from matcher.vala, do not modify */
Packit 6978fb
Packit 6978fb
/*
Packit 6978fb
* Copyright (C) 2015 The Lemon Man
Packit 6978fb
*
Packit 6978fb
* This program is free software; you can redistribute it and/or modify
Packit 6978fb
* it under the terms of the GNU General Public License as published by
Packit 6978fb
* the Free Software Foundation; either version 2, or (at your option)
Packit 6978fb
* any later version.
Packit 6978fb
*
Packit 6978fb
* This program is distributed in the hope that it will be useful,
Packit 6978fb
* but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 6978fb
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 6978fb
* GNU General Public License for more details.
Packit 6978fb
*
Packit 6978fb
* You should have received a copy of the GNU General Public License
Packit 6978fb
* along with this program; if not, write to the Free Software
Packit 6978fb
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Packit 6978fb
*/
Packit 6978fb
Packit 6978fb
Packit 6978fb
#include <glib.h>
Packit 6978fb
#include <glib-object.h>
Packit 6978fb
#include <stdlib.h>
Packit 6978fb
#include <string.h>
Packit 6978fb
#include <ctype.h>
Packit 6978fb
Packit 6978fb
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_TYPE_IMATCHER (gedit_find_in_files_plugin_imatcher_get_type ())
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_IMATCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_IMATCHER, GeditFindInFilesPluginIMatcher))
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_IS_IMATCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_IMATCHER))
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_IMATCHER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_IMATCHER, GeditFindInFilesPluginIMatcherIface))
Packit 6978fb
Packit 6978fb
typedef struct _GeditFindInFilesPluginIMatcher GeditFindInFilesPluginIMatcher;
Packit 6978fb
typedef struct _GeditFindInFilesPluginIMatcherIface GeditFindInFilesPluginIMatcherIface;
Packit 6978fb
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_TYPE_RANGE (gedit_find_in_files_plugin_range_get_type ())
Packit 6978fb
typedef struct _GeditFindInFilesPluginRange GeditFindInFilesPluginRange;
Packit 6978fb
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_TYPE_REGEX_FIND (gedit_find_in_files_plugin_regex_find_get_type ())
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_REGEX_FIND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_REGEX_FIND, GeditFindInFilesPluginRegexFind))
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_REGEX_FIND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_REGEX_FIND, GeditFindInFilesPluginRegexFindClass))
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_IS_REGEX_FIND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_REGEX_FIND))
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_IS_REGEX_FIND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_REGEX_FIND))
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_REGEX_FIND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_REGEX_FIND, GeditFindInFilesPluginRegexFindClass))
Packit 6978fb
Packit 6978fb
typedef struct _GeditFindInFilesPluginRegexFind GeditFindInFilesPluginRegexFind;
Packit 6978fb
typedef struct _GeditFindInFilesPluginRegexFindClass GeditFindInFilesPluginRegexFindClass;
Packit 6978fb
typedef struct _GeditFindInFilesPluginRegexFindPrivate GeditFindInFilesPluginRegexFindPrivate;
Packit 6978fb
enum  {
Packit 6978fb
	GEDIT_FIND_IN_FILES_PLUGIN_REGEX_FIND_0_PROPERTY,
Packit 6978fb
	GEDIT_FIND_IN_FILES_PLUGIN_REGEX_FIND_NUM_PROPERTIES
Packit 6978fb
};
Packit 6978fb
static GParamSpec* gedit_find_in_files_plugin_regex_find_properties[GEDIT_FIND_IN_FILES_PLUGIN_REGEX_FIND_NUM_PROPERTIES];
Packit 6978fb
#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
Packit 6978fb
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
Packit 6978fb
#define _g_match_info_unref0(var) ((var == NULL) ? NULL : (var = (g_match_info_unref (var), NULL)))
Packit 6978fb
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
Packit 6978fb
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_TYPE_BOYER_MOORE_HORSPOOL (gedit_find_in_files_plugin_boyer_moore_horspool_get_type ())
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_BOYER_MOORE_HORSPOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_BOYER_MOORE_HORSPOOL, GeditFindInFilesPluginBoyerMooreHorspool))
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_BOYER_MOORE_HORSPOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_BOYER_MOORE_HORSPOOL, GeditFindInFilesPluginBoyerMooreHorspoolClass))
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_IS_BOYER_MOORE_HORSPOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_BOYER_MOORE_HORSPOOL))
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_IS_BOYER_MOORE_HORSPOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_BOYER_MOORE_HORSPOOL))
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_BOYER_MOORE_HORSPOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_BOYER_MOORE_HORSPOOL, GeditFindInFilesPluginBoyerMooreHorspoolClass))
Packit 6978fb
Packit 6978fb
typedef struct _GeditFindInFilesPluginBoyerMooreHorspool GeditFindInFilesPluginBoyerMooreHorspool;
Packit 6978fb
typedef struct _GeditFindInFilesPluginBoyerMooreHorspoolClass GeditFindInFilesPluginBoyerMooreHorspoolClass;
Packit 6978fb
typedef struct _GeditFindInFilesPluginBoyerMooreHorspoolPrivate GeditFindInFilesPluginBoyerMooreHorspoolPrivate;
Packit 6978fb
enum  {
Packit 6978fb
	GEDIT_FIND_IN_FILES_PLUGIN_BOYER_MOORE_HORSPOOL_0_PROPERTY,
Packit 6978fb
	GEDIT_FIND_IN_FILES_PLUGIN_BOYER_MOORE_HORSPOOL_NUM_PROPERTIES
Packit 6978fb
};
Packit 6978fb
static GParamSpec* gedit_find_in_files_plugin_boyer_moore_horspool_properties[GEDIT_FIND_IN_FILES_PLUGIN_BOYER_MOORE_HORSPOOL_NUM_PROPERTIES];
Packit 6978fb
#define _g_free0(var) (var = (g_free (var), NULL))
Packit 6978fb
Packit 6978fb
struct _GeditFindInFilesPluginRange {
Packit 6978fb
	gsize from;
Packit 6978fb
	gsize to;
Packit 6978fb
};
Packit 6978fb
Packit 6978fb
struct _GeditFindInFilesPluginIMatcherIface {
Packit 6978fb
	GTypeInterface parent_iface;
Packit 6978fb
	gboolean (*has_match) (GeditFindInFilesPluginIMatcher* self, guint8* text, gsize text_length, gsize pos, GeditFindInFilesPluginRange* match);
Packit 6978fb
};
Packit 6978fb
Packit 6978fb
struct _GeditFindInFilesPluginRegexFind {
Packit 6978fb
	GObject parent_instance;
Packit 6978fb
	GeditFindInFilesPluginRegexFindPrivate * priv;
Packit 6978fb
};
Packit 6978fb
Packit 6978fb
struct _GeditFindInFilesPluginRegexFindClass {
Packit 6978fb
	GObjectClass parent_class;
Packit 6978fb
};
Packit 6978fb
Packit 6978fb
struct _GeditFindInFilesPluginRegexFindPrivate {
Packit 6978fb
	GRegex* re;
Packit 6978fb
};
Packit 6978fb
Packit 6978fb
struct _GeditFindInFilesPluginBoyerMooreHorspool {
Packit 6978fb
	GObject parent_instance;
Packit 6978fb
	GeditFindInFilesPluginBoyerMooreHorspoolPrivate * priv;
Packit 6978fb
};
Packit 6978fb
Packit 6978fb
struct _GeditFindInFilesPluginBoyerMooreHorspoolClass {
Packit 6978fb
	GObjectClass parent_class;
Packit 6978fb
};
Packit 6978fb
Packit 6978fb
struct _GeditFindInFilesPluginBoyerMooreHorspoolPrivate {
Packit 6978fb
	gchar* pattern;
Packit 6978fb
	gint bad_char_shift[256];
Packit 6978fb
	gboolean ignore_case;
Packit 6978fb
};
Packit 6978fb
Packit 6978fb
Packit 6978fb
static gpointer gedit_find_in_files_plugin_regex_find_parent_class = NULL;
Packit 6978fb
static GeditFindInFilesPluginIMatcherIface * gedit_find_in_files_plugin_regex_find_gedit_find_in_files_plugin_imatcher_parent_iface = NULL;
Packit 6978fb
static GType gedit_find_in_files_plugin_regex_find_type_id = 0;
Packit 6978fb
static gpointer gedit_find_in_files_plugin_boyer_moore_horspool_parent_class = NULL;
Packit 6978fb
static GeditFindInFilesPluginIMatcherIface * gedit_find_in_files_plugin_boyer_moore_horspool_gedit_find_in_files_plugin_imatcher_parent_iface = NULL;
Packit 6978fb
static GType gedit_find_in_files_plugin_boyer_moore_horspool_type_id = 0;
Packit 6978fb
Packit 6978fb
GType gedit_find_in_files_plugin_range_get_type (void) G_GNUC_CONST;
Packit 6978fb
GeditFindInFilesPluginRange* gedit_find_in_files_plugin_range_dup (const GeditFindInFilesPluginRange* self);
Packit 6978fb
void gedit_find_in_files_plugin_range_free (GeditFindInFilesPluginRange* self);
Packit 6978fb
GType gedit_find_in_files_plugin_imatcher_get_type (void) G_GNUC_CONST;
Packit 6978fb
GType gedit_find_in_files_plugin_regex_find_get_type (void) G_GNUC_CONST;
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_REGEX_FIND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_REGEX_FIND, GeditFindInFilesPluginRegexFindPrivate))
Packit 6978fb
GeditFindInFilesPluginRegexFind* gedit_find_in_files_plugin_regex_find_new (const gchar* pattern,
Packit 6978fb
                                                                            gboolean ignore_case,
Packit 6978fb
                                                                            GError** error);
Packit 6978fb
GeditFindInFilesPluginRegexFind* gedit_find_in_files_plugin_regex_find_construct (GType object_type,
Packit 6978fb
                                                                                  const gchar* pattern,
Packit 6978fb
                                                                                  gboolean ignore_case,
Packit 6978fb
                                                                                  GError** error);
Packit 6978fb
static gboolean gedit_find_in_files_plugin_regex_find_real_has_match (GeditFindInFilesPluginIMatcher* base,
Packit 6978fb
                                                               guint8* text,
Packit 6978fb
                                                               gsize text_length,
Packit 6978fb
                                                               gsize pos,
Packit 6978fb
                                                               GeditFindInFilesPluginRange* match);
Packit 6978fb
static void gedit_find_in_files_plugin_regex_find_finalize (GObject * obj);
Packit 6978fb
GType gedit_find_in_files_plugin_boyer_moore_horspool_get_type (void) G_GNUC_CONST;
Packit 6978fb
#define GEDIT_FIND_IN_FILES_PLUGIN_BOYER_MOORE_HORSPOOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEDIT_FIND_IN_FILES_PLUGIN_TYPE_BOYER_MOORE_HORSPOOL, GeditFindInFilesPluginBoyerMooreHorspoolPrivate))
Packit 6978fb
GeditFindInFilesPluginBoyerMooreHorspool* gedit_find_in_files_plugin_boyer_moore_horspool_new (const gchar* pattern_,
Packit 6978fb
                                                                                               gboolean ignore_case_);
Packit 6978fb
GeditFindInFilesPluginBoyerMooreHorspool* gedit_find_in_files_plugin_boyer_moore_horspool_construct (GType object_type,
Packit 6978fb
                                                                                                     const gchar* pattern_,
Packit 6978fb
                                                                                                     gboolean ignore_case_);
Packit 6978fb
static gboolean gedit_find_in_files_plugin_boyer_moore_horspool_real_has_match (GeditFindInFilesPluginIMatcher* base,
Packit 6978fb
                                                                         guint8* text,
Packit 6978fb
                                                                         gsize text_length,
Packit 6978fb
                                                                         gsize pos,
Packit 6978fb
                                                                         GeditFindInFilesPluginRange* match);
Packit 6978fb
static void gedit_find_in_files_plugin_boyer_moore_horspool_finalize (GObject * obj);
Packit 6978fb
Packit 6978fb
Packit 6978fb
GeditFindInFilesPluginRegexFind*
Packit 6978fb
gedit_find_in_files_plugin_regex_find_construct (GType object_type,
Packit 6978fb
                                                 const gchar* pattern,
Packit 6978fb
                                                 gboolean ignore_case,
Packit 6978fb
                                                 GError** error)
Packit 6978fb
{
Packit 6978fb
	GeditFindInFilesPluginRegexFind * self = NULL;
Packit 6978fb
	GRegexCompileFlags flags = 0;
Packit 6978fb
	GRegex* _tmp1_ = NULL;
Packit 6978fb
	GRegexCompileFlags _tmp2_;
Packit 6978fb
	GRegex* _tmp3_;
Packit 6978fb
	GRegex* _tmp4_;
Packit 6978fb
	GError * _inner_error_ = NULL;
Packit 6978fb
	g_return_val_if_fail (pattern != NULL, NULL);
Packit 6978fb
	self = (GeditFindInFilesPluginRegexFind*) g_object_new (object_type, NULL);
Packit 6978fb
	flags = G_REGEX_OPTIMIZE;
Packit 6978fb
	if (ignore_case) {
Packit 6978fb
		GRegexCompileFlags _tmp0_;
Packit 6978fb
		_tmp0_ = flags;
Packit 6978fb
		flags = _tmp0_ | G_REGEX_CASELESS;
Packit 6978fb
	}
Packit 6978fb
	_tmp2_ = flags;
Packit 6978fb
	_tmp3_ = g_regex_new (pattern, _tmp2_, 0, &_inner_error_);
Packit 6978fb
	_tmp1_ = _tmp3_;
Packit 6978fb
	if (G_UNLIKELY (_inner_error_ != NULL)) {
Packit 6978fb
		g_propagate_error (error, _inner_error_);
Packit 6978fb
		_g_object_unref0 (self);
Packit 6978fb
		return NULL;
Packit 6978fb
	}
Packit 6978fb
	_tmp4_ = _tmp1_;
Packit 6978fb
	_tmp1_ = NULL;
Packit 6978fb
	_g_regex_unref0 (self->priv->re);
Packit 6978fb
	self->priv->re = _tmp4_;
Packit 6978fb
	_g_regex_unref0 (_tmp1_);
Packit 6978fb
	return self;
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
GeditFindInFilesPluginRegexFind*
Packit 6978fb
gedit_find_in_files_plugin_regex_find_new (const gchar* pattern,
Packit 6978fb
                                           gboolean ignore_case,
Packit 6978fb
                                           GError** error)
Packit 6978fb
{
Packit 6978fb
	return gedit_find_in_files_plugin_regex_find_construct (GEDIT_FIND_IN_FILES_PLUGIN_TYPE_REGEX_FIND, pattern, ignore_case, error);
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
static gboolean
Packit 6978fb
gedit_find_in_files_plugin_regex_find_real_has_match (GeditFindInFilesPluginIMatcher* base,
Packit 6978fb
                                                      guint8* text,
Packit 6978fb
                                                      gsize text_length,
Packit 6978fb
                                                      gsize pos,
Packit 6978fb
                                                      GeditFindInFilesPluginRange* match)
Packit 6978fb
{
Packit 6978fb
	GeditFindInFilesPluginRegexFind * self;
Packit 6978fb
	gboolean result = FALSE;
Packit 6978fb
	GMatchInfo* info = NULL;
Packit 6978fb
	gint casted_pos = 0;
Packit 6978fb
	const gchar* str = NULL;
Packit 6978fb
	gint _tmp9_ = 0;
Packit 6978fb
	gint _tmp10_ = 0;
Packit 6978fb
	GError * _inner_error_ = NULL;
Packit 6978fb
	self = (GeditFindInFilesPluginRegexFind*) base;
Packit 6978fb
	g_return_val_if_fail (match != NULL, FALSE);
Packit 6978fb
	if (pos > ((gsize) G_MAXINT)) {
Packit 6978fb
		casted_pos = 0;
Packit 6978fb
		text = text + pos;
Packit 6978fb
	} else {
Packit 6978fb
		casted_pos = (gint) pos;
Packit 6978fb
	}
Packit 6978fb
	str = (const gchar*) text;
Packit 6978fb
	{
Packit 6978fb
		gboolean _tmp0_ = FALSE;
Packit 6978fb
		GRegex* _tmp1_;
Packit 6978fb
		gint _tmp2_;
Packit 6978fb
		GMatchInfo* _tmp3_ = NULL;
Packit 6978fb
		gboolean _tmp4_;
Packit 6978fb
		_tmp1_ = self->priv->re;
Packit 6978fb
		_tmp2_ = casted_pos;
Packit 6978fb
		_tmp4_ = g_regex_match_full (_tmp1_, str, (gssize) text_length, _tmp2_, 0, &_tmp3_, &_inner_error_);
Packit 6978fb
		_g_match_info_unref0 (info);
Packit 6978fb
		info = _tmp3_;
Packit 6978fb
		_tmp0_ = _tmp4_;
Packit 6978fb
		if (G_UNLIKELY (_inner_error_ != NULL)) {
Packit 6978fb
			gboolean _tmp5_ = FALSE;
Packit 6978fb
			if (_inner_error_->domain == G_REGEX_ERROR) {
Packit 6978fb
				goto __catch3_g_regex_error;
Packit 6978fb
			}
Packit 6978fb
			_g_match_info_unref0 (info);
Packit 6978fb
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
Packit 6978fb
			g_clear_error (&_inner_error_);
Packit 6978fb
			return _tmp5_;
Packit 6978fb
		}
Packit 6978fb
		if (!_tmp0_) {
Packit 6978fb
			result = FALSE;
Packit 6978fb
			_g_match_info_unref0 (info);
Packit 6978fb
			return result;
Packit 6978fb
		}
Packit 6978fb
	}
Packit 6978fb
	goto __finally3;
Packit 6978fb
	__catch3_g_regex_error:
Packit 6978fb
	{
Packit 6978fb
		GError* err = NULL;
Packit 6978fb
		GError* _tmp6_;
Packit 6978fb
		const gchar* _tmp7_;
Packit 6978fb
		err = _inner_error_;
Packit 6978fb
		_inner_error_ = NULL;
Packit 6978fb
		_tmp6_ = err;
Packit 6978fb
		_tmp7_ = _tmp6_->message;
Packit 6978fb
		g_warning ("matcher.vala:55: %s", _tmp7_);
Packit 6978fb
		result = FALSE;
Packit 6978fb
		_g_error_free0 (err);
Packit 6978fb
		_g_match_info_unref0 (info);
Packit 6978fb
		return result;
Packit 6978fb
	}
Packit 6978fb
	__finally3:
Packit 6978fb
	if (G_UNLIKELY (_inner_error_ != NULL)) {
Packit 6978fb
		gboolean _tmp8_ = FALSE;
Packit 6978fb
		_g_match_info_unref0 (info);
Packit 6978fb
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
Packit 6978fb
		g_clear_error (&_inner_error_);
Packit 6978fb
		return _tmp8_;
Packit 6978fb
	}
Packit 6978fb
	g_match_info_fetch_pos (info, 0, &_tmp9_, &_tmp10_);
Packit 6978fb
	(*match).from = (gsize) _tmp9_;
Packit 6978fb
	(*match).to = (gsize) _tmp10_;
Packit 6978fb
	result = TRUE;
Packit 6978fb
	_g_match_info_unref0 (info);
Packit 6978fb
	return result;
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
static void
Packit 6978fb
gedit_find_in_files_plugin_regex_find_class_init (GeditFindInFilesPluginRegexFindClass * klass)
Packit 6978fb
{
Packit 6978fb
	gedit_find_in_files_plugin_regex_find_parent_class = g_type_class_peek_parent (klass);
Packit 6978fb
	g_type_class_add_private (klass, sizeof (GeditFindInFilesPluginRegexFindPrivate));
Packit 6978fb
	G_OBJECT_CLASS (klass)->finalize = gedit_find_in_files_plugin_regex_find_finalize;
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
static void
Packit 6978fb
gedit_find_in_files_plugin_regex_find_gedit_find_in_files_plugin_imatcher_interface_init (GeditFindInFilesPluginIMatcherIface * iface)
Packit 6978fb
{
Packit 6978fb
	gedit_find_in_files_plugin_regex_find_gedit_find_in_files_plugin_imatcher_parent_iface = g_type_interface_peek_parent (iface);
Packit 6978fb
	iface->has_match = (gboolean (*) (GeditFindInFilesPluginIMatcher *, guint8*, gsize, gsize, GeditFindInFilesPluginRange*)) gedit_find_in_files_plugin_regex_find_real_has_match;
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
static void
Packit 6978fb
gedit_find_in_files_plugin_regex_find_instance_init (GeditFindInFilesPluginRegexFind * self)
Packit 6978fb
{
Packit 6978fb
	self->priv = GEDIT_FIND_IN_FILES_PLUGIN_REGEX_FIND_GET_PRIVATE (self);
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
static void
Packit 6978fb
gedit_find_in_files_plugin_regex_find_finalize (GObject * obj)
Packit 6978fb
{
Packit 6978fb
	GeditFindInFilesPluginRegexFind * self;
Packit 6978fb
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEDIT_FIND_IN_FILES_PLUGIN_TYPE_REGEX_FIND, GeditFindInFilesPluginRegexFind);
Packit 6978fb
	_g_regex_unref0 (self->priv->re);
Packit 6978fb
	G_OBJECT_CLASS (gedit_find_in_files_plugin_regex_find_parent_class)->finalize (obj);
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
GType
Packit 6978fb
gedit_find_in_files_plugin_regex_find_get_type (void)
Packit 6978fb
{
Packit 6978fb
	return gedit_find_in_files_plugin_regex_find_type_id;
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
GType
Packit 6978fb
gedit_find_in_files_plugin_regex_find_register_type (GTypeModule * module)
Packit 6978fb
{
Packit 6978fb
	static const GTypeInfo g_define_type_info = { sizeof (GeditFindInFilesPluginRegexFindClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gedit_find_in_files_plugin_regex_find_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeditFindInFilesPluginRegexFind), 0, (GInstanceInitFunc) gedit_find_in_files_plugin_regex_find_instance_init, NULL };
Packit 6978fb
	static const GInterfaceInfo gedit_find_in_files_plugin_imatcher_info = { (GInterfaceInitFunc) gedit_find_in_files_plugin_regex_find_gedit_find_in_files_plugin_imatcher_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
Packit 6978fb
	gedit_find_in_files_plugin_regex_find_type_id = g_type_module_register_type (module, G_TYPE_OBJECT, "GeditFindInFilesPluginRegexFind", &g_define_type_info, 0);
Packit 6978fb
	g_type_module_add_interface (module, gedit_find_in_files_plugin_regex_find_type_id, GEDIT_FIND_IN_FILES_PLUGIN_TYPE_IMATCHER, &gedit_find_in_files_plugin_imatcher_info);
Packit 6978fb
	return gedit_find_in_files_plugin_regex_find_type_id;
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
static gchar
Packit 6978fb
string_get (const gchar* self,
Packit 6978fb
            glong index)
Packit 6978fb
{
Packit 6978fb
	gchar result = '\0';
Packit 6978fb
	gchar _tmp0_;
Packit 6978fb
	g_return_val_if_fail (self != NULL, '\0');
Packit 6978fb
	_tmp0_ = ((gchar*) self)[index];
Packit 6978fb
	result = _tmp0_;
Packit 6978fb
	return result;
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
GeditFindInFilesPluginBoyerMooreHorspool*
Packit 6978fb
gedit_find_in_files_plugin_boyer_moore_horspool_construct (GType object_type,
Packit 6978fb
                                                           const gchar* pattern_,
Packit 6978fb
                                                           gboolean ignore_case_)
Packit 6978fb
{
Packit 6978fb
	GeditFindInFilesPluginBoyerMooreHorspool * self = NULL;
Packit 6978fb
	gchar* _tmp0_;
Packit 6978fb
	g_return_val_if_fail (pattern_ != NULL, NULL);
Packit 6978fb
	self = (GeditFindInFilesPluginBoyerMooreHorspool*) g_object_new (object_type, NULL);
Packit 6978fb
	_tmp0_ = g_strdup (pattern_);
Packit 6978fb
	_g_free0 (self->priv->pattern);
Packit 6978fb
	self->priv->pattern = _tmp0_;
Packit 6978fb
	self->priv->ignore_case = ignore_case_;
Packit 6978fb
	{
Packit 6978fb
		gint i = 0;
Packit 6978fb
		i = 0;
Packit 6978fb
		{
Packit 6978fb
			gboolean _tmp1_ = FALSE;
Packit 6978fb
			_tmp1_ = TRUE;
Packit 6978fb
			while (TRUE) {
Packit 6978fb
				gint _tmp3_;
Packit 6978fb
				gint _tmp4_;
Packit 6978fb
				const gchar* _tmp5_;
Packit 6978fb
				gint _tmp6_;
Packit 6978fb
				gint _tmp7_;
Packit 6978fb
				gint _tmp8_;
Packit 6978fb
				if (!_tmp1_) {
Packit 6978fb
					gint _tmp2_;
Packit 6978fb
					_tmp2_ = i;
Packit 6978fb
					i = _tmp2_ + 1;
Packit 6978fb
				}
Packit 6978fb
				_tmp1_ = FALSE;
Packit 6978fb
				_tmp3_ = i;
Packit 6978fb
				if (!(_tmp3_ < 256)) {
Packit 6978fb
					break;
Packit 6978fb
				}
Packit 6978fb
				_tmp4_ = i;
Packit 6978fb
				_tmp5_ = self->priv->pattern;
Packit 6978fb
				_tmp6_ = strlen (_tmp5_);
Packit 6978fb
				_tmp7_ = _tmp6_;
Packit 6978fb
				self->priv->bad_char_shift[_tmp4_] = _tmp7_;
Packit 6978fb
				_tmp8_ = self->priv->bad_char_shift[_tmp4_];
Packit 6978fb
			}
Packit 6978fb
		}
Packit 6978fb
	}
Packit 6978fb
	{
Packit 6978fb
		gint i = 0;
Packit 6978fb
		i = 0;
Packit 6978fb
		{
Packit 6978fb
			gboolean _tmp9_ = FALSE;
Packit 6978fb
			_tmp9_ = TRUE;
Packit 6978fb
			while (TRUE) {
Packit 6978fb
				gint _tmp11_;
Packit 6978fb
				const gchar* _tmp12_;
Packit 6978fb
				gint _tmp13_;
Packit 6978fb
				gint _tmp14_;
Packit 6978fb
				gboolean _tmp15_;
Packit 6978fb
				if (!_tmp9_) {
Packit 6978fb
					gint _tmp10_;
Packit 6978fb
					_tmp10_ = i;
Packit 6978fb
					i = _tmp10_ + 1;
Packit 6978fb
				}
Packit 6978fb
				_tmp9_ = FALSE;
Packit 6978fb
				_tmp11_ = i;
Packit 6978fb
				_tmp12_ = self->priv->pattern;
Packit 6978fb
				_tmp13_ = strlen (_tmp12_);
Packit 6978fb
				_tmp14_ = _tmp13_;
Packit 6978fb
				if (!(_tmp11_ < (_tmp14_ - 1))) {
Packit 6978fb
					break;
Packit 6978fb
				}
Packit 6978fb
				_tmp15_ = self->priv->ignore_case;
Packit 6978fb
				if (_tmp15_) {
Packit 6978fb
					const gchar* _tmp16_;
Packit 6978fb
					gint _tmp17_;
Packit 6978fb
					const gchar* _tmp18_;
Packit 6978fb
					gint _tmp19_;
Packit 6978fb
					gint _tmp20_;
Packit 6978fb
					gint _tmp21_;
Packit 6978fb
					gint _tmp22_;
Packit 6978fb
					const gchar* _tmp23_;
Packit 6978fb
					gint _tmp24_;
Packit 6978fb
					const gchar* _tmp25_;
Packit 6978fb
					gint _tmp26_;
Packit 6978fb
					gint _tmp27_;
Packit 6978fb
					gint _tmp28_;
Packit 6978fb
					gint _tmp29_;
Packit 6978fb
					_tmp16_ = self->priv->pattern;
Packit 6978fb
					_tmp17_ = i;
Packit 6978fb
					_tmp18_ = self->priv->pattern;
Packit 6978fb
					_tmp19_ = strlen (_tmp18_);
Packit 6978fb
					_tmp20_ = _tmp19_;
Packit 6978fb
					_tmp21_ = i;
Packit 6978fb
					self->priv->bad_char_shift[toupper ((gint) string_get (_tmp16_, (glong) _tmp17_))] = (_tmp20_ - 1) - _tmp21_;
Packit 6978fb
					_tmp22_ = self->priv->bad_char_shift[toupper ((gint) string_get (_tmp16_, (glong) _tmp17_))];
Packit 6978fb
					_tmp23_ = self->priv->pattern;
Packit 6978fb
					_tmp24_ = i;
Packit 6978fb
					_tmp25_ = self->priv->pattern;
Packit 6978fb
					_tmp26_ = strlen (_tmp25_);
Packit 6978fb
					_tmp27_ = _tmp26_;
Packit 6978fb
					_tmp28_ = i;
Packit 6978fb
					self->priv->bad_char_shift[tolower ((gint) string_get (_tmp23_, (glong) _tmp24_))] = (_tmp27_ - 1) - _tmp28_;
Packit 6978fb
					_tmp29_ = self->priv->bad_char_shift[tolower ((gint) string_get (_tmp23_, (glong) _tmp24_))];
Packit 6978fb
				} else {
Packit 6978fb
					const gchar* _tmp30_;
Packit 6978fb
					gint _tmp31_;
Packit 6978fb
					const gchar* _tmp32_;
Packit 6978fb
					gint _tmp33_;
Packit 6978fb
					gint _tmp34_;
Packit 6978fb
					gint _tmp35_;
Packit 6978fb
					gint _tmp36_;
Packit 6978fb
					_tmp30_ = self->priv->pattern;
Packit 6978fb
					_tmp31_ = i;
Packit 6978fb
					_tmp32_ = self->priv->pattern;
Packit 6978fb
					_tmp33_ = strlen (_tmp32_);
Packit 6978fb
					_tmp34_ = _tmp33_;
Packit 6978fb
					_tmp35_ = i;
Packit 6978fb
					self->priv->bad_char_shift[string_get (_tmp30_, (glong) _tmp31_)] = (_tmp34_ - 1) - _tmp35_;
Packit 6978fb
					_tmp36_ = self->priv->bad_char_shift[string_get (_tmp30_, (glong) _tmp31_)];
Packit 6978fb
				}
Packit 6978fb
			}
Packit 6978fb
		}
Packit 6978fb
	}
Packit 6978fb
	return self;
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
GeditFindInFilesPluginBoyerMooreHorspool*
Packit 6978fb
gedit_find_in_files_plugin_boyer_moore_horspool_new (const gchar* pattern_,
Packit 6978fb
                                                     gboolean ignore_case_)
Packit 6978fb
{
Packit 6978fb
	return gedit_find_in_files_plugin_boyer_moore_horspool_construct (GEDIT_FIND_IN_FILES_PLUGIN_TYPE_BOYER_MOORE_HORSPOOL, pattern_, ignore_case_);
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
static gboolean
Packit 6978fb
gedit_find_in_files_plugin_boyer_moore_horspool_real_has_match (GeditFindInFilesPluginIMatcher* base,
Packit 6978fb
                                                                guint8* text,
Packit 6978fb
                                                                gsize text_length,
Packit 6978fb
                                                                gsize pos,
Packit 6978fb
                                                                GeditFindInFilesPluginRange* match)
Packit 6978fb
{
Packit 6978fb
	GeditFindInFilesPluginBoyerMooreHorspool * self;
Packit 6978fb
	gboolean result = FALSE;
Packit 6978fb
	guint i = 0U;
Packit 6978fb
	const gchar* _tmp0_;
Packit 6978fb
	gint _tmp1_;
Packit 6978fb
	gint _tmp2_;
Packit 6978fb
	self = (GeditFindInFilesPluginBoyerMooreHorspool*) base;
Packit 6978fb
	g_return_val_if_fail (match != NULL, FALSE);
Packit 6978fb
	i = (guint) 0;
Packit 6978fb
	text = text + pos;
Packit 6978fb
	text_length = text_length - pos;
Packit 6978fb
	_tmp0_ = self->priv->pattern;
Packit 6978fb
	_tmp1_ = strlen (_tmp0_);
Packit 6978fb
	_tmp2_ = _tmp1_;
Packit 6978fb
	if (text_length < ((gsize) _tmp2_)) {
Packit 6978fb
		result = FALSE;
Packit 6978fb
		return result;
Packit 6978fb
	}
Packit 6978fb
	while (TRUE) {
Packit 6978fb
		guint _tmp3_;
Packit 6978fb
		const gchar* _tmp4_;
Packit 6978fb
		gint _tmp5_;
Packit 6978fb
		gint _tmp6_;
Packit 6978fb
		guint _tmp31_;
Packit 6978fb
		guint _tmp32_;
Packit 6978fb
		const gchar* _tmp33_;
Packit 6978fb
		gint _tmp34_;
Packit 6978fb
		gint _tmp35_;
Packit 6978fb
		guint8 _tmp36_;
Packit 6978fb
		gint _tmp37_;
Packit 6978fb
		_tmp3_ = i;
Packit 6978fb
		_tmp4_ = self->priv->pattern;
Packit 6978fb
		_tmp5_ = strlen (_tmp4_);
Packit 6978fb
		_tmp6_ = _tmp5_;
Packit 6978fb
		if (!(((gsize) _tmp3_) <= (text_length - _tmp6_))) {
Packit 6978fb
			break;
Packit 6978fb
		}
Packit 6978fb
		{
Packit 6978fb
			gint j = 0;
Packit 6978fb
			const gchar* _tmp7_;
Packit 6978fb
			gint _tmp8_;
Packit 6978fb
			gint _tmp9_;
Packit 6978fb
			_tmp7_ = self->priv->pattern;
Packit 6978fb
			_tmp8_ = strlen (_tmp7_);
Packit 6978fb
			_tmp9_ = _tmp8_;
Packit 6978fb
			j = _tmp9_ - 1;
Packit 6978fb
			{
Packit 6978fb
				gboolean _tmp10_ = FALSE;
Packit 6978fb
				_tmp10_ = TRUE;
Packit 6978fb
				while (TRUE) {
Packit 6978fb
					gint _tmp12_;
Packit 6978fb
					gboolean _tmp13_;
Packit 6978fb
					gint _tmp24_;
Packit 6978fb
					if (!_tmp10_) {
Packit 6978fb
						gint _tmp11_;
Packit 6978fb
						_tmp11_ = j;
Packit 6978fb
						j = _tmp11_ - 1;
Packit 6978fb
					}
Packit 6978fb
					_tmp10_ = FALSE;
Packit 6978fb
					_tmp12_ = j;
Packit 6978fb
					if (!(_tmp12_ >= 0)) {
Packit 6978fb
						break;
Packit 6978fb
					}
Packit 6978fb
					_tmp13_ = self->priv->ignore_case;
Packit 6978fb
					if (_tmp13_) {
Packit 6978fb
						guint _tmp14_;
Packit 6978fb
						gint _tmp15_;
Packit 6978fb
						guint8 _tmp16_;
Packit 6978fb
						const gchar* _tmp17_;
Packit 6978fb
						gint _tmp18_;
Packit 6978fb
						_tmp14_ = i;
Packit 6978fb
						_tmp15_ = j;
Packit 6978fb
						_tmp16_ = text[_tmp14_ + _tmp15_];
Packit 6978fb
						_tmp17_ = self->priv->pattern;
Packit 6978fb
						_tmp18_ = j;
Packit 6978fb
						if (tolower ((gint) _tmp16_) != tolower ((gint) string_get (_tmp17_, (glong) _tmp18_))) {
Packit 6978fb
							break;
Packit 6978fb
						}
Packit 6978fb
					} else {
Packit 6978fb
						guint _tmp19_;
Packit 6978fb
						gint _tmp20_;
Packit 6978fb
						guint8 _tmp21_;
Packit 6978fb
						const gchar* _tmp22_;
Packit 6978fb
						gint _tmp23_;
Packit 6978fb
						_tmp19_ = i;
Packit 6978fb
						_tmp20_ = j;
Packit 6978fb
						_tmp21_ = text[_tmp19_ + _tmp20_];
Packit 6978fb
						_tmp22_ = self->priv->pattern;
Packit 6978fb
						_tmp23_ = j;
Packit 6978fb
						if (_tmp21_ != ((guint8) string_get (_tmp22_, (glong) _tmp23_))) {
Packit 6978fb
							break;
Packit 6978fb
						}
Packit 6978fb
					}
Packit 6978fb
					_tmp24_ = j;
Packit 6978fb
					if (_tmp24_ == 0) {
Packit 6978fb
						guint _tmp25_;
Packit 6978fb
						GeditFindInFilesPluginRange _tmp26_;
Packit 6978fb
						gsize _tmp27_;
Packit 6978fb
						const gchar* _tmp28_;
Packit 6978fb
						gint _tmp29_;
Packit 6978fb
						gint _tmp30_;
Packit 6978fb
						_tmp25_ = i;
Packit 6978fb
						(*match).from = pos + _tmp25_;
Packit 6978fb
						_tmp26_ = *match;
Packit 6978fb
						_tmp27_ = _tmp26_.from;
Packit 6978fb
						_tmp28_ = self->priv->pattern;
Packit 6978fb
						_tmp29_ = strlen (_tmp28_);
Packit 6978fb
						_tmp30_ = _tmp29_;
Packit 6978fb
						(*match).to = _tmp27_ + _tmp30_;
Packit 6978fb
						result = TRUE;
Packit 6978fb
						return result;
Packit 6978fb
					}
Packit 6978fb
				}
Packit 6978fb
			}
Packit 6978fb
		}
Packit 6978fb
		_tmp31_ = i;
Packit 6978fb
		_tmp32_ = i;
Packit 6978fb
		_tmp33_ = self->priv->pattern;
Packit 6978fb
		_tmp34_ = strlen (_tmp33_);
Packit 6978fb
		_tmp35_ = _tmp34_;
Packit 6978fb
		_tmp36_ = text[(_tmp32_ + _tmp35_) - 1];
Packit 6978fb
		_tmp37_ = self->priv->bad_char_shift[_tmp36_];
Packit 6978fb
		i = _tmp31_ + _tmp37_;
Packit 6978fb
	}
Packit 6978fb
	result = FALSE;
Packit 6978fb
	return result;
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
static void
Packit 6978fb
gedit_find_in_files_plugin_boyer_moore_horspool_class_init (GeditFindInFilesPluginBoyerMooreHorspoolClass * klass)
Packit 6978fb
{
Packit 6978fb
	gedit_find_in_files_plugin_boyer_moore_horspool_parent_class = g_type_class_peek_parent (klass);
Packit 6978fb
	g_type_class_add_private (klass, sizeof (GeditFindInFilesPluginBoyerMooreHorspoolPrivate));
Packit 6978fb
	G_OBJECT_CLASS (klass)->finalize = gedit_find_in_files_plugin_boyer_moore_horspool_finalize;
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
static void
Packit 6978fb
gedit_find_in_files_plugin_boyer_moore_horspool_gedit_find_in_files_plugin_imatcher_interface_init (GeditFindInFilesPluginIMatcherIface * iface)
Packit 6978fb
{
Packit 6978fb
	gedit_find_in_files_plugin_boyer_moore_horspool_gedit_find_in_files_plugin_imatcher_parent_iface = g_type_interface_peek_parent (iface);
Packit 6978fb
	iface->has_match = (gboolean (*) (GeditFindInFilesPluginIMatcher *, guint8*, gsize, gsize, GeditFindInFilesPluginRange*)) gedit_find_in_files_plugin_boyer_moore_horspool_real_has_match;
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
static void
Packit 6978fb
gedit_find_in_files_plugin_boyer_moore_horspool_instance_init (GeditFindInFilesPluginBoyerMooreHorspool * self)
Packit 6978fb
{
Packit 6978fb
	self->priv = GEDIT_FIND_IN_FILES_PLUGIN_BOYER_MOORE_HORSPOOL_GET_PRIVATE (self);
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
static void
Packit 6978fb
gedit_find_in_files_plugin_boyer_moore_horspool_finalize (GObject * obj)
Packit 6978fb
{
Packit 6978fb
	GeditFindInFilesPluginBoyerMooreHorspool * self;
Packit 6978fb
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEDIT_FIND_IN_FILES_PLUGIN_TYPE_BOYER_MOORE_HORSPOOL, GeditFindInFilesPluginBoyerMooreHorspool);
Packit 6978fb
	_g_free0 (self->priv->pattern);
Packit 6978fb
	G_OBJECT_CLASS (gedit_find_in_files_plugin_boyer_moore_horspool_parent_class)->finalize (obj);
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
GType
Packit 6978fb
gedit_find_in_files_plugin_boyer_moore_horspool_get_type (void)
Packit 6978fb
{
Packit 6978fb
	return gedit_find_in_files_plugin_boyer_moore_horspool_type_id;
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb
GType
Packit 6978fb
gedit_find_in_files_plugin_boyer_moore_horspool_register_type (GTypeModule * module)
Packit 6978fb
{
Packit 6978fb
	static const GTypeInfo g_define_type_info = { sizeof (GeditFindInFilesPluginBoyerMooreHorspoolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gedit_find_in_files_plugin_boyer_moore_horspool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeditFindInFilesPluginBoyerMooreHorspool), 0, (GInstanceInitFunc) gedit_find_in_files_plugin_boyer_moore_horspool_instance_init, NULL };
Packit 6978fb
	static const GInterfaceInfo gedit_find_in_files_plugin_imatcher_info = { (GInterfaceInitFunc) gedit_find_in_files_plugin_boyer_moore_horspool_gedit_find_in_files_plugin_imatcher_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
Packit 6978fb
	gedit_find_in_files_plugin_boyer_moore_horspool_type_id = g_type_module_register_type (module, G_TYPE_OBJECT, "GeditFindInFilesPluginBoyerMooreHorspool", &g_define_type_info, 0);
Packit 6978fb
	g_type_module_add_interface (module, gedit_find_in_files_plugin_boyer_moore_horspool_type_id, GEDIT_FIND_IN_FILES_PLUGIN_TYPE_IMATCHER, &gedit_find_in_files_plugin_imatcher_info);
Packit 6978fb
	return gedit_find_in_files_plugin_boyer_moore_horspool_type_id;
Packit 6978fb
}
Packit 6978fb
Packit 6978fb
Packit 6978fb