diff --git a/src/google/protobuf/io/io_win32.cc b/src/google/protobuf/io/io_win32.cc index 46e46e88d0..80e7c4e6cf 100755 --- a/src/google/protobuf/io/io_win32.cc +++ b/src/google/protobuf/io/io_win32.cc @@ -362,7 +362,7 @@ wstring testonly_utf8_to_winpath(const char* path) { return as_windows_path(path, &wpath) ? wpath : wstring(); } -int ExpandWildcards( +ExpandWildcardsResult ExpandWildcards( const string& path, std::function consume) { if (path.find_first_of("*?") == string::npos) { // There are no wildcards in the path, we don't need to expand it. @@ -392,7 +392,7 @@ int ExpandWildcards( dirname = path.substr(0, pos + 1); } - int matched = ExpandWildcardsResult::kErrorNoMatchingFile; + ExpandWildcardsResult matched = ExpandWildcardsResult::kErrorNoMatchingFile; do { // Ignore ".", "..", and directories. if ((metadata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0 @@ -430,7 +430,7 @@ int ExpandWildcards( dirname = path.substr(0, pos + 1); } - int matched = ExpandWildcardsResult::kErrorNoMatchingFile; + ExpandWildcardsResult matched = ExpandWildcardsResult::kErrorNoMatchingFile; do { // Ignore ".", "..", and directories. if ((metadata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0 diff --git a/src/google/protobuf/io/io_win32.h b/src/google/protobuf/io/io_win32.h index 123fdb460b..775252b35b 100755 --- a/src/google/protobuf/io/io_win32.h +++ b/src/google/protobuf/io/io_win32.h @@ -76,13 +76,11 @@ PROTOBUF_EXPORT int stat(const char* path, struct _stat* buffer); PROTOBUF_EXPORT int write(int fd, const void* buffer, size_t size); PROTOBUF_EXPORT std::wstring testonly_utf8_to_winpath(const char* path); -struct ExpandWildcardsResult { - enum { - kSuccess = 0, - kErrorNoMatchingFile = 1, - kErrorInputPathConversion = 2, - kErrorOutputPathConversion = 3, - }; +enum ExpandWildcardsResult { + kSuccess = 0, + kErrorNoMatchingFile = 1, + kErrorInputPathConversion = 2, + kErrorOutputPathConversion = 3, }; // Expand wildcards in a path pattern, feed the result to a consumer function. @@ -93,7 +91,7 @@ struct ExpandWildcardsResult { // `consume`. The resulting paths may not be absolute nor normalized. // // The function returns a value from `ExpandWildcardsResult`. -LIBPROTOBUF_EXPORT int ExpandWildcards( +LIBPROTOBUF_EXPORT ExpandWildcardsResult ExpandWildcards( const std::string& path, std::function consume); namespace strings { diff --git a/src/google/protobuf/io/io_win32_unittest.cc b/src/google/protobuf/io/io_win32_unittest.cc index cd7b127b9b..be2101e04c 100755 --- a/src/google/protobuf/io/io_win32_unittest.cc +++ b/src/google/protobuf/io/io_win32_unittest.cc @@ -429,7 +429,7 @@ TEST_F(IoWin32Test, ExpandWildcardsInRelativePathTest) { int found_b = 0; vector found_bad; // Assert matching a relative path pattern. Results should also be relative. - int result = + ExpandWildcardsResult result = ExpandWildcards( string(kUtf8Text) + "\\foo*.proto", [&found_a, &found_b, &found_bad](const string& p) { @@ -481,7 +481,7 @@ TEST_F(IoWin32Test, ExpandWildcardsInAbsolutePathTest) { vector found_bad; // Assert matching an absolute path. The results should also use absolute // path. - int result = + ExpandWildcardsResult result = ExpandWildcards( string(test_tmpdir) + "\\" + kUtf8Text + "\\foo*.proto", [this, &found_a, &found_b, &found_bad](const string& p) { @@ -544,7 +544,7 @@ TEST_F(IoWin32Test, ExpandWildcardsIgnoresDirectoriesTest) { vector found_bad; // Assert that the pattern matches exactly the expected files, and using the // absolute path as did the input pattern. - int result = + ExpandWildcardsResult result = ExpandWildcards( string(kUtf8Text) + "\\foo*.proto", [&found_a, &found_c, &found_bad](const string& p) { @@ -573,7 +573,7 @@ TEST_F(IoWin32Test, ExpandWildcardsFailsIfNoFileMatchesTest) { EXPECT_TRUE(SetCurrentDirectoryW(wtest_tmpdir.c_str())); // Control test: should match foo*.proto - int result = ExpandWildcards( + ExpandWildcardsResult result = ExpandWildcards( string(kUtf8Text) + "\\foo*.proto", [](const string&) {}); EXPECT_EQ(result, ExpandWildcardsResult::kSuccess);