]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed interpretation of line breaks in <pre> to conform to the spec (#10120)
authorVáclav Slavík <vslavik@fastmail.fm>
Tue, 28 Oct 2008 10:04:36 +0000 (10:04 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Tue, 28 Oct 2008 10:04:36 +0000 (10:04 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/html/m_pre.cpp

index c4a33f8c82892f84fcde411bc1d5995ca31a537d..1a0ef36813be6f8df7a8f25c64c5aa332cc04cb9 100644 (file)
@@ -47,9 +47,22 @@ static wxString LINKAGEMODE HtmlizeLinebreaks(const wxString& str)
                 if ( i == end )
                     return out;
                 break;
+
+            // We need to translate any line break into exactly one <br>.
+            // Quoting HTML spec: "A line break is defined to be a carriage
+            // return (&#x000D;), a line feed (&#x000A;), or a carriage
+            // return/line feed pair."
+            case '\r':
+                {
+                    wxString::const_iterator j(i + 1);
+                    if ( j != end && *j == '\n' )
+                        i = j;
+                }
+                // fall through
             case '\n':
                 out << "<br>";
                 break;
+
             default:
                 out << *i;
                 break;