diff --git a/platform/platform-impl/src/com/intellij/ide/CommandLineProcessor.java b/platform/platform-impl/src/com/intellij/ide/CommandLineProcessor.java index e97ed83ff357..0f0a93d24bec 100644 --- a/platform/platform-impl/src/com/intellij/ide/CommandLineProcessor.java +++ b/platform/platform-impl/src/com/intellij/ide/CommandLineProcessor.java @@ -168,6 +168,9 @@ public class CommandLineProcessor { if (StringUtil.isQuotedString(arg)) { arg = StringUtil.stripQuotesAroundValue(arg); } + if (currentDirectory != null) { + arg = new File(currentDirectory, arg).getAbsolutePath(); + } if (line != -1) { final VirtualFile virtualFile = LocalFileSystem.getInstance().refreshAndFindFileByPath(arg); if (virtualFile != null) { diff --git a/platform/platform-impl/src/com/intellij/idea/SocketLock.java b/platform/platform-impl/src/com/intellij/idea/SocketLock.java index 7e15b46f7335..ecdf70aed992 100644 --- a/platform/platform-impl/src/com/intellij/idea/SocketLock.java +++ b/platform/platform-impl/src/com/intellij/idea/SocketLock.java @@ -161,7 +161,7 @@ public class SocketLock { if (result.contains(path)) { try { DataOutputStream out = new DataOutputStream(socket.getOutputStream()); - out.writeUTF(ACTIVATE_COMMAND + StringUtil.join(args, "\0")); + out.writeUTF(ACTIVATE_COMMAND + new File(".").getAbsolutePath() + "\0" + StringUtil.join(args, "\0")); out.flush(); String response = in.readUTF(); if (response.equals("ok")) { diff --git a/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java b/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java index 8edb74113ee8..019aff2aa49e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java @@ -251,7 +251,7 @@ public class ApplicationImpl extends ComponentManagerImpl implements Application invokeLater(new Runnable() { @Override public void run() { - final Project project = CommandLineProcessor.processExternalCommandLine(args, null); + final Project project = CommandLineProcessor.processExternalCommandLine(args.subList(1, args.size()), args.get(0)); final JFrame frame; if (project != null) { frame = (JFrame)WindowManager.getInstance().getIdeFrame(project);