[Libreoffice-commits] core.git: sw/source

Justin Luth (via logerrit) logerrit at kemper.freedesktop.org
Thu Jun 24 19:47:55 UTC 2021


 sw/source/filter/ww8/docxattributeoutput.cxx |    4 ++--
 sw/source/filter/ww8/ww8atr.cxx              |   12 ++++++++++++
 sw/source/filter/ww8/ww8par3.cxx             |    2 +-
 sw/source/filter/ww8/ww8par5.cxx             |    3 +++
 4 files changed, 18 insertions(+), 3 deletions(-)

New commits:
commit 4493f2191d95a35f8a29cd16912a1378d3c21ced
Author:     Justin Luth <justin_luth at sil.org>
AuthorDate: Thu Jun 24 14:37:26 2021 +0200
Commit:     Justin Luth <justin_luth at sil.org>
CommitDate: Thu Jun 24 21:47:03 2021 +0200

    tdf#120629 ms formats: better exporting of hindiVowels etc.
    
    The big problem was that hindiVowels was imported as
    CHARS_NEPALI, but CHARS_NEPALI was not exported in DOCX.
    
    Another easy win was to DOC export both LO forms of russianLower
    and both forms of russianUpper - just like DOCX.
    
    The page number field only allows a subset of formats.
    LO doesn't have support for Hex or DollarText formats.
    The Ordinal/Cardinal formats were an easy win
    for export, even though they don't import.
    [Import seems to be in ww8par5.cxx's GetNumTypeFromName(),
    except that is being passed an empty string.]
    
    Change-Id: I176a70e0e05967414337c17d8b4acc87e20ead73
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117793
    Tested-by: Jenkins
    Reviewed-by: Justin Luth <justin_luth at sil.org>

diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 7cbf2a8a0df0..7d185f5ce9c0 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -6938,7 +6938,8 @@ static OString lcl_ConvertNumberingType(sal_Int16 nNumberingType, const SfxItemS
         case style::NumberingType::CHARS_ARABIC: aType="arabicAlpha"; break;
         case style::NumberingType::CHARS_ARABIC_ABJAD: aType="arabicAbjad"; break;
         case style::NumberingType::CHARS_THAI: aType="thaiLetters"; break;
-        case style::NumberingType::CHARS_PERSIAN: aType="hindiVowels"; break;
+        case style::NumberingType::CHARS_PERSIAN:
+        case style::NumberingType::CHARS_NEPALI: aType="hindiVowels"; break;
         case style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_RU:
         case style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_N_RU: aType = "russianUpper"; break;
         case style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_RU:
@@ -6969,7 +6970,6 @@ static OString lcl_ConvertNumberingType(sal_Int16 nNumberingType, const SfxItemS
         case style::NumberingType::CHARS_GREEK_LOWER_LETTER:
         case style::NumberingType::PAGE_DESCRIPTOR:
         case style::NumberingType::TRANSLITERATION:
-        case style::NumberingType::CHARS_NEPALI:
         case style::NumberingType::CHARS_KHMER:
         case style::NumberingType::CHARS_LAO:
         case style::NumberingType::CHARS_TIBETAN:
diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx
index 7a942ddf8e80..437c1d058080 100644
--- a/sw/source/filter/ww8/ww8atr.cxx
+++ b/sw/source/filter/ww8/ww8atr.cxx
@@ -762,9 +762,12 @@ sal_uInt8 WW8Export::GetNumId( sal_uInt16 eNumType )
     case style::NumberingType::CHARS_ARABIC: nRet = 46; break;
     case style::NumberingType::CHARS_HEBREW: nRet = 47; break;
     case style::NumberingType::CHARS_ARABIC_ABJAD: nRet = 48; break;
+    case style::NumberingType::CHARS_PERSIAN:
     case style::NumberingType::CHARS_NEPALI: nRet = 49; break;
     case style::NumberingType::CHARS_THAI: nRet = 53; break;
+    case style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_N_RU:
     case style::NumberingType::CHARS_CYRILLIC_LOWER_LETTER_RU: nRet = 58; break;
+    case style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_N_RU:
     case style::NumberingType::CHARS_CYRILLIC_UPPER_LETTER_RU: nRet = 59; break;
     // nothing, WW does the same (undocumented)
     case SVX_NUM_NUMBER_NONE:           nRet = 0xff;    break;
@@ -2632,6 +2635,15 @@ void AttributeOutputBase::GetNumberPara( OUString& rStr, const SwField& rField )
         case SVX_NUM_ROMAN_LOWER:
             rStr += "\\* roman ";
             break;
+        case SVX_NUM_TEXT_NUMBER:
+            rStr += "\\* Ordinal ";
+            break;
+        case SVX_NUM_TEXT_ORDINAL:
+            rStr += "\\* Ordtext ";
+            break;
+        case SVX_NUM_TEXT_CARDINAL:
+            rStr += "\\* Cardtext ";
+            break;
         default:
             OSL_ENSURE(rField.GetFormat() == SVX_NUM_ARABIC,
                 "Unknown numbering type exported as default of Arabic");
diff --git a/sw/source/filter/ww8/ww8par3.cxx b/sw/source/filter/ww8/ww8par3.cxx
index 2a74217891c7..71864ead9beb 100644
--- a/sw/source/filter/ww8/ww8par3.cxx
+++ b/sw/source/filter/ww8/ww8par3.cxx
@@ -641,7 +641,7 @@ SvxNumType WW8ListManager::GetSvxNumTypeFromMSONFC(sal_uInt16 nNFC)
             nType = SVX_NUM_CHARS_ARABIC_ABJAD;
             break;
         case 49: // hindiVowels
-            nType = SVX_NUM_CHARS_NEPALI; // DOCX imports as NEPAL and exports as PERSIAN
+            nType = SVX_NUM_CHARS_NEPALI;
             break;
         //case 50: // hindiConsonants
         //case 51: // hindiNumbers
diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx
index 940571d3502b..0a583ca80f90 100644
--- a/sw/source/filter/ww8/ww8par5.cxx
+++ b/sw/source/filter/ww8/ww8par5.cxx
@@ -359,6 +359,9 @@ static SvxNumType GetNumTypeFromName(const OUString& rStr,
     bool bAllowPageDesc = false)
 {
     SvxNumType eTyp = bAllowPageDesc ? SVX_NUM_PAGEDESC : SVX_NUM_ARABIC;
+    if (rStr.isEmpty())
+        return eTyp;
+
     if( rStr.startsWithIgnoreAsciiCase( "Arabi" ) )  // Arabisch, Arabic
         eTyp = SVX_NUM_ARABIC;
     else if( rStr.startsWith( "misch" ) )    // r"omisch


More information about the Libreoffice-commits mailing list