- Jul 09, 2017
-
-
Michael Aaron Murphy authored
- Job control is now complete for non-redox unix systems. - The fg command now works We need to do a lot of refactoring now to clean this up though.
-
- Jul 08, 2017
-
-
Michael Aaron Murphy authored
- The `SIGHUP` command is now being handled. - The `disown` builtin can specify which jobs should ignore `SIGHUP`. - The `disown` command will also prevent jobs from being terminated when the shell exits. - The `suspend` command will send a `SIGSTOP` to the shell to stop it.
-
-
- Jul 07, 2017
-
-
Jeremy Soller authored
-
Jeremy Soller authored
-
Jeremy Soller authored
-
Jeremy Soller authored
-
Michael Aaron Murphy authored
-
-
Michael Aaron Murphy authored
Almost everything is working now. The target/debug/ion command doesn't work yet though.
-
- Jul 06, 2017
-
-
Michael Aaron Murphy authored
-
* s/redox_syscall/syscall * redox compat changes * Missed a few * Missed sigtstp, use redox syscall result * Add third param to redox method
-
- Jul 05, 2017
-
-
* Store configurations in the correct XDG App Dir Read the init file from the XDG config app dir using the app_dirs crate, and set the HISTORY_FILE to be located in the XDG data app dir. The init file is now named initrc instead of .ionrc. * Enable history file by default Set HISTORY_FILE_ENABLED to "1" so that ion writes history by default.
-
- Jul 04, 2017
-
-
Michael Aaron Murphy authored
This change will modify the way that job statuses are monitored. Rather than using the wait() method on a child, this will use the lower level waitpid() method from the nix crate, enabling the ability to detect and record changes to the child process automatically. This also implements a change that will fork the shell when a command is executed that needs to be run in the background. However, these commands still don't work at the moment due to a parsing issue.
-
- Jul 02, 2017
-
-
* Use signal constants from libc Instead of hardcoding numbers, which causes portability issues. In particular, SIGTSTP is not 20 on FreeBSD. * Remove pid offset
-
Michael Aaron Murphy authored
-
Michael Aaron Murphy authored
With this relatively large change, Ion now supports handling SIGTSTP signals. There's also three new job control builtins: wait, jobs, and bg.
-
- Jul 01, 2017
-
-
reference the RFC/GitHub issue that is the reason behind the version requirement. I also updated the error printed if the minimum version is not met to reflect this version.
-
-
Michael Aaron Murphy authored
-
- Jun 29, 2017
-
-
* [WIP] Add a rudimentary match statement to the language * Parsing a match construct now correctly resumes on new line Before, parsing a match construct would depend on all parts of the match statement being in one piece, it can now accept it over multiple invocations of `on_command` * Match statement now forwards all conditions * Most errors are copy / paste errors * Finish comment, remove useless continue * case values are now unquoted string literals * Added example for match * case expressions are now arbitrary commands The values in case branches can now be arbitrary commands that work off set intersection (for now). For example, the case: ``` case @(seq 0 10) ``` would match any number from 0 to 10. Additionally, alternation can be done through an array, like so: ``` match $filetype case ["image/jpeg" "image/png"] ... end end ``` * Remove XXX referencing shorthand
-
-
* Additional fix for #352 Due to the condition that the parent directory cannot be the current directory, simple commands like `rm file_in_this_dir.txt` were broken. This should fix said case. * Re-add variable logic * Refactor `complete_as_file` to be more readable and expand logic
-
- Jun 28, 2017
-
-
* Fixed completing executables The problem was that for any filename "foo", `readln` would check to see if either it exists, or if the parent exists. Which means if you're trying to complete _any_ executable, it thinks its a file because the "parent" is the current directory. * Add comment
-
-
- Jun 27, 2017
-
-
* Empty quoted string now results in empty Normal WorkToken * Adjusted double-quote logic to ignore empty strs on token edge Before if we had input like `"$FOO"`, the token iterator would generate a sequence like: ``` [Normal(""), Variable(FOO), Normal("")] ``` which doesn't really make much sense. What this does is allows for "empty string literals" such as `""` while ensuring that empty strings that are generated through token edges are ignored. * Remove silly filter_empty fn
-
- Jun 25, 2017
-
-
Michael Aaron Murphy authored
-
Michael Aaron Murphy authored
In order to create an array with the let command, arrays must be wrapped within [ and ] characters, like so: let array = [ 1 2 3 ] let copy_of_array = [ ] Otherwise, if array arguments are passed to let but not wrapped within [ and ] characters, then the array arguments will be joined together as a string, with spaces between each element.
-
Michael Aaron Murphy authored
-
* Shell::readln now completes to a filename if the last word is a file - This allows situations like "./foo" to complete to a local directory "./foobar" - I'm not sure how efficient this is compared to the old competion, I'm guessing not very. * Have completion be relative to the current directory * Remove random newline
-
- Jun 24, 2017
-
-
* Refactored `array_expand` to be more concise / efficient - `array_expand` now serves as the entry for operating on a set of elements and returning an array - Fixed a bug where negative indicies were using the wrong length, the pre-expansion length - Added a regression test for the above * Factor out common subexpression
-
- Jun 23, 2017
-
-
-
* Add grapheme, bytes, and char string -> array methods, with refactor - Adds in the `@graphemes` `@chars`, and `@bytes` functions, which create arrays of string variables corresponding to graphemes, unicode scalars, and bytes respectively - Add in start of select refactor * Add tests for new string methods
-
- Jun 22, 2017
-
-
Michael Aaron Murphy authored
-
-
* Remove extra read increment in glob branch * Add test for globbing
-
Michael Aaron Murphy authored
-
* Make calc functions public to crate * Add arithmetic expressions to shell grammar * Fix failing test * Add test in syntax_errors for calc * Add test for expanding arithmetic subexpression * calc -> arith_expression * Add parser::words test for arithmetic * indent if branch
-