mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
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.
This commit is contained in:
parent
4247ce99e5
commit
7bed9dc73a
7
changes/bug15269
Normal file
7
changes/bug15269
Normal file
@ -0,0 +1,7 @@
|
||||
o Minor bugfixes (logs):
|
||||
- When building Tor under Clang, do not include an extra set of
|
||||
parentheses in log messages that include function names.
|
||||
Fixes bug 15053; bugfix on every released version of Tor when
|
||||
compiled with recent enough Clang.
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user