diff options
author | Nick Mathewson <nickm@torproject.org> | 2015-03-14 14:12:03 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2015-03-14 14:12:03 -0400 |
commit | 7bed9dc73a6b95b2de741195ce54d073e0bd4a37 (patch) | |
tree | ca2a1296ef99c832191f0b757fbeb38e8e8bd0f0 /src/common/log.c | |
parent | 4247ce99e5d9b7b2063df66cc808fac1f09fb799 (diff) | |
download | tor-7bed9dc73a6b95b2de741195ce54d073e0bd4a37.tar.gz tor-7bed9dc73a6b95b2de741195ce54d073e0bd4a37.zip |
Avoid double-parens in log_fn() messages on clang.
On clang (and elsewhere?) __PRETTY_FUNCTION__ includes parenthesized
argument lists. This is clever, but it makes our old "%s(): " format
look funny.
This is a fix on 0957ffeb, aka svn:r288. Fixes bug 15269.
Diffstat (limited to 'src/common/log.c')
-rw-r--r-- | src/common/log.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/common/log.c b/src/common/log.c index e8cc30c312..5278dbd5f4 100644 --- a/src/common/log.c +++ b/src/common/log.c @@ -140,6 +140,9 @@ static size_t pending_startup_messages_len; * configured. */ static int queue_startup_messages = 1; +/** True iff __PRETTY_FUNCTION__ includes parenthesized arguments. */ +static int pretty_fn_has_parens = 0; + /** Don't store more than this many bytes of messages while waiting for the * logs to get configured. */ #define MAX_STARTUP_MSG_LEN (1<<16) @@ -306,7 +309,9 @@ format_msg(char *buf, size_t buf_len, } if (funcname && should_log_function_name(domain, severity)) { - r = tor_snprintf(buf+n, buf_len-n, "%s(): ", funcname); + r = tor_snprintf(buf+n, buf_len-n, + pretty_fn_has_parens ? "%s: " : "%s(): ", + funcname); if (r<0) n = strlen(buf); else @@ -925,6 +930,11 @@ init_logging(int disable_startup_queue) tor_mutex_init(&log_mutex); log_mutex_initialized = 1; } +#ifdef __GNUC__ + if (strchr(__PRETTY_FUNCTION__, '(')) { + pretty_fn_has_parens = 1; + } +#endif if (pending_cb_messages == NULL) pending_cb_messages = smartlist_new(); if (disable_startup_queue) |