diff --git a/ibus-libpinyin-use-opencc.patch b/ibus-libpinyin-use-opencc.patch new file mode 100644 index 0000000..aa85037 --- /dev/null +++ b/ibus-libpinyin-use-opencc.patch @@ -0,0 +1,57 @@ +Index: ibus-libpinyin-1.6.92/src/PYSimpTradConverter.cc +=================================================================== +--- ibus-libpinyin-1.6.92.orig/src/PYSimpTradConverter.cc ++++ ibus-libpinyin-1.6.92/src/PYSimpTradConverter.cc +@@ -40,44 +40,27 @@ namespace PY { + #ifdef HAVE_OPENCC + + class opencc { +- static const int BUFFER_SIZE = 64; + public: + opencc (void) + { +- m_od = opencc_open (OPENCC_DEFAULT_CONFIG_SIMP_TO_TRAD); +- g_assert (m_od != NULL); ++ m_cc = opencc_open (OPENCC_DEFAULT_CONFIG_SIMP_TO_TRAD); ++ g_assert (m_cc != NULL); + } + + ~opencc (void) + { +- opencc_close(m_od); ++ opencc_close(m_cc); + } + + void convert (const gchar *in, String &out) + { +- glong n_char; +- gunichar *in_ucs4 = g_utf8_to_ucs4_fast (in, -1, &n_char); +- +- ucs4_t *pinbuf = (ucs4_t *)in_ucs4; +- size_t inbuf_left = n_char; +- while (inbuf_left != 0) { +- ucs4_t *poutbuf = (ucs4_t *)m_buffer; +- size_t outbuf_left = BUFFER_SIZE; +- size_t retval = opencc_convert(m_od, &pinbuf, &inbuf_left, &poutbuf, &outbuf_left); +- if (retval == (size_t) -1) { +- /* append left chars in pinbuf */ +- g_warning ("opencc_convert return failed"); +- out << (gunichar *) pinbuf; +- break; +- } +- *poutbuf = L'\0'; +- out << m_buffer; +- } +- g_free (in_ucs4); ++ char * converted = opencc_convert_utf8 (m_cc, in, -1); ++ g_assert (converted != NULL); ++ out = converted; ++ opencc_convert_utf8_free (converted); + } + private: +- opencc_t m_od; +- gunichar m_buffer[BUFFER_SIZE + 1]; ++ opencc_t m_cc; + }; + + void diff --git a/ibus-libpinyin.spec b/ibus-libpinyin.spec index 3337b2f..e01723c 100644 --- a/ibus-libpinyin.spec +++ b/ibus-libpinyin.spec @@ -2,7 +2,7 @@ Name: ibus-libpinyin Version: 1.6.92 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Intelligent Pinyin engine based on libpinyin for IBus License: GPLv2+ Group: System Environment/Libraries @@ -11,6 +11,7 @@ Source0: http://downloads.sourceforge.net/libpinyin/ibus-libpinyin/%{name}-%{ %if %snapshot Patch0: ibus-libpinyin-1.7.x-head.patch %endif +Patch1: ibus-libpinyin-use-opencc.patch Requires: pygobject3 Requires: ibus >= 1.5.4 @@ -20,7 +21,7 @@ BuildRequires: libtool BuildRequires: pkgconfig BuildRequires: sqlite-devel BuildRequires: libuuid-devel -BuildRequires: opencc-devel +BuildRequires: opencc-devel >= 1.0.2 BuildRequires: lua-devel BuildRequires: python2-devel BuildRequires: desktop-file-utils @@ -44,6 +45,7 @@ input method based on libpinyin for IBus. %if %snapshot %patch0 -p1 -b .head %endif +%patch1 -p1 -b .opencc %build %configure --disable-static \ @@ -88,6 +90,9 @@ make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" %{_datadir}/ibus/component/* %changelog +* Wed Jan 7 2015 Peng Wu - 1.6.92-5 +- Use opencc 1.0.2 + * Sat Aug 16 2014 Fedora Release Engineering - 1.6.92-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild