Releases: buck-yeh/bux
Releases · buck-yeh/bux
New `EZScape.cpp`
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 asfmt
parameter ofstd::vformat()
instead offormat
parameter ofstd::strftime()
- Remove class
C_UseLogger
and extract the essence into more reusable functionstamp()
- Macro
DEF_FALLBACKABLE_LOGGER_FILES()
renamed to shorterDEF_FALLBACK_LOGGER_FILES()
- Replace
-g3 -Og
with-O2
to build more efficient library.
Time to say goodbye to `fmt`
- [Change] Replace
fmt::format()
,fmt::print()
withstd::format()
,std::print()
- [Change]
I_LexAttr
becomes 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.patch
can be removed.
Updates for newer compiler versions
- [VS2022] Include
<utility>
to getstd::cmp_less_equal()
compiled. - [Standard] Re-implement
bux::C_ScreenerNo
in 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.h
toStrUtil.h
. - [Change] Rewrite I/O manipulator
bux::timestamp
utilizingfmt::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
.
Bug/quirk fixes & enhancements
- [Bug]
C_EZArgs::parse()
misunderstands negative numbers as flag short names. - [Dependency] Update according to issue #4 related to vcpkg build.
- [Quirk]
C_EZArgs::help_full()
: Keep "USAGE:" a empty line away from "DESCRIPTION:" - [Obsolete] Remove
ParaUtil.h
(bux::C_NumIter<>
) due to deprecation ofstd::iterator<>
- [Change] Parameters
trigger
&parse
of allC_EZArgs::add_flag()
overloads now passed by rvalue references for better performance. - [Change] Loose the container parameter type requirements of
C_PathFmtLogSnap::configPath(uintmax_t fsize_in_bytes, const auto &fallbackPaths)
- [Change] Replace
DEF_CONFIGURABLE_LOGGER_FILES
withDEF_FALLBACKABLE_LOGGER_FILES(first,...)
to initialize the global logger in place. - [New]
test/archlinux/README.md
to remind myself.
Downgrade -std=c++20 flag to -std=c++2a to allow vcpkg triplet x64-linux to pass
1.6.3 Downgrade -std flag to let vcpkg triplet x64-linux to pass