Use stdout for help output even in case of errors.
PiperOrigin-RevId: 522393331
Change-Id: Ia5f4ad6a2d16c033ea97f3c7e27e8eb7ee429242
diff --git a/absl/flags/parse.cc b/absl/flags/parse.cc
index d3609c1..172fe90 100644
--- a/absl/flags/parse.cc
+++ b/absl/flags/parse.cc
@@ -22,6 +22,7 @@
#include <cstdlib>
#include <fstream>
#include <iostream>
+#include <ostream>
#include <string>
#include <tuple>
#include <utility>
@@ -693,7 +694,8 @@
std::vector<char*> ParseCommandLineImpl(int argc, char* argv[],
UsageFlagsAction usage_flag_action,
- OnUndefinedFlag undef_flag_action) {
+ OnUndefinedFlag undef_flag_action,
+ std::ostream& error_help_output) {
std::vector<char*> positional_args;
std::vector<UnrecognizedFlag> unrecognized_flags;
@@ -707,8 +709,8 @@
if (undef_flag_action == OnUndefinedFlag::kAbortIfUndefined) {
if (!unrecognized_flags.empty()) {
- flags_internal::HandleUsageFlags(std::cerr, ProgramUsageMessage());
- std::exit(1);
+ flags_internal::HandleUsageFlags(error_help_output,
+ ProgramUsageMessage()); std::exit(1);
}
}
}