escape a url when launching with non-default browser

This commit is contained in:
Kirill Safonov
2009-09-01 12:14:11 +04:00
parent 81b4b7d876
commit a15fef351b
2 changed files with 14 additions and 7 deletions
@@ -97,12 +97,7 @@ public class BrowserUtil {
else {
commandLine = new String[command.length + 1];
System.arraycopy(command, 0, commandLine, 0, command.length);
if (SystemInfo.isWindows) {
commandLine[commandLine.length - 1] = "\"" + urlString + "\"";
}
else {
commandLine[commandLine.length - 1] = urlString.replaceAll(" ", "%20");
}
commandLine[commandLine.length - 1] = escapeUrl(urlString);
}
Runtime.getRuntime().exec(commandLine);
}
@@ -207,6 +202,16 @@ public class BrowserUtil {
}
}
@NotNull
public static String escapeUrl(@NotNull @NonNls String url) {
if (SystemInfo.isWindows) {
return "\"" + url + "\"";
}
else {
return url.replaceAll(" ", "%20");
}
}
private static String extractFiles(String url) {
try {
int sharpPos = url.indexOf('#');
@@ -1,5 +1,6 @@
package com.intellij.ide.browsers;
import com.intellij.ide.BrowserUtil;
import com.intellij.ide.browsers.firefox.FirefoxSettings;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.components.ApplicationComponent;
@@ -172,10 +173,11 @@ public class BrowsersConfiguration implements ApplicationComponent, PersistentSt
getInstance()._launchBrowser(family, url);
}
private void _launchBrowser(final BrowserFamily family, @NotNull final String url) {
private void _launchBrowser(final BrowserFamily family, @NotNull String url) {
final WebBrowserSettings settings = getBrowserSettings(family);
final String path = settings.getPath();
if (path != null && path.length() > 0) {
url = BrowserUtil.escapeUrl(url);
try {
final BrowserSpecificSettings specificSettings = settings.getBrowserSpecificSettings();
String[] parameters;