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");

Reply via email to