diff --git a/terminal/org.eclipse.tm.terminal.test/.classpath b/terminal/org.eclipse.tm.terminal.test/.classpath
index ce73933404a..7cdeb731936 100644
--- a/terminal/org.eclipse.tm.terminal.test/.classpath
+++ b/terminal/org.eclipse.tm.terminal.test/.classpath
@@ -1,7 +1,7 @@
-
+
diff --git a/terminal/org.eclipse.tm.terminal.test/.settings/org.eclipse.jdt.core.prefs b/terminal/org.eclipse.tm.terminal.test/.settings/org.eclipse.jdt.core.prefs
index fb0f754afde..ac884dbd2fc 100644
--- a/terminal/org.eclipse.tm.terminal.test/.settings/org.eclipse.jdt.core.prefs
+++ b/terminal/org.eclipse.tm.terminal.test/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,12 @@
-#Sun Mar 16 19:48:21 CET 2008
+#Fri Apr 11 20:49:09 CEST 2008
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.doc.comment.support=enabled
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
diff --git a/terminal/org.eclipse.tm.terminal.test/META-INF/MANIFEST.MF b/terminal/org.eclipse.tm.terminal.test/META-INF/MANIFEST.MF
index 86c3cc0812e..58537c05c52 100644
--- a/terminal/org.eclipse.tm.terminal.test/META-INF/MANIFEST.MF
+++ b/terminal/org.eclipse.tm.terminal.test/META-INF/MANIFEST.MF
@@ -10,7 +10,8 @@ Require-Bundle: org.junit,
org.eclipse.swt,
org.eclipse.jface,
org.eclipse.core.runtime
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
+Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
+ J2SE-1.4
Export-Package: org.eclipse.tm.internal.terminal.connector;x-internal:=true,
org.eclipse.tm.internal.terminal.emulator;x-internal:=true,
org.eclipse.tm.internal.terminal.model;x-internal:=true,
diff --git a/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/VT100EmulatorBackendTest.java b/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/VT100EmulatorBackendTest.java
index b5b927b377a..9e711db970e 100644
--- a/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/VT100EmulatorBackendTest.java
+++ b/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/VT100EmulatorBackendTest.java
@@ -1,12 +1,13 @@
/*******************************************************************************
- * Copyright (c) 2007 Wind River Systems, Inc. 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
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2007, 2008 Wind River Systems, Inc. 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* Michael Scharf (Wind River) - initial API and implementation
+ * Martin Oberhuber (Wind River) - [168197] Fix Terminal for CDC-1.1/Foundation-1.1
*******************************************************************************/
package org.eclipse.tm.internal.terminal.emulator;
@@ -34,7 +35,7 @@ public class VT100EmulatorBackendTest extends TestCase {
protected String toMultiLineText(ITerminalTextDataReadOnly term) {
return TerminalTextTestHelper.toMultiLineText(term);
}
-
+
protected void fill(ITerminalTextData term, String s) {
TerminalTextTestHelper.fill(term,s);
}
@@ -50,7 +51,7 @@ public class VT100EmulatorBackendTest extends TestCase {
* @param actual
*/
protected void assertEqualsTerm(String expected,String actual) {
- assertEquals(expected.replaceAll(" ", "."), actual.replaceAll("\000", "."));
+ assertEquals(expected.replace(' ', '.'), actual.replace('\000', '.'));
}
/**
* Used for simple text
@@ -91,7 +92,7 @@ public class VT100EmulatorBackendTest extends TestCase {
assertEquals(3,vt100.getLines());
assertEquals(4,vt100.getColumns());
assertEqualsTerm(s,toMultiLineText(term));
-
+
vt100.setCursor(0, 2);
vt100.setDimensions(2, 4);
assertEquals(0, vt100.getCursorLine());
@@ -103,7 +104,7 @@ public class VT100EmulatorBackendTest extends TestCase {
assertEquals(2, vt100.getCursorColumn());
assertEqualsTerm(s,toMultiLineText(term));
-
+
vt100.setCursor(0, 3);
vt100.setDimensions(5, 2);
assertEquals(0, vt100.getCursorLine());
@@ -126,7 +127,7 @@ public class VT100EmulatorBackendTest extends TestCase {
ITerminalTextData term=makeITerminalTextData();
IVT100EmulatorBackend vt100=makeBakend(term);
vt100.setDimensions(3, 4);
- String s =
+ String s =
"aaaa\n" +
"bbbb\n" +
"cccc\n" +
@@ -161,7 +162,7 @@ public class VT100EmulatorBackendTest extends TestCase {
"1234\n" +
"4 56\n" +
"9012",toMultiLineText(term));
-
+
fill(term, s);
vt100.setCursor(1, 1);
vt100.insertCharacters(2);
@@ -186,7 +187,7 @@ public class VT100EmulatorBackendTest extends TestCase {
vt100.setCursor(0, 0);
vt100.insertCharacters(14);
assertEqualsTerm(" ",toMultiLineText(term));
-
+
vt100.setDimensions(1, 10);
fill(term, "0123456789");
vt100.setCursor(0, 3);
@@ -210,7 +211,7 @@ public class VT100EmulatorBackendTest extends TestCase {
ITerminalTextData term=makeITerminalTextData();
IVT100EmulatorBackend vt100=makeBakend(term);
vt100.setDimensions(3, 4);
- String s =
+ String s =
"aaaa\n" +
"bbbb\n" +
"cccc\n" +
@@ -234,7 +235,7 @@ public class VT100EmulatorBackendTest extends TestCase {
" \n" +
" \n" +
" ",toMultiLineText(term));
-
+
fill(term, s);
vt100.setCursor(1, 0);
vt100.eraseToEndOfScreen();
@@ -264,7 +265,7 @@ public class VT100EmulatorBackendTest extends TestCase {
"0123\n" +
"4 \n" +
" ",toMultiLineText(term));
-
+
fill(term, s);
vt100.setCursor(1, 4);
assertEquals(1,vt100.getCursorLine());
@@ -282,7 +283,7 @@ public class VT100EmulatorBackendTest extends TestCase {
"456.\n" +
" ",toMultiLineText(term));
-
+
fill(term, s);
vt100.setCursor(1, 5);
vt100.eraseToEndOfScreen();
@@ -333,7 +334,7 @@ public class VT100EmulatorBackendTest extends TestCase {
ITerminalTextData term=makeITerminalTextData();
IVT100EmulatorBackend vt100=makeBakend(term);
vt100.setDimensions(3, 4);
- String s =
+ String s =
"aaaa\n" +
"bbbb\n" +
"cccc\n" +
@@ -357,7 +358,7 @@ public class VT100EmulatorBackendTest extends TestCase {
" 123\n" +
"4567\n" +
"8901",toMultiLineText(term));
-
+
fill(term, s);
vt100.setCursor(1, 0);
vt100.eraseToCursor();
@@ -387,7 +388,7 @@ public class VT100EmulatorBackendTest extends TestCase {
" \n" +
" 67\n" +
"8901",toMultiLineText(term));
-
+
fill(term, s);
vt100.setCursor(1, 4);
vt100.eraseToCursor();
@@ -403,7 +404,7 @@ public class VT100EmulatorBackendTest extends TestCase {
" \n" +
"8901",toMultiLineText(term));
-
+
fill(term, s);
vt100.setCursor(1, 5);
vt100.eraseToCursor();
@@ -470,7 +471,7 @@ public class VT100EmulatorBackendTest extends TestCase {
}
public void testEraseLine() {
- String s =
+ String s =
"abcde\n" +
"fghij\n" +
"klmno\n" +
@@ -496,7 +497,7 @@ public class VT100EmulatorBackendTest extends TestCase {
"zABCD\n" +
"EFGHI", toMultiLineText(term));
-
+
vt100.setDimensions(3, 5);
fill(term, s);
vt100.setCursor(2, 3);
@@ -513,7 +514,7 @@ public class VT100EmulatorBackendTest extends TestCase {
}
public void testEraseLineToEnd() {
- String s =
+ String s =
"abcde\n" +
"fghij\n" +
"klmno\n" +
@@ -553,7 +554,7 @@ public class VT100EmulatorBackendTest extends TestCase {
"zABCD\n" +
"EFGHI", toMultiLineText(term));
-
+
vt100.setDimensions(3, 5);
fill(term, s);
vt100.setCursor(2, 3);
@@ -569,7 +570,7 @@ public class VT100EmulatorBackendTest extends TestCase {
"EFG ", toMultiLineText(term));
vt100.setDimensions(3, 5);
fill(term, s);
-
+
vt100.setCursor(2, 4);
vt100.eraseLineToEnd();
assertEquals(2,vt100.getCursorLine());
@@ -597,7 +598,7 @@ public class VT100EmulatorBackendTest extends TestCase {
}
public void testEraseLineToCursor() {
- String s =
+ String s =
"abcde\n" +
"fghij\n" +
"klmno\n" +
@@ -637,7 +638,7 @@ public class VT100EmulatorBackendTest extends TestCase {
"zABCD\n" +
"EFGHI", toMultiLineText(term));
-
+
vt100.setDimensions(3, 5);
fill(term, s);
vt100.setCursor(2, 3);
@@ -653,7 +654,7 @@ public class VT100EmulatorBackendTest extends TestCase {
" I", toMultiLineText(term));
vt100.setDimensions(3, 5);
fill(term, s);
-
+
vt100.setCursor(2, 4);
vt100.eraseLineToCursor();
assertEquals(2,vt100.getCursorLine());
@@ -789,7 +790,7 @@ public class VT100EmulatorBackendTest extends TestCase {
ITerminalTextData term=makeITerminalTextData();
IVT100EmulatorBackend vt100=makeBakend(term);
vt100.setDimensions(3, 4);
- String s =
+ String s =
"aaaa\n" +
"bbbb\n" +
"cccc\n" +
@@ -824,7 +825,7 @@ public class VT100EmulatorBackendTest extends TestCase {
"1234\n" +
"467 \n" +
"9012",toMultiLineText(term));
-
+
fill(term, s);
vt100.setCursor(1, 1);
vt100.deleteCharacters(2);
@@ -849,7 +850,7 @@ public class VT100EmulatorBackendTest extends TestCase {
vt100.setCursor(0, 0);
vt100.deleteCharacters(14);
assertEqualsTerm(" ",toMultiLineText(term));
-
+
vt100.setDimensions(1, 10);
fill(term, "0123456789");
vt100.setCursor(0, 3);
@@ -861,7 +862,7 @@ public class VT100EmulatorBackendTest extends TestCase {
vt100.setCursor(0, 3);
vt100.deleteCharacters(2);
assertEqualsTerm("01256789 ",toMultiLineText(term));
-
+
vt100.setDimensions(1, 10);
fill(term, "0123456789");
vt100.setCursor(0, 3);
@@ -1038,7 +1039,7 @@ public class VT100EmulatorBackendTest extends TestCase {
"90a ", toMultiLineText(term));
assertEquals(2,vt100.getCursorLine());
assertEquals(3,vt100.getCursorColumn());
-
+
vt100.appendString("b");
assertEqualsTerm(
"0123\n" +
@@ -1047,7 +1048,7 @@ public class VT100EmulatorBackendTest extends TestCase {
" ", toMultiLineText(term));
assertEquals(2,vt100.getCursorLine());
assertEquals(0,vt100.getCursorColumn());
-
+
vt100.appendString("cd");
assertEqualsTerm(
"0123\n" +
@@ -1056,7 +1057,7 @@ public class VT100EmulatorBackendTest extends TestCase {
"cd ", toMultiLineText(term));
assertEquals(2,vt100.getCursorLine());
assertEquals(2,vt100.getCursorColumn());
-
+
vt100.appendString("efgh");
assertEqualsTerm(
"0123\n" +
@@ -1066,7 +1067,7 @@ public class VT100EmulatorBackendTest extends TestCase {
"gh ", toMultiLineText(term));
assertEquals(2,vt100.getCursorLine());
assertEquals(2,vt100.getCursorColumn());
-
+
vt100.appendString("ijklmnopqrstuvwx");
assertEqualsTerm(
"cdef\n" +
@@ -1140,7 +1141,7 @@ public class VT100EmulatorBackendTest extends TestCase {
assertEquals(2,vt100.getCursorLine());
assertEquals(3,vt100.getCursorColumn());
-
+
vt100.processNewline();
assertEqualsTerm(
"2222\n" +
diff --git a/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataWindowTest.java b/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataWindowTest.java
index 0154dad1904..5e739176cba 100644
--- a/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataWindowTest.java
+++ b/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataWindowTest.java
@@ -1,15 +1,18 @@
/*******************************************************************************
- * Copyright (c) 2007 Wind River Systems, Inc. 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
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2007, 2008 Wind River Systems, Inc. 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* Michael Scharf (Wind River) - initial API and implementation
+ * Martin Oberhuber (Wind River) - [168197] Fix Terminal for CDC-1.1/Foundation-1.1
*******************************************************************************/
package org.eclipse.tm.internal.terminal.model;
+import java.util.ArrayList;
+
import org.eclipse.tm.terminal.model.ITerminalTextData;
import org.eclipse.tm.terminal.model.LineSegment;
import org.eclipse.tm.terminal.model.Style;
@@ -37,7 +40,26 @@ public class TerminalTextDataWindowTest extends AbstractITerminalTextDataTest {
}
private String stripMultiLine(String s) {
StringBuffer b=new StringBuffer();
- String[] lines=s.split("\n");
+ // String[] lines=s.split("\n");
+ //
+ ArrayList l = new ArrayList();
+ int j = 0;
+ for (int k = 0; k < s.length(); k++) {
+ if (s.charAt(k) == '\n') {
+ l.add(s.substring(j, k));
+ j = k;
+ }
+ }
+ j = l.size() - 1;
+ while (j >= 0 && "".equals(l.get(j))) {
+ j--;
+ }
+ String[] lines = new String[j + 1];
+ while (j >= 0) {
+ lines[j] = (String) l.get(j);
+ j--;
+ }
+ //
for (int i = 0; i < lines.length; i++) {
if(i>0)
b.append("\n"); //$NON-NLS-1$
@@ -146,46 +168,46 @@ public class TerminalTextDataWindowTest extends AbstractITerminalTextDataTest {
ITerminalTextData term=makeITerminalTextData();
term.setDimensions(8, 8);
LineSegment[] segments;
-
+
term.setChars(2, 0,"0123".toCharArray(), s1);
term.setChars(2, 4,"abcd".toCharArray(), null);
segments=term.getLineSegments(2, 0, term.getWidth());
assertEquals(2, segments.length);
assertSegment(0, "0123", s1, segments[0]);
assertSegment(4, "abcd", null, segments[1]);
-
-
+
+
segments=term.getLineSegments(2, 4, term.getWidth()-4);
assertEquals(1, segments.length);
assertSegment(4, "abcd", null, segments[0]);
-
+
segments=term.getLineSegments(2, 3, 2);
assertEquals(2, segments.length);
assertSegment(3, "3", s1, segments[0]);
assertSegment(4, "a", null, segments[1]);
-
+
segments=term.getLineSegments(2, 7, 1);
assertEquals(1, segments.length);
assertSegment(7, "d", null, segments[0]);
-
+
segments=term.getLineSegments(2, 0, 1);
assertEquals(1, segments.length);
assertSegment(0, "0", s1, segments[0]);
-
+
// line 1
term.setChars(1, 0,"x".toCharArray(), s1);
term.setChars(1, 1,"y".toCharArray(), s2);
term.setChars(1, 2,"z".toCharArray(), s3);
-
+
segments=term.getLineSegments(1, 0, term.getWidth());
assertEquals(1, segments.length);
assertSegment(0, "\000\000\000\000\000\000\000\000", null, segments[0]);
-
+
// line 3
segments=term.getLineSegments(3, 0, term.getWidth());
assertEquals(1, segments.length);
assertSegment(0, "\000\000\000\000\000\000\000\000", null, segments[0]);
-
+
}
public void testGetChar() {
String s="12345\n" +
@@ -228,7 +250,7 @@ public class TerminalTextDataWindowTest extends AbstractITerminalTextDataTest {
assertSame(s, term.getStyle(line, column));
}
}
-
+
}
public void testSetChar() {
ITerminalTextData term=makeITerminalTextData();
@@ -280,7 +302,7 @@ public class TerminalTextDataWindowTest extends AbstractITerminalTextDataTest {
+ "def\n"
+ "efg\n"
+ "fgh", toMultiLineText(term));
-
+
term.setChars(3, 1, new char[]{'1','2'}, null);
assertEqualsTerm(
"abc\n"
@@ -298,7 +320,7 @@ public class TerminalTextDataWindowTest extends AbstractITerminalTextDataTest {
+ "d12\n"
+ "e12\n"
+ "fgh", toMultiLineText(term));
-
+
}
public void testSetCharsLen() {
ITerminalTextData term=makeITerminalTextData();
@@ -332,7 +354,7 @@ public class TerminalTextDataWindowTest extends AbstractITerminalTextDataTest {
+ "ABCDEF", toMultiLineText(term));
-
+
fill(term, s);
term.setChars(1, 2, chars, 3, 4, null);
assertEqualsTerm("ZYXWVU\n"
@@ -356,7 +378,7 @@ public class TerminalTextDataWindowTest extends AbstractITerminalTextDataTest {
termCopy.copyRange(term,0,0,5);
assertEqualsSimple(s, toSimple(term));
assertEqualsSimple("01234", toSimple(termCopy));
-
+
fillSimple(termCopy, sCopy);
termCopy.copyRange(term,0,0,2);
assertEqualsSimple(s, toSimple(term));
@@ -420,7 +442,7 @@ public class TerminalTextDataWindowTest extends AbstractITerminalTextDataTest {
fill(dest, sCopy);
copySelective(dest,term,1,0,new boolean []{true,false,false,true});
assertEqualsTerm(s, toMultiLineText(term));
- assertEqualsTerm(
+ assertEqualsTerm(
"222\n" +
"bbb\n" +
"ccc\n" +
@@ -430,7 +452,7 @@ public class TerminalTextDataWindowTest extends AbstractITerminalTextDataTest {
fill(dest, sCopy);
copySelective(dest,term,2,0,new boolean []{true,true});
assertEqualsTerm(s, toMultiLineText(term));
- assertEqualsTerm(
+ assertEqualsTerm(
"333\n" +
"444\n" +
"ccc\n" +
@@ -441,7 +463,7 @@ public class TerminalTextDataWindowTest extends AbstractITerminalTextDataTest {
copySelective(dest,term,0,0,new boolean []{true,true,true,true,true});
assertEqualsTerm(s, toMultiLineText(term));
assertEqualsTerm(s, toMultiLineText(dest));
-
+
fill(dest, sCopy);
copySelective(dest,term,0,0,new boolean []{false,false,false,false,false});
assertEqualsTerm(s, toMultiLineText(term));
@@ -453,7 +475,7 @@ public class TerminalTextDataWindowTest extends AbstractITerminalTextDataTest {
ITerminalTextData data=new TerminalTextData();
fillSimple(data,"abcd");
term.copy(data);
-
-
+
+
}
}
diff --git a/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextTestHelper.java b/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextTestHelper.java
index a379ed2bc48..95a91f9b3dc 100644
--- a/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextTestHelper.java
+++ b/terminal/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextTestHelper.java
@@ -1,12 +1,13 @@
/*******************************************************************************
- * Copyright (c) 2007 Wind River Systems, Inc. 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
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * Copyright (c) 2007, 2008 Wind River Systems, Inc. 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* Michael Scharf (Wind River) - initial API and implementation
+ * Martin Oberhuber (Wind River) - [168197] Fix Terminal for CDC-1.1/Foundation-1.1
*******************************************************************************/
package org.eclipse.tm.internal.terminal.model;
@@ -17,8 +18,7 @@ import org.eclipse.tm.terminal.model.StyleColor;
public class TerminalTextTestHelper {
static public String toSimple(ITerminalTextDataReadOnly term) {
- return toMultiLineText(term).replaceAll("\000", " ").replaceAll("\n", "");
-
+ return toSimple(toMultiLineText(term));
}
static public String toMultiLineText(ITerminalTextDataReadOnly term) {
StringBuffer buff=new StringBuffer();
@@ -33,8 +33,24 @@ public class TerminalTextTestHelper {
return buff.toString();
}
static public String toSimple(String str) {
- return str.replaceAll("\000", " ").replaceAll("\n", "");
-
+ //return str.replaceAll("\000", " ").replaceAll("\n", "");
+ //
+ StringBuffer buf = new StringBuffer(str.length());
+ for (int i = 0; i < str.length(); i++) {
+ char c = str.charAt(i);
+ switch (c) {
+ case '\000':
+ buf.append(' ');
+ break;
+ case '\n':
+ break;
+ default:
+ buf.append(c);
+ break;
+ }
+ }
+ return buf.toString();
+ //
}
/**
* @param term
@@ -72,7 +88,7 @@ public class TerminalTextTestHelper {
term.setDimensions(height, width);
fill(term,0,0,s);
}
-
+
static public void fill(ITerminalTextData term, int column, int line, String s) {
int xx=column;
int yy=line;