summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2008-08-15 16:06:10 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2008-08-15 16:06:10 +0800
commitb85687961c852ee6a027753b571b7d0577393b03 (patch)
tree19b645d2a90aeaeeb6750d7c59c82f7b6ba9cfdf
parentd73edd3ecd4135151131e63fb510f58a202eb02e (diff)
downloadibus-hangul-b85687961c852ee6a027753b571b7d0577393b03.tar.gz
Raise Exception when load hanjatable failed.
-rw-r--r--engine/hangul.i17
1 files changed, 16 insertions, 1 deletions
diff --git a/engine/hangul.i b/engine/hangul.i
index 941d785..de7d861 100644
--- a/engine/hangul.i
+++ b/engine/hangul.i
@@ -28,6 +28,7 @@
%init %{
%}
+
%typemap (in) ucschar * {
if (PyUnicode_Check ($input)) {
$1 = PyUnicode_AsUnicode ($input);
@@ -49,6 +50,14 @@
}
}
+/* define exception */
+%exception {
+ $action
+ if (PyErr_Occurred ()) {
+ return NULL;
+ }
+}
+
typedef int ucschar;
/* define struct HangulKeyboard */
@@ -191,7 +200,13 @@ typedef struct {} HangulInputContext;
typedef struct {} HanjaTable;
%extend HanjaTable {
HanjaTable (const char *name) {
- return hanja_table_load (name);
+ HanjaTable *table = hanja_table_load (name);
+ if (table == NULL) {
+ PyErr_Format (PyExc_IOError,
+ "Can not load HanjaTabel from %s.", name);
+ return NULL;
+ }
+ return table;
}
~HanjaTable () {