| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this |
| 2 // source code is governed by a BSD-style license that can be found in the | 2 // source code is governed by a BSD-style license that can be found in the |
| 3 // LICENSE file. | 3 // LICENSE file. |
| 4 | 4 |
| 5 #include "net/ftp/ftp_directory_listing_parser_windows.h" | 5 #include "net/ftp/ftp_directory_listing_parser_windows.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
| 10 #include "net/ftp/ftp_util.h" | 10 #include "net/ftp/ftp_util.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 if (columns[1].length() != 7) | 41 if (columns[1].length() != 7) |
| 42 return false; | 42 return false; |
| 43 std::vector<string16> time_parts; | 43 std::vector<string16> time_parts; |
| 44 SplitString(columns[1].substr(0, 5), ':', &time_parts); | 44 SplitString(columns[1].substr(0, 5), ':', &time_parts); |
| 45 if (time_parts.size() != 2) | 45 if (time_parts.size() != 2) |
| 46 return false; | 46 return false; |
| 47 if (!StringToInt(time_parts[0], &time_exploded.hour)) | 47 if (!StringToInt(time_parts[0], &time_exploded.hour)) |
| 48 return false; | 48 return false; |
| 49 if (!StringToInt(time_parts[1], &time_exploded.minute)) | 49 if (!StringToInt(time_parts[1], &time_exploded.minute)) |
| 50 return false; | 50 return false; |
| 51 if (!time_exploded.HasValidValues()) |
| 52 return false; |
| 51 string16 am_or_pm(columns[1].substr(5, 2)); | 53 string16 am_or_pm(columns[1].substr(5, 2)); |
| 52 if (EqualsASCII(am_or_pm, "PM")) | 54 if (EqualsASCII(am_or_pm, "PM")) { |
| 53 time_exploded.hour += 12; | 55 if (time_exploded.hour < 12) |
| 54 else if (!EqualsASCII(am_or_pm, "AM")) | 56 time_exploded.hour += 12; |
| 57 } else if (EqualsASCII(am_or_pm, "AM")) { |
| 58 if (time_exploded.hour == 12) |
| 59 time_exploded.hour = 0; |
| 60 } else { |
| 55 return false; | 61 return false; |
| 62 } |
| 56 | 63 |
| 57 // We don't know the time zone of the server, so just use local time. | 64 // We don't know the time zone of the server, so just use local time. |
| 58 *time = base::Time::FromLocalExploded(time_exploded); | 65 *time = base::Time::FromLocalExploded(time_exploded); |
| 59 return true; | 66 return true; |
| 60 } | 67 } |
| 61 | 68 |
| 62 } // namespace | 69 } // namespace |
| 63 | 70 |
| 64 namespace net { | 71 namespace net { |
| 65 | 72 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 return !entries_.empty(); | 112 return !entries_.empty(); |
| 106 } | 113 } |
| 107 | 114 |
| 108 FtpDirectoryListingEntry FtpDirectoryListingParserWindows::PopEntry() { | 115 FtpDirectoryListingEntry FtpDirectoryListingParserWindows::PopEntry() { |
| 109 FtpDirectoryListingEntry entry = entries_.front(); | 116 FtpDirectoryListingEntry entry = entries_.front(); |
| 110 entries_.pop(); | 117 entries_.pop(); |
| 111 return entry; | 118 return entry; |
| 112 } | 119 } |
| 113 | 120 |
| 114 } // namespace net | 121 } // namespace net |
| OLD | NEW |