aboutsummaryrefslogtreecommitdiffstats
path: root/sway/commands/input/map_from_region.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/commands/input/map_from_region.c')
-rw-r--r--sway/commands/input/map_from_region.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sway/commands/input/map_from_region.c b/sway/commands/input/map_from_region.c
index 80bb856d..40f04214 100644
--- a/sway/commands/input/map_from_region.c
+++ b/sway/commands/input/map_from_region.c
@@ -54,20 +54,28 @@ struct cmd_results *input_cmd_map_from_region(int argc, char **argv) {
54 bool mm1, mm2; 54 bool mm1, mm2;
55 if (!parse_coords(argv[0], &new_config->mapped_from_region->x1, 55 if (!parse_coords(argv[0], &new_config->mapped_from_region->x1,
56 &new_config->mapped_from_region->y1, &mm1)) { 56 &new_config->mapped_from_region->y1, &mm1)) {
57 free(new_config->mapped_from_region);
58 free_input_config(new_config);
57 return cmd_results_new(CMD_FAILURE, "map_from_region", 59 return cmd_results_new(CMD_FAILURE, "map_from_region",
58 "Invalid top-left coordinates"); 60 "Invalid top-left coordinates");
59 } 61 }
60 if (!parse_coords(argv[1], &new_config->mapped_from_region->x2, 62 if (!parse_coords(argv[1], &new_config->mapped_from_region->x2,
61 &new_config->mapped_from_region->y2, &mm2)) { 63 &new_config->mapped_from_region->y2, &mm2)) {
64 free(new_config->mapped_from_region);
65 free_input_config(new_config);
62 return cmd_results_new(CMD_FAILURE, "map_from_region", 66 return cmd_results_new(CMD_FAILURE, "map_from_region",
63 "Invalid bottom-right coordinates"); 67 "Invalid bottom-right coordinates");
64 } 68 }
65 if (new_config->mapped_from_region->x1 > new_config->mapped_from_region->x2 || 69 if (new_config->mapped_from_region->x1 > new_config->mapped_from_region->x2 ||
66 new_config->mapped_from_region->y1 > new_config->mapped_from_region->y2) { 70 new_config->mapped_from_region->y1 > new_config->mapped_from_region->y2) {
71 free(new_config->mapped_from_region);
72 free_input_config(new_config);
67 return cmd_results_new(CMD_FAILURE, "map_from_region", 73 return cmd_results_new(CMD_FAILURE, "map_from_region",
68 "Invalid rectangle"); 74 "Invalid rectangle");
69 } 75 }
70 if (mm1 != mm2) { 76 if (mm1 != mm2) {
77 free(new_config->mapped_from_region);
78 free_input_config(new_config);
71 return cmd_results_new(CMD_FAILURE, "map_from_region", 79 return cmd_results_new(CMD_FAILURE, "map_from_region",
72 "Both coordinates must be in the same unit"); 80 "Both coordinates must be in the same unit");
73 } 81 }