summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-01-22Revert "LibRegex: Implement an ECMA262 Regex quirk with negative loo..."Ali Mohammad Pur
This partially reverts commit c11be92e23d899e28d45f67be24e47b2e5114d3a. That commit fixes one thing and breaks many more, a next commit will implement this quirk in a more sane way.
2022-01-22LibGfx: Fix stylistic issues in BitmapFontMaciej
* Apply some clang-tidy suggestions * Convert to east-const
2022-01-22LibGUI: Use Font::glyph_or_emoji_width() in TextEditorMaciej
This fixes selection of text containing emoji when variable-width font is set.
2022-01-22LibGfx: Always scale emojis to fit font heightMaciej
2022-01-22LibCore: Populate the read buffer of Core::Stream::BufferedHelperkleines Filmröllchen
Previously, we weren't ever populating the read buffer in read(), which was making the BufferedHelper useless, how silly :^). This introduces a buffer refill when we have run out of buffered samples, restoring FlacLoader performance from the new low of 200% (directly before this commit) to the old level of ~1400%.
2022-01-22LibAudio: Convert FlacLoader to use new Core::Stream APIs :^)kleines Filmröllchen
For this change to work "easily", Loader can't take const ByteBuffer's anymore, which is fine for now.
2022-01-22LibAudio: Add LOADER_TRY to auto-convert Error to LoaderErrorkleines Filmröllchen
2022-01-22LibAudio: Add Error conversion constructor for LoaderErrorkleines Filmröllchen
This will become necessary shortly when we quickly want to promote an AK::Error to an Audio::LoaderError.
2022-01-22LibCore: Introduce MemoryStreamkleines Filmröllchen
MemoryStream is the Core::Stream API's streamlike access to a chunk of memory, mimicking AK::DuplexMemoryStream. The implementation is very similar, except that no APIs except the SeekableStream operations currently exist. This will be fine for the first users and can be expanded upon later.
2022-01-22LibCore: Introduce BigEndianInputBitStreamkleines Filmröllchen
BigEndianInputBitStream is the Core::Stream API's bitwise input stream for big endian input data. The functionality and bitwise read API is almost unchanged from AK::BitStream, except that this bit stream only supports big endian operations. As the behavior for mixing big endian and little endian reads on AK::BitStream is unknown (and untested), it was never done anyways. So this was a good opportunity to split up big endian and little endian reading. Another API improvement from AK::BitStream is the ability to specify the return type of the bit read function. Always needing to static_cast the result of BitStream::read_bits_big_endian into the desired type is adding a lot of avoidable noise to the users (primarily FlacLoader).
2022-01-21Browser: Load icons at start of programDylan Katz
Previously, Browser loaded icons from the disk every time an icon was set. In addition to making more calls to the disk and decoding more images, this makes error propagation impossible. This change moves all icon loading to the start of the program.
2022-01-21LibGUI: Allow Button::set_icon to accept a bitmap without a moveDylan Katz
Previously, Button::set_icon required moving the bitmap into the button, preventing the same bitmap from being used by multiple buttons at once. While this works for buttons that are created once, any button that is dynamically added would require the same bitmap to be loaded every single time. In addition to being ineffecient, this also makes error checking more difficult. With this change, a bitmap can be loaded once, and passed to multiple buttons.
2022-01-21LibCore: Parse classless symbolic notationJean-Baptiste Boric
2022-01-21groups: Do not attempt to open /etc/groupsJean-Baptiste Boric
2022-01-21pwd: Add missing rpath pledgeJean-Baptiste Boric
2022-01-21keymaps: Fix keymap for Russian ЙЦУКЕН keyboardTimur Sultanov
- Swap captial "Ё" and lowercase "ё" - Replace "|" with "/" to match the standard ЙЦУКЕН keyboard
2022-01-21Ports: Set `config.sub` path for SDL2_mixerJelle Raaijmakers
This path needs to be set, or otherwise SDL2_mixer will not build.
2022-01-22Ports: Remove redundant `ensure_new_config_sub` callFragstiller
2022-01-22Ports: Relocate `use_fresh_config_sub` check to `do_configure()`Fragstiller
2022-01-21LibJS: Change test conditions to pass in all time zonesTimothy Flynn
Mostly slapping "timeZone: UTC" on DateTimeFormat tests (we have other tests for specific time zones). Also pick dates that are not on DST boundaries in some time zones where that matters.
2022-01-21LibCore: Do not leak FILE pointer in Group::add_group()Kenneth Myhra
By using a ScopeGuard we make sure that we always close the FILE, also on early returns.
2022-01-21LibCore: Use generic AK_OS_BSD_GENERIC to hide Group::add_group()Kenneth Myhra
This hides the method Group::add_group() on both MacOS and OpenBSD since the function putgrent(), which is essential for add_group() to work, is not available on these OSes.
2022-01-21Kernel: Ensure that CommandLine is initialized before choosing PanicModeLiav A
If the kernel commandline is not initialized, just halt everything.
2022-01-21Kernel: Stop using LibKeyboard's CharacterMap in HIDManagementIdan Horowitz
This was easily done, as the Kernel and Userland don't actually share any of the APIs exposed by it, so instead the Kernel APIs were moved to the Kernel, and the Userland APIs stayed in LibKeyboard. This has multiple advantages: * The non OOM-fallible String is not longer used for storing the character map name in the Kernel * The kernel no longer has to link to the userland LibKeyboard code * A lot of #ifdef KERNEL cruft can be removed from LibKeyboard
2022-01-21Kernel/PCI: Verify Access is not initialized before initializing itLiav A
There's no valid case where we should try to initialize the Access singleton multiple times, therefore just assert if it ever happens.
2022-01-21Shell: Make Juxtaposition autocompletion smarterAli Mohammad Pur
Now something like `"$HOME"/` autocompletes correctly. Note that only the first element of lists is used to autocomplete things.
2022-01-21Shell: Make SimpleVariable::hit_test_position not hit irrelevant offsetsAli Mohammad Pur
Without this, any offset would be accepted as being part of the SimpleVariable. Fixes #11976 (by making it no longer crash).
2022-01-21Kernel: Use KString instead of String in InodeWatcher::Event's pathIdan Horowitz
2022-01-21Kernel: Replace {String => KString}::formatted in ACPISysFSDirectoryIdan Horowitz
2022-01-21Kernel: Use KString instead of String in Ext2FSInode's lookup cacheIdan Horowitz
2022-01-21AK: Support setting with non copyable keys in HashMapIdan Horowitz
2022-01-21Kernel: Make ACPI reboot OOM-fallibleIdan Horowitz
2022-01-21Kernel: Make VirtIO::Queue construction fallibleIdan Horowitz
2022-01-21Kernel: Stop adopting non-heap memory into OwnPtrs in VirtIO::QueuesIdan Horowitz
2022-01-21Kernel: Make Memory::RingBuffer construction fallibleIdan Horowitz
2022-01-21LibRegex: Allow the pattern to match the zero-length end of the stringAli Mohammad Pur
...only if Multiline is not enabled. Fixes #11940.
2022-01-21LibRegex: Implement an ECMA262 Regex quirk with negative lookaroundsAli Mohammad Pur
This implements the quirk defined by "Note 3" in section "Canonicalize" (https://tc39.es/ecma262/#sec-runtime-semantics-canonicalize-ch). Crosses off another quirk from #6042.
2022-01-21LibRegex: Correct jump offset to the start of the loop blockAli Mohammad Pur
Previously we were jumping to the new end of the previous block (created by the newly inserted ForkStay), correct the offset to jump to the correct block as shown in the comments. Fixes #12033.
2022-01-21LibCore: Make sockets close-on-exec by defaultsin-ack
This mirrors the previous default in Core::LocalSocket, and is the safer default anyway. This prevents fds from living on in other processes when exec() is called in certain programs such as Assistant. Fixes #12029.
2022-01-21LibGL: Fix incorrect GL_DECAL constant valueLuke Wilde
The constant value for GL_DECAL is 0x2101 instead of 0x2102. This was tripping up Half-Life when making the water texture transparent when under water. The Half-Life port uses its own OpenGL header, meaning this error wasn't hidden by us.
2022-01-21UserspaceEmulator: Correctly fail in execve when binary is inaccessibleRummskartoffel
Previously, Emulator::virt$execve would not report ENOENT and EACCES when the binary to be executed was nonexistent or not executable. This broke the execp family of functions, which rely on ENOENT being reported in order to know that they should continue searching $PATH.
2022-01-21UserspaceEmulator: Fix execve messing up command lines with "--"Rummskartoffel
Emulator::virt$execve would construct command lines such as `/bin/UserspaceEmulator echo -- hello` instead of `/bin/UserspaceEmulator -- echo hello`, which naturally caused problems. This commit moves the "--" to the correct place.
2022-01-21Taskbar: Remove QuickLaunch entries if corresponding file was deletedMaciej
2022-01-21Taskbar: Support arbitrary *files* as QuickLaunch entriesMaciej
2022-01-21LibDesktop: Add Launcher::ensure_connection()Maciej
This can be use force connection at startup and not to leave 'unix' pledge all the time.
2022-01-21Taskbar: Support arbitrary executables as QuickLaunch entriesMaciej
2022-01-21Taskbar: Abstract out quick launch entriesMaciej
... into QuickLaunchEntry class. It will be used to implement adding plain executables to the taskbar. For now, it adds TRY() error handling to app launching :^)
2022-01-21LibCore: Add Core::System wrapper for disown()Maciej
2022-01-21LibCore: Handle null lines in ConfigFileMaciej
Fixes nullptr dereference when trying to read binary files.
2022-01-21LibJS: Increase margin in check for stack space limitMorten Larsen
test-js crashes with a segmentation fault when running on macOS on Arm. Increasing the margin in the test in did_reach_stack_space_limit() to 32 * KiB makes the tests pass. To simplify the code, this is applied independently of platform, and the previous test for use of an address sanitizer is removed.