[ibus-pinyin] fixes crashes

Peng Wu pwu at fedoraproject.org
Thu Nov 3 07:54:42 UTC 2011


commit 58d01b0bb6266bf4c15a594b8cf85b37bc146bf0
Author: Peng Wu <alexepico at gmail.com>
Date:   Thu Nov 3 15:40:02 2011 +0800

    fixes crashes

 ibus-pinyin-libpinyin-integration.patch |  535 ++++++++++++++++++++++---------
 ibus-pinyin.spec                        |    5 +-
 2 files changed, 395 insertions(+), 145 deletions(-)
---
diff --git a/ibus-pinyin-libpinyin-integration.patch b/ibus-pinyin-libpinyin-integration.patch
index 62a978e..c657145 100644
--- a/ibus-pinyin-libpinyin-integration.patch
+++ b/ibus-pinyin-libpinyin-integration.patch
@@ -1,7 +1,7 @@
 From 94bbc5c2f29f2d1e73c202dee9ca30b8ddc01c21 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 29 Aug 2011 14:14:46 +0800
-Subject: [PATCH 01/72] begin to integrate
+Subject: [PATCH 01/74] begin to integrate
 
 ---
  src/PYPinyinBaseEditor.h |   91 ++++++++++++++++++++++++++++++++++++++++++++++
@@ -106,13 +106,13 @@ index 0000000..0bed00a
 +
 +#endif
 -- 
-1.7.6.4
+1.7.7
 
 
 From 21ee5c23e325fd7b4816b38b9cc308e17e23c1a3 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 30 Aug 2011 18:24:02 +0800
-Subject: [PATCH 02/72] begin to write libpinyin backend singleton
+Subject: [PATCH 02/74] begin to write libpinyin backend singleton
 
 ---
  src/PYLibPinyin.h |   36 ++++++++++++++++++++++++++++++++++++
@@ -162,13 +162,13 @@ index 0000000..cfd8566
 +
 +#endif
 -- 
-1.7.6.4
+1.7.7
 
 
 From 71e25b32ed628a4692c43b48fa6a150884b05378 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 1 Sep 2011 11:24:02 +0800
-Subject: [PATCH 03/72] rename editor class
+Subject: [PATCH 03/74] rename editor class
 
 ---
  src/PYLibPinyin.h        |    5 +++++
@@ -236,13 +236,13 @@ index 0bed00a..ee200a1 100644
      std::string                 m_selected_special_phrase;
  };
 -- 
-1.7.6.4
+1.7.7
 
 
 From b89b25c7c5522b25f4f8a023fea7bf73bb15db68 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 1 Sep 2011 13:02:24 +0800
-Subject: [PATCH 04/72] rename editor header
+Subject: [PATCH 04/74] rename editor header
 
 ---
  src/PYLibPinyinBaseEditor.h |   92 +++++++++++++++++++++++++++++++++++++++++++
@@ -448,13 +448,13 @@ index ee200a1..0000000
 -
 -#endif
 -- 
-1.7.6.4
+1.7.7
 
 
 From 9103387c14422521f7449806079bf411ab8f6fd3 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 1 Sep 2011 15:13:09 +0800
-Subject: [PATCH 05/72] begin to write libpinyin base editor
+Subject: [PATCH 05/74] begin to write libpinyin base editor
 
 ---
  src/PYLibPinyinBaseEditor.cc |  318 ++++++++++++++++++++++++++++++++++++++++++
@@ -800,13 +800,13 @@ index ee200a1..c7b0d2b 100644
      void commit (const gchar *str);
  
 -- 
-1.7.6.4
+1.7.7
 
 
 From 2f3696c5af718b4eeb6113dc0b68bd9525027ec2 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 1 Sep 2011 15:51:53 +0800
-Subject: [PATCH 06/72] fixes compile
+Subject: [PATCH 06/74] fixes compile
 
 ---
  src/Makefile.am              |    3 +++
@@ -860,13 +860,13 @@ index c7b0d2b..d682a7b 100644
  #include "PYEditor.h"
  #include "PYPinyinParser.h"
 -- 
-1.7.6.4
+1.7.7
 
 
 From b6cc94ba4d65f1511aebb5b2da80c958cd882815 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 2 Sep 2011 10:34:06 +0800
-Subject: [PATCH 07/72] add special phrases handle in libpinyin base editor
+Subject: [PATCH 07/74] add special phrases handle in libpinyin base editor
 
 ---
  src/PYLibPinyinBaseEditor.cc |   27 +++++++++++++++++++++------
@@ -943,13 +943,13 @@ index d682a7b..fa5755c 100644
      /* use LibPinyinBackEnd here. */
      std::vector<std::string>    m_special_phrases;
 -- 
-1.7.6.4
+1.7.7
 
 
 From 61aafedfb9cf7718afebb4cb8a3eb82873bafa1d Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 2 Sep 2011 14:30:11 +0800
-Subject: [PATCH 08/72] begin to write concrete pinyin editors
+Subject: [PATCH 08/74] begin to write concrete pinyin editors
 
 ---
  src/PYLibPinyinDoublePinyinEditor.h |   57 +++++++++++++++++++++++++++++++++
@@ -1087,13 +1087,13 @@ index 0000000..dcc1728
 +
 +#endif
 -- 
-1.7.6.4
+1.7.7
 
 
 From 56d08018ceb62e0dfaff14cc3456e7b1e65dc53b Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 2 Sep 2011 15:26:21 +0800
-Subject: [PATCH 09/72] rename files
+Subject: [PATCH 09/74] rename files
 
 ---
  src/PYLibPinyinBaseEditor.cc        |  332 -----------------------------------
@@ -2239,13 +2239,13 @@ index 0000000..fa5755c
 +
 +#endif
 -- 
-1.7.6.4
+1.7.7
 
 
 From b8f7e09a3316035b2b497386885a41e52da7b664 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 2 Sep 2011 15:39:31 +0800
-Subject: [PATCH 10/72] add libpinyin pinyin editor header
+Subject: [PATCH 10/74] add libpinyin pinyin editor header
 
 ---
  src/PYPPinyinEditor.h |   56 +++++++++++++++++++++++++++++++++++++++++++++++++
@@ -2315,13 +2315,13 @@ index 0000000..4213395
 +
 +#endif
 -- 
-1.7.6.4
+1.7.7
 
 
 From 0d7fdc1f9b71df881fa4353fc0f20a0839c0c78c Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 2 Sep 2011 15:49:13 +0800
