Releases: buck-yeh/bux
Releases · buck-yeh/bux
OS-agnostic way to identify UTF-32 encodings
1.10.1 [Change] Sync `test/archlinux/aur_poc/` with `test/`
Enhancements on `Logger` & `UnicodeCvt`
- [New] Define
TURN_OFF_LOGGER_to turn off the logger globally. - [New]
LOG1(),SCOPELOGXn(),FUNLOGXn()more handy in simple scenarios thanLOG(),SCOPELOGX(),FUNLOGX() - [Bug]
std::forward<T_Args>()is removed when used thruSCOPELOGX()&FUNLOGX()for both Linux & Windows. - [Change] Re-haul to get
UnicodeCvtto pass as many test cases as possible in both Linux & Windows, except:- In Linux, UTF-16BE without BOM still fails.
- In Windows, UTF-32 has found no way to pass.
New `EZScape.cpp`
EZScape.cpp defines bux::easy_escape() & bux::easy_unescape() as replacements of curl_easy_escape() & curl_easy_unescape() of libcurl, respectively.
Make `FUNLOGX()` usable in Windows
- [Change] Retain use of
std::forward<T>()inC_EntryLog::C_EntryLog()anywhere except Windows. - [Change] Make
C_NFA::setAction()method template.
Re-haul logger hierarchy
- Allow choosing between system clock and local time (the default) by defining
LOGGER_USE_LOCAL_TIME_ - The path formatting string(s) passed to
C_PathFmtLogSnap::configPath()is now used asfmtparameter ofstd::vformat()instead offormatparameter ofstd::strftime() - Remove class
C_UseLoggerand extract the essence into more reusable functionstamp() - Macro
DEF_FALLBACKABLE_LOGGER_FILES()renamed to shorterDEF_FALLBACK_LOGGER_FILES() - Replace
-g3 -Ogwith-O2to build more efficient library.
Time to say goodbye to `fmt`
- [Change] Replace
fmt::format(),fmt::print()withstd::format(),std::print() - [Change]
I_LexAttrbecomes abstract - [Change] To '-std=c++23'
- [Change] Migrate to catch2 v3.x
Bugfix & vcpkg compliance
- [Bug] Help USAGE line for a subcommand, if any, is displayed in wrong order.
- [vcpkg] Merge from microsoft/vcpkg#26248 so that
fix-clang-cl.patchcan be removed.
Updates for newer compiler versions
- [VS2022] Include
<utility>to getstd::cmp_less_equal()compiled. - [Standard] Re-implement
bux::C_ScreenerNoin a more compliant way.
Accumulated updates
- [New]
C_UnicodeIn::encoding() - [Change] Pass
std::basic_string_view<T>arguments by value, not by reference, to one of overloaded ctors ofbux::C_MBCStr - [Change] Rehaul
bux::fittestType()in C++20 - concept lite &if constexpr - [Change] Add code page 951 (Big5 with HKSCS-2001) as one of encoding candidates to test in
C_UnicodeIn - [Change] Forbid r-value string instance as ctor parameter of
bux::C_IMemStreamT<>
Misc improvements with minor breakage of includes
- [Change] Move
HRTN()&OXCPT()fromLogStream.htoStrUtil.h. - [Change] Rewrite I/O manipulator
bux::timestamputilizingfmt::format()to shorten the boilerplate code. - [Change] Quit assuming
std::string::begin()is defined asconst char *upon implementing ctor ofbux::C_IMemBuf. - [Change] Harden the criteria to make flag values prefixed with '-' (negative numbers) hardly missed (i.e. misunderstood as short-named flags).
- [Change] Claim that "Behavior of adding duplicate subcommands or flags of the same name is undefined." i.e it is caller's responsibility.
- [Change] No more prepend ./ to the command name of USAGE part of help text.
- [Change] Allow
bux::scanFile()to provide encoding code of the input stream. The change of function prototype has a virtue of preventing short strings from guessing the wrong encoding. - [Bug]
C_ScannerImpl<>::add()may throw due to losing its track of the last non-null action function pointer. - [Change] Were
C_ScannerImpl<>::add()thrown, the incorporated message will have value ofm_CurState.