From d664f279602ae6ea9275b222f3f33634aeec97b3 Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Wed, 22 May 2013 15:30:36 +0300 Subject: Revert "fdo#62846 incorrect glyph to Unicode mappings in PDFs" Breaks the build for Windows: vcl/win/source/gdi/winlayout.cxx(1897) : error C2065: 'nCharPos' : undeclared identifier This reverts commit 0b70e4ea4fcf0adccdfdf4886e5cc45d46479692. --- vcl/aqua/source/gdi/atsui/salatslayout.cxx | 11 ----------- vcl/coretext/salcoretextlayout.cxx | 4 ---- vcl/generic/print/genpspgraphics.cxx | 2 +- vcl/source/gdi/pdfwriter_impl.cxx | 6 +++--- vcl/source/gdi/sallayout.cxx | 8 ++------ vcl/source/glyphs/graphite_layout.cxx | 20 +------------------- vcl/win/source/gdi/winlayout.cxx | 14 -------------- 7 files changed, 7 insertions(+), 58 deletions(-) diff --git a/vcl/aqua/source/gdi/atsui/salatslayout.cxx b/vcl/aqua/source/gdi/atsui/salatslayout.cxx index e99d276abee7..1b9776e8c195 100644 --- a/vcl/aqua/source/gdi/atsui/salatslayout.cxx +++ b/vcl/aqua/source/gdi/atsui/salatslayout.cxx @@ -619,17 +619,6 @@ int ATSLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphIDs, Point& rPos, int break; } - // update returned index-into-string array - if( pCharIndexes ) - { - int nCharPos; - if( mpGlyphs2Chars ) - nCharPos = mpGlyphs2Chars[nStart]; - else - nCharPos = nStart + mnMinCharPos; - *(pCharIndexes++) = nCharPos; - } - return nCount; } diff --git a/vcl/coretext/salcoretextlayout.cxx b/vcl/coretext/salcoretextlayout.cxx index 12c2035191a4..d2c2d48cf519 100644 --- a/vcl/coretext/salcoretextlayout.cxx +++ b/vcl/coretext/salcoretextlayout.cxx @@ -447,10 +447,6 @@ int CoreTextLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphIDs, Point& rPos nStart += 1; } - if( pCharIndexes ) { - pCharIndexes[i] = mpGlyphs2Chars[mnCurrentGlyphIndex]; - } - SAL_INFO( "vcl.coretext.layout", "GetNextGlyphs() returning " << i ); return i; diff --git a/vcl/generic/print/genpspgraphics.cxx b/vcl/generic/print/genpspgraphics.cxx index 344ff3f699a6..10af66051ddb 100644 --- a/vcl/generic/print/genpspgraphics.cxx +++ b/vcl/generic/print/genpspgraphics.cxx @@ -731,7 +731,7 @@ static void DrawPrinterLayout( const SalLayout& rLayout, ::psp::PrinterGfx& rGfx sal_Int32 aWidthAry[ nMaxGlyphs ]; sal_Int32 aIdxAry [ nMaxGlyphs ]; sal_Unicode aUnicodes[ nMaxGlyphs ]; - int aCharPosAry [ nMaxGlyphs+1 ]; + int aCharPosAry [ nMaxGlyphs ]; Point aPos; long nUnitsPerPixel = rLayout.GetUnitsPerPixel(); diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx index 4e84f0711778..3c7b186daec2 100644 --- a/vcl/source/gdi/pdfwriter_impl.cxx +++ b/vcl/source/gdi/pdfwriter_impl.cxx @@ -7619,7 +7619,7 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const String& rText, bool bT std::vector aUnicodes; aUnicodes.reserve( nMaxGlyphs ); sal_Int32 pUnicodesPerGlyph[nMaxGlyphs]; - int pCharPosAry[nMaxGlyphs+1]; + int pCharPosAry[nMaxGlyphs]; sal_Int32 nAdvanceWidths[nMaxGlyphs]; const PhysicalFontFace* pFallbackFonts[nMaxGlyphs]; bool bVertical = m_aCurrentPDFState.m_aFont.IsVertical(); @@ -7768,14 +7768,14 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const String& rText, bool bT aUnicodes.push_back( rText.GetChar( sal::static_int_cast(pCharPosAry[i]) ) ); pUnicodesPerGlyph[i] = 1; // try to handle ligatures and such - if( i < nGlyphs ) + if( i < nGlyphs-1 ) { nChars = pCharPosAry[i+1] - pCharPosAry[i]; // #i115618# fix for simple RTL+CTL cases // TODO: sanitize for RTL ligatures, more complex CTL, etc. if( nChars < 0 ) nChars = -nChars; - else if( nChars == 0 ) + else if( nChars == 0 ) nChars = 1; pUnicodesPerGlyph[i] = nChars; for( int n = 1; n < nChars; n++ ) diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx index 705b8cc8c2e0..6955679350ad 100644 --- a/vcl/source/gdi/sallayout.cxx +++ b/vcl/source/gdi/sallayout.cxx @@ -1427,11 +1427,7 @@ int GenericSalLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphs, Point& rPos nOldFlags = pG->mnGlyphIndex; // &GF_FLAGMASK not needed for test above } - // Calculate final pCharPosAry item - if( pCharPosAry ) - *pCharPosAry = pG->mnCharPos; - - aRelativePos.X() /= mnUnitsPerPixel; + aRelativePos.X() /= mnUnitsPerPixel; aRelativePos.Y() /= mnUnitsPerPixel; rPos = GetDrawPosition( aRelativePos ); @@ -1679,7 +1675,7 @@ void MultiSalLayout::AdjustLayout( ImplLayoutArgs& rArgs ) // prepare "merge sort" int nStartOld[ MAX_FALLBACK ]; int nStartNew[ MAX_FALLBACK ]; - int nCharPos[ MAX_FALLBACK+1 ]; + int nCharPos[ MAX_FALLBACK ]; sal_Int32 nGlyphAdv[ MAX_FALLBACK ]; int nValid[ MAX_FALLBACK ] = {0}; diff --git a/vcl/source/glyphs/graphite_layout.cxx b/vcl/source/glyphs/graphite_layout.cxx index 976ccc532983..3898ab1c7fdd 100644 --- a/vcl/source/glyphs/graphite_layout.cxx +++ b/vcl/source/glyphs/graphite_layout.cxx @@ -294,7 +294,7 @@ GraphiteLayout::fillFrom(gr_segment * pSegment, ImplLayoutArgs &rArgs, float fSc if (bCluster) { nBaseGlyphIndex = mvGlyphs.size(); - mvGlyph2Char[nBaseGlyphIndex] = firstChar + mnSegCharOffset; + mvGlyph2Char[nBaseGlyphIndex] = iChar + mnSegCharOffset; nFirstCharInCluster = firstChar; nLastCharInCluster = lastChar; } @@ -1295,24 +1295,6 @@ int GraphiteLayout::GetNextGlyphs( int length, sal_GlyphId * glyph_out, if (glyph_itr->mnGlyphIndex == GF_DROPPED) break; } - - // Calculate final pCharPosAry item - if (char_index) - { - if (glyph_slot >= (signed)mvGlyph2Char.size()) - { - *char_index++ = mnMinCharPos + mvCharDxs.size(); - } - else - { - assert(glyph_slot > -1); - if (mvGlyph2Char[glyph_slot] == -1) - *char_index++ = mnMinCharPos + mvCharDxs.size(); - else - *char_index++ = mvGlyph2Char[glyph_slot]; - } - } - int numGlyphs = glyph_slot - glyph_slot_begin; // move the next glyph_slot to a glyph that hasn't been dropped while (glyph_slot < static_cast(mvGlyphs.size()) && diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx index 60858718edfc..41271b02c954 100644 --- a/vcl/win/source/gdi/winlayout.cxx +++ b/vcl/win/source/gdi/winlayout.cxx @@ -594,16 +594,6 @@ int SimpleWinLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphs, Point& rPos, break; } - if( pCharIndexes ) - { - int nCharPos; - if( !mpGlyphs2Chars ) - nCharPos = nStart + mnMinCharPos; - else - nCharPos = mpGlyphs2Chars[nStart]; - *(pCharIndexes++) = nCharPos; - } - return nCount; } @@ -1892,10 +1882,6 @@ int UniscribeLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphs, Point& rPos, ++nStart; nStartx8 = (nStart << 8) + nSubIter; - - if( pCharPosAry ) - *(pCharPosAry++) = nCharPos; - return nCount; } -- cgit v1.2.3