Index: trunk/Ohana/src/opihi/cmd.data/read_vectors.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/read_vectors.c	(revision 39599)
+++ trunk/Ohana/src/opihi/cmd.data/read_vectors.c	(revision 39634)
@@ -246,4 +246,5 @@
 	  c1 = c0 + Nstart;
 	  bufferStatus = FALSE;
+	  if (Nstart == 0) continue; // if we have reached EOF and c0 points at the last valid character, we are done
 	} else {
 	  // if we have not reached EOF, we need to shift the buffer to the start of this line and read more data
Index: trunk/Ohana/src/opihi/cmd.data/test/read.sh
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/test/read.sh	(revision 39599)
+++ trunk/Ohana/src/opihi/cmd.data/test/read.sh	(revision 39634)
@@ -1,8 +1,8 @@
 
 list tests
- #test1
- #test2
- #test3
- #test4
+ test1
+ test2
+ test3
+ test4
  test5
  test6
@@ -38,6 +38,10 @@
  read t1:int 1 t2:int 2 t3:int 3
 
+ vtype t1 -var type; if ("$type" != "INT") set PASS = 0
+ vtype t2 -var type; if ("$type" != "INT") set PASS = 0
+ vtype t3 -var type; if ("$type" != "INT") set PASS = 0
+
  # note: no way to verify the mode of a vector
- vectors
+ if ($VERBOSE >= 2) vectors
 
  if (t1[0] != 1) set PASS = 0
@@ -83,6 +87,9 @@
  read t1:int 1 t2:int 2 t3:int 3
 
- # note: no way to verify the mode of a vector
- vectors
+ vtype t1 -var type; if ("$type" != "INT") set PASS = 0
+ vtype t2 -var type; if ("$type" != "INT") set PASS = 0
+ vtype t3 -var type; if ("$type" != "INT") set PASS = 0
+
+ if ($VERBOSE >= 2) vectors
 
  if (t1[0] != 1) set PASS = 0
@@ -128,6 +135,9 @@
  read t1:int 1 t2:int 2 t3:int 3
 
- # note: no way to verify the mode of a vector
- vectors
+ vtype t1 -var type; if ("$type" != "INT") set PASS = 0
+ vtype t2 -var type; if ("$type" != "INT") set PASS = 0
+ vtype t3 -var type; if ("$type" != "INT") set PASS = 0
+
+ if ($VERBOSE >= 2) vectors
 
  if (t1[0] != 1) set PASS = 0
