[Ironruby-core] Linebreak issue with clr strings manipulated by Ruby code
Aldinei Sampaio
aldinei.sampaio at gmail.com
Mon Mar 7 06:24:38 EST 2011
Yes, i created the issue #5836.
Thank you very much.
2011/3/4 Jimmy Schementi <jimmy at schementi.com>:
> Yes, I can reproduce this. I'll look into it. Have you opened a bug?
> I'll follow up there.
> ~Jimmy
>
>
>
> On Thu, Mar 3, 2011 at 6:11 PM, Aldinei Sampaio
> <aldinei.sampaio at gmail.com> wrote:
>> Hi, sorry again, but is anyone seeing this message?
>>
>> I coudnt get any response about this, either here or in the Codeplex
>> issue tracker.
>>
>> 2011/2/25 Aldinei Sampaio <aldinei.sampaio at gmail.com>:
>>> Hi, guys. Sorry if I am posting this in the wrong place, but I need
>>> some kind of direction here.
>>>
>>> I isolated my problem in the following UnitTest in Visual Basic:
>>>
>>> <TestMethod()>
>>> Public Sub LineBreakProblem()
>>> Const SCRIPT = "print System::String.Format('Line1{0}Line2',
>>> System::Environment.NewLine)"
>>>
>>> Dim engine = IronRuby.Ruby.CreateEngine()
>>> Dim stream = New IO.MemoryStream
>>> Dim writer = New IO.StreamWriter(stream)
>>> engine.Runtime.IO.SetOutput(stream, writer)
>>> Dim source = engine.CreateScriptSourceFromString(SCRIPT, "Script",
>>> Microsoft.Scripting.SourceCodeKind.File)
>>> source.Execute()
>>>
>>> writer.Flush()
>>> stream.Position = 0
>>> Dim actual = (New IO.StreamReader(stream)).ReadToEnd()
>>>
>>> Dim expected = String.Format("Line1{0}Line2", Environment.NewLine)
>>>
>>> Assert.AreEqual(expected, actual)
>>> End Sub
>>>
>>>
>>> As you can see, i am running this Ruby code:
>>>
>>> print System::String.Format('Line1{0}Line2', System::Environment.NewLine)
>>>
>>> And then I am using the engine.Runtime.IO.SetOutput to get back the
>>> result generated by the "print" statement. System.Environment.NewLine
>>> returns the char combination CR + LF.
>>>
>>> The "expected" variable will contain: "Line1" + CR + LF + "Line2".
>>> The "actual" variable receive the value "Line1" + CR + LF + CR + LF + "Line2"
>>>
>>> Seems that all the linebreaks are doubled when using the CLR string
>>> with the "print" statement.
>>>
>>> Any suggestion that you can give me to resolve or work around this
>>> problem will be much appreciated.
>>>
>> _______________________________________________
>> Ironruby-core mailing list
>> Ironruby-core at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/ironruby-core
>>
>
More information about the Ironruby-core
mailing list