Merge pull request #637 from xiaobfly/master

fix LogCleaner::IsLogFromCurrentProject for filename_extension
diff --git a/src/logging.cc b/src/logging.cc
index 653240b..cfece07 100644
--- a/src/logging.cc
+++ b/src/logging.cc
@@ -1389,6 +1389,7 @@
   // after:  "/tmp/<base_filename>.<create_time>.<pid>"
   string cleaned_base_filename;
 
+  size_t real_filepath_size = filepath.size();
   for (size_t i = 0; i < base_filename.size(); ++i) {
     const char& c = base_filename[i];
 
@@ -1409,15 +1410,29 @@
   // `cleaned_base_filename` in `filepath` if the user
   // has set a custom filename extension.
   if (!filename_extension.empty()) {
-    if (filepath.find(filename_extension) != cleaned_base_filename.size()) {
+    if (cleaned_base_filename.size() >= real_filepath_size) {
       return false;
     }
-    cleaned_base_filename += filename_extension;
+    // for origin version, `filename_extension` is middle of the `filepath`.
+    string ext = filepath.substr(cleaned_base_filename.size(), filename_extension.size());
+    if (ext == filename_extension) {
+      cleaned_base_filename += filename_extension;
+    }
+    else {
+      // for new version, `filename_extension` is right of the `filepath`.
+      if (filename_extension.size() >= real_filepath_size) {
+        return false;
+      }
+      real_filepath_size = filepath.size() - filename_extension.size();
+      if (filepath.substr(real_filepath_size) != filename_extension) {
+        return false;
+      }
+    }
   }
 
   // The characters after `cleaned_base_filename` should match the format:
   // YYYYMMDD-HHMMSS.pid
-  for (size_t i = cleaned_base_filename.size(); i < filepath.size(); i++) {
+  for (size_t i = cleaned_base_filename.size(); i < real_filepath_size; i++) {
     const char& c = filepath[i];
 
     if (i <= cleaned_base_filename.size() + 7) { // 0 ~ 7 : YYYYMMDD