Commit graph

179 commits

Author SHA1 Message Date
Hiroki Tagato
cb4e152dc7
internal: add libc++ < 20 fallback for floating-point strToNumber (#104)
* Add missing includes.

* Add libc++ < 20 fallback for floating-point strToNumber

libc++ prior to version 20 does not implement std::from_chars for
floating point types, which causes builds to fail on systems using older
libc++ versions (e.g. FreeBSD).

Add a small fallback using strtof/strtod/strtold for building with
libc++ < 20.

While libstdc++, or libc++ 20 or later continue to use the existing
std::from_chars implementation, this change restores compatibility with
older libc++ versions.
2026-03-22 20:30:05 +00:00
b85b779e3e
version: bump to 0.11.1 2026-03-19 19:26:04 +00:00
668b22df50
string: add isNumber2 for sv 2026-03-19 16:19:10 +00:00
6b4c47661e
path: add resolvePath 2026-03-17 14:58:44 -04:00
d32196ab2a
string/numeric: add hex parsing 2026-03-17 14:52:42 -04:00
7d3be08f84
string/numeric: add numeric parsing 2026-03-17 11:35:43 -04:00
Linux User
5e228db682
i18n: include vector header (#103)
Fixes error `no member named 'vector' in namespace 'std'` on llvm/musl
2026-03-13 16:11:03 -05:00
8eb974bdea
memory: add dynamicPointerCast for weak ptrs
closes #102
2026-03-07 18:28:56 +00:00
e63f3a7933
treewide: alejandra -> nixfmt 2026-03-02 15:57:50 +02:00
ancorehraq
340a792e3b
logger: bump to C++26, set FD_CLOEXEC on log file descriptor (#100) 2026-02-16 19:51:27 +00:00
9038eec033
memory: fix a few UAF cases, add asan to test 2026-02-03 17:30:57 +00:00
Tom Englund
51a4f93ce8
signals: check if listeners is empty in emitInternal (#96)
* signals: use tuple reference and check if listeners is empty

use forward_as_tuple as ít creates a temporary tuple reference instead
of copying/moving each argument. also if guard the emitInternal to only
create locals if there is actually any listeners.

* signal: revert forward_as_tuple

cant use references as signals expect a copy/move.
2025-12-20 17:56:12 +00:00
Tom Englund
5ac060bfcf
signal: check for trivially copyable (#95)
use is_trivially_copyable instead because is_arithmetic_v exludes small
POD structs, enums, and certain trivially copyable types.

also add a if guard in emit if we have no listeners, no point emitting.
2025-12-19 16:12:51 +00:00
1c527b30fe
cli/logger: flush stdout after logging 2025-12-17 20:09:42 +00:00
fe686486ac
version: bump to 0.11.0 2025-12-05 19:18:01 +00:00
2f2413801b
logger: don't crash on failing to print to stdout 2025-12-02 00:58:52 +00:00
Vaxry
9f8e158dbd
memory/shared: add dynamicPointerCast (#92) 2025-12-01 21:18:31 +00:00
EvilLary
7e6346f84b
i18n: fix typo in sorting entries (#94) 2025-11-30 00:54:28 +00:00
Maximilian Seidler
a64517c236
animation: allow/intend for animated vars to be unique pointers (#93) 2025-11-28 17:08:50 +00:00
0168583075
cli/argumentParser: improve formatting of description 2025-11-24 14:54:18 +00:00
5e1a14bc29
cli/argumentParser: allow empty short 2025-11-24 14:44:43 +00:00
bc9803c4b8
version: bump to 0.10.4 2025-11-24 14:13:22 +00:00
SASANO Takayoshi
44c2ba0354
src/cli/ArgumentParser.cpp: clang requires <algorithm> (#91) 2025-11-24 13:53:20 +00:00
96df6f6535
cli/logger: add redirection of connections 2025-11-23 18:30:59 +00:00
a9fe9748ae
version: bump to 0.10.3 2025-11-23 16:03:58 +00:00
Vaxry
b311dc90dc
cli: add logger (#90)
Adds a Logger to the CLI namespace
2025-11-23 15:45:14 +00:00
Vaxry
16a7fe760d
cli: add CArgumentParser (#89) 2025-11-23 00:20:24 +00:00
31f29957df
Nix: always test in debug mode 2025-11-22 00:35:18 +02:00
1454845751
cmake: add coverage reports 2025-11-21 22:19:01 +00:00
Vaxry
2698ac1194
tests: move tests out of source tree (#88) 2025-11-21 16:27:29 +00:00
671792bcfe
i18n: fix error with localizing multi-var strings 2025-11-19 00:51:03 +00:00
0c6411851c
i18n/engine: optimize string generation 2025-11-16 20:02:11 +00:00
e3cae692f6
i18n/engine: fix pure stem matches 2025-11-15 22:21:40 +00:00
Constantin Piber
cb3e797fde
internal: fix missing headers (#86) 2025-11-10 22:02:48 +00:00
0a28f35c00
version: bump to 0.10.2 2025-11-10 13:00:04 +00:00
Vaxry
01afe9245b
tests: move to gtest (#85)
---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2025-11-09 18:05:01 +00:00
Vaxry
9a9745d7aa
string: add VarList2 (#84)
reworks how varList works, mixes best of both ConstVarList and regular VarList. Deprecates both.
2025-11-09 15:10:58 +00:00
Vaxry
968f881222
i18n: add i18n engine (#83)
Adds a translation engine
2025-11-09 14:18:33 +00:00
926689ddb9
version: bump to 0.10.1 2025-11-06 00:09:00 +00:00
9637961a55
string/constVarList: fix UAF 2025-11-05 15:04:02 +00:00
Freevatar
164a30b3d8
animation/bezier: Fix OOB in getYForPoint for non-monotonic 4-point curves (#81) 2025-11-03 22:25:56 +00:00
3df7bde01e
version: bump to 0.10.0 2025-10-05 00:12:03 +01:00
9ab64319e9
math/region: reinit region for scale()
Apparently on some setups directly modifying the rectangles is a no-go, see #78.

Pixman is another piece of undocumented shit. I hope whomever wrote this stubs their toe.

Note to self: drop pixman, rewrite region. Fucking idiots.
2025-10-04 21:22:03 +01:00
Maximilian Seidler
feaaf44d59
memory: make SP/ASP control blocks type agnostic (#79) 2025-10-04 20:35:48 +02:00
94cce79434
tests/math: add region scale test 2025-10-03 12:28:46 +01:00
c1f541256e
version: bump to 0.9.0 2025-10-03 12:16:41 +01:00
1f80045da1
bezier: fix with first point being non-0 2025-09-30 15:05:40 +01:00
a20932e200
bezier: add setup4 2025-09-30 13:56:37 +01:00
Tom Englund
64446e1a4c vector2d: make vector trivial
while profiling vector showed up as a marginal waster because it wasnt a
trivial class, a few if(m_someVector != Vector()) was causing a lot of
churn because of not being trivial and doing a lot of allocaitons and
destructions. make it trivial by defaulting constructor, and destructor,
and while we are at it make it constexpr friendly on constructors and
operators.
2025-09-28 00:01:31 +02:00
Tom Englund
05f0fb2774 memory: fix clangd warnings
modernize validHierarchy and isConstructible, mark move operator
noexcept, use default destructor instead of {}, __deleter is a reserved
name, remove a underscore.

as per clangd docs.
The C standard additionally reserves names beginning with a double underscore,
while the C++ standard strengthens this to reserve names with a double underscore occurring anywhere.
2025-09-27 01:01:56 +02:00