-Subject: [PATCH 11/72] rename base editor
+Subject: [PATCH 11/74] rename base editor
 
 ---
  src/Makefile.am             |    6 +++-
@@ -2635,13 +2635,13 @@ index 4213395..fd2b2ce 100644
  
  class LibPinyinPinyinEditor : public LibPinyinPhoneticEditor {
 -- 
-1.7.6.4
+1.7.7
 
 
 From 21c05a2bf76d58a2928fd6e93c2e1f561129ee8f Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 2 Sep 2011 16:49:00 +0800
-Subject: [PATCH 12/72] begin to write pinyin editor
+Subject: [PATCH 12/74] begin to write pinyin editor
 
 ---
  src/PYPPinyinEditor.cc |  202 ++++++++++++++++++++++++++++++++++++++++++++++++
@@ -2858,13 +2858,13 @@ index a259a99..a78544d 100644
 +    LibPinyinPhoneticEditor::updateLookupTable ();
 +}
 -- 
-1.7.6.4
+1.7.7
 
 
 From b79504595353a90d85b025ab6f3bb426787f26b3 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 5 Sep 2011 16:59:49 +0800
-Subject: [PATCH 13/72] begin to write bopomofo editor
+Subject: [PATCH 13/74] begin to write bopomofo editor
 
 ---
  src/PYPBopomofoEditor.cc |  374 ++++++++++++++++++++++++++++++++++++++++++++++
@@ -3337,13 +3337,13 @@ index 0000000..bcbf85d
 +
 +#endif
 -- 
-1.7.6.4
+1.7.7
 
 
 From 5a59f456bb40ea381a8f39858a0a8d3f8e43b074 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 5 Sep 2011 17:13:31 +0800
-Subject: [PATCH 14/72] fixes compile
+Subject: [PATCH 14/74] fixes compile
 
 ---
  src/Makefile.am          |    2 ++
@@ -3420,13 +3420,13 @@ index bcbf85d..f78375f 100644
  
      gboolean insert (gint ch);
 -- 
-1.7.6.4
+1.7.7
 
 
 From 2c724244d80e4d79385be7e0f5744b286c5b30a1 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 8 Sep 2011 15:13:17 +0800
-Subject: [PATCH 15/72] add libpinyin deps
+Subject: [PATCH 15/74] add libpinyin deps
 
 ---
  configure.ac            |    5 +++++
@@ -3493,13 +3493,13 @@ index 3d64bc4..f222557 100644
      std::string                 m_selected_special_phrase;
  };
 -- 
-1.7.6.4
+1.7.7
 
 
 From aa80dfa352b8657202c895062283d9e930735b14 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 8 Sep 2011 18:02:51 +0800
-Subject: [PATCH 16/72] begin to write libpinyin backend
+Subject: [PATCH 16/74] begin to write libpinyin backend
 
 ---
  src/Makefile.am    |    1 +
@@ -3589,13 +3589,13 @@ index d3bc90c..c07b435 100644
      static LibPinyinBackEnd & instance (void) { return *m_instance; }
  
 -- 
-1.7.6.4
+1.7.7
 
 
 From 1f6ff1c6791cf266fcff9ac2808f85d902ee4b5f Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 14 Sep 2011 17:49:47 +0800
-Subject: [PATCH 17/72] add set options to libpinyin back end
+Subject: [PATCH 17/74] add set options to libpinyin back end
 
 ---
  src/PYLibPinyin.cc |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -3698,13 +3698,13 @@ index c07b435..83aa1fc 100644
  
  #endif
 -- 
-1.7.6.4
+1.7.7
 
 
 From 7bb6c26be96489e919736eb719abafcf11796e15 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 15 Sep 2011 15:19:49 +0800
-Subject: [PATCH 18/72] remove special phrase
+Subject: [PATCH 18/74] remove special phrase
 
 ---
  src/PYPPhoneticEditor.cc |   41 -----------------------------------------
@@ -3810,13 +3810,13 @@ index f222557..f7a3704 100644
  
  };
 -- 
-1.7.6.4
+1.7.7
 
 
 From c9a83029d574da3de06bc8d3b3766919acd68c5c Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 16 Sep 2011 15:43:35 +0800
-Subject: [PATCH 19/72] refactor libpinyin phonetic editor
+Subject: [PATCH 19/74] refactor libpinyin phonetic editor
 
 ---
  src/PYPPhoneticEditor.cc |   59 +++++++++++++++++++++++++++++++++++++++------
@@ -3947,13 +3947,13 @@ index f7a3704..a3b03ff 100644
  
  };
 -- 
-1.7.6.4
+1.7.7
 
 
 From 0afa90502dac19f65253c3bd6d6dd6b97f403ec7 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 16 Sep 2011 15:51:12 +0800
-Subject: [PATCH 20/72] clean up libpinyin bopomofo editor
+Subject: [PATCH 20/74] clean up libpinyin bopomofo editor
 
 ---
  src/PYPBopomofoEditor.cc |   39 +++++++++++++--------------------------
@@ -4031,13 +4031,13 @@ index cb64abd..35c9ed2 100644
  
  gboolean
 -- 
-1.7.6.4
+1.7.7
 
 
 From 5d0466f732e7520851edb8145c348b29c8bea252 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 16 Sep 2011 17:31:56 +0800
-Subject: [PATCH 21/72] add m_pinyin_len back
+Subject: [PATCH 21/74] add m_pinyin_len back
 
 ---
  src/PYPPhoneticEditor.cc |   20 +++++++++++---------
@@ -4126,13 +4126,13 @@ index a3b03ff..32a5245 100644
      String                      m_buffer;
  
 -- 
-1.7.6.4
+1.7.7
 
 
 From 325056f0f43e86da5621ac04d5261faaabe5041c Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 19 Sep 2011 16:10:48 +0800
-Subject: [PATCH 22/72] write pinyin editor in progress
+Subject: [PATCH 22/74] write pinyin editor in progress
 
 ---
  src/PYPPhoneticEditor.h |    2 +-
@@ -4253,13 +4253,13 @@ index a78544d..a435b82 100644
  
  void
 -- 
-1.7.6.4
+1.7.7
 
 
 From 6cee400f75eeb9d977cb3bb64df8dc282ab31aa7 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 19 Sep 2011 16:26:42 +0800
