AnotherTest
8bc1bcb34b
LibC: Reimplement scanf from the ground up
...
This adds support for some previously unsupported features
(e.g. length modifiers) and fixes at least one FIXME.
Fixes #90 .
2021-02-15 17:32:56 +01:00
AnotherTest
0bf496f864
LibC: Make strtoull accept the '0x' prefix when base 16 is specified
...
Dr.POSIX says it should be.
2021-02-15 17:32:56 +01:00
AnotherTest
5729e76c7d
Meta: Make it possible to (somewhat) build the system inside Serenity
...
This removes some hard references to the toolchain, some unnecessary
uses of an external install command, and disables a -Werror flag (for
the time being) - only if run inside serenity.
With this, we can build and link the kernel :^)
2021-02-15 17:32:56 +01:00
AnotherTest
bb777459a0
LibC+LibPthread: Implement pthread_atfork()
...
This required a bit of rearchitecture, as pthread_atfork() required a
mutex, and duplicating a mutex impl for it was silly.
As such, this patch moves some standalone bits of pthread into LibC and
uses those to implement atfork().
It should be noted that for programs that don't use atfork(), this
mechanism only costs two atomic loads (as opposed to the normal mutex
lock+unlock) :^)
2021-02-15 17:32:56 +01:00
AnotherTest
8e074f8665
LibC+LibPthread: Implement pthread_rwlock_*
...
This implementation is pretty damn dumb, and probably has more bugs than
features.
But for the time being, it seems to work. however, we should definitely
replace it with a good implementation sometime very soon :^)
2021-02-15 17:32:56 +01:00
AnotherTest
2e50c232f7
LibPthread: Stub out pthread_atfork()
2021-02-15 17:32:56 +01:00
AnotherTest
26a8a84ded
LibC+LibPthread: Stub out pthread_rwlock_* functions
2021-02-15 17:32:56 +01:00
AnotherTest
9e2c37a8b2
LibC: Add 'cfmakeraw()'
2021-02-15 17:32:56 +01:00
AnotherTest
0c07c005b5
LibC: Stub out some addrinfo things
2021-02-15 17:32:56 +01:00
AnotherTest
4519950266
Kernel+LibC: Add the _SC_GETPW_R_SIZE_MAX sysconf enum
...
It just returns 4096 :P
2021-02-15 17:32:56 +01:00
AnotherTest
71054c4c06
LibC: Add reentrant versions of getpw{uid,nam}
...
Pretty hacky, but it should be fine.
2021-02-15 17:32:56 +01:00
AnotherTest
a3a7ab83c4
Kernel+LibC: Implement readv
...
We already had writev, so let's just add readv too.
2021-02-15 17:32:56 +01:00
AnotherTest
1e79c04616
Kernel+LibC: Stub out SO_{SND_RCV}BUF
2021-02-15 17:32:56 +01:00
AnotherTest
2db4ab80a2
LibC: Pull fd_set.h into unistd.h
2021-02-15 17:32:56 +01:00
AnotherTest
9b69c73dfe
LibC: Stub out semaphore.h
2021-02-15 17:32:56 +01:00
Andreas Kling
9efd80f100
LibJS: Use fabs() instead of abs() in JS::Value
...
abs() takes an int, so this would only work correctly for numbers
smaller than INT_MAX.
2021-02-15 13:58:24 +01:00
Sergey Bugaev
bc05ab47de
LibCore: Expose UDPServer::fd() and make the constructor protected
2021-02-15 09:14:42 +01:00
Stephan Unverwerth
de811faf55
LibTTF: Address some minor TODOs in the font implementation
2021-02-15 08:50:48 +01:00
Stephan Unverwerth
05d31cbeeb
LibTTF: Add hack for recognizing fixed-width fonts
2021-02-15 08:50:48 +01:00
Stephan Unverwerth
3b67b55c84
LibGfx: draw_glyph_or_emoji fix check for available glyph
...
This would cause question marks to be rendered when a ttf with fewer
glyphs than the value of the code_point was used.
2021-02-15 08:50:48 +01:00
Stephan Unverwerth
b8c25bc7ff
LibGfx: Remove static load_from_file() from abstract Font class
2021-02-15 08:50:48 +01:00
Stephan Unverwerth
79dfe9846d
LibGfx: Generalize glyph placement in Painter
2021-02-15 08:50:48 +01:00
Stephan Unverwerth
972c7cf9f4
LibGUI: Add some default sizes for TTF fonts in FontPicker
2021-02-15 08:50:48 +01:00
Stephan Unverwerth
85158dc0ad
LibGfx+LibTTF: Allow Painter to draw TTF glyphs
2021-02-15 08:50:48 +01:00
Stephan Unverwerth
0f41f5d9ba
LibGUI+LibGfx+LibTTF: Make fontpicker handle TTF fonts
2021-02-15 08:50:48 +01:00
Stephan Unverwerth
5a70ccecb3
LibGfx: Add more query methods to FontDatabase and Typeface
2021-02-15 08:50:48 +01:00
Stephan Unverwerth
e504d4ef96
LibGfx: Add Color::multiply() for component wise multiplication
2021-02-15 08:50:48 +01:00
Stephan Unverwerth
179dba652e
LibGfx: Insert pixel and ttf fonts into Typeface structure
...
This adds a new structure 'Typeface' to the FontDatabase that
represents all fonts of the same family and variant.
It can contain a list of BitmapFonts with varying size but of
the same family and weight or a pointer to a single TTF font
for all sizes of this Typeface.
2021-02-15 08:50:48 +01:00
Stephan Unverwerth
2c4e13f14a
LibTTF: Parse TTF "name" table
2021-02-15 08:50:48 +01:00
AnotherTest
48fbf6a88d
LibCrypto: Don't copy the prime test candidates
...
This was copying a bunch of bigints for no reason.
2021-02-14 13:30:10 +01:00
AnotherTest
3fe7ac0924
LibCrypto: Make a better ASN.1 parser
...
And use it to parse RSA keys.
As a bonus, this one shouldn't be reading out of bounds or messing with
the stack (as much) anymore.
2021-02-14 13:30:10 +01:00
Linus Groh
4e2a961a3d
LibJS: Add BigInt equality tests for some large numbers
2021-02-14 10:51:00 +01:00
Linus Groh
1c6fd749dc
LibCrypto: memcmp() all bytes in UnsignedBigInteger::operator==
...
`length` is only the (trimmed) size of the word vector, so we have to
multiply it with the size of each element to ensure all bytes are
compared.
Fixes #5335 .
2021-02-14 10:51:00 +01:00
Andreas Kling
781d29a337
Kernel+Userland: Give sys$recvfd() an options argument for O_CLOEXEC
...
@bugaevc pointed out that we shouldn't be setting this flag in
userspace, and he's right of course.
2021-02-14 10:39:48 +01:00
Andreas Kling
dc42b4565b
LibIPC: Oops, fix busted dbgln() format string (thanks, checker!)
2021-02-13 20:37:05 +01:00
Andreas Kling
05bb11f482
LibIPC: Make received file descriptors close-on-exec by default
...
I noticed that programs running in the terminal had an open file
descriptor for the system theme buffer, inherited from the Terminal.
Let's be nice and always mark incoming fds with FD_CLOEXEC.
2021-02-13 20:13:51 +01:00
Linus Groh
2ed7f75e95
LibJS: Return empty value on exception in Date.parse(), not NaN
...
This is discarded anyway, so let's not confuse ourselves by returning a
NaN number value that's not going to be used.
2021-02-13 19:58:51 +01:00
Linus Groh
db340ae7aa
LibJS: Add missing exception check in Date() constructor
2021-02-13 19:58:51 +01:00
Tom
ddbd88d5c6
LibGfx: Enable Painter::blit to apply opacity and mix alpha channels
...
This enables us to properly render windows that use both opacity and
alpha channels.
2021-02-13 19:57:31 +01:00
Itamar
8ace2cfa18
LibCpp: Fix lexing & parsing of non-terminated strings
2021-02-13 19:50:09 +01:00
Nick Vella
a6fdc17f3f
LibGUI: add 'always_wrap_item_labels' property to IconView.
...
In some circumstances (like template selection dialogs,) displaying as much
item label as possible, on all items, may be desired.
The default setting is 'false', which matches the default behaviour from before;
only wrapping on hover or selection.
2021-02-13 19:49:30 +01:00
Andreas Kling
40a5487bab
LibELF: Unmap and close the main executable after dynamic load
...
We don't need to keep the whole main executable in memory after
completing the dynamic loading process. We can also close the fd.
2021-02-13 13:46:20 +01:00
Andreas Kling
e1dbf74f15
LibJS: Add some basic freelist validation for the GC heap
...
When using the freelist, we now validate that the entries are actual
cell pointers within the current HeapBlock.
2021-02-13 00:40:49 +01:00
Tom
0138f13bfe
WindowServer: Improvements to support alpha channel in window frames
...
This fixes some issues handling the alpha channel that may be present
in rendered window frames.
Fixes #5303
2021-02-13 00:39:33 +01:00
Andreas Kling
e8d3856736
LibJS: Randomize GC heap block locations
...
Allocate GC heap blocks with mmap(MAP_RANDOMIZED) for ASLR.
This may very well be too aggressive in terms of fragmentation, and we
can figure out ways to scale that back once it becomes a big problem.
For now, this makes the GC heap a lot less predictable for an attacker.
2021-02-12 19:15:59 +01:00
Tom
7e06afb822
WindowServer: Recompute occlusions when changing window's alpha channel
...
Fixes #4845
2021-02-12 08:57:42 +01:00
Andreas Kling
a50ba0a491
LibSyntax: Make rehighlight() take Gfx::Palette as by const-reference
2021-02-11 23:52:39 +01:00
Tom
cf1c159ed5
WindowServer: Allow different shadows for active/inactive windows
...
Also allow specifying different shadows for the task and menu bar.
2021-02-11 23:36:11 +01:00
Andreas Kling
3c7782fdbe
LibC: Remove FIXME spam in setlocale()
2021-02-11 23:31:56 +01:00
DexesTTP
c98ad27803
LibGUI: Use Core::FileWatcher in FileSystemModel
...
This replaces the manual watch_file and Notifier handling with the new
Core::FileWatcher wrapper, which reduces the manual handling and makes
the code easier to reason about :^)
2021-02-11 13:13:32 +01:00