File tree 2 files changed +12
-8
lines changed
2 files changed +12
-8
lines changed Original file line number Diff line number Diff line change 1
1
cmake_minimum_required (VERSION 3.13)
2
2
cmake_policy (SET CMP0063 NEW)
3
3
project (fcitx5-cskk VERSION 1.2.0)
4
+ set (REQUIIRED_FCITX_VERSION 5.1.13)
4
5
set (CMAKE_CXX_FLAGS "-Wall" )
5
6
set (CMAKE_CXX_STANDARD 17)
6
7
IF (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
@@ -20,8 +21,8 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
20
21
# See Fcitx5UtilsConfig.cmake
21
22
add_definitions (-DFCITX_INSTALL_USE_FCITX_SYS_PATHS=ON )
22
23
find_package (PkgConfig REQUIRED)
23
- find_package (Fcitx5Core 5.0.6 REQUIRED)
24
- find_package (Fcitx5Utils 5.0.6 REQUIRED)
24
+ find_package (Fcitx5Core ${REQUIIRED_FCITX_VERSION} REQUIRED)
25
+ find_package (Fcitx5Utils ${REQUIIRED_FCITX_VERSION} REQUIRED)
25
26
26
27
# GITHUB_ACTION_BUILD_CSKK_VERSION=3.0.0
27
28
pkg_check_modules(LIBCSKK REQUIRED IMPORTED_TARGET "cskk>=3.0" )
Original file line number Diff line number Diff line change 17
17
#include < cstdlib>
18
18
#include < cstring>
19
19
#include < fcitx-config/iniparser.h>
20
+ #include < fcitx-utils/fdstreambuf.h>
21
+ #include < fcitx-utils/stringutils.h>
20
22
#include < fcitx/addonmanager.h>
21
23
#include < fcitx/inputpanel.h>
22
24
#include < filesystem>
25
+ #include < istream>
23
26
#include < string>
24
27
#include < vector>
25
28
@@ -112,16 +115,16 @@ void FcitxCskkEngine::loadDictionary() {
112
115
auto dict_config_file = StandardPath::global ().open (
113
116
StandardPath::Type::PkgData, " cskk/dictionary_list" , O_RDONLY);
114
117
115
- UniqueFilePtr fp (fdopen (dict_config_file.fd (), " rb" ));
116
- if (!fp) {
118
+ if (!dict_config_file.isValid ()) {
117
119
return ;
118
120
}
119
121
120
- UniqueCPtr<char > buf;
121
- size_t len = 0 ;
122
+ IFDStreamBuf buf (dict_config_file.fd ());
123
+ std::istream in (&buf);
124
+ std::string line;
122
125
123
- while (getline (buf, &len, fp. get ()) != - 1 ) {
124
- const auto trimmed = stringutils::trim (buf. get () );
126
+ while (std:: getline (in, line) ) {
127
+ const auto trimmed = stringutils::trimView (line );
125
128
const auto tokens = stringutils::split (trimmed, " ," );
126
129
127
130
if (tokens.size () < 3 ) {
You can’t perform that action at this time.
0 commit comments