Commit graph

19470 commits

Author SHA1 Message Date
Jean-Baptiste Boric
f9d82ecf18 Run: Remove useless serenity.h include 2021-04-27 23:06:16 +02:00
Jelle Raaijmakers
212c3e7f2a Ports/scummvm: Add libtheora as a dependency 2021-04-27 22:31:07 +02:00
Jelle Raaijmakers
c1c6002e28 Ports: Add libtheora 2021-04-27 22:31:07 +02:00
Andreas Kling
504d622864 LibWeb: Remove unnecessary temporary Vector in text layout
Now that we have Layout::TextNode::ChunkIterator, we don't need to
accumulate all the chunks in a vector before dividing them into lines.
2021-04-27 19:11:59 +02:00
Andreas Kling
37e29a630b LibWeb: Minor cleanup tweak in TextNode::split_into_lines_by_rules()
Merge an unnecessarily nested branch with its parent.
2021-04-27 19:11:59 +02:00
Andreas Kling
5074aaea69 LibWeb: Refactor Layout::TextNode splitting into a chunk iterator
Creating a ChunkIterator allows you to iterate over the text in a
Layout::TextNode at your leisure by calling next() when you want
another chunk.

This is one of many steps towards improving inline layout.
2021-04-27 19:11:59 +02:00
Paul Berg
03d8ee1082 VimEditingEngine: allow selection of the endline character
This patch fixes the visual selection of endline characters in the
VimEditingEngine. When the visual mode is disabled and the cursor
is located on the endline character, it is shifted back to the last
character of the line.
2021-04-27 19:05:16 +02:00
Gunnar Beutner
0b47ea408c Ports: Change how we invoke ccache because some ports didn't use it
This prepends ccache to the PATH instead of setting CC/CXX. Doing it
this way ensures all ports use ccache because some of them didn't
before.
2021-04-27 18:01:43 +02:00
Gunnar Beutner
7576761543 Ports: Use HOST_PATH when updating the PATH variable
Previously we'd just append to the existing PATH environment variable
rather than resetting it to HOST_PATH first.
2021-04-27 18:01:43 +02:00
Gunnar Beutner
7ab68b6c83 Ports: Fix path for the tcl port's patch file 2021-04-27 17:59:52 +02:00
Brian Gianforcaro
48632461c1 Tests: Convert file system suid-sgid stripping test to be LibTest based. 2021-04-27 17:58:11 +02:00
Brian Gianforcaro
41387df5f8 Tests: Convert pledge-test-failures.cpp to be LibTest based. 2021-04-27 17:58:11 +02:00
Brian Gianforcaro
122869f086 Tests: Convert unveil-test-failures.cpp to be LibTest based. 2021-04-27 17:58:11 +02:00
Brian Gianforcaro
a9df58d7b2 LibTest: Add FAIL() macro allow tests to force failure with message. 2021-04-27 17:58:11 +02:00
sin-ack
ace2c337dc VimEditingEngine: Handle arrow, Home/End and Page keys
This patch adds handling of the arrow, Home/End, and PageUp/PageDown
keys to the Vim emulation mode.  Home acts as 0, End acts as $, arrow
keys act as their HJKL variants, and PageUp/Down behaves as you would
expect.

This patch also moves the default handling of the aforementioned keys
to insert mode, since regular EditingEngine semantics are more
appropriate there.
2021-04-27 13:10:10 +02:00
Brian Gianforcaro
b970dbf2af Build: Provide the user with a nice message after Toolchain upgrade
Lots of people are confused by the error message you get when the
Toolchain is behind/messed up:

    'initializer-list: No such file or directory'

Before this error can happen, catch the problem at CMake configure time,
and provide them with an actionable error message.
2021-04-27 13:07:04 +02:00
Brian Gianforcaro
2ef93a3c07 Build: Use variables when concatenating Toolchain paths.
Make this stuff a bit easier to maintain by using the
root level variables to build up the Toolchain paths.

