| OLD | NEW | 
|    1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |    1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 
|    2 // Use of this source code is governed by a BSD-style license that can be |    2 // Use of this source code is governed by a BSD-style license that can be | 
|    3 // found in the LICENSE file. |    3 // found in the LICENSE file. | 
|    4  |    4  | 
|    5 #include "base/files/file_enumerator.h" |    5 #include "base/files/file_enumerator.h" | 
|    6  |    6  | 
|    7 #include <dirent.h> |    7 #include <dirent.h> | 
|    8 #include <errno.h> |    8 #include <errno.h> | 
|    9 #include <fnmatch.h> |    9 #include <fnmatch.h> | 
|   10 #include <stdint.h> |   10 #include <stdint.h> | 
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  119 } |  119 } | 
|  120  |  120  | 
|  121 bool FileEnumerator::ReadDirectory(std::vector<FileInfo>* entries, |  121 bool FileEnumerator::ReadDirectory(std::vector<FileInfo>* entries, | 
|  122                                    const FilePath& source, bool show_links) { |  122                                    const FilePath& source, bool show_links) { | 
|  123   base::ThreadRestrictions::AssertIOAllowed(); |  123   base::ThreadRestrictions::AssertIOAllowed(); | 
|  124   DIR* dir = opendir(source.value().c_str()); |  124   DIR* dir = opendir(source.value().c_str()); | 
|  125   if (!dir) |  125   if (!dir) | 
|  126     return false; |  126     return false; | 
|  127  |  127  | 
|  128 #if !defined(OS_LINUX) && !defined(OS_MACOSX) && !defined(OS_BSD) && \ |  128 #if !defined(OS_LINUX) && !defined(OS_MACOSX) && !defined(OS_BSD) && \ | 
|  129     !defined(OS_SOLARIS) && !defined(OS_ANDROID) |  129     !defined(OS_SOLARIS) && !defined(OS_ANDROID) && !defined(OS_FUCHSIA) | 
|  130   #error Port warning: depending on the definition of struct dirent, \ |  130 #error Port warning: depending on the definition of struct dirent, \ | 
|  131          additional space for pathname may be needed |  131          additional space for pathname may be needed | 
|  132 #endif |  132 #endif | 
|  133  |  133  | 
|  134   struct dirent dent_buf; |  134   struct dirent dent_buf; | 
|  135   struct dirent* dent; |  135   struct dirent* dent; | 
|  136   while (readdir_r(dir, &dent_buf, &dent) == 0 && dent) { |  136   while (readdir_r(dir, &dent_buf, &dent) == 0 && dent) { | 
|  137     FileInfo info; |  137     FileInfo info; | 
|  138     info.filename_ = FilePath(dent->d_name); |  138     info.filename_ = FilePath(dent->d_name); | 
|  139  |  139  | 
|  140     FilePath full_name = source.Append(dent->d_name); |  140     FilePath full_name = source.Append(dent->d_name); | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
|  153       memset(&info.stat_, 0, sizeof(info.stat_)); |  153       memset(&info.stat_, 0, sizeof(info.stat_)); | 
|  154     } |  154     } | 
|  155     entries->push_back(info); |  155     entries->push_back(info); | 
|  156   } |  156   } | 
|  157  |  157  | 
|  158   closedir(dir); |  158   closedir(dir); | 
|  159   return true; |  159   return true; | 
|  160 } |  160 } | 
|  161  |  161  | 
|  162 }  // namespace base |  162 }  // namespace base | 
| OLD | NEW |