1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-09 09:15:38 +02:00

Bug 412471 - Incorrect handling of empty string as program argument in

debug mode

Change-Id: I6e8ebb74b29e34e36bd3a23db88b66b6442b2889
Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/15438
This commit is contained in:
Marc Khouzam 2013-08-13 11:51:41 -04:00
parent 2a61b0709c
commit 9685809373
2 changed files with 17 additions and 7 deletions

View file

@ -343,11 +343,15 @@ public class MICommand<V extends MIInfo> implements ICommand<V> {
builder.append('"');
}
// an empty parameter can be passed with two single quotes
if (builder.length() == 0) {
builder.append("''"); //$NON-NLS-1$
}
// Although this change makes sense, it could have impacts on many
// different commands we send to GDB. The risk outways the benefits,
// so we comment it out. See bugs 412471 and 414959 for details.
//
// // an empty parameter can be passed with two single quotes
// if (builder.length() == 0) {
// builder.append("''"); //$NON-NLS-1$
// }
//
return builder.toString();
}
}

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2008, 2011 Ericsson and others.
* Copyright (c) 2008, 2013 Ericsson and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -8,6 +8,7 @@
* Contributors:
* Ericsson - Initial API and implementation
* Sergey Prigogin (Google)
* Marc Khouzam (Ericsson) - Support empty arguments (bug 412471)
*******************************************************************************/
package org.eclipse.cdt.dsf.mi.service.command.commands;
@ -34,8 +35,13 @@ public class MIGDBSetArgs extends MIGDBSet {
String[] cmdArray = new String[arguments.length + 1];
cmdArray[0] = "args"; //$NON-NLS-1$
for (int i = 0; i < arguments.length; i++) {
if (arguments[i].isEmpty()) {
// An empty parameter can be passed with two single quotes
cmdArray[i + 1] = "''"; //$NON-NLS-1$
} else {
cmdArray[i + 1] = arguments[i];
}
}
setParameters(cmdArray);
}
}