FCITX_EXPORT_API void FcitxInstanceCommitString(FcitxInstance* instance, FcitxInputContext* ic, const char* str) { if (str == NULL) return ; if (ic == NULL) return; char *pstr = FcitxInstanceProcessCommitFilter(instance, str); if (pstr != NULL) str = pstr; FcitxAddon **pfrontend = FcitxInstanceGetPFrontend(instance, ic->frontendid); if (pfrontend == NULL) return; FcitxFrontend* frontend = (*pfrontend)->frontend; frontend->CommitString((*pfrontend)->addonInstance, ic, str); FcitxInputState* input = instance->input; fcitx_utf8_strncpy(input->strLastCommit, str, MAX_USER_INPUT); input->strLastCommit[MAX_USER_INPUT] = '\0'; instance->iHZInputed += (int)(fcitx_utf8_strlen(str)); if (pstr) free(pstr); }
FCITX_EXPORT_API void FcitxInstanceCommitString(FcitxInstance* instance, FcitxInputContext* ic, char* str) { if (str == NULL) return ; if (ic == NULL) return; UT_array* frontends = &instance->frontends; char *pstr = FcitxInstanceProcessCommitFilter(instance, str); if (pstr != NULL) str = pstr; FcitxAddon** pfrontend = (FcitxAddon**) utarray_eltptr(frontends, ic->frontendid); if (pfrontend == NULL) return; FcitxFrontend* frontend = (*pfrontend)->frontend; frontend->CommitString((*pfrontend)->addonInstance, ic, str); if (pstr) free(pstr); }