merge(3p/abseil_cpp): Merge upstream at 'ccdbb5941'
Change-Id: I6e85fc7b5f76bba1f1eef15e600a8acb64e97ef5
This commit is contained in:
		
						commit
						543379ce45
					
				
					 97 changed files with 3546 additions and 2316 deletions
				
			
		|  | @ -15,6 +15,8 @@ | |||
| 
 | ||||
| #include "absl/flags/internal/usage.h" | ||||
| 
 | ||||
| #include <stdint.h> | ||||
| 
 | ||||
| #include <functional> | ||||
| #include <map> | ||||
| #include <ostream> | ||||
|  | @ -23,8 +25,8 @@ | |||
| #include <vector> | ||||
| 
 | ||||
| #include "absl/base/config.h" | ||||
| #include "absl/flags/commandlineflag.h" | ||||
| #include "absl/flags/flag.h" | ||||
| #include "absl/flags/internal/commandlineflag.h" | ||||
| #include "absl/flags/internal/flag.h" | ||||
| #include "absl/flags/internal/path_util.h" | ||||
| #include "absl/flags/internal/private_handle_accessor.h" | ||||
|  | @ -107,8 +109,8 @@ class FlagHelpPrettyPrinter { | |||
|  public: | ||||
|   // Pretty printer holds on to the std::ostream& reference to direct an output
 | ||||
|   // to that stream.
 | ||||
|   FlagHelpPrettyPrinter(int max_line_len, std::ostream* out) | ||||
|       : out_(*out), | ||||
|   FlagHelpPrettyPrinter(int max_line_len, std::ostream& out) | ||||
|       : out_(out), | ||||
|         max_line_len_(max_line_len), | ||||
|         line_len_(0), | ||||
|         first_line_(true) {} | ||||
|  | @ -182,8 +184,7 @@ class FlagHelpPrettyPrinter { | |||
|   bool first_line_; | ||||
| }; | ||||
| 
 | ||||
| void FlagHelpHumanReadable(const flags_internal::CommandLineFlag& flag, | ||||
|                            std::ostream* out) { | ||||
| void FlagHelpHumanReadable(const CommandLineFlag& flag, std::ostream& out) { | ||||
|   FlagHelpPrettyPrinter printer(80, out);  // Max line length is 80.
 | ||||
| 
 | ||||
|   // Flag name.
 | ||||
|  | @ -245,30 +246,28 @@ void FlagsHelpImpl(std::ostream& out, flags_internal::FlagKindFilter filter_cb, | |||
|   // This map is used to output matching flags grouped by package and file
 | ||||
|   // name.
 | ||||
|   std::map<std::string, | ||||
|            std::map<std::string, | ||||
|                     std::vector<const flags_internal::CommandLineFlag*>>> | ||||
|            std::map<std::string, std::vector<const absl::CommandLineFlag*>>> | ||||
|       matching_flags; | ||||
| 
 | ||||
|   flags_internal::ForEachFlag([&](flags_internal::CommandLineFlag* flag) { | ||||
|     std::string flag_filename = flag->Filename(); | ||||
|   flags_internal::ForEachFlag([&](absl::CommandLineFlag& flag) { | ||||
|     std::string flag_filename = flag.Filename(); | ||||
| 
 | ||||
|     // Ignore retired flags.
 | ||||
|     if (flag->IsRetired()) return; | ||||
|     if (flag.IsRetired()) return; | ||||
| 
 | ||||
|     // If the flag has been stripped, pretend that it doesn't exist.
 | ||||
|     if (flag->Help() == flags_internal::kStrippedFlagHelp) return; | ||||
|     if (flag.Help() == flags_internal::kStrippedFlagHelp) return; | ||||
| 
 | ||||
|     // Make sure flag satisfies the filter
 | ||||
|     if (!filter_cb || !filter_cb(flag_filename)) return; | ||||
| 
 | ||||
|     matching_flags[std::string(flags_internal::Package(flag_filename))] | ||||
|                   [flag_filename] | ||||
|                       .push_back(flag); | ||||
|                       .push_back(&flag); | ||||
|   }); | ||||
| 
 | ||||
|   absl::string_view | ||||
|       package_separator;             // controls blank lines between packages.
 | ||||
|   absl::string_view file_separator;  // controls blank lines between files.
 | ||||
|   absl::string_view package_separator;  // controls blank lines between packages
 | ||||
|   absl::string_view file_separator;     // controls blank lines between files
 | ||||
|   for (const auto& package : matching_flags) { | ||||
|     if (format == HelpFormat::kHumanReadable) { | ||||
|       out << package_separator; | ||||
|  | @ -303,10 +302,10 @@ void FlagsHelpImpl(std::ostream& out, flags_internal::FlagKindFilter filter_cb, | |||
| 
 | ||||
| // --------------------------------------------------------------------
 | ||||
| // Produces the help message describing specific flag.
 | ||||
| void FlagHelp(std::ostream& out, const flags_internal::CommandLineFlag& flag, | ||||
| void FlagHelp(std::ostream& out, const CommandLineFlag& flag, | ||||
|               HelpFormat format) { | ||||
|   if (format == HelpFormat::kHumanReadable) | ||||
|     flags_internal::FlagHelpHumanReadable(flag, &out); | ||||
|     flags_internal::FlagHelpHumanReadable(flag, out); | ||||
| } | ||||
| 
 | ||||
| // --------------------------------------------------------------------
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue