With the new minimum meson_version, it is possible to retrieve the
project version from a file by passing a files() output directly to the
version argument. It is no longer necessary to call run_command with
various arguments to configure its behavior, nor depend on a system
/usr/bin/cat (which admittedly does exist on non-Windows systems).
And meson will also treat the VERSION file as a build input, and
reconfigure the build if it changes -- meaning that the built binaries
are updated to have the correct version number (configure_file,
PACKAGE_VERSION, etc).
Signed-off-by: Eli Schwartz <[email protected]>
meson.source_root() is deprecated since 0.56, and should be replaced
with either project_source_root or global_source_root depending on
whether it is supposed to refer to a different subproject if the current
project is a subproject. The default for source_root itself was the
latter, which is broken in subproject builds, and is also incorrect for
us since our usage is to construct the path to a file that is part of
the zoitechat source tree.
Make this work semantically correctly by specifically accessing the root
of the current (sub)project, and fix a deprecation warning in the
process.
Signed-off-by: Eli Schwartz <[email protected]>
Meson emits a warning stating that the default will change from false to
true, in some future version, and that one should always pass
`check: BOOL` explicitly. Normally this is because commands that
unexpectedly fail would result in wrong behavior if the build treats it
as though it succeeded.
In this case, we were specifically relying on it being `check: false`,
as the returncode is immediately checked in order to provide a better
error message. Make this explicit in the meson.build file.
Signed-off-by: Eli Schwartz <[email protected]>
The minimum version is too high to allow these checks to ever be false.
We can delete else branches as dead code and remove "if true"
constants.
Fixes:
```
meson.build:170: WARNING: Conditional on version '>= 0.55.0' always evaluates to true
meson.build:232: WARNING: Conditional on version '>= 0.55.0' always evaluates to true
```
Signed-off-by: Eli Schwartz <[email protected]>
This trivial diff gets rid of noisy warnings such as
```
./src/common/ignore.c:274:13: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
274 | ignore_load ()
| ^
| void
```
when building with modern clang. This is cosmetic since these functions
are actually prototyped in a header, so if the header is in scope it's
not possible to call them with an arbitrary number of arguments.
Using HMAC ()'s facility of returning the digest in a static array is
not thread safe (this can't be fixed) and it is not portable to the
OpenSSL forks: BoringSSL removed support for this a decade ago (so
aws-lc doesn't support it either) and LibreSSL followed a few years
back.
There is no downside to having a 32-byte array on the stack and it would
make zoitechat safe to use from other forks without the need of patching
it.
Add an error check for the HMAC () call and handle the error in the
caller.
When nick indentation is off, lines after the first wrap back to the
left edge, under the timestamp. Add a text_wrap_align preference
(start of line, prefix, message) so they can line up under the nick or
the message text instead. It is applied at wrap time, so existing
scrollback is re-wrapped when the setting changes, and the menu is
greyed out while nick indentation is on.
master's new xtext_tests target compiles xtext.c on its own with only
GTK linked, so hexcolor_parse cannot live in util.c. Keep it in a
dependency-free hexcolor.c that both test targets compile, and register
it in the Visual Studio project for the Windows build.
Claude-Session: https://claude.ai/code/session_01Jxd4AknGzdAENADWAGHCzx
Instead of retrieving the AlgorithmIdentifier and then reaching into it
to get the OID, the relevant OID can be obtained directly from the same
function.