From 121fa0e92d0995dcc95854f60bfc51a08a2c8043 Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Mon, 9 Oct 2023 14:03:38 +0300 Subject: [PATCH] term.ui,os.notify: fix .ctrl being stuck in examples/term.ui/event_viewer.v (regression happened in e9a3817a from 2023-02-20) --- vlib/os/notify/backend_darwin.c.v | 2 +- vlib/os/notify/backend_linux.c.v | 2 +- vlib/term/ui/input_windows.c.v | 4 ++-- vlib/term/ui/termios_nix.c.v | 4 ++-- vlib/v/checker/tests/enum_cast.out | 5 +++-- vlib/v/checker/tests/enum_cast.vv | 1 + 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/vlib/os/notify/backend_darwin.c.v b/vlib/os/notify/backend_darwin.c.v index 3a88a13923bf79..6d5a29b4041454 100644 --- a/vlib/os/notify/backend_darwin.c.v +++ b/vlib/os/notify/backend_darwin.c.v @@ -159,7 +159,7 @@ fn (mut kn KqueueNotifier) close() ! { // event_mask_to_flag is a helper function that converts a bitmask // returned by kevent() wait to FdEventType fn event_mask_to_flag(filter i16, flags u16) FdEventType { - mut res := FdEventType.read + mut res := unsafe { FdEventType(0) } if filter & notify.kqueue_read != 0 { res.set(.read) diff --git a/vlib/os/notify/backend_linux.c.v b/vlib/os/notify/backend_linux.c.v index 842cfb9476fe9e..05109e07024096 100644 --- a/vlib/os/notify/backend_linux.c.v +++ b/vlib/os/notify/backend_linux.c.v @@ -140,7 +140,7 @@ fn (mut en EpollNotifier) close() ! { // event_mask_to_flag is a helper function that converts a bitmask // returned by epoll_wait to FdEventType fn event_mask_to_flag(mask u32) FdEventType { - mut flags := FdEventType.read + mut flags := unsafe { FdEventType(0) } if mask & notify.epoll_read != 0 { flags.set(.read) diff --git a/vlib/term/ui/input_windows.c.v b/vlib/term/ui/input_windows.c.v index 410881f6ec8f45..923be7bf917933 100644 --- a/vlib/term/ui/input_windows.c.v +++ b/vlib/term/ui/input_windows.c.v @@ -174,7 +174,7 @@ fn (mut ctx Context) parse_events() { else { unsafe { KeyCode(ascii) } } } - mut modifiers := Modifiers.ctrl + mut modifiers := unsafe { Modifiers(0) } if e.dwControlKeyState & (0x1 | 0x2) != 0 { modifiers.set(.alt) } @@ -204,7 +204,7 @@ fn (mut ctx Context) parse_events() { } x := e.dwMousePosition.X + 1 y := int(e.dwMousePosition.Y) - sb_info.srWindow.Top + 1 - mut modifiers := Modifiers.ctrl + mut modifiers := unsafe { Modifiers(0) } if e.dwControlKeyState & (0x1 | 0x2) != 0 { modifiers.set(.alt) } diff --git a/vlib/term/ui/termios_nix.c.v b/vlib/term/ui/termios_nix.c.v index fbd3729d6ce71d..20f96ee3ad4f09 100644 --- a/vlib/term/ui/termios_nix.c.v +++ b/vlib/term/ui/termios_nix.c.v @@ -427,7 +427,7 @@ fn escape_sequence(buf_ string) (&Event, int) { lo := typ & 0b00011 hi := typ & 0b11100 - mut modifiers := Modifiers.ctrl + mut modifiers := unsafe { Modifiers(0) } if hi & 4 != 0 { modifiers.set(.shift) } @@ -497,7 +497,7 @@ fn escape_sequence(buf_ string) (&Event, int) { // ---------------------------- mut code := KeyCode.null - mut modifiers := Modifiers.ctrl + mut modifiers := unsafe { Modifiers(0) } match buf { '[A', 'OA' { code = .up } '[B', 'OB' { code = .down } diff --git a/vlib/v/checker/tests/enum_cast.out b/vlib/v/checker/tests/enum_cast.out index a8f4f90efd59e0..815d499c9f54cd 100644 --- a/vlib/v/checker/tests/enum_cast.out +++ b/vlib/v/checker/tests/enum_cast.out @@ -18,10 +18,11 @@ vlib/v/checker/tests/enum_cast.vv:21:19: warning: 10 does not represent a value 21 | println(unsafe { Permissions(0b1010) }) | ~~~~~~~~~~~~~~~~~~~ 22 | println(unsafe { Permissions(-1) }) - 23 | } + 23 | println(unsafe { Permissions(0) }) vlib/v/checker/tests/enum_cast.vv:22:19: warning: -1 does not represent a value of enum Permissions 20 | println(unsafe { Permissions(0b101) }) 21 | println(unsafe { Permissions(0b1010) }) 22 | println(unsafe { Permissions(-1) }) | ~~~~~~~~~~~~~~~ - 23 | } + 23 | println(unsafe { Permissions(0) }) + 24 | } diff --git a/vlib/v/checker/tests/enum_cast.vv b/vlib/v/checker/tests/enum_cast.vv index 7004302e3e0c44..8b0a0905173d11 100644 --- a/vlib/v/checker/tests/enum_cast.vv +++ b/vlib/v/checker/tests/enum_cast.vv @@ -20,4 +20,5 @@ fn main() { println(unsafe { Permissions(0b101) }) println(unsafe { Permissions(0b1010) }) println(unsafe { Permissions(-1) }) + println(unsafe { Permissions(0) }) }