diff --git a/HtmlFile2/htmlfile2.cpp b/HtmlFile2/htmlfile2.cpp
index 64d5c7f799..62abb7c57f 100644
--- a/HtmlFile2/htmlfile2.cpp
+++ b/HtmlFile2/htmlfile2.cpp
@@ -1104,31 +1104,19 @@ private:
std::vector::iterator it2 = std::find_if(mTable.begin(), mTable.end(), [j] (const CTc& item){ return item.i == 0 && item.j == j; });
while(it1 != mTable.end() || it2 != mTable.end())
{
- oXml->WriteString(L"");
+ oXml->WriteString(L"");
oXml->WriteString(!sBorders.empty() ? sBorders : L"");
oXml->WriteString(L"sGridSpan : it2->sGridSpan);
oXml->WriteString(sCol);
- oXml->WriteString(L"\"/>");
+ oXml->WriteString(L"\"/>");
j += stoi(sCol);
it1 = std::find_if(mTable.begin(), mTable.end(), [i, j](const CTc& item){ return item.i == i && item.j == j; });
it2 = std::find_if(mTable.begin(), mTable.end(), [j] (const CTc& item){ return item.i == 0 && item.j == j; });
}
GetSubClass(oXml, sSelectors);
- oXml->WriteString(L"");
- oXml->WriteString(!sBorders.empty() ? sBorders : L"");
- oXml->WriteString(L"");
- if(nRowspan != 1)
- {
- oXml->WriteString(L"");
- std::wstring sColspan = std::to_wstring(nColspan);
- if(nRowspan == 0)
- mTable.push_back({0, j, sColspan});
- else
- for(int k = i + 1; k < i + nRowspan; k++)
- mTable.push_back({k, j, sColspan});
- }
+ oXml->WriteString(L"");
NSCSS::CCompiledStyle oStyleSetting = m_oStylesCalculator.GetCompiledStyle({sSelectors.back()}, true);
NSCSS::CCompiledStyle oStyle = m_oStylesCalculator.GetCompiledStyle({sSelectors.back()}, false);
@@ -1138,7 +1126,7 @@ private:
int nWidth = oStyle.m_pDisplay.GetWidth();
std::wstring wsType = L"dxa";
- //Если ширина указана в %, то используем тип dxa, если же в других ндтнтцах измерения, то в pct
+ //Если ширина указана в %, то используем тип dxa, если же в других единицах измерения, то в pct
#if 1
// проблема с regex в старом gcc (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52719)
boost::wregex oWidthRegex(L"((width)+)[\\s]*:[\\s]*(.+%)");
@@ -1173,12 +1161,26 @@ private:
j += nColspan - 1;
}
+ oXml->WriteString(L"");
+ oXml->WriteString(!sBorders.empty() ? sBorders : L"");
+ oXml->WriteString(L"");
+ if(nRowspan != 1)
+ {
+ oXml->WriteString(L"");
+ std::wstring sColspan = std::to_wstring(nColspan);
+ if(nRowspan == 0)
+ mTable.push_back({0, j, sColspan});
+ else
+ for(int k = i + 1; k < i + nRowspan; k++)
+ mTable.push_back({k, j, sColspan});
+ }
+
std::wstring wsVerticalAlign = oStyle.m_pDisplay.GetVerticalAlign();
if (!wsVerticalAlign.empty())
oXml->WriteString(L"");
- oXml->WriteString(L"");
+ oXml->WriteString(L"");
size_t nEmpty = oXml->GetCurSize();
m_bWasPStyle = false;
@@ -1213,12 +1215,12 @@ private:
it2 = std::find_if(mTable.begin(), mTable.end(), [j] (const CTc& item){ return item.i == 0 && item.j == j; });
while(it1 != mTable.end() || it2 != mTable.end())
{
- oXml->WriteString(L"");
+ oXml->WriteString(L"");
oXml->WriteString(!sBorders.empty() ? sBorders : L"");
oXml->WriteString(L"sGridSpan : it2->sGridSpan);
oXml->WriteString(sCol);
- oXml->WriteString(L"\"/>");
+ oXml->WriteString(L"\"/>");
j += stoi(sCol);
it1 = std::find_if(mTable.begin(), mTable.end(), [i, j](const CTc& item){ return item.i == i && item.j == j; });
it2 = std::find_if(mTable.begin(), mTable.end(), [j] (const CTc& item){ return item.i == 0 && item.j == j; });
@@ -1240,8 +1242,9 @@ private:
NSCSS::CCompiledStyle oStyle = m_oStylesCalculator.GetCompiledStyle(sSelectors, false);
- //if (oXml->GetSubData(oXml->GetCurSize() - 6) != L"")
- // oXml->WriteString(L"");
+ if (oXml->GetSubData(oXml->GetCurSize() - 6) != L"")
+ oXml->WriteString(L"");
+ m_bWasSpace = false;
// Начало таблицы
std::wstring wsTable = L"";