-Subject: [PATCH 23/72] begin to write libpinyin full pinyin editor
+Subject: [PATCH 23/74] begin to write libpinyin full pinyin editor
 
 ---
  src/Makefile.am            |    1 +
@@ -4350,13 +4350,13 @@ index 0000000..9712d97
 +}
 +
 -- 
-1.7.6.4
+1.7.7
 
 
 From b50a6e074f608f640afb074231ed643240bf26b3 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 20 Sep 2011 13:52:05 +0800
-Subject: [PATCH 24/72] write update pinyin
+Subject: [PATCH 24/74] write update pinyin
 
 ---
  src/PYPFullPinyinEditor.cc |   31 +++++++++++++++++++++++++++++++
@@ -4416,13 +4416,13 @@ index a6e74c4..afb52d5 100644
  
  };
 -- 
-1.7.6.4
+1.7.7
 
 
 From 3ceb1022d20885ed032a3b0275a48fe8cf96182d Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 20 Sep 2011 16:12:46 +0800
-Subject: [PATCH 25/72] add char edit
+Subject: [PATCH 25/74] add char edit
 
 ---
  src/PYPFullPinyinEditor.cc |   39 +++++++++++++++++++++++++++++++++++++++
@@ -4479,13 +4479,13 @@ index 5194ef8..2b8babc 100644
                                              guint keycode,
                                              guint modifiers)
 -- 
-1.7.6.4
+1.7.7
 
 
 From 5ccaad1bdee85c6762ddfbf52bba6e8e2f82fd0a Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 10:14:49 +0800
-Subject: [PATCH 26/72] write full pinyin editor in progress
+Subject: [PATCH 26/74] write full pinyin editor in progress
 
 ---
  src/PYPFullPinyinEditor.cc |  131 +++++++++++++++++++++++++++++++++++++++++++-
@@ -4634,13 +4634,13 @@ index 2b8babc..7e764c7 100644
  
  gboolean
 -- 
-1.7.6.4
+1.7.7
 
 
 From b9dce30dd8b368769f7843594ba3210a097bd6cc Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 10:34:46 +0800
-Subject: [PATCH 27/72] use m_pinyin_poses in full pinyin editor
+Subject: [PATCH 27/74] use m_pinyin_poses in full pinyin editor
 
 ---
  src/PYPFullPinyinEditor.cc |   32 ++++++++++++++++++++++----------
@@ -4715,13 +4715,13 @@ index 7e764c7..0a05c5a 100644
  
      m_cursor = cursor;
 -- 
-1.7.6.4
+1.7.7
 
 
 From 9b3f8d14380de93c3b697a55cfd1df6dd8316eb3 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 11:25:58 +0800
-Subject: [PATCH 28/72] use pinyin pos
+Subject: [PATCH 28/74] use pinyin pos
 
 ---
  src/PYPPhoneticEditor.cc |   14 ++++++++------
@@ -4776,13 +4776,13 @@ index a435b82..68617a3 100644
  
      /* append rest text */
 -- 
-1.7.6.4
+1.7.7
 
 
 From 31e29393f3d7069c7dbbbda11d0cb354838a0e2c Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 11:39:17 +0800
-Subject: [PATCH 29/72] re-factor full pinyin editor
+Subject: [PATCH 29/74] re-factor full pinyin editor
 
 ---
  src/PYPFullPinyinEditor.cc |   83 +++++++++++++++++++------------------------
@@ -4940,13 +4940,13 @@ index afb52d5..11e53cb 100644
  
  };
 -- 
-1.7.6.4
+1.7.7
 
 
 From f612432ccf5bd9d3fc9617bf52f1f99e2b7b5c0a Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 12:22:55 +0800
-Subject: [PATCH 30/72] add update aux text func for full pinyin
+Subject: [PATCH 30/74] add update aux text func for full pinyin
 
 ---
  src/PYPFullPinyinEditor.cc |   37 +++++++++++++++++++++++++++++++++++++
@@ -5050,13 +5050,13 @@ index fd2b2ce..41aafc6 100644
      virtual gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers);
  
 -- 
-1.7.6.4
+1.7.7
 
 
 From 62d47f889316ff95b764333bb10f9f0211e32558 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 14:02:14 +0800
-Subject: [PATCH 31/72] begin to add double pinyin editor
+Subject: [PATCH 31/74] begin to add double pinyin editor
 
 ---
  src/Makefile.am              |    1 +
@@ -5123,13 +5123,13 @@ index 0000000..5eb2067
 +    return LibPinyinPinyinEditor::processKeyEvent (keyval, keycode, modifiers);
 +}
 -- 
-1.7.6.4
+1.7.7
 
 
 From 1e16137bf37a2bc597740585e2809679bc5b7605 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 14:18:36 +0800
-Subject: [PATCH 32/72] move cursor edit funcs to pinyin editor
+Subject: [PATCH 32/74] move cursor edit funcs to pinyin editor
 
 ---
  src/PYPDoublePinyinEditor.h |    2 +
@@ -5580,13 +5580,13 @@ index 41aafc6..974d2a5 100644
  
  };
 -- 
-1.7.6.4
+1.7.7
 
 
 From 17a5f2c269d903f892b59ab2a28e8476b5fa0035 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 14:52:09 +0800
-Subject: [PATCH 33/72] add update pinyin
+Subject: [PATCH 33/74] add update pinyin
 
 ---
  src/PYPDoublePinyinEditor.cc |   16 ++++++++++++++++
@@ -5670,13 +5670,13 @@ index 9c1644e..05de60d 100644
  
  void
 -- 
-1.7.6.4
+1.7.7
 
 
 From 15e5c137425de55f79c0c51d9ede5c9482e5f745 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 22 Sep 2011 14:24:09 +0800
-Subject: [PATCH 34/72] write double pinyin editor
+Subject: [PATCH 34/74] write double pinyin editor
 
 ---
  src/PYPDoublePinyinEditor.cc |   93 ++++++++++++++++++++++++++++++++++++++++++
