diff options
author | Peng Wu <alexepico@gmail.com> | 2011-10-25 14:36:36 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2011-12-22 12:23:14 +0800 |
commit | 4d6a548b773ab5d59641208b5668a000287075d3 (patch) | |
tree | adad281a2b86ffb8bfa1c67bba7d17b8e10053c0 /src/PYLibPinyin.cc | |
parent | a83024ca7e24c5a1bd3054f7824d985e2f67bbf8 (diff) | |
download | ibus-libpinyin-4d6a548b773ab5d59641208b5668a000287075d3.tar.gz ibus-libpinyin-4d6a548b773ab5d59641208b5668a000287075d3.tar.xz ibus-libpinyin-4d6a548b773ab5d59641208b5668a000287075d3.zip |
add user data directory support
Diffstat (limited to 'src/PYLibPinyin.cc')
-rw-r--r-- | src/PYLibPinyin.cc | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/PYLibPinyin.cc b/src/PYLibPinyin.cc index d76e612..077e7e0 100644 --- a/src/PYLibPinyin.cc +++ b/src/PYLibPinyin.cc @@ -47,8 +47,15 @@ pinyin_instance_t * LibPinyinBackEnd::allocPinyinInstance () { if (NULL == m_pinyin_context) { - m_pinyin_context = pinyin_init ("/usr/share/libpinyin/data", NULL); + gchar * userdir = g_build_filename (g_get_home_dir(), ".cache", + "ibus", "libpinyin", NULL); + int retval = g_mkdir_with_parents (userdir, 0700); + if (retval) { + g_free(userdir); userdir = NULL; + } + m_pinyin_context = pinyin_init ("/usr/share/libpinyin/data", userdir); setPinyinOptions (&PinyinConfig::instance ()); + g_free(userdir); } return pinyin_alloc_instance (m_pinyin_context); } @@ -63,8 +70,15 @@ pinyin_instance_t * LibPinyinBackEnd::allocChewingInstance () { if (NULL == m_chewing_context) { + gchar * userdir = g_build_filename (g_get_home_dir(), ".cache", + "ibus", "libbopomofo", NULL); + int retval = g_mkdir_with_parents (userdir, 0700); + if (retval) { + g_free(userdir); userdir = NULL; + } m_chewing_context = pinyin_init ("/usr/share/libpinyin/data", NULL); setChewingOptions (&BopomofoConfig::instance ()); + g_free(userdir); } return pinyin_alloc_instance (m_chewing_context); } |