Hello community, here is the log from the commit of package libeconf for openSUSE:Factory checked in at 2020-06-07 21:34:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libeconf (Old) and /work/SRC/openSUSE:Factory/.libeconf.new.3606 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libeconf" Sun Jun 7 21:34:02 2020 rev:7 rq:811882 version:0.3.7+git20200605.c67ef9a Changes: -------- --- /work/SRC/openSUSE:Factory/libeconf/libeconf.changes 2020-02-15 22:21:33.783184593 +0100 +++ /work/SRC/openSUSE:Factory/.libeconf.new.3606/libeconf.changes 2020-06-07 21:34:07.132651373 +0200 @@ -1,0 +2,23 @@ +Fri Jun 05 15:57:26 UTC 2020 - rbr...@suse.com + +- Update to version 0.3.7+git20200605.c67ef9a: + * Fix build on i586 + +------------------------------------------------------------------- +Thu Jun 04 11:05:02 UTC 2020 - rbr...@suse.com + +- Update to version 0.3.6+git20200529.276359f: + * Package meson files with autotools + * Use newer version of actions/checkout + * Add actions for meson + * Create meson.yml + * Use meson source root for tests configuration files + * Add additional compiler warnings + * First useable meson build support including unit tests + * Add global options, build with pie and GNU_SOURCE + * Fix name of library, add example binary + * add support for meson + * Add C++ compatibility + * Add test case for crash with empty value keys + +------------------------------------------------------------------- Old: ---- libeconf-0.3.5+git20200203.3144b69.tar.xz New: ---- libeconf-0.3.7+git20200605.c67ef9a.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libeconf.spec ++++++ --- /var/tmp/diff_new_pack.Od5pwj/_old 2020-06-07 21:34:07.784653440 +0200 +++ /var/tmp/diff_new_pack.Od5pwj/_new 2020-06-07 21:34:07.784653440 +0200 @@ -18,7 +18,7 @@ %define lname libeconf0 Name: libeconf -Version: 0.3.5+git20200203.3144b69 +Version: 0.3.7+git20200605.c67ef9a Release: 0 Summary: Enhanced config file parser ala systemd License: LGPL-2.1-or-later @@ -26,10 +26,7 @@ URL: https://github.com/openSUSE/libeconf Source: libeconf-%{version}.tar.xz Source2: baselibs.conf -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: libtool -BuildRequires: pkgconfig +BuildRequires: meson %description Enhanced config file parser, which merges config files placed @@ -57,15 +54,14 @@ %setup -q %build -./autogen.sh -%configure --disable-static +%meson +%meson_build %install -%make_install -rm -fv %{buildroot}%{_libdir}/libeconf.la +%meson_install %check -make check +%meson_test %post -n %{lname} -p /sbin/ldconfig %postun -n %{lname} -p /sbin/ldconfig ++++++ _service ++++++ --- /var/tmp/diff_new_pack.Od5pwj/_old 2020-06-07 21:34:07.812653529 +0200 +++ /var/tmp/diff_new_pack.Od5pwj/_new 2020-06-07 21:34:07.812653529 +0200 @@ -1,7 +1,7 @@ <services> <service name="tar_scm" mode="disabled"> - <param name="version">0.3.5</param> - <param name="versionformat">0.3.5+git%cd.%h</param> + <param name="version">0.3.7</param> + <param name="versionformat">0.3.7+git%cd.%h</param> <param name="url">git://github.com/openSUSE/libeconf.git</param> <param name="scm">git</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.Od5pwj/_old 2020-06-07 21:34:07.832653592 +0200 +++ /var/tmp/diff_new_pack.Od5pwj/_new 2020-06-07 21:34:07.832653592 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">git://github.com/openSUSE/libeconf.git</param> - <param name="changesrevision">3144b69a1876296f5e6d1c2e6be24cd149561ddf</param> + <param name="changesrevision">37e14ba22a59b94ab2d43cdf2ffcb8e8732c9577</param> </service> </servicedata> \ No newline at end of file ++++++ libeconf-0.3.5+git20200203.3144b69.tar.xz -> libeconf-0.3.7+git20200605.c67ef9a.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/.github/workflows/ccpp.yml new/libeconf-0.3.7+git20200605.c67ef9a/.github/workflows/ccpp.yml --- old/libeconf-0.3.5+git20200203.3144b69/.github/workflows/ccpp.yml 2020-02-03 17:16:31.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/.github/workflows/ccpp.yml 2020-06-05 17:55:16.000000000 +0200 @@ -8,7 +8,7 @@ runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 - name: autogen.sh run: ./autogen.sh - name: configure with checks diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/.github/workflows/meson-build.yml new/libeconf-0.3.7+git20200605.c67ef9a/.github/workflows/meson-build.yml --- old/libeconf-0.3.5+git20200203.3144b69/.github/workflows/meson-build.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/.github/workflows/meson-build.yml 2020-06-05 17:55:16.000000000 +0200 @@ -0,0 +1,15 @@ +name: meson build + +on: [push, pull_request] + +jobs: + build: + + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v1 + - uses: BSFishy/meson-build@v1.0.1 + with: + action: build + options: --verbose diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/.github/workflows/meson-test.yml new/libeconf-0.3.7+git20200605.c67ef9a/.github/workflows/meson-test.yml --- old/libeconf-0.3.5+git20200203.3144b69/.github/workflows/meson-test.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/.github/workflows/meson-test.yml 2020-06-05 17:55:16.000000000 +0200 @@ -0,0 +1,15 @@ +name: meson test + +on: [push, pull_request] + +jobs: + build: + + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v1 + - uses: BSFishy/meson-build@v1.0.1 + with: + action: test + options: --verbose diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/Makefile.am new/libeconf-0.3.7+git20200605.c67ef9a/Makefile.am --- old/libeconf-0.3.5+git20200203.3144b69/Makefile.am 2020-02-03 17:16:31.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/Makefile.am 2020-06-05 17:55:16.000000000 +0200 @@ -6,4 +6,4 @@ CLEANFILES = *~ -EXTRA_DIST = LICENSE README.md TODO.md +EXTRA_DIST = LICENSE README.md TODO.md meson.build README.meson diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/README.meson new/libeconf-0.3.7+git20200605.c67ef9a/README.meson --- old/libeconf-0.3.5+git20200203.3144b69/README.meson 1970-01-01 01:00:00.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/README.meson 2020-06-05 17:55:16.000000000 +0200 @@ -0,0 +1,14 @@ +This project is using meson to build everything. + +Requirements: meson >= 0.49 + +To build and compile: + +# meson build +# ninja -C build +# ninja -C build test + +Compiler checks: + +The replacement for the old "configure --enable-compiler-checks" is +now: "meson <build> -Db_sanitize=address" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/example/example.c new/libeconf-0.3.7+git20200605.c67ef9a/example/example.c --- old/libeconf-0.3.5+git20200203.3144b69/example/example.c 2020-02-03 17:16:31.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/example/example.c 2020-06-05 17:55:16.000000000 +0200 @@ -27,6 +27,7 @@ #include <stdint.h> #include <stdio.h> #include <time.h> +#include <inttypes.h> int main(void) { @@ -46,13 +47,13 @@ econf_setInt64Value(key_file, "[Basic Types]", "Int", INT64_MAX); int64_t i64val; econf_getInt64Value(key_file, "[Basic Types]", "Int", &i64val); - printf("Int: %ld\n", i64val); + printf("Int: %" PRId64 "\n", i64val); econf_setUInt64Value(key_file, "[Basic Types]", "UInt", UINT64_MAX); uint64_t u64val; econf_getUInt64Value(key_file, "[Basic Types]", "UInt", &u64val); - printf("Unsigned Int: %lu\n", u64val); + printf("Unsigned Int: %" PRIu64 "\n", u64val); econf_setFloatValue(key_file, "[Basic Types]", "Float", M_PI); float fval; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/include/libeconf.h new/libeconf-0.3.7+git20200605.c67ef9a/include/libeconf.h --- old/libeconf-0.3.5+git20200203.3144b69/include/libeconf.h 2020-02-03 17:16:31.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/include/libeconf.h 2020-06-05 17:55:16.000000000 +0200 @@ -25,6 +25,10 @@ /* libeconf.h */ +#ifdef __cplusplus +extern "C" { +#endif + #include <stdbool.h> #include <stdint.h> #include <stdlib.h> @@ -151,3 +155,7 @@ // Free memory allocated by key_file extern void econf_freeFile(econf_file *key_file); + +#ifdef __cplusplus +} +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/meson.build new/libeconf-0.3.7+git20200605.c67ef9a/meson.build --- old/libeconf-0.3.5+git20200203.3144b69/meson.build 1970-01-01 01:00:00.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/meson.build 2020-06-05 17:55:16.000000000 +0200 @@ -0,0 +1,86 @@ +project( + 'libeconf', + 'c', + meson_version : '>= 0.49.0', + default_options : ['buildtype=debugoptimized', + 'default_library=shared', + 'b_pie=true', + 'warning_level=3',], + license : 'MIT', + version : '0.3.5', +) + +cc = meson.get_compiler('c') +pkg = import('pkgconfig') +inc = include_directories('include') + +add_project_arguments(['-D_GNU_SOURCE=1', + '-DXTSTRINGDEFINES', + '-D_FORTIFY_SOURCE=2'], language : 'c') + +possible_cc_flags = [ + '-Werror', + '-fstack-protector-strong', + '-funwind-tables', + '-fasynchronous-unwind-tables', + '-fstack-clash-protection', + '-Werror=return-type', + '-flto=8', + '-Wbad-function-cast', + '-Wcast-align', + '-Wcast-qual', + '-Winline', + '-Wmissing-declarations', + '-Wmissing-prototypes', + '-Wnested-externs', + '-Wshadow', + '-Wstrict-prototypes', + '-Wundef', + ] +add_project_arguments(cc.get_supported_arguments(possible_cc_flags), language : 'c') + +libeconf_src = files( + 'lib/econf_errString.c', + 'lib/get_value_def.c', + 'lib/getfilecontents.c', + 'lib/helpers.c', + 'lib/keyfile.c', + 'lib/libeconf.c', + 'lib/mergefiles.c', +) +example_src = ['example/example.c'] + +mapfile = 'lib/libeconf.map' +version_flag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile) + +lib = library( + 'econf', + libeconf_src, + include_directories : inc, + install : true, + link_args : version_flag, + link_depends : mapfile, + version : meson.project_version(), + soversion : '0', +) + +install_headers('include/libeconf.h') + +pkg.generate( + lib, + name : 'libeconf', + description : 'highly flexible library to manage key=value configuration files', + version : meson.project_version(), +) + +libeconf_dep = declare_dependency( + link_with : lib, + include_directories : inc, +) + +# Example + +executable('example', example_src, dependencies : libeconf_dep) + +# Unit tests +subdir('tests') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/tests/Makefile.am new/libeconf-0.3.7+git20200605.c67ef9a/tests/Makefile.am --- old/libeconf-0.3.5+git20200203.3144b69/tests/Makefile.am 2020-02-03 17:16:31.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/tests/Makefile.am 2020-06-05 17:55:16.000000000 +0200 @@ -4,11 +4,13 @@ CLEANFILES = *~ -EXTRA_DIST = tst-arguments-data tst-logindefs1-data tst-logindefs2-data \ +EXTRA_DIST = meson.build \ + tst-arguments-data tst-logindefs1-data tst-logindefs2-data \ tst-merge1-data tst-merge2-data tst-merge3-data tst-merge4-data \ tst-merge5-data \ tst-getconfdirs1-data tst-getconfdirs3-data \ tst-getconfdirs4-data tst-getconfdirs5-data tst-getconfdirs6-data \ + tst-getconfdirs7-data \ tst-arguments5-data tst-groups3-data tst-parseconfig-data \ tst-quote1-data @@ -19,6 +21,7 @@ tst-arguments5 \ tst-getconfdirs1 tst-getconfdirs2 tst-getconfdirs3 \ tst-getconfdirs4 tst-getconfdirs5 tst-getconfdirs6 \ + tst-getconfdirs7 \ tst-econf_errstring1 \ tst-setgetvalues1 \ tst-groups1 tst-groups2 tst-groups3 tst-groups4 \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/tests/meson.build new/libeconf-0.3.7+git20200605.c67ef9a/tests/meson.build --- old/libeconf-0.3.5+git20200203.3144b69/tests/meson.build 1970-01-01 01:00:00.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/tests/meson.build 2020-06-05 17:55:16.000000000 +0200 @@ -0,0 +1,79 @@ +# This file builds and runs the unit tests + +testdir = join_paths(meson.source_root(), 'tests/') +test_args = ['-DTESTSDIR="' + testdir + '"'] + +tst_filedoesnotexit1_exe = executable('tst-filedoesnotexit1', 'tst-filedoesnotexit1.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-filedoesnotexit1', tst_filedoesnotexit1_exe) + + +tst_merge1_exe = executable('tst-merge1', 'tst-merge1.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-merge1', tst_merge1_exe) +tst_merge2_exe = executable('tst-merge2', 'tst-merge2.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-merge2', tst_merge2_exe) +tst_merge3_exe = executable('tst-merge3', 'tst-merge3.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-merge3', tst_merge3_exe) +tst_merge4_exe = executable('tst-merge4', 'tst-merge4.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-merge4', tst_merge4_exe) +tst_merge5_exe = executable('tst-merge5', 'tst-merge5.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-merge5', tst_merge5_exe) + + +tst_logindefs1_exe = executable('tst-logindefs1', 'tst-logindefs1.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-logindefs1', tst_logindefs1_exe) +tst_logindefs2_exe = executable('tst-logindefs2', 'tst-logindefs2.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-logindefs2', tst_logindefs2_exe) + + +tst_arguments1_exe = executable('tst-arguments1', 'tst-arguments1.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-arguments1', tst_arguments1_exe) +tst_arguments2_exe = executable('tst-arguments2', 'tst-arguments2.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-arguments2', tst_arguments2_exe) +tst_arguments3_exe = executable('tst-arguments3', 'tst-arguments3.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-arguments3', tst_arguments3_exe) +tst_arguments4_exe = executable('tst-arguments4', 'tst-arguments4.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-arguments4', tst_arguments4_exe) +tst_arguments5_exe = executable('tst-arguments5', 'tst-arguments5.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-arguments5', tst_arguments5_exe) + + +tst_getconfdirs1_exe = executable('tst-getconfdirs1', 'tst-getconfdirs1.c', c_args: ['-DSUFFIX=".conf"', test_args], dependencies : libeconf_dep) +test('tst-getconfdirs1', tst_getconfdirs1_exe) +tst_getconfdirs2_exe = executable('tst-getconfdirs2', 'tst-getconfdirs1.c', c_args: ['-DSUFFIX="conf"', test_args], dependencies : libeconf_dep) +test('tst-getconfdirs2', tst_getconfdirs2_exe) +tst_getconfdirs3_exe = executable('tst-getconfdirs3', 'tst-getconfdirs3.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-getconfdirs3', tst_getconfdirs3_exe) +tst_getconfdirs4_exe = executable('tst-getconfdirs4', 'tst-getconfdirs4.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-getconfdirs4', tst_getconfdirs4_exe) +tst_getconfdirs5_exe = executable('tst-getconfdirs5', 'tst-getconfdirs5.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-getconfdirs5', tst_getconfdirs5_exe) +tst_getconfdirs6_exe = executable('tst-getconfdirs6', 'tst-getconfdirs6.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-getconfdirs6', tst_getconfdirs6_exe) +tst_getconfdirs7_exe = executable('tst-getconfdirs7', 'tst-getconfdirs7.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-getconfdirs7', tst_getconfdirs7_exe) + + +tst_econf_errstring1_exe = executable('tst-econf_errstring1', 'tst-econf_errstring1.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-econf_errstring1', tst_econf_errstring1_exe) + + +tst_setgetvalues1_exe = executable('tst-setgetvalues1', 'tst-setgetvalues1.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-setgetvalues1', tst_setgetvalues1_exe) + + +tst_groups1_exe = executable('tst-groups1', 'tst-groups1.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-groups1', tst_groups1_exe) +tst_groups2_exe = executable('tst-groups2', 'tst-groups2.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-groups2', tst_groups2_exe) +tst_groups3_exe = executable('tst-groups3', 'tst-groups3.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-groups3', tst_groups3_exe) +tst_groups4_exe = executable('tst-groups4', 'tst-groups4.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-groups4', tst_groups4_exe) + + +tst_parseconfig1_exe = executable('tst-parseconfig1', 'tst-parseconfig1.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-parseconfig1', tst_parseconfig1_exe) + + +tst_quote1_exe = executable('tst-quote1', 'tst-quote1.c', c_args: test_args, dependencies : libeconf_dep) +test('tst-quote1', tst_quote1_exe) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/tests/tst-getconfdirs7-data/etc/lcdnetmon.conf.d/lcd2004-ip.conf new/libeconf-0.3.7+git20200605.c67ef9a/tests/tst-getconfdirs7-data/etc/lcdnetmon.conf.d/lcd2004-ip.conf --- old/libeconf-0.3.5+git20200203.3144b69/tests/tst-getconfdirs7-data/etc/lcdnetmon.conf.d/lcd2004-ip.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/tests/tst-getconfdirs7-data/etc/lcdnetmon.conf.d/lcd2004-ip.conf 2020-06-05 17:55:16.000000000 +0200 @@ -0,0 +1,4 @@ +ROWS=4 +LINE1="eth0/eth1" +LINE2="\4{eth0}" +LINE3="\4{eth1}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/tests/tst-getconfdirs7-data/usr/etc/lcdnetmon.conf new/libeconf-0.3.7+git20200605.c67ef9a/tests/tst-getconfdirs7-data/usr/etc/lcdnetmon.conf --- old/libeconf-0.3.5+git20200203.3144b69/tests/tst-getconfdirs7-data/usr/etc/lcdnetmon.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/tests/tst-getconfdirs7-data/usr/etc/lcdnetmon.conf 2020-06-05 17:55:16.000000000 +0200 @@ -0,0 +1,7 @@ +BUSID=1 +ADDRESS=0x27 +ROWS=2 +LINE1="IP Address" +LINE2="\4{eth0}" +LINE3= +LINE4= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/tests/tst-getconfdirs7.c new/libeconf-0.3.7+git20200605.c67ef9a/tests/tst-getconfdirs7.c --- old/libeconf-0.3.5+git20200203.3144b69/tests/tst-getconfdirs7.c 1970-01-01 01:00:00.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/tests/tst-getconfdirs7.c 2020-06-05 17:55:16.000000000 +0200 @@ -0,0 +1,82 @@ +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <stdio.h> +#include <string.h> + +#include "libeconf.h" + +/* Test case: + Read /usr/etc with empty values, add overide file + which replaces empty values with values +*/ + +static int +check_key(econf_file *key_file, char *key, char *expected_val) +{ + char *val = NULL; + econf_err error = econf_getStringValue (key_file, "", key, &val); + if (expected_val == NULL) + { + if (val == NULL) + return 0; + + fprintf (stderr, "ERROR: %s has value \"%s\"\n", key, val); + return 1; + } + if (val == NULL || strlen(val) == 0) + { + fprintf (stderr, "ERROR: %s returns nothing! (%s)\n", key, + econf_errString(error)); + return 1; + } + if (strcmp (val, expected_val) != 0) + { + fprintf (stderr, "ERROR: %s is \"%s\" instead of \"%s\".\n", + key, val, expected_val); + return 1; + } + + printf("Ok: %s=%s\n", key, val); + free (val); + return 0; +} + +int +main(void) +{ + econf_file *key_file = NULL; + int retval = 0; + econf_err error; + + error = econf_readDirs (&key_file, + TESTSDIR"tst-getconfdirs7-data/usr/etc", + TESTSDIR"tst-getconfdirs7-data/etc", + "lcdnetmon", "conf", "=", "#"); + if (error) + { + fprintf (stderr, "ERROR: econf_readDirs: %s\n", + econf_errString(error)); + return 1; + } + + if (check_key(key_file, "BUSID", "1") != 0) + retval = 1; + if (check_key(key_file, "ADDRESS", "0x27") != 0) + retval = 1; + if (check_key(key_file, "ROWS", "4") != 0) + retval = 1; + if (check_key(key_file, "LINE1", "eth0/eth1") != 0) + retval = 1; + if (check_key(key_file, "LINE2", "\\4{eth0}") != 0) + retval = 1; + if (check_key(key_file, "LINE3", "\\4{eth1}") != 0) + retval = 1; + if (check_key(key_file, "LINE4", NULL) != 0) + retval = 1; + + econf_free (key_file); + + return retval; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/tests/tst-groups2.c new/libeconf-0.3.7+git20200605.c67ef9a/tests/tst-groups2.c --- old/libeconf-0.3.5+git20200203.3144b69/tests/tst-groups2.c 2020-02-03 17:16:31.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/tests/tst-groups2.c 2020-06-05 17:55:16.000000000 +0200 @@ -65,12 +65,12 @@ } if (group_number > 1) { - fprintf (stderr, "Too many groups found? (got %lu, expected 1)\n", group_number); + fprintf (stderr, "Too many groups found? (got %zu, expected 1)\n", group_number); retval = 1; } for (size_t i = 0; i < group_number; i++) { - printf ("%lu: %s\n", i, groups[i]); + printf ("%zu: %s\n", i, groups[i]); } econf_free (groups); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/tests/tst-groups3.c new/libeconf-0.3.7+git20200605.c67ef9a/tests/tst-groups3.c --- old/libeconf-0.3.5+git20200203.3144b69/tests/tst-groups3.c 2020-02-03 17:16:31.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/tests/tst-groups3.c 2020-06-05 17:55:16.000000000 +0200 @@ -41,13 +41,13 @@ } if (group_number != 5) { - fprintf (stderr, "Wrong number of groups found, got %lu, expected 5\n", + fprintf (stderr, "Wrong number of groups found, got %zu, expected 5\n", group_number); retval = 1; } printf ("Found the following groups:\n"); for (size_t i = 0; i < group_number; i++) - printf ("%lu: %s\n", i, groups[i]); + printf ("%zu: %s\n", i, groups[i]); /* Try to get the key for each group and check, it is the correct one */ for (size_t i = 0; i < group_number; i++) @@ -60,7 +60,7 @@ } else { - printf ("%lu: Group: %s, Value: %s\n", i, groups[i], val); + printf ("%zu: Group: %s, Value: %s\n", i, groups[i], val); free (val); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/tests/tst-logindefs1.c new/libeconf-0.3.7+git20200605.c67ef9a/tests/tst-logindefs1.c --- old/libeconf-0.3.5+git20200203.3144b69/tests/tst-logindefs1.c 2020-02-03 17:16:31.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/tests/tst-logindefs1.c 2020-06-05 17:55:16.000000000 +0200 @@ -75,7 +75,7 @@ } for (size_t i = 0; i < key_number; i++) { - printf ("%lu: %s\n", i, keys[i]); + printf ("%zu: %s\n", i, keys[i]); } econf_free (keys); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libeconf-0.3.5+git20200203.3144b69/tests/tst-logindefs2.c new/libeconf-0.3.7+git20200605.c67ef9a/tests/tst-logindefs2.c --- old/libeconf-0.3.5+git20200203.3144b69/tests/tst-logindefs2.c 2020-02-03 17:16:31.000000000 +0100 +++ new/libeconf-0.3.7+git20200605.c67ef9a/tests/tst-logindefs2.c 2020-06-05 17:55:16.000000000 +0200 @@ -43,7 +43,7 @@ { char *value = NULL; econf_getStringValue(key_file, NULL, keys[i], &value); - printf ("%lu: %s: '%s'\n", i, keys[i], value); + printf ("%zu: %s: '%s'\n", i, keys[i], value); if (value != NULL) free (value); }