summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchenxiajian <chenxiajian1985@gmail.com>2011-08-20 04:18:54 +0000
committerchenxiajian <chenxiajian1985@gmail.com>2011-08-20 04:18:54 +0000
commitaf1bf65bd9bc9a4d14d0aa836aded405b5e76661 (patch)
tree9d5a4b2f7176832380430c51f6715c2c4d76346d
parent298bcf1f45841cc72ab7ebac30ccf1260782bf46 (diff)
downloadenchant-af1bf65bd9bc9a4d14d0aa836aded405b5e76661.tar.gz
reslove Zemberek exception
git-svn-id: svn+ssh://svn.abisource.com/svnroot/enchant/branches/gsoc2011hyphenation@30261 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
-rw-r--r--src/zemberek/zemberek.cpp275
-rw-r--r--src/zemberek/zemberek_provider.cpp4
2 files changed, 140 insertions, 139 deletions
diff --git a/src/zemberek/zemberek.cpp b/src/zemberek/zemberek.cpp
index ada14ea..3438006 100644
--- a/src/zemberek/zemberek.cpp
+++ b/src/zemberek/zemberek.cpp
@@ -1,139 +1,138 @@
-/* Copyright (C) 2006 Barış Metin <baris@pardus.org.tr>
- * Copyright (C) 2007 Serkan Kaba <serkan_kaba@yahoo.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02110-1301, USA.
- *
- * In addition, as a special exception, Dom Lachowicz
- * gives permission to link the code of this program with
- * non-LGPL Spelling Provider libraries (eg: a MSFT Office
- * spell checker backend) and distribute linked combinations including
- * the two. You must obey the GNU Lesser General Public License in all
- * respects for all of the code used other than said providers. If you modify
- * this file, you may extend this exception to your version of the
- * file, but you are not obligated to do so. If you do not wish to
- * do so, delete this exception statement from your version.
- */
-
-#include "zemberek.h"
-
-bool zemberek_service_is_running ()
-{
- DBusGConnection *connection;
- DBusGProxy *proxy;
-
- GError *Error = NULL;
- g_type_init ();
-
- connection = dbus_g_bus_get (DBUS_BUS_SYSTEM,
- &Error);
- if (connection == NULL) {
- g_error_free (Error);
- return false;
- }
- proxy = dbus_g_proxy_new_for_name_owner (connection,
- "net.zemberekserver.server.dbus",
- "/net/zemberekserver/server/dbus/ZemberekDbus",
- "net.zemberekserver.server.dbus.ZemberekDbusInterface",
- &Error);
-
- dbus_g_connection_unref (connection);
- if (proxy == NULL) {
- return false;
- }
-
- g_object_unref (proxy);
- return true;
-}
-
-Zemberek::Zemberek()
- : connection(NULL), proxy(NULL)
-{
- GError *Error = NULL;
- g_type_init ();
-
- connection = dbus_g_bus_get (DBUS_BUS_SYSTEM,
- &Error);
- if (connection == NULL) {
- g_error_free (Error);
- throw "couldn't connect to the system bus";
- }
- proxy = dbus_g_proxy_new_for_name (connection,
- "net.zemberekserver.server.dbus",
- "/net/zemberekserver/server/dbus/ZemberekDbus",
- "net.zemberekserver.server.dbus.ZemberekDbusInterface");
-
- if (proxy == NULL) {
- throw "couldn't connect to the Zemberek service";
- }
-}
-
-
-Zemberek::~Zemberek()
-{
- if(proxy)
- g_object_unref (proxy);
- if(connection)
- dbus_g_connection_unref (connection);
-}
-
-
-int Zemberek::checkWord(const char* word) const
-{
- gboolean result;
- GError *Error = NULL;
- if (!dbus_g_proxy_call (proxy, "kelimeDenetle", &Error,
- G_TYPE_STRING,word,G_TYPE_INVALID,
- G_TYPE_BOOLEAN, &result, G_TYPE_INVALID)) {
- g_error_free (Error);
- return -1;
- }
- else {
- if (result)
- return 0;
- else
- return 1;
- }
-}
-
-
-char** Zemberek::suggestWord(const char* word, size_t *out_n_suggs)
-{
- char** suggs;
- GError *Error = NULL;
- if (!dbus_g_proxy_call (proxy, "oner", &Error,
- G_TYPE_STRING,word,G_TYPE_INVALID,
- G_TYPE_STRV, &suggs,G_TYPE_INVALID)) {
- g_error_free (Error);
- return NULL;
- }
- *out_n_suggs = g_strv_length(suggs);
- return suggs;
-}
-
-char* Zemberek::hyphenate(const char* word)
-{
- char* result;
- GError *Error = NULL;
- if (!dbus_g_proxy_call (proxy, "hecele", &Error,
- G_TYPE_STRING,word,G_TYPE_INVALID,
- G_TYPE_STRV, &result,G_TYPE_INVALID)) {
- g_error_free (Error);
- return NULL;
- }
-
- char*result=0;
- return result;
+/* Copyright (C) 2006 Barış Metin <baris@pardus.org.tr>
+ * Copyright (C) 2007 Serkan Kaba <serkan_kaba@yahoo.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02110-1301, USA.
+ *
+ * In addition, as a special exception, Dom Lachowicz
+ * gives permission to link the code of this program with
+ * non-LGPL Spelling Provider libraries (eg: a MSFT Office
+ * spell checker backend) and distribute linked combinations including
+ * the two. You must obey the GNU Lesser General Public License in all
+ * respects for all of the code used other than said providers. If you modify
+ * this file, you may extend this exception to your version of the
+ * file, but you are not obligated to do so. If you do not wish to
+ * do so, delete this exception statement from your version.
+ */
+
+#include "zemberek.h"
+
+bool zemberek_service_is_running ()
+{
+ DBusGConnection *connection;
+ DBusGProxy *proxy;
+
+ GError *Error = NULL;
+ g_type_init ();
+
+ connection = dbus_g_bus_get (DBUS_BUS_SYSTEM,
+ &Error);
+ if (connection == NULL) {
+ g_error_free (Error);
+ return false;
+ }
+ proxy = dbus_g_proxy_new_for_name_owner (connection,
+ "net.zemberekserver.server.dbus",
+ "/net/zemberekserver/server/dbus/ZemberekDbus",
+ "net.zemberekserver.server.dbus.ZemberekDbusInterface",
+ &Error);
+
+ dbus_g_connection_unref (connection);
+ if (proxy == NULL) {
+ return false;
+ }
+
+ g_object_unref (proxy);
+ return true;
+}
+
+Zemberek::Zemberek()
+ : connection(NULL), proxy(NULL)
+{
+ GError *Error = NULL;
+ g_type_init ();
+
+ connection = dbus_g_bus_get (DBUS_BUS_SYSTEM,
+ &Error);
+ if (connection == NULL) {
+ g_error_free (Error);
+ throw "couldn't connect to the system bus";
+ }
+ proxy = dbus_g_proxy_new_for_name (connection,
+ "net.zemberekserver.server.dbus",
+ "/net/zemberekserver/server/dbus/ZemberekDbus",
+ "net.zemberekserver.server.dbus.ZemberekDbusInterface");
+
+ if (proxy == NULL) {
+ throw "couldn't connect to the Zemberek service";
+ }
+}
+
+
+Zemberek::~Zemberek()
+{
+ if(proxy)
+ g_object_unref (proxy);
+ if(connection)
+ dbus_g_connection_unref (connection);
+}
+
+
+int Zemberek::checkWord(const char* word) const
+{
+ gboolean result;
+ GError *Error = NULL;
+ if (!dbus_g_proxy_call (proxy, "kelimeDenetle", &Error,
+ G_TYPE_STRING,word,G_TYPE_INVALID,
+ G_TYPE_BOOLEAN, &result, G_TYPE_INVALID)) {
+ g_error_free (Error);
+ return -1;
+ }
+ else {
+ if (result)
+ return 0;
+ else
+ return 1;
+ }
+}
+
+
+char** Zemberek::suggestWord(const char* word, size_t *out_n_suggs)
+{
+ char** suggs;
+ GError *Error = NULL;
+ if (!dbus_g_proxy_call (proxy, "oner", &Error,
+ G_TYPE_STRING,word,G_TYPE_INVALID,
+ G_TYPE_STRV, &suggs,G_TYPE_INVALID)) {
+ g_error_free (Error);
+ return NULL;
+ }
+ *out_n_suggs = g_strv_length(suggs);
+ return suggs;
+}
+
+char* Zemberek::hyphenate(const char* word)
+{
+ char* result= NULL;
+ GError *Error = NULL;
+ if (!dbus_g_proxy_call (proxy, "hecele", &Error,
+ G_TYPE_STRING,word,G_TYPE_INVALID,
+ G_TYPE_STRV, &result,G_TYPE_INVALID)) {
+ g_error_free (Error);
+ return NULL;
+ }
+
+ return result;
} \ No newline at end of file
diff --git a/src/zemberek/zemberek_provider.cpp b/src/zemberek/zemberek_provider.cpp
index 7ae925a..d110546 100644
--- a/src/zemberek/zemberek_provider.cpp
+++ b/src/zemberek/zemberek_provider.cpp
@@ -64,7 +64,9 @@ zemberek_dict_hyphenate (EnchantDict * me, const char *const word)
{
Zemberek *checker;
checker = (Zemberek *) me->user_data;
- return checker->hyphenate (word);
+ if(checker!=NULL)
+ return checker->hyphenate (word);
+ return NULL;
}