Some languages use different percentage formatting style other than
100% (e.g. Turkish and French, %100-100 %). This commit enables the use
of NSNumberFormatter(), in order to provide localized formatting.
* Use user-preferred locale
Previous fix adding `L` format specifier was correct but only fixed half
of the problem, as C++ locale is set up to be "C" by default. GTK client
used to call `setlocale(LC_ALL, "")` to set up user-preferred locale
which only affected C functions and `std::locale` (used by libfmt) was
unaware of those changes.
Apply the fix to all the binaries since they're all doing some sort of
output to the user and calling libtransmission helpers, as well as using
libfmt directly.
* Improve libtransmission's json-test
Set the locale C++ way to avoid any sort of inconsistencies, and also
restore it to the old one once finished testing.
* Improve transmission-show test runner script
Quote outputs to avoid CMake error about `message()` being called with
no arguments. Capture stderr to the same output file. Fallback to `git
diff` if `diff` wasn't found. A few other minor changes.
* feat: Use updated minimal NSColorWell style for Groups.
Only on macOS Ventura (13.0+), as AppKit changes were introduced here.
Somewhat fixes#5011
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
Recently we discovered we do not properly handle broken tar archives.
The problem is running tar (in linting mode) on invalid archive and
piping stdout to NSPipe introduces a hang as NSPipe cannot process
such huge data amounts.
Fixing this problem by adding a precheck with tar (listing mode) with
piping stdout to /dev/null.
Fixes: #4702
* Use imported CMake target for CURL
* Use imported CMake target for fmtlib
* Use imported CMake target for WideInteger
* Use imported CMake target for FastFloat
* Use imported CMake target for UtfCpp
* Use imported CMake target for Threads
* Use imported CMake target for Iconv
* Use imported CMake target for crypto backend
* Use imported CMake target for GTK
* Use imported CMake target for Qt
* Use imported CMake target for deflate
* Use imported CMake target for libevent
* Use imported CMake target for natpmp
* Use imported CMake target for miniupnpc
* Use imported CMake target for dht
* Use imported CMake target for psl
* Use imported CMake target for libutp
* Use imported CMake target for libb64
* Use include directories from libtransmission target