* refactor: tr_torrentGetMetadataPiece() returns an optional vector
* refactor: use tr_pathbuf in create_temp_path()
* refactor: use tr_pathbuf in win32 create_temp_path()
* refactor: use std::vector in isPeerInteresting()
* refactor: remove tr_new0 from tr_peerMgrPeerStats()
* refactor: remove tr_new0 from rechokeUploads()
* refactor: silence clang nullptr dereference warning
* refactor: make tr_natpmp a C++ class
* refactor: use std::string in tr_log_message
* fix: bugprone-assignment-in-if-condition warning in tr_bitfield::countFlags()
* fix: bugprone-assignment-in-if-condition warning in tr_watchdir_generic_new()
* fix: bugprone-assignment-in-if-condition warning in torrentRenamePath()
* fix: bugprone-assignment-in-if-condition warning in tr_watchdir_inotify_on_event()
* fix: bugprone-assignment-in-if-condition warning in tr_variantWalk()
* fix: misc-const-correctness warning in TrackerDelegate::getText()
* fix: bugprone-assignment-in-if-condition warning in Session::updateStats()
* fix: performance-unnecessary-value-param warning in discoverThreadfunc()
* fix: clang-analyzer-core.UndefinedBinaryOperatorResult warning in tr_completion::setHasAll()
* fix: clang-analyzer-core.UndefinedBinaryOperatorResult warning in tr_torrentFileCompleted()
* fix: silence clang-analyzer-cplusplus.NewDelete warning when using QPointer
This appears to be a false positive; added NOLINT
* Revert "refactor: remove tr_sessionGetConfigDir() (#3506)"
This reverts commit c50da43ae0.
* Revert "fix: do not leak in tr_getWebClientDir() (#3502)"
This reverts commit 5a75e37033.
* refactor: simplify tr_swarmGetStats()
* refactor: make addStrike() a tr_swarm member function
* refactor: make updateEndgame() a tr_swarm member function
* refactor: limit scope of some constexpr values
* refactor: make tr_swarm.is_endgame private
* refactor: make tr_swarm.isAllSeeds() a member function
* refactor: use semantic type tr_torrent_type_t in libtransmission
* refactor: use semantic type tr_torrent_type_t in gtk client
* refactor: use semantic type tr_torrent_type_t in qt client
* refactor: remove unused field tr_torrent.prefetchMagnetMetadata
* refactor: remove unused field tr_torrent.dhtAnnounce6InProgress
* refactor: remove unused field tr_torrent.dhtAnnounceInProgress
* refactor: fold etaULSpeed and etaDLSpeed into one field
* refactor: re-arrange fields to avoid padding
Most use cases involve either (a) using the default group or (b) sharing
a group with other torrents. In both cases, using a tr_quark is cheaper
than a std::string.
* refactor: re-enable cert-err33-c clang-tidy warning
* refactor: use fmt::chrono in transmission-remote
* refactor: use fmt::chrono in transmission-show
* refactor: use fmt::chrono in GTK details dialog
* refactor: use fmt::chrono in tr_session
* refactor: remove tr_localtime_r
* refactor: remove tr_gmtime_r