Commit graph

11910 commits

Author SHA1 Message Date
Brian Gianforcaro
7e7ee2ec94 Kernel: Use Userspace<T> for the mount syscall 2020-08-07 16:18:36 +02:00
asynts
3fb62e8c63 AK: Remove unnecessary clang-format off comments. 2020-08-07 15:57:51 +02:00
Andreas Kling
5ba2022b8e UserspaceEmulator: Result is initialized after OR with all-1 immediate
When compiling with "-Os", GCC produces the following pattern for
atomic decrement (which is used by our RefCounted template):

    or eax, -1
    lock xadd [destination], eax

Since or-ing with -1 will always produce the same output (-1), we can
mark the result of these operations as initialized. This stops us from
complaining about false positives when running the shell in UE. :^)
2020-08-07 15:41:53 +02:00
Andreas Kling
3b3d158649 Shell: Make Command::redirections a NonnullRefPtrVector 2020-08-07 09:42:12 +02:00
Andreas Kling
c29681cb03 Shell: Make VariableDeclarations::Variable store NonnullRefPtrs 2020-08-07 09:41:04 +02:00
Andreas Kling
e9c602bc83 Shell: Make resolve_without_cast() return NonnullRefPtr<Value> 2020-08-07 09:36:15 +02:00
Andreas Kling
420e809fee Shell: Store ListValue's values in a NonnullRefPtrVector<Value>
A ListValue never stores null Values, so it makes sense to restrict it.
This also propagates use of NonnullRefPtr to the create() helpers.
There's a small bit of awkwardness around the use of initializer_list,
since we cannot directly construct a NonnullRefPtrVector from one.
2020-08-07 09:33:05 +02:00
Andreas Kling
08e5371f44 Shell: Add some obvious move() calls in AST constructors 2020-08-07 09:19:59 +02:00
Andreas Kling
379e6f5817 LibWeb: Remove unused LayoutPosition comparison operators 2020-08-07 09:17:34 +02:00
Valtteri Koskivuori
b0ab6b9e3f KeyboardSettings: Preselect the current keymap in the dropdown menu.
This is the little omission that I originally set out to fix, and
sure enough, I got to delve into Kernel land and back to implement
it. Lots of fun!
2020-08-07 09:11:04 +02:00
Brian Gianforcaro
bcb4cb4543 AudioServer: Lock the process veil after startup
We can't do any file syscalls anyway because of the reduction of pledges,
so we might as well lock the veil anyway.
2020-08-07 09:10:14 +02:00
Nico Weber
f008e83eae LibLine: Add Ctrl-k shortcut
Only does the 'delete to end of line' bit for now.
No yank ring support yet.
2020-08-07 09:07:30 +02:00
Valtteri Koskivuori
c1f633e1ee Documentation: Add a mention of the recent requirement for a newer
host compiler. On macOS this might have to be specified explicitly.
2020-08-07 09:07:10 +02:00
Nico Weber
530fb7eb82 LibLine: Add Alt-t shortcut for transposing words 2020-08-07 09:04:28 +02:00
Nico Weber
c1fb5263a5 LibLine: Add binding for Alt-backspace
It backward-deletes a word like Ctrl-W, but it has a slightly
different definition of what a word is. For example, with the
caret behind `gcc -fsanitize=address`, Ctrl-W would delete
'-fsanitize=address' but Alt-backspace would only delete 'address'.
2020-08-06 21:06:14 +02:00
Nico Weber
2051d690d5 LibLine: Fix "word" handling for alt-d/u/l/c/f/b and ctrl-left/right
All these shortcuts treat consecutive alnums as a word, not consecutive
non-spaces.

For example, `alias KILL='kill -9'` can now be written by typing it
out lowercase, then hitting ctrl-a alt-f alt-u.

