From cd02bdabde4522ec9098f558e4abfec2b6a64913 Mon Sep 17 00:00:00 2001 From: Daniel Jankowski Date: Wed, 6 Oct 2021 18:34:22 +0200 Subject: [PATCH 1/2] Replace deprecated/removed raw::TraitObject --- src/app.rs | 13 ++++++++++--- src/main.rs | 1 - 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/app.rs b/src/app.rs index b538131..4395e60 100644 --- a/src/app.rs +++ b/src/app.rs @@ -6,7 +6,14 @@ use objc::rc::autoreleasepool; use objc::rc::{StrongPtr, WeakPtr}; use objc::runtime::{Class, Object, Sel}; -use std::{mem, ops::Deref, raw}; +use std::{mem, ops::Deref}; + +/// Meta data for a trait object +#[derive(Copy, Clone, PartialEq, Eq, Debug)] +pub struct TraitObject { + pub data: *mut (), + pub vtable: *mut (), +} bitflags::bitflags! { struct NSKeyValueObservingOptions: NSUInteger { @@ -23,7 +30,7 @@ fn get_callback(self_obj: &Object) -> *mut dyn Fn(id) { unsafe { let data: *mut libc::c_void = *self_obj.get_ivar("_data"); let vtable: *mut libc::c_void = *self_obj.get_ivar("_vtable"); - let trait_obj = raw::TraitObject { + let trait_obj = TraitObject { data: data.cast::<()>(), vtable: vtable.cast::<()>(), }; @@ -99,7 +106,7 @@ impl KeyValueObserver { unsafe { let boxed = Box::new(closure); let callback: *const dyn Fn(*mut Object) = Box::into_raw(boxed); - let trait_obj: raw::TraitObject = mem::transmute(callback); + let trait_obj: TraitObject = mem::transmute(callback); let observer: id = msg_send![*RUST_KVO_HELPER, new]; (*observer).set_ivar("_data", trait_obj.data.cast::()); (*observer).set_ivar("_vtable", trait_obj.vtable.cast::()); diff --git a/src/main.rs b/src/main.rs index 97ad2d7..5d24640 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,3 @@ -#![feature(raw)] #![allow(non_snake_case)] mod app; From fc97fd5fec2759fb0fdc25ba44ee2b4047d5d9d5 Mon Sep 17 00:00:00 2001 From: Thomas Ip Date: Fri, 3 Feb 2023 11:24:09 +0000 Subject: [PATCH 2/2] Add --no-input flag Fixes #5 --- src/main.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 5d24640..58faaba 100644 --- a/src/main.rs +++ b/src/main.rs @@ -26,6 +26,10 @@ struct Options { /// Does not print the initial value, only prints actual changes. #[structopt(short = "o", long = "only-changes")] only_changes: bool, + + /// Disable listening to the `quit` command. + #[structopt(short = "n", long = "no-input")] + no_input: bool, } fn handle_quit() -> Result<(), Error> { @@ -43,7 +47,9 @@ fn handle_quit() -> Result<(), Error> { fn main() -> Result<(), Error> { let options = Options::from_args(); - handle_quit()?; + if !options.no_input { + handle_quit()?; + } app::run(!options.only_changes || options.exit, move |appearance| { if let Some(command) = options.command.as_ref() { let cmd = format!("{} {}", command, appearance);