Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package fcitx5-skk for openSUSE:Factory checked in at 2025-01-29 16:17:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fcitx5-skk (Old) and /work/SRC/openSUSE:Factory/.fcitx5-skk.new.2316 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fcitx5-skk" Wed Jan 29 16:17:46 2025 rev:10 rq:1241113 version:5.1.6 Changes: -------- --- /work/SRC/openSUSE:Factory/fcitx5-skk/fcitx5-skk.changes 2025-01-12 11:28:52.314753003 +0100 +++ /work/SRC/openSUSE:Factory/.fcitx5-skk.new.2316/fcitx5-skk.changes 2025-01-29 16:18:24.063432215 +0100 @@ -1,0 +2,6 @@ +Wed Jan 29 07:17:14 UTC 2025 - Marguerite Su <i...@marguerite.su> + +- update to 5.1.6 + * use addon factory v2 + +------------------------------------------------------------------- Old: ---- fcitx5-skk-5.1.5.tar.zst New: ---- fcitx5-skk-5.1.6.tar.zst ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fcitx5-skk.spec ++++++ --- /var/tmp/diff_new_pack.x19Apv/_old 2025-01-29 16:18:24.759461079 +0100 +++ /var/tmp/diff_new_pack.x19Apv/_new 2025-01-29 16:18:24.759461079 +0100 @@ -25,7 +25,7 @@ %endif Name: %{pname} -Version: 5.1.5 +Version: 5.1.6 Release: 0 Summary: Libskk input method engine for Fcitx5 License: GPL-3.0-or-later ++++++ fcitx5-skk-5.1.5.tar.zst -> fcitx5-skk-5.1.6.tar.zst ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcitx5-skk-5.1.5/CMakeLists.txt new/fcitx5-skk-5.1.6/CMakeLists.txt --- old/fcitx5-skk-5.1.5/CMakeLists.txt 2024-10-08 21:49:09.000000000 +0200 +++ new/fcitx5-skk-5.1.6/CMakeLists.txt 2025-01-23 00:27:39.000000000 +0100 @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 3.6.0) -project(fcitx5-skk VERSION 5.1.5) +project(fcitx5-skk VERSION 5.1.6) +set(REQUIRED_FCITX_VERSION 5.1.12) find_package(ECM 1.0.0 REQUIRED) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) option(ENABLE_QT "Enable Qt for GUI configuration" On) @@ -10,7 +11,7 @@ include(FeatureSummary) find_package(PkgConfig REQUIRED) -find_package(Fcitx5Core 5.0.6 REQUIRED) +find_package(Fcitx5Core ${REQUIRED_FCITX_VERSION} REQUIRED) find_package(Gettext REQUIRED) pkg_check_modules(GObject2 IMPORTED_TARGET "gobject-2.0" REQUIRED) find_package(LibSKK REQUIRED) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcitx5-skk-5.1.5/org.fcitx.Fcitx5.Addon.Skk.metainfo.xml.in new/fcitx5-skk-5.1.6/org.fcitx.Fcitx5.Addon.Skk.metainfo.xml.in --- old/fcitx5-skk-5.1.5/org.fcitx.Fcitx5.Addon.Skk.metainfo.xml.in 2024-10-08 21:49:09.000000000 +0200 +++ new/fcitx5-skk-5.1.6/org.fcitx.Fcitx5.Addon.Skk.metainfo.xml.in 2025-01-23 00:27:39.000000000 +0100 @@ -14,6 +14,7 @@ <url type="vcs-browser">https://github.com/fcitx/fcitx5-skk</url> <project_group>Fcitx</project_group> <releases> + <release version="5.1.6" date="2025-01-22"/> <release version="5.1.5" date="2024-10-08"/> <release version="5.1.4" date="2024-05-30"/> <release version="5.1.3" date="2024-04-22"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcitx5-skk-5.1.5/src/CMakeLists.txt new/fcitx5-skk-5.1.6/src/CMakeLists.txt --- old/fcitx5-skk-5.1.5/src/CMakeLists.txt 2024-10-08 21:49:09.000000000 +0200 +++ new/fcitx5-skk-5.1.6/src/CMakeLists.txt 2025-01-23 00:27:39.000000000 +0100 @@ -2,7 +2,7 @@ set(SKK_SOURCES skk.cpp ) -add_library(skk MODULE ${SKK_SOURCES}) +add_fcitx5_addon(skk ${SKK_SOURCES}) target_link_libraries(skk Fcitx5::Core Fcitx5::Config diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcitx5-skk-5.1.5/src/skk-addon.conf.in.in new/fcitx5-skk-5.1.6/src/skk-addon.conf.in.in --- old/fcitx5-skk-5.1.5/src/skk-addon.conf.in.in 2024-10-08 21:49:09.000000000 +0200 +++ new/fcitx5-skk-5.1.6/src/skk-addon.conf.in.in 2025-01-23 00:27:39.000000000 +0100 @@ -7,3 +7,6 @@ Type=SharedLibrary OnDemand=True Configurable=True + +[Addon/Dependencies] +0=core:@REQUIRED_FCITX_VERSION@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcitx5-skk-5.1.5/src/skk.cpp new/fcitx5-skk-5.1.6/src/skk.cpp --- old/fcitx5-skk-5.1.5/src/skk.cpp 2024-10-08 21:49:09.000000000 +0200 +++ new/fcitx5-skk-5.1.6/src/skk.cpp 2025-01-23 00:27:39.000000000 +0100 @@ -6,28 +6,62 @@ */ #include "skk.h" #include <fcntl.h> -#include <stddef.h> +#include <algorithm> +#include <array> +#include <cstddef> +#include <cstdint> +#include <cstdio> +#include <cstring> +#include <memory> +#include <stdexcept> +#include <string> +#include <utility> +#include <vector> #include <fcitx-config/iniparser.h> +#include <fcitx-utils/capabilityflags.h> +#include <fcitx-utils/i18n.h> +#include <fcitx-utils/key.h> +#include <fcitx-utils/keysym.h> #include <fcitx-utils/log.h> +#include <fcitx-utils/macros.h> +#include <fcitx-utils/misc.h> +#include <fcitx-utils/standardpath.h> +#include <fcitx-utils/stringutils.h> +#include <fcitx-utils/textformatflags.h> #include <fcitx-utils/utf8.h> +#include <fcitx/action.h> +#include <fcitx/addoninstance.h> +#include <fcitx/candidatelist.h> +#include <fcitx/event.h> +#include <fcitx/inputcontextproperty.h> +#include <fcitx/inputmethodentry.h> #include <fcitx/inputpanel.h> +#include <fcitx/instance.h> +#include <fcitx/menu.h> +#include <fcitx/statusarea.h> +#include <fcitx/text.h> +#include <fcitx/userinterface.h> #include <fcitx/userinterfacemanager.h> +#include <glib-object.h> +#include <glib.h> +#include <libskk/libskk.h> -FCITX_DEFINE_LOG_CATEGORY(skk_logcategory, "skk"); - -#define SKK_DEBUG() FCITX_LOGC(skk_logcategory, Debug) +#define SKK_DEBUG() FCITX_LOGC(::fcitx::skk_logcategory, Debug) namespace fcitx { namespace { +FCITX_DEFINE_LOG_CATEGORY(skk_logcategory, "skk"); + Text skkContextGetPreedit(SkkContext *context) { Text preedit; const gchar *preeditString = skk_context_get_preedit(context); size_t len = strlen(preeditString); if (len > 0) { - guint offset, nchars; + guint offset; + guint nchars; skk_context_get_preedit_underline(context, &offset, &nchars); if (nchars > 0) { @@ -54,8 +88,6 @@ return preedit; } -} // namespace - struct { const char *icon; const char *label; @@ -70,32 +102,34 @@ }; auto inputModeStatus(SkkEngine *engine, InputContext *ic) { - auto state = engine->state(ic); + auto *state = engine->state(ic); auto mode = skk_context_get_input_mode(state->context()); return (mode >= 0 && mode < FCITX_ARRAY_SIZE(input_mode_status)) ? &input_mode_status[mode] : nullptr; } +} // namespace + class SkkModeAction : public Action { public: SkkModeAction(SkkEngine *engine) : engine_(engine) {} std::string shortText(InputContext *ic) const override { - if (auto status = inputModeStatus(engine_, ic)) { + if (auto *status = inputModeStatus(engine_, ic)) { return stringutils::concat(status->label, " - ", _(status->description)); } return ""; } std::string longText(InputContext *ic) const override { - if (auto status = inputModeStatus(engine_, ic)) { + if (auto *status = inputModeStatus(engine_, ic)) { return _(status->description); } return ""; } std::string icon(InputContext *ic) const override { - if (auto status = inputModeStatus(engine_, ic)) { + if (auto *status = inputModeStatus(engine_, ic)) { return status->icon; } return ""; @@ -117,11 +151,11 @@ setCheckable(true); } bool isChecked(InputContext *ic) const override { - auto state = engine_->state(ic); + auto *state = engine_->state(ic); return mode_ == skk_context_get_input_mode(state->context()); } void activate(InputContext *ic) override { - auto state = engine_->state(ic); + auto *state = engine_->state(ic); skk_context_set_input_mode(state->context(), mode_); } @@ -133,13 +167,13 @@ class SkkCandidateWord : public CandidateWord { public: SkkCandidateWord(SkkEngine *engine, Text text, int idx) - : CandidateWord(), engine_(engine), idx_(idx) { + : engine_(engine), idx_(idx) { setText(std::move(text)); } void select(InputContext *inputContext) const override { - auto state = engine_->state(inputContext); - auto context = state->context(); + auto *state = engine_->state(inputContext); + auto *context = state->context(); SkkCandidateList *skkCandidates = skk_context_get_candidates(context); if (skk_candidate_list_select_at( skkCandidates, @@ -161,8 +195,8 @@ : engine_(engine), ic_(ic) { setPageable(this); setCursorMovable(this); - auto skkstate = engine_->state(ic_); - auto context = skkstate->context(); + auto *skkstate = engine_->state(ic_); + auto *context = skkstate->context(); SkkCandidateList *skkCandidates = skk_context_get_candidates(context); gint size = skk_candidate_list_get_size(skkCandidates); gint cursor_pos = skk_candidate_list_get_cursor_pos(skkCandidates); @@ -176,7 +210,7 @@ // 24~26 3nd page int currentPage = (cursor_pos - page_start) / page_size; int totalPage = (size - page_start + page_size - 1) / page_size; - int pageFirst = currentPage * page_size + page_start; + int pageFirst = (currentPage * page_size) + page_start; int pageLast = std::min(size, static_cast<int>(pageFirst + page_size)); for (int i = pageFirst; i < pageLast; i++) { @@ -185,7 +219,7 @@ Text text; text.append(skk_candidate_get_text(skkCandidate.get())); if (*engine->config().showAnnotation) { - auto annotation = + const auto *annotation = skk_candidate_get_annotation(skkCandidate.get()); // Make sure annotation is not null, empty, or equal to "?". // ? seems to be a special debug purpose value. @@ -224,15 +258,15 @@ bool hasNext() const override { return hasNext_; } - void prev() override { return paging(true); } + void prev() override { paging(true); } - void next() override { return paging(false); } + void next() override { paging(false); } bool usedNextBefore() const override { return true; } - void prevCandidate() override { return moveCursor(true); } + void prevCandidate() override { moveCursor(true); } - void nextCandidate() override { return moveCursor(false); } + void nextCandidate() override { moveCursor(false); } const Text &label(int idx) const override { return labels_[idx]; } @@ -250,8 +284,8 @@ private: void paging(bool prev) { - auto skkstate = engine_->state(ic_); - auto context = skkstate->context(); + auto *skkstate = engine_->state(ic_); + auto *context = skkstate->context(); SkkCandidateList *skkCandidates = skk_context_get_candidates(context); if (skk_candidate_list_get_page_visible(skkCandidates)) { if (prev) { @@ -263,8 +297,8 @@ } } void moveCursor(bool prev) { - auto skkstate = engine_->state(ic_); - auto context = skkstate->context(); + auto *skkstate = engine_->state(ic_); + auto *context = skkstate->context(); SkkCandidateList *skkCandidates = skk_context_get_candidates(context); if (skk_candidate_list_get_page_visible(skkCandidates)) { if (prev) { @@ -290,7 +324,7 @@ SkkEngine::SkkEngine(Instance *instance) : instance_{instance}, factory_([this](InputContext &ic) { - auto newState = new SkkState(this, &ic); + auto *newState = new SkkState(this, &ic); newState->applyConfig(); return newState; }) { @@ -327,7 +361,7 @@ instance_->inputContextManager().registerProperty("skkState", &factory_); instance_->inputContextManager().foreach([this](InputContext *ic) { - auto state = this->state(ic); + auto *state = this->state(ic); skk_context_set_input_mode(state->context(), *config_.inputMode); ic->updateProperty(&factory_); return true; @@ -345,8 +379,8 @@ void SkkEngine::deactivate(const InputMethodEntry &entry, InputContextEvent &event) { if (event.type() == EventType::InputContextSwitchInputMethod) { - auto skkstate = this->state(event.inputContext()); - auto context = skkstate->context(); + auto *skkstate = this->state(event.inputContext()); + auto *context = skkstate->context(); auto text = skkContextGetPreedit(context); auto str = text.toString(); if (!str.empty()) { @@ -359,8 +393,8 @@ void SkkEngine::keyEvent(const InputMethodEntry &entry, KeyEvent &keyEvent) { FCITX_UNUSED(entry); - auto ic = keyEvent.inputContext(); - auto state = ic->propertyFor(&factory_); + auto *ic = keyEvent.inputContext(); + auto *state = ic->propertyFor(&factory_); state->keyEvent(keyEvent); } @@ -372,7 +406,7 @@ if (factory_.registered()) { instance_->inputContextManager().foreach([this](InputContext *ic) { - auto state = this->state(ic); + auto *state = this->state(ic); state->applyConfig(); return true; }); @@ -380,21 +414,22 @@ } void SkkEngine::reset(const InputMethodEntry &entry, InputContextEvent &event) { FCITX_UNUSED(entry); - auto state = this->state(event.inputContext()); + auto *state = this->state(event.inputContext()); state->reset(); } void SkkEngine::save() {} -std::string SkkEngine::subMode(const InputMethodEntry &, InputContext &ic) { - if (auto status = inputModeStatus(this, &ic)) { +std::string SkkEngine::subMode(const InputMethodEntry & /*entry*/, + InputContext &ic) { + if (auto *status = inputModeStatus(this, &ic)) { return _(status->description); } return ""; } -std::string SkkEngine::subModeLabelImpl(const InputMethodEntry &, +std::string SkkEngine::subModeLabelImpl(const InputMethodEntry & /*unused*/, InputContext &ic) { - if (auto status = inputModeStatus(this, &ic)) { + if (auto *status = inputModeStatus(this, &ic)) { return _(status->label); } return ""; @@ -424,11 +459,7 @@ userRule_ = std::move(rule); } -typedef enum _FcitxSkkDictType { - FSDT_Invalid, - FSDT_File, - FSTD_Server -} FcitxSkkDictType; +enum class FcitxSkkDictType { FSDT_Invalid, FSDT_File, FSTD_Server }; void SkkEngine::loadDictionary() { dictionaries_.clear(); @@ -454,13 +485,13 @@ SKK_DEBUG() << "Load dictionary: " << trimmed; - FcitxSkkDictType type = FSDT_Invalid; + FcitxSkkDictType type = FcitxSkkDictType::FSDT_Invalid; int mode = 0; std::string path; std::string host; std::string port; std::string encoding; - for (auto &token : tokens) { + for (const auto &token : tokens) { auto equal = token.find('='); if (equal == std::string::npos) { continue; @@ -471,9 +502,9 @@ if (key == "type") { if (value == "file") { - type = FSDT_File; + type = FcitxSkkDictType::FSDT_File; } else if (value == "server") { - type = FSTD_Server; + type = FcitxSkkDictType::FSTD_Server; } } else if (key == "file") { path = value; @@ -494,9 +525,10 @@ encoding = !encoding.empty() ? encoding : "EUC-JP"; - if (type == FSDT_Invalid) { + if (type == FcitxSkkDictType::FSDT_Invalid) { continue; - } else if (type == FSDT_File) { + } + if (type == FcitxSkkDictType::FSDT_File) { if (path.empty() || mode == 0) { continue; } @@ -533,7 +565,7 @@ dictionaries_.emplace_back(SKK_DICT(userdict)); } } - } else if (type == FSTD_Server) { + } else if (type == FcitxSkkDictType::FSTD_Server) { host = !host.empty() ? host : "localhost"; port = !port.empty() ? port : "1178"; @@ -626,7 +658,7 @@ bool SkkState::handleCandidate(KeyEvent &keyEvent) { auto &config = engine_->config(); - auto context = context_.get(); + auto *context = context_.get(); SkkCandidateList *skkCandidates = skk_context_get_candidates(context); if (!skk_candidate_list_get_page_visible(skkCandidates) || keyEvent.isRelease()) { @@ -684,7 +716,7 @@ void SkkState::updateUI() { auto &inputPanel = ic_->inputPanel(); - auto context = context_.get(); + auto *context = context_.get(); SkkCandidateList *skkCandidates = skk_context_get_candidates(context); @@ -750,13 +782,13 @@ std::vector<SkkDict *> dicts; dicts.reserve(engine_->dictionaries().size()); - for (auto &dict : engine_->dictionaries()) { + for (const auto &dict : engine_->dictionaries()) { dicts.push_back(dict.get()); } skk_context_set_dictionaries(context(), dicts.data(), dicts.size()); } void SkkState::copyTo(InputContextProperty *property) { - auto otherState = static_cast<SkkState *>(property); + auto *otherState = static_cast<SkkState *>(property); skk_context_set_input_mode(otherState->context(), skk_context_get_input_mode(context())); } @@ -777,21 +809,24 @@ updateUI(); } -void SkkState::input_mode_changed_cb(GObject *, GParamSpec *, SkkState *skk) { +void SkkState::input_mode_changed_cb(GObject * /*unused*/, + GParamSpec * /*unused*/, SkkState *skk) { skk->updateInputMode(); } -void SkkState::preedit_changed_cb(GObject *, GParamSpec *, SkkState *skk) { +void SkkState::preedit_changed_cb(GObject * /*unused*/, GParamSpec * /*unused*/, + SkkState *skk) { skk->updatePreedit(); } -gboolean SkkState::retrieve_surrounding_text_cb(GObject *, gchar **text, - guint *cursor_pos, +gboolean SkkState::retrieve_surrounding_text_cb(GObject * /*unused*/, + gchar **text, guint *cursor_pos, SkkState *skk) { InputContext *ic = skk->ic_; if (!ic->capabilityFlags().test(CapabilityFlag::SurroundingText) || - !ic->surroundingText().isValid()) + !ic->surroundingText().isValid()) { return false; + } *text = g_strdup(ic->surroundingText().text().c_str()); *cursor_pos = ic->surroundingText().cursor(); @@ -799,14 +834,15 @@ return true; } -gboolean SkkState::delete_surrounding_text_cb(GObject *, gint offset, +gboolean SkkState::delete_surrounding_text_cb(GObject * /*unused*/, gint offset, guint nchars, SkkState *skk) { InputContext *ic = skk->ic_; - if (!(ic->capabilityFlags().test(CapabilityFlag::SurroundingText))) + if (!(ic->capabilityFlags().test(CapabilityFlag::SurroundingText))) { return false; + } ic->deleteSurroundingText(offset, nchars); return true; } } // namespace fcitx -FCITX_ADDON_FACTORY(fcitx::SkkAddonFactory) +FCITX_ADDON_FACTORY_V2(skk, fcitx::SkkAddonFactory) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcitx5-skk-5.1.5/src/skk.h new/fcitx5-skk-5.1.6/src/skk.h --- old/fcitx5-skk-5.1.5/src/skk.h 2024-10-08 21:49:09.000000000 +0200 +++ new/fcitx5-skk-5.1.6/src/skk.h 2025-01-23 00:27:39.000000000 +0100 @@ -8,20 +8,32 @@ #define _FCITX_SKK_SKK_H_ #include <memory> - +#include <string> +#include <vector> #include <fcitx-config/configuration.h> +#include <fcitx-config/enum.h> #include <fcitx-config/iniparser.h> +#include <fcitx-config/option.h> +#include <fcitx-config/rawconfig.h> #include <fcitx-utils/capabilityflags.h> #include <fcitx-utils/i18n.h> +#include <fcitx-utils/key.h> +#include <fcitx-utils/keysym.h> +#include <fcitx-utils/misc.h> #include <fcitx/action.h> #include <fcitx/addonfactory.h> +#include <fcitx/addoninstance.h> #include <fcitx/addonmanager.h> #include <fcitx/candidatelist.h> +#include <fcitx/event.h> #include <fcitx/inputcontextmanager.h> #include <fcitx/inputcontextproperty.h> #include <fcitx/inputmethodengine.h> #include <fcitx/instance.h> #include <fcitx/menu.h> +#include <fcitx/text.h> +#include <glib-object.h> +#include <glib.h> #include <libskk/libskk.h> namespace fcitx { @@ -46,14 +58,14 @@ struct NotEmpty { bool check(const std::string &value) const { return !value.empty(); } - void dumpDescription(RawConfig &) const {} + void dumpDescription(RawConfig & /*unused*/) const {} }; struct RuleAnnotation : public EnumAnnotation { void dumpDescription(RawConfig &config) const { EnumAnnotation::dumpDescription(config); int length; - auto rules = skk_rule_list(&length); + auto *rules = skk_rule_list(&length); for (int i = 0; i < length; i++) { config.setValueByPath("Enum/" + std::to_string(i), rules[i].name); config.setValueByPath("EnumI18n/" + std::to_string(i), @@ -138,10 +150,11 @@ void reset(const InputMethodEntry &entry, InputContextEvent &event) override; void save() override; - std::string subMode(const InputMethodEntry &, InputContext &) override; + std::string subMode(const InputMethodEntry & /*entry*/, + InputContext & /*inputContext*/) override; - std::string subModeLabelImpl(const fcitx::InputMethodEntry &, - fcitx::InputContext &) override; + std::string subModeLabelImpl(const fcitx::InputMethodEntry & /*unused*/, + fcitx::InputContext & /*unused*/) override; auto &factory() { return factory_; } auto &config() { return config_; } @@ -152,7 +165,7 @@ reloadConfig(); } void setSubConfig(const std::string &path, - const fcitx::RawConfig &) override { + const fcitx::RawConfig & /*unused*/) override { if (path == "dictionary_list") { reloadConfig(); } @@ -198,7 +211,7 @@ SkkContext *context() { return context_.get(); } void applyConfig(); bool needCopy() const override { return true; } - void copyTo(InputContextProperty *state) override; + void copyTo(InputContextProperty *property) override; void reset(); private: