Commit Graph
100 Commits
Author SHA1 Message Date
yyc12345 664763afbb test: add testbench for stl, windows and iconv encoding 2025-08-12 13:05:35 +08:00
yyc12345 a34bab07c1 refactor: rename encoding/stlcvt to encoding/stl 2025-08-12 09:45:44 +08:00
yyc12345 51d288ac4b test: add testbench for num/safe_cast 2025-08-11 22:19:02 +08:00
yyc12345 20a9ef4166 fix: fix comment for new added files.
- translate zh-CN comment into en-US.
- change some comment into Doxygen style.
- add lost Doxygen comment.
- enrich the testbench for ceil_div.
- add lost metaprogramming functions for some files in macro namespace.
2025-08-11 21:57:42 +08:00
yyc12345 17540072d3 fix: change the find order in PyCodec.
- now PyCodec will try to use Iconv first.
- re-claim the meaning of YYCC_FEAT_ICONV macro.
2025-08-05 14:04:20 +08:00
yyc12345 fcac886f07 refactor: migrate rust-like ops.
- migrate rust-like ops.
- migrate testbench for them but not finished.
2025-08-05 13:53:59 +08:00
yyc12345 27baf2a080 refactor: refactor old IOHelper.
- move pointer left padding macro into single header file.
- move utf8 fopen into single header but not finished.
- add testbench for pointer left padding macro.
- add system pointer size detector according to new migrated features requested.
2025-08-05 10:54:15 +08:00
yyc12345 b9f81c16a0 refactor: refactor enum helper as flag enum.
- refactor enum helper.
- add testbench for it.
2025-08-04 22:31:37 +08:00
yyc12345 54134b342e test: add testbench for macro/versiom_cmp 2025-08-04 21:15:49 +08:00
yyc12345 ce2b411b0b refactor: continue refactor to make the project can be built 2025-07-31 22:25:14 +08:00
yyc12345 5372af79f8 refactor: finish iconv refactor 2025-07-25 11:06:22 +08:00
yyc12345 b79df0c65e refactor: continue refactor project from C++17 to 23 2025-07-25 10:49:07 +08:00
yyc12345 4f0b3d19d1 refactor: update C++ from 17 to 23 2025-07-25 09:35:26 +08:00
yyc12345 f014e54604 feat: update pycodec.
- rename encoding::utf to encoding::stlcvt.
- use uv to manage script and add pycodec generator script.
- update script in modern python.
- fix added pycodec generator.
2025-07-23 16:07:49 +08:00
yyc12345 821a592f02 feat: add various detector.
- add endian and compiler detector, and modify os detector.
- now we use CMake to add detector-used macro, instead of using some C++ features to detect them.
- change Windows environment detection according to the change of os detector.
2025-07-23 10:18:01 +08:00
yyc12345 6043609709 feat: finish windows encoding 2025-07-22 21:52:09 +08:00
yyc12345 53e8a77f47 feat: finish iconv module 2025-07-22 14:15:53 +08:00
yyc12345 6d44c7605b refactor: update encoding namespace
- add all essential functions prototypes in iconv encoding.
- add lost UTF convertion for windows encoding.
2025-07-21 20:36:26 +08:00
yyc12345 c2f6e29c36 feat: finish iconv kernel 2025-07-18 15:57:33 +08:00
yyc12345 c102964703 refactor: write iconv.
- write iconv encoding (not finished).
- rename united_codec to pycodec.
2025-07-15 16:17:59 +08:00
yyc12345 3605151caf refactor: finish Windows encoding namespace.
- finish Windows encoding namespace.
- add std::expected polyfill for help.
2025-07-14 15:06:33 +08:00
yyc12345 fa52d7416f refactor: condense the shared test data of parse and stringify. 2025-07-14 09:43:23 +08:00
yyc12345 e42a3b6e58 refactor: move YYCC_U8 from reinterpret.hpp to string.hpp
- move YYCC_U8 def.
- create shared template in testbench.
2025-07-14 09:13:47 +08:00
yyc12345 cec6091996 refactor: add utf convertion namespace 2025-07-02 10:36:33 +08:00
yyc12345 6e884d865d test: add testbench for patch (starts ends with, and contains) 2025-07-01 14:04:02 +08:00
yyc12345 58ec960e9c refactor: move std patch into correct position 2025-07-01 11:00:09 +08:00
yyc12345 732a560a65 refactor: finish constraint builder and its testbench 2025-06-30 09:33:46 +08:00
yyc12345 3030a67ca3 refactor: re-place files into correct position according to namespace hierarchy 2025-06-30 08:45:18 +08:00
yyc12345 e166dc41ac refactor: finish rust parse and add testbench for it. 2025-06-26 10:27:33 +08:00
yyc12345 a6382d6a22 refactor: add document for some namespaces 2025-06-25 10:40:05 +08:00
yyc12345 adc99274f4 refactor: add testbench for parse and stringify 2025-06-24 11:29:01 +08:00
yyc12345 3abd0969c0 refactor: add Rust infrastructure: Option, Result and panic 2025-06-23 16:22:55 +08:00
yyc12345 28ff7008a8 add parse and stringify 2025-06-22 19:53:49 +08:00
yyc12345 ab8d74efe6 test: add testbench for string module 2025-06-22 17:14:49 +08:00
yyc12345 df3b602110 refactor: start to refactor project 2025-06-20 23:38:34 +08:00
yyc12345 bec36b4b3c fix: fix install path in CMake script.
- replace some CMake variables to our custom variables in install path, however it does nothing because they are equal in default.
2024-12-23 09:30:39 +08:00
yyc12345 0b7e58c8e8 feat: use CMake to generate library version info.
- use CMake to produce YYCC version header when configuring.
2024-11-03 18:52:02 +08:00
yyc12345 831fa130bc feat: improve EnumHelper
- allow multiple enum flags in EnumHelper::Has to check whether given flags contains specified flags.
- update version in CMake script.
2024-11-03 18:06:36 +08:00
yyc12345 7adac00035 doc: fix document about recent changes
- fix build commandline introduction in documentation.
- update build script template.
- only install document in any Release-like build type.
- now testbench will be installed in any Release-like build type, not only Release.
2024-11-03 17:29:34 +08:00
yyc12345 0cd9582757 refactor: refactor project layout
- move header files into an individual directory to prevent the possibility that file name is conflict in Linux include directory.
- update build script generator. use jinja2 template engine to get better view, rather than python code written by hand.
- add version number and version comparation macros in core library.
2024-11-03 14:51:18 +08:00
yyc12345 2206825223 doc: add document for the change of loading function of ConfigManager. 2024-11-02 17:31:19 +08:00
yyc12345 21f7e7f786 feat: add new helper for scoped enum type.
- Add EnumHelper for bitwise operation of scoped enum type (copied from libcmo21)
- Enrich the return value of ConfigManager load function to present more infomation of loading.
- update testbench for new added feature and modification.
- add document for new added feature.
2024-11-02 17:10:55 +08:00
yyc12345 50dd086b53 fix: fix linux build issue 2024-08-27 17:35:57 +08:00
yyc12345 c91df3a74f fix: fix issues.
- add chars format argument for floating point overload of ParserHelper::TryParse.
- add overload for ParserHelper::Parse to match with ParserHelper::TryParse.
- fix the issue that we can not specify c++ standard in command line when configuring project.
- update documentation for changes.
- change following function's argument from const yycc_char8_t* to const yycc_u8string_view&.
	- StringHelper::Split, StringHelper::SplitView
	- StringHelper::Lower, StringHelper::Upper
	- StringHelper::Join
	- StringHelper::Replace
