diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2002-11-12 01:34:05 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2002-11-12 01:34:05 +0800 |
commit | cca2134ea95e69ce80a83cabde16c9e8818c8b15 (patch) | |
tree | 19246eb7d084bec19e307fa684de283210a32784 /mail/e-searching-tokenizer.c | |
parent | f2b2d6abb5f56436fcb06a62d73a728b4eda462b (diff) | |
download | gsoc2013-evolution-cca2134ea95e69ce80a83cabde16c9e8818c8b15.tar.gz gsoc2013-evolution-cca2134ea95e69ce80a83cabde16c9e8818c8b15.tar.zst gsoc2013-evolution-cca2134ea95e69ce80a83cabde16c9e8818c8b15.zip |
Ported.
2002-11-11 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser.c: Ported.
* e-searching-tokenizer.c: Roughly ported.
svn path=/trunk/; revision=18697
Diffstat (limited to 'mail/e-searching-tokenizer.c')
-rw-r--r-- | mail/e-searching-tokenizer.c | 141 |
1 files changed, 70 insertions, 71 deletions
diff --git a/mail/e-searching-tokenizer.c b/mail/e-searching-tokenizer.c index 0c1e090cb5..ec77a2be4c 100644 --- a/mail/e-searching-tokenizer.c +++ b/mail/e-searching-tokenizer.c @@ -35,7 +35,6 @@ #include <string.h> #include <ctype.h> -#include <gal/unicode/gunicode.h> #include "e-searching-tokenizer.h" #include "e-util/e-memory.h" @@ -44,15 +43,16 @@ #define d(x) enum { - EST_MATCH_SIGNAL, - EST_LAST_SIGNAL + MATCH_SIGNAL, + LAST_SIGNAL }; -guint e_searching_tokenizer_signals[EST_LAST_SIGNAL] = { 0 }; -static void e_searching_tokenizer_begin (HTMLTokenizer *, gchar *); +static guint signals[LAST_SIGNAL] = { 0, }; + +static void e_searching_tokenizer_begin (HTMLTokenizer *, char *); static void e_searching_tokenizer_end (HTMLTokenizer *); -static gchar *e_searching_tokenizer_peek_token (HTMLTokenizer *); -static gchar *e_searching_tokenizer_next_token (HTMLTokenizer *); +static char *e_searching_tokenizer_peek_token (HTMLTokenizer *); +static char *e_searching_tokenizer_next_token (HTMLTokenizer *); static gboolean e_searching_tokenizer_has_more (HTMLTokenizer *); static HTMLTokenizer *e_searching_tokenizer_clone (HTMLTokenizer *); @@ -60,7 +60,7 @@ static HTMLTokenizer *e_searching_tokenizer_clone (HTMLTokenizer *); /* static const gchar *space_tags[] = { "br", NULL };*/ -GtkObjectClass *parent_class = NULL; +static HTMLTokenizerClass *parent_class = NULL; /** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **/ @@ -969,20 +969,20 @@ e_searching_tokenizer_destroy (GtkObject *obj) { ESearchingTokenizer *st = E_SEARCHING_TOKENIZER (obj); struct _ESearchingTokenizerPrivate *p = st->priv; - + search_info_free (p->primary); search_info_free (p->secondary); if (p->engine) searcher_free(p->engine); - + /* again wtf? shared_state_unref (st->priv->shared); */ - - g_free(p); - - if (parent_class->destroy) - parent_class->destroy (obj); + + g_free (p); + + if (GTK_OBJECT_CLASS (parent_class)->destroy) + GTK_OBJECT_CLASS (parent_class)->destroy (obj); } static void @@ -990,28 +990,28 @@ e_searching_tokenizer_class_init (ESearchingTokenizerClass *klass) { GtkObjectClass *obj_class = (GtkObjectClass *) klass; HTMLTokenizerClass *tok_class = HTML_TOKENIZER_CLASS (klass); - - e_searching_tokenizer_signals[EST_MATCH_SIGNAL] = - gtk_signal_new ("match", - GTK_RUN_LAST, - obj_class->type, - GTK_SIGNAL_OFFSET (ESearchingTokenizerClass, match), - gtk_marshal_NONE__NONE, - GTK_TYPE_NONE, - 0); - gtk_object_class_add_signals (obj_class, e_searching_tokenizer_signals, EST_LAST_SIGNAL); - + + parent_class = g_type_class_ref (HTML_TYPE_TOKENIZER); + + signals[MATCH_SIGNAL] = + g_signal_new ("match", + E_TYPE_SEARCHING_TOKENIZER, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (ESearchingTokenizerClass, match), + NULL, + NULL, + gtk_marshal_NONE__NONE, + G_TYPE_NONE, 0); + obj_class->destroy = e_searching_tokenizer_destroy; - - tok_class->begin = e_searching_tokenizer_begin; - tok_class->end = e_searching_tokenizer_end; - + + tok_class->begin = e_searching_tokenizer_begin; + tok_class->end = e_searching_tokenizer_end; + tok_class->peek_token = e_searching_tokenizer_peek_token; tok_class->next_token = e_searching_tokenizer_next_token; - tok_class->has_more = e_searching_tokenizer_has_more; - tok_class->clone = e_searching_tokenizer_clone; - - parent_class = gtk_type_class (HTML_TYPE_TOKENIZER); + tok_class->has_more = e_searching_tokenizer_has_more; + tok_class->clone = e_searching_tokenizer_clone; } static void @@ -1033,22 +1033,24 @@ e_searching_tokenizer_init (ESearchingTokenizer *st) GtkType e_searching_tokenizer_get_type (void) { - static GtkType e_searching_tokenizer_type = 0; - - if (! e_searching_tokenizer_type) { - static GtkTypeInfo e_searching_tokenizer_info = { + static GtkType type = 0; + + if (!type) { + static const GtkTypeInfo info = { "ESearchingTokenizer", sizeof (ESearchingTokenizer), sizeof (ESearchingTokenizerClass), (GtkClassInitFunc) e_searching_tokenizer_class_init, (GtkObjectInitFunc) e_searching_tokenizer_init, - NULL, NULL, - (GtkClassInitFunc) NULL + /* reserved_1 */ NULL, + /* reserved_2 */ NULL, + (GtkClassInitFunc) NULL, }; - e_searching_tokenizer_type = gtk_type_unique (HTML_TYPE_TOKENIZER, - &e_searching_tokenizer_info); + + type = gtk_type_unique (HTML_TYPE_TOKENIZER, &info); } - return e_searching_tokenizer_type; + + return type; } HTMLTokenizer * @@ -1064,12 +1066,12 @@ e_searching_tokenizer_new (void) static char *get_token(HTMLTokenizer *t) { HTMLTokenizerClass *klass = HTML_TOKENIZER_CLASS (parent_class); - + return klass->has_more(t) ? klass->next_token(t) : NULL; } static void -e_searching_tokenizer_begin (HTMLTokenizer *t, gchar *content_type) +e_searching_tokenizer_begin (HTMLTokenizer *t, char *content_type) { ESearchingTokenizer *st = E_SEARCHING_TOKENIZER (t); struct _ESearchingTokenizerPrivate *p = st->priv; @@ -1111,7 +1113,7 @@ e_searching_tokenizer_end (HTMLTokenizer *t) HTML_TOKENIZER_CLASS (parent_class)->end (t); } -static gchar * +static char * e_searching_tokenizer_peek_token (HTMLTokenizer *tok) { ESearchingTokenizer *st = E_SEARCHING_TOKENIZER (tok); @@ -1123,25 +1125,25 @@ e_searching_tokenizer_peek_token (HTMLTokenizer *tok) return searcher_peek_token(st->priv->engine); } -static gchar * +static char * e_searching_tokenizer_next_token (HTMLTokenizer *tok) { ESearchingTokenizer *st = E_SEARCHING_TOKENIZER (tok); int oldmatched; char *token; - + /* If no search is active, just use the default method. */ if (st->priv->engine == NULL) return HTML_TOKENIZER_CLASS (parent_class)->next_token (tok); - + oldmatched = st->priv->engine->matchcount; - + token = searcher_next_token(st->priv->engine); - + /* not sure if this has to be accurate or just say we had some matches */ if (oldmatched != st->priv->engine->matchcount) - gtk_signal_emit (GTK_OBJECT (st), e_searching_tokenizer_signals[EST_MATCH_SIGNAL]); - + g_signal_emit (st, signals[MATCH_SIGNAL], 0); + return token; } @@ -1159,7 +1161,7 @@ static void matched (ESearchingTokenizer *st) { /*++st->priv->match_count;*/ - gtk_signal_emit (GTK_OBJECT (st), e_searching_tokenizer_signals[EST_MATCH_SIGNAL]); + g_signal_emit (st, signals[MATCH_SIGNAL], 0); } static HTMLTokenizer * @@ -1167,25 +1169,22 @@ e_searching_tokenizer_clone (HTMLTokenizer *tok) { ESearchingTokenizer *orig_st = E_SEARCHING_TOKENIZER (tok); ESearchingTokenizer *new_st = E_SEARCHING_TOKENIZER (e_searching_tokenizer_new ()); - + search_info_free(new_st->priv->primary); search_info_free(new_st->priv->secondary); - + new_st->priv->primary = search_info_clone(orig_st->priv->primary); new_st->priv->secondary = search_info_clone(orig_st->priv->secondary); - + /* what the fucking what???? */ #if 0 shared_state_ref (orig_st->priv->shared); shared_state_unref (new_st->priv->shared); new_st->priv->shared = orig_st->priv->shared; #endif - - gtk_signal_connect_object (GTK_OBJECT (new_st), - "match", - GTK_SIGNAL_FUNC (matched), - GTK_OBJECT (orig_st)); - + + g_signal_connect_swapped (new_st, "match", GTK_SIGNAL_FUNC (matched), orig_st); + return HTML_TOKENIZER (new_st); } /* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */ @@ -1194,7 +1193,7 @@ void e_searching_tokenizer_set_primary_search_string (ESearchingTokenizer *st, const gchar *search_str) { g_return_if_fail (st && E_IS_SEARCHING_TOKENIZER (st)); - + search_info_clear(st->priv->primary); search_info_add_string(st->priv->primary, search_str); } @@ -1203,7 +1202,7 @@ void e_searching_tokenizer_add_primary_search_string (ESearchingTokenizer *st, const gchar *search_str) { g_return_if_fail (st && E_IS_SEARCHING_TOKENIZER (st)); - + search_info_add_string(st->priv->primary, search_str); } @@ -1211,7 +1210,7 @@ void e_searching_tokenizer_set_primary_case_sensitivity (ESearchingTokenizer *st, gboolean iscase) { g_return_if_fail (st && E_IS_SEARCHING_TOKENIZER (st)); - + search_info_set_flags(st->priv->primary, iscase?SEARCH_CASE:0, SEARCH_CASE); } @@ -1219,7 +1218,7 @@ void e_searching_tokenizer_set_secondary_search_string (ESearchingTokenizer *st, const gchar *search_str) { g_return_if_fail (st && E_IS_SEARCHING_TOKENIZER (st)); - + search_info_clear(st->priv->secondary); search_info_add_string(st->priv->secondary, search_str); } @@ -1228,7 +1227,7 @@ void e_searching_tokenizer_add_secondary_search_string (ESearchingTokenizer *st, const gchar *search_str) { g_return_if_fail (st && E_IS_SEARCHING_TOKENIZER (st)); - + search_info_add_string(st->priv->secondary, search_str); } @@ -1236,7 +1235,7 @@ void e_searching_tokenizer_set_secondary_case_sensitivity (ESearchingTokenizer *st, gboolean iscase) { g_return_if_fail (st && E_IS_SEARCHING_TOKENIZER (st)); - + search_info_set_flags(st->priv->secondary, iscase?SEARCH_CASE:0, SEARCH_CASE); } @@ -1244,9 +1243,9 @@ gint e_searching_tokenizer_match_count (ESearchingTokenizer *st) { g_return_val_if_fail (st && E_IS_SEARCHING_TOKENIZER (st), -1); - + if (st->priv->engine) return st->priv->engine->matchcount; - + return 0; } |