From 36b562b5c0e823fcad9ee8d1a53e45be52b251cf Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Wed, 5 Jul 2023 17:15:33 -0700 Subject: [PATCH 1/3] On Ubuntu, GetTimezone should return the long time zone name. --- app/src/locale.cc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/src/locale.cc b/app/src/locale.cc index 77e1b80db2..b73759dd35 100644 --- a/app/src/locale.cc +++ b/app/src/locale.cc @@ -30,6 +30,7 @@ #define UCHAR_TYPE wchar_t #include #elif FIREBASE_PLATFORM_LINUX +#include #include #include #else @@ -180,6 +181,20 @@ std::string GetTimezone() { return iana_tz_utf8; #elif FIREBASE_PLATFORM_LINUX + // Ubuntu: Check /etc/timezone for the full time zone name. + FILE* tz_file = fopen("/etc/timezone", "r"); + if (tz_file) { + const size_t kBufSize = 128; + char buf[128]; + if (fgets(buf, kBufSize, tz_file)) { + // Remove a trailing '\n', if any. + size_t len = strlen(buf); + if (buf[len-1] == '\n') { + buf[len-1] = '\0'; + } + return std::string(buf); + } + } // If TZ environment variable is defined and not empty, use it, else use // tzname. return (getenv("TZ") && *getenv("TZ")) ? getenv("TZ") From d1bc8eeb2f7ff639d308e522745294a32c576414 Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Wed, 5 Jul 2023 17:19:08 -0700 Subject: [PATCH 2/3] Fix buffer size. --- app/src/locale.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/locale.cc b/app/src/locale.cc index b73759dd35..94f90759c4 100644 --- a/app/src/locale.cc +++ b/app/src/locale.cc @@ -185,7 +185,7 @@ std::string GetTimezone() { FILE* tz_file = fopen("/etc/timezone", "r"); if (tz_file) { const size_t kBufSize = 128; - char buf[128]; + char buf[kBufSize]; if (fgets(buf, kBufSize, tz_file)) { // Remove a trailing '\n', if any. size_t len = strlen(buf); From a4f90bf0d28bb08e53519ac0a7c416cded5e607c Mon Sep 17 00:00:00 2001 From: Jon Simantov Date: Wed, 5 Jul 2023 17:19:20 -0700 Subject: [PATCH 3/3] Format code. --- app/src/locale.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/locale.cc b/app/src/locale.cc index 94f90759c4..cc968fd415 100644 --- a/app/src/locale.cc +++ b/app/src/locale.cc @@ -31,6 +31,7 @@ #include #elif FIREBASE_PLATFORM_LINUX #include + #include #include #else @@ -189,8 +190,8 @@ std::string GetTimezone() { if (fgets(buf, kBufSize, tz_file)) { // Remove a trailing '\n', if any. size_t len = strlen(buf); - if (buf[len-1] == '\n') { - buf[len-1] = '\0'; + if (buf[len - 1] == '\n') { + buf[len - 1] = '\0'; } return std::string(buf); }