mirror of
https://github.com/amadvance/snapraid.git
synced 2026-10-26 19:01:57 -04:00
Avoid duplicate fatal stderr output in GUI mode
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
This commit is contained in:
parent
9bdd642b97
commit
23283e3abd
3 changed files with 20 additions and 8 deletions
|
|
@ -1061,6 +1061,8 @@ int snapraid_main(int argc, char* argv[])
|
|||
}
|
||||
}
|
||||
|
||||
msg_fatal_stderr = !opt.gui;
|
||||
|
||||
os_init(OS_INIT_OPT_AVOID_SLEEP | (opt.force_scan_winfind ? OS_INIT_OPT_WINFIND : 0));
|
||||
app_init();
|
||||
raid_init();
|
||||
|
|
|
|||
|
|
@ -293,6 +293,7 @@ void log_error_errno(int err, const char* name)
|
|||
/* print */
|
||||
|
||||
int msg_level = 0;
|
||||
int msg_fatal_stderr = 1;
|
||||
FILE* stdlog = 0;
|
||||
int msg_line_prev = 0; /**< Previous line width on stdout */
|
||||
int msg_line_curr = 0; /**< Current line width on stdout */
|
||||
|
|
@ -393,15 +394,18 @@ void vlog_fatal(int err, const char* format, va_list ap, const char* post)
|
|||
fflush(stdlog);
|
||||
}
|
||||
|
||||
va_list ap_copy2;
|
||||
va_copy(ap_copy2, ap);
|
||||
vmsg(stderr, format, ap_copy2);
|
||||
va_end(ap_copy2);
|
||||
/* GUI consumers read tagged fatal messages from the log and must not receive a duplicate raw copy. */
|
||||
if (!stdlog || msg_fatal_stderr) {
|
||||
va_list ap_copy2;
|
||||
va_copy(ap_copy2, ap);
|
||||
vmsg(stderr, format, ap_copy2);
|
||||
va_end(ap_copy2);
|
||||
|
||||
if (post)
|
||||
msg(stderr, "%s", post);
|
||||
if (post)
|
||||
msg(stderr, "%s", post);
|
||||
|
||||
fflush(stderr);
|
||||
fflush(stderr);
|
||||
}
|
||||
|
||||
unlock_msg();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,7 +92,8 @@ typedef void log_ptr(int err, const char* format, ...) __attribute__((format(att
|
|||
*
|
||||
* Messages printed before an early termination.
|
||||
*
|
||||
* These messages go in the log file and in stderr unconditionally.
|
||||
* These messages go in the log file and in stderr, except in GUI mode
|
||||
* when a log is configured, where only the tagged log message is emitted.
|
||||
*/
|
||||
void vlog_fatal(int err, const char* format, va_list ap, const char* post);
|
||||
void log_fatal(int err, const char* format, ...) __attribute__((format(attribute_printf, 2, 3)));
|
||||
|
|
@ -176,6 +177,11 @@ typedef void msg_ptr(const char* format, ...) __attribute__((format(attribute_pr
|
|||
*/
|
||||
extern int msg_level;
|
||||
|
||||
/**
|
||||
* Emit fatal messages on stderr also when a log is configured.
|
||||
*/
|
||||
extern int msg_fatal_stderr;
|
||||
|
||||
/**
|
||||
* State messages.
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue