Added -j flag to 'complete' for completing job names/pids

This commit is contained in:
2026-02-27 11:03:56 -05:00
parent e141e39c7e
commit c508180228
44 changed files with 3259 additions and 2853 deletions

View File

@@ -117,9 +117,10 @@ impl Node {
if let NdRule::Command {
assignments: _,
argv,
} = &self.class {
argv.iter().next()
} else {
} = &self.class
{
argv.iter().next()
} else {
None
}
}
@@ -142,9 +143,9 @@ bitflags! {
#[derive(Clone,Copy,Debug)]
pub struct NdFlags: u32 {
const BACKGROUND = 0b000001;
const FORK_BUILTINS = 0b000010;
const NO_FORK = 0b000100;
const ARR_ASSIGN = 0b001000;
const FORK_BUILTINS = 0b000010;
const NO_FORK = 0b000100;
const ARR_ASSIGN = 0b001000;
}
}
@@ -1380,7 +1381,7 @@ impl ParseStream {
redirs.push(redir);
}
}
TkRule::Comment => { /* Skip comments in command position */ }
TkRule::Comment => { /* Skip comments in command position */ }
_ => unimplemented!("Unexpected token rule `{:?}` in parse_cmd()", tk.class),
}
}
@@ -1473,14 +1474,16 @@ impl ParseStream {
}
}
}
if let Some(assign_kind) = assign_kind && !var_name.is_empty() {
if let Some(assign_kind) = assign_kind
&& !var_name.is_empty()
{
let var = Tk::new(TkRule::Str, Span::new(name_range, token.source()));
let val = Tk::new(TkRule::Str, Span::new(val_range, token.source()));
let flags = if var_val.starts_with('(') && var_val.ends_with(')') {
NdFlags::ARR_ASSIGN
} else {
NdFlags::empty()
};
let flags = if var_val.starts_with('(') && var_val.ends_with(')') {
NdFlags::ARR_ASSIGN
} else {
NdFlags::empty()
};
Some(Node {
class: NdRule::Assignment {
@@ -1493,8 +1496,8 @@ impl ParseStream {
redirs: vec![],
})
} else {
None
}
None
}
}
}