- use iterator type, not std::vector<yycc_u8string> for specialized StringHelper::Join to have more wide usage.
2024-08-26 11:58:20 +08:00
yyc12345 3858b4f3ec fix: use new way to detect c++ version in MSVC.
- use new macro to check C++ version in MSVC, instead of use compiler switch and __cplusplus macro.
2024-08-15 16:50:15 +08:00
yyc12345 f3a88e951c fix: add testbench for new added code. fix issues.
- add testbench for new added code in StdPatch.
- add documentation for new added code.
- fix the old usage of StdPatch::ToStdPath in ExceptionHelper.
2024-08-15 10:38:58 +08:00
yyc12345 59c185a424 doc: update build script and documentation.
- update build script.
- update documentation about build script changes.
2024-08-14 17:26:38 +08:00
yyc12345 dc98486fff chore: add new script for building
- add a python script for generating windows build script but not tested now.
2024-08-14 11:05:36 +08:00
yyc12345 72a48b703f feat: add various functions
- Add Win32 CopyFile, MoveFile, DeleteFile functions in WinFctHelper.
- rename FsPathPatch to StdPatch because this namespace will hold all standard library patches in future.
- add polyfill for std:basic_string::starts_with, std::basic_string::ends_with std::basic_string_view::starts_with, std::basic_string_view::ends_with in StdPatch.
- add polyfill for unordered and ordered associative standard library container's contains function in StdPatch.
- documentation and testbench will be fixed in later commits.
2024-08-13 09:38:12 +08:00
yyc12345 33cb284eb7 feat: add switch for build script to disable documentation build.
- add a new switch to disable documentation build which cost much time and disk space during building.
- add corresponding codumentation for this feature.
2024-08-05 14:46:59 +08:00
yyc12345 e6c24b8b61 feat: add helper macro and new Win32 function.
- add IsValidCodePage in WinFctHelper to check whether code page number is valid.
- add 6 macros to batchly (add / set default) (move / copy) (constructor / assign operator).
- add default or delete (copy / move) (constructor / assign operator) for some classes.
2024-08-04 11:57:56 +08:00
yyc12345 6da990876e feat: add smart FILE pointer.
- use std::unique_ptr and custom deleter to implement smart FILE pointer for convenient auto free.
2024-08-02 09:50:15 +08:00
yyc12345 0ac6b477f9 fix: fix fatal error of ExceptionHelper in x86 environemnt.
- fix a wrong placeholder of printf in ExceptionHelper which cause crash in unhandled exception handler.
- improve format function in ExceptionHelper.
- add a new debugging option and macro in CMake script and code for the convenience of debugging unhandled exception handler.
- add docuementation about previous term.
2024-07-31 20:32:11 +08:00
yyc12345 1cfbcb3b18 doc: update documentation
- use namespace bracket all content in documentation to reduce useless namespace prefix.
- change the argument type of AbstractSetting and CoreManager to yycc_u8string_view instead of const yycc_char8_t*.
- throw exception if given setting name is invalid in ConfigManager, instead of slient fallback.
2024-07-31 14:14:38 +08:00
yyc12345 598aae69ae doc: update documentation 2024-07-31 12:08:30 +08:00
yyc12345 656495f22e doc: update documentation 2024-07-30 22:13:59 +08:00
yyc12345 e167479de3 doc: add documentation for new added features 2024-07-30 17:31:38 +08:00
yyc12345 19023cb949 doc: add callback documentation in ExceptionHelper.
- add callback documentation in ExceptionHelper.
- fix other misc documentation issue.
2024-07-30 10:35:41 +08:00
yyc12345 650fcd12ec feat: add callback for unhandled exception handler.
- add callback for unhandled exception handler to give programmer a chance to fetch log and coredump path, especially for GUI application because its stderr is invisible.
- fix fatal anto-recursive calling bug in unhandled exception handler.
2024-07-29 21:42:27 +08:00
yyc12345 e8a0299fbc feat: finish ArgParser help text output 2024-07-29 19:31:17 +08:00
yyc12345 d1c1743dc9 feat: basically finish ArgParser
- finish ArgParser and test it.
- Help output function will be added in next commit.
2024-07-29 16:58:52 +08:00
yyc12345 35318505e4 feat: add arg parser feature but not finished 2024-07-28 22:42:16 +08:00
yyc12345 f997990af6 doc: finish all documentations 2024-07-26 15:08:12 +08:00
yyc12345 7f373ed354 doc: update documentation in code 2024-07-25 18:15:39 +08:00
yyc12345 31a7cb5675 doc: update documentation in code 2024-07-25 11:22:50 +08:00
yyc12345 87fa30fe82 doc: update documentation in code 2024-07-24 15:03:31 +08:00
yyc12345 ecb06504bc doc: add documentation about how to build YYCC 2024-07-23 10:39:12 +08:00
yyc12345 805ffe70d6 fix: fix linux build issue
- fix linux build bug
- add linux build script
- order linux shell file eol be LF.
2024-07-22 22:41:10 +08:00
yyc12345 052fa7f4d1 chore: update build script.
- update CMake build script to make install statement is more legal.
- add Windows-only build script for creating CMake used package and MSVC used package on Windows.
- documentation will be added in the next commit.
2024-07-22 13:56:00 +08:00
yyc12345 9e5bd370c4 doc: add documentation for ConfigManager 2024-07-18 09:28:10 +08:00
yyc12345 94386c93aa doc: finish documentation of StringHelper 2024-07-17 14:18:54 +08:00
yyc12345 b13bb445e4 doc: add documentation for ConsoleHelper 2024-07-16 10:41:09 +08:00
yyc12345 81fe72c425 chore: add Natvis in MSVC CMake build.
- add Natvis in MSVC CMake build to let me can see the data encoded with YYCC::yycc_char8_t.
2024-07-15 22:47:49 +08:00
yyc12345 b912be082c doc: add documentation for COMHelper 2024-07-15 13:47:14 +08:00
yyc12345 9f47d0fe24 doc: update documentation for ParserHelper 2024-07-14 11:19:37 +08:00
yyc12345 cc689ce8bb doc: update README
- add MIT license
- update README. remove WIP mark.
- move some content from README to documentation.
2024-07-13 22:50:37 +08:00
yyc12345 1ccea1290e doc: add documentation for win fct helper
- add documentation for win fct helper
- add new macro YYCC_U8_CHAR for casting ordinary char to yycc utf8 char.
- add documentation for new added YYCC_U8_CHAR.
2024-07-13 12:58:49 +08:00
yyc12345 ed549592dd doc: update documentation for FsPathPatch 2024-07-12 09:44:56 +08:00
yyc12345 1c2007928d doc: update documentation for IO helper.
- update IO helper ducumentation.
- fix a latent Linux compile error in IO helper.
2024-07-11 09:59:50 +08:00
yyc12345 a6c543c1b5 doc: finish dialog helper documentation 2024-07-10 09:24:39 +08:00
yyc12345 942e4ff8eb feat: add convertion functions between utf8 and code page string 2024-07-09 21:02:26 +08:00
yyc12345 9a18233723 doc: update document for exception helper 2024-07-08 10:44:09 +08:00
yyc12345 11b2185bb4 chore: update documentation build script 2024-07-08 08:54:49 +08:00
yyc12345 d27a66e770 fix: fix ConfigManager::StringSetting issues
- use yycc_u8string_view in default value and Set function instead of const yycc_char8_t*
- fix value check error in Set function.
2024-07-07 21:33:42 +08:00
yyc12345 4f1e2447d0 fix: make exception handler be singleton in same process.
- use CreateMutexW to make sure exception handler is singleton in the same process.
	- Because one process may load multiple DLLs using YYCC.
	- According to this, it will produce N times error log. N is the count of DLLs using YYCC exception handler.
