From: Lennart Poettering Date: Wed, 7 Jan 2015 21:05:20 +0000 (+0100) Subject: conf-parse: make syntax logging functions behave more like other log functons X-Git-Tag: v219~643 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=978553ce5e85a57a203be8256e59f304c8c46f3d;hp=1535ef321f9f62c0825e811ebd25c09b88aab852 conf-parse: make syntax logging functions behave more like other log functons In particular, don't patch the error number to EINVAL if 0, and don't negate it. (Also, add do {} while (false) around multi-line macro) --- diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c index 5fe983a84..a1a94da92 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c @@ -61,7 +61,7 @@ int log_syntax_internal( if (unit) r = log_struct_internal(level, - error > 0 ? error : EINVAL, + error, file, line, func, getpid() == 1 ? "UNIT=%s" : "USER_UNIT=%s", unit, LOG_MESSAGE_ID(SD_MESSAGE_CONFIG_ERROR), @@ -71,7 +71,7 @@ int log_syntax_internal( NULL); else r = log_struct_internal(level, - error > 0 ? error : EINVAL, + error, file, line, func, LOG_MESSAGE_ID(SD_MESSAGE_CONFIG_ERROR), "CONFIG_FILE=%s", config_file, diff --git a/src/shared/conf-parser.h b/src/shared/conf-parser.h index 2507a4444..7a2f855f9 100644 --- a/src/shared/conf-parser.h +++ b/src/shared/conf-parser.h @@ -136,11 +136,12 @@ int log_syntax_internal( config_file, config_line, \ error, __VA_ARGS__) -#define log_invalid_utf8(unit, level, config_file, config_line, error, rvalue) { \ - _cleanup_free_ char *__p = utf8_escape_invalid(rvalue); \ - log_syntax(unit, level, config_file, config_line, error, \ - "String is not UTF-8 clean, ignoring assignment: %s", __p); \ - } +#define log_invalid_utf8(unit, level, config_file, config_line, error, rvalue) \ + do { \ + _cleanup_free_ char *_p = utf8_escape_invalid(rvalue); \ + log_syntax(unit, level, config_file, config_line, error, \ + "String is not UTF-8 clean, ignoring assignment: %s", strna(_p)); \ + } while(false) #define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg) \ int function(const char *unit, \