]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed TABs handling
authorVáclav Slavík <vslavik@fastmail.fm>
Sat, 17 Jul 2004 10:59:42 +0000 (10:59 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sat, 17 Jul 2004 10:59:42 +0000 (10:59 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/html/m_pre.cpp

index 3e9d05db2c515ece44e6d9b5428e728058713b6c..91cc6579d8bbd6a0d7132036770defd250661d95 100644 (file)
@@ -36,29 +36,38 @@ static wxString LINKAGEMODE HtmlizeWhitespaces(const wxString& str)
 {
     wxString out;
     size_t len = str.Len();
+    size_t linepos = 0;
     for (size_t i = 0; i < len; i++)
     {
         switch (str[i])
         {
             case wxT('<'):
                 while (i < len && str[i] != wxT('>'))
+                {
                     out << str[i++];
+                    linepos++;
+                }
                 out << wxT('>');
+                linepos++;
                 break;
             case wxT(' '):
                 out << wxT("&nbsp;");
+                linepos++;
                 break;
             case wxT('\n'):
                 out << wxT("<br>");
+                linepos = 0;
                 break;
             case wxT('\t'):
                 {
-                    for (size_t j = 8 - i%8; j > 0; j--)
+                    for (size_t j = 8 - linepos % 8; j > 0; j--)
                         out << wxT("&nbsp;");
+                    linepos += 8 - linepos % 8;
                 }
                 break;
             default:
                 out << str[i];
+                linepos++;
                 break;
         }
     }