a68f411024
BAN: Add requires clauses for Container::emplace{,_back} functions
...
This allows syntax highlighters to report errors!
2024-10-10 21:51:44 +03:00
166550fbba
Kernel: Ext2 check if file exists before creating it
2024-10-07 18:21:05 +03:00
3e68981b0b
userspace: Remove start-gui from shell builtins and make it an alias
...
This makes way more sense :D
2024-10-07 18:01:33 +03:00
6fd76e8d1e
Shell: Rewrite alias parsing to allow chained commands
...
You can now have "chained" commands in alias
e.g. `alias foo='echo hello && ls`
2024-10-07 18:01:33 +03:00
dfcd15e7c4
Shell: Implement background processes with &
2024-10-07 18:01:33 +03:00
5fa359c28d
ls: Print file name in quotes if it contains spaces
2024-10-07 18:01:32 +03:00
5bcfc9dd50
Shell: Always print prompt to new line
...
This is only done on non banan-os targets if terminal is detected to
support cursor position querying
2024-10-07 18:01:32 +03:00
f67cad326a
Shell: Don't crash when there are no tab completions available :D
2024-10-07 14:26:07 +03:00
9775e83374
Shell: Fix tab space escaping in tab completion
2024-10-07 04:19:36 +03:00
264d1798dc
Shell: Clenup code and fix some bugs
...
Don't list tab completion multiple times, allow `clear` to work even
when ANSI CSI 3K is not supported, reset buffer index when cancelling
command with ctrl+c
2024-10-07 04:10:25 +03:00
1824988b9a
Shell: Add support for simple aliases
...
Aliases do not support chained commands with pipes, &&, ... but this is
a good start.
2024-10-07 04:09:38 +03:00
c54d9b3f60
Shell: Implement simple tab completion for commands and files
2024-10-07 01:44:44 +03:00
f432d3fcf8
BAN: Cleanup Optional casting for value getters
2024-10-07 01:44:44 +03:00
4f7828bab9
Shell: Allow escaping spaces in commands
2024-10-07 01:44:44 +03:00
ae073a336d
Shell: Move builtin commands to a hash map
...
This allows accessing builtin commands outside of `execute_builtin`
2024-10-07 01:44:44 +03:00
6f90974896
BAN: Fix StringView::starts_with
...
I have no idea what i had been thinking when writing this code :D
2024-10-06 06:23:25 +03:00
4f3c05851c
Shell: Expand ~ to home if its at the start of non quoted argument
2024-10-06 01:38:43 +03:00
4b13055125
Shell: Make builtin exit command read exit value from argument
...
Shell used to unconditionally return with exit code of 0
2024-10-06 01:24:34 +03:00
d542cd811d
Shell: Add support for &&, || and ;
2024-10-06 01:24:24 +03:00
f75cebac7e
Shell: Mark all functions as static
2024-10-05 19:11:58 +03:00
e302b6b635
Shell: Use sigaction instead of signal
...
This allows ctrl-c to work on linux :D
2024-10-05 19:07:59 +03:00
f709e88994
Shell: Cleanup argument handling and exiting
2024-10-04 17:54:01 +03:00
ab9a6d583b
Userspace: Set SHELL environment variable in init instead of shell
2024-10-04 17:24:37 +03:00
26d6bf338e
Shell: Ignore SIGTTOU and set pgroup from parent instead of child
...
This allows using the shell in linux!
2024-10-04 17:23:31 +03:00
b6e040dfc2
Kernel/Shell: Fix backspace and delete key byte sequences
2024-10-04 04:14:47 +03:00
f5802ca3e5
General: Update screenshot in README
2024-09-30 18:28:16 +03:00
7223e581a2
WindowServer: Fix 32 bit compilation with -Werror
...
There was a always false statement on 32 bit that the compliler was
warning about.
2024-09-27 15:33:25 +03:00
2d11ce9669
Kernel: Fix interrupt system
...
I had not understood how MSIs work and I was unnecessarily routing them
through IOAPIC. This is not necessary and should not be done :D
Also MSIs were reserving interrupts that IOAPIC was capable of
generating. Now IOAPIC and MSIs use different set of interrupts so
IOAPIC can use more interrupts if needed.
2024-09-27 15:31:31 +03:00
e4982a1a5c
LibC: Fix printf with alternate format and zero values
2024-09-26 15:25:16 +03:00
cea6dedccc
Userspace: Compile programs and libraries with -Wall -Wextra -Werror
2024-09-26 15:20:07 +03:00
e6ed5a388d
BuildSystem: Export compile commands for clangd
2024-09-26 15:14:54 +03:00
b89fc3fe87
Kernel: Implement ANSI SGR 7 to invert colors
...
This allows vim's visual selection to show up
2024-09-26 15:08:11 +03:00
57ae74f908
Terminal: Implement more ANSI escape handling
...
This patch adds L and M codes for inserting and deleting lines and SGR 7
for inverting colors
2024-09-26 15:07:08 +03:00
1a6804b4b4
Terminal: Make Terminal::handle_csi() return invalidated rectangle
...
When I updated Terminal to only do a single invalidation after all of
input text was printed, I forgot to change handle_csi
2024-09-26 15:05:11 +03:00
82e6a3582d
LibGUI: cleanup Window::shift_vertical and add copy_horizontal_slice
2024-09-26 15:00:14 +03:00
11a4e4faa2
LibImage: Add Adam7 support for PNG decoder
2024-09-26 11:47:34 +03:00
50a3533322
LibInput: Add value for ESC in key_to_utf8_ansi
...
This allows exiting vim when using this function for key mappings :D
2024-09-24 18:08:34 +03:00
4e9f39384a
LibC: Initialize libc only once
...
This was breaking stuff with dynamic loader initializing libc and main
executable reinitializing it later :D
2024-09-24 17:56:12 +03:00
39802b56c1
Kernel: Allow SYS_EXEC to fail at any point
...
This patch builds new executable image to another pml4 structure and
only after everything is validated will current context be replaced.
This allows exec to fail "late" where previously it would panic the
kernel or kill the process. This allows graceful handling of exec
failures in userspace!
2024-09-24 16:29:38 +03:00
ebb87ccdde
Kernel: Add asserts for overflow checks with ms -> ns conversions
2024-09-24 16:28:44 +03:00
f0e55938c1
Kernel: Allow initial binding of threads to specific processor
2024-09-24 16:27:40 +03:00
348d04f7f5
Kernel: Implement static Process::kill()
...
This allows killing processes even when there does not exist a current
thread.
2024-09-24 13:16:43 +03:00
1b0086217c
Terminal: Do scrolling in putchar if necessary
...
I overlooked that handling *newline* scrolls would be enough. You can
definitely scroll more if printing a lot of text which wraps to the next
line.
2024-09-23 15:00:47 +03:00
d395cf38b7
Kernel: Binding to port 0 will always find unused port
2024-09-22 17:30:01 +03:00
57aec2a733
Kernel: Validate pointer's when printing stack trace
...
There was an kernel panic if stack trace contained uncanonical
addresses.
2024-09-22 17:16:01 +03:00
ae89237453
Kernel: Disable warning when calling syscall
...
This warning is only generated when compiling with UBSAN and I don't see
how the value would even be uninitialzed.
2024-09-22 17:15:07 +03:00
60d5257678
Kenrel: Add __builtin_unreachable support for UBSAN
2024-09-22 17:14:36 +03:00
d59463d11b
Kernel: Fix TTY reading one keyevent after disabling input handling
2024-09-22 17:13:10 +03:00
1280528e4e
BuildSystem: Use -O2 for all libraries
...
I don't know why I had not specified optimization level for libraries.
Only LibImage was using explicit -O3. LibImage doesn't need O3 anymore
as O2 seems to be around the same speed.
2024-09-20 20:04:49 +03:00
23d6205659
Kernel: Move DEBUG_* macros to centralized Debug.h
...
This makes toggling debug info much easier
2024-09-20 11:00:07 +03:00