Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Head[applied]: CEditor.java selection

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.203
diff -u -r1.203 ChangeLog
--- ChangeLog	1 Oct 2003 21:33:23 -0000	1.203
+++ ChangeLog	8 Oct 2003 19:02:50 -0000
@@ -1,3 +1,12 @@
+2003-10-08 Alain Magloire
+
+	Do selection better for Binary objects,  the binary
+	elements do not have offset information but only line number.
+	We can leverage, by looking at the offset corresponding to
+	the line.
+
+	* src/org/eclipse/cdt/internal/ui/CEditor.java
+
 2003-10-01 Andrew Niefer
 	-bug44032 - deleting/moving files breaks search
 		* modified src/org/eclipse/cdt/ui/CSearchResultLabelProvider getText to return empty string instead of null
Index: src/org/eclipse/cdt/internal/ui/editor/CEditor.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java,v
retrieving revision 1.32
diff -u -r1.32 CEditor.java
--- src/org/eclipse/cdt/internal/ui/editor/CEditor.java	1 Oct 2003 13:33:39 -0000	1.32
+++ src/org/eclipse/cdt/internal/ui/editor/CEditor.java	8 Oct 2003 19:02:50 -0000
@@ -349,11 +349,22 @@
 
 			// 0 length and start and non-zero start line says we know
 			// the line for some reason, but not the offset.
-			if (length == 0 && start == 0 && element.getStartLine() != 0) {
-				alternateRegion = getDocumentProvider().getDocument(getEditorInput()).getLineInformation(element.getStartLine());
-				if (alternateRegion != null) {
-					start = alternateRegion.getOffset();
-					length = alternateRegion.getLength();
+			if (length == 0 && start == 0 && element.getStartLine() > 0) {
+				// We have the information in term of lines, we can work it out.
+				// Binary elements return the first executable statement so we have to substract -1
+				start = getDocumentProvider().getDocument(getEditorInput()).getLineOffset(element.getStartLine() - 1);
+				if (element.getEndLine() > 0) {
+					length = getDocumentProvider().getDocument(getEditorInput()).getLineOffset(element.getEndLine()) - start;
+				} else {
+					length = start;
+				}
+				// create an alternate region for the keyword highlight.
+				alternateRegion = getDocumentProvider().getDocument(getEditorInput()).getLineInformation(element.getStartLine() - 1);
+				if (start == length || length < 0) {
+					if (alternateRegion != null) {
+						start = alternateRegion.getOffset();
+						length = alternateRegion.getLength();
+					}
 				}
 			}
 			setHighlightRange(start, length, moveCursor);
Index: src/org/eclipse/cdt/ui/wizards/NewCProjectWizardPage.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewCProjectWizardPage.java,v
retrieving revision 1.1
diff -u -r1.1 NewCProjectWizardPage.java
--- src/org/eclipse/cdt/ui/wizards/NewCProjectWizardPage.java	18 Aug 2003 16:10:59 -0000	1.1
+++ src/org/eclipse/cdt/ui/wizards/NewCProjectWizardPage.java	8 Oct 2003 19:02:50 -0000
@@ -336,6 +336,16 @@
 				setErrorMessage(CUIPlugin.getResourceString("CProjectWizardPage.defaultLocationError")); //$NON-NLS-1$
 				return false;
 			}
+
+			if (!useDefaults) {
+				IProject project = getProjectHandle();
+				IStatus locationStatus =
+					workspace.validateProjectLocation(project, new Path(locationFieldContents));
+				if (!locationStatus.isOK()) {
+					setErrorMessage(locationStatus.getMessage());
+					return false;
+				}
+			}
 		}
 
 		if (getProjectHandle().exists()) {



Back to the top