aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
Diffstat (limited to 'sway')
-rw-r--r--sway/commands.c12
-rw-r--r--sway/commands/bar.c4
-rw-r--r--sway/config.c15
-rw-r--r--sway/config/output.c9
-rw-r--r--sway/input/cursor.c15
-rw-r--r--sway/input/input-manager.c10
-rw-r--r--sway/input/keyboard.c29
-rw-r--r--sway/swaynag.c14
8 files changed, 23 insertions, 85 deletions
diff --git a/sway/commands.c b/sway/commands.c
index 0ea44129..55eda183 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -489,20 +489,10 @@ struct cmd_results *cmd_results_new(enum cmd_status status,
}
results->status = status;
if (format) {
- char *error = NULL;
va_list args;
va_start(args, format);
- int slen = vsnprintf(NULL, 0, format, args);
+ results->error = vformat_str(format, args);
va_end(args);
- if (slen > 0) {
- error = malloc(slen + 1);
- if (error != NULL) {
- va_start(args, format);
- vsnprintf(error, slen + 1, format, args);
- va_end(args);
- }
- }
- results->error = error;
} else {
results->error = NULL;
}
diff --git a/sway/commands/bar.c b/sway/commands/bar.c
index 8571d282..22756acb 100644
--- a/sway/commands/bar.c
+++ b/sway/commands/bar.c
@@ -73,12 +73,10 @@ struct cmd_results *cmd_bar(int argc, char **argv) {
}
++argv; --argc;
} else if (config->reading && !config->current_bar) {
- int len = snprintf(NULL, 0, "bar-%d", config->bars->length) + 1;
- id = malloc(len * sizeof(char));
+ id = format_str("bar-%d", config->bars->length);
if (!id) {
return cmd_results_new(CMD_FAILURE, "Unable to allocate bar id");
}
- snprintf(id, len, "bar-%d", config->bars->length);
} else if (!config->reading && strcmp(argv[0], "mode") != 0 &&
strcmp(argv[0], "hidden_state") != 0) {
if (is_subcommand(argv[0])) {
diff --git a/sway/config.c b/sway/config.c
index f5efa98a..8c8c148d 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -924,23 +924,18 @@ void config_add_swaynag_warning(char *fmt, ...) {
if (config->reading && !config->validating) {
va_list args;
va_start(args, fmt);
- size_t length = vsnprintf(NULL, 0, fmt, args) + 1;
+ char *str = vformat_str(fmt, args);
va_end(args);
-
- char *temp = malloc(length + 1);
- if (!temp) {
- sway_log(SWAY_ERROR, "Failed to allocate buffer for warning.");
+ if (str == NULL) {
return;
}
- va_start(args, fmt);
- vsnprintf(temp, length, fmt, args);
- va_end(args);
-
swaynag_log(config->swaynag_command, &config->swaynag_config_errors,
"Warning on line %i (%s) '%s': %s",
config->current_config_line_number, config->current_config_path,
- config->current_config_line, temp);
+ config->current_config_line, str);
+
+ free(str);
}
}
diff --git a/sway/config/output.c b/sway/config/output.c
index 45d2441b..6fb29ded 100644
--- a/sway/config/output.c
+++ b/sway/config/output.c
@@ -162,13 +162,10 @@ static void merge_id_on_name(struct output_config *oc) {
char id[128];
output_get_identifier(id, sizeof(id), output);
- size_t size = snprintf(NULL, 0, "%s on %s", id, name) + 1;
- char *id_on_name = malloc(size);
+ char *id_on_name = format_str("%s on %s", id, name);
if (!id_on_name) {
- sway_log(SWAY_ERROR, "Failed to allocate id on name string");
return;
}
- snprintf(id_on_name, size, "%s on %s", id, name);
int i = list_seq_find(config->output_configs, output_name_cmp, id_on_name);
if (i >= 0) {
@@ -633,9 +630,7 @@ static struct output_config *get_output_config(char *identifier,
struct output_config *oc_name = NULL;
struct output_config *oc_id = NULL;
- size_t length = snprintf(NULL, 0, "%s on %s", identifier, name) + 1;
- char *id_on_name = malloc(length);
- snprintf(id_on_name, length, "%s on %s", identifier, name);
+ char *id_on_name = format_str("%s on %s", identifier, name);
int i = list_seq_find(config->output_configs, output_name_cmp, id_on_name);
if (i >= 0) {
oc_id_on_name = config->output_configs->items[i];
diff --git a/sway/input/cursor.c b/sway/input/cursor.c
index 15687993..75d055cd 100644
--- a/sway/input/cursor.c
+++ b/sway/input/cursor.c
@@ -1273,11 +1273,7 @@ uint32_t get_mouse_bindsym(const char *name, char **error) {
// Get event code from name
int code = libevdev_event_code_from_name(EV_KEY, name);
if (code == -1) {
- size_t len = snprintf(NULL, 0, "Unknown event %s", name) + 1;
- *error = malloc(len);
- if (*error) {
- snprintf(*error, len, "Unknown event %s", name);
- }
+ *error = format_str("Unknown event %s", name);
return 0;
}
return code;
@@ -1299,13 +1295,8 @@ uint32_t get_mouse_bindcode(const char *name, char **error) {
}
const char *event = libevdev_event_code_get_name(EV_KEY, code);
if (!event || strncmp(event, "BTN_", strlen("BTN_")) != 0) {
- size_t len = snprintf(NULL, 0, "Event code %d (%s) is not a button",
- code, event ? event : "(null)") + 1;
- *error = malloc(len);
- if (*error) {
- snprintf(*error, len, "Event code %d (%s) is not a button",
- code, event ? event : "(null)");
- }
+ *error = format_str("Event code %d (%s) is not a button",
+ code, event ? event : "(null)");
return 0;
}
return code;
diff --git a/sway/input/input-manager.c b/sway/input/input-manager.c
index ea2cc038..1115ba5e 100644
--- a/sway/input/input-manager.c
+++ b/sway/input/input-manager.c
@@ -80,15 +80,7 @@ char *input_device_get_identifier(struct wlr_input_device *device) {
}
}
- const char *fmt = "%d:%d:%s";
- int len = snprintf(NULL, 0, fmt, vendor, product, name) + 1;
- char *identifier = malloc(len);
- if (!identifier) {
- sway_log(SWAY_ERROR, "Unable to allocate unique input device name");
- return NULL;
- }
-
- snprintf(identifier, len, fmt, vendor, product, name);
+ char *identifier = format_str("%d:%d:%s", vendor, product, name);
free(name);
return identifier;
}
diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c
index 45a588ec..c3bf4fbb 100644
--- a/sway/input/keyboard.c
+++ b/sway/input/keyboard.c
@@ -717,23 +717,11 @@ struct sway_keyboard *sway_keyboard_create(struct sway_seat *seat,
static void handle_xkb_context_log(struct xkb_context *context,
enum xkb_log_level level, const char *format, va_list args) {
- va_list args_copy;
- va_copy(args_copy, args);
- size_t length = vsnprintf(NULL, 0, format, args_copy) + 1;
- va_end(args_copy);
-
- char *error = malloc(length);
- if (!error) {
- sway_log(SWAY_ERROR, "Failed to allocate libxkbcommon log message");
- return;
- }
+ char *error = vformat_str(format, args);
- va_copy(args_copy, args);
- vsnprintf(error, length, format, args_copy);
- va_end(args_copy);
-
- if (error[length - 2] == '\n') {
- error[length - 2] = '\0';
+ size_t len = strlen(error);
+ if (error[len - 1] == '\n') {
+ error[len - 1] = '\0';
}
sway_log_importance_t importance = SWAY_DEBUG;
@@ -768,13 +756,8 @@ struct xkb_keymap *sway_keyboard_compile_keymap(struct input_config *ic,
if (!keymap_file) {
sway_log_errno(SWAY_ERROR, "cannot read xkb file %s", ic->xkb_file);
if (error) {
- size_t len = snprintf(NULL, 0, "cannot read xkb file %s: %s",
- ic->xkb_file, strerror(errno)) + 1;
- *error = malloc(len);
- if (*error) {
- snprintf(*error, len, "cannot read xkb_file %s: %s",
- ic->xkb_file, strerror(errno));
- }
+ *error = format_str("cannot read xkb file %s: %s",
+ ic->xkb_file, strerror(errno));
}
goto cleanup;
}
diff --git a/sway/swaynag.c b/sway/swaynag.c
index 4a0a6d30..6031174d 100644
--- a/sway/swaynag.c
+++ b/sway/swaynag.c
@@ -145,22 +145,16 @@ void swaynag_log(const char *swaynag_command, struct swaynag_instance *swaynag,
va_list args;
va_start(args, fmt);
- size_t length = vsnprintf(NULL, 0, fmt, args) + 1;
+ char *str = vformat_str(fmt, args);
va_end(args);
-
- char *temp = malloc(length + 1);
- if (!temp) {
+ if (!str) {
sway_log(SWAY_ERROR, "Failed to allocate buffer for swaynag log entry.");
return;
}
- va_start(args, fmt);
- vsnprintf(temp, length, fmt, args);
- va_end(args);
-
- write(swaynag->fd[1], temp, length);
+ write(swaynag->fd[1], str, strlen(str));
- free(temp);
+ free(str);
}
void swaynag_show(struct swaynag_instance *swaynag) {