Fix output argment in anthy.i.
authorHuang Peng <shawn.p.huang@gmail.com>
Sun, 29 Jun 2008 11:02:32 +0000 (19:02 +0800)
committerHuang Peng <shawn.p.huang@gmail.com>
Sun, 29 Jun 2008 11:02:32 +0000 (19:02 +0800)
engine/anthy/Makefile.am
engine/anthy/anthy.i
engine/anthy/engine.py

index ba34b53..8400268 100644 (file)
@@ -62,7 +62,7 @@ anthy.py anthy_wrap.c: anthy.i
        $(SWIG) -python -I/usr/include -o anthy_wrap.c $(srcdir)/anthy.i
 
 test:
-       $(ENV) PYTHONPATH=$(top_srcdir) $(PYTHON) $(srcdir)/main.py
+       $(ENV) PYTHONPATH=$(top_srcdir):$(builddir)/.libs $(PYTHON) $(srcdir)/main.py
 
 EXTRA_DIST = \
        anthy.i \
index 7df8ebb..355986a 100644 (file)
@@ -1,4 +1,4 @@
-/* vim:set noet ts=4: */
+/* vim:set et ts=4: */
 /*
  * ibus - The Input Bus
  *
@@ -57,8 +57,15 @@ struct anthy_context {};
         return anthy_get_segment_stat (self, a1, a2);
     }
 
-    int get_segment (int a1, int a2, char *a3, int a4) {
-        return anthy_get_segment (self, a1, a2, a3, a4);
+    char *get_segment (int a1, int a2) {
+        int len;
+        static char temp[512];
+
+        len = anthy_get_segment (self, a1, a2, temp, sizeof (temp));
+        if (len >= 0)
+            return temp;
+        else
+            return NULL;
     }
 
     int commit_segment (int a1, int a2) {
@@ -68,13 +75,21 @@ struct anthy_context {};
     int set_prediction_string (const char *a1) {
         return anthy_set_prediction_string (self, a1);
     }
-   
+
     int get_prediction_stat (struct anthy_prediction_stat *a1) {
         return anthy_get_prediction_stat (self, a1);
     }
-    
-    int get_prediction (int a1, char *a2, int a3) {
-        return anthy_get_prediction (self, a1, a2, a3);
+
+    char *get_prediction (int a1) {
+        int len;
+        static char temp[512];
+
+        len = anthy_get_prediction (self, a1, temp, sizeof (temp));
+
+        if (len >= 0)
+            return temp;
+        else
+            return NULL;
     }
 
     int commit_prediction (int a1) {
@@ -84,7 +99,7 @@ struct anthy_context {};
     void _print () {
         anthy_print_context (self);
     }
-    
+
     int _set_encoding (int encoding) {
         return anthy_context_set_encoding (self, encoding);
     }
index ed8a0ac..b16b90a 100644 (file)
@@ -125,9 +125,8 @@ class Engine (interface.IEngine):
                self._context.get_stat (conv_stat)
 
                for i in xrange (0, conv_stat.nr_segment):
-                       buf = " " * 100
-                       l = self._context.get_segment (i, 0, buf, 100)
-                       text = unicode (buf[:l], "utf-8")
+                       buf = self._context.get_segment (i, 0)
+                       text = unicode (buf, "utf-8")
                        self._segments.append ((0, text))
 
                self._cursor_pos = 0
@@ -142,9 +141,8 @@ class Engine (interface.IEngine):
                # fill lookup_table
                self._lookup_table.clean ()
                for i in xrange (0, seg_stat.nr_candidate):
-                       buf = " " * 100
-                       l = self._context.get_segment (self._cursor_pos, i, buf, 100)
-                       candidate = unicode (buf[:l], "utf-8")
+                       buf = self._context.get_segment (self._cursor_pos, i)
+                       candidate = unicode (buf, "utf-8")
                        self._lookup_table.append_candidate (candidate)
 
 
@@ -238,7 +236,6 @@ class Engine (interface.IEngine):
 
        def _update_convert_chars (self):
                self._convert_chars = u""
-               buf = " " * 100
                pos = 0
                i = 0
                for seg_index, text in self._segments: