diff options
author | Abseil Team <absl-team@google.com> | 2019-08-06T22·11-0700 |
---|---|---|
committer | CJ Johnson <johnsoncj@google.com> | 2019-08-07T18·37-0400 |
commit | b49b8d16b67ec6912899684b732e6367f258cfdb (patch) | |
tree | f15473bf71a716d74c14da91e36069cb55f83351 /absl | |
parent | 67222ffc4c83d918ce8395aa61769eeb77df4c4d (diff) |
Export of internal Abseil changes
-- 00c451dc81be7fe05f982b08b4ea1edc2ca2c1c5 by Abseil Team <absl-team@google.com>: remove a test that is currently broken on emscripten from running on emscripten. PiperOrigin-RevId: 262005667 -- 9df5f5acb65996bdb99900039a4f01a44811aa14 by CJ Johnson <johnsoncj@google.com>: Adds a layer of macro-indirection to opening up namespace absl inside a macro. This helps avoid an issue identified with the LTS inline namespaces PiperOrigin-RevId: 261990937 -- 5d40aa129cd77a1b853e5389aff7eacffe5c8204 by Gennadiy Rozental <rogeeff@google.com>: Fix handling of new lines in flag help descriptions. If there are explicit new lines in a flag help description string, we respect it and format the usage message accordingly. PiperOrigin-RevId: 261974244 -- 4997b5a2ddb983969059470a2d2bc2416b3d785e by CJ Johnson <johnsoncj@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 261955031 GitOrigin-RevId: 00c451dc81be7fe05f982b08b4ea1edc2ca2c1c5 Change-Id: I5a13bfb15bba0f7b6e49c0655c57c3addfeb1c72
Diffstat (limited to 'absl')
-rw-r--r-- | absl/flags/flag.h | 2 | ||||
-rw-r--r-- | absl/flags/internal/usage.cc | 18 | ||||
-rw-r--r-- | absl/flags/internal/usage_test.cc | 33 | ||||
-rw-r--r-- | absl/time/internal/cctz/src/time_zone_posix.cc | 10 | ||||
-rw-r--r-- | absl/types/optional_test.cc | 2 |
5 files changed, 57 insertions, 8 deletions
diff --git a/absl/flags/flag.h b/absl/flags/flag.h index 6c9f48765cfa..36c771cf49b1 100644 --- a/absl/flags/flag.h +++ b/absl/flags/flag.h @@ -217,7 +217,7 @@ void SetFlag(absl::Flag<T>* flag, const V& v) { // global name for FLAGS_no<flag_name> symbol, thus preventing the possibility // of defining two flags with names foo and nofoo. #define ABSL_FLAG_IMPL(Type, name, default_value, help) \ - namespace absl {} \ + namespace absl /* block flags in namespaces */ {} \ ABSL_FLAG_IMPL_DECLARE_DEF_VAL_WRAPPER(name, Type, default_value) \ ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER(name, help) \ ABSL_CONST_INIT absl::Flag<Type> FLAGS_##name( \ diff --git a/absl/flags/internal/usage.cc b/absl/flags/internal/usage.cc index aac02db6c27a..03048514ae0b 100644 --- a/absl/flags/internal/usage.cc +++ b/absl/flags/internal/usage.cc @@ -111,8 +111,16 @@ class FlagHelpPrettyPrinter { std::vector<absl::string_view> tokens; if (wrap_line) { - tokens = absl::StrSplit(str, absl::ByAnyChar(" \f\n\r\t\v"), - absl::SkipEmpty()); + for (auto line : absl::StrSplit(str, absl::ByAnyChar("\n\r"))) { + if (!tokens.empty()) { + // Keep line separators in the input std::string. + tokens.push_back("\n"); + } + for (auto token : + absl::StrSplit(line, absl::ByAnyChar(" \t"), absl::SkipEmpty())) { + tokens.push_back(token); + } + } } else { tokens.push_back(str); } @@ -120,6 +128,12 @@ class FlagHelpPrettyPrinter { for (auto token : tokens) { bool new_line = (line_len_ == 0); + // Respect line separators in the input std::string. + if (token == "\n") { + EndLine(); + continue; + } + // Write the token, ending the std::string first if necessary/possible. if (!new_line && (line_len_ + token.size() >= max_line_len_)) { EndLine(); diff --git a/absl/flags/internal/usage_test.cc b/absl/flags/internal/usage_test.cc index 5e5f7a84cc43..781e1d2b16ab 100644 --- a/absl/flags/internal/usage_test.cc +++ b/absl/flags/internal/usage_test.cc @@ -48,6 +48,14 @@ std::string AbslUnparseFlag(const UDT&) { return "UDT{}"; } ABSL_FLAG(UDT, usage_reporting_test_flag_05, {}, "usage_reporting_test_flag_05 help message"); +ABSL_FLAG( + std::string, usage_reporting_test_flag_06, {}, + "usage_reporting_test_flag_06 help message.\n" + "\n" + "Some more help.\n" + "Even more long long long long long long long long long long long long " + "help message."); + namespace { namespace flags = absl::flags_internal; @@ -173,6 +181,11 @@ TEST_F(UsageReportingTest, TestFlagsHelpHRF) { default: 1000000000000004; -usage_reporting_test_flag_05 (usage_reporting_test_flag_05 help message); default: UDT{}; + -usage_reporting_test_flag_06 (usage_reporting_test_flag_06 help message. + + Some more help. + Even more long long long long long long long long long long long long help + message.); default: ""; )"; std::stringstream test_buf_01; @@ -244,6 +257,11 @@ TEST_F(UsageReportingTest, TestUsageFlag_helpshort) { default: 1000000000000004; -usage_reporting_test_flag_05 (usage_reporting_test_flag_05 help message); default: UDT{}; + -usage_reporting_test_flag_06 (usage_reporting_test_flag_06 help message. + + Some more help. + Even more long long long long long long long long long long long long help + message.); default: ""; )"); } @@ -268,6 +286,11 @@ TEST_F(UsageReportingTest, TestUsageFlag_help) { default: 1000000000000004; -usage_reporting_test_flag_05 (usage_reporting_test_flag_05 help message); default: UDT{}; + -usage_reporting_test_flag_06 (usage_reporting_test_flag_06 help message. + + Some more help. + Even more long long long long long long long long long long long long help + message.); default: ""; Try --helpfull to get a list of all flags. )"); @@ -294,6 +317,11 @@ TEST_F(UsageReportingTest, TestUsageFlag_helppackage) { default: 1000000000000004; -usage_reporting_test_flag_05 (usage_reporting_test_flag_05 help message); default: UDT{}; + -usage_reporting_test_flag_06 (usage_reporting_test_flag_06 help message. + + Some more help. + Even more long long long long long long long long long long long long help + message.); default: ""; Try --helpfull to get a list of all flags. )"); @@ -354,6 +382,11 @@ TEST_F(UsageReportingTest, TestUsageFlag_helpon) { default: 1000000000000004; -usage_reporting_test_flag_05 (usage_reporting_test_flag_05 help message); default: UDT{}; + -usage_reporting_test_flag_06 (usage_reporting_test_flag_06 help message. + + Some more help. + Even more long long long long long long long long long long long long help + message.); default: ""; )"); } diff --git a/absl/time/internal/cctz/src/time_zone_posix.cc b/absl/time/internal/cctz/src/time_zone_posix.cc index 993901acfa22..038740e1d67b 100644 --- a/absl/time/internal/cctz/src/time_zone_posix.cc +++ b/absl/time/internal/cctz/src/time_zone_posix.cc @@ -100,9 +100,9 @@ const char* ParseDateTime(const char* p, PosixTransition* res) { int weekday = 0; if ((p = ParseInt(p + 1, 0, 6, &weekday)) != nullptr) { res->date.fmt = PosixTransition::M; - res->date.m.month = static_cast<int_fast8_t>(month); - res->date.m.week = static_cast<int_fast8_t>(week); - res->date.m.weekday = static_cast<int_fast8_t>(weekday); + res->date.m.month = static_cast<std::int_fast8_t>(month); + res->date.m.week = static_cast<std::int_fast8_t>(week); + res->date.m.weekday = static_cast<std::int_fast8_t>(weekday); } } } @@ -110,13 +110,13 @@ const char* ParseDateTime(const char* p, PosixTransition* res) { int day = 0; if ((p = ParseInt(p + 1, 1, 365, &day)) != nullptr) { res->date.fmt = PosixTransition::J; - res->date.j.day = static_cast<int_fast16_t>(day); + res->date.j.day = static_cast<std::int_fast16_t>(day); } } else { int day = 0; if ((p = ParseInt(p, 0, 365, &day)) != nullptr) { res->date.fmt = PosixTransition::N; - res->date.j.day = static_cast<int_fast16_t>(day); + res->date.n.day = static_cast<std::int_fast16_t>(day); } } } diff --git a/absl/types/optional_test.cc b/absl/types/optional_test.cc index 221c314593ad..e6a36eb8e26f 100644 --- a/absl/types/optional_test.cc +++ b/absl/types/optional_test.cc @@ -1628,6 +1628,7 @@ TEST(optionalTest, AssignmentConstraints) { EXPECT_TRUE(absl::is_copy_assignable<absl::optional<AnyLike>>::value); } +#if !defined(__EMSCRIPTEN__) struct NestedClassBug { struct Inner { bool dummy = false; @@ -1650,5 +1651,6 @@ TEST(optionalTest, InPlaceTSFINAEBug) { o.emplace(); EXPECT_TRUE(o.has_value()); } +#endif // !defined(__EMSCRIPTEN__) } // namespace |