Addition of previous bugfix. Added project based path to search-path.
authortoshihiro <toshihiro>
Tue, 19 Jun 2007 12:40:15 +0000 (12:40 +0000)
committertoshihiro <toshihiro>
Tue, 19 Jun 2007 12:40:15 +0000 (12:40 +0000)
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/util/PHPFileUtil.java

index 9e8563e..39dadfc 100644 (file)
@@ -14,7 +14,6 @@ import org.eclipse.core.filebuffers.FileBuffers;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.ui.IEditorDescriptor;
@@ -161,46 +160,33 @@ public class PHPFileUtil {
 
                File file = null;
                IPath path = null;
-               path = documentRootPath.append(includeNameString);
-               file = path.toFile();
-               if (file.exists()) {
-                       return path;
-               }
 
-               if (includeNameString.startsWith("../")) {
-                       path = project.getLocation().append(
-                                       resourcePath.removeLastSegments(1));
-                       path = path.append(includeNameString);
-                       file = path.toFile();
-                       if (file.exists()) {
-                               return path;
-                       }
+               // script location based
+               path = project.getLocation().append(resourcePath.removeLastSegments(1))
+                               .append(includeNameString);
+               if (fileExists(path, false)) {
+                       return path;
                }
 
-               // includeNameString contains no path separator
-               path = project.getLocation().append(resourcePath.removeLastSegments(1));
-               path = path.append(includeNameString);
-               file = path.toFile();
-               if (file.exists()) {
+               // project root based
+               path = project.getLocation().append(includeNameString);
+               if (fileExists(path, false)) {
                        return path;
                }
 
-               // check if linked resource
-               IFile ifile = FileBuffers.getWorkspaceFileAtLocation(path);
-               if (ifile != null) {
-                       file = ifile.getLocation().toFile();
-                       if (file.exists()) {
-                               return path;
-                       }
+               // DocumentRoot (absolute path) based
+               path = documentRootPath.append(includeNameString);
+               if (fileExists(path, true)) {
+                       return path;
                }
 
+               // IncludePaths settings (absolute path) based
                List includePaths = ProjectPrefUtil.getIncludePaths(project);
                if (includePaths.size() > 0) {
                        for (int i = 0; i < includePaths.size(); i++) {
                                path = new Path(includePaths.get(i).toString())
                                                .append(includeNameString);
-                               file = path.toFile();
-                               if (file.exists()) {
+                               if (fileExists(path, true)) {
                                        return path;
                                }
                        }
@@ -208,4 +194,20 @@ public class PHPFileUtil {
                return null;
        }
 
+       private static boolean fileExists(IPath path, boolean absolute) {
+               File file = path.toFile();
+               if (file.exists()) {
+                       return true;
+               }
+               if (!absolute) {
+                       IFile ifile = FileBuffers.getWorkspaceFileAtLocation(path);
+                       if (ifile != null) {
+                               file = ifile.getLocation().toFile();
+                               if (file.exists()) {
+                                       return true;
+                               }
+                       }
+               }
+               return false;
+       }
 }
\ No newline at end of file