mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-05-26 07:41:15 -03:00
Make parser.libdata.is_event a bool instead of an int
Contrary to the comment, this can and should be a bool.
This commit is contained in:
12
src/event.rs
12
src/event.rs
@@ -460,16 +460,10 @@ pub fn get_function_handlers(name: &wstr) -> EventHandlerList {
|
||||
/// event handler, we make sure to optimize the 'no matches' path. This means that nothing is
|
||||
/// allocated/initialized unless needed.
|
||||
fn fire_internal(parser: &Parser, event: &Event) {
|
||||
assert!(
|
||||
parser.libdata().is_event >= 0,
|
||||
"is_event should not be negative"
|
||||
);
|
||||
|
||||
// Suppress fish_trace during events.
|
||||
let is_event = parser.libdata().is_event;
|
||||
let _inc_event = scoped_push_replacer(
|
||||
let _set_event = scoped_push_replacer(
|
||||
|new_value| std::mem::replace(&mut parser.libdata_mut().is_event, new_value),
|
||||
is_event + 1,
|
||||
true,
|
||||
);
|
||||
let _suppress_trace = scoped_push_replacer(
|
||||
|new_value| std::mem::replace(&mut parser.libdata_mut().suppress_fish_trace, new_value),
|
||||
@@ -539,7 +533,7 @@ pub fn fire_delayed(parser: &Parser) {
|
||||
let ld = &parser.libdata();
|
||||
|
||||
// Do not invoke new event handlers from within event handlers.
|
||||
if ld.is_event != 0 {
|
||||
if ld.is_event {
|
||||
return;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1625,8 +1625,8 @@ fn run_1_job(
|
||||
let parser = ctx.parser();
|
||||
let ld = &parser.libdata();
|
||||
props.skip_notification =
|
||||
ld.is_subshell || parser.is_block() || ld.is_event != 0 || !parser.is_interactive();
|
||||
props.from_event_handler = ld.is_event != 0;
|
||||
ld.is_subshell || parser.is_block() || ld.is_event || !parser.is_interactive();
|
||||
props.from_event_handler = ld.is_event;
|
||||
}
|
||||
|
||||
let mut job = Job::new(props, self.node_source_owned(job_node));
|
||||
@@ -1887,7 +1887,7 @@ fn setup_group(&self, ctx: &OperationContext<'_>, j: &mut Job) {
|
||||
} else {
|
||||
// This is a "real job" that gets its own pgroup.
|
||||
j.processes_mut()[0].leads_pgrp = true;
|
||||
let wants_terminal = ctx.parser().libdata().is_event == 0;
|
||||
let wants_terminal = !ctx.parser().libdata().is_event;
|
||||
j.group = Some(JobGroup::create_with_job_control(
|
||||
j.command().to_owned(),
|
||||
wants_terminal,
|
||||
|
||||
@@ -269,9 +269,8 @@ pub struct LibraryData {
|
||||
/// Whether we are running a subshell command.
|
||||
pub is_subshell: bool,
|
||||
|
||||
/// Whether we are running an event handler. This is not a bool because we keep count of the
|
||||
/// event nesting level.
|
||||
pub is_event: i32,
|
||||
/// Whether we are running an event handler.
|
||||
pub is_event: bool,
|
||||
|
||||
/// Whether we are currently interactive.
|
||||
pub is_interactive: bool,
|
||||
|
||||
Reference in New Issue
Block a user