Skip to content

Commit 63e6e88

Browse files
authored
Merge pull request #1423 from bynect/fix-bool
Fix gboolean/bool mixup
2 parents 381fd98 + 13bff8a commit 63e6e88

File tree

4 files changed

+24
-14
lines changed

4 files changed

+24
-14
lines changed

src/dbus.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@ static void dbus_cb_dunst_RuleList(GDBusConnection *connection,
483483
g_variant_dict_insert(&dict, "name", "s", r->name);
484484

485485
// filters - order according to rule_matches_notification
486-
g_variant_dict_insert(&dict, "enabled", "b", r->enabled);
486+
g_variant_dict_insert(&dict, "enabled", "b", BOOL2G(r->enabled));
487487
// undocumented filter?
488488
if (r->match_dbus_timeout > -1)
489489
g_variant_dict_insert(&dict, "match_dbus_timeout", "i", r->match_dbus_timeout);
@@ -493,7 +493,7 @@ static void dbus_cb_dunst_RuleList(GDBusConnection *connection,
493493
"s",
494494
enum_to_string(urgency_enum_data, r->msg_urgency));
495495
if (r->match_transient > -1)
496-
g_variant_dict_insert(&dict, "match_transient", "b", r->match_transient);
496+
g_variant_dict_insert(&dict, "match_transient", "b", BOOL2G(r->match_transient));
497497
if (r->appname)
498498
g_variant_dict_insert(&dict, "appname", "s", r->appname);
499499
if (r->desktop_entry)
@@ -520,13 +520,13 @@ static void dbus_cb_dunst_RuleList(GDBusConnection *connection,
520520
"s",
521521
enum_to_string(fullscreen_enum_data, r->fullscreen));
522522
if (r->history_ignore != -1)
523-
g_variant_dict_insert(&dict, "history_ignore", "b", r->history_ignore);
523+
g_variant_dict_insert(&dict, "history_ignore", "b", BOOL2G(r->history_ignore));
524524
if (r->set_transient != -1)
525-
g_variant_dict_insert(&dict, "set_transient", "b", r->set_transient);
525+
g_variant_dict_insert(&dict, "set_transient", "b", BOOL2G(r->set_transient));
526526
if (r->skip_display != -1)
527-
g_variant_dict_insert(&dict, "skip_display", "b", r->skip_display);
527+
g_variant_dict_insert(&dict, "skip_display", "b", BOOL2G(r->skip_display));
528528
if (r->word_wrap != -1)
529-
g_variant_dict_insert(&dict, "word_wrap", "b", r->word_wrap);
529+
g_variant_dict_insert(&dict, "word_wrap", "b", BOOL2G(r->word_wrap));
530530
if (r->ellipsize != -1)
531531
g_variant_dict_insert(&dict,
532532
"ellipsize",
@@ -538,7 +538,7 @@ static void dbus_cb_dunst_RuleList(GDBusConnection *connection,
538538
"s",
539539
enum_to_string(horizontal_alignment_enum_data, r->alignment));
540540
if (r->hide_text != -1)
541-
g_variant_dict_insert(&dict, "hide_text", "b", r->hide_text);
541+
g_variant_dict_insert(&dict, "hide_text", "b", BOOL2G(r->hide_text));
542542
if (r->progress_bar_alignment != -1)
543543
g_variant_dict_insert(&dict,
544544
"progress_bar_alignment",

src/rules.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,14 @@ struct rule {
3434
enum urgency urgency;
3535
char *action_name;
3636
enum markup_mode markup;
37-
int history_ignore;
38-
int match_transient;
39-
int set_transient;
40-
int skip_display;
41-
int word_wrap;
37+
gint history_ignore;
38+
gint match_transient;
39+
gint set_transient;
40+
gint skip_display;
41+
gint word_wrap;
4242
int ellipsize;
4343
int alignment;
44-
int hide_text;
44+
gint hide_text;
4545
int icon_position;
4646
int min_icon_size;
4747
int max_icon_size;
@@ -56,7 +56,7 @@ struct rule {
5656
char *format;
5757
char *script;
5858
enum behavior_fullscreen fullscreen;
59-
gboolean enabled;
59+
bool enabled;
6060
int progress_bar_alignment;
6161
char *set_stack_tag; // this has to be the last modifying rule
6262
};

src/utils.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
#define STR_TO(...) _STR_TO(__VA_ARGS__)
2525
#define _STR_TO(...) "" # __VA_ARGS__
2626

27+
//! Make a gboolean from a boolean value
28+
// See https://github.com/dunst-project/dunst/issues/1421
29+
#define BOOL2G(x) ((x) ? TRUE : FALSE)
2730

2831
//! Assert that expr evaluates to true, if not return with val
2932
#define ASSERT_OR_RET(expr, val) if (!(expr)) return val;

test/dbus.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,7 @@ TEST test_dbus_cb_dunst_RuleList(void)
621621
struct rule *rule = rule_new("testing RuleList");
622622
rule->appname = "dunstify";
623623
rule->urgency = URG_CRIT;
624+
rule->match_transient = true;
624625
rule->fg = (struct color){.r = 0.1, .g = 0.1, .b = 0.1, .a = 1.0};
625626

626627
GVariant *result = dbus_invoke_ifac("RuleList", NULL, DUNST_IFAC);
@@ -648,6 +649,12 @@ TEST test_dbus_cb_dunst_RuleList(void)
648649
ASSERT(g_variant_dict_lookup(&d, "enabled", "b", &boolean));
649650
ASSERT(boolean);
650651

652+
ASSERT(!g_variant_dict_lookup(&d, "hide_text", "b", &boolean));
653+
ASSERT(!g_variant_dict_lookup(&d, "history_ignore", "b", &boolean));
654+
655+
ASSERT(g_variant_dict_lookup(&d, "match_transient", "b", &boolean));
656+
ASSERT(boolean);
657+
651658
ASSERT(g_variant_dict_lookup(&d, "appname", "s", &str));
652659
ASSERT_STR_EQ("dunstify", str);
653660
g_free(str);

0 commit comments

Comments
 (0)