Skip to content

Commit a7e800b

Browse files
committed
refactor: replace logging wrapper with glib functions
1 parent fa435c9 commit a7e800b

14 files changed

+89
-181
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ ln -s ../../pre-commit .git/hooks/pre-commit
5050

5151
Run ibus-chewing in command line with verbose debug logging:
5252

53-
G_MESSAGES_DEBUG=ibus-chewing /usr/libexec/ibus-engine-chewing -v 4
53+
G_MESSAGES_DEBUG=ibus-chewing /usr/libexec/ibus-engine-chewing
5454

5555
This will temporarily replace the current ibus-chewing engine with
5656
the one launched from the command line.

src/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@ add_executable(ibus-engine-chewing
5959
main.c
6060
)
6161
target_compile_definitions(ibus-engine-chewing
62-
PRIVATE VERBOSE_LEVEL=$<IF:$<CONFIG:Debug>,DEBUG,WARN>)
62+
PRIVATE
63+
G_LOG_DOMAIN="ibus-chewing"
64+
)
6365
target_include_directories(ibus-engine-chewing
6466
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
6567
target_include_directories(ibus-engine-chewing

src/ibus-chewing-engine.c

Lines changed: 46 additions & 51 deletions
Large diffs are not rendered by default.

src/ibus-chewing-lookup-table.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,9 @@ guint ibus_chewing_lookup_table_update(IBusLookupTable *iTable, ChewingContext *
5252
gint totalChoice = chewing_cand_TotalChoice(context);
5353
gint currentPage = chewing_cand_CurrentPage(context);
5454

55-
IBUS_CHEWING_LOG(INFO,
56-
"***** ibus_chewing_lookup_table_update(): "
57-
"choicePerPage=%d, totalChoice=%d, currentPage=%d",
58-
choicePerPage, totalChoice, currentPage);
55+
g_info("***** ibus_chewing_lookup_table_update(): "
56+
"choicePerPage=%d, totalChoice=%d, currentPage=%d",
57+
choicePerPage, totalChoice, currentPage);
5958

6059
ibus_lookup_table_clear(iTable);
6160
chewing_cand_Enumerate(context);

src/ibus-chewing-preedit-private.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,6 @@
7474
#define event_is_released(unmaskedMod) ((unmaskedMod & IBUS_RELEASE_MASK) != 0)
7575
#define event_process_or_ignore(cond) (cond) ? EVENT_RESPONSE_PROCESS : EVENT_RESPONSE_IGNORE
7676

77-
#define handle_log(funcName) \
78-
IBUS_CHEWING_LOG(INFO, "* self_handle_%s(-,%x(%s),%x(%s))", funcName, kSym, \
79-
ibus_keyval_name(kSym), unmaskedMod, modifiers_to_string(unmaskedMod));
80-
8177
KSym self_key_sym_fix(IBusChewingPreEdit *self, KSym kSym, KeyModifiers unmaskedMod);
8278

8379
EventResponse self_handle_key_sym_default(IBusChewingPreEdit *self, KSym kSym,

src/ibus-chewing-preedit.c

Lines changed: 30 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
#include <ctype.h>
99
#include <glib.h>
1010

11+
#define handle_log(funcName) \
12+
g_info("* self_handle_%s(-,%x(%s),%x(%s))", funcName, kSym, ibus_keyval_name(kSym), \
13+
unmaskedMod, modifiers_to_string(unmaskedMod));
14+
1115
/**************************************
1216
* Methods
1317
*/
@@ -54,19 +58,18 @@ void ibus_chewing_pre_edit_update_outgoing(IBusChewingPreEdit *self) {
5458
/* commit_Check=1 means new commit available */
5559
gchar *commitStr = chewing_commit_String(self->context);
5660

57-
IBUS_CHEWING_LOG(INFO, "commitStr=|%s|\n", commitStr);
61+
g_info("commitStr=|%s|\n", commitStr);
5862
g_string_append(self->outgoing, commitStr);
5963

6064
chewing_free(commitStr);
6165
chewing_ack(self->context);
6266
}
63-
IBUS_CHEWING_LOG(INFO, "outgoing=|%s|\n", self->outgoing->str);
64-
IBUS_CHEWING_LOG(DEBUG, "ibus_chewing_pre_edit_update_outgoing(-): return: outgoing=|%s|",
65-
self->outgoing->str);
67+
g_info("outgoing=|%s|\n", self->outgoing->str);
68+
g_debug("ibus_chewing_pre_edit_update_outgoing(-): return: outgoing=|%s|", self->outgoing->str);
6669
}
6770

6871
void ibus_chewing_pre_edit_update(IBusChewingPreEdit *self) {
69-
IBUS_CHEWING_LOG(DEBUG, "* ibus_chewing_pre_edit_update(-)");
72+
g_debug("* ibus_chewing_pre_edit_update(-)");
7073

7174
/* Make preEdit */
7275
gchar *bufferStr = chewing_buffer_String(self->context);
@@ -79,10 +82,9 @@ void ibus_chewing_pre_edit_update(IBusChewingPreEdit *self) {
7982
gchar *cP = bufferStr;
8083
gunichar uniCh;
8184

82-
IBUS_CHEWING_LOG(INFO,
83-
"* ibus_chewing_pre_edit_update(-) bufferStr=|%s|, "
84-
"bpmfStr=|%s| bpmfLen=%d cursor=%d",
85-
bufferStr, bpmfStr, self->bpmfLen, cursor_current);
85+
g_info("* ibus_chewing_pre_edit_update(-) bufferStr=|%s|, "
86+
"bpmfStr=|%s| bpmfLen=%d cursor=%d",
87+
bufferStr, bpmfStr, self->bpmfLen, cursor_current);
8688

8789
for (i = 0; i < chewing_buffer_Len(self->context) && cP != NULL; i++) {
8890
if (i == cursor_current) {
@@ -107,21 +109,15 @@ void ibus_chewing_pre_edit_update(IBusChewingPreEdit *self) {
107109

108110
guint ibus_chewing_pre_edit_length(IBusChewingPreEdit *self) { return self->preEdit->len; }
109111

110-
guint ibus_chewing_pre_edit_word_length(IBusChewingPreEdit *self) { return self->wordLen; }
111-
112-
guint ibus_chewing_pre_edit_word_limit(IBusChewingPreEdit *self) {
113-
return chewing_get_maxChiSymbolLen(self->context);
114-
}
115-
116112
gchar *ibus_chewing_pre_edit_get_pre_edit(IBusChewingPreEdit *self) { return self->preEdit->str; }
117113

118114
gchar *ibus_chewing_pre_edit_get_outgoing(IBusChewingPreEdit *self) { return self->outgoing->str; }
119115

120116
/* currently, ibus_chewing_pre_edit_force_commit() is called only by test cases.
121117
*/
122118
void ibus_chewing_pre_edit_force_commit(IBusChewingPreEdit *self) {
123-
IBUS_CHEWING_LOG(INFO, "ibus_chewing_pre_edit_force_commit(-) bpmf_check=%d buffer_check=%d",
124-
bpmf_check, chewing_buffer_Check(self->context));
119+
g_info("ibus_chewing_pre_edit_force_commit(-) bpmf_check=%d buffer_check=%d", bpmf_check,
120+
chewing_buffer_Check(self->context));
125121

126122
/* Ignore the context and commit whatever in preedit buffer */
127123
g_string_append(self->outgoing, self->preEdit->str);
@@ -130,13 +126,13 @@ void ibus_chewing_pre_edit_force_commit(IBusChewingPreEdit *self) {
130126
}
131127

132128
void ibus_chewing_pre_edit_clear(IBusChewingPreEdit *self) {
133-
IBUS_CHEWING_LOG(INFO, "ibus_chewing_pre_edit_clear(-)");
129+
g_info("ibus_chewing_pre_edit_clear(-)");
134130
ibus_chewing_pre_edit_clear_outgoing(self);
135131
ibus_chewing_pre_edit_clear_pre_edit(self);
136132
}
137133

138134
void ibus_chewing_pre_edit_clear_bopomofo(IBusChewingPreEdit *self) {
139-
IBUS_CHEWING_LOG(DEBUG, "ibus_chewing_pre_edit_clear_bopomofo(-)");
135+
g_debug("ibus_chewing_pre_edit_clear_bopomofo(-)");
140136

141137
/* Esc key can close candidate list, clear bopomofo, and clear
142138
* the whole pre-edit buffer. Make sure it acts as we expected.
@@ -151,7 +147,7 @@ void ibus_chewing_pre_edit_clear_bopomofo(IBusChewingPreEdit *self) {
151147
}
152148

153149
void ibus_chewing_pre_edit_clear_pre_edit(IBusChewingPreEdit *self) {
154-
IBUS_CHEWING_LOG(DEBUG, "ibus_chewing_pre_edit_clear_pre_edit(-)");
150+
g_debug("ibus_chewing_pre_edit_clear_pre_edit(-)");
155151

156152
ibus_chewing_pre_edit_clear_bopomofo(self);
157153

@@ -167,7 +163,7 @@ void ibus_chewing_pre_edit_clear_pre_edit(IBusChewingPreEdit *self) {
167163
}
168164

169165
void ibus_chewing_pre_edit_clear_outgoing(IBusChewingPreEdit *self) {
170-
IBUS_CHEWING_LOG(DEBUG, "ibus_chewing_pre_edit_clear_outgoing(-)");
166+
g_debug("ibus_chewing_pre_edit_clear_outgoing(-)");
171167
g_string_assign(self->outgoing, "");
172168
}
173169

@@ -258,8 +254,8 @@ EventResponse self_handle_key_sym_default(IBusChewingPreEdit *self, KSym kSym,
258254
EventResponse response = EVENT_RESPONSE_UNDECIDED;
259255
KSym fixedKSym = self_key_sym_fix(self, kSym, unmaskedMod);
260256

261-
IBUS_CHEWING_LOG(DEBUG, "* self_handle_key_sym_default(): new kSym %x(%s), %x(%s)", fixedKSym,
262-
ibus_keyval_name(fixedKSym), unmaskedMod, modifiers_to_string(unmaskedMod));
257+
g_debug("* self_handle_key_sym_default(): new kSym %x(%s), %x(%s)", fixedKSym,
258+
ibus_keyval_name(fixedKSym), unmaskedMod, modifiers_to_string(unmaskedMod));
263259
gint ret = chewing_handle_Default(self->context, fixedKSym);
264260

265261
/* Handle quick commit */
@@ -280,7 +276,7 @@ EventResponse self_handle_key_sym_default(IBusChewingPreEdit *self, KSym kSym,
280276
break;
281277
}
282278

283-
IBUS_CHEWING_LOG(DEBUG, "self_handle_key_sym_default() ret=%d response=%d", ret, response);
279+
g_debug("self_handle_key_sym_default() ret=%d response=%d", ret, response);
284280
/* Restore easySymbolInput */
285281
chewing_set_easySymbolInput(self->context, easySymbolInput);
286282
return response;
@@ -655,7 +651,7 @@ EventResponse self_handle_special([[maybe_unused]] IBusChewingPreEdit *self,
655651
[[maybe_unused]] KSym kSym,
656652
[[maybe_unused]] KeyModifiers unmaskedMod) {
657653
/* KSym >=128 is special key, which IM ignore. */
658-
IBUS_CHEWING_LOG(MSG, "ignore special key");
654+
g_message("ignore special key");
659655
return EVENT_RESPONSE_IGNORE;
660656
}
661657

@@ -749,12 +745,11 @@ static KeyHandlingRule *self_key_sym_find_key_handling_rule(KSym kSym) {
749745
(self_key_sym_find_key_handling_rule(kSym))->keyFunc(self, kSym, unmaskedMod)
750746

751747
#define process_key_debug(prompt) \
752-
IBUS_CHEWING_LOG(DEBUG, \
753-
"ibus_chewing_pre_edit_process_key(): %s flags=%x " \
754-
"buff_check=%d bpmf_check=%d cursor=%d total_choice=%d " \
755-
"is_chinese=%d is_full_shape=%d", \
756-
prompt, self->flags, chewing_buffer_Check(self->context), bpmf_check, \
757-
cursor_current, total_choice, is_chinese, is_full_shape)
748+
g_debug("ibus_chewing_pre_edit_process_key(): %s flags=%x " \
749+
"buff_check=%d bpmf_check=%d cursor=%d total_choice=%d " \
750+
"is_chinese=%d is_full_shape=%d", \
751+
prompt, self->flags, chewing_buffer_Check(self->context), bpmf_check, cursor_current, \
752+
total_choice, is_chinese, is_full_shape)
758753

759754
gboolean is_shift_key(KSym kSym) { return kSym == IBUS_KEY_Shift_L || kSym == IBUS_KEY_Shift_R; }
760755

@@ -770,8 +765,8 @@ gboolean is_shift_toggle(KSym keyLast, KSym kSym, KeyModifiers unmaskedMod) {
770765
/* keyCode should be converted to kSym already */
771766
gboolean ibus_chewing_pre_edit_process_key(IBusChewingPreEdit *self, KSym kSym,
772767
KeyModifiers unmaskedMod) {
773-
IBUS_CHEWING_LOG(INFO, "***** ibus_chewing_pre_edit_process_key(-,%x(%s),%x(%s))", kSym,
774-
ibus_keyval_name(kSym), unmaskedMod, modifiers_to_string(unmaskedMod));
768+
g_info("***** ibus_chewing_pre_edit_process_key(-,%x(%s),%x(%s))", kSym, ibus_keyval_name(kSym),
769+
unmaskedMod, modifiers_to_string(unmaskedMod));
775770
process_key_debug("Before response");
776771

777772
/* Find corresponding rule */
@@ -803,7 +798,7 @@ gboolean ibus_chewing_pre_edit_process_key(IBusChewingPreEdit *self, KSym kSym,
803798
self->keyLast = kSym;
804799
self->keyLastTs = g_get_monotonic_time();
805800

806-
IBUS_CHEWING_LOG(DEBUG, "ibus_chewing_pre_edit_process_key() response=%x", response);
801+
g_debug("ibus_chewing_pre_edit_process_key() response=%x", response);
807802
process_key_debug("After response");
808803
switch (response) {
809804
case EVENT_RESPONSE_ABSORB:
@@ -818,7 +813,7 @@ gboolean ibus_chewing_pre_edit_process_key(IBusChewingPreEdit *self, KSym kSym,
818813

819814
guint candidateCount = ibus_chewing_lookup_table_update(self->iTable, self->context);
820815

821-
IBUS_CHEWING_LOG(INFO, "ibus_chewing_pre_edit_process_key() candidateCount=%d", candidateCount);
816+
g_info("ibus_chewing_pre_edit_process_key() candidateCount=%d", candidateCount);
822817

823818
if (candidateCount) {
824819
ibus_chewing_pre_edit_set_flag(self, FLAG_TABLE_SHOW);

src/ibus-chewing-preedit.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,6 @@ void ibus_chewing_pre_edit_free(IBusChewingPreEdit *self);
9595

9696
guint ibus_chewing_pre_edit_length(IBusChewingPreEdit *self);
9797

98-
guint ibus_chewing_pre_edit_word_length(IBusChewingPreEdit *self);
99-
100-
guint ibus_chewing_pre_edit_word_limit(IBusChewingPreEdit *self);
101-
10298
#define ibus_chewing_pre_edit_is_empty(self) (ibus_chewing_pre_edit_length(self) == 0)
10399

104100
#define ibus_chewing_pre_edit_is_full(self) \

src/ibus-chewing-util.c

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -108,43 +108,3 @@ const gchar *modifiers_to_string(guint modifier) {
108108
}
109109
return modifierBuf;
110110
}
111-
112-
static MkdgLogLevel debugLevel = WARN;
113-
114-
void mkdg_log_set_level(MkdgLogLevel level) { debugLevel = level; }
115-
116-
void mkdg_logv_domain(const gchar *domain, MkdgLogLevel level, const gchar *format,
117-
va_list argList) {
118-
if (level > debugLevel)
119-
return;
120-
GLogLevelFlags flagSet;
121-
122-
switch (level) {
123-
case ERROR:
124-
flagSet = G_LOG_FLAG_FATAL | G_LOG_LEVEL_ERROR;
125-
break;
126-
case WARN:
127-
flagSet = G_LOG_LEVEL_WARNING;
128-
break;
129-
case MSG:
130-
flagSet = G_LOG_LEVEL_MESSAGE;
131-
break;
132-
case INFO:
133-
flagSet = G_LOG_LEVEL_INFO;
134-
break;
135-
default:
136-
flagSet = G_LOG_LEVEL_DEBUG;
137-
break;
138-
}
139-
g_logv(domain, flagSet, format, argList);
140-
}
141-
142-
void mkdg_log_domain(const gchar *domain, MkdgLogLevel level, const gchar *format, ...) {
143-
if (level > debugLevel)
144-
return;
145-
va_list argList;
146-
147-
va_start(argList, format);
148-
mkdg_logv_domain(domain, level, format, argList);
149-
va_end(argList);
150-
}

src/ibus-chewing-util.h

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@
3232
(CHEWING_VERSION_MAJOR == (major) && CHEWING_VERSION_MINOR == (minor) && \
3333
CHEWING_VERSION_PATCH >= (patch)))
3434

35-
#define IBUS_CHEWING_LOG(level, msg, args...) mkdg_log_domain("ibus-chewing", level, msg, ##args)
36-
3735
typedef guint KSym;
3836

3937
typedef guint KeyModifiers;
@@ -63,25 +61,6 @@ KSym key_sym_KP_to_normal(KSym k);
6361

6462
const gchar *modifiers_to_string(guint modifier);
6563

66-
/**
67-
* MkdgLogLevel:
68-
* @ERROR: Show auses of failure, the program should stop
69-
* @WARN: Show issues to be address, the program will still run.
70-
* @MSG: Show normal message
71-
* @INFO: Show information message
72-
* @DEBUG: Show debug message
73-
*
74-
* Message verbose level, from low to high. Similar to Log level of Gtk.
75-
*
76-
*/
77-
typedef enum { ERROR, WARN, MSG, INFO, DEBUG } MkdgLogLevel;
78-
79-
void mkdg_log_set_level(MkdgLogLevel level);
80-
81-
void mkdg_log(MkdgLogLevel level, const char *format, ...);
82-
83-
void mkdg_log_domain(const char *domain, MkdgLogLevel level, const char *format, ...);
84-
8564
/**************************************
8665
* String Utility Macros and Functions
8766
*/

src/main.c

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,10 @@ static IBusFactory *factory = NULL;
3535
static gboolean showFlags = FALSE;
3636
static gboolean ibus = FALSE;
3737
static gboolean xml = FALSE;
38-
gint ibus_chewing_verbose = VERBOSE_LEVEL;
3938

4039
static const GOptionEntry entries[] = {
4140
{"show_flags", 's', 0, G_OPTION_ARG_NONE, &showFlags, "Show compile flag only", NULL},
4241
{"ibus", 'i', 0, G_OPTION_ARG_NONE, &ibus, "component is executed by ibus", NULL},
43-
{"verbose", 'v', 0, G_OPTION_ARG_INT, &ibus_chewing_verbose,
44-
"Verbose level. The higher the level, the more the debug messages.", "[integer]"},
4542
{"xml", 'x', 0, G_OPTION_ARG_NONE, &xml, "read chewing engine desc from xml file", NULL},
4643
{}, // null entry
4744
};
@@ -53,13 +50,13 @@ static void ibus_disconnected_cb([[maybe_unused]] IBusBus *bus,
5350
}
5451

5552
static void start_component(void) {
56-
IBUS_CHEWING_LOG(INFO, "start_component");
53+
g_info("start_component");
5754
ibus_init();
5855
bus = ibus_bus_new();
5956
g_signal_connect(bus, "disconnected", G_CALLBACK(ibus_disconnected_cb), NULL);
6057

6158
if (!ibus_bus_is_connected(bus)) {
62-
IBUS_CHEWING_LOG(ERROR, _("Cannot connect to IBus!"));
59+
g_error(_("Cannot connect to IBus!"));
6360
exit(2);
6461
}
6562

@@ -107,7 +104,7 @@ static void start_component(void) {
107104

108105
if (ibus) {
109106
guint32 ret = ibus_bus_request_name(bus, QUOTE_ME(PROJECT_SCHEMA_ID), 0);
110-
IBUS_CHEWING_LOG(INFO, "start_component: request_name: %u", ret);
107+
g_info("start_component: request_name: %u", ret);
111108
} else {
112109
ibus_bus_register_component(bus, component);
113110
}
@@ -145,7 +142,7 @@ void determine_locale() {
145142
g_strlcat(localeStr, ".utf8", STRING_BUFFER_SIZE);
146143
#undef STRING_BUFFER_SIZE
147144
setlocale(LC_ALL, localeStr);
148-
IBUS_CHEWING_LOG(INFO, "determine_locale %s", localeStr);
145+
g_info("determine_locale %s", localeStr);
149146
}
150147

151148
int main(gint argc, gchar *argv[]) {
@@ -170,15 +167,13 @@ int main(gint argc, gchar *argv[]) {
170167
}
171168

172169
g_option_context_free(context);
173-
mkdg_log_set_level(ibus_chewing_verbose);
174170

175171
g_autoptr(GSettings) settings = g_settings_new(QUOTE_ME(PROJECT_SCHEMA_ID));
176172
g_autoptr(GVariant) plain_zhuyin = g_settings_get_user_value(settings, "plain-zhuyin");
177173
if (plain_zhuyin != NULL) {
178174
// migrate settings
179175
gboolean is_plain_zhuyin = g_variant_get_boolean(plain_zhuyin);
180-
IBUS_CHEWING_LOG(MSG, "migrate plain-zhuyin(%d) setting to conversion-engine",
181-
is_plain_zhuyin);
176+
g_message("migrate plain-zhuyin(%d) setting to conversion-engine", is_plain_zhuyin);
182177
if (is_plain_zhuyin) {
183178
g_settings_set_enum(settings, "conversion-engine", SIMPLE_CONVERSION_ENGINE);
184179
}

0 commit comments

Comments
 (0)