comparison lib/ur/string.ur @ 2211:ef766ef6e242

Merge.
author Ziv Scully <ziv@mit.edu>
date Sat, 13 Sep 2014 19:16:07 -0400
parents 1a4b2b983889
children
comparison
equal deleted inserted replaced
2210:69c0f36255cb 2211:ef766ef6e242
84 None => cdata s 84 None => cdata s
85 | Some (s1, s2) => <xml>{[s1]}<br/>{newlines s2}</xml> 85 | Some (s1, s2) => <xml>{[s1]}<br/>{newlines s2}</xml>
86 86
87 fun isPrefix {Full = f, Prefix = p} = 87 fun isPrefix {Full = f, Prefix = p} =
88 length f >= length p && substring f {Start = 0, Len = length p} = p 88 length f >= length p && substring f {Start = 0, Len = length p} = p
89
90 fun trim s =
91 let
92 val len = length s
93
94 fun findStart i =
95 if i < len && isspace (sub s i) then
96 findStart (i+1)
97 else
98 i
99
100 fun findFinish i =
101 if i >= 0 && isspace (sub s i) then
102 findFinish (i-1)
103 else
104 i
105
106 val start = findStart 0
107 val finish = findFinish (len - 1)
108 in
109 if finish >= start then
110 substring s {Start = start, Len = finish - start + 1}
111 else
112 ""
113 end