From 62abfc5ee508a4b4186b120619c7f428ed95fa43 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Mon, 1 Jun 2020 15:16:18 +0200 Subject: Rename bind -> map --- src/Mapping.zig | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/Mapping.zig (limited to 'src/Mapping.zig') diff --git a/src/Mapping.zig b/src/Mapping.zig new file mode 100644 index 0000000..61df624 --- /dev/null +++ b/src/Mapping.zig @@ -0,0 +1,46 @@ +// This file is part of river, a dynamic tiling wayland compositor. +// +// Copyright 2020 Isaac Freund +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +const Self = @This(); + +const std = @import("std"); + +const c = @import("c.zig"); + +keysym: c.xkb_keysym_t, +modifiers: u32, +command_args: []const []const u8, + +pub fn init( + allocator: *std.mem.Allocator, + keysym: c.xkb_keysym_t, + modifiers: u32, + command_args: []const []const u8, +) !Self { + var owned_args = try allocator.alloc([]u8, command_args.len); + for (command_args) |arg, i| owned_args[i] = try std.mem.dupe(allocator, u8, arg); + return Self{ + .keysym = keysym, + .modifiers = modifiers, + .command_args = owned_args, + }; +} + +pub fn deinit(self: Self, allocator: *std.mem.Allocator) void { + for (self.command_args) |arg| allocator.free(arg); + allocator.free(self.command_args); +} -- cgit v1.2.3