Use opencc 1.0.2

This commit is contained in:
Peng Wu 2015-01-07 13:18:10 +08:00
parent 781d506fbb
commit e3558534eb
2 changed files with 64 additions and 2 deletions

View File

@ -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

View File

@ -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 <pwu@redhat.com> - 1.6.92-5
- Use opencc 1.0.2
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.92-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild