Skip to content

Releases: buck-yeh/bux

OS-agnostic way to identify UTF-32 encodings

11 Dec 17:23

Choose a tag to compare

1.10.1

[Change] Sync `test/archlinux/aur_poc/` with `test/`

Enhancements on `Logger` & `UnicodeCvt`

07 Dec 06:56

Choose a tag to compare

  1. [New] Define TURN_OFF_LOGGER_ to turn off the logger globally.
  2. [New] LOG1(), SCOPELOGXn(), FUNLOGXn() more handy in simple scenarios than LOG(), SCOPELOGX(), FUNLOGX()
  3. [Bug] std::forward<T_Args>() is removed when used thru SCOPELOGX() & FUNLOGX() for both Linux & Windows.
  4. [Change] Re-haul to get UnicodeCvt to 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`

26 Oct 13:11

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

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

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

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

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

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

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

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.