chiark / gitweb /
don't allow comments at the end of lines
[elogind.git] / conf-parser.c
index 2f013e3f24c26f19a76aa7d1ec7b1d220cfbdf07..0388a24bcc315a5cc556986371ef6a7f5e8cbf23 100644 (file)
@@ -13,6 +13,7 @@
 #include "log.h"
 
 #define COMMENTS "#;\n"
+#define NEWLINES "\n\r"
 #define LINE_MAX 4096
 
 /* Run the user supplied parser for an assignment */
@@ -77,16 +78,19 @@ static char *strip(char *s) {
 
 /* Parse a variable assignment line */
 static int parse_line(const char *filename, unsigned line, char **section, const char* const * sections, const ConfigItem *t, char *l, void *userdata) {
-        char *e, *c, *b;
+        char *e, *b, *c;
 
         b = l+strspn(l, WHITESPACE);
 
-        if ((c = strpbrk(b, COMMENTS)))
+        if ((c = strpbrk(b, NEWLINES)))
                 *c = 0;
 
         if (!*b)
                 return 0;
 
+        if (strchr(COMMENTS, *b))
+                return 0;
+
         if (startswith(b, ".include ")) {
                 char *path = NULL, *fn;
                 int r;