rpms/abiword/OLPC-3 r27631-bug-12283.patch, NONE, 1.1 r27632-mix-roman-and-complex.patch, NONE, 1.1 r27655-fix-script-mixing.patch, NONE, 1.1 r27656-debug-cleanup.patch, NONE, 1.1 r27660-complex-selections.patch, NONE, 1.1 abiword.spec, 1.71, 1.72
Daniel Drake
dsd at fedoraproject.org
Mon Oct 5 07:19:16 UTC 2009
Author: dsd
Update of /cvs/pkgs/rpms/abiword/OLPC-3
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv32753
Modified Files:
abiword.spec
Added Files:
r27631-bug-12283.patch r27632-mix-roman-and-complex.patch
r27655-fix-script-mixing.patch r27656-debug-cleanup.patch
r27660-complex-selections.patch
Log Message:
add complex language fixes
r27631-bug-12283.patch:
fl_BlockLayout.cpp | 15 +++-
fl_BlockLayout.h | 2
fp_Line.cpp | 4 +
fp_TextRun.cpp | 177 +++++++++++------------------------------------------
fp_TextRun.h | 3
5 files changed, 57 insertions(+), 144 deletions(-)
--- NEW FILE r27631-bug-12283.patch ---
Index: src/text/fmt/xp/fl_BlockLayout.cpp
===================================================================
--- src/text/fmt/xp/fl_BlockLayout.cpp.orig
+++ src/text/fmt/xp/fl_BlockLayout.cpp
@@ -1665,7 +1665,7 @@ void fl_BlockLayout::coalesceRuns(void)
_assertRunListIntegrity();
#if 1
- xxx_UT_DEBUGMSG(("fl_BlockLayout::coalesceRuns\n"));
+ UT_DEBUGMSG(("fl_BlockLayout::coalesceRuns\n"));
fp_Line* pLine = static_cast<fp_Line *>(getFirstContainer());
while (pLine)
{
@@ -4894,14 +4894,12 @@ bool fl_BlockLayout::doclistener_populat
return true;
}
-bool fl_BlockLayout::_doInsertTextSpan(PT_BlockOffset blockOffset, UT_uint32 len)
+bool fl_BlockLayout::itemizeSpan(PT_BlockOffset blockOffset, UT_uint32 len,GR_Itemization & I)
{
- xxx_UT_DEBUGMSG(("_doInsertTextSpan: Initial offset %d, len %d bl_Length %d \n", blockOffset, len,getLength()));
UT_return_val_if_fail( m_pLayout, false );
PD_StruxIterator text(getStruxDocHandle(),
blockOffset + fl_BLOCK_STRUX_OFFSET,
blockOffset + fl_BLOCK_STRUX_OFFSET + len - 1);
- GR_Itemization I;
I.setDirOverride(m_iDirOverride);
I.setEmbedingLevel(m_iDomDirection);
@@ -4933,6 +4931,15 @@ bool fl_BlockLayout::_doInsertTextSpan(P
I.setFont(pFont);
m_pLayout->getGraphics()->itemize(text, I);
+ return true;
+}
+
+bool fl_BlockLayout::_doInsertTextSpan(PT_BlockOffset blockOffset, UT_uint32 len)
+{
+ xxx_UT_DEBUGMSG(("_doInsertTextSpan: Initial offset %d, len %d bl_Length %d \n", blockOffset, len,getLength()));
+ GR_Itemization I;
+ bool b= itemizeSpan(blockOffset, len,I);
+ UT_return_val_if_fail( b, false );
for(UT_sint32 i = 0; i < static_cast<UT_sint32>(I.getItemCount()) - 1; ++i)
{
Index: src/text/fmt/xp/fp_TextRun.cpp
===================================================================
--- src/text/fmt/xp/fp_TextRun.cpp.orig
+++ src/text/fmt/xp/fp_TextRun.cpp
@@ -1108,61 +1108,10 @@ void fp_TextRun::mergeWithNext(void)
// can only adjust width after the justification has been handled
_setWidth(getWidth() + pNext->getWidth());
-
-
- // the shaping requirenments of the combined run
- UT_ASSERT( m_pRenderInfo );
- if(m_pRenderInfo && pNext && pNext->m_pRenderInfo)
- {
- m_pRenderInfo->m_eShapingResult =
- (GRShapingResult)((UT_uint32)m_pRenderInfo->m_eShapingResult
- | (UT_uint32)(pNext-> m_pRenderInfo->m_eShapingResult));
-
- // because there might be a ligature across the run boundary, we
- // have to refresh
- // get the current refresh state
- GRShapingResult eR = _getRefreshDrawBuffer();
- eR = (GRShapingResult)((UT_uint32)eR | (UT_uint32)pNext->_getRefreshDrawBuffer());
-
- if(((UT_uint32) m_pRenderInfo->m_eShapingResult & (UT_uint32)GRSR_Ligatures) != 0)
- {
- // our run contains ligating characters, see if one is at the end
- eR = (GRShapingResult)((UT_uint32)eR | (UT_uint32) GRSR_Ligatures);
- }
-
- _setRefreshDrawBuffer(eR);
- }
-
-
-
- // we need to take into consideration whether this run has been reversed
- // in which case the order of the concating needs to be reversed too
- UT_BidiCharType iVisDirection = getVisDirection();
-
- bool bReverse = (!s_bBidiOS && iVisDirection == UT_BIDI_RTL)
- || (s_bBidiOS && m_iDirOverride == UT_BIDI_RTL && _getDirection() == UT_BIDI_LTR)
- || (s_bBidiOS && m_iDirOverride == UT_BIDI_LTR && _getDirection() == UT_BIDI_RTL);
-
- UT_uint32 iNextLen = pNext->getLength();
- UT_uint32 iMyLen = getLength();
-
- UT_ASSERT( m_pRenderInfo && pNext->m_pRenderInfo);
- if(m_pRenderInfo && pNext->m_pRenderInfo)
- {
- m_pRenderInfo->m_iLength = iMyLen;
- pNext->m_pRenderInfo->m_iLength = iNextLen;
-
- if(!m_pRenderInfo->append(*(pNext->m_pRenderInfo), bReverse))
- {
- // either the graphics class does not have append capabilities, or the append failed
- // -- we mark the draw buffer for recalculation
- _setRefreshDrawBuffer(GRSR_Unknown);
- }
-
- }
-
-
- _setLength(iMyLen + iNextLen);
+ _setLength(getLength() + pNext->getLength());
+ DELETEP(m_pRenderInfo);
+ m_pRenderInfo = NULL;
+ itemize();
_setDirty(isDirty() || pNext->isDirty());
setNextRun(pNext->getNextRun(), false);
@@ -1173,28 +1122,12 @@ void fp_TextRun::mergeWithNext(void)
}
pNext->getLine()->removeRun(pNext, false);
-
- // if appending a strong run onto a weak one, make sure the overall direction
- // is that of the strong run, and tell the line about this, since the call
- // to removeRun above decreased the line's direction counter
- if(!UT_BIDI_IS_STRONG(_getDirection()) && UT_BIDI_IS_STRONG(pNext->_getDirection()))
- {
- _setDirection(pNext->_getDirection());
- getLine()->addDirectionUsed(_getDirection());
- }
- else if(UT_BIDI_IS_WEAK(_getDirection()) && UT_BIDI_IS_WEAK(pNext->_getDirection()))
- {
- // numbers will take precedence
- if(UT_BIDI_IS_NUMBER(pNext->_getDirection()))
- {
- _setDirection(pNext->_getDirection());
- // no need to inform the line, since the visual direction
- // is not going to change
- }
- }
+ lookupProperties();
setMustClearScreen();
+ markDrawBufferDirty();
delete pNext;
+
}
bool fp_TextRun::split(UT_uint32 iSplitOffset)
@@ -1210,10 +1143,6 @@ bool fp_TextRun::split(UT_uint32 iSplitO
UT_ASSERT(pNew);
- // when spliting the run, we do not want to recalculated the draw
- // buffer if the current one is up to date
- pNew->_setRefreshDrawBuffer(_getRefreshDrawBuffer());
-
pNew->_setFont(this->_getFont());
pNew->_setDecorations(this->_getDecorations());
@@ -1263,74 +1192,23 @@ bool fp_TextRun::split(UT_uint32 iSplitO
}
setNextRun(pNew, false);
- // split the rendering info, this will save us refreshing it
- // which is very expensive (see notes on the mergeWithNext())
- bool bReverse = ((!s_bBidiOS && iVisDirection == UT_BIDI_RTL)
- || (s_bBidiOS && m_iDirOverride == UT_BIDI_RTL && _getDirection() == UT_BIDI_LTR)
- || (s_bBidiOS && m_iDirOverride == UT_BIDI_LTR && _getDirection() == UT_BIDI_RTL));
-
- // runs can be split even before any shaping has been done on the, in which case we do not have
- // the redering info yet; in such cases we only have m_pItem
- bool bSplitSucceeded = true;
-
- if(m_pRenderInfo)
- {
- m_pRenderInfo->m_pGraphics = getGraphics();
- m_pRenderInfo->m_pFont = getFont();
- m_pRenderInfo->m_iLength = getLength();
- m_pRenderInfo->m_iOffset = iSplitOffset - getBlockOffset();
- if(!m_pRenderInfo->split(pNew->m_pRenderInfo, bReverse))
- {
- // the graphics class is either incapable of spliting, or the operation failed
- // we need to mark both runs for shaping
- _setRefreshDrawBuffer(GRSR_Unknown);
- pNew->_setRefreshDrawBuffer(GRSR_Unknown);
- bSplitSucceeded = false;
- }
-
-
- // the split function created a copy of GR_Item in the render
- // info; bring the member into sync with it (m_pItem is where the GR_Item lives and where it
- // is destroyed)
- if(pNew->m_pRenderInfo)
- {
- pNew->m_pItem = pNew->m_pRenderInfo->m_pItem;
- }
- }
- else
- {
- // if this assert falls, we are in real trouble ...
- UT_ASSERT_HARMLESS( m_pItem );
- if(m_pItem)
- {
- pNew->m_pItem = m_pItem->makeCopy();
- }
- }
-
-
+ // reitemize this run and blow away all the old render info. It has to be
+ // recalculated.
-
setLength(iSplitOffset - getBlockOffset(), false);
+ DELETEP(m_pRenderInfo);
+ itemize();
+ lookupProperties();
+ // Reitemize the new run
+ pNew->itemize();
if(getLine())
getLine()->insertRunAfter(pNew, this);
- // we will use the _addupCharWidths() function here instead of recalcWidth(), since when
- // a run is split the info in the block's char-width array is not affected, so we do not
//have to recalculate these
- if(bSplitSucceeded)
- {
- _addupCharWidths();
- pNew->_addupCharWidths();
- }
- else
- {
- recalcWidth();
- pNew->recalcWidth();
- }
-
-
+ recalcWidth();
+ pNew->recalcWidth();
//bool bDomDirection = getBlock()->getDominantDirection();
@@ -1345,7 +1223,6 @@ bool fp_TextRun::split(UT_uint32 iSplitO
}
pNew->_setY(getY());
-
return true;
}
@@ -2835,6 +2712,28 @@ UT_sint32 fp_TextRun::getStr(UT_UCSChar
return -1;
}
+void fp_TextRun::itemize(void)
+{
+ GR_Itemization I;
+ bool b = getBlock()->itemizeSpan(getBlockOffset(), getLength(),I);
+ UT_return_if_fail(b);
+ //
+ // Should only be one item per run
+ //
+ GR_Item * pItem = I.getNthItem(0)->makeCopy();
+ UT_return_if_fail(pItem);
+ setItem(pItem->makeCopy());
+}
+
+void fp_TextRun::setItem(GR_Item * i)
+{
+ DELETEP(m_pItem);
+ m_pItem =i;
+ if(m_pRenderInfo)
+ {
+ m_pRenderInfo->m_pItem = m_pItem;
+ }
+}
void fp_TextRun::setDirection(UT_BidiCharType dir, UT_BidiCharType dirOverride)
{
Index: src/text/fmt/xp/fp_Line.cpp
===================================================================
--- src/text/fmt/xp/fp_Line.cpp.orig
+++ src/text/fmt/xp/fp_Line.cpp
@@ -3121,8 +3121,12 @@ void fp_Line::coalesceRuns(void)
if (pRun->getType() == FPRUN_TEXT)
{
fp_TextRun* pTR = static_cast<fp_TextRun *>(pRun);
+ xxx_UT_DEBUGMSG(("Looking at %d Text run \n",i));
+ pTR->printText();
if (pTR->canMergeWithNext())
{
+ xxx_UT_DEBUGMSG(("Can merge \n"));
+ //pTR->printText();
fp_Run * pNext = pRun->getNextRun();
//
// Look if we have a redundant fmtMark.
Index: src/text/fmt/xp/fp_TextRun.h
===================================================================
--- src/text/fmt/xp/fp_TextRun.h.orig
+++ src/text/fmt/xp/fp_TextRun.h
@@ -108,7 +108,8 @@ public:
| (UT_uint32)eR);
}
- void setItem(GR_Item * i) {m_pItem = i;}
+ void itemize(void);
+ void setItem(GR_Item * i);
const GR_Item * getItem() const {return m_pItem;}
Index: src/text/fmt/xp/fl_BlockLayout.h
===================================================================
--- src/text/fmt/xp/fl_BlockLayout.h.orig
+++ src/text/fmt/xp/fl_BlockLayout.h
@@ -388,6 +388,8 @@ public:
UT_UTF8String & sWord,
bool bIgnoreSpace);
+ bool itemizeSpan(PT_BlockOffset blockOffset, UT_uint32 len,GR_Itemization & I);
+
#ifdef ENABLE_SPELL
/** put in queue for spellchecking after prev. If prev == NULL is put at the head */
void enqueueToSpellCheckAfter(fl_BlockLayout *prev);
r27632-mix-roman-and-complex.patch:
fp_TextRun.cpp | 18 ++++++++++++++++++
fp_TextRun.h | 1 +
2 files changed, 19 insertions(+)
--- NEW FILE r27632-mix-roman-and-complex.patch ---
Index: src/text/fmt/xp/fp_TextRun.cpp
===================================================================
--- src/text/fmt/xp/fp_TextRun.cpp.orig
+++ src/text/fmt/xp/fp_TextRun.cpp
@@ -1042,6 +1042,8 @@ bool fp_TextRun::canMergeWithNext(void)
&& !(*getRevisions() == *(pNext->getRevisions()))) //
//non-null but different
|| (pNext->getVisibility() != getVisibility())
+ // The merge must make just one item
+ || (!isOneItem(pNext))
#if 0
// I do not think this should happen at all
@@ -2712,6 +2714,22 @@ UT_sint32 fp_TextRun::getStr(UT_UCSChar
return -1;
}
+/*!
+ * Returns if this run plus the next can be combined to make one contiguous
+ * item
+ */
+bool fp_TextRun::isOneItem(fp_Run * pNext)
+{
+ GR_Itemization I;
+ bool b = getBlock()->itemizeSpan(getBlockOffset(), getLength()+pNext->getLength(),I);
+ UT_return_val_if_fail(b,false);
+ UT_DEBUGMSG(("Found %d items \n",I.getItemCount()-1));
+ if(I.getItemCount() <= 2)
+ {
+ return true;
+ }
+ return false;
+}
void fp_TextRun::itemize(void)
{
GR_Itemization I;
Index: src/text/fmt/xp/fp_TextRun.h
===================================================================
--- src/text/fmt/xp/fp_TextRun.h.orig
+++ src/text/fmt/xp/fp_TextRun.h
@@ -65,6 +65,7 @@ public:
bool canMergeWithNext(void);
void mergeWithNext(void);
bool findFirstNonBlankSplitPoint(fp_RunSplitInfo & splitInfo);
+ bool isOneItem(fp_Run * pNext);
enum
{
Calculate_full_width = -1
r27655-fix-script-mixing.patch:
af/util/xp/ut_string.cpp | 12 ++++++++++--
text/fmt/xp/fp_TextRun.cpp | 32 ++++++++++++++++++++++++++++++--
2 files changed, 40 insertions(+), 4 deletions(-)
--- NEW FILE r27655-fix-script-mixing.patch ---
Index: src/text/fmt/xp/fp_TextRun.cpp
===================================================================
--- src/text/fmt/xp/fp_TextRun.cpp (revisión: 27654)
+++ src/text/fmt/xp/fp_TextRun.cpp (revisión: 27655)
@@ -2779,8 +2779,8 @@
}
/*!
- * Returns if this run plus the next can be combined to make one contiguous
- * item
+ * Returns true if this run plus the next can be combined to make
+ * one contiguous item
*/
bool fp_TextRun::isOneItem(fp_Run * pNext)
{
@@ -2790,6 +2790,34 @@
UT_DEBUGMSG(("Found %d items \n",I.getItemCount()-1));
if(I.getItemCount() <= 2)
{
+ //
+ // Now look to see if there is roman text mixed with
+ // Unicode. Can easily happen with numbers or smart quotes
+ //
+ PD_StruxIterator text(getBlock()->getStruxDocHandle(),
+ getBlockOffset() + fl_BLOCK_STRUX_OFFSET);
+
+ text.setUpperLimit(text.getPosition() + getLength()+ pNext->getLength() - 1);
+ UT_ASSERT_HARMLESS( text.getStatus() == UTIter_OK );
+ bool bFoundRoman = false;
+ bool bFoundUnicode = false;
+ while(text.getStatus() == UTIter_OK)
+ {
+ UT_UCS4Char c = text.getChar();
+ if(c != ' ' && c <256)
+ {
+ bFoundRoman = true;
+ }
+ else if(c!= ' ' && !UT_isSmartQuotedCharacter(c))
+ {
+ bFoundUnicode = true;
+ }
+ ++text;
+ }
+ if(bFoundRoman && bFoundUnicode)
+ {
+ return false;
+ }
return true;
}
return false;
Index: src/af/util/xp/ut_string.cpp
===================================================================
--- src/af/util/xp/ut_string.cpp (revisión: 27654)
+++ src/af/util/xp/ut_string.cpp (revisión: 27655)
@@ -802,8 +802,6 @@
bool UT_isSmartQuotedCharacter(UT_UCSChar c)
{
- // TODO: this is anglo-centric; really need a locale argument or
- // TODO: something to get smart quote rules for the rest of the world
bool result;
switch (c)
{
@@ -811,6 +809,16 @@
case UCS_RQUOTE:
case UCS_LDBLQUOTE:
case UCS_RDBLQUOTE:
+ case 0x201a:
+ case 0x201e:
+ case 0x2039:
+ case 0x203a:
+ case 0x300c:
+ case 0x300d:
+ case 0x300e:
+ case 0x300f:
+ case '\"':
+ case '\'':
result = true;
break;
default:
r27656-debug-cleanup.patch:
fl_BlockLayout.cpp | 2 +-
fp_Line.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--- NEW FILE r27656-debug-cleanup.patch ---
Index: src/text/fmt/xp/fl_BlockLayout.cpp
===================================================================
--- src/text/fmt/xp/fl_BlockLayout.cpp.orig
+++ src/text/fmt/xp/fl_BlockLayout.cpp
@@ -1665,7 +1665,7 @@ void fl_BlockLayout::coalesceRuns(void)
_assertRunListIntegrity();
#if 1
- UT_DEBUGMSG(("fl_BlockLayout::coalesceRuns\n"));
+ xxx_UT_DEBUGMSG(("fl_BlockLayout::coalesceRuns\n"));
fp_Line* pLine = static_cast<fp_Line *>(getFirstContainer());
while (pLine)
{
Index: src/text/fmt/xp/fp_Line.cpp
===================================================================
--- src/text/fmt/xp/fp_Line.cpp.orig
+++ src/text/fmt/xp/fp_Line.cpp
@@ -3122,7 +3122,7 @@ void fp_Line::coalesceRuns(void)
{
fp_TextRun* pTR = static_cast<fp_TextRun *>(pRun);
xxx_UT_DEBUGMSG(("Looking at %d Text run \n",i));
- pTR->printText();
+ // pTR->printText();
if (pTR->canMergeWithNext())
{
xxx_UT_DEBUGMSG(("Can merge \n"));
r27660-complex-selections.patch:
af/gr/unix/gr_UnixPangoGraphics.cpp | 2 +-
text/fmt/xp/fp_TextRun.cpp | 22 +++++++++++++++-------
2 files changed, 16 insertions(+), 8 deletions(-)
--- NEW FILE r27660-complex-selections.patch ---
Index: src/text/fmt/xp/fp_TextRun.cpp
===================================================================
--- src/text/fmt/xp/fp_TextRun.cpp.orig
+++ src/text/fmt/xp/fp_TextRun.cpp
@@ -715,7 +715,7 @@ void fp_TextRun::mapXYToPosition(UT_sint
// don't set bBOL to false here
bEOL = false;
}
-
+ pos += adjustCaretPosition(pos,true);
return;
}
@@ -744,7 +744,7 @@ void fp_TextRun::mapXYToPosition(UT_sint
// the correct place to do it. 2001.02.25 jskov
bEOL = true;
}
-
+ pos += adjustCaretPosition(pos,true);
return;
}
@@ -779,6 +779,7 @@ void fp_TextRun::mapXYToPosition(UT_sint
bBOL = false;
bEOL = false;
+ pos += adjustCaretPosition(pos,true);
return;
}
@@ -812,6 +813,7 @@ void fp_TextRun::mapXYToPosition(UT_sint
iLog = getLength() - i;
pos = getBlock()->getPosition() + getBlockOffset() + iLog;
+ pos += adjustCaretPosition(pos,true);
return;
}
}
@@ -838,6 +840,7 @@ void fp_TextRun::mapXYToPosition(UT_sint
// reset this, so we have no stale pointers there
m_pRenderInfo->m_pText = NULL;
#endif
+ pos = adjustCaretPosition(pos,true);
return;
}
@@ -853,18 +856,19 @@ void fp_TextRun::findPointCoords(UT_uint
UT_sint32 yoff2;
UT_sint32 xdiff = 0;
xxx_UT_DEBUGMSG(("findPointCoords: Text Run offset %d \n",iOffset));
-
if(!m_pRenderInfo || _getRefreshDrawBuffer() == GRSR_Unknown)
{
// this can happen immediately after run is inserted at the
// end of a paragraph.
_refreshDrawBuffer();
}
-
UT_return_if_fail(m_pRenderInfo);
UT_return_if_fail(getLine());
+ // UT_uint32 docPos = getBlockOffset() + getBlock()->getPosition() +iOffset;
+ //docPos = adjustCaretPosition(docPos,true);
+ //iOffset = docPos - getBlockOffset() + getBlock()->getPosition();
getLine()->getOffsets(this, xoff, yoff);
if (m_fPosition == TEXT_POSITION_SUPERSCRIPT)
@@ -3274,9 +3278,10 @@ void fp_TextRun::updateOnDelete(UT_uint3
UT_uint32 fp_TextRun::adjustCaretPosition(UT_uint32 iDocumentPosition, bool bForward)
{
+
UT_uint32 iRunOffset = getBlockOffset() + getBlock()->getPosition();
- UT_return_val_if_fail( iDocumentPosition >= iRunOffset && iDocumentPosition < iRunOffset + getLength() &&
+ UT_return_val_if_fail( iDocumentPosition >= iRunOffset && iDocumentPosition <= iRunOffset + getLength() &&
m_pRenderInfo,
iDocumentPosition);
@@ -3294,8 +3299,11 @@ UT_uint32 fp_TextRun::adjustCaretPositio
m_pRenderInfo->m_pText = &text;
m_pRenderInfo->m_iOffset = iDocumentPosition - iRunOffset;
m_pRenderInfo->m_iLength = getLength();
-
- return iRunOffset + getGraphics()->adjustCaretPosition(*m_pRenderInfo, bForward);
+ UT_uint32 adjustedPos = iRunOffset + getGraphics()->adjustCaretPosition(*m_pRenderInfo, bForward);
+ if((adjustedPos - iRunOffset) > getLength())
+ adjustedPos = iRunOffset + getLength();
+ _refreshDrawBuffer();
+ return adjustedPos;
}
void fp_TextRun::adjustDeletePosition(UT_uint32 &iDocumentPosition, UT_uint32 &iCount)
Index: src/af/gr/unix/gr_UnixPangoGraphics.cpp
===================================================================
--- src/af/gr/unix/gr_UnixPangoGraphics.cpp.orig
+++ src/af/gr/unix/gr_UnixPangoGraphics.cpp
@@ -2122,7 +2122,7 @@ void GR_UnixPangoGraphics::positionToXY(
// withing range of our string
pOffset = g_utf8_offset_to_pointer (pUtf8, RI.m_iOffset);
}
- else if(i > 1)
+ else if(i >= 1)
{
// this is the case where the requested offset is past the end
// of our string; we will use the last char; as we have more than one
Index: abiword.spec
===================================================================
RCS file: /cvs/pkgs/rpms/abiword/OLPC-3/abiword.spec,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -p -r1.71 -r1.72
--- abiword.spec 3 Dec 2008 19:31:37 -0000 1.71
+++ abiword.spec 5 Oct 2009 07:19:14 -0000 1.72
@@ -7,7 +7,7 @@
Summary: The AbiWord word processor
Name: abiword
Version: %{majorversion}.%{minorversion}.%{microversion}
-Release: 2%{?dist}
+Release: 3%{?dist}
Epoch: 1
Group: Applications/Editors
License: GPLv2+
@@ -34,6 +34,11 @@ Patch3: abiword-plugins-2.6.0-boolean.pa
Patch100: abiword-2.6.5-defaultfont.patch
Patch101: abiword-2.6.4-draghandles.patch
Patch102: abiword-2.6.4-nohtmloptions.patch
+Patch200: r27631-bug-12283.patch
+Patch201: r27632-mix-roman-and-complex.patch
+Patch202: r27655-fix-script-mixing.patch
+Patch203: r27656-debug-cleanup.patch
+Patch204: r27660-complex-selections.patch
%endif
BuildRequires: autoconf, libtool
@@ -88,6 +93,11 @@ Includes and definitions for developing
%patch100 -p1 -b .defaultfont
%patch101 -p1 -b .draghandles
%patch102 -p1 -b .nohtmloptions
+%patch200 -p0
+%patch201 -p0
+%patch202 -p0
+%patch203 -p0
+%patch204 -p0
%endif
# setup abiword-plugins
@@ -214,6 +224,11 @@ update-desktop-database %{_datadir}/appl
%{_libdir}/pkgconfig/%{name}-%{majorversion}.%{minorversion}.pc
%changelog
+* Thu Sep 24 2009 Daniel Drake <dsd at laptop.org> - 1:2.6.5-3
+- Add some upstream patches to fix
+ http://bugzilla.abisource.com/show_bug.cgi?id=12283 and
+ http://bugzilla.abisource.com/show_bug.cgi?id=12285
+
* Wed Dec 03 2008 Marc Maurer <uwog at abisource.com> - 1:2.6.5-2
- Change the font for Arabic locales to default to
DejaVu Sans for better glyph coverage
More information about the fedora-extras-commits
mailing list