Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-09-04 | Shell: Okay I keep messing up this history file code.. actually fix it! | Andreas Kling | |
It's not safe to return a CFile by-value. CFile is a CObjects and they are honestly not very good at being values.. | |||
2019-09-04 | Shell: Oops, don't exit() when ~/.history does not exist | Andreas Kling | |
2019-09-04 | Shell: Don't open ~/.history for writing on startup | Andreas Kling | |
When we only want to read the file, we should open it for reading. | |||
2019-09-02 | Shell: Added support for ctr-e/a. | marprok | |
By pressing ctr-e/a the cursor goes to the end/beginning of the current line. | |||
2019-09-01 | Shell: Support semicolons for separating commands | Conrad Pankoff | |
2019-08-18 | Shell: Support forward delete | Conrad Pankoff | |
2019-07-25 | Shell: Put failed command exit statuses in the debug output instead. | Andreas Kling | |
It was kinda unpleasant to always see "So-and-so exited with status 123." | |||
2019-07-25 | Shell: Simply print "cmd: Command not found." for ENOENT on execution. | Andreas Kling | |
This looks a little nicer than 'execvp(cmd): No such file or directory' | |||
2019-07-19 | Shell: Implement support for terminal clearing with ^L. | Andreas Kling | |
Make LineEditor::get_line() responsible for printing the prompt. That way we can re-prompt after clearing the screen on ^L. This makes the Serenity Terminal feel a little bit more like home :^) | |||
2019-07-14 | Kernel: Add support for the WSTOPPED flag to the waitpid() syscall. | Andreas Kling | |
This makes waitpid() return when a child process is stopped via a signal. Use this in Shell to catch stopped children and return control to the command line. :^) Fixes #298. | |||
2019-07-09 | Shell: Remove some unused code. | Andreas Kling | |
2019-07-08 | Shell: Handle SIGWINCH to get a nice behavior when resizing. | Andreas Kling | |
When resizing the terminal, we now clear the entire current line and reset the shell's LineEditor input state. This makes it look and feel kinda the same as xterm. Fixes #286. | |||
2019-07-08 | StringView: Rename characters() to characters_without_null_termination(). | Andreas Kling | |
This should make you think twice before trying to use the const char* from a StringView as if it's a null-terminated string. | |||
2019-06-30 | Meta: Removed all gitignore in the source tree only keeping the root one | VAN BOSSUYT Nicolas | |
2019-06-23 | add ~/.history file for Shell, stores entire command log and loads recent ↵ | CallumAttryde | |
commands into history buffer | |||
2019-06-14 | Shell: Implement more advanced globbing. | Sergey Bugaev | |
A glob has to be resolved against the directory corresponding to the part of the path it is found in, not the current directory. For example, in /usr/i*/AK/, the glob has to be resolved inside /usr. Moreover, an argument can contain more than one glob, such as /u*/*/?, in which case they have to be resolved recursively. In case a glob matches nothing, the argument should be used as is. | |||
2019-06-07 | Meta: Tweak .clang-format to not wrap braces after enums. | Andreas Kling | |
2019-06-07 | Shell: Run clang-format on everything. | Andreas Kling | |
2019-06-07 | Kernel: Rename FileDescriptor to FileDescription. | Andreas Kling | |
After reading a bunch of POSIX specs, I've learned that a file descriptor is the number that refers to a file description, not the description itself. So this patch renames FileDescriptor to FileDescription, and Process now has FileDescription* file_description(int fd). | |||
2019-06-06 | Shell: Print the name of each process whose exit status we're reporting. | Andreas Kling | |
2019-06-06 | Shell: Check the exit status of all spawned child processes. | Andreas Kling | |
2019-06-04 | Shell: Separate fd rewirings from redirections. | Andreas Kling | |
This was unnecessarily confusing. When we build up a chain of commands connected by pipes, we now store the file descriptors of each end of these pipes as rewirings in a vector. The rewirings are then put into effect by calls to dup2(). | |||
2019-05-31 | Shell: Fix an error message incorrectly complaining about lstat() failure. | Andreas Kling | |
The syscall used is actually stat(), so let's be correct about that. | |||
2019-05-30 | LibC: Move wait-related stuff to <sys/wait.h>. #POSIX | Andreas Kling | |
2019-05-30 | LibC: Add setenv(). | Andreas Kling | |
If I'm understanding the standard C library correctly, setenv() copies while putenv() does not. That's really confusing and putenv() basically sucks. To know which environment variables to free on replacement and which ones to leave alone, we keep track of the ones malloced by setenv in a side table. This patch also moves Shell to using setenv() instead of putenv(). Fixes #29. | |||
2019-05-28 | Add clang-format file | Robin Burchell | |
Also run it across the whole tree to get everything using the One True Style. We don't yet run this in an automated fashion as it's a little slow, but there is a snippet to do so in makeall.sh. | |||
2019-05-28 | Shell: Allow * and ? wildcard expansion in arguments | Robin Burchell | |
Should also presumably allow for escaping and such, but this is a start. Fixes #112. | |||
2019-05-26 | Shell: A '>' redirection target should be truncated. | Andreas Kling | |
2019-05-26 | Shell: When a command is terminated by a signal, print signal description. | Andreas Kling | |
Previously we were only printing the signal number (except for SIGINT.) | |||
2019-05-26 | Shell: Add append operator (>>) | Robin Burchell | |
Fixes #93. | |||
2019-05-16 | LibC/Shell: Add unsetenv(), and unset builtin calling it in Shell. | Robin Burchell | |
2019-05-16 | LibC: Change putenv (and getenv) to not copy, but directly return the ↵ | Robin Burchell | |
environ values. This is in keeping with how putenv should function. It does mean that the shell's export command now leaks, but that's not a difficult fix. Contributes to #29. | |||
2019-05-15 | Kernel: Add a beep() syscall that beeps the PC speaker. | Andreas Kling | |
Hook this up in Terminal so that the '\a' character generates a beep. Finally emit an '\a' character in the shell line editing code when backspacing at the start of the line. | |||
2019-05-13 | Fix "make clean" not deleting app binaries. | Andreas Kling | |
2019-05-13 | LibC+Shell: Make system() actually work. | Andreas Kling | |
system() will now fork off a child process and execute the command via /bin/sh -c. There are probably some things to fix here, but it's a start. | |||
2019-05-10 | Shell: Add "umask" builtin for reading/writing the shell's umask. | Andreas Kling | |
2019-05-07 | Shell: Make ^W and ^U work when cursor is not at the end of the line. | Andreas Kling | |
2019-05-07 | Shell: Support home/end keys for line editing. | Andreas Kling | |
2019-05-07 | Shell: Support basic line editing with left/right arrow keys. | Andreas Kling | |
2019-05-07 | Shell: Ignore tab key for now. | Andreas Kling | |
2019-05-07 | Shell: Allow browsing history with up/down arrow keys. | Andreas Kling | |
2019-05-07 | Shell: Add "history" command that shows command history. | Andreas Kling | |
2019-05-07 | Shell: Move line editing to a separate class. | Andreas Kling | |
To be clear, there isn't really any line editing yet. But there is going to be, so let's have it in its own class. | |||
2019-05-07 | Shell: Move the Shell to a separate directory and let's call it "Shell" :^) | Andreas Kling | |