[systemd-commits] 2 commits - src/binfmt src/journal src/locale src/modules-load src/shared src/sysctl src/test

Zbigniew Jędrzejewski-Szmek zbyszek at kemper.freedesktop.org
Sat Apr 13 17:25:31 PDT 2013


 src/binfmt/binfmt.c             |    2 +-
 src/journal/catalog.c           |    2 +-
 src/locale/localed.c            |   16 +---------------
 src/modules-load/modules-load.c |    2 +-
 src/shared/conf-parser.c        |    2 +-
 src/shared/install.c            |    4 ++--
 src/shared/util.h               |    2 +-
 src/sysctl/sysctl.c             |    2 +-
 src/test/test-unit-file.c       |   31 +++++++++++++++++++++++++++++++
 9 files changed, 40 insertions(+), 23 deletions(-)

New commits:
commit d3b6d0c21ea5a0d15ec6dbd8b8d179138b7463bc
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Sat Apr 13 20:22:53 2013 -0400

    fileio: in envfiles, do not skip lines following empty lines
    
    https://bugs.freedesktop.org/show_bug.cgi?id=63477

diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c
index 9ca1e60..5a42b3d 100644
--- a/src/binfmt/binfmt.c
+++ b/src/binfmt/binfmt.c
@@ -110,7 +110,7 @@ static int apply_file(const char *path, bool ignore_enoent) {
                 p = strstrip(l);
                 if (!*p)
                         continue;
-                if (strchr(COMMENTS, *p))
+                if (strchr(COMMENTS "\n", *p))
                         continue;
 
                 k = apply_rule(p);
diff --git a/src/journal/catalog.c b/src/journal/catalog.c
index ebf0622..7681af6 100644
--- a/src/journal/catalog.c
+++ b/src/journal/catalog.c
@@ -180,7 +180,7 @@ int catalog_import_file(Hashmap *h, struct strbuf *sb, const char *path) {
                         continue;
                 }
 
-                if (strchr(COMMENTS, line[0]))
+                if (strchr(COMMENTS "\n", line[0]))
                         continue;
 
                 if (empty_line &&
diff --git a/src/modules-load/modules-load.c b/src/modules-load/modules-load.c
index 9ee2603..b3f7af0 100644
--- a/src/modules-load/modules-load.c
+++ b/src/modules-load/modules-load.c
@@ -206,7 +206,7 @@ static int apply_file(struct kmod_ctx *ctx, const char *path, bool ignore_enoent
                 l = strstrip(line);
                 if (!*l)
                         continue;
-                if (strchr(COMMENTS, *l))
+                if (strchr(COMMENTS "\n", *l))
                         continue;
 
                 k = load_module(ctx, l);
diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c
index fbacf98..fea2e56 100644
--- a/src/shared/conf-parser.c
+++ b/src/shared/conf-parser.c
@@ -174,7 +174,7 @@ static int parse_line(
         if (!*l)
                 return 0;
 
-        if (strchr(COMMENTS, *l))
+        if (strchr(COMMENTS "\n", *l))
                 return 0;
 
         if (startswith(l, ".include ")) {
diff --git a/src/shared/install.c b/src/shared/install.c
index f9d223e..71e0433 100644
--- a/src/shared/install.c
+++ b/src/shared/install.c
@@ -1699,7 +1699,7 @@ int unit_file_query_preset(UnitFileScope scope, const char *name) {
                         if (!*l)
                                 continue;
 
-                        if (strchr(COMMENTS, *l))
+                        if (strchr(COMMENTS "\n", *l))
                                 continue;
 
                         if (first_word(l, "enable")) {
diff --git a/src/shared/util.h b/src/shared/util.h
index 99ec0a3..ad97536 100644
--- a/src/shared/util.h
+++ b/src/shared/util.h
@@ -52,7 +52,7 @@ union dirent_storage {
 #define WHITESPACE " \t\n\r"
 #define NEWLINE "\n\r"
 #define QUOTES "\"\'"
-#define COMMENTS "#;\n"
+#define COMMENTS "#;"
 
 #define FORMAT_BYTES_MAX 8
 
diff --git a/src/sysctl/sysctl.c b/src/sysctl/sysctl.c
index e0ba78a..db18dd9 100644
--- a/src/sysctl/sysctl.c
+++ b/src/sysctl/sysctl.c
@@ -149,7 +149,7 @@ static int parse_file(Hashmap *sysctl_options, const char *path, bool ignore_eno
                 if (!*p)
                         continue;
 
-                if (strchr(COMMENTS, *p))
+                if (strchr(COMMENTS "\n", *p))
                         continue;
 
                 value = strchr(p, '=');
diff --git a/src/test/test-unit-file.c b/src/test/test-unit-file.c
index 3cf8463..1bf11e6 100644
--- a/src/test/test-unit-file.c
+++ b/src/test/test-unit-file.c
@@ -199,6 +199,17 @@ static void test_config_parse_exec(void) {
         "#--nouser-config                                     \\\n" \
         "normal=line"
 
+#define env_file_4 \
+       "# Generated\n" \
+       "\n" \
+       "HWMON_MODULES=\"coretemp f71882fg\"\n" \
+       "\n" \
+       "# For compatibility reasons\n" \
+       "\n" \
+       "MODULE_0=coretemp\n" \
+       "MODULE_1=f71882fg"
+
+
 static void test_load_env_file_1(void) {
         char _cleanup_strv_free_ **data = NULL;
         int r;
@@ -251,6 +262,25 @@ static void test_load_env_file_3(void) {
         unlink(name);
 }
 
+static void test_load_env_file_4(void) {
+        char _cleanup_strv_free_ **data = NULL;
+        int r;
+
+        char name[] = "/tmp/test-load-env-file.XXXXXX";
+        int _cleanup_close_ fd = mkstemp(name);
+        assert(fd >= 0);
+        assert_se(write(fd, env_file_4, sizeof(env_file_4)) == sizeof(env_file_4));
+
+        r = load_env_file(name, NULL, &data);
+        assert(r == 0);
+        assert(streq(data[0], "HWMON_MODULES=coretemp f71882fg"));
+        assert(streq(data[1], "MODULE_0=coretemp"));
+        assert(streq(data[2], "MODULE_1=f71882fg"));
+        assert(data[3] == NULL);
+        unlink(name);
+}
+
+
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wnonnull"
 
@@ -327,6 +357,7 @@ int main(int argc, char *argv[]) {
         test_load_env_file_1();
         test_load_env_file_2();
         test_load_env_file_3();
+        test_load_env_file_4();
         test_install_printf();
 
         return 0;

commit 7914d6bba47a21b98617d04c992a9075ff5af4c0
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Fri Apr 12 19:19:48 2013 -0400

    Remove a few NULLs
    
    Just {} is used in a lot of places now, and there's nothing
    special abose those few.

diff --git a/src/locale/localed.c b/src/locale/localed.c
index 23fbde0..e160c04 100644
--- a/src/locale/localed.c
+++ b/src/locale/localed.c
@@ -118,21 +118,7 @@ static const char * const names[_PROP_MAX] = {
         [PROP_LC_IDENTIFICATION] = "LC_IDENTIFICATION"
 };
 
-static char *data[_PROP_MAX] = {
-        NULL,
-        NULL,
-        NULL,
-        NULL,
-        NULL,
-        NULL,
-        NULL,
-        NULL,
-        NULL,
-        NULL,
-        NULL,
-        NULL,
-        NULL
-};
+static char *data[_PROP_MAX] = {};
 
 typedef struct State {
         char *x11_layout, *x11_model, *x11_variant, *x11_options;
diff --git a/src/shared/install.c b/src/shared/install.c
index b368b9f..f9d223e 100644
--- a/src/shared/install.c
+++ b/src/shared/install.c
@@ -1735,7 +1735,7 @@ int unit_file_preset(
                 unsigned *n_changes) {
 
         LookupPaths _cleanup_lookup_paths_free_ paths = {};
-        InstallContext _cleanup_install_context_done_ plus = {}, minus = {NULL};
+        InstallContext _cleanup_install_context_done_ plus = {}, minus = {};
         char **i;
         char _cleanup_free_ *config_path = NULL;
         Set _cleanup_set_free_free_ *remove_symlinks_to = NULL;



More information about the systemd-commits mailing list