diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java
index 02db8a4ab9e..742bd04eac4 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java
@@ -28,7 +28,10 @@ import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
- *
+ * An OptionReference
plays two roles in the managed build model.
+ * It is used to store overridden option values in a toolchain specification at
+ * the level of a Configuration
and it stores user option settings
+ * between sessions.
*/
public class OptionReference implements IOption {
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionListFieldEditor.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionListFieldEditor.java
index 83315b538fe..681949f82bb 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionListFieldEditor.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionListFieldEditor.java
@@ -54,7 +54,7 @@ public class BuildOptionListFieldEditor extends FieldEditor {
// Constants for externalized strings
private static final String BROWSE = "BuildPropertyCommon.label.browse"; //$NON-NLS-1$
private int type;
-
+
/**
* @param parentShell
* @param dialogTitle
@@ -81,7 +81,7 @@ public class BuildOptionListFieldEditor extends FieldEditor {
String result;
switch (type) {
case IOption.BROWSE_DIR :
- DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.OPEN);
+ DirectoryDialog dialog = new DirectoryDialog(getParentShell(), SWT.OPEN);
currentName = getText().getText();
if(currentName != null && currentName.trim().length() != 0) {
dialog.setFilterPath(currentName);
@@ -92,7 +92,7 @@ public class BuildOptionListFieldEditor extends FieldEditor {
}
break;
case IOption.BROWSE_FILE:
- FileDialog browseDialog = new FileDialog(getShell());
+ FileDialog browseDialog = new FileDialog(getParentShell());
currentName = getText().getText();
if (currentName != null && currentName.trim().length() != 0) {
browseDialog.setFilterPath(currentName);
@@ -478,10 +478,11 @@ public class BuildOptionListFieldEditor extends FieldEditor {
// Prompt for value
SelectPathInputDialog dialog = new SelectPathInputDialog(getShell(), title, message, initVal, null, browseType);
if (dialog.open() == SelectPathInputDialog.OK) {
- input = dialog.getValue().trim();
+ input = dialog.getValue();
+ if (input == null || input.length() == 0) return ""; //$NON-NLS-1$
}
- // Convert the value based on the type of input we expect
+ // Double-quote the spaces in paths (if any)
switch (browseType) {
case IOption.BROWSE_DIR:
case IOption.BROWSE_FILE: