changeset 236:c463a891ccd3

Support reading files larger than 1024 bytes in parser module
author Michael Pavone <pavone@retrodev.com>
date Fri, 03 Jan 2014 22:13:34 -0800
parents cc1260872322
children dae093baf36c
files modules/parser.tp
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/modules/parser.tp	Fri Jan 03 19:25:40 2014 -0800
+++ b/modules/parser.tp	Fri Jan 03 22:13:34 2014 -0800
@@ -970,7 +970,14 @@
 		code <- "#{ foo <- 123 > 0x42 && 42 < 104\n bar <- 0xABC + 0b1010101\n baz <- 0b1010 * 5\n qux <- fo: 38 shizzle: bam\n quine <- 123 | [4 5 6 fiddle sticks]\n quizzle <- #[receiver meth: arg]\n blah <- :arg arg2 :arg3 { arg + arg2 + arg3 }}"
 		if: (args length) > 1 {
 			file <- os open: (args get: 1) (os O_RDONLY)
-			code <- os read: file 1024
+			code <- ""
+			chunksize <- 1024
+			readsize <- chunksize
+			while: { readsize = chunksize} do: {
+				seg <- os read: file chunksize
+				code <- code . seg
+				readsize <- seg byte_length
+			}
 		}
 		codem <- top: code
 		if: (codem matched?) {