[gedit/wip/spell-checking: 2/2] spell-checker: a language must have been set when using the API
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit/wip/spell-checking: 2/2] spell-checker: a language must have been set when using the API
- Date: Fri, 7 Aug 2015 15:57:01 +0000 (UTC)
commit 9d1f89d2cb85ee37fee70a7aed3b5a66fc8252bf
Author: Sébastien Wilmet <swilmet gnome org>
Date: Fri Aug 7 17:16:18 2015 +0200
spell-checker: a language must have been set when using the API
plugins/spell/gedit-spell-checker.c | 107 ++++++++++++++---------------------
plugins/spell/gedit-spell-checker.h | 11 ++--
2 files changed, 48 insertions(+), 70 deletions(-)
---
diff --git a/plugins/spell/gedit-spell-checker.c b/plugins/spell/gedit-spell-checker.c
index 891727c..305a275 100644
--- a/plugins/spell/gedit-spell-checker.c
+++ b/plugins/spell/gedit-spell-checker.c
@@ -86,6 +86,27 @@ gedit_spell_checker_error_quark (void)
return quark;
}
+static gboolean
+is_language_set (GeditSpellChecker *checker)
+{
+ GeditSpellCheckerPrivate *priv;
+
+ priv = gedit_spell_checker_get_instance_private (checker);
+
+ g_assert ((priv->active_lang == NULL && priv->dict == NULL) ||
+ (priv->active_lang != NULL && priv->dict != NULL));
+
+ if (priv->active_lang == NULL)
+ {
+ g_warning ("Spell checker: the language is not correctly set.\n"
+ "There is maybe no dictionaries available.\n"
+ "Check the return value of gedit_spell_checker_get_language().");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
static void
gedit_spell_checker_set_property (GObject *object,
guint prop_id,
@@ -420,14 +441,10 @@ gedit_spell_checker_check_word (GeditSpellChecker *checker,
g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (checker), FALSE);
g_return_val_if_fail (word != NULL, FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ g_return_val_if_fail (is_language_set (checker), FALSE);
priv = gedit_spell_checker_get_instance_private (checker);
- if (priv->dict == NULL)
- {
- return FALSE;
- }
-
if (gedit_spell_utils_is_digit (word))
{
return TRUE;
@@ -471,14 +488,10 @@ gedit_spell_checker_get_suggestions (GeditSpellChecker *checker,
g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (checker), NULL);
g_return_val_if_fail (word != NULL, NULL);
+ g_return_val_if_fail (is_language_set (checker), NULL);
priv = gedit_spell_checker_get_instance_private (checker);
- if (priv->dict == NULL)
- {
- return NULL;
- }
-
suggestions = enchant_dict_suggest (priv->dict, word, -1, NULL);
if (suggestions == NULL)
@@ -504,31 +517,22 @@ gedit_spell_checker_get_suggestions (GeditSpellChecker *checker,
*
* Adds a word to the personal dictionary. It is typically saved in the user
* home directory.
- *
- * Returns: whether the operation was successful.
- * TODO do not return a value.
*/
-gboolean
+void
gedit_spell_checker_add_word_to_personal (GeditSpellChecker *checker,
const gchar *word)
{
GeditSpellCheckerPrivate *priv;
- g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (checker), FALSE);
- g_return_val_if_fail (word != NULL, FALSE);
+ g_return_if_fail (GEDIT_IS_SPELL_CHECKER (checker));
+ g_return_if_fail (word != NULL);
+ g_return_if_fail (is_language_set (checker));
priv = gedit_spell_checker_get_instance_private (checker);
- if (priv->dict == NULL)
- {
- return FALSE;
- }
-
enchant_dict_add (priv->dict, word, -1);
g_signal_emit (G_OBJECT (checker), signals[SIGNAL_ADD_WORD_TO_PERSONAL], 0, word);
-
- return TRUE;
}
/**
@@ -539,31 +543,22 @@ gedit_spell_checker_add_word_to_personal (GeditSpellChecker *checker,
* Adds a word to the session dictionary. The session dictionary is lost when
* the application exits. This function is typically called when an “Ignore All”
* action is activated.
- *
- * Returns: whether the operation was successful.
- * TODO do not return a value.
*/
-gboolean
+void
gedit_spell_checker_add_word_to_session (GeditSpellChecker *checker,
const gchar *word)
{
GeditSpellCheckerPrivate *priv;
- g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (checker), FALSE);
- g_return_val_if_fail (word != NULL, FALSE);
+ g_return_if_fail (GEDIT_IS_SPELL_CHECKER (checker));
+ g_return_if_fail (word != NULL);
+ g_return_if_fail (is_language_set (checker));
priv = gedit_spell_checker_get_instance_private (checker);
- if (priv->dict == NULL)
- {
- return FALSE;
- }
-
enchant_dict_add_to_session (priv->dict, word, -1);
g_signal_emit (G_OBJECT (checker), signals[SIGNAL_ADD_WORD_TO_SESSION], 0, word);
-
- return TRUE;
}
/**
@@ -571,33 +566,25 @@ gedit_spell_checker_add_word_to_session (GeditSpellChecker *checker,
* @checker: a #GeditSpellChecker.
*
* Clears the session dictionary.
- *
- * Returns: whether the operation was successful.
*/
-gboolean
+void
gedit_spell_checker_clear_session (GeditSpellChecker *checker)
{
GeditSpellCheckerPrivate *priv;
- g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (checker), FALSE);
+ g_return_if_fail (GEDIT_IS_SPELL_CHECKER (checker));
+ g_return_if_fail (is_language_set (checker));
priv = gedit_spell_checker_get_instance_private (checker);
/* free and re-request dictionary */
- if (priv->dict != NULL)
- {
- enchant_broker_free_dict (priv->broker, priv->dict);
- priv->dict = NULL;
- }
+ g_assert (priv->dict != NULL);
+ enchant_broker_free_dict (priv->broker, priv->dict);
+ priv->dict = NULL;
- if (!init_dictionary (checker))
- {
- return FALSE;
- }
+ init_dictionary (checker);
g_signal_emit (G_OBJECT (checker), signals[SIGNAL_CLEAR_SESSION], 0);
-
- return TRUE;
}
/**
@@ -607,32 +594,24 @@ gedit_spell_checker_clear_session (GeditSpellChecker *checker)
* @replacement: the replacement word.
*
* Informs the spell checker that @word is replaced/corrected by @replacement.
- *
- * Returns: whether the operation was successful.
*/
-gboolean
+void
gedit_spell_checker_set_correction (GeditSpellChecker *checker,
const gchar *word,
const gchar *replacement)
{
GeditSpellCheckerPrivate *priv;
- g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (checker), FALSE);
- g_return_val_if_fail (word != NULL, FALSE);
- g_return_val_if_fail (replacement != NULL, FALSE);
+ g_return_if_fail (GEDIT_IS_SPELL_CHECKER (checker));
+ g_return_if_fail (word != NULL);
+ g_return_if_fail (replacement != NULL);
+ g_return_if_fail (is_language_set (checker));
priv = gedit_spell_checker_get_instance_private (checker);
- if (priv->dict == NULL)
- {
- return FALSE;
- }
-
enchant_dict_store_replacement (priv->dict,
word, -1,
replacement, -1);
-
- return TRUE;
}
/* ex:set ts=8 noet: */
diff --git a/plugins/spell/gedit-spell-checker.h b/plugins/spell/gedit-spell-checker.h
index b0d78d5..15b5be3 100644
--- a/plugins/spell/gedit-spell-checker.h
+++ b/plugins/spell/gedit-spell-checker.h
@@ -72,8 +72,7 @@ GQuark gedit_spell_checker_error_quark (void);
GeditSpellChecker *
gedit_spell_checker_new (const GeditSpellCheckerLanguage *language);
-gboolean
- gedit_spell_checker_set_language (GeditSpellChecker *checker,
+gboolean gedit_spell_checker_set_language (GeditSpellChecker *checker,
const GeditSpellCheckerLanguage *language);
const GeditSpellCheckerLanguage *
@@ -86,15 +85,15 @@ gboolean gedit_spell_checker_check_word (GeditSpellChecker *checker,
GSList * gedit_spell_checker_get_suggestions (GeditSpellChecker *checker,
const gchar *word);
-gboolean gedit_spell_checker_add_word_to_personal (GeditSpellChecker *checker,
+void gedit_spell_checker_add_word_to_personal (GeditSpellChecker *checker,
const gchar *word);
-gboolean gedit_spell_checker_add_word_to_session (GeditSpellChecker *checker,
+void gedit_spell_checker_add_word_to_session (GeditSpellChecker *checker,
const gchar *word);
-gboolean gedit_spell_checker_clear_session (GeditSpellChecker *checker);
+void gedit_spell_checker_clear_session (GeditSpellChecker *checker);
-gboolean gedit_spell_checker_set_correction (GeditSpellChecker *checker,
+void gedit_spell_checker_set_correction (GeditSpellChecker *checker,
const gchar *word,
const gchar *replacement);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]