@@ -5835,13 +5835,13 @@ index 08fc04e..8108002 100644
      for (guint i = 0; i < pinyin_keys->len; ++i) {
          if (G_LIKELY (i))
 -- 
-1.7.6.4
+1.7.7
 
 
 From dc1008b9450edadac06e5927f4bfc53914339619 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 22 Sep 2011 14:35:40 +0800
-Subject: [PATCH 35/72] begin to write bopomofo editor
+Subject: [PATCH 35/74] begin to write bopomofo editor
 
 ---
  src/PYPBopomofoEditor.cc |  119 ----------------------------------------------
@@ -6048,13 +6048,13 @@ index 974d2a5..00b49ce 100644
      guint getCursorLeftByWord (void);
      guint getCursorRightByWord (void);
 -- 
-1.7.6.4
+1.7.7
 
 
 From 4fa55bf0d8333d1bb21c64572d017e05a22f4d48 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 22 Sep 2011 15:00:11 +0800
-Subject: [PATCH 36/72] write bopomofo editor in progress
+Subject: [PATCH 36/74] write bopomofo editor in progress
 
 ---
  src/PYPBopomofoEditor.cc |   68 ++++++++++++++++++++++++++++++++++++++++++++++
@@ -6158,13 +6158,13 @@ index 00b49ce..974d2a5 100644
      guint getCursorLeftByWord (void);
      guint getCursorRightByWord (void);
 -- 
-1.7.6.4
+1.7.7
 
 
 From cd133bc9853f92d5c8ab72fd74a9a4d0670390fe Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 22 Sep 2011 15:18:37 +0800
-Subject: [PATCH 37/72] write bopomofo editor
+Subject: [PATCH 37/74] write bopomofo editor
 
 ---
  src/PYPBopomofoEditor.cc |   35 ++++++++++++++++++++++++++++++++++-
@@ -6254,13 +6254,13 @@ index 8108002..5599416 100644
      /* text after pinyin */
      const gchar *p = m_text.c_str() + m_pinyin_len;
 -- 
-1.7.6.4
+1.7.7
 
 
 From 57d303dd2b725c56abea46490609e0cd3d1f2938 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 22 Sep 2011 15:31:06 +0800
-Subject: [PATCH 38/72] remove m_pinyins
+Subject: [PATCH 38/74] remove m_pinyins
 
 ---
  src/PYPBopomofoEditor.cc     |    1 -
@@ -6365,13 +6365,13 @@ index 56a8ee4..9d522bf 100644
      LookupTable                 m_lookup_table;
      String                      m_buffer;
 -- 
-1.7.6.4
+1.7.7
 
 
 From f37f4807b0408d4269ad6a57e8a29049c18cabb1 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 22 Sep 2011 15:49:29 +0800
-Subject: [PATCH 39/72] fixes Makefile.am
+Subject: [PATCH 39/74] fixes Makefile.am
 
 ---
  src/Makefile.am          |    2 ++
@@ -6404,13 +6404,13 @@ index 0c7e46f..db4f9b4 100644
  
      return TRUE;
 -- 
-1.7.6.4
+1.7.7
 
 
 From 4adb383aeaeb0053f161283888609ea3078e2bdb Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 23 Sep 2011 14:44:10 +0800
-Subject: [PATCH 40/72] add set chewing options
+Subject: [PATCH 40/74] add set chewing options
 
 ---
  src/PYLibPinyin.cc |   29 ++++++++++++++++++++++++++++-
@@ -6483,13 +6483,13 @@ index 83aa1fc..538930c 100644
      /* use static initializer in C++. */
      static LibPinyinBackEnd & instance (void) { return *m_instance; }
 -- 
-1.7.6.4
+1.7.7
 
 
 From 67ddca2bedeb5716ba8f2ec049d67f65db562a80 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 26 Sep 2011 15:33:00 +0800
-Subject: [PATCH 41/72] add libpinyin pinyin/chewing scheme options
+Subject: [PATCH 41/74] add libpinyin pinyin/chewing scheme options
 
 ---
  src/PYLibPinyin.cc |   45 ++++++++++++++++++++++++++++++++++++++-------
@@ -6595,13 +6595,13 @@ index 538930c..3d40b1d 100644
  private:
      static std::unique_ptr<LibPinyinBackEnd> m_instance;
 -- 
-1.7.6.4
+1.7.7
 
 
 From 97cd3846b283bb7554604f692f027a5259ab4380 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 28 Sep 2011 15:08:11 +0800
-Subject: [PATCH 42/72] add PYPPinyinEngine.h
+Subject: [PATCH 42/74] add PYPPinyinEngine.h
 
 ---
  src/Makefile.am       |    1 +
@@ -6708,13 +6708,13 @@ index 0000000..d8040c1
 +
 +#endif
 -- 
-1.7.6.4
+1.7.7
 
 
 From 269e8a835a6ac38a1c4b099f9a62bde9375e9a21 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 28 Sep 2011 17:09:11 +0800
-Subject: [PATCH 43/72] add libpinyin pinyin engine
+Subject: [PATCH 43/74] add libpinyin pinyin engine
 
 ---
  src/Makefile.am        |    1 +
@@ -7066,13 +7066,13 @@ index 0000000..2877702
 +        std::bind (&LibPinyinPinyinEngine::hideLookupTable, this));
 +}
 -- 
-1.7.6.4
+1.7.7
 
 
 From a0b8bc5114056a844e59998766c886f26768cef8 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 28 Sep 2011 17:30:41 +0800
-Subject: [PATCH 44/72] write bopomofo editor
+Subject: [PATCH 44/74] write bopomofo editor
 
 ---
  src/PYPBopomofoEditor.cc |  131 ++++++++++++++++++++++++++++++++++++++++++++++
@@ -7370,13 +7370,13 @@ index 9d522bf..f2d7309 100644
      virtual void updateAuxiliaryText (void) = 0;
      virtual void updatePreeditText (void) = 0;
 -- 
-1.7.6.4
+1.7.7
 
 
 From d372fbc3c073d37496be1571fdd6a0fec86307ea Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 28 Sep 2011 17:35:18 +0800
-Subject: [PATCH 45/72] re-factor pinyin editor
+Subject: [PATCH 45/74] re-factor pinyin editor
 
 ---
  src/PYPPinyinEditor.cc |   73 +-----------------------------------------------
@@ -7501,13 +7501,13 @@ index 974d2a5..87fe210 100644
  
  protected:
 -- 
-1.7.6.4
+1.7.7
 
 
 From a87fbe8b02845f67eec4443abb5eee373579c999 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 28 Sep 2011 17:51:56 +0800
-Subject: [PATCH 46/72] polish code
+Subject: [PATCH 46/74] polish code
 
 ---
  src/PYPPinyinEngine.cc |   29 +++++++++--------------------
