Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package inih for openSUSE:Factory checked in at 2025-08-16 20:37:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/inih (Old) and /work/SRC/openSUSE:Factory/.inih.new.1085 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "inih" Sat Aug 16 20:37:09 2025 rev:10 rq:1299860 version:61 Changes: -------- --- /work/SRC/openSUSE:Factory/inih/inih.changes 2025-04-08 17:50:26.988530735 +0200 +++ /work/SRC/openSUSE:Factory/.inih.new.1085/inih.changes 2025-08-16 20:38:45.838699565 +0200 @@ -1,0 +2,8 @@ +Fri Aug 15 12:00:00 UTC 2025 - Matthias Bach <[email protected]> - 61 + +- Update to version 61 + * Add ini_parse_string_length() that avoids internal strlen(). + * Fix bug where name only options are not processed after an + error has occurred. + +------------------------------------------------------------------- Old: ---- inih-r59.tar.gz New: ---- inih-r61.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ inih.spec ++++++ --- /var/tmp/diff_new_pack.ubpZs6/_old 2025-08-16 20:38:46.474725902 +0200 +++ /var/tmp/diff_new_pack.ubpZs6/_new 2025-08-16 20:38:46.474725902 +0200 @@ -18,7 +18,7 @@ Name: inih -Version: 59 +Version: 61 Release: 0 Summary: Simple .INI file parser in C, good for embedded systems License: BSD-3-Clause ++++++ inih-r59.tar.gz -> inih-r61.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/.gitattributes new/inih-r61/.gitattributes --- old/inih-r59/.gitattributes 1970-01-01 01:00:00.000000000 +0100 +++ new/inih-r61/.gitattributes 2025-07-25 10:33:07.000000000 +0200 @@ -0,0 +1,2 @@ +# Ensure MSVC CI tests with the same line endings that are used in the tarball +/tests/baseline_*.txt eol=lf diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/.github/workflows/tests.yml new/inih-r61/.github/workflows/tests.yml --- old/inih-r59/.github/workflows/tests.yml 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/.github/workflows/tests.yml 2025-07-25 10:33:07.000000000 +0200 @@ -31,3 +31,13 @@ with: action: test meson-version: 1.4.1 + build-meson-msvc: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + - uses: BSFishy/[email protected] + with: + action: test + meson-version: 1.4.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/cpp/INIReader.cpp new/inih-r61/cpp/INIReader.cpp --- old/inih-r59/cpp/INIReader.cpp 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/cpp/INIReader.cpp 2025-07-25 10:33:07.000000000 +0200 @@ -24,8 +24,7 @@ INIReader::INIReader(const char *buffer, size_t buffer_size) { - string content(buffer, buffer_size); - _error = ini_parse_string(content.c_str(), ValueHandler, this); + _error = ini_parse_string_length(buffer, buffer_size, ValueHandler, this); } int INIReader::ParseError() const diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/ini.c new/inih-r61/ini.c --- old/inih-r59/ini.c 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/ini.c 2025-07-25 10:33:07.000000000 +0200 @@ -44,12 +44,12 @@ size_t num_left; } ini_parse_string_ctx; -/* Strip whitespace chars off end of given string, in place. Return s. */ -static char* ini_rstrip(char* s) +/* Strip whitespace chars off end of given string, in place. end must be a + pointer to the NUL terminator at the end of the string. Return s. */ +static char* ini_rstrip(char* s, char* end) { - char* p = s + strlen(s); - while (p > s && isspace((unsigned char)(*--p))) - *p = '\0'; + while (end > s && isspace((unsigned char)(*--end))) + *end = '\0'; return s; } @@ -178,7 +178,7 @@ start += 3; } #endif - start = ini_rstrip(ini_lskip(start)); + start = ini_rstrip(ini_lskip(start), line + offset); if (strchr(INI_START_COMMENT_PREFIXES, *start)) { /* Start-of-line comment */ @@ -187,9 +187,8 @@ else if (*prev_name && *start && start > line) { #if INI_ALLOW_INLINE_COMMENTS end = ini_find_chars_or_comment(start, NULL); - if (*end) - *end = '\0'; - ini_rstrip(start); + *end = '\0'; + ini_rstrip(start, end); #endif /* Non-blank line with leading whitespace, treat as continuation of previous name's value (as per Python configparser). */ @@ -221,15 +220,14 @@ end = ini_find_chars_or_comment(start, "=:"); if (*end == '=' || *end == ':') { *end = '\0'; - name = ini_rstrip(start); + name = ini_rstrip(start, end); value = end + 1; #if INI_ALLOW_INLINE_COMMENTS end = ini_find_chars_or_comment(value, NULL); - if (*end) - *end = '\0'; + *end = '\0'; #endif value = ini_lskip(value); - ini_rstrip(value); + ini_rstrip(value, end); #if INI_ALLOW_MULTILINE ini_strncpy0(prev_name, name, sizeof(prev_name)); @@ -238,15 +236,16 @@ if (!HANDLER(user, section, name, value) && !error) error = lineno; } - else if (!error) { + else { /* No '=' or ':' found on name[=:]value line */ #if INI_ALLOW_NO_VALUE *end = '\0'; - name = ini_rstrip(start); + name = ini_rstrip(start, end); if (!HANDLER(user, section, name, NULL) && !error) error = lineno; #else - error = lineno; + if (!error) + error = lineno; #endif } } @@ -313,10 +312,16 @@ /* See documentation in header file. */ int ini_parse_string(const char* string, ini_handler handler, void* user) { + return ini_parse_string_length(string, strlen(string), handler, user); +} + +/* See documentation in header file. */ +int ini_parse_string_length(const char* string, size_t length, + ini_handler handler, void* user) { ini_parse_string_ctx ctx; ctx.ptr = string; - ctx.num_left = strlen(string); + ctx.num_left = length; return ini_parse_stream((ini_reader)ini_reader_string, &ctx, handler, user); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/ini.h new/inih-r61/ini.h --- old/inih-r59/ini.h 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/ini.h 2025-07-25 10:33:07.000000000 +0200 @@ -92,10 +92,15 @@ void* user); /* Same as ini_parse(), but takes a zero-terminated string with the INI data -instead of a file. Useful for parsing INI data from a network socket or -already in memory. */ + instead of a file. Useful for parsing INI data from a network socket or + which is already in memory. */ INI_API int ini_parse_string(const char* string, ini_handler handler, void* user); +/* Same as ini_parse_string(), but takes a string and its length, avoiding + strlen(). Useful for parsing INI data from a network socket or which is + already in memory, or interfacing with C++ std::string_view. */ +INI_API int ini_parse_string_length(const char* string, size_t length, ini_handler handler, void* user); + /* Nonzero to allow multi-line value parsing, in the style of Python's configparser. If allowed, ini_parse() will call the handler with the same name for each subsequent line parsed. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/meson.build new/inih-r61/meson.build --- old/inih-r59/meson.build 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/meson.build 2025-07-25 10:33:07.000000000 +0200 @@ -1,7 +1,7 @@ project('inih', ['c'], license : 'BSD-3-Clause', - version : '58', + version : '61', default_options : ['cpp_std=c++11'], meson_version: '>=0.56.0' ) @@ -99,11 +99,16 @@ include_directories : inc_inih ) -subdir('tests') +if get_option('tests') + subdir('tests') +endif #### INIReader #### if get_option('with_INIReader') - add_languages('cpp') + add_languages( + 'cpp', + native : false + ) inc_INIReader = include_directories('cpp') src_INIReader = files(join_paths('cpp', 'INIReader.cpp')) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/meson_options.txt new/inih-r61/meson_options.txt --- old/inih-r59/meson_options.txt 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/meson_options.txt 2025-07-25 10:33:07.000000000 +0200 @@ -73,3 +73,8 @@ value : false, description : 'allow initial malloc size to grow to max line length (when using the heap)' ) +option('tests', + type : 'boolean', + value : true, + description : 'build the test suite (noisy)' +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/baseline_allow_no_value.txt new/inih-r61/tests/baseline_allow_no_value.txt --- old/inih-r59/tests/baseline_allow_no_value.txt 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/baseline_allow_no_value.txt 2025-07-25 10:33:07.000000000 +0200 @@ -72,3 +72,16 @@ ... [_123456789_123456789_123456789_123456789_12345678] ... name=value; long_section.ini: e=0 user=110 +... [width = 18] +... _123456789=1234567; +... [width = 19] +... _123456789=12345678; +... [width = 20] +... _123456789=123456789; +... [2 assigns] +... _123456789=12345678name=value; +... [no trailing \n] +... _123456782=12345678; +long_line.ini: e=0 user=111 +... name; +name_only_after_error.ini: e=5 user=112 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/baseline_call_handler_on_new_section.txt new/inih-r61/tests/baseline_call_handler_on_new_section.txt --- old/inih-r59/tests/baseline_call_handler_on_new_section.txt 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/baseline_call_handler_on_new_section.txt 2025-07-25 10:33:07.000000000 +0200 @@ -70,3 +70,15 @@ ... [_123456789_123456789_123456789_123456789_12345678] ... name=value; long_section.ini: e=0 user=110 +... [width = 18] +... _123456789=1234567; +... [width = 19] +... _123456789=12345678; +... [width = 20] +... _123456789=123456789; +... [2 assigns] +... _123456789=12345678name=value; +... [no trailing \n] +... _123456782=12345678; +long_line.ini: e=0 user=111 +name_only_after_error.ini: e=5 user=111 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/baseline_disallow_inline_comments.txt new/inih-r61/tests/baseline_disallow_inline_comments.txt --- old/inih-r59/tests/baseline_disallow_inline_comments.txt 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/baseline_disallow_inline_comments.txt 2025-07-25 10:33:07.000000000 +0200 @@ -68,3 +68,15 @@ ... [_123456789_123456789_123456789_123456789_12345678] ... name=value; long_section.ini: e=0 user=110 +... [width = 18] +... _123456789=1234567; +... [width = 19] +... _123456789=12345678; +... [width = 20] +... _123456789=123456789; +... [2 assigns] +... _123456789=12345678name=value; +... [no trailing \n] +... _123456782=12345678; +long_line.ini: e=0 user=111 +name_only_after_error.ini: e=5 user=111 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/baseline_handler_lineno.txt new/inih-r61/tests/baseline_handler_lineno.txt --- old/inih-r59/tests/baseline_handler_lineno.txt 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/baseline_handler_lineno.txt 2025-07-25 10:33:07.000000000 +0200 @@ -67,3 +67,15 @@ ... [_123456789_123456789_123456789_123456789_12345678] ... name=value; line 3 long_section.ini: e=0 user=110 +... [width = 18] +... _123456789=1234567; line 7 +... [width = 19] +... _123456789=12345678; line 10 +... [width = 20] +... _123456789=123456789; line 13 +... [2 assigns] +... _123456789=12345678name=value; line 16 +... [no trailing \n] +... _123456782=12345678; line 23 +long_line.ini: e=0 user=111 +name_only_after_error.ini: e=5 user=111 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/baseline_heap.txt new/inih-r61/tests/baseline_heap.txt --- old/inih-r59/tests/baseline_heap.txt 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/baseline_heap.txt 2025-07-25 10:33:07.000000000 +0200 @@ -67,3 +67,15 @@ ... [_123456789_123456789_123456789_123456789_12345678] ... name=value; long_section.ini: e=0 user=110 +... [width = 18] +... _123456789=1234567; +... [width = 19] +... _123456789=12345678; +... [width = 20] +... _123456789=123456789; +... [2 assigns] +... _123456789=12345678name=value; +... [no trailing \n] +... _123456782=12345678; +long_line.ini: e=0 user=111 +name_only_after_error.ini: e=5 user=111 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/baseline_heap_max_line.txt new/inih-r61/tests/baseline_heap_max_line.txt --- old/inih-r59/tests/baseline_heap_max_line.txt 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/baseline_heap_max_line.txt 2025-07-25 10:33:07.000000000 +0200 @@ -66,3 +66,15 @@ no_value.ini: e=2 user=109 ... name=value; long_section.ini: e=1 user=110 +... [width = 18] +... _123456789=1234567; +... [width = 19] +... _123456789=12345678; +... [width = 20] +... _123456789=12345678; +... [2 assigns] +... _123456789=12345678; +... [no trailing \n] +... _123456782=12345678; +long_line.ini: e=10 user=111 +name_only_after_error.ini: e=1 user=111 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/baseline_heap_realloc.txt new/inih-r61/tests/baseline_heap_realloc.txt --- old/inih-r59/tests/baseline_heap_realloc.txt 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/baseline_heap_realloc.txt 2025-07-25 10:33:07.000000000 +0200 @@ -67,3 +67,15 @@ ... [_123456789_123456789_123456789_123456789_12345678] ... name=value; long_section.ini: e=0 user=110 +... [width = 18] +... _123456789=1234567; +... [width = 19] +... _123456789=12345678; +... [width = 20] +... _123456789=123456789; +... [2 assigns] +... _123456789=12345678name=value; +... [no trailing \n] +... _123456782=12345678; +long_line.ini: e=0 user=111 +name_only_after_error.ini: e=5 user=111 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/baseline_heap_realloc_max_line.txt new/inih-r61/tests/baseline_heap_realloc_max_line.txt --- old/inih-r59/tests/baseline_heap_realloc_max_line.txt 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/baseline_heap_realloc_max_line.txt 2025-07-25 10:33:07.000000000 +0200 @@ -66,3 +66,15 @@ no_value.ini: e=2 user=109 ... name=value; long_section.ini: e=1 user=110 +... [width = 18] +... _123456789=1234567; +... [width = 19] +... _123456789=12345678; +... [width = 20] +... _123456789=12345678; +... [2 assigns] +... _123456789=12345678; +... [no trailing \n] +... _123456782=12345678; +long_line.ini: e=10 user=111 +name_only_after_error.ini: e=1 user=111 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/baseline_multi.txt new/inih-r61/tests/baseline_multi.txt --- old/inih-r59/tests/baseline_multi.txt 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/baseline_multi.txt 2025-07-25 10:33:07.000000000 +0200 @@ -67,3 +67,15 @@ ... [_123456789_123456789_123456789_123456789_12345678] ... name=value; long_section.ini: e=0 user=110 +... [width = 18] +... _123456789=1234567; +... [width = 19] +... _123456789=12345678; +... [width = 20] +... _123456789=123456789; +... [2 assigns] +... _123456789=12345678name=value; +... [no trailing \n] +... _123456782=12345678; +long_line.ini: e=0 user=111 +name_only_after_error.ini: e=5 user=111 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/baseline_multi_max_line.txt new/inih-r61/tests/baseline_multi_max_line.txt --- old/inih-r59/tests/baseline_multi_max_line.txt 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/baseline_multi_max_line.txt 2025-07-25 10:33:07.000000000 +0200 @@ -66,3 +66,15 @@ no_value.ini: e=2 user=109 ... name=value; long_section.ini: e=1 user=110 +... [width = 18] +... _123456789=1234567; +... [width = 19] +... _123456789=12345678; +... [width = 20] +... _123456789=12345678; +... [2 assigns] +... _123456789=12345678; +... [no trailing \n] +... _123456782=12345678; +long_line.ini: e=10 user=111 +name_only_after_error.ini: e=1 user=111 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/baseline_single.txt new/inih-r61/tests/baseline_single.txt --- old/inih-r59/tests/baseline_single.txt 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/baseline_single.txt 2025-07-25 10:33:07.000000000 +0200 @@ -62,3 +62,15 @@ ... [_123456789_123456789_123456789_123456789_12345678] ... name=value; long_section.ini: e=0 user=110 +... [width = 18] +... _123456789=1234567; +... [width = 19] +... _123456789=12345678; +... [width = 20] +... _123456789=123456789; +... [2 assigns] +... _123456789=12345678name=value; +... [no trailing \n] +... _123456782=12345678; +long_line.ini: e=0 user=111 +name_only_after_error.ini: e=5 user=111 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/baseline_stop_on_first_error.txt new/inih-r61/tests/baseline_stop_on_first_error.txt --- old/inih-r59/tests/baseline_stop_on_first_error.txt 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/baseline_stop_on_first_error.txt 2025-07-25 10:33:07.000000000 +0200 @@ -61,3 +61,15 @@ ... [_123456789_123456789_123456789_123456789_12345678] ... name=value; long_section.ini: e=0 user=110 +... [width = 18] +... _123456789=1234567; +... [width = 19] +... _123456789=12345678; +... [width = 20] +... _123456789=123456789; +... [2 assigns] +... _123456789=12345678name=value; +... [no trailing \n] +... _123456782=12345678; +long_line.ini: e=0 user=111 +name_only_after_error.ini: e=5 user=111 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/long_line.ini new/inih-r61/tests/long_line.ini --- old/inih-r59/tests/long_line.ini 1970-01-01 01:00:00.000000000 +0100 +++ new/inih-r61/tests/long_line.ini 2025-07-25 10:33:07.000000000 +0200 @@ -0,0 +1,23 @@ +# These tests are +# only interesting +# when +# INI_MAX_LINE=20 + +[width = 18] +_123456789=1234567 + +[width = 19] +_123456789=12345678 + +[width = 20] +_123456789=123456789 + +[2 assigns] +_123456789=12345678name=value + +[no trailing \n] +# trigger a false +# positive in the +# incomplete line +# detection +_123456782=12345678 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/meson.build new/inih-r61/tests/meson.build --- old/inih-r59/tests/meson.build 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/meson.build 2025-07-25 10:33:07.000000000 +0200 @@ -1,4 +1,7 @@ -runtest = files(join_paths(meson.project_source_root(), 'tests', 'runtest.sh')) +runtest = find_program('runtest.sh', required: false) +if not runtest.found() + subdir_done() +endif tests = { 'multi': { 'args': [] }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/name_only_after_error.ini new/inih-r61/tests/name_only_after_error.ini --- old/inih-r59/tests/name_only_after_error.ini 1970-01-01 01:00:00.000000000 +0100 +++ new/inih-r61/tests/name_only_after_error.ini 2025-07-25 10:33:07.000000000 +0200 @@ -0,0 +1,8 @@ +; Test case to ensure name only options are still processed after an error if +; INI_ALLOW_NO_VALUE is set. + +; Deliberately cause an error due to unterminated section. +[broken + +; This should still be processed (unless INI_STOP_ON_FIRST_ERROR is set). +name diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/runtest.sh new/inih-r61/tests/runtest.sh --- old/inih-r59/tests/runtest.sh 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/runtest.sh 2025-07-25 10:33:07.000000000 +0200 @@ -1,6 +1,6 @@ -#!/usr/bin/env bash +#!/bin/sh -set -euo pipefail +set -eu cd "$(dirname "${1}")" -diff "${1}" <("${2}") +"$2" | diff "${1}" - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/unittest.c new/inih-r61/tests/unittest.c --- old/inih-r59/tests/unittest.c 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/unittest.c 2025-07-25 10:33:07.000000000 +0200 @@ -13,6 +13,10 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#ifdef _WIN32 +#include <io.h> +#include <fcntl.h> +#endif #include "../ini.h" int User; @@ -43,7 +47,7 @@ #endif if (!value) { - // Happens when INI_ALLOW_NO_VALUE=1 and line has no value (no '=' or ':') + /* Happens when INI_ALLOW_NO_VALUE=1 and line has no value (no '=' or ':') */ return 1; } @@ -62,6 +66,9 @@ int main(void) { +#ifdef _WIN32 + _setmode(_fileno(stdout), _O_BINARY); +#endif parse("no_file.ini"); parse("normal.ini"); parse("bad_section.ini"); @@ -73,5 +80,7 @@ parse("duplicate_sections.ini"); parse("no_value.ini"); parse("long_section.ini"); + parse("long_line.ini"); + parse("name_only_after_error.ini"); return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/unittest_alloc.c new/inih-r61/tests/unittest_alloc.c --- old/inih-r59/tests/unittest_alloc.c 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/unittest_alloc.c 2025-07-25 10:33:07.000000000 +0200 @@ -3,6 +3,10 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#ifdef _WIN32 +#include <io.h> +#include <fcntl.h> +#endif #include "../ini.h" void* ini_malloc(size_t size) { @@ -44,6 +48,9 @@ int main(void) { +#ifdef _WIN32 + _setmode(_fileno(stdout), _O_BINARY); +#endif parse("basic", "[section]\nfoo = bar\nbazz = buzz quxx"); return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inih-r59/tests/unittest_string.c new/inih-r61/tests/unittest_string.c --- old/inih-r59/tests/unittest_string.c 2025-03-30 01:08:22.000000000 +0100 +++ new/inih-r61/tests/unittest_string.c 2025-07-25 10:33:07.000000000 +0200 @@ -3,6 +3,10 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#ifdef _WIN32 +#include <io.h> +#include <fcntl.h> +#endif #include "../ini.h" int User; @@ -33,6 +37,9 @@ int main(void) { +#ifdef _WIN32 + _setmode(_fileno(stdout), _O_BINARY); +#endif parse("empty string", ""); parse("basic", "[section]\nfoo = bar\nbazz = buzz quxx"); parse("crlf", "[section]\r\nhello = world\r\nforty_two = 42\r\n");
