From a5900164d568d09d1a9e88e5b6a2951779e71e9e Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Thu, 15 Aug 2013 20:01:19 -0400 Subject: udev: when complaining about invalid characters, print them out systemd-udevd[6260]: invalid key/value pair in file /usr/lib/udev/rules.d/60-ffado.rules on line 46,starting at character 84 ('#') --- src/udev/udev-rules.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/udev') diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c index 2c28ef7e20..b421e42363 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -34,6 +34,7 @@ #include "conf-files.h" #include "strbuf.h" #include "strv.h" +#include "util.h" #define PREALLOC_TOKEN 2048 @@ -1069,10 +1070,17 @@ static int add_rule(struct udev_rules *rules, char *line, if (get_key(rules->udev, &linepos, &key, &op, &value) != 0) { /* If we aren't at the end of the line, this is a parsing error. * Make a best effort to describe where the problem is. */ - if (*linepos != '\n') + if (*linepos != '\n') { + char buf[2] = {linepos[1]}; + _cleanup_free_ char *tmp; + + tmp = cescape(buf); log_error("invalid key/value pair in file %s on line %u," - "starting at character %lu\n", - filename, lineno, linepos - line + 1); + "starting at character %lu ('%s')\n", + filename, lineno, linepos - line + 1, tmp); + if (linepos[1] == '#') + log_info("hint: comments can only start at beginning of line"); + } break; } -- cgit v1.2.3-54-g00ecf