• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
Issue Details (XML | Word | Printable)

Key: SVC-4582
Type: Bug Bug
Status: Open Open
Priority: Normal Normal
Assignee: Unassigned
Reporter: phate shepherd
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
2. Second Life Service - SVC

IE does not render linefeeds sent with llHTTPResponse

Created: 17/Jul/09 12:23 PM   Updated: 03/Nov/09 01:09 PM
Return to search
Component/s: LSL HTTP
Affects Version/s: 1.27 Server
Fix Version/s: None

Environment:
Second Life Server 1.27.0.127440

CPU: Dual i386 (Unknown) (2200 MHz)
Memory: 4096 MB
OS Version: Darwin 9.7.0 Darwin Kernel Version 9.7.0: Tue Mar 31 22:52:17 PDT 2009; root:xnu-1228.12.14~1/RELEASE_I386 i386
Graphics Card Vendor: NVIDIA Corporation
Graphics Card: NVIDIA GeForce 8600M GT OpenGL Engine
OpenGL Version: 2.0 NVIDIA-1.5.44

libcurl Version: libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
J2C Decoder Version: KDU
Audio Driver Version: FMOD version 3.750000
LLMozLib Version: [LLMediaImplLLMozLib] - 2.01.25437 (Mozilla GRE version 1.8.1.13_0000000000)
Packets Lost: 31/7787 (0.4%)
Issue Links:
Relates

Last Triaged: 22/Jul/09 09:11 AM
Linden Lab Issue ID: DEV-36328


 Description  « Hide
Linefeeds sent with llHTTPResponse to IE are ignored.

IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and examines the text to determine mime type. If HTML is detected, the plaintext is rendered as HTML. To prevent the page being rendered as HTML, LL does browser sniffing and if the browser is IE, it prepends "<http>" and postfixes "</http>" to the reply sent with llHTTPResponse. This pre-processor also (apparently) replaces the less-than and greater-than symbols with their escaped equivalents to prevent HTML from being rendered in IE.

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, modify the pre-processor to substitute a <br> for \n along with the less-than greater-than substitutions that it already does.

Any text after that should be formatted the same as other browsers, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

server.lsl
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!\n" + 
                      "Also, these Less Than/Greater than symbols <<< >>> should not display escaped in a proper fix.");
        }
    }
}

Notes: IE text/plain issue - google for IE text/plain



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
phate shepherd made changes - 17/Jul/09 12:30 PM
Field Original Value New Value
Description linefeeds sent with llHTTPResponse to IE are ignored. IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and renders it as HTML. To fix this issue, LL does browser sniffing and if the browser is IE, it prepends "<http>" to the reply sent with llHTTPResponse (and postfixes "</http>").

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, instead of prepending "<html>", it be changed to prepend "<html><pre>"

Any text after that should be formatted, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!");
        }
    }
}
{code}
linefeeds sent with llHTTPResponse to IE are ignored. IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and renders it as HTML. To fix this issue, LL does browser sniffing and if the browser is IE, it prepends "<http>" to the reply sent with llHTTPResponse (and postfixes "</http>").

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, instead of prepending "<html>", it be changed to prepend "<html><pre>"

Any text after that should be formatted, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!");
        }
    }
}
{code}

Notes: IE text/plain issue - http://support.microsoft.com/kb/239750
phate shepherd made changes - 17/Jul/09 12:32 PM
Link This issue Relates to SVC-3308 [ SVC-3308 ]
phate shepherd made changes - 17/Jul/09 12:38 PM
Description linefeeds sent with llHTTPResponse to IE are ignored. IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and renders it as HTML. To fix this issue, LL does browser sniffing and if the browser is IE, it prepends "<http>" to the reply sent with llHTTPResponse (and postfixes "</http>").

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, instead of prepending "<html>", it be changed to prepend "<html><pre>"

Any text after that should be formatted, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!");
        }
    }
}
{code}

Notes: IE text/plain issue - http://support.microsoft.com/kb/239750
linefeeds sent with llHTTPResponse to IE are ignored. IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and renders it as HTML. To fix this issue, LL does browser sniffing and if the browser is IE, it prepends "<http>" to the reply sent with llHTTPResponse (and postfixes "</http>").

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, instead of prepending "<html>", it be changed to prepend "<html><pre>"

Any text after that should be formatted, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!");
        }
    }
}
{code}

Notes: IE text/plain issue - google for IE text/plain
phate shepherd made changes - 17/Jul/09 02:00 PM
Description linefeeds sent with llHTTPResponse to IE are ignored. IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and renders it as HTML. To fix this issue, LL does browser sniffing and if the browser is IE, it prepends "<http>" to the reply sent with llHTTPResponse (and postfixes "</http>").

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, instead of prepending "<html>", it be changed to prepend "<html><pre>"

