https://bugs.documentfoundation.org/show_bug.cgi?id=93320

--- Comment #11 from Buovjaga <[email protected]> ---
It seems there is a mistake in the logic for outputting <p> elements since the
initial code import in 2000. There is this block:
https://git.libreoffice.org/core/+/e8fa15e0d632c861c7eb3a147d0dd816e670b466/sw/source/filter/html/htmlatr.cxx#871

...which begins with:
// We only write a <P>, if
// - we are not inside OL/UL/DL, or

The boolean bPara there is meant to tell, if "the current token is <P>". The
conditional statement starts with !bPara, but is followed by an "or", which
ruins it. If I change it to an "and" like this, the paragraphs are not
outputted within list items:
if( !bPara &&
    ((!rInfo.bInNumberBulletList && !rWrt.m_nDefListLvl) ||
    (rInfo.bInNumberBulletList && !bNumbered) ||
    (!rWrt.m_bCfgOutStyles &&
      (bHasParSpace || bXhtmlBlockQuote || pAdjItem ||
      (eLang != LANGUAGE_DONTKNOW && eLang != rWrt.m_eLang))) ||
    nDir != rWrt.m_nDirection ||
    rWrt.m_bCfgOutStyles) )

A side-effect is that no newline char is inserted after closing tags:
<ul>
  <li>Bullet 1</li><li>
  Bullet 2</li><li>
  Bullet 3</li></ul>

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to