]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
refactor: Use std::filesystem::temp_directory_path
authorJoel Rosdahl <joel@rosdahl.net>
Wed, 12 Jul 2023 18:42:42 +0000 (20:42 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Thu, 13 Jul 2023 07:00:55 +0000 (09:00 +0200)
src/MiniTrace.cpp

index cbda28ad45e0683fba9b257f117eeadaa024c06c..512628bb0fa8c2a35c97f298301dad80120e163b 100644 (file)
 #include <util/TimePoint.hpp>
 #include <util/file.hpp>
 
-#include <limits.h> // NOLINT: PATH_MAX is defined in limits.h
-
 #ifdef HAVE_UNISTD_H
 #  include <unistd.h>
 #endif
 
-namespace {
-
-std::string
-get_system_tmp_dir()
-{
-#ifndef _WIN32
-  const char* tmpdir = getenv("TMPDIR");
-  if (tmpdir) {
-    return tmpdir;
-  }
-#else
-  static char dirbuf[PATH_MAX];
-  DWORD retval = GetTempPath(PATH_MAX, dirbuf);
-  if (retval > 0 && retval < PATH_MAX) {
-    return dirbuf;
-  }
-#endif
-  return "/tmp";
-}
+#include <filesystem>
 
-} // namespace
+namespace fs = std::filesystem;
 
 MiniTrace::MiniTrace(const ArgsInfo& args_info)
   : m_args_info(args_info),
     m_trace_id(reinterpret_cast<void*>(getpid()))
 {
-  TemporaryFile tmp_file(get_system_tmp_dir() + "/ccache-trace");
+  std::error_code ec;
+  auto tmp_dir = fs::temp_directory_path();
+  if (ec) {
+    tmp_dir = "/tmp";
+  }
+  TemporaryFile tmp_file((tmp_dir / "ccache-trace").string());
   m_tmp_trace_file = tmp_file.path;
 
   mtr_init(m_tmp_trace_file.c_str());