summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2021-06-04LibC: Define `MSG_OOB`Jelle Raaijmakers
2021-06-04LibC: Implement `execle()`Jelle Raaijmakers
2021-06-04LibC: Implement `mblen()`Jelle Raaijmakers
2021-06-04LibC: Add POSIX timer constantsJelle Raaijmakers
2021-06-04LibVT: Fix underlines incorrectly rendering in redDaniel Bertalan
Previously, `href` attributes weren't checked for not being empty when drawing their underlines. This caused any underline to be treated as an active `href`, hence the red color.
2021-06-04LibVT: Implement bright color supportDaniel Bertalan
Previously, we only used bright colors when the bold attribute was set. We now have the option to set it via escape sequences. We also needed to make the bold text behavior optional, as some color schemes do weird things with it. For example, Solarized uses it for various shades of gray, so bold green would turn into a light shade of gray. The following new escape sequences are supported: - `CSI 90;m` to `CSI 97;m`: set bright foreground color - `CSI 100;m` to `CSI 107;m`: set bright background color
2021-06-04LibVT+Terminal: Add color scheme supportDaniel Bertalan
This commit introduces color scheme support to Terminal. These are found in `/res/terminal_colors` and the default color scheme can be set in `~/.config/Terminal.ini`. Furthermore, a combo box is added for setting the color scheme at runtime. The previously used default color scheme has been added to `/res/terminal-colors/Default.ini`. To make the implementation more compatible with other color schemes, `TerminalWidget` now supports overriding the default foreground and background colors.
2021-06-04LibVT+Kernel: Create `Color` classDaniel Bertalan
Previously, we converted colors to their RGB values immediately when they were set. This meant that their semantic meaning was lost, we could not tell a precise RGB value apart from a named/indexed color. The new way of storing colors will allow us to retain this information, so we can change a color scheme on the fly, and previously emitted text will also be affected.
2021-06-04LibWeb: Remove Utf8View usage and try avoiding StringBuilder in TextNodeMax Wipfli
This patch completely reworks TextNode::compute_text_for_rendering(). It removes the unnecessary usage of Utf8View to find spaces in a String. Furthermore, it adds a couple fast return paths for common but trivial cases such as empty, single-character and whitespace-less strings. For the HTML spec bookmarks, around two thirds of all function calls (which amounts to around 10'000) use the fast paths and thus avoid allocating a StringBuilder just to build a copy of the already present String.
2021-06-04Taskbar: Allow creating menus for sub-categoriesGunnar Beutner
This change allows creating sub-categories in app files, e.g. with Category=Games/Puzzles.
2021-06-04LibTest: Add --json flag to JS test runnerLinus Groh
This will not show the colorful human-readable file results and final test results summary but instead output a JSON blob containing all test information, which can then be processed by other programs easily.
2021-06-04Profiler: Show the duration of the time interval chosenDhruvMaroo
2021-06-04LibCards: Don't draw the first card smaller than the othersGunnar Beutner
2021-06-04LibLine: Actually cancel the search editor on Ctl-Cbrapru
When the search editor calls on really_quit_event_loop to cancel the search, the command loaded in m_buffer would actually execute because really_quit_event_loop sends a new line character and then afterwards clears the buffer. By using end_search prior to exiting the event loop, this patch will appropriately clear the buffer, not execute any commands, and preserve the original loaded buffer after returning from a canceled search.
2021-06-04Solitaire: Fixes undo feature from incorrect merge conflict resolutionMatthew Jones
2021-06-04LibCpp: Revert change to strace.cpp AST test from bf8fd4cAndreas Kling
Since the purpose of this file is just to verify the AST generated, we can leave it alone.
2021-06-03LibCards: Draw cards with rounded card cornersDavid Isaksson
closes #7412
2021-06-03Everywhere: Remove accidental '\n' from various outln() invocationsAndreas Kling
Also convert outln(stderr, ...) to warnln(...)
2021-06-03LibGUI/FileIconProvider: Return s_file_icon when stat() failsMarcus Nilsson
Previously when using icon_for_path(), without specifying t_mode, on an anonymous file it would return an empty Icon causing problems down the line. Instead return the s_file_icon when stat fails.
2021-06-03Utilities: Make sure columns for ps are properly alignedGunnar Beutner
This updates ps so that it calculates the ideal column width instead of relying on hard-coded values. Previously the STATE column was too small to fit the state for "FinalizerTask".
2021-06-03KeyboardMapper: Fix crash upon loading an invalid JSON fileNonStandardModel
This fixes #7699. It would be nice to also show a GUI alert informing about the failure, but I will leave that for the future.
2021-06-03AK: Do not VERIFY on invalid code point bytes in UTF8ViewDexesTTP
The previous behavior was to always VERIFY that the UTF-8 bytes were valid when iterating over the code points of an UTF8View. This change makes it so we instead output the 0xFFFD 'REPLACEMENT CHARACTER' code point when encountering invalid bytes, and keep iterating the view after skipping one byte. Leaving the decision to the consumer would break symmetry with the UTF32View API, which would in turn require heavy refactoring and/or code duplication in generic code such as the one found in Gfx::Painter and the Shell. To make it easier for the consumers to detect the original bytes, we provide a new method on the iterator that returns a Span over the data that has been decoded. This method is immediately used in the TextNode::compute_text_for_rendering method, which previously did this in a ad-hoc waay. This also add tests for the new behavior in TestUtf8.cpp, as well as reinforcements to the existing tests to check if the underlying bytes match up with their expected values.
2021-06-03LibJS: Avoid allocations in the Exception constructorGunnar Beutner
2021-06-03LibJS: Optimize insertion order in the Exception constructorGunnar Beutner
By inserting the stack frames in the correct order we can improve the runtime for the test-js test suite by about 20%.
2021-06-03Everywhere: Replace ctype.h to avoid narrowing conversionsMax Wipfli
This replaces ctype.h with CharacterType.h everywhere I could find issues with narrowing conversions. While using it will probably make sense almost everywhere in the future, the most critical places should have been addressed.
2021-06-03WindowServer: Switch Window to IntrusiveList from InlineLinkedListBrian Gianforcaro
Another small step towards unifying IntrusiveList / InlineLinkedList.
2021-06-03LibC: Switch ChunkedBlock to IntrusiveList from InlineLinkedListBrian Gianforcaro
2021-06-03AK: Remove unused JsonValue <=> IPv4Address conversion codeGunnar Beutner
This removes code that isn't used anywhere.
2021-06-03LibGUI: Hide TextEditor dbgln spew under TEXTEDITOR_DEBUGBrian Gianforcaro
2021-06-03TextEditor: Remove unused header includesBrian Gianforcaro
2021-06-03Solitaire: Add keys for drawing and moving cards to foundation stacksMatthew B. Jones
Also shifts logic of starting game length timer into function `start_timer_if_necessary`, so it can be called from original mouse event handler and new `auto_move_eligible_cards_to_stacks`
2021-06-03LibGUI: Properly wrap multiple lines in IconView search highlightingMatthew B. Jones
2021-06-03LibSQL: Report a syntax error for unsupported LIMIT clause syntaxTimothy Flynn
Rather than aborting when a LIMIT clause of the form 'LIMIT expr, expr' is encountered, fail the parser with a syntax error. This will be nicer for the user and fixes the following fuzzer bug: https://crbug.com/oss-fuzz/34837
2021-06-03WindowServer: Add sanity checks to `create_window` IPCMatthew Jones
2021-06-03LibGUI: ComboBox now goes upwards when running out of room to renderMatthew Jones
2021-06-03LibGUI: ComboBox now correctly sizes height in relation to taskbarMatthew Jones
2021-06-03LibGUI: Desktop.h should get actual value from TaskbarWindow.hMatthew Jones
2021-06-03WindowServer: Position popup menu with offset of 1 pixelMatthew Jones
2021-06-03Solitaire: Add undo functionalityMatthew B. Jones
2021-06-03Profiler: Remove m_deepest_stack_depthGunnar Beutner
This isn't used anymore so let's remove it entirely.
2021-06-03Profiler: Use sequential serial numbers for profiling eventsGunnar Beutner
Previously Profiler was using timestamps to distinguish processes. However it is possible that separate processes with the same PID exist at the exact same timestamp (e.g. for execve). This changes Profiler to use unique serial numbers for each event instead.
2021-06-03LibGUI: Show pressed state for Space and Return key eventsMatthew Jones
Also allows the user to press Esc while the button is being pressed to cancel the button action.
2021-06-03LibWasm: Use builtins for clz, ctz, and popcntBrandonKi
2021-06-03LibWasm: Implement rotr and rotlBrandonKi
2021-06-02LibGUI+LibGfx+WindowServer: Sanity check window size dimensionsMatthew Jones
Previous to this commit, if a `Window` wanted to set its width or height greater than `INT16_MAX` (32768), both the application owning the Window and the WindowServer would crash. The root of this issue is that `size_would_overflow` check in `Bitmap` has checks for `INT16_MAX`, and `Window.cpp:786` that is called by `Gfx::Bitmap::create_with_anonymous_buffer` would get null back, then causing a chain of events resulting in crashes. Crashes can still occur but with `VERIFY` and `did_misbehave` the causes of the crash can be more readily identified.
2021-06-02HackStudio: Make locator lose focus on closeMarcus Nilsson
Make locator lose focus when pressing escape or by clicking in the editor area.
2021-06-02HackStudio: Remove unused includesMarcus Nilsson
2021-06-02HackStudio: Close locator on exitMarcus Nilsson
2021-06-02Hearts: Play the first valid card (left-to-right) when pressing spaceMatthew B. Jones
2021-06-02LibGUI: Tooltip no longer exceeds screen width, now truncatesMatthew Jones