Age | Commit message (Collapse) | Author |
|
This makes things like `foo&; bar` behave as expected.
Such behaviour is actually closer to the grammar defined in Parser.h
anyway :P
|
|
|
|
For example, type 'Hello?' without the quotation marks but with the
question mark, and press TAB.
Previously, this would crash the Shell. Now, it merely refuses
to make any suggestions.
We could do better, but that is too hard for now.
|
|
This fixes #2825.
|
|
|
|
Closes #2760.
This commit adds a 'for' loop, and tweaks the syntax slightly to make &&
bind more tightly than || (allowing for `expr && if_ok || if_bad`) :^)
|
|
This allows `((1 2 3) (4 5 6))` to remain nested until we explicitly
flatten it out.
|
|
This makes the test utility work, when invoked as '['
|
|
|
|
This fixes the issue with C-z not suspending the job on the first try.
...and further signal issues when the suspended job is contiued.
|
|
This commit fixes job control by putting children in their own process
group, and proxying TTY signals to active jobs.
This also cleans up the code around builtin_disown a bit to use
the newer job interfaces.
|
|
|
|
This makes running commands from outside the AST chain easier.
|
|
|
|
The shell is wiring up signal handlers, and when they get torn
down by Core::EventLoop, they are reset, which requires sigaction.
|
|
Fixes #2717
|
|
Closes #2732
|
|
This fixes a crash when Shell tries to highlight `|`.
|
|
The global script runs before the local (per-user) one.
|
|
This allows the shell to be notified about SIGWINCH even when a child
process is running in the foreground.
|
|
Normally, this should not happen, as the child should stay around until
we do a waitid on it.
|
|
This allows the parser to finally parse the entire source into a single
AST.
As a result of allowing comments inside sequences, Sequence is also
marked as would_execute if its left or right node would.
|
|
|
|
This makes '------inl' a completion request for an option named
'----inl' instead of 'inl'.
|
|
|
|
Take one small step towards #2357.
Handle completing barewords starting with '-' by piping the requests to
the Shell::complete_option(program_name, option) :^)
Also implements completion for a single builtin (setopt) until we figure out how
to handle #2357.
|
|
This builtin sets (and unsets) boolean flags that alter the behaviour of
the shell.
The only flags added are
- inline_exec_keep_empty_segments: Keep empty segments in the result of
splitting $(...) by $IFS
- verbose: Announce each command before executing it
It should be noted that the (rather extreme) verbosity of the names is
intentional, and will hopefully be alleviated by the next commit :^)
|
|
The description contains an error message and where in the source the
error happened.
|
|
|
|
Bringing the Serenity Shell to your very own host system :^)
|
|
|
|
This commit also removes the ExecutionInputType and directly uses
RefPtr<Shell> instead, since nothing else is needed for execution
purposes, and also makes the shell refuse to evaluate commands with
any sort of syntax error.
|
|
This allows the below interaction to work:
```
$ silence=(2>&1 >/dev/null)
$ do_noisy_thing with these args $silence
<nothing here lol>
```
|
|
|
|
This commit makes `echo x(foo bar)` create an argv of `echo xfoo xbar`,
essentially modeling brace expansions in some shells.
|
|
Shell already provides a run_command(AST::Command) which can be
constructed from a list of arguments, use that instead.
|
|
This behaviour is overridable with the `--skip-init' flag.
The default file is at '~/shell-init.sh'
|
|
|
|
This follows the other shells in alias resolution, and resolves the
alias only once.
|
|
This commit also completely reworks the execution, highlighting and
completion model to work with the new AST.
New additions:
- $(...) stdout captures
- fd>&fd redirections
- fd>&- redirections (close fd)
- read-write redirections (<> path)
- completely event-based execution
- the weird idea of allowing the user to redirect the shell's own fds
- variables in strings
- local variables
- minimal list support
- adding hyperlinks to all paths that exist
|
|
This commit also updates Shell, which uses actual_rendered_length.
|
|
We were getting a little overly memey in some places, so let's scale
things back to business-casual.
Informal language is fine in comments, commits and debug logs,
but let's keep the runtime nice and presentable. :^)
|
|
Get rid of the weird old signature:
- int StringType::to_int(bool& ok) const
And replace it with sensible new signature:
- Optional<int> StringType::to_int() const
|
|
|
|
This commit makes LibLine handle interrupts (as reported via
interrupted() and resized()) again.
There is a little catch with the shell:
```
$ ls |
pipe> <C-c> (prompt stays here until a key is pressed)
```
|
|
|
|
This commit allows the Shell to complete paths in redirections.
A closing quote is added if the path is an unclosed quote.
```
$ foo > "foob<tab>
$ foo > "foobar"
```
|
|
|
|
Since the last job need not have an ID of size()-1, we need to find the
max job id and give that+1 out
|
|
|