Ctrl-W still treats a word as a sequence of non-spaces. Alt-backspace
in a future patch will add the ability to backward-delete a word
that's a sequence of alnums.
2020-08-06 20:55:27 +02:00
Linus Groh
d9de0a5007 Userland: Use Core::ArgsParser for 'aplay' 2020-08-06 20:41:13 +02:00
Linus Groh
8f33a44b6c Userland: Use Core::ArgsParser for 'avol' 2020-08-06 20:41:13 +02:00
Linus Groh
9b07defb36 Userland: Use Core::ArgsParser for 'basename' 2020-08-06 20:41:13 +02:00
Linus Groh
14db94f44b Userland: Use Core::ArgsParser for 'chgrp' 2020-08-06 20:41:13 +02:00
Linus Groh
c8d690d840 Userland: Use Core::ArgsParser for 'disasm' 2020-08-06 20:41:13 +02:00
Linus Groh
31a4a2cc2a Userland: Use Core::ArgsParser for 'hostname' 2020-08-06 20:41:13 +02:00
Linus Groh
718a45ef71 Userland: Handle invalid JSON in 'jp' 2020-08-06 20:41:13 +02:00
Linus Groh
f4f3ab0ad9 Userland: Use Core::ArgsParser for 'jp' 2020-08-06 20:41:13 +02:00
Linus Groh
ab1f3551cc Userland: Use Core::ArgsParser for 'md' 2020-08-06 20:41:13 +02:00
Linus Groh
f6369a66b1 Userland: Use Core::ArgsParser for 'modload' 2020-08-06 20:41:13 +02:00
Linus Groh
3cc5ed642e Userland: Use Core::ArgsParser for 'modunload' 2020-08-06 20:41:13 +02:00
Linus Groh
ca799fe4ab Userland: Use Core::ArgsParser for 'ping' 2020-08-06 20:41:13 +02:00
Linus Groh
59942edcc0 Userland: Use Core::ArgsParser for 'pro' 2020-08-06 20:41:13 +02:00
Linus Groh
4565d2d415 Userland: Use Core::ArgsParser for 'purge' 2020-08-06 20:41:13 +02:00
Linus Groh
646f6165e2 Userland: Use Core::ArgsParser for 'realpath' 2020-08-06 20:41:13 +02:00
Linus Groh
7b82334e2f Userland: Use Core::ArgsParser for 'rmdir' 2020-08-06 20:41:13 +02:00
Linus Groh
3298b0318c Userland: Use Core::ArgsParser for 'su' 2020-08-06 20:41:13 +02:00
Linus Groh
d320f7b9d2 Userland: Use Core::ArgsParser for 'tr' 2020-08-06 20:41:13 +02:00
Linus Groh
559ea8e1b5 Userland: Use Core::ArgsParser for 'tt' 2020-08-06 20:41:13 +02:00
Linus Groh
edc5f5b9bb Userland: Use Core::ArgsParser for 'uname' 2020-08-06 20:41:13 +02:00
Linus Groh
4ba23745c0 Userland: Use Core::ArgsParser for 'which' 2020-08-06 20:41:13 +02:00
Linus Groh
cf81d9765c Userland: Use Core::ArgsParser for 'yes' 2020-08-06 20:41:13 +02:00
Nico Weber
3cc9e8ba41 LibLine+Shell: Remove unused split_mechanism
It was only read in should_break_token(), which had no callers.
should_break_token() also got `foo\\ bar` and `"foo bar"` wrong.
2020-08-06 20:37:39 +02:00
Nico Weber
7f7dd3cf9c LibLine: Add binding for Alt-. 2020-08-06 20:37:17 +02:00
Tibor Nagy
6be3f914f0 Base: Update Hungarian keymap with accented characters and more symbols
Also fixing a bug where the numpad keys were accidentally shifted by
one position in the JSON array.
2020-08-06 20:36:50 +02:00
Andreas Kling
1c7faa8965 LibWeb: Move text selection serialization from PageView to Frame
This logic doesn't depend on anything at the widget layer, so it can
move down to the frame layer.
2020-08-06 19:59:24 +02:00
Nico Weber
90efba95c1 LibLine: Add bindings for Alt-u, Alt-l, Alt-c 2020-08-06 19:48:30 +02:00
Nico Weber
5d343e1c29 LibLine: Add comments for which keys trigger VWERASE and VKILL 2020-08-06 19:03:06 +02:00
Nico Weber
f29c5c3a41 LibLine: Add Alt-d binding to forward-delete a word 2020-08-06 19:03:06 +02:00
Edgar Araújo
e521daeedc Keymaps: Add European Portuguese keymap 2020-08-06 17:53:42 +02:00
Muhammad Zahalqa
5fe6c13e5b
LibThread: Remove redundant r/w of atomic variable in Lock::lock() (#3013)
m_holder.compare_exchange_strong(expected, desired, ...)
will either successfully update the value to desired if == expected
or put the current value in expected otherwise.
2020-08-06 17:50:25 +02:00
Nico Weber
4d9d054386 Shell: Start adding some alt shortcuts
This adds Alt-f to go forward by a word, and Alt-b to go backward
by a word (like ctrl-arrow-left / ctrl-arrow-right already do).

Behind the scenes, alt-key is implemented by sending <esc> followed
by that key, and typing <esc> f/b for moving by a word hence works
too (in all other shells too, not just in Serenity's).

While here, rename some InputState enum values to make the slightly
expanded use of <esc> clearer, and expand a few comments.
2020-08-06 17:45:31 +02:00
Valtteri Koskivuori
471083ca3d ProcFS: Expose the current kernel keymap as /proc/keymap
Programs can now ask the kernel which keymap is in use by reading from /proc/keymap
2020-08-06 17:45:06 +02:00
Valtteri Koskivuori
00a0e525e6 Kernel+LibKeyboard: Store the keymap name when setting system keymap
This way we can query the kernel to see which keymap is currently in use.
2020-08-06 17:45:06 +02:00