Commit Graph

162 Commits

Author SHA1 Message Date
30d5d85d1d userspace: Add test utility 2025-06-08 23:56:39 +03:00
8ea0a67280 Terminal: Add support for tabs 2025-06-06 16:41:06 +03:00
5ad7d7edb1 DynamicLoader: Fix TLS on 32 bit platform
There were two problems with my previous implementation
- TLS was not allocated if nothing used it. There is a fallback
  initialization in _init_libc, but this was not enough if one of the
  init functions tried to access errno.
- __tls_get_addr was not resolved. If __tls_get_addr was called through
  a plt entry, everything would just break :(
2025-06-06 16:27:07 +03:00
cfeabc4580 Kernel/Terminal: Fix ANSI SGR 8 bit color parsing 2025-06-05 20:43:57 +03:00
49f203d61d Terminal: Add ANSI CSI P and ANSI SGR 22 2025-06-05 02:41:48 +03:00
a912a4dc67 LibGUI: Remove fill_color from texture copy API
Nothing was using this and it just overcomplicated everything
2025-06-05 02:40:51 +03:00
8de19aff3c Kernel/Terminal: Fix 24 bit ANSI SGR color parsing 2025-06-05 02:38:07 +03:00
775c77c0fa Shell: Get default backspace key from c_cc[VERASE] 2025-06-02 15:55:20 +03:00
e473118ec8 userspace: Add nologin "shell" 2025-06-02 12:26:16 +03:00
fdcb38ac1f Shell: Accept '\r' as enter
This happens with some terminals and i don't want to bother with fixing
my termios :D
2025-06-02 11:42:06 +03:00
e9f8471a28 BAN: Return UTF::invalid from byte_length instead of 0 2025-06-02 11:39:18 +03:00
1c882ea361 DynamicLoader: Don't print TODOs on PT_GNU_ headers
These should be either handled by kernel or just used as optimizations.
There is no requirement to handle them in dynamic loader
2025-06-01 13:48:03 +03:00
37dea8aee7 userspace: Implement basic less program
This is very simple and only supports couple of flags and scrolling
2025-05-29 01:00:28 +03:00
e7f0cd0c4b stat: Fix return value when one of stats fails 2025-05-13 10:19:13 +03:00
a8844ddd28 WindowServer: Send mouse release to same window as mouse press 2025-05-13 10:16:21 +03:00
40617f0d5c WindowServer: Make mod+d open program launcher 2025-05-06 00:42:15 +03:00
09745a7835 userspace: Implement program launcher
This is kinda useless as I only have Terminal and test-window
implemented. Also the code is really messy as I don't have GUI widgets.
2025-05-06 00:41:22 +03:00
57f6f50939 Terminal: Implement dumb font bolding
This is just drawing character twice at one pixel offset
2025-05-05 23:09:53 +03:00
f959905adf LibGUI: Rework window rendering
Abstract drawing surface to Texture. All windows now contain a texture
matching its size.
2025-05-05 23:08:01 +03:00
eb79c6c47c mkdir: Add -p option 2025-05-05 19:16:29 +03:00
bf1cbb4cde Terminal: Update terminal size and send SIGWINCH on resize 2025-05-05 19:09:21 +03:00
0689954433 Terminal: Set minimum size to 8x2 cells 2025-05-05 18:20:22 +03:00
5c37f198cb WindowServer/LibGUI: Allow windows to set minimum size 2025-05-05 18:19:59 +03:00
3b02a9d4fe WindowServer: Resize from closest corner 2025-05-05 18:19:19 +03:00
c9057aa498 WindowServer: Cleanup code and resize on fullscreen 2025-05-05 16:42:15 +03:00
2b0d198b05 Terminal: Allow resizing of the terminal 2025-05-05 03:15:30 +03:00
7798145c74 WindowServer: Implement window resizing
windows can now set resizable attribute which allows window server to
resize them
2025-05-05 03:14:50 +03:00
76d4e6bd18 LibGUI: Add support for changing window title 2025-05-05 01:10:05 +03:00
ccb81de85d snake: Use box drawing characters
This makes it look much better.

Also fix bug with apples generating on top of snake's tail
2025-05-05 00:30:58 +03:00
73f9de6635 Terminal: Add support for ANSI SGR 8bit and 24bit 2025-04-23 22:03:53 +03:00
12b9c82086 Terminal: Don't wrap cursor right after x == cols
This prevents scrolling when bottom right scroll is written to
2025-04-23 22:03:53 +03:00
28bf2d6374 Kernel/Terminal: Add support for ANSI DSR 2025-04-23 06:14:56 +03:00
8a00b53050 Kernel/Terminal: Fix ANSI SGR m for multiple values 2025-04-23 05:29:22 +03:00
33a0f562d3 resolver: Add support for CNAME
Also rework resolver's send format and convert test-tcp and nslookup to
use getaddrinfo
2025-04-22 08:36:44 +03:00
34e680d792 ports/ncurses: Set some needed environment variables
ncurses depends on these being set to function properly
2025-04-22 01:56:34 +03:00
f467a9a309 resolver: Resolve hostname to loopback address
We don't currently support loopback adapters, but some ports were trying
to resolve it.
2025-04-22 00:48:26 +03:00
2cbfe70a28 DynamicLoader: Don't leak fds 2025-04-20 18:18:32 +03:00
7edfae8583 Shell: Cleanup export builtin 2025-04-19 21:23:26 +03:00
28275d86ea LibC/Shell: set PWD env in Shell, not libc
I have no idea why I was doing it in the libc
2025-04-19 21:16:11 +03:00
8cd2d772b0 Shell: Print error if execv fails 2025-04-19 00:39:42 +03:00
d73a270fb1 Shell: Save and restore stdin flags after child returns
If child makes stdin nonblocking, Shell now restores it back to "normal"
flags
2025-04-18 18:26:09 +03:00
d9647868cc Terminal: Fix ANSI SGR color invert 2025-04-18 17:32:24 +03:00
4409d0f03f Terminal: Implement ANSI CSI A, B, b, d, @ 2025-04-17 23:16:22 +03:00
ebd00b1eb2 Terminal: Implement ANSI SGR 10, 39, 49 2025-04-17 23:15:44 +03:00
ac90800c3c Kernel/LibC/DynamicLoader: Implement thread local storage
For some reason this does not work on 32 bit version, so it is disabled
on that platform. I'll have to look into it later to find the bug :)
2025-04-15 23:33:39 +03:00
254fd80088 DynamicLoader: Cleanup and prepare for TLS 2025-04-15 23:31:17 +03:00
36baf7b0af Kernel/LibC/DynamicLoader: Update process start ABI
We now use SysV abi for process startup
2025-04-15 23:05:52 +03:00
e6026cb0b8 DynamicLoader: Handle circular dependencies 2025-04-15 23:05:52 +03:00
4f49d60e4a DynamicLoader/LibC: lazy malloc environ
This allows DynamicLoader to just set the value of global environ symbol
without libc needing to malloc it at startup
2025-04-15 23:05:52 +03:00
7fedd94cc5 ln: Don't require link target to exist for symlinks 2025-01-28 17:46:36 +02:00