asynts
1175ecf1dd
AK+Format: Add support for integer to character casts.
...
Now the following is possible:
outf("{:c}", 75); // K
2020-09-29 16:14:58 +02:00
asynts
f221a95a71
AK: Add NumericLimits specialization for char.
...
This is yet another bug because of the 'char'/'signed char'/'unsigned char' shit.
2020-09-29 16:14:58 +02:00
asynts
71b7ef0992
AK+Format: Support all format specifiers for strings.
...
The following is now possible:
outf("{:.4}", "abcdef"); // abcd
outf("{:*<8}", "abcdef"); // abcdef**
2020-09-29 16:14:58 +02:00
Luke
c0d9daadb0
LibGfx: Fix cut off CSS color names
2020-09-29 09:20:33 +02:00
Andreas Kling
709581e141
UserspaceEmulator: Implement the getsid() syscall
2020-09-28 23:34:55 +02:00
Andreas Kling
b058852c62
Kernel: Fix overly eager fd closing in sys$execve()
...
When obeying FD_CLOEXEC, we don't need to explicitly call close() on
all the FileDescriptions. We can just clear them out from the process
fd table. ~FileDescription() will call close() anyway.
This fixes an issue where TelnetServer would shut down accepted sockets
when exec'ing a shell for them. Since the parent process still has the
socket open, we should not force-close it. Just let go.
2020-09-28 22:40:44 +02:00
Andreas Kling
0930e2323b
Kernel: Remove unnecessary capture in sys$execve()
2020-09-28 22:24:27 +02:00
Andreas Kling
f88a7cd4e1
LibCore: Make TCPServer::listen() report failure instead of asserting
2020-09-28 22:14:23 +02:00
Luke
d79194d87f
Kernel: Return early in create_inode if name is too long
2020-09-28 21:52:31 +02:00
AnotherTest
cfa5e6efe9
Spreadsheet: Add the 'lookup' and 'reflookup' functions
2020-09-28 17:41:48 +02:00
AnotherTest
9c1143fe13
Spreadsheet: Add a 'choose' function
2020-09-28 17:41:48 +02:00
AnotherTest
f159d161fa
Spreadsheet: Let the cells know their own position in the sheet
2020-09-28 17:41:48 +02:00
asynts
13ce24de13
AK+Format: Support default index in replacement field.
...
The following does now work:
outf("{:0{}}", 1, 3); // 001
2020-09-28 17:41:27 +02:00
asynts
afa2523724
Shell: Don't execute scripts interactively.
...
The following example should illustrate one issue arising from this:
$ echo 'exit 1' > example.sh
$ Shell example.sh
Good-bye!
This message is meant to be shown to an interactive user, but not in a
shell script.
2020-09-28 17:39:50 +02:00
Andreas Kling
d3d7ea7e75
LibWeb: LoadRequest::operator==() should compare header values
...
It was only comparing header names. Thanks to @Sponji for noticing!
2020-09-28 17:36:55 +02:00
asynts
574f49e4be
AK+TestSuite: Don't assume that the test passed in output.
...
The problem with our test suite is that it can't detect if a test
failed. When a test fails we simply write 'FAIL ...' to stderr and move
on.
Previously, the test suite would list all tests as passing regardless
how many assertions failed. In the future it might be smart to implement
this properly but test suites for C++ are always hard to do nicely.
(Because C++ execution isn't meant to be embedded.)
2020-09-28 15:10:52 +02:00
Andreas Kling
9225bfa95e
LibGUI: Correct inline editor placement in ColumnsView
...
Thanks to @bugaevc for noticing that I didn't account for the 1px space
between columns, and for the space occupied by the item icon.
2020-09-28 12:27:56 +02:00
Andreas Kling
ceda137bf2
LibWeb: Support <form method=POST>
...
Use the new support for HTTP method and request body to implement basic
support for POST'ed forms. This is pretty cool! :^)
2020-09-28 11:56:26 +02:00
Andreas Kling
2946a684ef
ProtocolServer+LibWeb: Support more detailed HTTP requests
...
This patch adds the ability for ProtocolServer clients to specify which
HTTP method to use, and also to include an optional HTTP request body.
2020-09-28 11:55:26 +02:00
Andreas Kling
cfafd4d52d
LibWeb: Expand LoadRequest class to include method, headers and body
...
This will allow us to create more detailed requests from inside the
web engine.
2020-09-28 11:53:32 +02:00
asynts
56bfefabb6
AK+Format: Keep type information for integers in TypeErasedParameter.
...
It's now save to pass a signed integer as parameter and then use it as
replacement field (previously, this would just cast it to size_t which
would be bad.)
2020-09-28 10:53:16 +02:00
asynts
6a2f5f4522
AK+Format: Clean up format specifier parsing using GenericLexer.
...
Also adds support for replacement fields.
2020-09-28 10:53:16 +02:00
Andreas Kling
ebe1288aea
LibJS: Add missing <AK/Function.h> include in JSONObject.cpp
2020-09-28 09:17:33 +02:00
Benoît Lormeau
f0f6b09acb
AK: Remove the ctype adapters and use the actual ctype functions instead
...
This finally takes care of the kind-of excessive boilerplate code that were the
ctype adapters. On the other hand, I had to link `LibC/ctype.cpp` to the Kernel
(for `AK/JsonParser.cpp` and `AK/Format.cpp`). The previous commit actually makes
sense now: the `string.h` includes in `ctype.{h,cpp}` would require to link more LibC
stuff to the Kernel when it only needs the `_ctype_` array of `ctype.cpp`, and there
wasn't any string stuff used in ctype.
Instead of all this I could have put static derivatives of `is_any_of()` in the
concerned AK files, however that would have meant more boilerplate and workarounds;
so I went for the Kernel approach.
2020-09-27 21:15:25 +02:00
Benoit Lormeau
f158cb27ea
LibC: Remove an unneeded string.h include in ctype.h/cpp
...
And include string.h in the files that actually needed it
2020-09-27 21:15:25 +02:00
Benoit Lormeau
e4da2875c5
AK: Use templates instead of Function for Conditions in the GenericLexer
...
Since commit 1ec59f28ce
turns the ctype macros
into functions we can now feed them directly to a GenericLexer! This will lead to
removing the ctype adapters that were kind-of excessive boilerplate, but needed as
the Kernel doesn't compile with the LibC.
2020-09-27 21:15:25 +02:00
AnotherTest
eef794b8c6
LibMarkdown: Parse paragraphs line-wise
...
This gets rid of the doubled-up checks in `Paragraph::parse()`, and
makes a paragraph the last possible kind of block to be parsed.
2020-09-27 21:14:18 +02:00
AnotherTest
176a2f193c
LibMarkdown: Add support for Tables
...
This adds support for GFM-like tables.
The HTML rendering ignores the alignments and relative sizes, but the
terminal view does not!
2020-09-27 21:14:18 +02:00
AnotherTest
7640cb8ec4
LibMarkdown: Add a Text(String) constructor
2020-09-27 21:14:18 +02:00
AnotherTest
445bd86533
LibMarkdown: Make Text default-constructible and move-assignable
2020-09-27 21:14:18 +02:00
AnotherTest
aa65f664a9
LibMarkdown: Take a 'view_width' argument for render_for_terminal()
...
Some constructs will require the width of the terminal (or a general
'width') to be rendered correctly, such as tables.
2020-09-27 21:14:18 +02:00
AnotherTest
5fbec2b003
AK: Move trim_whitespace() into StringUtils and add it to StringView
...
No behaviour change; also patches use of `String::TrimMode` in LibJS.
2020-09-27 21:14:18 +02:00
Brian Pfeil
50e9000b40
Toolchain: Fix outdated error message about SERENITY_ROOT ( #3624 )
2020-09-27 21:13:04 +02:00
Andreas Kling
700cbc02ec
LibWeb: Use JS::VM::call() in timer and RAF callback invocation
...
This removes assumptions about having an Interpreter, and also unbreaks
requestAnimationFrame which was asserting.
2020-09-27 20:31:13 +02:00
Andreas Kling
340d6b0ef7
LibJS: Stop using Interpreter& in the iterator operations helpers
2020-09-27 20:26:58 +02:00
Andreas Kling
2bc5bc64fb
LibJS: Remove a whole bunch of includes of <LibJS/Interpreter.h>
2020-09-27 20:26:58 +02:00
Andreas Kling
861815596f
LibWeb: Bypass the JS::Interpreter when invoking JS event callbacks
...
Use VM::call() instead of Interpreter::call().
2020-09-27 20:26:58 +02:00
Andreas Kling
063acda76e
LibJS: Remove a bunch of unnecessary uses of Cell::interpreter()
...
We'll want to get rid of all uses of this, to free up the engine from
the old assumption that there's always an Interpreter available.
2020-09-27 20:26:58 +02:00
Andreas Kling
591b7b7031
LibJS: Remove js_string(Interpreter&, ...)
2020-09-27 20:26:58 +02:00
Andreas Kling
adf0a537af
LibJS: Remove js_bigint(Interpreter&, ...)
2020-09-27 20:26:58 +02:00
Andreas Kling
a61ede51e2
LibJS: Don't require Interpreter& for constructing an Accessor
2020-09-27 20:26:58 +02:00
Andreas Kling
c59a8d84d3
LibJS: Reduce Interpreter& usage in the Object class
2020-09-27 20:26:58 +02:00
Andreas Kling
b9793e603c
LibJS: Don't require Interpreter& in PropertyName and StringOrSymbol
2020-09-27 20:26:58 +02:00
Andreas Kling
1df18c58f5
LibJS: Make all the JS::Value binary op helpers take GlobalObject&
...
We don't need the Interpreter& for anything here, the GlobalObject is
enough for getting to the VM and possibly throwing exceptions.
2020-09-27 20:26:58 +02:00
Andreas Kling
30ca9acd9c
LibJS: Remove unused js_symbol(Interpreter&, ...)
2020-09-27 20:26:58 +02:00
Andreas Kling
aaa8b48a4c
LibJS: Remove use of Interpreter& in JSONObject code
2020-09-27 20:26:58 +02:00
Andreas Kling
f79d4c7347
LibJS: Remove Interpreter& argument to Function::construct()
...
This is no longer needed, we can get everything we need from the VM.
2020-09-27 20:26:58 +02:00
Andreas Kling
340a115dfe
LibJS: Make native function/property callbacks take VM, not Interpreter
...
More work on decoupling the general runtime from Interpreter. The goal
is becoming clearer. Interpreter should be one possible way to execute
code inside a VM. In the future we might have other ways :^)
2020-09-27 20:26:58 +02:00
Andreas Kling
1ff9d33131
LibJS: Make Function::call() not require an Interpreter&
...
This makes a difference inside ScriptFunction::call(), which will now
instantiate a temporary Interpreter if one is not attached to the VM.
2020-09-27 20:26:58 +02:00
Andreas Kling
be31805e8b
LibJS: Move scope stack from VM back to Interpreter
...
Okay, my vision here is improving. Interpreter should be a thing that
executes an AST. The scope stack is irrelevant to the VM proper,
so we can move that to the Interpreter. Same with execute_statement().
2020-09-27 20:26:58 +02:00