@@ -7591,13 +7591,13 @@ index d8040c1..7a2d635 100644
      EditorPtr m_fallback_editor;
  
 -- 
-1.7.6.4
+1.7.7
 
 
 From a7fa96bf9d0081b3b85fe8177a1b51268267d9e4 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 29 Sep 2011 10:28:25 +0800
-Subject: [PATCH 47/72] fixes libpinyin pinyin engine
+Subject: [PATCH 47/74] fixes libpinyin pinyin engine
 
 ---
  src/PYPPinyinEngine.cc |    4 +++-
@@ -7630,13 +7630,13 @@ index f8e20ee..1fc4933 100644
  
  void
 -- 
-1.7.6.4
+1.7.7
 
 
 From f94b146760628458572483726768faa5cf5cf756 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 29 Sep 2011 11:03:50 +0800
-Subject: [PATCH 48/72] re-factor libpinyin backend
+Subject: [PATCH 48/74] re-factor libpinyin backend
 
 ---
  src/PYLibPinyin.cc |   22 ++++++++++++++++------
@@ -7723,13 +7723,13 @@ index 021201f..a19a5bf 100644
  }
  
 -- 
-1.7.6.4
+1.7.7
 
 
 From 5f27536c62860b9436bd38ad509b195c26c1a288 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 29 Sep 2011 13:46:48 +0800
-Subject: [PATCH 49/72] add PYPBopomofoEngine.h
+Subject: [PATCH 49/74] add PYPBopomofoEngine.h
 
 ---
  src/Makefile.am         |    1 +
@@ -7840,13 +7840,13 @@ index 0000000..f767908
 +
 +#endif
 -- 
-1.7.6.4
+1.7.7
 
 
 From a4d249bf8ed06be72eb667d12639a1ba77418d44 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 29 Sep 2011 14:59:44 +0800
-Subject: [PATCH 50/72] add PYPBopomofoEngine.cc
+Subject: [PATCH 50/74] add PYPBopomofoEngine.cc
 
 ---
  src/Makefile.am          |    1 +
@@ -8127,13 +8127,13 @@ index 0000000..e48e9af
 +
 +
 -- 
-1.7.6.4
+1.7.7
 
 
 From fdb0faafb87135edb9ac6b9d25525dbc2f268f71 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 29 Sep 2011 15:08:52 +0800
-Subject: [PATCH 51/72] add libpinyin engines to PYEngine.cc
+Subject: [PATCH 51/74] add libpinyin engines to PYEngine.cc
 
 ---
  src/PYEngine.cc |   25 ++++++++++++++++++++-----
@@ -8183,13 +8183,13 @@ index 7987146..3a34afc 100644
      }
      return (GObject *) engine;
 -- 
-1.7.6.4
+1.7.7
 
 
 From 485d515721c2127a9a1fa8996799cdbd900d1b72 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 30 Sep 2011 10:30:11 +0800
-Subject: [PATCH 52/72] add show setup
+Subject: [PATCH 52/74] add show setup
 
 ---
  src/PYPBopomofoEngine.cc |    3 ++-
@@ -8235,13 +8235,13 @@ index 1fc4933..c163cfc 100644
  
  gboolean
 -- 
-1.7.6.4
+1.7.7
 
 
 From 0c6b69bce0c9bf0c79bd4d3db464e6c2eb8cb1e7 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 30 Sep 2011 10:54:25 +0800
-Subject: [PATCH 53/72] add lazy init
+Subject: [PATCH 53/74] add lazy init
 
 ---
  src/PYLibPinyin.cc |   45 ++++++++++++++++++++++++++++++++++++++++-----
@@ -8334,13 +8334,13 @@ index 212bf53..44ed727 100644
      static LibPinyinBackEnd & instance (void) { return *m_instance; }
  
 -- 
-1.7.6.4
+1.7.7
 
 
 From f1073c63e615ab2b7159937b586007a75a0b492a Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 7 Oct 2011 12:53:14 +0800
-Subject: [PATCH 54/72] write libpinyin backend
+Subject: [PATCH 54/74] write libpinyin backend
 
 ---
  src/PYLibPinyin.cc |   10 ++++++++++
