builtin/exit: exit immediately
jobs(1): add support for jobs [job_id...]
Also prints the previous job indicator (-) since this touched the
relevant code anyway.
test: fix incorrect $? in async test
test: enable all pipeline tests
shell/job: fix job ID not incremented
shell/task/pipeline: don't leak next stdin FD
jobs(1): randomly print "Stopped" or "Suspended"
The string used is unspecified between these two options, so this
prevents a particular one from being relied upon.
jobs(1): job_state_str: add parenthesized info
This completes the jobs(1) implementation.
jobs(1): implement -l, -p flags
jobs(1): implement <current> marker
job_by_id: add job id by command
This completes the XBD job control ID implementation.
builtin: add very basic jobs implementation
This only displays a list of all jobs for now. No options are supported, the
status and current columns are only partially implemented.
ast: add mrsh_node_format
This formats an AST node into a string.
Formatting is necessary for e.g. jobs(1).
build: add `make mrproper` to remove all generated files
shell/job: store AST node in job
ast: introduce mrsh_node_destroy
ast: introduce mrsh_node_copy
gitignore: don't ignore include/mrsh
But ignore the mrsh executable produced by make(1).
shell/job: ignore terminated jobs in job_by_id
This fixes fg and bg when they operate on the current or previous job.