aboutsummaryrefslogtreecommitdiff
path: root/src/common/log.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2015-03-14 14:12:03 -0400
committerNick Mathewson <nickm@torproject.org>2015-03-14 14:12:03 -0400
commit7bed9dc73a6b95b2de741195ce54d073e0bd4a37 (patch)
treeca2a1296ef99c832191f0b757fbeb38e8e8bd0f0 /src/common/log.c
parent4247ce99e5d9b7b2063df66cc808fac1f09fb799 (diff)
downloadtor-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.c12
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)