@@ -8396,13 +8396,13 @@ index a7097fe..d76e612 100644
      for (guint i = 0; i < G_N_ELEMENTS (chewing_options); i++) {
          if (map == chewing_options[i].bopomofo_keyboard) {
 -- 
-1.7.6.4
+1.7.7
 
 
 From a7efa0d82a7c4cae3a22f1f0e446ca5fff005ffd Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 7 Oct 2011 13:05:20 +0800
-Subject: [PATCH 55/72] write PYConfig
+Subject: [PATCH 55/74] write PYConfig
 
 ---
  src/PYConfig.cc |    7 +++++++
@@ -8434,13 +8434,13 @@ index 1373607..9e539c8 100644
  
  static const struct {
 -- 
-1.7.6.4
+1.7.7
 
 
 From a73a74a6c1ecb79b7fde223e1e71e6cbec04c802 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 8 Oct 2011 10:03:26 +0800
-Subject: [PATCH 56/72] alloc/free pinyin instance
+Subject: [PATCH 56/74] alloc/free pinyin instance
 
 ---
  src/PYMain.cc                |    2 +-
@@ -8570,13 +8570,13 @@ index 87fe210..3c61918 100644
  public:
      LibPinyinPinyinEditor (PinyinProperties & props, Config & config);
 -- 
-1.7.6.4
+1.7.7
 
 
 From d4baea8eb96460c50d241933713b0e419a9abddf Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 8 Oct 2011 10:11:35 +0800
-Subject: [PATCH 57/72] add engines
+Subject: [PATCH 57/74] add engines
 
 ---
  src/PYMain.cc |   32 +++++++++++++++++++++++++++++++-
@@ -8647,13 +8647,13 @@ index c4895ec..3516b90 100644
      }
  
 -- 
-1.7.6.4
+1.7.7
 
 
 From 33a08c7702e7bdf816cd4e9a21fd8190d2cbc35d Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 8 Oct 2011 10:37:40 +0800
-Subject: [PATCH 58/72] fixes full editor
+Subject: [PATCH 58/74] fixes full editor
 
 ---
  src/PYPFullPinyinEditor.cc |    5 ++++-
@@ -8719,13 +8719,13 @@ index c163cfc..4aae9a9 100644
          }
          retval = m_editors[m_input_mode]->processKeyEvent (keyval, keycode, modifiers);
 -- 
-1.7.6.4
+1.7.7
 
 
 From 1d4b7682ac6e05758e2d9dd45b373d48903568b1 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 8 Oct 2011 11:29:03 +0800
-Subject: [PATCH 59/72] fixes double pinyin
+Subject: [PATCH 59/74] fixes double pinyin
 
 ---
  src/PYPDoublePinyinEditor.cc |    8 +++++++-
@@ -8774,13 +8774,13 @@ index 0b7d603..69ed5ab 100644
      const gchar * p = m_text.c_str() + m_pinyin_len;
      m_buffer << p;
 -- 
-1.7.6.4
+1.7.7
 
 
 From de6e93108fc2c3b2ce3b8fba522a3edad082b738 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 8 Oct 2011 11:40:11 +0800
-Subject: [PATCH 60/72] fixes chewing editor
+Subject: [PATCH 60/74] fixes chewing editor
 
 ---
  src/PYEngine.cc          |    2 +-
@@ -8830,13 +8830,13 @@ index f13fcc9..1a330cc 100644
      const gchar * p = m_text.c_str() + m_pinyin_len;
      m_buffer << p;
 -- 
-1.7.6.4
+1.7.7
 
 
 From fd277418074f4ee9c587f95cf93ce83bb71bb4ce Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 8 Oct 2011 18:53:12 +0800
-Subject: [PATCH 61/72] add to pinyin.xml.in.in
+Subject: [PATCH 61/74] add to pinyin.xml.in.in
 
 ---
  src/pinyin.xml.in.in |   28 ++++++++++++++++++++++++++++
@@ -8882,13 +8882,13 @@ index 94b803a..f8ada12 100644
  
  </component>
 -- 
-1.7.6.4
+1.7.7
 
 
 From 2451a4c83885e796d7ddfee9d0321d56bc3703ef Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 8 Oct 2011 19:01:16 +0800
-Subject: [PATCH 62/72] fixes update preedit text
+Subject: [PATCH 62/74] fixes update preedit text
 
 ---
  src/PYPBopomofoEditor.cc |   14 ++++++++------
@@ -8948,13 +8948,13 @@ index 817f621..3d7deff 100644
      /* append rest text */
      const gchar *p = m_text.c_str () + m_pinyin_len;
 -- 
-1.7.6.4
+1.7.7
 
 
 From 83bd966f202824cbb431a581fea626f1252ce96e Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 10 Oct 2011 13:08:27 +0800
-Subject: [PATCH 63/72] update main.py
+Subject: [PATCH 63/74] update main.py
 
 ---
  setup/main.py |   21 +++++++++++++++------
@@ -9027,13 +9027,13 @@ index 0e3a729..197ea8b 100644
  
  if __name__ == "__main__":
 -- 
-1.7.6.4
+1.7.7
 
 
 From 6ecd8e73f2d5d035f36c5083aa8e69dbf198c671 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 10 Oct 2011 14:08:17 +0800
-Subject: [PATCH 64/72] add update when select candidate
+Subject: [PATCH 64/74] add update when select candidate
 
 ---
  src/PYPBopomofoEditor.cc |    2 ++
@@ -9097,13 +9097,13 @@ index 3d7deff..4b8aa21 100644
  }
  
 -- 
-1.7.6.4
+1.7.7
 
 
 From 8c5d9452dba95acae0adfd06769f262f18614041 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 10 Oct 2011 15:25:20 +0800
-Subject: [PATCH 65/72] fixes commit/reset
+Subject: [PATCH 65/74] fixes commit/reset
 
 ---
  src/PYPPhoneticEditor.cc |    1 +
@@ -9122,13 +9122,13 @@ index a5d7675..c50b265 100644
      Editor::reset ();
  }
 -- 
-1.7.6.4
+1.7.7
 
 
 From 4ecd95e7e241ab53934483b36bb7fba2717afc54 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 10 Oct 2011 17:30:39 +0800
-Subject: [PATCH 66/72] fixes space handle
+Subject: [PATCH 66/74] fixes space handle
 
 ---
  src/PYPPhoneticEditor.cc |    7 ++-----
@@ -9174,13 +9174,13 @@ index 4b8aa21..195d0e3 100644
      return TRUE;
  }
 -- 
-1.7.6.4
+1.7.7
 
 
 From 9a5d9bdde8bb12ac38af7a1eb2b7bb73a1ccf3ff Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 11 Oct 2011 11:14:18 +0800
-Subject: [PATCH 67/72] fixes choose candidate
+Subject: [PATCH 67/74] fixes choose candidate
 
 ---
  src/PYPPhoneticEditor.cc |    8 +++++++-
@@ -9207,13 +9207,13 @@ index dc494d5..6be7079 100644
  }
  
 -- 
-1.7.6.4
+1.7.7
 
 
 From a4054b39925e3c194d6e8dddad6bbc403dd74ac0 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 25 Oct 2011 14:11:13 +0800
-Subject: [PATCH 68/72] update pinyin.xml.in.in
+Subject: [PATCH 68/74] update pinyin.xml.in.in
 
 ---
  src/pinyin.xml.in.in |   10 ++++++++--
@@ -9254,13 +9254,13 @@ index f8ada12..d2b267d 100644
  
  </component>
 -- 
-1.7.6.4
+1.7.7
 
 
 From 4c36af48e4a173a7008d2742fbdf1e0a97481c1b Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 25 Oct 2011 14:36:36 +0800
-Subject: [PATCH 69/72] add user data directory support
+Subject: [PATCH 69/74] add user data directory support
 
 ---
  src/PYLibPinyin.cc |   16 +++++++++++++++-
@@ -9304,13 +9304,13 @@ index d76e612..077e7e0 100644
      return pinyin_alloc_instance (m_chewing_context);
  }
 -- 
-1.7.6.4
+1.7.7
 
 
 From e4f2fa619027b987645b0c5e5cf4d5d152c67306 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 26 Oct 2011 10:10:58 +0800
-Subject: [PATCH 70/72] add save support
+Subject: [PATCH 70/74] add save support
 
 ---
  src/PYLibPinyin.cc       |   51 ++++++++++++++++++++++++++++++++++++++++++++++
@@ -9460,13 +9460,13 @@ index 195d0e3..e676f6d 100644
      reset();
  }
 -- 
-1.7.6.4
+1.7.7
 
 
 From 025580e8f4ad1d758729e467e73011046fdba64b Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 27 Oct 2011 11:36:59 +0800
