mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-22 14:12:10 +02:00
Revert "Bug 552479: Reuse argument string to array from CommandLineUtil"
This reverts commit 1060546c36
.
This commit is contained in:
parent
1060546c36
commit
199824d975
1 changed files with 46 additions and 3 deletions
|
@ -34,6 +34,8 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
import org.eclipse.cdt.core.CCorePlugin;
|
||||||
import org.eclipse.cdt.core.IConsoleParser;
|
import org.eclipse.cdt.core.IConsoleParser;
|
||||||
|
@ -65,7 +67,6 @@ import org.eclipse.cdt.internal.core.build.Messages;
|
||||||
import org.eclipse.cdt.internal.core.model.BinaryRunner;
|
import org.eclipse.cdt.internal.core.model.BinaryRunner;
|
||||||
import org.eclipse.cdt.internal.core.model.CModelManager;
|
import org.eclipse.cdt.internal.core.model.CModelManager;
|
||||||
import org.eclipse.cdt.internal.core.parser.ParserSettings2;
|
import org.eclipse.cdt.internal.core.parser.ParserSettings2;
|
||||||
import org.eclipse.cdt.utils.CommandLineUtil;
|
|
||||||
import org.eclipse.core.filesystem.URIUtil;
|
import org.eclipse.core.filesystem.URIUtil;
|
||||||
import org.eclipse.core.resources.IBuildConfiguration;
|
import org.eclipse.core.resources.IBuildConfiguration;
|
||||||
import org.eclipse.core.resources.IContainer;
|
import org.eclipse.core.resources.IContainer;
|
||||||
|
@ -839,8 +840,50 @@ public abstract class CBuildConfiguration extends PlatformObject implements ICBu
|
||||||
* @return List of arg Strings
|
* @return List of arg Strings
|
||||||
*/
|
*/
|
||||||
private List<String> stripArgs(String argString) {
|
private List<String> stripArgs(String argString) {
|
||||||
String[] args = CommandLineUtil.argumentsToArrayUnixStyle(argString);
|
Pattern p0 = Pattern.compile("('(.*?)').*"); //$NON-NLS-1$
|
||||||
return new ArrayList<>(Arrays.asList(args));
|
Pattern p1 = Pattern.compile("([\\-](\\w|[\\-])+[=]\\\".*?\\\").*"); //$NON-NLS-1$
|
||||||
|
Pattern p2 = Pattern.compile("([\\-](\\w|[\\-])+[=]'.*?').*"); //$NON-NLS-1$
|
||||||
|
Pattern p3 = Pattern.compile("([\\-](\\w|[\\-])+[=][^\\s]+).*"); //$NON-NLS-1$
|
||||||
|
Pattern p4 = Pattern.compile("([^\\s]+).*"); //$NON-NLS-1$
|
||||||
|
boolean finished = false;
|
||||||
|
List<String> args = new ArrayList<>();
|
||||||
|
while (!finished) {
|
||||||
|
Matcher m0 = p0.matcher(argString);
|
||||||
|
if (m0.matches()) {
|
||||||
|
argString = argString.replaceFirst("'.*?'", "").trim(); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
String s = m0.group(2).trim(); // strip single quotes
|
||||||
|
args.add(s);
|
||||||
|
} else {
|
||||||
|
Matcher m1 = p1.matcher(argString);
|
||||||
|
if (m1.matches()) {
|
||||||
|
argString = argString.replaceFirst("[\\-](\\w|[\\-])+[=]\\\".*?\\\"", "").trim(); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
String s = m1.group(1).trim();
|
||||||
|
args.add(s);
|
||||||
|
} else {
|
||||||
|
Matcher m2 = p2.matcher(argString);
|
||||||
|
if (m2.matches()) {
|
||||||
|
argString = argString.replaceFirst("[\\-](\\w|[\\-])+[=]'.*?'", "").trim(); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
String s = m2.group(1).trim();
|
||||||
|
args.add(s);
|
||||||
|
} else {
|
||||||
|
Matcher m3 = p3.matcher(argString);
|
||||||
|
if (m3.matches()) {
|
||||||
|
argString = argString.replaceFirst("[\\-](\\w|[\\-])+[=][^\\s]+", "").trim(); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
args.add(m3.group(1).trim());
|
||||||
|
} else {
|
||||||
|
Matcher m4 = p4.matcher(argString);
|
||||||
|
if (m4.matches()) {
|
||||||
|
argString = argString.replaceFirst("[^\\s]+", "").trim(); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
args.add(m4.group(1).trim());
|
||||||
|
} else {
|
||||||
|
finished = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return args;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean infoChanged = false;
|
private boolean infoChanged = false;
|
||||||
|
|
Loading…
Add table
Reference in a new issue