Also leave a note for future editors of BuildIt.sh to
give them warning about the other changes they'll need
to make.
2021-04-27 13:07:04 +02:00
Gunnar Beutner
6652ce15a4 Meta: Don't run qemu as root
This currently only supports Linux but I don't think anyone else
ran this yet because they'd have run into the E1000 bug I fixed
in #6669
2021-04-27 12:00:12 +02:00
Gunnar Beutner
bf703ee553 Kernel: Move PCI vendor and device IDs into Kernel/PCI/IDs.h 2021-04-27 11:36:24 +02:00
Gunnar Beutner
eaf8fc90e7 Kernel: Avoid resetting the IRQ mask for E1000 on each interrupt 2021-04-27 11:36:24 +02:00
Gunnar Beutner
897f001076 Kernel: Add logging for E1000 RX buffer overrun 2021-04-27 11:36:24 +02:00
Gunnar Beutner
fa434305a7 Kernel: Use macros instead of hard-coded magic values 2021-04-27 11:36:24 +02:00
Gunnar Beutner
addddb4880 Kernel: Make sure the E1000 network adapter keeps receiving packets
Previously the E1000 network adapter would stop receiving further
packets when an RX buffer overrun occurred. This was the case
when connecting the adapter to a real network where enough broadcast
traffic caused the buffer to be full before the kernel had a chance
to clear the RX buffer.
2021-04-27 11:36:24 +02:00
jake.westrip
f4a05611c6 Ports: Add MilkyTracker port 2021-04-27 11:32:19 +02:00
Jelle Raaijmakers
d1f33ec795 LibPthread: Use realtime clock for futex_wait()
If we get an absolute time passed to one of the pthread_*wait methods,
this is not an absolute monotonic time but rather an absolute wall
time. This means that we also need to pass FUTEX_CLOCK_REALTIME to the
futex syscall to ensure we're not using the monotonic clock.
2021-04-27 09:19:55 +02:00
Jelle Raaijmakers
b630e39fbb Kernel: Check futex command if realtime clock is used 2021-04-27 09:19:55 +02:00
Jelle Raaijmakers
c3cff7d70a Kernel: Simplify BlockTimeout constructor 2021-04-27 09:19:55 +02:00
sin-ack
d6dc81874d EditingEngine: Split selection from movement functions
This patch moves selection updates outside movement functions in
EditingEngine.  Previously, movement functions would automatically
update the selection based on whether the Shift key was pressed down
during movement.  However, not all EditingEngine subclasses want that;
VimEditingEngine being a good example (because all selection is handled
in visual mode).

Therefore, this patch moves all selection updating to
EditingEngine::on_key().  Subclasses wishing to provide custom movement
and selection semantics should override it (and VimEditingEngine already
does).
2021-04-27 09:03:38 +02:00
Gunnar Beutner
4e6a26cbd2 Kernel: Silence a few more network dbgln()s 2021-04-27 08:59:02 +02:00
Jelle Raaijmakers
03569f9686 Toolchain/Dockerfile: Add rsync and unzip
Both utilies are used in the .port_include.sh file.
2021-04-27 08:58:29 +02:00
Jelle Raaijmakers
2e1320f264 WindowServer: Reevaluate hovered window on window rect change
When a new Window instance is added to the WindowManager, it does not
yet have an updated value for `m_frame->rect()` and we're not checking
if there is a new candidate for the hovered window, which we need to do
since the mouse cursor might hover above the newly opened window.

This fixes both issues: as soon as a Window frame's rect is changed,
ask the WindowManager to reevaluate its hovered window. This takes care
of newly opened windows _and_ windows that are programmatically changed
in size.

This works because when a Window becomes hovered, the WindowManager
sends out an enter event. This event in turn triggers the Window to
evaluate the cursor type under the mouse position and to update it when
necessary.

Fixes #4809.
2021-04-27 08:58:13 +02:00
Jelle Raaijmakers
83dfc4aa46 LibGUI/Window: Do not reset mouse cursor on show()
Window::m_cursor already has ::None as its default value, so let's not
overwrite its value if it was set to something else.
2021-04-27 08:58:13 +02:00
Gunnar Beutner
659507696c Kernel: Fix incorrect argument for thread_exit events 2021-04-26 23:26:58 +02:00
Gunnar Beutner
1c02848e54 Kernel: Log thread exits for global profiles 2021-04-26 23:26:58 +02:00
Gunnar Beutner
afeee35cbf Kernel: Avoid calling characters() where not necessary 2021-04-26 23:26:58 +02:00
Gunnar Beutner
4a40caa020 Kernel: Use the correct union member for unmap events 2021-04-26 23:26:58 +02:00
Jagger De Leo
cec8488d9d Demos: Add Starfield screensaver demo 2021-04-26 23:13:27 +02:00
Gunnar Beutner
1117b6d833 Meta: Make sure traceroot and ping belong to the root user 2021-04-26 21:10:05 +02:00
kleines Filmröllchen
563cc17a50 LibAudio: Support 32 and 64-bit float WAV files
LibAudio's WavLoader plugin for loading WAV files now supports loading
audio files with 32-bit float or 64-bit float samples.

