mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
escape a url when launching with non-default browser
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user