Andrew Overholt b381f93
### Eclipse Workspace Patch 1.0
Andrew Overholt b381f93
#P org.eclipse.swt
Andrew Overholt b381f93
Index: Eclipse_SWT_Mozilla/common/org/eclipse/swt/browser/AppFileLocProvider.java
Andrew Overholt b381f93
===================================================================
Andrew Overholt b381f93
RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse_SWT_Mozilla/common/org/eclipse/swt/browser/AppFileLocProvider.java,v
Andrew Overholt b381f93
retrieving revision 1.10
Andrew Overholt b381f93
diff -u -r1.10 AppFileLocProvider.java
Andrew Overholt b381f93
--- Eclipse_SWT_Mozilla/common/org/eclipse/swt/browser/AppFileLocProvider.java	23 Aug 2007 17:10:46 -0000	1.10
Andrew Overholt b381f93
+++ Eclipse_SWT_Mozilla/common/org/eclipse/swt/browser/AppFileLocProvider.java	14 May 2008 18:08:48 -0000
Andrew Overholt b381f93
@@ -12,7 +12,7 @@
Andrew Overholt b381f93
 
Andrew Overholt b381f93
 import java.util.Vector;
Andrew Overholt b381f93
 
Andrew Overholt b381f93
-import org.eclipse.swt.internal.C;
Andrew Overholt b381f93
+import org.eclipse.swt.internal.*;
Andrew Overholt b381f93
 import org.eclipse.swt.internal.mozilla.*;
Andrew Overholt b381f93
 
Andrew Overholt b381f93
 class AppFileLocProvider {
Andrew Overholt b381f93
@@ -119,6 +119,19 @@
Andrew Overholt b381f93
 
Andrew Overholt b381f93
 void setProfilePath (String path) {
Andrew Overholt b381f93
 	profilePath = path;
Andrew Overholt b381f93
+	if (!Compatibility.fileExists (path, "")) { //$NON-NLS-1$
Andrew Overholt b381f93
+		int /*long*/[] result = new int /*long*/[1];
Andrew Overholt b381f93
+		nsEmbedString pathString = new nsEmbedString (path);
Andrew Overholt b381f93
+		int rc = XPCOM.NS_NewLocalFile (pathString.getAddress (), true, result);
Andrew Overholt b381f93
+		if (rc != XPCOM.NS_OK) Mozilla.error (rc);
Andrew Overholt b381f93
+		if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
Andrew Overholt b381f93
+		pathString.dispose ();
Andrew Overholt b381f93
+
Andrew Overholt b381f93
+		nsILocalFile file = new nsILocalFile (result [0]);
Andrew Overholt b381f93
+		rc = file.Create (nsILocalFile.DIRECTORY_TYPE, 0700);
Andrew Overholt b381f93
+		if (rc != XPCOM.NS_OK) Mozilla.error (rc);
Andrew Overholt b381f93
+		file.Release ();
Andrew Overholt b381f93
+	}
Andrew Overholt b381f93
 }
Andrew Overholt b381f93
 
Andrew Overholt b381f93
 /* nsIDirectoryServiceProvider2 */
Andrew Overholt b381f93
Index: Eclipse_SWT/common_j2se/org/eclipse/swt/internal/Compatibility.java
Andrew Overholt b381f93
===================================================================
Andrew Overholt b381f93
RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse_SWT/common_j2se/org/eclipse/swt/internal/Compatibility.java,v
Andrew Overholt b381f93
retrieving revision 1.28
Andrew Overholt b381f93
diff -u -r1.28 Compatibility.java
Andrew Overholt b381f93
--- Eclipse_SWT/common_j2se/org/eclipse/swt/internal/Compatibility.java	10 Oct 2007 18:36:05 -0000	1.28
Andrew Overholt b381f93
+++ Eclipse_SWT/common_j2se/org/eclipse/swt/internal/Compatibility.java	14 May 2008 18:08:48 -0000
Andrew Overholt b381f93
@@ -99,6 +99,17 @@
Andrew Overholt b381f93
 }
Andrew Overholt b381f93
 
Andrew Overholt b381f93
 /**
Andrew Overholt b381f93
+ * Answers whether the indicated file exists or not.
Andrew Overholt b381f93
+ * 
Andrew Overholt b381f93
+ * @param parent the file's parent directory
Andrew Overholt b381f93
+ * @param child the file's name
Andrew Overholt b381f93
+ * @return true if the file exists
Andrew Overholt b381f93
+ */
Andrew Overholt b381f93
+public static boolean fileExists(String parent, String child) {
Andrew Overholt b381f93
+	return new File (parent, child).exists();
Andrew Overholt b381f93
+}
Andrew Overholt b381f93
+
Andrew Overholt b381f93
+/**
Andrew Overholt b381f93
  * Answers the most positive (i.e. closest to positive infinity)
Andrew Overholt b381f93
  * integer value which is less than the number obtained by dividing
Andrew Overholt b381f93
  * the first argument p by the second argument q.