Itamar
5c494eefd6
HackStudio: Implement "Step Over" debugging action
...
The "Step Over" action continues execution without stepping into
instructions in subsequent function calls.
2020-08-22 09:48:59 +02:00
Itamar
99788e6b32
HackStudio: Implement "Step Out" debugging action
...
The "Step Out" action continues execution until the current function
returns.
Also, LibDebug/StackFrameUtils was introduced to eliminate the
duplication of stack frame inspection logic between the "Step Out"
action and the BacktraceModel.
2020-08-22 09:48:59 +02:00
Itamar
ebab512c03
TextEditor: Increase padding in ruler width
2020-08-22 09:48:59 +02:00
Andreas Kling
8055813ecf
LibGUI: Add ComboBox::selected_index()
...
This returns the currently selected index. It was a bit strange that
we had set_selected_index() but not a way to read it back. :^)
2020-08-21 21:16:13 +02:00
Andreas Kling
50076997f4
LibGfx: Use an enumerator macro for color roles
2020-08-21 21:16:13 +02:00
Andreas Kling
80a9896e83
LibGfx+WindowServer: Simplify WindowTheme::paint_normal_frame() API
...
Don't require passing in the outer frame rect since the theme can
compute that itself, based on the window rect.
2020-08-21 21:16:13 +02:00
Nico Weber
116c0c0ab3
LibJS: Implement Date's string constructor
...
... by calling Date.parse().
With this, dates on http://45.33.8.238/ and
http://45.33.8.238/linux/summary.html are correctly converted to local
time :^)
2020-08-21 21:12:54 +02:00
Nico Weber
6e5aa5d5df
LibJS: Implement Date.parse()
...
The spec says Date.parse() should accept at least a simplified form
of ISO 8601, so that's all this implements.
2020-08-21 21:12:54 +02:00
Andreas Kling
7eeecbc0f3
LibWeb: InProcessWebView::selected_text() should use the focused frame
2020-08-21 18:58:21 +02:00
Andreas Kling
684fa0f99b
LibWeb: Make selection state recomputation implicit
...
Add a LayoutDocument API for modifying the selection and make clients
call that so we can recompute selection states automatically.
2020-08-21 17:57:24 +02:00
Andreas Kling
d47f77169f
LibWeb: Remember the selection state of each LayoutNode
...
Instead of computing it on the fly while painting each layout node,
they now remember their selection state. This avoids a whole bunch
of tree traversal while painting with anything selected.
2020-08-21 17:57:24 +02:00
AnotherTest
cf4870c93e
LibLine: Do not ignore Ctrl-C when buffer is empty
...
I am told that this is how people test their shells.
That's bizarre to me, but sure :^)
2020-08-21 17:09:41 +02:00
Muhammad Zahalqa
5a2ec86048
LibJS: Parser refactored to use constexpr precedence table
...
Replaced implementation dependent on HashMap with a constexpr PrecedenceTable
based on array lookup.
2020-08-21 16:14:14 +02:00
AnotherTest
30554c969c
LibLine: Handle interrupts/window size changes internally
2020-08-21 16:10:51 +02:00
AnotherTest
238e87de4e
LibLine: Handle Ctrl-C and Ctrl-D in a way similar to other line editors
...
Makes C-c print "^C" and continue prompting on a new line.
Also fixes a problem where an interrupted get_line() would need more
read()'s than required to update the display.
2020-08-21 16:10:51 +02:00
Nico Weber
c8cf465174
LibJS: Implement Date.valueOf()
...
It does exactly the same thing as Date.getTime().
2020-08-21 16:03:34 +02:00
Nico Weber
064159d215
LibWeb: Use GenericLexer in WrapperGenerator
2020-08-21 16:01:48 +02:00
AnotherTest
67f7f6840d
AK+LibC+Kernel: Move the implementation of memmem to AK
2020-08-21 16:00:42 +02:00
Andreas Kling
23813d9bc9
LibChess: Shrink Chess::Piece from 8 bytes to 1 byte
...
This makes the engine footprint a lot smaller.
2020-08-21 13:46:07 +02:00
Peter Elliott
1e57e32a93
ChessEngine: Add ChessEngine
...
This engine is pretty bad, but doesn't let itself get checkmated
2020-08-21 12:26:30 +02:00
Peter Elliott
fb62eed058
Chess: Add support for UCI engines
2020-08-21 12:26:30 +02:00
Peter Elliott
7331b2b2f6
LibChess: Add UCIEndpoint for writing UCI chess engines
2020-08-21 12:26:30 +02:00
Peter Elliott
e80d0abb2c
LibChess: Fix the ability to counter check with another check
...
fixes #3187,#3171
2020-08-21 12:26:30 +02:00
Peter Elliott
d2cb5e0f48
Chess: Refactor game logic into LibChess for use in engines
...
In the future UCI protocol stuff will also go into LibChess.
2020-08-21 12:26:30 +02:00
Peter Elliott
f69b419c05
LibCore: Add File::{stdin, stdout, stderr}()
...
This should make it easier to get a Core::File for standard streams.
2020-08-21 12:26:30 +02:00
Nico Weber
a6b68451dc
LibJS: Implement Date.prototype.toISOString()
2020-08-21 12:11:48 +02:00
Nico Weber
1eac1b360b
LibJS: Implement Date.UTC()
2020-08-21 12:11:48 +02:00
Nico Weber
221b412210
LibCore: Make DateTime::create() not fill in tm_wday and tm_yday for calling mktime()
2020-08-21 12:11:48 +02:00
Nico Weber
459e4ace93
LibC: Add timegm()
...
timegm() is like mktime() in that it converts a struct tm to
a timestamp, but it treats the struct tm as UTC instead of as
local time.
timegm() is nonstandard, but availabe in both Linux and BSD,
and it's a useful function to have.
2020-08-21 12:11:48 +02:00
Luke
7902d215b3
LibWeb: Implement <template> parsing
...
Note that there is currently no way to display them as we can't
currently clone nodes.
Adds special case for templates for dumping to console.
Doesn't add it to the DOM inspector as I'm not sure how to do it.
2020-08-21 11:57:11 +02:00
Nico Weber
d4d9222eea
LibJS: Basic implementation of most of Date's constructor arguments
...
The constructor with a string argument isn't implemented yet, but
this implements the other variants.
The timestamp constructor doens't handle negative timestamps correctly.
Out-of-bound and invalid arguments aren't handled correctly.
2020-08-20 20:53:43 +02:00
Nico Weber
45827cace9
LibCore: Comment that DateTime is in local time.
...
The timestamp is always in UTC, but hours/minutes are in local time.
2020-08-20 20:53:43 +02:00
Andreas Kling
7903cfa5e4
LibGfx: Support loading GIF local color maps if present :^)
2020-08-20 19:42:06 +02:00
Andreas Kling
28e34ffe38
LibGfx: Initialize some uninitialized things in GIFLoader
2020-08-20 19:41:29 +02:00
Luke
65afb40fc5
LibWeb: Crash instead of spinning if parse_drawto fails to match
...
If parse_drawto fails to match anything, it will spin forever.
Instead, print out the character that failed to match and assert
false.
2020-08-20 16:31:13 +02:00
asynts
8bbb7e25e6
LibCompress: Turn the DEFLATE implementation into a stream.
...
Previously, the implementation would produce one Vector<u8> which
would contain the whole decompressed data. That can be a lot and
even exhaust memory.
With these changes it is still necessary to store the whole input data
in one piece (I am working on this next,) but the output can be read
block by block. (That's not optimal either because blocks can be
arbitrarily large, but it's good for now.)
2020-08-20 16:28:31 +02:00
Andreas Kling
413db2d6d5
LibELF: Ignore PT_GNU_STACK headers
...
We always map stacks R/W (never X), so we can just ignore this header
as far as I understand.
2020-08-20 10:12:45 +02:00
AnotherTest
2c5cc189c5
LibLine: Initialize the search editor when entering search
...
Prior to this, no keybinding were installed on the search editor, and so
editing wasn't really possible.
Also fixes <C-r> making infinite search editors.
2020-08-20 09:34:55 +02:00
Andreas Kling
6d4016dd01
LibGUI: Use StringBuilder::join() in Shortcut::to_string()
2020-08-19 21:17:02 +02:00
Tom
d4dae49dcd
LibHTTP: Fix processing terminating chunk
...
After encountering the terminating chunk we need to read the
trailing headers line by line, until encountering the final
empty line.
Fixes #3197
2020-08-19 15:28:31 +02:00
Tom
5cd2a37079
LibGfx: Small improvement for DisjointRectSet::shatter
...
This avoids a call to clone() which would be discarded immediately.
Also, avoid essentially cloning for each hammer rectangle unless
there is actually a need for it.
2020-08-19 11:20:27 +02:00
Sergey Bugaev
1671e1ac92
WindowServer+LibVT: Convert some dbgprintf() to dbg()
...
These kept annoying me, because these were the only two lines in the default
boot log that went unattributed.
2020-08-18 17:19:52 +02:00
Nico Weber
2460980d2c
LibWeb: Implement Element.innerText
...
Reading the property has a few warts (see FIXMEs in the included
tests), but with this the timestamps on http://45.33.8.238/
get localized :^)
Since the Date() constructor currently ignores all arguments,
they don't get localized correctly but are all set to the current
time, but hey, it's still progress from a certain point of view.
2020-08-18 16:58:46 +02:00
Nico Weber
2f85af2a20
LibWeb: Simplify Node::text_content()
2020-08-18 16:58:46 +02:00
AnotherTest
ae9211037e
LibLine: Make actual_rendered_string_metrics() static
...
This function didn't depend on the editor itself.
2020-08-18 16:58:17 +02:00
AnotherTest
bda1d7fd7b
LibLine: Setup the keybindings after initialisation
...
This makes the keybindings that depend on `m_termios` (^W, ^U, etc) work.
2020-08-18 13:40:44 +02:00
Tom
f8903acea2
LibGfx: Add convenience helpers for Rect
2020-08-18 12:12:27 +02:00
Tom
a43ba348e1
LibGfx: Add convenience method Point::constrained
2020-08-18 12:12:27 +02:00
Tom
790eacfbd1
LibGfx: Add a few convenience methods to DisjointRectSet
2020-08-18 12:12:27 +02:00
AnotherTest
5b9d563b4b
LibLine: Allow the user to override (or add) keybinds in the config file
2020-08-18 12:07:32 +02:00