1.1 restoration
[mir.git] / source / mircoders / servlet / ServletModuleFileEdit.java
index 30a4bfb..8354040 100755 (executable)
@@ -36,14 +36,12 @@ import java.io.File;
 import java.io.FileReader;
 import java.io.FileWriter;
 import java.io.FilenameFilter;
-import java.io.StringReader;
 import java.io.StringWriter;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Vector;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -62,7 +60,7 @@ import mir.util.URLBuilder;
  *  in the config file.
  *
  * @author $Author: zapata $
- * @version $Revision: 1.13.2.6 $ $Date: 2003/12/21 17:50:32 $
+ * @version $Revision: 1.13.2.7 $ $Date: 2004/11/21 22:07:14 $
  *
  */
 
@@ -121,7 +119,7 @@ public class ServletModuleFileEdit extends ServletModule
         String setting = settings[i].trim();
 
         if (setting.length() > 0) {
-          List parts = StringRoutines.splitString(setting, ":");
+          List parts = StringRoutines.splitStringWithEscape(setting, ':', '\\');
           if (parts.size() != 4) {
             logger.error("config error: " + settings[i] + ", 4 parts expected");
           }
@@ -195,30 +193,37 @@ public class ServletModuleFileEdit extends ServletModule
     }
   }
 
+  /**
+   * Called when an edited file is saved by the user
+   */
   public void update(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc
   {
     HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
     String filename = requestParser.getParameter("filename");
     String subDirectory = requestParser.getParameter("subdirectory");
-    String text = requestParser.getParameter("text");
+    String text =
+        StringRoutines.performRegularExpressionReplacement(
+            requestParser.getParameter("text"),
+            "\r\n",
+            System.getProperty("line.separator"));
     FileEditDirectory directory = getDirectory(aRequest);
 
     try {
       File f = new File(new File(directory.getRootDirectory(), subDirectory), filename);
 
       if (validateDirectory(directory, f)) {
-        StringReader in = new StringReader(text);
         FileWriter out = new FileWriter(f);
-
-        int c;
-        while ( (c = in.read()) != -1)
-          out.write(c);
-        in.close();
-        out.close();
+        try {
+          out.write(text.toCharArray());
+        }
+        finally {
+          out.close();
+        }
 
         logAdminUsage(aRequest, f.getAbsolutePath(), "object modified");
-
-
+/*
+        MirGlobal.getChangeEngine().getTracker().addChange(f.getCanonicalPath());
+*/
         editFile(directory, filename, subDirectory, aRequest, aResponse);
       }
     }