- refactor exception handler. use a class instance to manage all global variables and add a std::mutex to let module be thread safe.
- change the way of check in console input testbench.
2024-07-07 17:29:26 +08:00
yyc12345 3075ec583d fix: in config manager throw exception when facing duplicated setting name instead of slient skip 2024-07-07 16:08:42 +08:00
yyc12345 2e28dd4c48 chore: update build script.
- update build script to split documentation generation.
- bump up version from 1.0.0 to 1.1.0
2024-07-06 15:28:30 +08:00
yyc12345 a1699f13db doc: update documentation
- rename Constrain to Constraint in code and documentation.
- remove massive annotation of encoding helper because the documentation is enough.
- fix doxygen character shift warnings.
2024-07-05 22:25:14 +08:00
yyc12345 65b81f5cfa refactor: rename Native String to Ordinary String.
- rename Native to Ordinary in code and documentation.
- fulfill some documentations.
2024-07-05 10:36:24 +08:00
yyc12345 1c5a85bbb2 doc: update documentation.
- add documentation for platform checker.
- finish documentation of encoding helper.
2024-07-05 09:18:31 +08:00
yyc12345 1f04e23092 doc: update documentation for encoding helper 2024-07-04 20:26:59 +08:00
yyc12345 06e75924f1 doc: update documentation for dialog helper 2024-07-03 21:26:27 +08:00
yyc12345 e374575852 fix: fix issue in config manager.
- fix fwrite fread issue in config manager.
- add testbench for config manager.
- change testbench order to get better experience.
2024-07-03 10:14:17 +08:00
yyc12345 e2a582e7d2 dox: add WinImport pair documentation 2024-07-02 16:31:28 +08:00
yyc12345 588946583c feat: add universal config manager implementation. 2024-07-02 10:52:24 +08:00
yyc12345 e1823d4b8e feat: add new split function reducing memory cost.
- add a new split function, SplitView which can reduce cost memory by using string view.
- add a new testbench for split function for testing empty source string.
- add documentation for some string helper function.
- improve library encoding documentation.
2024-06-29 17:39:13 +08:00
yyc12345 23b4da95ce fix: fix bug caused by refactor 2024-06-28 16:30:21 +08:00
yyc12345 e5b6e8c6c3 refactor: refactor testbench for UTF8 string. fix refactor bug 2024-06-28 16:24:27 +08:00
yyc12345 ccb729c718 refactor: update all modules for UTF8 string. waiting for debugging 2024-06-28 15:46:58 +08:00
yyc12345 44dbbb1c99 refactor: refactor string helper for UTF8 string 2024-06-28 14:44:39 +08:00