parent
7d231996d4
commit
044949166b
@ -1,33 +0,0 @@
|
|||||||
From fabf05464f137875a5ee74fcc21938161ecca077 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
|
|
||||||
Date: Fri, 25 Jan 2013 12:25:36 +0100
|
|
||||||
Subject: [PATCH] Handle correctly negative angles in ellipse
|
|
||||||
|
|
||||||
---
|
|
||||||
src/lib/CDRParser.cpp | 10 ++++++++++
|
|
||||||
1 file changed, 10 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
|
|
||||||
index c30d987..a76a0a6 100644
|
|
||||||
--- a/src/lib/CDRParser.cpp
|
|
||||||
+++ b/src/lib/CDRParser.cpp
|
|
||||||
@@ -1186,6 +1186,16 @@ void libcdr::CDRParser::readEllipse(WPXInputStream *input)
|
|
||||||
double rx = fabs(cx);
|
|
||||||
double ry = fabs(cy);
|
|
||||||
|
|
||||||
+ while (angle1 < 0.0)
|
|
||||||
+ angle1 += 2*M_PI;
|
|
||||||
+ while (angle1 > 2*M_PI)
|
|
||||||
+ angle1 -= 2*M_PI;
|
|
||||||
+
|
|
||||||
+ while (angle2 < 0.0)
|
|
||||||
+ angle2 += 2*M_PI;
|
|
||||||
+ while (angle2 > 2*M_PI)
|
|
||||||
+ angle2 -= 2*M_PI;
|
|
||||||
+
|
|
||||||
if (angle1 != angle2)
|
|
||||||
{
|
|
||||||
if (angle2 < angle1)
|
|
||||||
--
|
|
||||||
1.7.11.7
|
|
||||||
|
|
@ -0,0 +1,50 @@
|
|||||||
|
From 5bcf082f8b15d5af258b4c16dca7177b6762f2b8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
|
||||||
|
Date: Fri, 1 Mar 2013 14:05:37 +0100
|
||||||
|
Subject: [PATCH] Override encodings in stlt
|
||||||
|
|
||||||
|
---
|
||||||
|
src/lib/CDRParser.cpp | 11 ++++++++---
|
||||||
|
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
|
||||||
|
index 99526c0..08dcccf 100644
|
||||||
|
--- a/src/lib/CDRParser.cpp
|
||||||
|
+++ b/src/lib/CDRParser.cpp
|
||||||
|
@@ -2415,7 +2415,8 @@ void libcdr::CDRParser::readStlt(WPXInputStream *input, unsigned length)
|
||||||
|
}
|
||||||
|
unsigned numFonts = readU32(input);
|
||||||
|
CDR_DEBUG_MSG(("CDRParser::readStlt numFonts 0x%x\n", numFonts));
|
||||||
|
- std::map<unsigned,unsigned> fontIds;
|
||||||
|
+ std::map<unsigned,unsigned short> fontIds;
|
||||||
|
+ std::map<unsigned,unsigned short> fontEncodings;
|
||||||
|
std::map<unsigned,double> fontSizes;
|
||||||
|
for (i=0; i<numFonts; ++i)
|
||||||
|
{
|
||||||
|
@@ -2424,7 +2425,8 @@ void libcdr::CDRParser::readStlt(WPXInputStream *input, unsigned length)
|
||||||
|
input->seek(12, WPX_SEEK_CUR);
|
||||||
|
else
|
||||||
|
input->seek(20, WPX_SEEK_CUR);
|
||||||
|
- fontIds[fontStyleId] = readU32(input);
|
||||||
|
+ fontIds[fontStyleId] = readU16(input);
|
||||||
|
+ fontEncodings[fontStyleId] = readU16(input);
|
||||||
|
input->seek(8, WPX_SEEK_CUR);
|
||||||
|
fontSizes[fontStyleId] = readCoordinate(input);
|
||||||
|
if (m_version < 1000)
|
||||||
|
@@ -2578,9 +2580,12 @@ void libcdr::CDRParser::readStlt(WPXInputStream *input, unsigned length)
|
||||||
|
}
|
||||||
|
if (!fontRecordId)
|
||||||
|
continue;
|
||||||
|
- std::map<unsigned, unsigned>::const_iterator iterFontId = fontIds.find(fontRecordId);
|
||||||
|
+ std::map<unsigned, unsigned short>::const_iterator iterFontId = fontIds.find(fontRecordId);
|
||||||
|
if (iterFontId != fontIds.end())
|
||||||
|
tmpCharStyle.m_fontId = iterFontId->second;
|
||||||
|
+ std::map<unsigned, unsigned short>::const_iterator iterCharSet = fontEncodings.find(fontRecordId);
|
||||||
|
+ if (iterCharSet != fontEncodings.end())
|
||||||
|
+ tmpCharStyle.m_charSet = iterCharSet->second;
|
||||||
|
std::map<unsigned, double>::const_iterator iterFontSize = fontSizes.find(fontRecordId);
|
||||||
|
if (iterFontSize != fontSizes.end())
|
||||||
|
tmpCharStyle.m_fontSize = iterFontSize->second;
|
||||||
|
--
|
||||||
|
1.8.1
|
||||||
|
|
Loading…
Reference in new issue