diff options
author | Huang Peng <shawn.p.huang@gmail.com> | 2008-08-15 16:06:10 +0800 |
---|---|---|
committer | Huang Peng <shawn.p.huang@gmail.com> | 2008-08-15 16:06:10 +0800 |
commit | b85687961c852ee6a027753b571b7d0577393b03 (patch) | |
tree | 19b645d2a90aeaeeb6750d7c59c82f7b6ba9cfdf | |
parent | d73edd3ecd4135151131e63fb510f58a202eb02e (diff) | |
download | ibus-hangul-b85687961c852ee6a027753b571b7d0577393b03.tar.gz |
Raise Exception when load hanjatable failed.
-rw-r--r-- | engine/hangul.i | 17 |
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 () { |