Any text after that should be formatted, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!");
        }
    }
}
{code}

Notes: IE text/plain issue - google for IE text/plain
linefeeds sent with llHTTPResponse to IE are ignored. IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and renders it as HTML. To fix this issue, LL does browser sniffing and if the browser is IE, it prepends "<http>" to the reply sent with llHTTPResponse (and postfixes "</http>").

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, instead of prepending "<html>", it be changed to prepend "<html><pre>"
Not sure if an <xmp> tag would help or not.

Any text after that should be formatted, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!");
        }
    }
}
{code}

Notes: IE text/plain issue - google for IE text/plain
phate shepherd made changes - 17/Jul/09 06:49 PM
Description linefeeds sent with llHTTPResponse to IE are ignored. IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and renders it as HTML. To fix this issue, LL does browser sniffing and if the browser is IE, it prepends "<http>" to the reply sent with llHTTPResponse (and postfixes "</http>").

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, instead of prepending "<html>", it be changed to prepend "<html><pre>"
Not sure if an <xmp> tag would help or not.

Any text after that should be formatted, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!");
        }
    }
}
{code}

Notes: IE text/plain issue - google for IE text/plain
linefeeds sent with llHTTPResponse to IE are ignored. IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and renders it as HTML. To fix this issue, LL does browser sniffing and if the browser is IE, it prepends "<http>" to the reply sent with llHTTPResponse (and postfixes "</http>").

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, instead of prepending "<html>", it be changed to prepend "<html><pre>"
Not sure if an <xmp> tag would help or not. Another possiblity, since it appears everything sent to IE is going through a pre-processor to convert < and > to escaped characters would be to substitute a <br> for \n ?

Any text after that should be formatted, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!");
        }
    }
}
{code}

Notes: IE text/plain issue - google for IE text/plain
lindenrobot made changes - 22/Jul/09 09:11 AM
Last Triaged 22/Jul/09 09:11 AM
Linden Lab Issue ID DEV-36328
phate shepherd made changes - 25/Jul/09 11:41 AM
Description linefeeds sent with llHTTPResponse to IE are ignored. IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and renders it as HTML. To fix this issue, LL does browser sniffing and if the browser is IE, it prepends "<http>" to the reply sent with llHTTPResponse (and postfixes "</http>").

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, instead of prepending "<html>", it be changed to prepend "<html><pre>"
Not sure if an <xmp> tag would help or not. Another possiblity, since it appears everything sent to IE is going through a pre-processor to convert < and > to escaped characters would be to substitute a <br> for \n ?

Any text after that should be formatted, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!");
        }
    }
}
{code}

Notes: IE text/plain issue - google for IE text/plain
linefeeds sent with llHTTPResponse to IE are ignored. IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and renders it as HTML. To fix this issue, LL does browser sniffing and if the browser is IE, it prepends "<http>" to the reply sent with llHTTPResponse (and postfixes "</http>").

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, instead of prepending "<html>", it be changed to prepend "<html><pre>"
Not sure if an <xmp> tag would help or not. Another possiblity, since it appears everything sent to IE is going through a pre-processor to convert < and > to escaped characters would be to substitute a <br> for \n ?

Any text after that should be formatted, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!\n Also, these Less Than/Greater than symbols <<< >>> should not be escaped in a proper fix.");
        }
    }
}
{code}

Notes: IE text/plain issue - google for IE text/plain
phate shepherd made changes - 12/Aug/09 09:16 AM
Description linefeeds sent with llHTTPResponse to IE are ignored. IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and renders it as HTML. To fix this issue, LL does browser sniffing and if the browser is IE, it prepends "<http>" to the reply sent with llHTTPResponse (and postfixes "</http>").

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, instead of prepending "<html>", it be changed to prepend "<html><pre>"
Not sure if an <xmp> tag would help or not. Another possiblity, since it appears everything sent to IE is going through a pre-processor to convert < and > to escaped characters would be to substitute a <br> for \n ?

Any text after that should be formatted, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!\n Also, these Less Than/Greater than symbols <<< >>> should not be escaped in a proper fix.");
        }
    }
}
{code}

Notes: IE text/plain issue - google for IE text/plain
Linefeeds sent with llHTTPResponse to IE are ignored.

IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and examines the text to determine mime type. If HTML is detected, the plaintext is rendered as HTML. To prevent the page being rendered as HTML, LL does browser sniffing and if the browser is IE, it prepends "<http>" and postfixes "</http>" to the reply sent with llHTTPResponse. This pre-processor also (apparently) replaces the less-than and greater-than symbols with their escape equivalents to prevent HTML from being rendered in IE.

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, modify the pre-processor to substitute a <br> for \n

Any text after that should be formatted the same as other browsers, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!\n Also, these Less Than/Greater than symbols <<< >>> should not be escaped in a proper fix.");
        }
    }
}
{code}

Notes: IE text/plain issue - google for IE text/plain
phate shepherd made changes - 12/Aug/09 09:17 AM
Description Linefeeds sent with llHTTPResponse to IE are ignored.

IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and examines the text to determine mime type. If HTML is detected, the plaintext is rendered as HTML. To prevent the page being rendered as HTML, LL does browser sniffing and if the browser is IE, it prepends "<http>" and postfixes "</http>" to the reply sent with llHTTPResponse. This pre-processor also (apparently) replaces the less-than and greater-than symbols with their escape equivalents to prevent HTML from being rendered in IE.

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, modify the pre-processor to substitute a <br> for \n

Any text after that should be formatted the same as other browsers, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!\n Also, these Less Than/Greater than symbols <<< >>> should not be escaped in a proper fix.");
        }
    }
}
{code}

Notes: IE text/plain issue - google for IE text/plain
Linefeeds sent with llHTTPResponse to IE are ignored.

IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and examines the text to determine mime type. If HTML is detected, the plaintext is rendered as HTML. To prevent the page being rendered as HTML, LL does browser sniffing and if the browser is IE, it prepends "<http>" and postfixes "</http>" to the reply sent with llHTTPResponse. This pre-processor also (apparently) replaces the less-than and greater-than symbols with their escape equivalents to prevent HTML from being rendered in IE.

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, modify the pre-processor to substitute a <br> for \n

Any text after that should be formatted the same as other browsers, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!\n" +
                      "Also, these Less Than/Greater than symbols <<< >>> should not display escaped in a proper fix.");
        }
    }
}
{code}

Notes: IE text/plain issue - google for IE text/plain
phate shepherd made changes - 12/Aug/09 09:22 AM
Description Linefeeds sent with llHTTPResponse to IE are ignored.

IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and examines the text to determine mime type. If HTML is detected, the plaintext is rendered as HTML. To prevent the page being rendered as HTML, LL does browser sniffing and if the browser is IE, it prepends "<http>" and postfixes "</http>" to the reply sent with llHTTPResponse. This pre-processor also (apparently) replaces the less-than and greater-than symbols with their escape equivalents to prevent HTML from being rendered in IE.

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, modify the pre-processor to substitute a <br> for \n

Any text after that should be formatted the same as other browsers, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!\n" +
                      "Also, these Less Than/Greater than symbols <<< >>> should not display escaped in a proper fix.");
        }
    }
}
{code}

Notes: IE text/plain issue - google for IE text/plain
Linefeeds sent with llHTTPResponse to IE are ignored.

IE is a special case as it doesn't honor mime type "text/plain". Instead, IE assumes the mime type is incorrect and examines the text to determine mime type. If HTML is detected, the plaintext is rendered as HTML. To prevent the page being rendered as HTML, LL does browser sniffing and if the browser is IE, it prepends "<http>" and postfixes "</http>" to the reply sent with llHTTPResponse. This pre-processor also (apparently) replaces the less-than and greater-than symbols with their escaped equivalents to prevent HTML from being rendered in IE.

The problem with this solution is that it is impossible to render a linefeed in the output sent to IE.

What I propose is that if the browser sniffed is IE, modify the pre-processor to substitute a <br> for \n along with the less-than greater-than substitutions that it already does.

Any text after that should be formatted the same as other browsers, and linefeeds honored.

Drop this in a prim cube, and launch the URL chatted. If the URL is opened in anything BUT IE, linefeeds are honored. In IE, it is just one line.

{code:title=server.lsl|borderStyle=solid}
default
{
    state_entry()
    {
        llRequestURL();
    }
 
    http_request(key id, string method, string body)
    {
        if (method == URL_REQUEST_GRANTED)
        {
            llSay(0,"URL: " + body);
        }
        else if (method == "GET")
        {
            llHTTPResponse(id,200,"This \nShould \nBe \nOn \nMultiple \nLines!\n" +
                      "Also, these Less Than/Greater than symbols <<< >>> should not display escaped in a proper fix.");
        }
    }
}
{code}

Notes: IE text/plain issue - google for IE text/plain
Day Oh made changes - 03/Nov/09 01:09 PM
Link This issue is related to by SVC-4990 [ SVC-4990 ]