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);
       }
     }
   }