Mercurial > repos > rhope
diff string.rhope @ 110:336da6ce8174
Merge
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 06 Oct 2010 23:48:32 +0000 |
parents | a7add4db4a25 439db471f595 |
children | fd23ab2c1a73 |
line wrap: on
line diff
--- a/string.rhope Wed Oct 06 23:47:26 2010 +0000 +++ b/string.rhope Wed Oct 06 23:48:32 2010 +0000 @@ -596,7 +596,7 @@ { If[count] { - out <- [string]_Flatten[[dest]Append[ [[string]Buffer >>]Index[offset] ], [offset]+[1i32], [count]-[1i32]] + out <- [_internal_array_copychunk[[string]Buffer >>, offset, dest, [dest]Length, count]]Length <<[[[dest]Length]+[count]] }{ out <- dest } @@ -614,8 +614,13 @@ Flatten@String Slice[string:out] { - out <- [[Build[String()]]Buffer <<[ [[string]Source >>]_Flatten[Array[], [string]Offset >>, [string]ByteLen >>] ] - ]Length <<[[string]Length >>] + If[[string]ByteLen >>] + { + out <- [[Build[String()]]Buffer <<[ [[string]Source >>]_Flatten[_internal_array_allocnaked[[string]ByteLen >>, UInt8()], [string]Offset >>, [string]ByteLen >>] ] + ]Length <<[[string]Length >>] + }{ + out <- "" + } } Print@String Slice[string:out] @@ -718,12 +723,17 @@ Flatten@String Cat[string:out] { - out <- [[Build[String()] - ]Buffer << [ - [[string]Right >>]_Flatten[ - [[string]Left >>]_Flatten[Array[], 0i32, [[string]Left >>]Byte Length], - 0i32, [[string]Right >>]Byte Length]] - ]Length << [[string]Length >>] + If[[string]ByteLen >>] + { + out <- [[Build[String()] + ]Buffer << [ + [[string]Right >>]_Flatten[ + [[string]Left >>]_Flatten[_internal_array_allocnaked[[string]ByteLen >>, UInt8()], 0i32, [[string]Left >>]Byte Length], + 0i32, [[string]Right >>]Byte Length]] + ]Length << [[string]Length >>] + }{ + out <- "" + } } Print@String Cat[string:out]