Skip to content

Releases: buck-yeh/bux

New `EZScape.cpp`

26 Oct 13:11
Compare
Choose a tag to compare

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

28 Sep 10:22
Compare
Choose a tag to compare
  1. [Change] Retain use of std::forward<T>() in C_EntryLog::C_EntryLog() anywhere except Windows.
  2. [Change] MakeC_NFA::setAction() method template.

Re-haul logger hierarchy

16 Sep 16:27
Compare
Choose a tag to compare
  1. Allow choosing between system clock and local time (the default) by defining LOGGER_USE_LOCAL_TIME_
  2. The path formatting string(s) passed to C_PathFmtLogSnap::configPath() is now used as fmt parameter of std::vformat() instead of format parameter of std::strftime()
  3. Remove class C_UseLogger and extract the essence into more reusable function stamp()
  4. Macro DEF_FALLBACKABLE_LOGGER_FILES() renamed to shorter DEF_FALLBACK_LOGGER_FILES()
  5. Replace -g3 -Og with -O2 to build more efficient library.

Time to say goodbye to `fmt`

05 Aug 01:02
Compare
Choose a tag to compare
  1. [Change] Replace fmt::format(), fmt::print() with std::format(), std::print()
  2. [Change] I_LexAttr becomes abstract
  3. [Change] To '-std=c++23'
  4. [Change] Migrate to catch2 v3.x

Bugfix & vcpkg compliance

23 Feb 15:21
Compare
Choose a tag to compare
  1. [Bug] Help USAGE line for a subcommand, if any, is displayed in wrong order.
  2. [vcpkg] Merge from microsoft/vcpkg#26248 so that fix-clang-cl.patch can be removed.

Updates for newer compiler versions

29 Jan 08:02
Compare
Choose a tag to compare
  1. [VS2022] Include <utility> to get std::cmp_less_equal() compiled.
  2. [Standard] Re-implement bux::C_ScreenerNo in a more compliant way.

Accumulated updates

15 Jun 16:20
Compare
Choose a tag to compare
  1. [New] C_UnicodeIn::encoding()
  2. [Change] Pass std::basic_string_view<T> arguments by value, not by reference, to one of overloaded ctors of bux::C_MBCStr
  3. [Change] Rehaul bux::fittestType() in C++20 - concept lite & if constexpr
  4. [Change] Add code page 951 (Big5 with HKSCS-2001) as one of encoding candidates to test in C_UnicodeIn
  5. [Change] Forbid r-value string instance as ctor parameter of bux::C_IMemStreamT<>

Misc improvements with minor breakage of includes

01 Jun 14:12
Compare
Choose a tag to compare
  1. [Change] Move HRTN() & OXCPT() from LogStream.h to StrUtil.h.
  2. [Change] Rewrite I/O manipulator bux::timestamp utilizing fmt::format() to shorten the boilerplate code.
  3. [Change] Quit assuming std::string::begin() is defined as const char * upon implementing ctor of bux::C_IMemBuf.
  4. [Change] Harden the criteria to make flag values prefixed with '-' (negative numbers) hardly missed (i.e. misunderstood as short-named flags).
  5. [Change] Claim that "Behavior of adding duplicate subcommands or flags of the same name is undefined." i.e it is caller's responsibility.
  6. [Change] No more prepend ./ to the command name of USAGE part of help text.
  7. [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.
  8. [Bug] C_ScannerImpl<>::add() may throw due to losing its track of the last non-null action function pointer.
  9. [Change] Were C_ScannerImpl<>::add() thrown, the incorporated message will have value of m_CurState.

Bug/quirk fixes & enhancements

21 May 04:43
Compare
Choose a tag to compare
  1. [Bug] C_EZArgs::parse() misunderstands negative numbers as flag short names.
  2. [Dependency] Update according to issue #4 related to vcpkg build.
  3. [Quirk] C_EZArgs::help_full(): Keep "USAGE:" a empty line away from "DESCRIPTION:"
  4. [Obsolete] Remove ParaUtil.h(bux::C_NumIter<>) due to deprecation of std::iterator<>
  5. [Change] Parameters trigger & parse of all C_EZArgs::add_flag() overloads now passed by rvalue references for better performance.
  6. [Change] Loose the container parameter type requirements of C_PathFmtLogSnap::configPath(uintmax_t fsize_in_bytes, const auto &fallbackPaths)
  7. [Change] Replace DEF_CONFIGURABLE_LOGGER_FILES with DEF_FALLBACKABLE_LOGGER_FILES(first,...) to initialize the global logger in place.
  8. [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

19 Nov 12:16
Compare
Choose a tag to compare
1.6.3

Downgrade -std flag to let vcpkg triplet x64-linux to pass