Skip to content

Releases: abin-z/inifile

v1.0.0

28 Feb 15:02

Choose a tag to compare

Release Notes for v1.0.0

🛠️ Improvements

  • Fixed a bug where delimiter.empty() could cause an infinite loop.
  • Added the as_to feature.
  • Optimized CMakeLists.txt so that when inifile is used as a third-party library, tests and examples are not built, and find_package works after installation.
  • Fixed conflicts with min/max macros in Windows headers.
  • Fixed known issues and improved code structure.

🔍 Testing

  • Expanded unit tests using the Catch2 framework to cover new features and edge cases.
  • Verified memory safety with Valgrind, ensuring no leaks or invalid accesses.

📄 Documentation

  • Updated API documentation to include new features and improvements.

Full Changelog: v0.9.9...v1.0.0


🛠️ 改进

  • 修复delimiter.empty()会死循环的bug.
  • 添加as_to功能.
  • 优化CMakeLists, 当inifile作为三方库时不编译test和example, 并支持安装后使用 find_package.
  • 修复与Windows头文件中 min/max 宏冲突问题.
  • 修复已知问题, 优化代码结构.

🔍 测试

  • 扩展了Catch2 框架单元测试,覆盖新增功能和边界情况。
  • 使用 Valgrind 验证内存安全性,确保无内存泄漏或非法访问。

📄 文档

  • 更新了 API 文档,涵盖新增功能和改进。

修改提交日志: v0.9.9...v1.0.0

v0.9.9

25 May 07:56

Choose a tag to compare

Release Notes for v0.9.9

🛠️ Improvements

  • Optimize the writing of user-defined types, INIFILE_TYPE_CONVERTER uses static encode and decode functions
  • Add inline keywords to global functions to avoid ODR (One Definition Rule) problems
  • Optimize inifile functions to improve efficiency and correctness
  • Introduce catch2-v2 test framework into the project as a git submodule
  • Write shell scripts to facilitate memory leak testing

🔍 Testing

  • Expanded Catch2 framework unit testing to cover new features and edge cases.
  • Use Valgrind to verify memory safety to ensure no memory leaks or illegal access.

📄 Documentation

  • Updated API documentation to cover new features and improvements.

Modified commit log: v0.9.8...v0.9.9


🛠️ 改进

  • 优化用户自定义类型写法, INIFILE_TYPE_CONVERTER 使用static的encodedecode函数
  • 全局函数添加inline关键字, 避免ODR(One Definition Rule)问题
  • 优化inifile的函数, 提升效率和正确性
  • 将catch2-v2测试框架作为git submodule引入项目
  • 编写shell脚本, 方便测试内存泄漏

🔍 测试

  • 扩展了Catch2 框架单元测试,覆盖新增功能和边界情况。
  • 使用 Valgrind 验证内存安全性,确保无内存泄漏或非法访问。

📄 文档

  • 更新了 API 文档,涵盖新增功能和改进。

修改提交日志: v0.9.8...v0.9.9

v0.9.8

15 May 16:01

Choose a tag to compare

Release version v0.9.8

添加ini::comment类, 方便管理ini配置中的注释

v0.9.7

07 May 12:45

Choose a tag to compare

Release Notes for v0.9.7

🛠️ Improvements

  • Improved floating point precision to ensure that precision is not truncated when working with floating point numbers.
  • Hand-write move and copy semantic functions to ensure cross-platform consistency
  • Ensure that the content of any class object is cleared after moving it

🐞 Fixes

  • Resolve bug where self-moving assignments would result in double free.

🔍 Testing

  • Extend unit tests with the Catch2 framework to cover new features and edge cases.
  • Verify memory safety using Valgrind to ensure no memory leaks or illegal accesses.

📄 Documentation

  • Updated API documentation to cover new features and improvements.

Full Changelog: v0.9.5...v0.9.7


🛠️ 改进

  • 提升浮点精度, 保证处理浮点数时不截断精度
  • 手写move和copy语义函数, 保证跨平台一致性
  • 确保任何类对象被move后, 类中内容将被清空

🐞 修复

  • 解决自移动赋值会导致double free的缺陷。

🔍 测试

  • 使用 Catch2 框架扩展了单元测试,覆盖新增功能和边界情况。
  • 使用 Valgrind 验证内存安全性,确保无内存泄漏或非法访问。

📄 文档

  • 更新了 API 文档,涵盖新增功能和改进。

修改提交日志: v0.9.5...v0.9.7

v0.9.5

15 Apr 12:29

Choose a tag to compare

Release version 0.9.5

changes:

  • Fix: Resolved issues caused by missing header files.
  • Feature Enhancement: The ini::split function now supports using a string as a delimiter, making it easier to write custom decode functions.
  • New Feature: Introduced the ini::join utility function to simplify the implementation of custom encode functions.
  • Code Formatting: Reformatted the code for improved readability.

变化:

  • 修复:解决了头文件缺失导致的编译错误。
  • 功能扩展ini::split 函数新增支持使用字符串作为切割符,方便自定义类型的 decode 函数编写。
  • 新功能:新增 ini::join 工具函数,简化自定义类型 encode 函数的编写。
  • 代码格式化:对代码进行格式化,提升可读性。

v0.9.4

10 Apr 13:38

Choose a tag to compare

v0.9.4

changes: Add case insensitive feature

  • Support case insensitivity: Provides optional case insensitivity (for section and key)
  • use ini::case_insensitive_inifile, please Click to view details

Full Changelog: v0.9.3...v0.9.4

v0.9.3

30 Mar 08:42

Choose a tag to compare

Release version v0.9.3

Support custom type conversion function(支持自定义类型转换功能)

Custom type conversion: You can customize type conversion, inifile will automatically convert according to the definition you wrote (reduce duplication)
The following are custom rules:

  1. Use the INIFILE_TYPE_CONVERTER macro to specialize the custom type (Must have a default constructor);
  2. Define encode function, which is used to define how to convert custom types into ini storage strings (the storage string cannot contain newlines);
  3. Define decode function, which is used to define how to convert the ini storage string into a custom type;

v0.9.2

24 Mar 13:52

Choose a tag to compare

Release version v0.9.2

Biggest changes: Support ini comment function(支持ini注释功能)

Support Comment: Supports [section] and key=value line comments (; or #) (end-of-line comments are not supported), and can retain the comment information in the data source.

  • add set_comment()function, Set section or key-value pairs comment, overwrite mode.
  • add add_comment()function, Add section or key-value pairs comment, append mode.
  • add clear_comment()function, clear section or key-value pairs comment.

v0.9.1

21 Mar 11:03

Choose a tag to compare

Release version v0.9.1

Better support for iterator functions(更好的支持迭代器功能)
Added the following features:

  • add empty() function: Determines whether there is no element, returns true if there is no element
  • add count() function: Returns how many elements have the specified key
  • add find() function: Find the iterator of the specified element, if it does not exist, return the end iterator
  • add erase() fucction: Deletes the section or key-value of the specified iterator (including all its elements)

v0.9.0 - Initial release

17 Mar 13:35

Choose a tag to compare

Initial release of inifile library

Features

  • Lightweight & Dependency-Free: Only relies on the C++11 standard library, no additional dependencies required.
  • Easy Integration: Header-only design, ready to use out of the box.
  • Intuitive API: Provides a clear and user-friendly interface to simplify INI file operations.
  • Comprehensive Support: Allows reading, modifying, and writing INI data to files.
  • Multiple Data Sources: Supports parsing INI data from std::string or std::istream and writing back to them.
  • Automatic Type Conversion: Supports multiple data types with seamless type conversion.