sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 9e4fc7253e5e82f443ae8e1a27ced12fb13f8a67
parent b0ed1ad28d8c87a9ca0e5eacb1e7b840ed924117
Author: Tony Crisci <tony@dubstepdish.com>
Date:   Sat, 16 Dec 2017 14:00:23 -0500

get device id correctly

Diffstat:
Msway/input/input-manager.c | 15+++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/sway/input/input-manager.c b/sway/input/input-manager.c @@ -5,6 +5,7 @@ #include <stdio.h> #include <string.h> #include <libinput.h> +#include <math.h> #include "sway/config.h" #include "sway/input/input-manager.h" #include "sway/input/seat.h" @@ -33,6 +34,13 @@ static struct sway_seat *input_manager_get_seat( return sway_seat_create(input, seat_name); } +static inline int strlen_num(int num) { + if (num == 0) { + return 2; + } + return (int)((ceil(log10(abs(num)))+2)); +} + static char *get_device_identifier(struct wlr_input_device *device) { int vendor = device->vendor; int product = device->product; @@ -46,9 +54,12 @@ static char *get_device_identifier(struct wlr_input_device *device) { } } - sway_log(L_DEBUG, "rewritten name %s", name); + int len = + (strlen(name) + + strlen_num(device->vendor) + + strlen_num(device->product) + + 3) * sizeof(char); - int len = strlen(name) + sizeof(char) * 6; char *identifier = malloc(len); if (!identifier) { sway_log(L_ERROR, "Unable to allocate unique input device name");