You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libreoffice/0001-fix-rtf-import-on-big-...

115 lines
3.5 KiB

From d2dff59c034a65421dee67c86c1b1585d56f29d1 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Wed, 19 Jun 2013 12:38:43 +0200
Subject: [PATCH] fix rtf import on big endian
(cherry picked from commit fa2363344cbf85af17a80c4757b226ab43391af6)
Change-Id: Ia9f589752176849f7f6700483e933767e509edf3
Signed-off-by: David Tardon <dtardon@redhat.com>
---
writerfilter/source/rtftok/rtffly.hxx | 42 +++++++++++++----------------------
1 file changed, 15 insertions(+), 27 deletions(-)
diff --git a/writerfilter/source/rtftok/rtffly.hxx b/writerfilter/source/rtftok/rtffly.hxx
index ab68cfc..d07a8ac 100644
--- a/writerfilter/source/rtftok/rtffly.hxx
+++ b/writerfilter/source/rtftok/rtffly.hxx
@@ -17,18 +17,18 @@ namespace writerfilter {
{
public:
RTFVertOrient(sal_uInt16 nValue)
+ : nVal(nValue)
{
- Value.nVal = nValue;
}
sal_uInt16 GetOrient() const
{
- return Value.Flags.nOrient;
+ return OSL_LONIBBLE(OSL_LOBYTE(nVal));
}
sal_uInt16 GetRelation() const
{
- return Value.Flags.nRelOrient;
+ return OSL_HINIBBLE(OSL_LOBYTE(nVal));
}
sal_Int32 GetAlign() const
@@ -71,19 +71,11 @@ namespace writerfilter {
sal_uInt16 GetValue() const
{
- return Value.nVal;
+ return nVal;
}
private:
- union
- {
- struct
- {
- sal_uInt16 nOrient : 4;
- sal_uInt16 nRelOrient : 4;
- } Flags;
- sal_uInt16 nVal;
- } Value;
+ sal_uInt16 nVal;
};
/// Stores the horizontal orientation properties of an RTF fly frame.
@@ -91,18 +83,23 @@ namespace writerfilter {
{
public:
RTFHoriOrient(sal_uInt16 nValue)
+ : nVal(nValue)
{
- Value.nVal = nValue;
}
sal_uInt16 GetOrient() const
{
- return Value.Flags.nOrient;
+ return OSL_LONIBBLE(OSL_LOBYTE(nVal));
}
sal_uInt16 GetRelation() const
{
- return Value.Flags.nRelOrient;
+ return OSL_LONIBBLE(OSL_HIBYTE(nVal));
+ }
+
+ sal_uInt16 GetRelAnchor() const
+ {
+ return OSL_HINIBBLE(OSL_LOBYTE(nVal));
}
sal_Int32 GetAlign() const
@@ -151,20 +148,11 @@ namespace writerfilter {
sal_uInt16 GetValue() const
{
- return Value.nVal;
+ return nVal;
}
private:
- union
- {
- struct
- {
- sal_uInt16 nOrient : 4;
- sal_uInt16 nRelAnchor : 4;
- sal_uInt16 nRelOrient : 4;
- } Flags;
- sal_uInt16 nVal;
- } Value;
+ sal_uInt16 nVal;
};
} // namespace rtftok
} // namespace writerfilter
--
1.8.2.1