mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-210262 [Environment variables] when pasting several variables with semicolon at the line end
- the last entry is removed
This commit is contained in:
@@ -304,7 +304,7 @@ public class EnvVariablesTable extends ListTableWithButtons<EnvironmentVariable>
|
||||
pairs = new ArrayList<>();
|
||||
int start = 0;
|
||||
int end;
|
||||
for (end = content.indexOf(";"); end < content.length()-1; end = content.indexOf(";", end+1)) {
|
||||
for (end = content.indexOf(";"); end < content.length(); end = content.indexOf(";", end+1)) {
|
||||
if (end == -1) {
|
||||
pairs.add(content.substring(start).replace("\\;", ";"));
|
||||
break;
|
||||
@@ -317,7 +317,7 @@ public class EnvVariablesTable extends ListTableWithButtons<EnvironmentVariable>
|
||||
}
|
||||
for (String pair : pairs) {
|
||||
int pos = pair.indexOf('=');
|
||||
if (pos == -1) continue;
|
||||
if (pos <= 0) continue;
|
||||
while (pos > 0 && pair.charAt(pos - 1) == '\\') {
|
||||
pos = pair.indexOf('=', pos + 1);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.execution.util;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
public class EnvVariablesTableTest {
|
||||
|
||||
@Test
|
||||
public void parseEnvsFromText() {
|
||||
assertEquals(3, EnvVariablesTable.parseEnvsFromText("t1=val1;t2=val2;t3=val3;").size());
|
||||
assertEquals(4, EnvVariablesTable.parseEnvsFromText("t1=val1;t2=val2;t3=val3;;empty=;").size());
|
||||
assertEquals(3, EnvVariablesTable.parseEnvsFromText("t1=val1;t2=val2;t3=val3;;").size());
|
||||
assertEquals(3, EnvVariablesTable.parseEnvsFromText("t1=val1;t2=val2;t3=val3;;;").size());
|
||||
assertEquals(3, EnvVariablesTable.parseEnvsFromText("t1=val1;t2=val2;t3=val3;;noise;").size());
|
||||
assertEquals(3, EnvVariablesTable.parseEnvsFromText("t1=val1;t2=val2;t3=val3").size());
|
||||
|
||||
Map<String, String> map = EnvVariablesTable.parseEnvsFromText("t1=val1;t2=val2;t3=val\\;3");
|
||||
assertEquals(3, map.size());
|
||||
assertEquals("val;3", map.get("t3"));
|
||||
|
||||
assertEquals(0, EnvVariablesTable.parseEnvsFromText("test").size());
|
||||
assertEquals(1, EnvVariablesTable.parseEnvsFromText("test=test").size());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user