diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp index 4bf482711985728d286225dcac5a5649911d9abe..2d4898f7be16e6a599e8731acbaa11f433f52255 100644 --- a/indra/llcommon/llerror.cpp +++ b/indra/llcommon/llerror.cpp @@ -664,10 +664,10 @@ namespace // console log. It's generally considered bad form to spam too much // there. - // If stdin is a tty, assume the user launched from the command line and - // therefore wants to see stderr. Otherwise, assume we've been launched - // from the finder and shouldn't spam stderr. - return isatty(0); + // If stderr is a tty, assume the user launched from the command line or + // debugger and therefore wants to see stderr. Otherwise, assume we've + // been launched from the finder and shouldn't spam stderr. + return isatty(STDERR_FILENO); #else return true; #endif diff --git a/indra/llcommon/llerror.h b/indra/llcommon/llerror.h index 0a7822955503a9a3a62de67a8b82ff1f83b841c6..9613911531932bcc9818fec0d590f78a0f58438c 100644 --- a/indra/llcommon/llerror.h +++ b/indra/llcommon/llerror.h @@ -381,8 +381,13 @@ typedef LLError::NoClassInfo _LL_CLASS_TO_LOG; #define LL_WARNS(...) lllog(LLError::LEVEL_WARN, false, ##__VA_ARGS__) #define LL_ERRS(...) lllog(LLError::LEVEL_ERROR, false, ##__VA_ARGS__) // alternative to llassert_always that prints explanatory message -#define LL_WARNS_IF(exp, ...) if (exp) LL_WARNS(##__VA_ARGS__) << "(" #exp ")" -#define LL_ERRS_IF(exp, ...) if (exp) LL_ERRS(##__VA_ARGS__) << "(" #exp ")" +// note ## token paste operator hack used above will only work in gcc following +// a comma and is completely unnecessary in VS since the comma is automatically +// suppressed +// https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html +// https://docs.microsoft.com/en-us/cpp/preprocessor/variadic-macros?view=vs-2015 +#define LL_WARNS_IF(exp, ...) if (exp) LL_WARNS(__VA_ARGS__) << "(" #exp ")" +#define LL_ERRS_IF(exp, ...) if (exp) LL_ERRS(__VA_ARGS__) << "(" #exp ")" // Only print the log message once (good for warnings or infos that would otherwise // spam the log file over and over, such as tighter loops).