changeset 261:074f885596ed

Merge
author Michael Pavone <pavone@retrodev.com>
date Sun, 01 Jun 2014 22:39:33 -0700
parents 56409de95f55 (diff) be224817a14b (current diff)
children 9d93e65a34be
files
diffstat 4 files changed, 31 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/modules/array.tp	Sun Jun 01 17:20:29 2014 -0700
+++ b/modules/array.tp	Sun Jun 01 22:39:33 2014 -0700
@@ -103,6 +103,16 @@
 		new
 	}
 
+	filter <- :fun {
+		new <- #[]
+		foreach: self :idx el {
+			if: (fun: el) {
+				new append: el
+			}
+		}
+		new
+	}
+
 	find:withDefault <- :pred :default{
 		idx <- 0
 		l <- length
--- a/modules/bytearray.tp	Sun Jun 01 17:20:29 2014 -0700
+++ b/modules/bytearray.tp	Sun Jun 01 22:39:33 2014 -0700
@@ -50,7 +50,7 @@
 				funret
 			}
 		}
-		buf _init
+		buf _init: size
 	}
 
 	executableFromBytes <- :bytes {
--- a/modules/string.tp	Sun Jun 01 17:20:29 2014 -0700
+++ b/modules/string.tp	Sun Jun 01 22:39:33 2014 -0700
@@ -257,6 +257,25 @@
 		pieces append: self
 	}
 
+	ltrim <- {
+		l <- length
+		start <- 0
+		space <- " " byte: 0
+		tab <- "\t" byte: 0
+		nl <- "\n" byte: 0
+		cr <- "\r" byte: 0
+
+		while: {
+			if: start < l {
+				b <- byte: start
+				b = space || b = tab || b = nl || b = cr
+			}
+		} do: {
+			start <- start + 1
+		}
+		from: start
+	}
+
 	trim <- {
 		l <- length
 		start <- 0
--- a/samples/stringops.tp	Sun Jun 01 17:20:29 2014 -0700
+++ b/samples/stringops.tp	Sun Jun 01 22:39:33 2014 -0700
@@ -20,5 +20,6 @@
 
 		print: (string: ("12abcDEF" parseHex32)) . "\n"
 		print: (string: ("FFFFFFFFFF" parseHex64)) . "\n"
+		print: "'" . (" 	\nfoobar baz  " ltrim) . "'\n"
 	}
 }