Mercurial > urweb
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 |