checkpoint
[sbp.git] / src / edu / berkeley / sbp / chr / CharInput.java
index b6a175d..15f1289 100644 (file)
@@ -52,11 +52,19 @@ public class CharInput extends Cartesian.Input<Character> {
         if (end < start) end = start;
         if (end > cache.length()) end = cache.length();
         String ret;
         if (end < start) end = start;
         if (end > cache.length()) end = cache.length();
         String ret;
-        if (end-start < 60) ret = cache.substring(start, end);
-        else ret = cache.substring(start, start+25) +
+        if (end-start < 60) ret = cachesubstring(start, end);
+        else ret = cachesubstring(start, start+25) +
                  "..." +
                  "..." +
-                 cache.substring(end-25, end);
+                 cachesubstring(end-25, end);
         return StringUtil.escapify(ret, "\n\r");
     }
 
         return StringUtil.escapify(ret, "\n\r");
     }
 
+    private String cachesubstring(int start, int end) {
+        if (start < 0) start = 0;
+        if (end < 0)   end = 0;
+        if (start >= cache.length()) start = cache.length();
+        if (end >= cache.length()) end = cache.length();
+        return cache.substring(start, end);
+    }
+
 }
 }