-Subject: [PATCH 71/72] hide bopomofo
+Subject: [PATCH 71/74] hide bopomofo
 
 ---
  src/pinyin.xml.in.in |   23 ++++-------------------
@@ -9520,13 +9520,13 @@ index d2b267d..93b14a1 100644
 -
  </component>
 -- 
-1.7.6.4
+1.7.7
 
 
 From 8f1412f1d5b326cb93202e7fa91a017fe1dfba4d Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 31 Oct 2011 11:18:09 +0800
-Subject: [PATCH 72/72] improves pinyin.xml
+Subject: [PATCH 72/74] improves pinyin.xml
 
 ---
  src/pinyin.xml.in.in |    6 +++---
@@ -9564,5 +9564,252 @@ index 93b14a1..862801b 100644
  			<author>Peng Huang &lt;shawn.p.huang at gmail.com&gt;
                          Peng Wu &lt;alexepico at gmail.com&gt;
 -- 
-1.7.6.4
+1.7.7
+
+
+From 4593004fbcf97c5a8499fe9cadf540b8a9c14d7d Mon Sep 17 00:00:00 2001
+From: Peng Wu <alexepico at gmail.com>
+Date: Thu, 3 Nov 2011 11:31:05 +0800
+Subject: [PATCH 73/74] fixes select candidate
+
+---
+ src/PYPPhoneticEditor.cc |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/src/PYPPhoneticEditor.cc b/src/PYPPhoneticEditor.cc
+index 6be7079..dc66689 100644
+--- a/src/PYPPhoneticEditor.cc
++++ b/src/PYPPhoneticEditor.cc
+@@ -314,6 +314,10 @@ LibPinyinPhoneticEditor::getPinyinCursor ()
+ gboolean
+ LibPinyinPhoneticEditor::selectCandidate (guint i)
+ {
++
++    if (G_UNLIKELY (i >= m_candidates->len))
++        return FALSE;
++
+     guint pinyin_cursor = getPinyinCursor ();
+ 
+     /* NOTE: deal with normal candidates selection here by libpinyin. */
+-- 
+1.7.7
+
+
+From 2144da157696caac27450a11922fb2ef90ddb6c9 Mon Sep 17 00:00:00 2001
+From: Peng Wu <alexepico at gmail.com>
+Date: Thu, 3 Nov 2011 13:19:12 +0800
+Subject: [PATCH 74/74] add compile flags
+
+---
+ configure.ac    |   14 +++++++++++++-
+ src/Makefile.am |   26 ++++++++++++++++++--------
+ src/PYConfig.cc |    4 ++++
+ src/PYEngine.cc |    2 ++
+ src/PYMain.cc   |   13 ++++++++++++-
+ 5 files changed, 49 insertions(+), 10 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1e3394d..36b54c9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -63,9 +63,20 @@ PKG_CHECK_MODULES(SQLITE, [
+ AC_PATH_PROG(SQLITE3, sqlite3)
+ 
+ # check libpinyin
++# --disable-libpinyin
++AC_ARG_ENABLE(libpinyin,
++    AS_HELP_STRING([--disable-libpinyin],
++         [do not use libpinyin]),
++    [enable_libpinyin=$enableval],
++    [enable_libpinyin=yes]
++)
++
+ PKG_CHECK_MODULES(LIBPINYIN, [
+     libpinyin >= 0.2.0
+-])
++], [],
++[enable_libpinyin=no])
++
++AM_CONDITIONAL(IBUS_BUILD_LIBPINYIN, [test x"$enable_libpinyin" = x"yes"])
+ 
+ # check uuid
+ AC_CHECK_FUNCS([uuid_create], [], [
+@@ -226,6 +237,7 @@ Build options:
+     Install prefix              $prefix
+     Use boost                   $enable_boost
+     Use opencc                  $enable_opencc
++    Use libpinyin               $enable_libpinyin
+     Build database android      $enable_db_android
+     Build database open-phrase  $enable_db_open_phrase
+     Build lua extension         $enable_lua_extension
+diff --git a/src/Makefile.am b/src/Makefile.am
+index b2a2670..dd6c7a4 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -64,14 +64,6 @@ ibus_engine_pinyin_c_sources = \
+ 	PYDynamicSpecialPhrase.cc \
+ 	PYSpecialPhrase.cc \
+ 	PYSpecialPhraseTable.cc \
+-	PYLibPinyin.cc \
+-	PYPPhoneticEditor.cc \
+-	PYPPinyinEditor.cc \
+-	PYPFullPinyinEditor.cc \
+-	PYPDoublePinyinEditor.cc \
+-	PYPBopomofoEditor.cc \
+-	PYPPinyinEngine.cc \
+-	PYPBopomofoEngine.cc \
+ 	$(NULL)
+ ibus_engine_pinyin_h_sources = \
+ 	PYBopomofo.h \
+@@ -124,6 +116,20 @@ ibus_engine_pinyin_h_sources = \
+ 	PYPBopomofoEngine.h \
+ 	$(NULL)
+ 
++if IBUS_BUILD_LIBPINYIN
++ibus_engine_pinyin_c_sources += \
++	PYLibPinyin.cc \
++	PYPPhoneticEditor.cc \
++	PYPPinyinEditor.cc \
++	PYPFullPinyinEditor.cc \
++	PYPDoublePinyinEditor.cc \
++	PYPBopomofoEditor.cc \
++	PYPPinyinEngine.cc \
++	PYPBopomofoEngine.cc \
++	$(NULL)
++endif
++
++
+ if IBUS_BUILD_LUA_EXTENSION
+ ibus_engine_pinyin_c_sources += PYExtEditor.cc
+ endif
+@@ -172,6 +178,10 @@ ibus_engine_pinyin_CXXFLAGS += $(LIBUUID_CFLAGS)
+ ibus_engine_pinyin_LDADD += $(LIBUUID_LIBS)
+ endif
+ 
++if IBUS_BUILD_LIBPINYIN
++   ibus_engine_pinyin_CXXFLAGS += -DIBUS_BUILD_LIBPINYIN
++endif
++
+ if IBUS_BUILD_LUA_EXTENSION
+     ibus_engine_pinyin_CXXFLAGS +=  \
+ 	@LUA_CFLAGS@ \
+diff --git a/src/PYConfig.cc b/src/PYConfig.cc
+index 9e539c8..47a7a7e 100644
+--- a/src/PYConfig.cc
++++ b/src/PYConfig.cc
+@@ -23,7 +23,9 @@
+ #include "PYTypes.h"
+ #include "PYBus.h"
+ #include "PYDoublePinyinTable.h"
++#ifdef IBUS_BUILD_LIBPINYIN
+ #include "PYLibPinyin.h"
++#endif
+ 
+ namespace PY {
+ 
+@@ -339,10 +341,12 @@ Config::valueChangedCallback (IBusConfig  *config,
+     self->valueChanged (section, name, value);
+     if (self->m_section != section)
+         return;
++#ifdef IBUS_BUILD_LIBPINYIN
+     if (self->m_section == "engine/Pinyin")
+         LibPinyinBackEnd::instance ().setPinyinOptions (self);
+     if (self->m_section == "engine/Bopomofo")
+         LibPinyinBackEnd::instance ().setChewingOptions (self);
++#endif
+ }
+ 
+ static const struct {
+diff --git a/src/PYEngine.cc b/src/PYEngine.cc
+index 27cc312..2563b9a 100644
+--- a/src/PYEngine.cc
++++ b/src/PYEngine.cc
+@@ -166,6 +166,7 @@ ibus_pinyin_engine_constructor (GType                  type,
+             std::strcmp (name, "bopomofo-debug") == 0) {
+             engine->engine = new BopomofoEngine (IBUS_ENGINE (engine));
+         }
++#ifdef IBUS_BUILD_LIBPINYIN
+         if (std::strcmp (name, "libpinyin") == 0 ||
+             std::strcmp (name, "libpinyin-debug") == 0) {
+             engine->engine = new LibPinyinPinyinEngine (IBUS_ENGINE (engine));
+@@ -174,6 +175,7 @@ ibus_pinyin_engine_constructor (GType                  type,
+             std::strcmp (name, "libbopomofo-debug") == 0 ) {
+             engine->engine = new LibPinyinBopomofoEngine (IBUS_ENGINE (engine));
+         }
++#endif
+     } else {
+         engine->engine = new PinyinEngine (IBUS_ENGINE (engine));
+     }
+diff --git a/src/PYMain.cc b/src/PYMain.cc
+index 3516b90..01f3b49 100644
+--- a/src/PYMain.cc
++++ b/src/PYMain.cc
+@@ -30,7 +30,9 @@
+ #include "PYBus.h"
+ #include "PYConfig.h"
+ #include "PYDatabase.h"
++#ifdef IBUS_BUILD_LIBPINYIN
+ #include "PYLibPinyin.h"
++#endif
+ 
+ using namespace PY;
+ 
+@@ -82,7 +84,9 @@ start_component (void)
+     }
+ 
+     Database::init ();
++#ifdef IBUS_BUILD_LIBPINYIN
+     LibPinyinBackEnd::init ();
++#endif
+     PinyinConfig::init (bus);
+     BopomofoConfig::init (bus);
+ 
+@@ -119,6 +123,7 @@ start_component (void)
+                                                      PKGDATADIR "/icons/ibus-bopomofo.svg",
+                                                      "us"));
+ 
++#ifdef IBUS_BUILD_LIBPINYIN
+     ibus_component_add_engine (component,
+                                ibus_engine_desc_new ("libpinyin-debug",
+                                                      N_("Intelligent Pinyin (debug)"),
+@@ -141,22 +146,26 @@ start_component (void)
+                                                      "Peng Huang <shawn.p.huang at gmail.com>",
+                                                      PKGDATADIR "/icons/ibus-bopomofo.svg",
+                                                      "us"));
+-
++#endif
+ 
+     factory = ibus_factory_new (ibus_bus_get_connection (bus));
+ 
+     if (ibus) {
+         ibus_factory_add_engine (factory, "pinyin", IBUS_TYPE_PINYIN_ENGINE);
+         ibus_factory_add_engine (factory, "bopomofo", IBUS_TYPE_PINYIN_ENGINE);
++#ifdef IBUS_BUILD_LIBPINYIN
+         ibus_factory_add_engine (factory, "libpinyin", IBUS_TYPE_PINYIN_ENGINE);
+         ibus_factory_add_engine (factory, "libbopomofo", IBUS_TYPE_PINYIN_ENGINE);
++#endif
+         ibus_bus_request_name (bus, "org.freedesktop.IBus.Pinyin", 0);
+     }
+     else {
+         ibus_factory_add_engine (factory, "pinyin-debug", IBUS_TYPE_PINYIN_ENGINE);
+         ibus_factory_add_engine (factory, "bopomofo-debug", IBUS_TYPE_PINYIN_ENGINE);
++#ifdef IBUS_BUILD_LIBPINYIN
+         ibus_factory_add_engine (factory, "libpinyin-debug", IBUS_TYPE_PINYIN_ENGINE);
+         ibus_factory_add_engine (factory, "libbopomofo-debug", IBUS_TYPE_PINYIN_ENGINE);
++#endif
+         ibus_bus_register_component (bus, component);
+     }
+ 
+@@ -175,7 +184,9 @@ sigterm_cb (int sig)
+ static void
+ atexit_cb (void)
+ {
++#ifdef IBUS_BUILD_LIBPINYIN
+     LibPinyinBackEnd::finalize ();
++#endif
+     PY::Database::finalize ();
+ }
+ 
+-- 
+1.7.7
 
diff --git a/ibus-pinyin.spec b/ibus-pinyin.spec
index 5ba53c5..f78a292 100644
--- a/ibus-pinyin.spec
+++ b/ibus-pinyin.spec
@@ -1,6 +1,6 @@
 Name:       ibus-pinyin
 Version:    1.3.99.20110706
-Release:    4%{?dist}
+Release:    5%{?dist}
 Summary:    The Chinese Pinyin and Bopomofo engines for IBus input platform
 License:    GPLv2+
 Group:      System Environment/Libraries
@@ -111,6 +111,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_datadir}/ibus-pinyin/db/android.db
 
 %changelog
+* Thu Nov 03 2011  Peng Wu <pwu at redhat.com> - 1.3.99.20110706-5
+- Fixes crashes, update ibus-pinyin-libpinyin-integration.patch
+
 * Mon Oct 31 2011  Peng Wu <pwu at redhat.com> - 1.3.99.20110706-4
 - Fixes pinyin.xml.in.in
 


More information about the scm-commits mailing list