Skip to content

Commit 9f554b1

Browse files
committed
Merge pull request #3 from jdiez17/log_colors_option
log, commands: Add log_colors command
2 parents ec2fedf + 69edcb8 commit 9f554b1

File tree

3 files changed

+31
-2
lines changed

3 files changed

+31
-2
lines changed

sway/commands.c

+17
Original file line numberDiff line numberDiff line change
@@ -146,13 +146,30 @@ int cmd_set(struct sway_config *config, int argc, char **argv) {
146146
return 0;
147147
}
148148

149+
int cmd_log_colors(struct sway_config *config, int argc, char **argv) {
150+
if (argc != 1) {
151+
sway_log(L_ERROR, "Invalid log_colors command (expected 1 argument, got %d)", argc);
152+
return 1;
153+
}
154+
155+
if (strcasecmp(argv[0], "no") != 0 && strcasecmp(argv[0], "yes") != 0) {
156+
sway_log(L_ERROR, "Invalid log_colors command (expected `yes` or `no`, got '%s')", argv[0]);
157+
return 1;
158+
}
159+
160+
sway_log_colors(!strcasecmp(argv[0], "yes"));
161+
return 0;
162+
}
163+
164+
149165
/* Keep alphabetized */
150166
struct cmd_handler handlers[] = {
151167
{ "bindsym", cmd_bindsym },
152168
{ "exec", cmd_exec },
153169
{ "exit", cmd_exit },
154170
{ "focus_follows_mouse", cmd_focus_follows_mouse },
155171
{ "layout", cmd_layout },
172+
{ "log_colors", cmd_log_colors },
156173
{ "set", cmd_set },
157174
};
158175

sway/log.c

+13-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ void init_log(int verbosity) {
1717
v = verbosity;
1818
}
1919

20+
void sway_log_colors(int mode) {
21+
colored = (mode == 1) ? 1 : 0;
22+
}
23+
2024
void sway_abort(char *format, ...) {
2125
fprintf(stderr, "ERROR: ");
2226
va_list args;
@@ -33,11 +37,18 @@ void sway_log(int verbosity, char* format, ...) {
3337
if (c > sizeof(verbosity_colors) / sizeof(char *)) {
3438
c = sizeof(verbosity_colors) / sizeof(char *) - 1;
3539
}
36-
fprintf(stderr, verbosity_colors[c]);
40+
41+
if (colored) {
42+
fprintf(stderr, verbosity_colors[c]);
43+
}
44+
3745
va_list args;
3846
va_start(args, format);
3947
vfprintf(stderr, format, args);
4048
va_end(args);
41-
fprintf(stderr, "\x1B[0m\n");
49+
50+
if (colored) {
51+
fprintf(stderr, "\x1B[0m\n");
52+
}
4253
}
4354
}

sway/log.h

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ typedef enum {
99
} log_importance_t;
1010

1111
void init_log(int verbosity);
12+
void sway_log_colors(int mode);
1213
void sway_log(int verbosity, char* format, ...);
1314
void sway_abort(char* format, ...);
1415

0 commit comments

Comments
 (0)