Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(555)

Unified Diff: base/sys_info_posix.cc

Issue 12212010: Truncate the download file name if it exceeds the filesystem limit. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Partially addressed review comments (#3). Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/sys_info.h ('k') | base/sys_info_win.cc » ('j') | base/sys_info_win.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/sys_info_posix.cc
diff --git a/base/sys_info_posix.cc b/base/sys_info_posix.cc
index f2119cd7fdb538ebc34699088387aa2381e8cc4e..a7c72f21cc1ff5e1e6b60b1935f48990d570c78c 100644
--- a/base/sys_info_posix.cc
+++ b/base/sys_info_posix.cc
@@ -50,6 +50,24 @@ int64 SysInfo::AmountOfFreeDiskSpace(const FilePath& path) {
return static_cast<int64>(stats.f_bavail) * stats.f_frsize;
}
+// static
+int SysInfo::GetMaximumPathComponentLength(const FilePath& path) {
+ base::ThreadRestrictions::AssertIOAllowed();
+ if (!path.IsAbsolute())
Mark Mentovai 2013/02/08 18:14:02 I don’t think this is relevant to the API. Maximum
kinaba 2013/02/12 05:51:29 Done.
+ return -1;
+
+ struct statvfs stats;
+ if (statvfs(path.value().c_str(), &stats) != 0) {
Mark Mentovai 2013/02/08 18:14:02 On Mac OS X, you need to use pathconf(…, _PC_NAME_
kinaba 2013/02/12 05:51:29 Thanks for catching it! That greatly simplifies th
+ return -1;
+ }
+#if defined(OS_ANDROID)
+ // Android uses statfs instead of statvfs. The field name differs.
Mark Mentovai 2013/02/08 18:14:02 If you’re sticking with statfs for any code… Hide
kinaba 2013/02/12 05:51:29 Done (using pathconf).
+ return static_cast<int>(stats.f_namelen);
+#else
+ return static_cast<int>(stats.f_namemax);
+#endif
+}
+
#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
// static
std::string SysInfo::OperatingSystemName() {
« no previous file with comments | « base/sys_info.h ('k') | base/sys_info_win.cc » ('j') | base/sys_info_win.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698