Bugzill 40704, fix for cygwin version of svn dealing with dates

git-svn-id: https://svn.apache.org/repos/asf/ant/antlibs/svn/trunk@463852 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/org/apache/ant/svn/SvnChangeLogTask.java b/src/main/org/apache/ant/svn/SvnChangeLogTask.java
index cf2e0d2..bc61058 100644
--- a/src/main/org/apache/ant/svn/SvnChangeLogTask.java
+++ b/src/main/org/apache/ant/svn/SvnChangeLogTask.java
@@ -35,6 +35,7 @@
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.taskdefs.LogOutputStream;
 import org.apache.tools.ant.taskdefs.PumpStreamHandler;
+import org.apache.tools.ant.taskdefs.condition.Os;
 import org.apache.tools.ant.taskdefs.cvslib.CvsUser;
 import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.util.FileUtils;
@@ -68,6 +69,9 @@
  * @ant.task name="svnchangelog" category="scm"
  */
 public class SvnChangeLogTask extends AbstractSvnTask {
+    // ? On windows ?
+    private static final boolean ON_WINDOWS = Os.isFamily("windows");
+
     /** User list */
     private File usersFile;
 
@@ -165,7 +169,16 @@
 
         final SimpleDateFormat outputDate =
             new SimpleDateFormat("{yyyy-MM-dd}");
-        setStart(outputDate.format(new Date(time)));
+        String formattedDate = outputDate.format(new Date(time));
+        if (ON_WINDOWS) {
+            // BugZilla: 40704
+            // http://issues.apache.org/bugzilla/show_bug.cgi?id=40704
+            // cygwin svn has a bug in handling parameters with {}
+            // putting quotes around the date fixes this, the
+            // fix also works for the normal svn cli command.
+            formattedDate = "\"" + formattedDate + "\"";
+        }
+        setStart(formattedDate);
     }
 
 
@@ -397,4 +410,3 @@
         return true;
     }
 }
-