Nathan Lilienthal

Results 79 issues of Nathan Lilienthal

We need to support the basic `fg`, `bg`, and `jobs`, `wait` commands, background syntax `&`, and the signal `SIGTSTP` typically invoked via ctrl-z. The `disown` command is standard in Bash,...

L1: enhancement
T: io
L: design
M: process

Support the [standard POSIX](https://pubs.opengroup.org/onlinepubs/9699919799/) redirection syntax ### Input - [ ] `[n]`, `[n]>|` - 2.7.2 Redirecting Output - [ ] `[n]>>` - 2.7.3 Appending Redirected Output - [ ] `[n]

L1: enhancement
T: semantics
T: io
M: process

Today I've written a little bit of code that uses `fork`, `wait` and `execvp` directly. There's built in support for this kind of thing in `std::process`, however I'm not 100%...

T: io
L: design
M: process

Much like bash's `!!` and related history expansions, we should support support the same when the history feature is enabled. It's a valid question of how to support disabling this...

T: grammar
F: history
M: program

We currently output completion possibilities over 25 in length by simply joining them with `\n`s. We should mirror `sh` style completions and format them into columns.

L1: enhancement
F: completion
M: repl

We should limit the number of historical entries saved to `~/.oursh_history`, this could be a good thing to do right after #13 and, #18.

L1: enhancement
L2: good first issue
F: history
M: repl

We currently maintain the count of each command in it's `History` entry, but we `save` and `load` without them. The goal should be to have these values persisted in the...

L1: enhancement
F: history
M: repl

POSIX shell language defines functions like `foo() { ... }`. We must support them. - [ ] #54 - [ ] #55 Related to #27.

L1: enhancement
T: grammar
T: semantics
M: process
M: program

```sh file $(which oursh) DATE=$(date) ``` And if strings have already landed then: ```sh DATE="$(date)" ```

M: process
M: program
T: expansion

Change the lexer to allow strings with `*` and expand them much like `expand_var` or `expand_home`.

L1: enhancement
T: grammar
T: lexer
M: program
T: expansion