move stuff around
This commit is contained in:
parent
53985936a0
commit
7203cf1904
|
@ -9,13 +9,19 @@ pub fn build(b: *Builder) void {
|
||||||
"disable_colour",
|
"disable_colour",
|
||||||
"no colour",
|
"no colour",
|
||||||
) orelse false;
|
) orelse false;
|
||||||
|
exe.addBuildOption(bool, "disable_colour", disable_colour);
|
||||||
const terminal_version = b.option(
|
const terminal_version = b.option(
|
||||||
bool,
|
bool,
|
||||||
"terminal_version",
|
"terminal_version",
|
||||||
"terminal-only version",
|
"terminal-only version",
|
||||||
) orelse false;
|
) orelse false;
|
||||||
exe.addBuildOption(bool, "terminal_version", terminal_version);
|
exe.addBuildOption(bool, "terminal_version", terminal_version);
|
||||||
exe.addBuildOption(bool, "disable_colour", disable_colour);
|
const debug_allocator = b.option(
|
||||||
|
bool,
|
||||||
|
"debug_allocator",
|
||||||
|
"use debug allocator for testing",
|
||||||
|
) orelse false;
|
||||||
|
exe.addBuildOption(bool, "debug_allocator", debug_allocator);
|
||||||
|
|
||||||
//exe.strip = true;
|
//exe.strip = true;
|
||||||
exe.addPackage(.{
|
exe.addPackage(.{
|
||||||
|
|
|
@ -4,6 +4,7 @@ const Info = @import("../types/info.zig");
|
||||||
const MouseEvent = @import("../types/mouseevent.zig");
|
const MouseEvent = @import("../types/mouseevent.zig");
|
||||||
const os = std.os;
|
const os = std.os;
|
||||||
const terminal_version = @import("build_options").terminal_version;
|
const terminal_version = @import("build_options").terminal_version;
|
||||||
|
const debug_allocator = @import("build_options").debug_allocator;
|
||||||
|
|
||||||
pub const Bar = struct {
|
pub const Bar = struct {
|
||||||
allocator: *std.mem.Allocator,
|
allocator: *std.mem.Allocator,
|
||||||
|
@ -32,35 +33,41 @@ pub const Bar = struct {
|
||||||
self.infos.deinit();
|
self.infos.deinit();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn print_infos(self: *Bar, should_lock: bool) !void {
|
inline fn print_i3bar_infos(self: *Bar) !void {
|
||||||
if (should_lock) {
|
try self.out_file.writer().writeAll("[");
|
||||||
const lock = self.items_mutex.acquire();
|
|
||||||
defer lock.release();
|
|
||||||
}
|
|
||||||
if (!terminal_version) try self.out_file.writer().writeAll("[");
|
|
||||||
for (self.infos.items) |info, i| {
|
for (self.infos.items) |info, i| {
|
||||||
if (!terminal_version) {
|
|
||||||
try std.json.stringify(info, .{}, self.out_file.writer());
|
try std.json.stringify(info, .{}, self.out_file.writer());
|
||||||
|
|
||||||
if (i < self.infos.items.len - 1) {
|
if (i < self.infos.items.len - 1) {
|
||||||
try self.out_file.writer().writeAll(",");
|
try self.out_file.writer().writeAll(",");
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
try self.out_file.writer().writeAll("],\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
inline fn print_terminal_infos(self: *Bar) !void {
|
||||||
|
for (self.infos.items) |info, i| {
|
||||||
try self.out_file.writer().writeAll(info.full_text);
|
try self.out_file.writer().writeAll(info.full_text);
|
||||||
if (i < self.infos.items.len - 1) {
|
if (i < self.infos.items.len - 1) {
|
||||||
try self.out_file.writer().writeAll("|");
|
try self.out_file.writer().writeAll("|");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (!terminal_version) {
|
|
||||||
try self.out_file.writer().writeAll("],\n");
|
|
||||||
} else {
|
|
||||||
try self.out_file.writer().writeAll("\n");
|
try self.out_file.writer().writeAll("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn print_infos(self: *Bar, should_lock: bool) !void {
|
||||||
|
if (should_lock) {
|
||||||
|
const lock = self.items_mutex.acquire();
|
||||||
|
defer lock.release();
|
||||||
|
}
|
||||||
|
if (terminal_version) {
|
||||||
|
self.print_terminal_infos() catch {};
|
||||||
|
} else {
|
||||||
|
self.print_i3bar_infos() catch {};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn process(self: *Bar) !void {
|
inline fn terminal_input_process(self: *Bar) !void {
|
||||||
if (terminal_version) {
|
|
||||||
try self.out_file.writer().writeAll("\u{001b}[?1000;1006;1015h");
|
try self.out_file.writer().writeAll("\u{001b}[?1000;1006;1015h");
|
||||||
|
|
||||||
var termios = try os.tcgetattr(0);
|
var termios = try os.tcgetattr(0);
|
||||||
|
@ -118,6 +125,7 @@ pub const Bar = struct {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline fn i3bar_input_process(self: *Bar) !void {
|
||||||
var line_buffer: [512]u8 = undefined;
|
var line_buffer: [512]u8 = undefined;
|
||||||
while (self.running) {
|
while (self.running) {
|
||||||
var arena = std.heap.ArenaAllocator.init(self.allocator);
|
var arena = std.heap.ArenaAllocator.init(self.allocator);
|
||||||
|
@ -140,31 +148,45 @@ pub const Bar = struct {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn process(self: *Bar) !void {
|
||||||
|
if (debug_allocator) {
|
||||||
|
std.time.sleep(std.time.ns_per_ms * 2000 * 5);
|
||||||
|
if (true) return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (terminal_version) {
|
||||||
|
self.terminal_input_process() catch {};
|
||||||
|
} else {
|
||||||
|
self.i3bar_input_process() catch {};
|
||||||
|
}
|
||||||
|
}
|
||||||
pub fn keep_running(self: *Bar) bool {
|
pub fn keep_running(self: *Bar) bool {
|
||||||
return self.running;
|
return self.running;
|
||||||
}
|
}
|
||||||
pub fn free_info(self: *Bar, info: Info) !void {
|
fn free_info(self: *Bar, info: Info) !void {
|
||||||
self.allocator.free(info.name);
|
self.allocator.free(info.name);
|
||||||
self.allocator.free(info.full_text);
|
self.allocator.free(info.full_text);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn dupe_info(self: *Bar, info: Info) !Info {
|
/// In order to store the info and have Widgets not need to care about
|
||||||
|
/// memory lifetime, we duplicate the info fields.
|
||||||
|
fn dupe_info(self: *Bar, info: Info) !Info {
|
||||||
|
// TODO: name should be comptime known, rework.
|
||||||
const new_name = try self.allocator.alloc(u8, info.name.len);
|
const new_name = try self.allocator.alloc(u8, info.name.len);
|
||||||
std.mem.copy(u8, new_name, info.name);
|
std.mem.copy(u8, new_name, info.name);
|
||||||
const new_text = try self.allocator.alloc(u8, info.full_text.len);
|
const new_text = try self.allocator.alloc(u8, info.full_text.len);
|
||||||
std.mem.copy(u8, new_text, info.full_text);
|
std.mem.copy(u8, new_text, info.full_text);
|
||||||
var i = Info{
|
return Info{
|
||||||
.name = new_name,
|
.name = new_name,
|
||||||
.full_text = new_text,
|
.full_text = new_text,
|
||||||
.markup = "pango",
|
.markup = "pango",
|
||||||
};
|
};
|
||||||
return i;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn add(self: *Bar, info: Info) !void {
|
pub fn add(self: *Bar, info: Info) !void {
|
||||||
const lock = self.items_mutex.acquire();
|
const lock = self.items_mutex.acquire();
|
||||||
defer lock.release();
|
defer lock.release();
|
||||||
//std.debug.warn("info: {}\n", .{info.name});
|
|
||||||
for (self.infos.items) |infoItem, index| {
|
for (self.infos.items) |infoItem, index| {
|
||||||
if (std.mem.eql(u8, infoItem.name, info.name)) {
|
if (std.mem.eql(u8, infoItem.name, info.name)) {
|
||||||
if (std.mem.eql(u8, infoItem.full_text, info.full_text)) {
|
if (std.mem.eql(u8, infoItem.full_text, info.full_text)) {
|
||||||
|
|
|
@ -85,12 +85,14 @@ allocation_strack_addresses: std.AutoHashMap(usize, [stack_addresses_size]usize)
|
||||||
|
|
||||||
// Interface implementation
|
// Interface implementation
|
||||||
allocator: std.mem.Allocator,
|
allocator: std.mem.Allocator,
|
||||||
|
mutex: std.Mutex,
|
||||||
|
|
||||||
pub fn init(base_allocator: *std.mem.Allocator, max_bytes: usize) DebugAllocator {
|
pub fn init(base_allocator: *std.mem.Allocator, max_bytes: usize) DebugAllocator {
|
||||||
return .{
|
return .{
|
||||||
.base_allocator = base_allocator,
|
.base_allocator = base_allocator,
|
||||||
.info = .{},
|
.info = .{},
|
||||||
.max_bytes = max_bytes,
|
.max_bytes = max_bytes,
|
||||||
|
.mutex = std.Mutex.init(),
|
||||||
.allocation_strack_addresses = std.AutoHashMap(usize, [stack_addresses_size]usize).init(base_allocator),
|
.allocation_strack_addresses = std.AutoHashMap(usize, [stack_addresses_size]usize).init(base_allocator),
|
||||||
.allocator = .{
|
.allocator = .{
|
||||||
.allocFn = alloc,
|
.allocFn = alloc,
|
||||||
|
@ -105,6 +107,8 @@ pub fn deinit(self: *DebugAllocator) void {
|
||||||
|
|
||||||
fn alloc(allocator: *std.mem.Allocator, len: usize, ptr_align: u29, len_align: u29) error{OutOfMemory}![]u8 {
|
fn alloc(allocator: *std.mem.Allocator, len: usize, ptr_align: u29, len_align: u29) error{OutOfMemory}![]u8 {
|
||||||
const self = @fieldParentPtr(DebugAllocator, "allocator", allocator);
|
const self = @fieldParentPtr(DebugAllocator, "allocator", allocator);
|
||||||
|
const lock = self.mutex.acquire();
|
||||||
|
defer lock.release();
|
||||||
|
|
||||||
const ptr = try self.base_allocator.callAllocFn(len, ptr_align, len_align);
|
const ptr = try self.base_allocator.callAllocFn(len, ptr_align, len_align);
|
||||||
self.info.allocation_stats.addSample(ptr.len);
|
self.info.allocation_stats.addSample(ptr.len);
|
||||||
|
@ -132,6 +136,8 @@ fn alloc(allocator: *std.mem.Allocator, len: usize, ptr_align: u29, len_align: u
|
||||||
|
|
||||||
fn resize(allocator: *std.mem.Allocator, old_mem: []u8, new_size: usize, len_align: u29) error{OutOfMemory}!usize {
|
fn resize(allocator: *std.mem.Allocator, old_mem: []u8, new_size: usize, len_align: u29) error{OutOfMemory}!usize {
|
||||||
const self = @fieldParentPtr(DebugAllocator, "allocator", allocator);
|
const self = @fieldParentPtr(DebugAllocator, "allocator", allocator);
|
||||||
|
const lock = self.mutex.acquire();
|
||||||
|
defer lock.release();
|
||||||
|
|
||||||
if (old_mem.len == 0) {
|
if (old_mem.len == 0) {
|
||||||
std.log.debug(.debug_alloc, "Trying to resize empty slice\n", .{});
|
std.log.debug(.debug_alloc, "Trying to resize empty slice\n", .{});
|
||||||
|
|
|
@ -2,6 +2,8 @@ const std = @import("std");
|
||||||
const Bar = @import("types/bar.zig").Bar;
|
const Bar = @import("types/bar.zig").Bar;
|
||||||
const Widget = @import("types/widget.zig").Widget;
|
const Widget = @import("types/widget.zig").Widget;
|
||||||
const barImpl = @import("bar/bar.zig");
|
const barImpl = @import("bar/bar.zig");
|
||||||
|
const terminalBar = @import("bar/bar.zig");
|
||||||
|
|
||||||
const textWidget = @import("widgets/text/text.zig");
|
const textWidget = @import("widgets/text/text.zig");
|
||||||
const weatherWidget = @import("widgets/weather/weather.zig");
|
const weatherWidget = @import("widgets/weather/weather.zig");
|
||||||
const timeWidget = @import("widgets/time/time.zig");
|
const timeWidget = @import("widgets/time/time.zig");
|
||||||
|
@ -10,11 +12,12 @@ const memoryWidget = @import("widgets/memory/memory.zig");
|
||||||
const DebugAllocator = @import("debug_allocator.zig");
|
const DebugAllocator = @import("debug_allocator.zig");
|
||||||
const Info = @import("types/info.zig");
|
const Info = @import("types/info.zig");
|
||||||
|
|
||||||
|
const debug_allocator = @import("build_options").debug_allocator;
|
||||||
|
|
||||||
pub fn main() !void {
|
pub fn main() !void {
|
||||||
const debug: bool = false;
|
|
||||||
var allocator: *std.mem.Allocator = undefined;
|
var allocator: *std.mem.Allocator = undefined;
|
||||||
var dbgAlloc: *DebugAllocator = undefined;
|
var dbgAlloc: *DebugAllocator = undefined;
|
||||||
if (debug) {
|
if (debug_allocator) {
|
||||||
dbgAlloc = &DebugAllocator.init(std.heap.page_allocator, 8192 * 8192);
|
dbgAlloc = &DebugAllocator.init(std.heap.page_allocator, 8192 * 8192);
|
||||||
allocator = &dbgAlloc.allocator;
|
allocator = &dbgAlloc.allocator;
|
||||||
} else {
|
} else {
|
||||||
|
@ -33,7 +36,7 @@ pub fn main() !void {
|
||||||
};
|
};
|
||||||
bar.widgets = widgets[0..];
|
bar.widgets = widgets[0..];
|
||||||
try br.start();
|
try br.start();
|
||||||
if (debug) {
|
if (debug_allocator) {
|
||||||
std.debug.print("Finished cleanup, last allocation info.\n", .{});
|
std.debug.print("Finished cleanup, last allocation info.\n", .{});
|
||||||
std.debug.print("\n{}\n", .{dbgAlloc.info});
|
std.debug.print("\n{}\n", .{dbgAlloc.info});
|
||||||
dbgAlloc.printRemainingStackTraces();
|
dbgAlloc.printRemainingStackTraces();
|
||||||
|
|
274
src/termios.zig
274
src/termios.zig
|
@ -1,274 +0,0 @@
|
||||||
const std = @import("std");
|
|
||||||
const builtin = @import("builtin");
|
|
||||||
const os = std.os;
|
|
||||||
const linux = os.linux;
|
|
||||||
const assert = std.debug.assert;
|
|
||||||
|
|
||||||
const supported_os = switch (builtin.os) {
|
|
||||||
builtin.os.linux => true,
|
|
||||||
builtin.os.macosx => true,
|
|
||||||
else => @compileError("unsupported os"),
|
|
||||||
};
|
|
||||||
|
|
||||||
const supported_architecture = switch (builtin.arch) {
|
|
||||||
builtin.Arch.x86_64 => true,
|
|
||||||
builtin.Arch.i386 => true,
|
|
||||||
builtin.Arch.aarch64v8 => true,
|
|
||||||
else => @compileError("unsupported arch"), // NCCS can change
|
|
||||||
};
|
|
||||||
|
|
||||||
pub const pid_t = c_int;
|
|
||||||
pub const cc_t = u8;
|
|
||||||
pub const tcflag_t = c_uint;
|
|
||||||
pub const speed_t = c_uint;
|
|
||||||
|
|
||||||
const NCCS = 32;
|
|
||||||
pub const Termios = packed struct {
|
|
||||||
c_iflag: tcflag_t,
|
|
||||||
c_oflag: tcflag_t,
|
|
||||||
c_cflag: tcflag_t,
|
|
||||||
c_lflag: tcflag_t,
|
|
||||||
c_line: cc_t,
|
|
||||||
c_cc: [NCCS]cc_t,
|
|
||||||
__c_ispeed: speed_t,
|
|
||||||
__c_ospeed: speed_t,
|
|
||||||
};
|
|
||||||
|
|
||||||
pub fn cfgetospeed(tio: *const Termios) speed_t {
|
|
||||||
return tio.c_cflag & speed_t(CBAUD);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn cfgetispeed(tio: *const Termios) speed_t {
|
|
||||||
return cfgetospeed(tio);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn cfmakeraw(tio: *Termios) void {
|
|
||||||
tio.c_iflag &= ~tcflag_t(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON);
|
|
||||||
tio.c_oflag &= ~tcflag_t(OPOST);
|
|
||||||
tio.c_lflag &= ~tcflag_t(ECHO | ECHONL | ICANON | ISIG | IEXTEN);
|
|
||||||
tio.c_cflag &= ~tcflag_t(CSIZE | PARENB);
|
|
||||||
tio.c_cflag |= tcflag_t(CS8);
|
|
||||||
tio.c_cc[VMIN] = 1;
|
|
||||||
tio.c_cc[VTIME] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn cfsetospeed(tio: *Termios, speed: speed_t) !void {
|
|
||||||
if (speed & ~speed_t(CBAUD) != 0) {
|
|
||||||
return error.UnexpectedBits;
|
|
||||||
}
|
|
||||||
tio.c_cflag &= ~speed_t(CBAUD);
|
|
||||||
tio.c_cflag |= speed;
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn cfsetispeed(tio: *Termios, speed: speed_t) !void {
|
|
||||||
if (speed != 0) return try cfsetospeed(tio, speed);
|
|
||||||
}
|
|
||||||
|
|
||||||
//TODO: weak linkage?
|
|
||||||
pub const cfsetspeed = cfsetospeed;
|
|
||||||
|
|
||||||
pub fn tcdrain(fd: i32) !void {
|
|
||||||
const rc = linux.syscall3(linux.SYS_ioctl, @bitCast(usize, isize(fd)), linux.TCSBRK, 1);
|
|
||||||
const err = os.posix.getErrno(rc);
|
|
||||||
return switch (err) {
|
|
||||||
0 => {},
|
|
||||||
else => error.TCSBRK_Failed,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn tcflow(fd: i32, action: i32) !void {
|
|
||||||
const rc = linux.syscall3(linux.SYS_ioctl, @bitCast(usize, isize(fd)), linux.TCXONC, @bitCast(usize, isize(action)));
|
|
||||||
const err = os.posix.getErrno(rc);
|
|
||||||
return switch (err) {
|
|
||||||
0 => {},
|
|
||||||
else => error.TCXONC_Failed,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn tcflush(fd: i32, queue: i32) !void {
|
|
||||||
_ = linux.ioctl(fd, linux.TCFLSH, queue);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn tcgetattr(fd: i32, tio: *Termios) !void {
|
|
||||||
const tio_usize = @ptrToInt(tio);
|
|
||||||
_ = linux.ioctl(fd, linux.TCGETS, tio_usize);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn tcgetsid(fd: i32) !pid_t {
|
|
||||||
var sid: pid_t = undefined;
|
|
||||||
const sid_usize = @ptrToInt(&sid);
|
|
||||||
const rc = linux.syscall3(linux.SYS_ioctl, @bitCast(usize, isize(fd)), linux.TIOCGSID, sid_usize);
|
|
||||||
const err = os.posix.getErrno(rc);
|
|
||||||
return switch (err) {
|
|
||||||
0 => sid,
|
|
||||||
else => error.TIOCGSID_Failed,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn tcsendbreak(fd: i32, dur: i32) !void {
|
|
||||||
// ignore dur, implementation defined, use 0 instead
|
|
||||||
const rc = linux.syscall3(linux.SYS_ioctl, @bitCast(usize, isize(fd)), linux.TCSBRK, 0);
|
|
||||||
const err = os.posix.getErrno(rc);
|
|
||||||
return switch (err) {
|
|
||||||
0 => {},
|
|
||||||
else => error.TCSBRK_Failed,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn tcsetattr(fd: i32, act: u32, tio: *const Termios) void {
|
|
||||||
const tio_usize = @ptrToInt(tio);
|
|
||||||
_ = linux.ioctl(fd, (linux.TCSETS + act), tio_usize);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
pub const VINTR = 0;
|
|
||||||
pub const VQUIT = 1;
|
|
||||||
pub const VERASE = 2;
|
|
||||||
pub const VKILL = 3;
|
|
||||||
pub const VEOF = 4;
|
|
||||||
pub const VTIME = 5;
|
|
||||||
pub const VMIN = 6;
|
|
||||||
pub const VSWTC = 7;
|
|
||||||
pub const VSTART = 8;
|
|
||||||
pub const VSTOP = 9;
|
|
||||||
pub const VSUSP = 10;
|
|
||||||
pub const VEOL = 11;
|
|
||||||
pub const VREPRINT = 12;
|
|
||||||
pub const VDISCARD = 13;
|
|
||||||
pub const VWERASE = 14;
|
|
||||||
pub const VLNEXT = 15;
|
|
||||||
pub const VEOL2 = 16;
|
|
||||||
|
|
||||||
pub const IGNBRK = 0o000001;
|
|
||||||
pub const BRKINT = 0o000002;
|
|
||||||
pub const IGNPAR = 0o000004;
|
|
||||||
pub const PARMRK = 0o000010;
|
|
||||||
pub const INPCK = 0o000020;
|
|
||||||
pub const ISTRIP = 0o000040;
|
|
||||||
pub const INLCR = 0o000100;
|
|
||||||
pub const IGNCR = 0o000200;
|
|
||||||
pub const ICRNL = 0o000400;
|
|
||||||
pub const IUCLC = 0o001000;
|
|
||||||
pub const IXON = 0o002000;
|
|
||||||
pub const IXANY = 0o004000;
|
|
||||||
pub const IXOFF = 0o010000;
|
|
||||||
pub const IMAXBEL = 0o020000;
|
|
||||||
pub const IUTF8 = 0o040000;
|
|
||||||
|
|
||||||
pub const OPOST = 0o000001;
|
|
||||||
pub const OLCUC = 0o000002;
|
|
||||||
pub const ONLCR = 0o000004;
|
|
||||||
pub const OCRNL = 0o000010;
|
|
||||||
pub const ONOCR = 0o000020;
|
|
||||||
pub const ONLRET = 0o000040;
|
|
||||||
pub const OFILL = 0o000100;
|
|
||||||
pub const OFDEL = 0o000200;
|
|
||||||
pub const NLDLY = 0o000400;
|
|
||||||
pub const NL0 = 0o000000;
|
|
||||||
pub const NL1 = 0o000400;
|
|
||||||
pub const CRDLY = 0o003000;
|
|
||||||
pub const CR0 = 0o000000;
|
|
||||||
pub const CR1 = 0o001000;
|
|
||||||
pub const CR2 = 0o002000;
|
|
||||||
pub const CR3 = 0o003000;
|
|
||||||
pub const TABDLY = 0o014000;
|
|
||||||
pub const TAB0 = 0o000000;
|
|
||||||
pub const TAB1 = 0o004000;
|
|
||||||
pub const TAB2 = 0o010000;
|
|
||||||
pub const TAB3 = 0o014000;
|
|
||||||
pub const BSDLY = 0o020000;
|
|
||||||
pub const BS0 = 0o000000;
|
|
||||||
pub const BS1 = 0o020000;
|
|
||||||
pub const FFDLY = 0o100000;
|
|
||||||
pub const FF0 = 0o000000;
|
|
||||||
pub const FF1 = 0o100000;
|
|
||||||
|
|
||||||
pub const VTDLY = 0o040000;
|
|
||||||
pub const VT0 = 0o000000;
|
|
||||||
pub const VT1 = 0o040000;
|
|
||||||
|
|
||||||
pub const B0 = 0o000000;
|
|
||||||
pub const B50 = 0o000001;
|
|
||||||
pub const B75 = 0o000002;
|
|
||||||
pub const B110 = 0o000003;
|
|
||||||
pub const B134 = 0o000004;
|
|
||||||
pub const B150 = 0o000005;
|
|
||||||
pub const B200 = 0o000006;
|
|
||||||
pub const B300 = 0o000007;
|
|
||||||
pub const B600 = 0o000010;
|
|
||||||
pub const B1200 = 0o000011;
|
|
||||||
pub const B1800 = 0o000012;
|
|
||||||
pub const B2400 = 0o000013;
|
|
||||||
pub const B4800 = 0o000014;
|
|
||||||
pub const B9600 = 0o000015;
|
|
||||||
pub const B19200 = 0o000016;
|
|
||||||
pub const B38400 = 0o000017;
|
|
||||||
|
|
||||||
pub const B57600 = 0o010001;
|
|
||||||
pub const B115200 = 0o010002;
|
|
||||||
pub const B230400 = 0o010003;
|
|
||||||
pub const B460800 = 0o010004;
|
|
||||||
pub const B500000 = 0o010005;
|
|
||||||
pub const B576000 = 0o010006;
|
|
||||||
pub const B921600 = 0o010007;
|
|
||||||
pub const B1000000 = 0o010010;
|
|
||||||
pub const B1152000 = 0o010011;
|
|
||||||
pub const B1500000 = 0o010012;
|
|
||||||
pub const B2000000 = 0o010013;
|
|
||||||
pub const B2500000 = 0o010014;
|
|
||||||
pub const B3000000 = 0o010015;
|
|
||||||
pub const B3500000 = 0o010016;
|
|
||||||
pub const B4000000 = 0o010017;
|
|
||||||
|
|
||||||
pub const CSIZE = 0o000060;
|
|
||||||
pub const CS5 = 0o000000;
|
|
||||||
pub const CS6 = 0o000020;
|
|
||||||
pub const CS7 = 0o000040;
|
|
||||||
pub const CS8 = 0o000060;
|
|
||||||
pub const CSTOPB = 0o000100;
|
|
||||||
pub const CREAD = 0o000200;
|
|
||||||
pub const PARENB = 0o000400;
|
|
||||||
pub const PARODD = 0o001000;
|
|
||||||
pub const HUPCL = 0o002000;
|
|
||||||
pub const CLOCAL = 0o004000;
|
|
||||||
|
|
||||||
pub const ISIG = 0o000001;
|
|
||||||
pub const ICANON = 0o000002;
|
|
||||||
pub const ECHO = 0o000010;
|
|
||||||
pub const ECHOE = 0o000020;
|
|
||||||
pub const ECHOK = 0o000040;
|
|
||||||
pub const ECHONL = 0o000100;
|
|
||||||
pub const NOFLSH = 0o000200;
|
|
||||||
pub const TOSTOP = 0o000400;
|
|
||||||
pub const IEXTEN = 0o100000;
|
|
||||||
|
|
||||||
pub const TCOOFF = 0;
|
|
||||||
pub const TCOON = 1;
|
|
||||||
pub const TCIOFF = 2;
|
|
||||||
pub const TCION = 3;
|
|
||||||
|
|
||||||
pub const TCIFLUSH = 0;
|
|
||||||
pub const TCOFLUSH = 1;
|
|
||||||
pub const TCIOFLUSH = 2;
|
|
||||||
|
|
||||||
pub const TCSANOW = 0;
|
|
||||||
pub const TCSADRAIN = 1;
|
|
||||||
pub const TCSAFLUSH = 2;
|
|
||||||
|
|
||||||
pub const EXTA = 0o000016;
|
|
||||||
pub const EXTB = 0o000017;
|
|
||||||
pub const CBAUD = 0o010017;
|
|
||||||
pub const CBAUDEX = 0o010000;
|
|
||||||
pub const CIBAUD = 0o02003600000;
|
|
||||||
pub const CMSPAR = 0o10000000000;
|
|
||||||
pub const CRTSCTS = 0o20000000000;
|
|
||||||
|
|
||||||
pub const XCASE = 0o000004;
|
|
||||||
pub const ECHOCTL = 0o001000;
|
|
||||||
pub const ECHOPRT = 0o002000;
|
|
||||||
pub const ECHOKE = 0o004000;
|
|
||||||
pub const FLUSHO = 0o010000;
|
|
||||||
pub const PENDIN = 0o040000;
|
|
||||||
pub const EXTPROC = 0o200000;
|
|
||||||
|
|
||||||
pub const XTABS = 0o014000;
|
|
|
@ -9,6 +9,12 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "/home/kitteh/zig/lib/std"
|
"path": "/home/kitteh/zig/lib/std"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "/home/kitteh/KittehSublimeTheme"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "/home/kitteh/.config/sublime-text-3/Packages/Zig Language"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"settings":
|
"settings":
|
||||||
|
|
|
@ -88,6 +88,10 @@
|
||||||
"last_filter": "",
|
"last_filter": "",
|
||||||
"selected_items":
|
"selected_items":
|
||||||
[
|
[
|
||||||
|
[
|
||||||
|
"UI",
|
||||||
|
"UI: Select Theme"
|
||||||
|
],
|
||||||
[
|
[
|
||||||
"lsp",
|
"lsp",
|
||||||
"LSP: Disable Language Server in Project"
|
"LSP: Disable Language Server in Project"
|
||||||
|
@ -179,25 +183,33 @@
|
||||||
},
|
},
|
||||||
"file_history":
|
"file_history":
|
||||||
[
|
[
|
||||||
"/home/kitteh/zar/src/widgets/time/time.zig",
|
"/home/kitteh/KittehSublimeTheme/Kitteh.sublime-theme",
|
||||||
"/home/kitteh/zar/src/widgets/memory/memory.zig",
|
"/home/kitteh/zar/src/bar/terminalbar.zig",
|
||||||
|
"/home/kitteh/zar/src/types/loopingcounter.zig",
|
||||||
|
"/home/kitteh/zig/lib/std/hash_map.zig",
|
||||||
|
"/home/kitteh/zig/lib/std/time.zig",
|
||||||
|
"/home/kitteh/zar/src/main.zig",
|
||||||
"/home/kitteh/zar/src/formatting/colour.zig",
|
"/home/kitteh/zar/src/formatting/colour.zig",
|
||||||
"/home/kitteh/bar/memory.go",
|
"/home/kitteh/bar/memory.go",
|
||||||
|
"/home/kitteh/zar/src/bar/bar.zig",
|
||||||
|
"/home/kitteh/zar/src/widgets/weather/weather.zig",
|
||||||
|
"/home/kitteh/zar/src/widgets/battery/battery.zig",
|
||||||
|
"/home/kitteh/zar/src/widgets/text/text.zig",
|
||||||
|
"/home/kitteh/zar/src/widgets/time/time.zig",
|
||||||
|
"/home/kitteh/zar/src/widgets/memory/memory.zig",
|
||||||
|
"/home/kitteh/zar/src/types/mouseevent.zig",
|
||||||
"/home/kitteh/zig-linux-x86_64-0.6.0+485231dea/lib/zig/std/std.zig",
|
"/home/kitteh/zig-linux-x86_64-0.6.0+485231dea/lib/zig/std/std.zig",
|
||||||
"/home/kitteh/zar/src/debug_allocator.zig",
|
"/home/kitteh/zar/src/debug_allocator.zig",
|
||||||
"/home/kitteh/zar/src/bar/bar.zig",
|
|
||||||
"/home/kitteh/bar/battery.go",
|
"/home/kitteh/bar/battery.go",
|
||||||
"/home/kitteh/zar/build.zig",
|
"/home/kitteh/zar/build.zig",
|
||||||
"/home/kitteh/zar/deps/time/src/time.zig",
|
"/home/kitteh/zar/deps/time/src/time.zig",
|
||||||
"/home/kitteh/bar/time.go",
|
"/home/kitteh/bar/time.go",
|
||||||
"/home/kitteh/zar/src/widgets/weather/weather.zig",
|
|
||||||
"/home/kitteh/bar/main.go",
|
"/home/kitteh/bar/main.go",
|
||||||
"/home/kitteh/zig-linux-x86_64-0.6.0+485231dea/lib/zig/std/valgrind/memcheck.zig",
|
"/home/kitteh/zig-linux-x86_64-0.6.0+485231dea/lib/zig/std/valgrind/memcheck.zig",
|
||||||
"/home/kitteh/zig-linux-x86_64-0.6.0+485231dea/lib/zig/std/progress.zig",
|
"/home/kitteh/zig-linux-x86_64-0.6.0+485231dea/lib/zig/std/progress.zig",
|
||||||
"/home/kitteh/zig-linux-x86_64-0.6.0+485231dea/lib/zig/std/mutex.zig",
|
"/home/kitteh/zig-linux-x86_64-0.6.0+485231dea/lib/zig/std/mutex.zig",
|
||||||
"/home/kitteh/zig-linux-x86_64-0.6.0+485231dea/lib/zig/std/meta.zig",
|
"/home/kitteh/zig-linux-x86_64-0.6.0+485231dea/lib/zig/std/meta.zig",
|
||||||
"/home/kitteh/zar/src/types/info.zig",
|
"/home/kitteh/zar/src/types/info.zig",
|
||||||
"/home/kitteh/zar/src/widgets/text/text.zig",
|
|
||||||
"/home/kitteh/bar/bar.go",
|
"/home/kitteh/bar/bar.go",
|
||||||
"/home/kitteh/zar/src/types/bar.zig",
|
"/home/kitteh/zar/src/types/bar.zig",
|
||||||
"/home/kitteh/zar/src/types/widget.zig",
|
"/home/kitteh/zar/src/types/widget.zig",
|
||||||
|
@ -220,9 +232,13 @@
|
||||||
},
|
},
|
||||||
"find_state":
|
"find_state":
|
||||||
{
|
{
|
||||||
"case_sensitive": false,
|
"case_sensitive": true,
|
||||||
"find_history":
|
"find_history":
|
||||||
[
|
[
|
||||||
|
"#fe4450",
|
||||||
|
"keyword",
|
||||||
|
"Bar",
|
||||||
|
"osICANON",
|
||||||
".mutex",
|
".mutex",
|
||||||
"else return",
|
"else return",
|
||||||
") return",
|
") return",
|
||||||
|
@ -283,6 +299,7 @@
|
||||||
"regex": false,
|
"regex": false,
|
||||||
"replace_history":
|
"replace_history":
|
||||||
[
|
[
|
||||||
|
"TerminalBar",
|
||||||
".items_mutex",
|
".items_mutex",
|
||||||
"else",
|
"else",
|
||||||
")",
|
")",
|
||||||
|
@ -303,7 +320,7 @@
|
||||||
},
|
},
|
||||||
"incremental_find":
|
"incremental_find":
|
||||||
{
|
{
|
||||||
"height": 28.0
|
"height": 54.0
|
||||||
},
|
},
|
||||||
"input":
|
"input":
|
||||||
{
|
{
|
||||||
|
@ -351,7 +368,7 @@
|
||||||
"pinned_build_system": "",
|
"pinned_build_system": "",
|
||||||
"replace":
|
"replace":
|
||||||
{
|
{
|
||||||
"height": 52.0
|
"height": 94.0
|
||||||
},
|
},
|
||||||
"save_all_on_build": false,
|
"save_all_on_build": false,
|
||||||
"select_file":
|
"select_file":
|
||||||
|
|
Loading…
Reference in a new issue