By supporting these new non-int sample formats, Audio::Buffer now stores
the sample format (out of a list of supported formats) instead of the
raw bit depth. (The bit depth is easily calculated with
pcm_bits_per_sample)
2021-04-26 19:08:40 +02:00
DexesTTP
91c210c39a LibGUI: Make common locations configurable 2021-04-26 18:57:57 +02:00
Gunnar Beutner
fddcaafe5f Utilities: Make ls respect options when specifying more than one path
When specifying more than one path (e.g. with ls -l /usr /bin) ls
would ignore other display options and fall back to showing the files
in short mode.
2021-04-26 18:44:30 +02:00
Liav A
161a8ea062 Kernel: Ensure IO and memory accesses are allowed for IDE channels 2021-04-26 18:44:06 +02:00
Liav A
05510e3994 Kernel/Storage: Make the IDEChannel design more robust
The overall design is the same, but we change a few things,
like decreasing the amount of blocking forever loops. The goal
is to ensure the kernel won't hang forever when dealing with
buggy hardware.
Also, we reset the channel when initializing it, just in case the
hardware was in bad state before we start use it.
2021-04-26 18:44:06 +02:00
Liav A
ecf897f7c4 Kernel/PCI: Add helpers to enable IO and memory accesses 2021-04-26 18:44:06 +02:00
Liav A
a2a7986527 Kernel/Storage: Fix sending IOGroup parameters 2021-04-26 18:44:06 +02:00
thankyouverycool
ed634a4582 FontEditor: Don't put invalid clicks on the undo stack 2021-04-26 18:43:35 +02:00
thankyouverycool
8febfb169d FontEditor: Warn on unsaved changes
Standardizes saving conventions: Editor now warns on close, new,
and open if there are unsaved changes, and new files prompt to
Save As.
2021-04-26 18:43:35 +02:00
thankyouverycool
67f81adc55 Calendar: Swap Liza for Marieta 2021-04-26 18:41:54 +02:00
thankyouverycool
98ea44de36 Base: Add 36pt font to Marieta family plus minor fixes to 24pt
Unslashes '0' and zeros out widths for control codes and unused
glyphs
2021-04-26 18:41:54 +02:00
Gunnar Beutner
a85d111cd1 Kernel: Respond to packets sent to the directed broadcast address
The last IP address in an IPv4 subnet is considered the directed
broadcast address, e.g. for 192.168.3.0/24 the directed broadcast
address is 192.168.3.255. We need to consider this address as
belonging to the interface.

Here's an example with this fix applied, SerenityOS has 192.168.3.190:

[gunnar@nyx ~]$ ping -b 192.168.3.255
WARNING: pinging broadcast address
PING 192.168.3.255 (192.168.3.255) 56(84) bytes of data.
64 bytes from 192.168.3.175: icmp_seq=1 ttl=64 time=0.950 ms
64 bytes from 192.168.3.188: icmp_seq=1 ttl=64 time=2.33 ms
64 bytes from 192.168.3.46: icmp_seq=1 ttl=64 time=2.77 ms
64 bytes from 192.168.3.41: icmp_seq=1 ttl=64 time=4.15 ms
64 bytes from 192.168.3.190: icmp_seq=1 ttl=64 time=29.4 ms
64 bytes from 192.168.3.42: icmp_seq=1 ttl=64 time=30.8 ms
64 bytes from 192.168.3.55: icmp_seq=1 ttl=64 time=31.0 ms
64 bytes from 192.168.3.30: icmp_seq=1 ttl=64 time=33.2 ms
64 bytes from 192.168.3.31: icmp_seq=1 ttl=64 time=33.2 ms
64 bytes from 192.168.3.173: icmp_seq=1 ttl=64 time=41.7 ms
64 bytes from 192.168.3.43: icmp_seq=1 ttl=64 time=47.7 ms
^C
--- 192.168.3.255 ping statistics ---
1 packets transmitted, 1 received, +10 duplicates, 0% packet loss,
time 0ms, rtt min/avg/max/mdev = 0.950/23.376/47.676/16.539 ms
[gunnar@nyx ~]$
2021-04-26 18:39:59 +02:00