summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tlillqvist@suse.com>2013-05-22 15:30:36 +0300
committerTor Lillqvist <tlillqvist@suse.com>2013-05-22 15:30:36 +0300
commitd664f279602ae6ea9275b222f3f33634aeec97b3 (patch)
treebe0b93453018e1ba4b35626b19e40b34074162b6
parentd19421db942cd08cc378e1b4dfea583f9bd5cd79 (diff)
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.
-rw-r--r--vcl/aqua/source/gdi/atsui/salatslayout.cxx11
-rw-r--r--vcl/coretext/salcoretextlayout.cxx4
-rw-r--r--vcl/generic/print/genpspgraphics.cxx2
-rw-r--r--vcl/source/gdi/pdfwriter_impl.cxx6
-rw-r--r--vcl/source/gdi/sallayout.cxx8
-rw-r--r--vcl/source/glyphs/graphite_layout.cxx20
-rw-r--r--vcl/win/source/gdi/winlayout.cxx14
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<sal_Ucs> 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<xub_StrLen>(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<int>(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;
}