diff options
author | schnetter <schnetter@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2009-12-05 05:04:54 +0000 |
---|---|---|
committer | schnetter <schnetter@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2009-12-05 05:04:54 +0000 |
commit | 3cc7753fb38cae05c5ff52978537dde724f4813a (patch) | |
tree | 30e2baa2697188c52216c4e4cec3b78eddacea34 /src/main | |
parent | 2c593dcfba874dc6156f9192c3ca80a3a225e420 (diff) |
Output parameter warnings to both stdout and stderr, same as regular
warnings.
Remove the function print_bold_stderr. Use bold_stdout and
bold_stderr instead.
Clean up the way variable argument lists are handled.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4591 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/WarnLevel.c | 100 |
1 files changed, 44 insertions, 56 deletions
diff --git a/src/main/WarnLevel.c b/src/main/WarnLevel.c index f0747dd0..a315ad73 100644 --- a/src/main/WarnLevel.c +++ b/src/main/WarnLevel.c @@ -81,21 +81,6 @@ static void bold_stderr (BOLDING on) fprintf (stderr, "%s", val); } -static void print_bold_stderr (int do_bold, const char *fmt, ...) -{ - va_list args; - - if (do_bold) - bold_stderr (ON); - - va_start (args, fmt); - vfprintf (stderr, fmt, args); - va_end (args); - - if (do_bold) - bold_stderr (OFF); -} - /* maximum buffer length to hold the hostname */ #define MAXNAMELEN 255 @@ -276,10 +261,10 @@ int CCTK_VInfo (const char *thorn, const char *format, ...) /* Start generating message only if the infocallback list is not NULL */ if(infocallbacks) { - va_start(ap,format); - /* one way to get the final string size */ + va_start(ap,format); msg_size = Util_vsnprintf(NULL, 0, format, ap); + va_end(ap); /* Empty string is ok */ if(msg_size >= 0) @@ -378,11 +363,11 @@ int CCTK_VInfo (const char *thorn, const char *format, ...) /* * print the INFO message itself */ - va_start (ap, format); fprintf (stdout, "INFO (%s): ", thorn); + va_start (ap, format); vfprintf (stdout, format, ap); - fprintf (stdout, "\n"); va_end (ap); + fprintf (stdout, "\n"); return 0; } @@ -510,7 +495,7 @@ int CCTK_VWarn (int level, CCTK_INT cctk_full_warnings, highlight_warning_messages; int param_type; int myproc; - va_list ap, aq; + va_list ap; /* Necessary for wrapping up the final message */ @@ -523,6 +508,7 @@ int CCTK_VWarn (int level, { va_start(ap,format); msg_size = Util_vsnprintf(NULL, 0, format, ap); + va_end(ap); /* Empty string is ok */ if(msg_size >= 0) @@ -563,13 +549,6 @@ int CCTK_VWarn (int level, highlight_warning_messages = ! highlight_warning_messages_ptr || *highlight_warning_messages_ptr; - va_start (ap, format); -#ifdef HAVE_VA_COPY - va_copy (aq, ap); -#else - memcpy (&aq, &ap, sizeof (ap)); -#endif - /* print to stderr if necessary */ if (level <= warning_level) { @@ -598,7 +577,9 @@ int CCTK_VWarn (int level, } fprintf (stderr, " "); + va_start (ap, format); vfprintf (stderr, format, ap); + va_end (ap); fprintf (stderr, "\n"); } @@ -631,14 +612,13 @@ int CCTK_VWarn (int level, } fprintf (stdout, " "); - vfprintf (stdout, format, aq); + va_start (ap, format); + vfprintf (stdout, format, ap); + va_end (ap); fprintf (stdout, "\n"); } - va_end (aq); - va_end (ap); - } if (level <= error_level) @@ -696,29 +676,7 @@ int CCTK_ParameterLevel (void) @@*/ int CCTK_ParamWarn (const char *thorn, const char *message) { - const CCTK_INT *cctk_strong_param_check_ptr, *highlight_warning_messages_ptr; - CCTK_INT cctk_strong_param_check, highlight_warning_messages; - int param_type; - - cctk_strong_param_check_ptr = - CCTK_ParameterGet ("cctk_strong_param_check", "Cactus", ¶m_type); - /* Default to yes */ - cctk_strong_param_check = - cctk_strong_param_check_ptr && *cctk_strong_param_check_ptr; - - highlight_warning_messages_ptr = - CCTK_ParameterGet ("highlight_warning_messages", "Cactus", ¶m_type); - /* Default to no */ - highlight_warning_messages = - ! highlight_warning_messages_ptr || *highlight_warning_messages_ptr; - - print_bold_stderr ( highlight_warning_messages, "PARAM %s (%s): %s", - cctk_strong_param_check ? "ERROR" : "WARNING", thorn, message); - fprintf (stderr, "\n"); - - param_errors++; - - return (0); + return (CCTK_VParamWarn (thorn, "%s", message)); } void CCTK_FCALL CCTK_FNAME (CCTK_ParamWarn) @@ -783,13 +741,43 @@ int CCTK_VParamWarn (const char *thorn, highlight_warning_messages = ! highlight_warning_messages_ptr || *highlight_warning_messages_ptr; - print_bold_stderr ( highlight_warning_messages, "PARAM %s (%s): ", - cctk_strong_param_check ? "ERROR" : "WARNING", thorn); + /* print to stderr */ + if (highlight_warning_messages) + { + bold_stderr (ON); + } + + fprintf (stderr, "PARAMETER %s (%s): ", + cctk_strong_param_check ? "ERROR" : "WARNING", thorn); va_start (ap, format); vfprintf (stderr, format, ap); + va_end (ap); fprintf (stderr, "\n"); + + if (highlight_warning_messages) + { + bold_stderr (OFF); + } + + /* print to stdout */ + if (highlight_warning_messages) + { + bold_stdout (ON); + } + + fprintf (stdout, "PARAMETER %s (%s): ", + cctk_strong_param_check ? "ERROR" : "WARNING", thorn); + + va_start (ap, format); + vfprintf (stdout, format, ap); va_end (ap); + fprintf (stdout, "\n"); + + if (highlight_warning_messages) + { + bold_stdout (OFF); + } param_errors++; |