libvisio.git: src/lib src/test

2024-10-10 Thread Libreoffice Gerrit user
 src/lib/VSDXParser.cpp  |   33 +++--
 src/lib/VSDXTheme.cpp   |6 --
 src/test/importtest.cpp |7 ---
 3 files changed, 27 insertions(+), 19 deletions(-)

New commits:
commit 90ac79238339ba6a4df064d956150aa379e6d740
Author: Bartosz Kosiorek 
AuthorDate: Tue Oct 8 20:49:35 2024 +0200
Commit: Bartosz Kosiorek 
CommitDate: Fri Oct 11 00:02:00 2024 +0200

tdf#154379 Fix reading TextBkgnd from Shape

The TextBkgnd cell can have any value from 0 through 24, or 255.
The values 0 and 255 (visTxtBlklOpaque) both indicate a transparent text 
background.

In previous implementation if:
   
were specified, the value was taken from colors.

With this implementation, if V='0' then background is not displayed, 
according
to documentation.

Change-Id: I32831ef58a5ea11e6fcc6f1fccda8618817f3af4
Reviewed-on: https://gerrit.libreoffice.org/c/libvisio/+/174712
Reviewed-by: Bartosz Kosiorek 
Tested-by: Bartosz Kosiorek 

diff --git a/src/lib/VSDXParser.cpp b/src/lib/VSDXParser.cpp
index 8ede9c7..46efdd3 100644
--- a/src/lib/VSDXParser.cpp
+++ b/src/lib/VSDXParser.cpp
@@ -947,9 +947,6 @@ int libvisio::VSDXParser::getElementDepth(xmlTextReaderPtr 
reader)
 
 void libvisio::VSDXParser::readShapeProperties(xmlTextReaderPtr reader)
 {
-  // Text block properties
-  long bgClrId = -1;
-
   int ret = 1;
   int tokenId = XML_TOKEN_INVALID;
   int tokenType = -1;
@@ -1226,19 +1223,27 @@ void 
libvisio::VSDXParser::readShapeProperties(xmlTextReaderPtr reader)
 case XML_TEXTBKGND:
   if (XML_READER_TYPE_ELEMENT == tokenType)
   {
-Colour textBkgndColour(0xff, 0xff, 0xff, 0);
-ret = readExtendedColourData(textBkgndColour, bgClrId, reader);
-if (bgClrId < 0) bgClrId = 0;
-if (bgClrId)
+long bgClrId = -1;
+Colour tmpColour;
+if (readColourOrColourIndex(tmpColour, bgClrId, reader))
 {
-  std::map::const_iterator iter = 
m_colours.find(bgClrId-1);
-  if (iter != m_colours.end())
-textBkgndColour = iter->second;
-  else
-textBkgndColour = Colour(0xff, 0xff, 0xff, 0);
+  m_shape.m_textBlockStyle.isTextBkgndFilled = true;
+  m_shape.m_textBlockStyle.textBkgndColour = tmpColour;
+  break;
+}
+if ((bgClrId < 1) || (bgClrId >= 255))
+{
+  m_shape.m_textBlockStyle.isTextBkgndFilled = false;
+  break;
+}
+std::map::const_iterator iter = 
m_colours.find(bgClrId - 1);
+if (iter != m_colours.end())
+{
+  m_shape.m_textBlockStyle.textBkgndColour = iter->second;
+  m_shape.m_textBlockStyle.isTextBkgndFilled = true;
+  break;
 }
-m_shape.m_textBlockStyle.textBkgndColour = textBkgndColour;
-m_shape.m_textBlockStyle.isTextBkgndFilled = true;
+m_shape.m_textBlockStyle.isTextBkgndFilled = false;
   }
   break;
 case XML_DEFAULTTABSTOP:
diff --git a/src/lib/VSDXTheme.cpp b/src/lib/VSDXTheme.cpp
index 06ba95c..b4911d3 100644
--- a/src/lib/VSDXTheme.cpp
+++ b/src/lib/VSDXTheme.cpp
@@ -525,7 +525,8 @@ void libvisio::VSDXTheme::readFmtScheme(xmlTextReaderPtr 
reader)
   // Other style lists not implemented
   break;
 }
-  } while ((XML_A_FMTSCHEME != tokenId || XML_READER_TYPE_END_ELEMENT != 
tokenType) && 1 == ret);
+  }
+  while ((XML_A_FMTSCHEME != tokenId || XML_READER_TYPE_END_ELEMENT != 
tokenType) && 1 == ret);
 }
 
 void libvisio::VSDXTheme::skipUnimplemented(xmlTextReaderPtr reader, int 
idToken)
@@ -542,7 +543,8 @@ void 
libvisio::VSDXTheme::skipUnimplemented(xmlTextReaderPtr reader, int idToken
   VSD_DEBUG_MSG(("VSDXTheme::skipUnimplemented: unknown token %s
", xmlTextReaderConstName(reader)));
 }
 tokenType = xmlTextReaderNodeType(reader);
-  } while ((idToken != tokenId || XML_READER_TYPE_END_ELEMENT != tokenType) && 
1 == ret);
+  }
+  while ((idToken != tokenId || XML_READER_TYPE_END_ELEMENT != tokenType) && 1 
== ret);
 }
 
 void libvisio::VSDXTheme::readFillStyleLst(xmlTextReaderPtr reader)
diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index a4380b1..d26eb08 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -574,10 +574,11 @@ void ImportTest::testVsdxQuickStyleFillMatrix()
   assertXPath(m_doc, "/document/page/layer/layer/setStyle[2]", "stroke-color", 
"#5b9bd5");
 
   assertXPath(m_doc, "/document/page/layer/textObject/paragraph[1]/span", 
"color", "#5b9bd5");
-  // TODO assertXPath(m_doc, 
"/document/page/layer/textObject/paragraph[1]/span", "background-color", 
"#ff");
+  assertXPathNoAttribute(m_doc, 
"/document/page/layer/textObject/paragraph[1]/span", "background-color");
   assertXPathContent(m_doc, 
"/document/page/layer/textObject/paragraph[1]/span/insertText", " 
Kommissionierungs");
-  assertXPath(m_doc, "/document/page/layer/textObject/paragraph[1]/span", 
"color", "#5b9bd5");

libvisio.git: src/lib src/test

2024-10-09 Thread Libreoffice Gerrit user
 src/lib/VSDXTheme.cpp |8 -
 src/test/data/tdf154379-QuickStyleFillMatrix.vsdx |binary
 src/test/importtest.cpp   |   32 +++---
 3 files changed, 35 insertions(+), 5 deletions(-)

New commits:
commit a63cf4a0aa11be22a6a6bb5de3d445d5147bc16f
Author: Bartosz Kosiorek 
AuthorDate: Tue Oct 8 17:32:07 2024 +0200
Commit: Bartosz Kosiorek 
CommitDate: Thu Oct 10 00:46:16 2024 +0200

tdf#154379 Fix reading FillStyleLst

With previous implementation readFillStyleLst method
is saving all colours into first element: m_fillStyleLst[0]
It was causing that only last colour was present.

This commit is fixing that issue, by increasing iterator.

Change-Id: Ib77463c582874967e255ef91c0380fd880b8418e
Reviewed-on: https://gerrit.libreoffice.org/c/libvisio/+/174698
Reviewed-by: Bartosz Kosiorek 
Tested-by: Bartosz Kosiorek 

diff --git a/src/lib/VSDXTheme.cpp b/src/lib/VSDXTheme.cpp
index 537e2ad..06ba95c 100644
--- a/src/lib/VSDXTheme.cpp
+++ b/src/lib/VSDXTheme.cpp
@@ -555,7 +555,7 @@ void libvisio::VSDXTheme::readFillStyleLst(xmlTextReaderPtr 
reader)
 VSD_DEBUG_MSG(("VSDXTheme::readFillStyleLst: unknown token %s
", xmlTextReaderConstName(reader)));
   }
   int tokenType = xmlTextReaderNodeType(reader);
-  int i = 0;
+  std::size_t i = 0;
   while ((XML_A_FILLSTYLELST != tokenId || XML_READER_TYPE_END_ELEMENT != 
tokenType) && 1 == ret)
   {
 switch (tokenId)
@@ -565,7 +565,10 @@ void 
libvisio::VSDXTheme::readFillStyleLst(xmlTextReaderPtr reader)
   Colour colour;
   if (readThemeColour(reader, tokenId, colour))
   {
-m_fillStyleLst[i] = colour;
+if (i < m_fillStyleLst.size())
+  m_fillStyleLst[i] = colour;
+else
+  VSD_DEBUG_MSG(("VSDXTheme::readFillStyleLst Error: Unable to add 
colour #%02x%02x%02x
", colour.r, colour.g, colour.b));
   }
   break;
 }
@@ -581,6 +584,7 @@ void libvisio::VSDXTheme::readFillStyleLst(xmlTextReaderPtr 
reader)
   VSD_DEBUG_MSG(("VSDXTheme::readFillStyleLst: unknown token %s
", xmlTextReaderConstName(reader)));
 }
 tokenType = xmlTextReaderNodeType(reader);
+i++;
   }
 }
 
diff --git a/src/test/data/tdf154379-QuickStyleFillMatrix.vsdx 
b/src/test/data/tdf154379-QuickStyleFillMatrix.vsdx
new file mode 100644
index 000..b561b10
Binary files /dev/null and b/src/test/data/tdf154379-QuickStyleFillMatrix.vsdx 
differ
diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index 1dc4945..a4380b1 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -219,7 +219,8 @@ class ImportTest : public CPPUNIT_NS::TestFixture
   CPPUNIT_TEST(testBmpFileHeader);
   CPPUNIT_TEST(testBmpFileHeader2);
   CPPUNIT_TEST(testVsdxImportDefaultFillColour);
-  CPPUNIT_TEST(testVsdxQickStyleFillStyle);
+  CPPUNIT_TEST(testVsdxQuickStyleFillMatrix);
+  CPPUNIT_TEST(testVsdxQuickStyleFillStyle);
   CPPUNIT_TEST_SUITE_END();
 
   void testVsdxMetadataTitle();
@@ -239,7 +240,8 @@ class ImportTest : public CPPUNIT_NS::TestFixture
   void testBmpFileHeader();
   void testBmpFileHeader2();
   void testVsdxImportDefaultFillColour();
-  void testVsdxQickStyleFillStyle();
+  void testVsdxQuickStyleFillMatrix();
+  void testVsdxQuickStyleFillStyle();
 
   xmlBufferPtr m_buffer;
   xmlDocPtr m_doc;
@@ -555,7 +557,31 @@ void ImportTest::testVsdxImportDefaultFillColour()
   assertXPath(m_doc, "/document/page/layer[1]//setStyle[2]", "fill-color", 
"#5b9bd5");
 }
 
-void ImportTest::testVsdxQickStyleFillStyle()
+void ImportTest::testVsdxQuickStyleFillMatrix()
+{
+  // Without the accompanying fix in place, this test would have failed with:
+  // equality assertion failed
+  // - Expected: #ff
+  // - Actual  : #5b9bd5
+  // - Attribute 'fill-color' of '/document/page/layer/layer/setStyle[1]': 
incorrect value.
+
+  m_doc = parse("tdf154379-QuickStyleFillMatrix.vsdx", m_buffer);
+  assertXPath(m_doc, "/document/page/layer/layer/setStyle[1]", "fill", 
"solid");
+  assertXPath(m_doc, "/document/page/layer/layer/setStyle[1]", "fill-color", 
"#ff");
+  assertXPath(m_doc, "/document/page/layer/layer/setStyle[1]", "stroke-color", 
"#5b9bd5");
+  assertXPath(m_doc, "/document/page/layer/layer/setStyle[2]", "fill", "none");
+  assertXPath(m_doc, "/document/page/layer/layer/setStyle[2]", "fill-color", 
"#ff");
+  assertXPath(m_doc, "/document/page/layer/layer/setStyle[2]", "stroke-color", 
"#5b9bd5");
+
+  assertXPath(m_doc, "/document/page/layer/textObject/paragraph[1]/span", 
"color", "#5b9bd5");
+  // TODO assertXPath(m_doc, 
"/document/page/layer/textObject/paragraph[1]/span", "background-color", 
"#ff");
+  assertXPathContent(m_doc, 
"/document/page/layer/textObject/paragraph[1]/span/insertText", " 
Kommissionierungs");
+  assertXPath(m_doc, "/document/page/layer/textObject/paragraph[1]/span", 
"color", "#5b9bd5");
+  // TODO assertXPath(m_doc, 
"/document/page/layer/textObject/paragra

libvisio.git: src/test

2024-10-08 Thread Libreoffice Gerrit user
 src/test/importtest.cpp |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 9aa2bad07685d5641649d2065d46fd2ace19c280
Author: Bartosz Kosiorek 
AuthorDate: Tue Oct 8 17:38:34 2024 +0200
Commit: Bartosz Kosiorek 
CommitDate: Tue Oct 8 18:03:46 2024 +0200

tdf#126402 Fix testVsd11FormatLine test

Change-Id: I251c99564253cf4b8125c302797e5a13c0cfb9c0
Reviewed-on: https://gerrit.libreoffice.org/c/libvisio/+/174697
Tested-by: Bartosz Kosiorek 
Reviewed-by: Bartosz Kosiorek 

diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index c4fcf5c..1dc4945 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -413,7 +413,7 @@ void ImportTest::testVsd11FormatLine()
   assertXPath(m_doc, "/document/page/setStyle[5]", "marker-start-center", 
"true");
 
   assertXPath(m_doc, "/document/page/setStyle[6]", "marker-end-path",
-  "M1500 0l1500 2789v211h-114l-1286-2392v2392h-200v-2392l-1286 
2392h-114v-211z");
+  "m1286 0 1200 2789v211h-114l-986-2392v2392h-200v-2392l-1072 
2392h-114v-211z");
   assertXPathNoAttribute(m_doc, "/document/page/setStyle[6]", 
"marker-end-center");
   assertXPath(m_doc, "/document/page/setStyle[6]", "marker-start-center", 
"true");
   assertXPathNoAttribute(m_doc, "/document/page/setStyle[11]", 
"marker-start-center");


libvisio.git: src/lib

2024-10-07 Thread Libreoffice Gerrit user
 src/lib/VSDContentCollector.cpp |   52 +---
 1 file changed, 28 insertions(+), 24 deletions(-)

New commits:
commit 95786a1f8fd9907d4fa483ead66887440434a36f
Author: Bartosz Kosiorek 
AuthorDate: Mon Oct 7 23:10:43 2024 +0200
Commit: Bartosz Kosiorek 
CommitDate: Tue Oct 8 00:38:46 2024 +0200

tdf#126402 Improve arrowheads appearance and implement more.

Change-Id: Iab96dda4000d0430846f241eb71d7b7bdc2e62d9
Reviewed-on: https://gerrit.libreoffice.org/c/libvisio/+/174649
Tested-by: Bartosz Kosiorek 
Reviewed-by: Bartosz Kosiorek 

diff --git a/src/lib/VSDContentCollector.cpp b/src/lib/VSDContentCollector.cpp
index b34ed5c..2456ce6 100644
--- a/src/lib/VSDContentCollector.cpp
+++ b/src/lib/VSDContentCollector.cpp
@@ -150,7 +150,8 @@ const char 
*libvisio::VSDContentCollector::_linePropertiesMarkerViewbox(unsigned
 {
   switch (marker)
   {
-  case 1:
+  case 1: // Open Short Arrowhead
+return "0 0 30 10";
   case 2:
   case 9:
   case 15:
@@ -162,16 +163,19 @@ const char 
*libvisio::VSDContentCollector::_linePropertiesMarkerViewbox(unsigned
   case 4:
   case 5:
   case 6:
-  case 16:
-  case 17:
-  case 18:
+  case 16: // Unfilled Triangle
+return "0 0 20 20";
+  case 17: // Concave Unfilled
+return "0 0 200 200";
+  case 18: // Convex Unfilled
 return "0 0 20 20";
   case 11: // Centered square filled
 return "0 0 10 10";
   case 12:
   case 13:
-  case 14:
 return "0 0 20 30";
+  case 14: // Unfilled Long Triangle
+return "110 200 200 300";
   case 22:
   case 39:
 return "0 0 20 40";
@@ -201,8 +205,8 @@ const char 
*libvisio::VSDContentCollector::_linePropertiesMarkerPath(unsigned ma
   */
   switch (marker)
   {
-  case 1: // TODO
-return "M1500 0l1500 2789v211h-114l-1286-2392v2392h-200v-2392l-1286 
2392h-114v-211z";
+  case 1: // Open Short Arrowhead
+return "M1500 0 l1500 1789 v211 h-114 l-1286 -1543 v2543 h-200 v-2543 
l-1286 1543 h-114 v-211 z"; //Change wing angle
   case 2: //
 return "m10 0-10 10h20z";
   case 3: // Short line arrow, Copied from LO
@@ -213,8 +217,8 @@ const char 
*libvisio::VSDContentCollector::_linePropertiesMarkerPath(unsigned ma
 return "m10 0-10 20q10,-5 20,0z";
   case 6: //
 return "m10 0-10 20q10,5 20,0z";
-  case 7: // TODO
-return "m10 0q-2.6,13.4 -10,18q10,-5 20,0q-7.4,-4.6 -10,-18";
+  case 7: // TODO Open
+return "m100 0q-26 134-100 180 100-50 200 0-74-46-100-180m0 24q-22 107-80 
144 80-40 160 0-59-37-80-144";
   case 8: // filled arrow
 return "m10 0q-2.6,13.4 -10,18q10,-5 20,0q-7.4,-4.6 -10,-18";
   case 9:  // Centered line
@@ -224,22 +228,22 @@ const char 
*libvisio::VSDContentCollector::_linePropertiesMarkerPath(unsigned ma
 return "m462 1118-102-29-102-51-93-72-72-93-51-102-29-102-13-105 13-102 
29-106 51-102 72-89 93-72 102-50 102-34 106-9 101 9 106 34 98 50 93 72 72 89 51 
102 29 106 13 102-13 105-29 102-51 102-72 93-93 72-98 51-106 29-101 13z";//
   case 11: // Centered square filled, Copied from LO
 return "M0 0h10v10h-10z";
-  case 12: // TODO
-return "M1500 0l1500 2789v211h-114l-1286-2392v2392h-200v-2392l-1286 
2392h-114v-211z";
+  case 12: // Open Long Arrowhead
+return "m1286 0 1200 2789v211h-114l-986-2392v2392h-200v-2392l-1072 
2392h-114v-211z";
   case 13:
 return "m10 0-10 30h20z";
-  case 14:
-return "m10 0-10 30h20z m0 12l-5 15h10z";
+  case 14: // Unfilled Long Triangle
+return "m100 0-100 300h200zm0 18-90 275h180z";
   case 15:
 return "m10 0-10 10h20z m0 1l-8 8h16z";
-  case 16:
-return "m10 0-10 20h20z m0 7l-5 10h10z";
-  case 17:
-return "m10 0-10 20q10,-5 20,0z m0 7l-4 8q4,-2 8,0z";
-  case 18:
-return "m10 0-10 20q10,5 20,0z m0 7l-5 10q5,2 10,0z";
-  case 19: // TODO
-return "m10 0q-2.6,13.4 -10,18q10,-5 20,0q-7.4,-4.6 -10,-18";
+  case 16: // Unfilled Triangle
+return "m20 0-20 40h40zm0 3-18 36h36z";
+  case 17: // Concave Unfilled
+return "m100 0-100 200q100-50 200 0zm0 20-80 160q80-35 160 0z";
+  case 18: // Convex Unfilled
+return "m20 0-20 40q20 10 40 0z m0 3-18 36q18 8 36 0z";
+  case 19: // Unfilled
+return "m100 0q-26 134-100 180 100-50 200 0-74-46-100-180m0 24q-22 107-80 
144 80-40 160 0-59-37-80-144";
   case 20: // Centered unfilled circle,
   case 41: // unfilled circle, Copied from LO
 return "M1500 3000c-276 0-511-63-750-201s-411-310-549-549-201-474-201-750 
63-511 201-750 310-411 549-549 474-201 750-201 511 63 750 201 411 310 549 549 
201 474 201 750-63 511-201 750-310 411-549 549-474 201-750 201zM1500 2800c-239 
0-443-55-650-174s-356-269-476-476-174-411-174-650 55-443 174-650 269-356 
476-476c207-119 411-174 650-174s443 55 650 174c207 120 356 269 476 476s174 411 
174 650-55 443-174 650-269 356-476 476c-207 119-411 174-650 174z";
@@ -247,7 +251,7 @@ const char 
*libvisio::VSDContentCollector::_linePropertiesMarkerPath(unsigned ma
 return "M0 0h300v300h-300zM20 20h260v260h-260z";
   case 22: // Unfilled diamond, Copied from LO
  

libvisio.git: src/lib src/test

2024-10-01 Thread Libreoffice Gerrit user
 src/lib/VSDXMLParserBase.cpp |   25 ++
 src/lib/VSDXMLParserBase.h   |1 
 src/lib/VSDXParser.cpp   |   54 ++-
 src/test/Makefile.am |5 +-
 src/test/data/tdf136564-WhiteTextBackground.vsdx |binary
 src/test/importtest.cpp  |   20 
 6 files changed, 83 insertions(+), 22 deletions(-)

New commits:
commit 2849204df192331ea94c37414c9452acc9dda287
Author: Bartosz Kosiorek 
AuthorDate: Sun Sep 29 11:16:18 2024 +0200
Commit: Bartosz Kosiorek 
CommitDate: Tue Oct 1 20:14:47 2024 +0200

tdf136564 VSDX Add support for TextBackground from SheetStyle

Previously the TextBackgroundColor was not supported when
it was defined inside StyleSheet.
This commit fixes that and allow for proper import of VSDX into
LibreOffice.

More information about TextBkgnd Cell:

https://learn.microsoft.com/en-us/office/client-developer/visio/textbkgnd-cell-text-block-format-section

Change-Id: Id8d1676d802916dc0776138041ea9f7928914f06
Reviewed-on: https://gerrit.libreoffice.org/c/libvisio/+/174173
Tested-by: Miklos Vajna 
Reviewed-by: Bartosz Kosiorek 

diff --git a/src/lib/VSDXMLParserBase.cpp b/src/lib/VSDXMLParserBase.cpp
index bf1ab6a..8dadd5f 100644
--- a/src/lib/VSDXMLParserBase.cpp
+++ b/src/lib/VSDXMLParserBase.cpp
@@ -2221,6 +2221,31 @@ int 
libvisio::VSDXMLParserBase::readExtendedColourData(boost::optional &
   return ret;
 }
 
+/* Currently this method is used only for VSDX import, to avoid regression.
+ * TODO align usage with other file type importers (VSD), and cover it with 
test cases
+ */
+bool libvisio::VSDXMLParserBase::readColourOrColourIndex(Colour &value, long 
&idx, xmlTextReaderPtr reader)
+{
+  const shared_ptr stringValue(readStringData(reader), xmlFree);
+  if (stringValue)
+  {
+VSD_DEBUG_MSG(("VSDXMLParserBase::readExtendedColourData stringValue %s
", (const char *)stringValue.get()));
+if (!xmlStrEqual(stringValue.get(), BAD_CAST("Themed")))
+{
+  try
+  {
+value = xmlStringToColour(stringValue);
+return true;
+  }
+  catch (const XmlParserException &)
+  {
+idx = xmlStringToLong(stringValue);
+  }
+}
+  }
+  return false;
+}
+
 int libvisio::VSDXMLParserBase::readExtendedColourData(Colour &value, 
xmlTextReaderPtr reader)
 {
   long idx = -1;
diff --git a/src/lib/VSDXMLParserBase.h b/src/lib/VSDXMLParserBase.h
index ab8521d..62ebb4b 100644
--- a/src/lib/VSDXMLParserBase.h
+++ b/src/lib/VSDXMLParserBase.h
@@ -79,6 +79,7 @@ protected:
   int readExtendedColourData(Colour &value, long &idx, xmlTextReaderPtr 
reader);
   int readExtendedColourData(Colour &value, xmlTextReaderPtr reader);
   int readExtendedColourData(boost::optional &value, xmlTextReaderPtr 
reader);
+  bool readColourOrColourIndex(Colour &value, long &idx, xmlTextReaderPtr 
reader);
   int readNURBSData(boost::optional &data, xmlTextReaderPtr reader);
   int readPolylineData(boost::optional &data, xmlTextReaderPtr 
reader);
   int readStringData(VSDName &text, xmlTextReaderPtr reader);
diff --git a/src/lib/VSDXParser.cpp b/src/lib/VSDXParser.cpp
index 1167ccb..8ede9c7 100644
--- a/src/lib/VSDXParser.cpp
+++ b/src/lib/VSDXParser.cpp
@@ -737,8 +737,8 @@ void 
libvisio::VSDXParser::readStyleProperties(xmlTextReaderPtr reader)
   boost::optional topMargin;
   boost::optional bottomMargin;
   boost::optional verticalAlign;
-  boost::optional bgClrId;
-  boost::optional bgColour;
+  boost::optional isTextBkgndFilled;
+  boost::optional textBkgndColour;
   boost::optional defaultTabStop;
   boost::optional textDirection;
 
@@ -846,10 +846,35 @@ void 
libvisio::VSDXParser::readStyleProperties(xmlTextReaderPtr reader)
 ret = readByteData(verticalAlign, reader);
   break;
 case XML_TEXTBKGND:
-#if 0
   if (XML_READER_TYPE_ELEMENT == tokenType)
-ret = readExtendedColourData(bgColour, bgClrId, reader);
-#endif
+  {
+long bgClrId = -1;
+Colour tmpColour;
+if (readColourOrColourIndex(tmpColour, bgClrId, reader))
+{
+  isTextBkgndFilled = true;
+  textBkgndColour = tmpColour;
+  break;
+}
+/*
+The TextBkgnd cell can have any value from 0 through 24, or 255.
+The values 0 and 255 (visTxtBlklOpaque) both indicate a transparent 
text background.
+For custom color, is is using the RGB or HSL function plus one.
+*/
+if ((bgClrId < 1) || (bgClrId >= 255))
+{
+  isTextBkgndFilled = false;
+  break;
+}
+std::map::const_iterator iter = 
m_colours.find(bgClrId - 1);
+if (iter != m_colours.end())
+{
+  textBkgndColour = iter->second;
+  isTextBkgndFilled = true;
+  break;
+}
+isTextBkgndFilled = false;
+  }
   break;
 case XML_DEFAULTTABSTOP

libvisio.git: src/lib

2024-09-20 Thread Libreoffice Gerrit user
 src/lib/VSDContentCollector.cpp |4 ++--
 src/lib/VSDMetaData.cpp |2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 0c69b34e5f1ca995d0b6acf14594319a4c1cf5f3
Author: Bartosz Kosiorek 
AuthorDate: Fri Sep 20 20:04:35 2024 +0200
Commit: Miklos Vajna 
CommitDate: Fri Sep 20 22:19:12 2024 +0200

Avoid undefined behaviour when the std::vector is empty

By getting address of first element (e.g. &tmpBuffer[0]),
in case vector is empty, the undefined behaviour could occur.

data() returns a pointer to the underlying array serving as element storage.
The pointer is such that range [data(), data() + size()) is always a valid 
range,
even if the container is empty (data() is not dereferenceable in that case).

Change-Id: I62665a11ece0cc7e2226608004c0eb48788f95d1
Reviewed-on: https://gerrit.libreoffice.org/c/libvisio/+/173740
Tested-by: Miklos Vajna 
Reviewed-by: Miklos Vajna 

diff --git a/src/lib/VSDContentCollector.cpp b/src/lib/VSDContentCollector.cpp
index dab4782..b34ed5c 100644
--- a/src/lib/VSDContentCollector.cpp
+++ b/src/lib/VSDContentCollector.cpp
@@ -3756,7 +3756,7 @@ void 
libvisio::VSDContentCollector::appendCharacters(librevenge::RVNGString &tex
 }
 if (U_SUCCESS(status) && conv)
 {
-  const auto *src = (const char *)&characters[0];
+  const auto *src = (const char *)characters.data();
   const char *srcLimit = (const char *)src + characters.size();
   while (src < srcLimit)
   {
@@ -3782,7 +3782,7 @@ void 
libvisio::VSDContentCollector::appendCharacters(librevenge::RVNGString &tex
 
   if (U_SUCCESS(status) && conv)
   {
-const auto *src = (const char *)&characters[0];
+const auto *src = (const char *)characters.data();
 const char *srcLimit = (const char *)src + characters.size();
 while (src < srcLimit)
 {
diff --git a/src/lib/VSDMetaData.cpp b/src/lib/VSDMetaData.cpp
index 09e8f97..8395c8b 100644
--- a/src/lib/VSDMetaData.cpp
+++ b/src/lib/VSDMetaData.cpp
@@ -278,7 +278,7 @@ librevenge::RVNGString 
libvisio::VSDMetaData::readCodePageString(librevenge::RVN
 if (U_SUCCESS(status) && conv)
 {
   assert(!characters.empty());
-  const auto *src = (const char *)&characters[0];
+  const auto *src = (const char *)characters.data();
   const char *srcLimit = (const char *)src + characters.size();
   while (src < srcLimit)
   {


libvisio.git: src/lib src/test

2024-03-19 Thread Libreoffice Gerrit user
 src/lib/VSDStyles.h   |   19 +++-
 src/lib/VSDXTheme.cpp |  104 +-
 src/lib/VSDXTheme.h   |7 ++-
 src/test/data/qs-box.vsdx |binary
 src/test/importtest.cpp   |   12 +
 5 files changed, 128 insertions(+), 14 deletions(-)

New commits:
commit aac02f9141fcaf0acc1bce2ff6a5c2e9618f9235
Author: Jaume Pujantell 
AuthorDate: Mon Feb 19 09:07:42 2024 +0100
Commit: Miklos Vajna 
CommitDate: Tue Mar 19 14:01:56 2024 +0100

read and use simple solid fill styles

Implemented the reading of simple solid fills from the fill styles list
in a theme. And it's use with the quick style fill matrix value.

Change-Id: I658340f73ced475bbc8999b4d09c4666fd50dea5
Reviewed-on: https://gerrit.libreoffice.org/c/libvisio/+/163580
Tested-by: Miklos Vajna 
Reviewed-by: Miklos Vajna 

diff --git a/src/lib/VSDStyles.h b/src/lib/VSDStyles.h
index 93eff0e..ba13805 100644
--- a/src/lib/VSDStyles.h
+++ b/src/lib/VSDStyles.h
@@ -129,9 +129,7 @@ struct VSDOptionalFillStyle
 ASSIGN_OPTIONAL(style.qsFillColour, qsFillColour);
 ASSIGN_OPTIONAL(style.qsShadowColour, qsShadowColour);
 ASSIGN_OPTIONAL(style.qsFillMatrix, qsFillMatrix);
-// Colour 'Blue, Variant 1' is special. It is the default,
-// and it is not saved explicitely in the VSDX file.
-ASSIGN_OPTIONAL(style.fgColour, fgColour);else fgColour = Colour(0x5b, 
0x9b, 0xd5, 0);
+ASSIGN_OPTIONAL(style.fgColour, fgColour);
 ASSIGN_OPTIONAL(style.bgColour, bgColour);
 ASSIGN_OPTIONAL(style.shadowFgColour, shadowFgColour);
   }
@@ -179,14 +177,13 @@ struct VSDFillStyle
 ASSIGN_OPTIONAL(style.qsFillMatrix, qsFillMatrix);
 if (theme)
 {
-  if (!!style.qsFillColour && style.qsFillColour.get() >= 0)
-ASSIGN_OPTIONAL(theme->getThemeColour(style.qsFillColour.get()), 
fgColour);
-
-  if (!!style.qsFillColour && style.qsFillColour.get() >= 0)
-ASSIGN_OPTIONAL(theme->getThemeColour(style.qsFillColour.get()), 
bgColour);
-
-  if (!!style.qsShadowColour && style.qsShadowColour.get() >= 0)
-ASSIGN_OPTIONAL(theme->getThemeColour(style.qsShadowColour.get()), 
shadowFgColour);
+  // Quick Style Colour 100 is special. It is the default,
+  // and it is not saved explicitely in the VSDX file.
+  ASSIGN_OPTIONAL(theme->getThemeColour(style.qsFillColour.value_or(100)), 
fgColour);
+  ASSIGN_OPTIONAL(theme->getThemeColour(style.qsFillColour.value_or(100)), 
bgColour);
+  
ASSIGN_OPTIONAL(theme->getThemeColour(style.qsShadowColour.value_or(100)), 
shadowFgColour);
+  if (!!style.qsFillMatrix && style.qsFillMatrix.get() >= 0)
+ASSIGN_OPTIONAL(theme->getFillStyleColour(style.qsFillMatrix.get()), 
fgColour);
 }
 ASSIGN_OPTIONAL(style.fgColour, fgColour);
 ASSIGN_OPTIONAL(style.bgColour, bgColour);
diff --git a/src/lib/VSDXTheme.cpp b/src/lib/VSDXTheme.cpp
index 59044b5..537e2ad 100644
--- a/src/lib/VSDXTheme.cpp
+++ b/src/lib/VSDXTheme.cpp
@@ -63,7 +63,8 @@ libvisio::VSDXFontScheme::VSDXFontScheme()
 
 libvisio::VSDXTheme::VSDXTheme()
   : m_clrScheme(),
-m_fontScheme()
+m_fontScheme(),
+m_fillStyleLst(std::vector>(6))
 {
 }
 
@@ -102,6 +103,9 @@ bool libvisio::VSDXTheme::parse(librevenge::RVNGInputStream 
*input)
   case XML_A_FONTSCHEME:
 readFontScheme(reader.get());
 break;
+  case XML_A_FMTSCHEME:
+readFmtScheme(reader.get());
+break;
   default:
 break;
   }
@@ -320,7 +324,7 @@ void libvisio::VSDXTheme::readClrScheme(xmlTextReaderPtr 
reader)
   while ((XML_A_CLRSCHEME != tokenId || XML_READER_TYPE_END_ELEMENT != 
tokenType) && 1 == ret);
 }
 
-void libvisio::VSDXTheme::readThemeColour(xmlTextReaderPtr reader, int 
idToken, Colour &clr)
+bool libvisio::VSDXTheme::readThemeColour(xmlTextReaderPtr reader, int 
idToken, Colour &clr)
 {
   int ret = 1;
   int tokenId = XML_TOKEN_INVALID;
@@ -350,7 +354,11 @@ void libvisio::VSDXTheme::readThemeColour(xmlTextReaderPtr 
reader, int idToken,
   while ((idToken != tokenId || XML_READER_TYPE_END_ELEMENT != tokenType) && 1 
== ret);
 
   if (colour)
+  {
 clr = *colour;
+return true;
+  }
+  return false;
 }
 
 void libvisio::VSDXTheme::readVariationClrSchemeLst(xmlTextReaderPtr reader)
@@ -491,4 +499,96 @@ boost::optional 
libvisio::VSDXTheme::getThemeColour(unsigned v
   return boost::optional();
 }
 
+void libvisio::VSDXTheme::readFmtScheme(xmlTextReaderPtr reader)
+{
+  VSD_DEBUG_MSG(("VSDXTheme::readFmtScheme
"));
+  int ret = 1;
+  int tokenId = XML_TOKEN_INVALID;
+  int tokenType = -1;
+  do
+  {
+ret = xmlTextReaderRead(reader);
+tokenId = getElementToken(reader);
+if (XML_TOKEN_INVALID == tokenId)
+{
+  VSD_DEBUG_MSG(("VSDXTheme::readFmtScheme: unknown token %s
", xmlTextReaderConstName(reader)));
+}
+tokenType = xmlTextReaderNodeType(reader);
+switch (tokenId)
+{
+case XML_A_FILLSTYLELST:
+{
+  readFillStyle

libvisio.git: src/test

2024-03-19 Thread Libreoffice Gerrit user
 src/test/importtest.cpp |2 ++
 1 file changed, 2 insertions(+)

New commits:
commit c58eda83afcee4965254397868eba856df89447c
Author: Miklos Vajna 
AuthorDate: Tue Mar 19 14:00:17 2024 +0100
Commit: Miklos Vajna 
CommitDate: Tue Mar 19 14:00:20 2024 +0100

Fix -Werror=switch

importtest.cpp: In function ‘librevenge::RVNGString 
{anonymous}::getXPathContent(xmlDocPtr, const librevenge::RVNGString&)’:
importtest.cpp:150:3: error: case value ‘5’ not in enumerated type 
‘xmlXPathObjectType’ [-Werror=switch]
   case XPATH_POINT:
   ^~~~
importtest.cpp:151:3: error: case value ‘6’ not in enumerated type 
‘xmlXPathObjectType’ [-Werror=switch]
   case XPATH_RANGE:
   ^~~~
importtest.cpp:152:3: error: case value ‘7’ not in enumerated type 
‘xmlXPathObjectType’ [-Werror=switch]
   case XPATH_LOCATIONSET:
   ^~~~
cc1plus: all warnings being treated as errors

Change-Id: I04cf0caf6d0e51b4c02cbab0bd5b4219c7ac5a3b

diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index 5192284..89e497f 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -147,9 +147,11 @@ librevenge::RVNGString getXPathContent(xmlDocPtr doc, 
const librevenge::RVNGStri
   case XPATH_STRING:
 return librevenge::RVNGString(reinterpret_cast(xpathobject->stringval));
   case XPATH_NUMBER:
+#ifdef LIBXML_XPTR_LOCS_ENABLED
   case XPATH_POINT:
   case XPATH_RANGE:
   case XPATH_LOCATIONSET:
+#endif
   case XPATH_USERS:
   case XPATH_XSLT_TREE:
 CPPUNIT_FAIL("Unsupported XPath type");


cppunit.git: include/cppunit src/cppunit

2024-01-06 Thread Libreoffice Gerrit user
 include/cppunit/tools/XmlElement.h |8 
 src/cppunit/XmlElement.cpp |8 
 2 files changed, 8 insertions(+), 8 deletions(-)

New commits:
commit 2b72f2b3ef94452ae649fc6a44bec049f1acb173
Author: Caolán McNamara 
AuthorDate: Sat Jan 6 19:37:42 2024 +
Commit: Caolán McNamara 
CommitDate: Sat Jan 6 20:42:38 2024 +0100

cid#1546421 COPY_INSTEAD_OF_MOVE

Change-Id: I33787047d5125252204aac78ed876bc102a1ec11
Reviewed-on: https://gerrit.libreoffice.org/c/cppunit/+/161722
Tested-by: Caolán McNamara 
Reviewed-by: Caolán McNamara 

diff --git a/include/cppunit/tools/XmlElement.h 
b/include/cppunit/tools/XmlElement.h
index 3478a35..d033aa2 100644
--- a/include/cppunit/tools/XmlElement.h
+++ b/include/cppunit/tools/XmlElement.h
@@ -79,14 +79,14 @@ public:
* \param attributeName Name of the attribute. Must not be an empty.
* \param value Value of the attribute.
*/
-  void addAttribute( std::string attributeName,
- std::string value );
+  void addAttribute( const std::string& attributeName,
+ const std::string& value );
 
   /*! rief Adds an attribute with the specified numeric value.
* \param attributeName Name of the attribute. Must not be empty.
* \param numericValue Numeric value of the attribute.
*/
-  void addAttribute( std::string attributeName,
+  void addAttribute( const std::string& attributeName,
  int numericValue );
 
   /*! rief Adds a child element to the element.
@@ -125,7 +125,7 @@ private:
   typedef std::pair Attribute;
 
   std::string attributesAsString() const;
-  std::string escape( std::string value ) const;
+  std::string escape( const std::string& value ) const;
 
 private:
   std::string m_name;
diff --git a/src/cppunit/XmlElement.cpp b/src/cppunit/XmlElement.cpp
index be02385..3a59814 100644
--- a/src/cppunit/XmlElement.cpp
+++ b/src/cppunit/XmlElement.cpp
@@ -74,15 +74,15 @@ XmlElement::setContent( int numericContent )
 
 
 void 
-XmlElement::addAttribute( std::string attributeName,
-  std::string value  )
+XmlElement::addAttribute( const std::string& attributeName,
+  const std::string& value  )
 {
   m_attributes.push_back( Attribute( attributeName, value ) );
 }
 
 
 void 
-XmlElement::addAttribute( std::string attributeName,
+XmlElement::addAttribute( const std::string& attributeName,
   int numericValue )
 {
   addAttribute( attributeName, StringTools::toString( numericValue ) );
@@ -194,7 +194,7 @@ XmlElement::attributesAsString() const
 
 
 std::string 
-XmlElement::escape( std::string value ) const
+XmlElement::escape( const std::string& value ) const
 {
   std::string escaped;
   for ( unsigned int index =0; index < value.length(); ++index )


cppunit.git: include/cppunit src/cppunit

2024-01-06 Thread Libreoffice Gerrit user
 include/cppunit/Asserter.h |   28 -
 src/cppunit/Asserter.cpp   |   50 ++---
 2 files changed, 39 insertions(+), 39 deletions(-)

New commits:
commit d0bf35d30f0662189f646a5c67d89715b725f12c
Author: Caolán McNamara 
AuthorDate: Sat Jan 6 19:33:23 2024 +
Commit: Caolán McNamara 
CommitDate: Sat Jan 6 20:35:02 2024 +0100

make these similar ones consistent

Change-Id: If1da3c7c255d9db83e2dc6181d283b9d82c147bb
Reviewed-on: https://gerrit.libreoffice.org/c/cppunit/+/161719
Tested-by: Caolán McNamara 
Reviewed-by: Caolán McNamara 

diff --git a/include/cppunit/Asserter.h b/include/cppunit/Asserter.h
index 2010739..15f5c21 100644
--- a/include/cppunit/Asserter.h
+++ b/include/cppunit/Asserter.h
@@ -53,7 +53,7 @@ struct Asserter
   /*! rief Throws a Exception with the specified message and location.
* \deprecated Use fail( Message, SourceLine ) instead.
*/
-  [[noreturn]] static void CPPUNIT_API fail( std::string message,
+  [[noreturn]] static void CPPUNIT_API fail( const std::string& message,
  const SourceLine &sourceLine = 
SourceLine() );
 
   /*! rief Throws a Exception with the specified message and location.
@@ -74,7 +74,7 @@ struct Asserter
* \param sourceLine Location of the assertion.
*/
   static void CPPUNIT_API failIf( bool shouldFail,
-  std::string message,
+  const std::string& message,
   const SourceLine &sourceLine = SourceLine() 
);
 
   /*! rief Returns a expected value string for a message, case equal than
@@ -173,11 +173,11 @@ struct Asserter
*  what are the differences between the expected 
and actual value.
* \param shortDescription Short description for the failure message.
*/
-  [[noreturn]] static void CPPUNIT_API failNotLess( std::string expected,
-std::string actual,
+  [[noreturn]] static void CPPUNIT_API failNotLess( const std::string& 
expected,
+const std::string& actual,
 const SourceLine 
&sourceLine,
 const AdditionalMessage 
&additionalMessage = AdditionalMessage(),
-std::string 
shortDescription = "less assertion failed" );
+const std::string& 
shortDescription = "less assertion failed" );
 
   /*! rief Throws an Exception with the specified message and location.
* \param expected Text describing the expected value.
@@ -187,11 +187,11 @@ struct Asserter
*  what are the differences between the expected 
and actual value.
* \param shortDescription Short description for the failure message.
*/
-  [[noreturn]] static void CPPUNIT_API failNotGreater( std::string expected,
-   std::string actual,
+  [[noreturn]] static void CPPUNIT_API failNotGreater( const std::string& 
expected,
+   const std::string& 
actual,
const SourceLine 
&sourceLine,
const AdditionalMessage 
&additionalMessage = AdditionalMessage(),
-   std::string 
shortDescription = "greater assertion failed" );
+   const std::string& 
shortDescription = "greater assertion failed" );
 
   /*! rief Throws an Exception with the specified message and location.
* \param expected Text describing the expected value.
@@ -201,11 +201,11 @@ struct Asserter
*  what are the differences between the expected 
and actual value.
* \param shortDescription Short description for the failure message.
*/
-  [[noreturn]] static void CPPUNIT_API failNotLessEqual( std::string expected,
- std::string actual,
+  [[noreturn]] static void CPPUNIT_API failNotLessEqual( const std::string& 
expected,
+ const std::string& 
actual,
  const SourceLine 
&sourceLine,
  const 
AdditionalMessage &additionalMessage = AdditionalMessage(),
- std::string 
shortDescription = "less equal assertion failed" );
+ const std::string& 
shortDescription = "less equal assertion failed" );
 
   /*! rief Throws an Exception with the specified message

cppunit.git: include/cppunit src/cppunit

2024-01-06 Thread Libreoffice Gerrit user
 include/cppunit/Asserter.h |   12 ++--
 src/cppunit/Asserter.cpp   |   12 ++--
 2 files changed, 12 insertions(+), 12 deletions(-)

New commits:
commit a60124f6dbca67e01bd09047545a0eb767565383
Author: Caolán McNamara 
AuthorDate: Sat Jan 6 19:21:45 2024 +
Commit: Caolán McNamara 
CommitDate: Sat Jan 6 20:28:52 2024 +0100

cid#1545475 COPY_INSTEAD_OF_MOVE

and

cid#1545626 COPY_INSTEAD_OF_MOVE
cid#1546203 COPY_INSTEAD_OF_MOVE

Change-Id: I9df8f30d1102a9fd5247c9efe44be9e3268277bd
Reviewed-on: https://gerrit.libreoffice.org/c/cppunit/+/161717
Tested-by: Caolán McNamara 
Reviewed-by: Caolán McNamara 

diff --git a/include/cppunit/Asserter.h b/include/cppunit/Asserter.h
index ca65593..2010739 100644
--- a/include/cppunit/Asserter.h
+++ b/include/cppunit/Asserter.h
@@ -159,11 +159,11 @@ struct Asserter
*  what are the differences between the expected 
and actual value.
* \param shortDescription Short description for the failure message.
*/
-  [[noreturn]] static void CPPUNIT_API failNotEqual( std::string expected,
-std::string actual,
+  [[noreturn]] static void CPPUNIT_API failNotEqual( const std::string& 
expected,
+const std::string& actual,
 const SourceLine &sourceLine,
 const AdditionalMessage 
&additionalMessage = AdditionalMessage(),
-std::string shortDescription = 
"equality assertion failed" );
+const std::string& shortDescription = 
"equality assertion failed" );
 
   /*! rief Throws an Exception with the specified message and location.
* \param expected Text describing the expected value.
@@ -231,11 +231,11 @@ struct Asserter
* \param shortDescription Short description for the failure message.
*/
   static void CPPUNIT_API failNotEqualIf( bool shouldFail,
-  std::string expected,
-  std::string actual,
+  const std::string& expected,
+  const std::string& actual,
   const SourceLine &sourceLine,
   const AdditionalMessage 
&additionalMessage = AdditionalMessage(),
-  std::string shortDescription = 
"equality assertion failed" );
+  const std::string& shortDescription 
= "equality assertion failed" );
 
 };
 
diff --git a/src/cppunit/Asserter.cpp b/src/cppunit/Asserter.cpp
index 52f8625..fe2097e 100644
--- a/src/cppunit/Asserter.cpp
+++ b/src/cppunit/Asserter.cpp
@@ -110,11 +110,11 @@ Asserter::makeNotEqualMessage( const std::string 
&expectedValue,
 
 
 void
-Asserter::failNotEqual( std::string expected, 
-std::string actual, 
+Asserter::failNotEqual( const std::string& expected,
+const std::string& actual,
 const SourceLine &sourceLine,
 const AdditionalMessage &additionalMessage,
-std::string shortDescription )
+const std::string& shortDescription )
 {
   fail( makeMessage( makeExpectedEqual(expected),
  makeActual(actual),
@@ -182,11 +182,11 @@ Asserter::failNotGreaterEqual( std::string expected,
 }
 void
 Asserter::failNotEqualIf( bool shouldFail,
-  std::string expected, 
-  std::string actual, 
+  const std::string& expected,
+  const std::string& actual,
   const SourceLine &sourceLine,
   const AdditionalMessage &additionalMessage,
-  std::string shortDescription )
+  const std::string& shortDescription )
 {
   if ( shouldFail )
 failNotEqual( expected, actual, sourceLine, additionalMessage, 
shortDescription );


cppunit.git: src/cppunit

2024-01-01 Thread Libreoffice Gerrit user
 src/cppunit/XmlElement.cpp |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

New commits:
commit bdf2555703132b0d9c9734f173a3f6dbe60aadb9
Author: Caolán McNamara 
AuthorDate: Mon Jan 1 20:37:48 2024 +
Commit: Caolán McNamara 
CommitDate: Mon Jan 1 21:42:58 2024 +0100

cid#1545836 COPY_INSTEAD_OF_MOVE

Change-Id: I7418a44ef949504d6b80408299f23358971521ca
Reviewed-on: https://gerrit.libreoffice.org/c/cppunit/+/161524
Tested-by: Caolán McNamara 
Reviewed-by: Caolán McNamara 

diff --git a/src/cppunit/XmlElement.cpp b/src/cppunit/XmlElement.cpp
index 585c3da..be02385 100644
--- a/src/cppunit/XmlElement.cpp
+++ b/src/cppunit/XmlElement.cpp
@@ -8,8 +8,8 @@ CPPUNIT_NS_BEGIN
   
 XmlElement::XmlElement( std::string elementName,
 std::string content ) 
-  : m_name( elementName )
-  , m_content( content )
+  : m_name(std::move(elementName))
+  , m_content(std::move(content))
   , m_attributes()
   , m_elements()
 {
@@ -18,7 +18,7 @@ XmlElement::XmlElement( std::string elementName,
 
 XmlElement::XmlElement( std::string elementName,
 int numericContent )
-  : m_name( elementName )
+  : m_name(std::move(elementName))
   , m_content()
   , m_attributes()
   , m_elements()


libexttextcat.git: Changes to 'refs/tags/v3.4.7'

2024-01-01 Thread Libreoffice Gerrit user
Tag 'v3.4.7' created by Caolán McNamara  at 
2024-01-01 17:04 +

3.4.7
Changes since v3.4.6-2:
---
 0 files changed
---


libexttextcat.git: configure.ac src/exttextcat-version.h src/win32_config.h

2024-01-01 Thread Libreoffice Gerrit user
 configure.ac |2 +-
 src/exttextcat-version.h |4 ++--
 src/win32_config.h   |4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

New commits:
commit 3b85d7e9fd34990f5be6a7e321c2e6b135064464
Author: Caolán McNamara 
AuthorDate: Mon Jan 1 16:16:14 2024 +
Commit: Caolán McNamara 
CommitDate: Mon Jan 1 18:03:06 2024 +0100

bump release to 3.4.7

Change-Id: I90254fe8fec2ce80b0e3b30e0f5bab7447ec08e4
Reviewed-on: https://gerrit.libreoffice.org/c/libexttextcat/+/161520
Tested-by: Caolán McNamara 
Reviewed-by: Caolán McNamara 

diff --git a/configure.ac b/configure.ac
index 1f0b918..2dfa903 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
 m4_define([exttextcat_version_major],[3])
 m4_define([exttextcat_version_minor],[4])
-m4_define([exttextcat_version_micro],[6])
+m4_define([exttextcat_version_micro],[7])
 
m4_define([exttextcat_version],[exttextcat_version_major.exttextcat_version_minor.exttextcat_version_micro])
 
 AC_PREREQ([2.68])
diff --git a/src/exttextcat-version.h b/src/exttextcat-version.h
index 86c4abf..ea55485 100644
--- a/src/exttextcat-version.h
+++ b/src/exttextcat-version.h
@@ -1,9 +1,9 @@
 #ifndef EXTTEXTCAT_VERSION_H
 #define EXTTEXTCAT_VERSION_H
 
-#define EXTTEXTCAT_VERSION "3.4.6"
+#define EXTTEXTCAT_VERSION "3.4.7"
 #define EXTTEXTCAT_VERSION_MAJOR 3
 #define EXTTEXTCAT_VERSION_MINOR 4
-#define EXTTEXTCAT_VERSION_MICRO 6
+#define EXTTEXTCAT_VERSION_MICRO 7
 
 #endif
diff --git a/src/win32_config.h b/src/win32_config.h
index 5025f4a..46d8b89 100644
--- a/src/win32_config.h
+++ b/src/win32_config.h
@@ -57,7 +57,7 @@
 #define PACKAGE_NAME "libexttextcat"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "libexttextcat 3.4.6"
+#define PACKAGE_STRING "libexttextcat 3.4.7"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "libexttextcat"
@@ -72,6 +72,6 @@
 #define TIME_WITH_SYS_TIME 1
 
 /* Version number of package */
-#define VERSION "3.4.6"
+#define VERSION "3.4.7"
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


libexttextcat.git: 2 commits - langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2024-01-01 Thread Libreoffice Gerrit user
 langclass/LM/ilo.lm  |  400 +++
 langclass/LM/skr.lm  |  400 +++
 langclass/ShortTexts/ilo.txt |  210 ++
 langclass/ShortTexts/skr.txt |  219 +++
 langclass/fpdb.conf  |2 
 src/Makefile.am  |4 
 6 files changed, 1233 insertions(+), 2 deletions(-)

New commits:
commit 58f5a03b867e7debb56915cdf2e68bfc8448ff76
Author: Caolán McNamara 
AuthorDate: Mon Jan 1 16:56:46 2024 +
Commit: Caolán McNamara 
CommitDate: Mon Jan 1 18:02:55 2024 +0100

add Ilocano

Change-Id: I19cd769d3cc6dfff63cce165e5ab5e9f0bb9659f
Reviewed-on: https://gerrit.libreoffice.org/c/libexttextcat/+/161519
Tested-by: Caolán McNamara 
Reviewed-by: Caolán McNamara 

diff --git a/langclass/LM/ilo.lm b/langclass/LM/ilo.lm
new file mode 100644
index 000..86fde9b
--- /dev/null
+++ b/langclass/LM/ilo.lm
@@ -0,0 +1,400 @@
+a
+_
+n
+i
+g
+t
+a_
+an
+k
+e
+ti
+i_
+ng
+d
+n_
+ti_
+m
+l
+ga
+s
+p
+o
+y
+_k
+na
+it
+u
+_n
+pa
+_a
+ag
+iti
+iti_
+en
+nga
+ka
+da
+b
+an_
+ma
+_ng
+ga_
+_nga
+r
+nga_
+_nga_
+_i
+_p
+_t
+in
+al
+_m
+w
+_pa
+sa
+_iti
+_it
+_iti_
+ke
+en_
+gi
+ay
+ad
+li
+_ke
+_ka
+o_
+ya
+ana
+_ma
+_a_
+_ti
+_ti_
+pan
+ken
+ken_
+wa
+_ken
+ba
+agi
+_ken_
+_pan
+ak
+ang
+ta
+aya
+as
+nn
+te
+pana
+_pana
+nt
+gan
+ai
+int
+ali
+lin
+git
+agit
+_d
+eg
+g_
+dag
+aw
+._
+.
+teg
+dagi
+dagit
+no
+ab
+lint
+giti_
+agiti
+_s
+giti
+ik
+inte
+nte
+linte
+nteg
+integ
+at
+am
+aa
+alin
+man
+,
+ey
+,_
+A
+on
+ar
+kal
+ega
+_na
+ada
+l_
+alint
+ntega
+tega
+ap
+da_
+way
+tegan
+egan
+waya
+dd
+t_
+kali
+il
+awa
+kalin
+un
+si
+ul
+nag
+gan_
+_da
+sa_
+_kal
+_kali
+ra
+la
+me
+ysa
+ysa_
+ys
+_A
+no_
+ng_
+gg
+al_
+aba
+na_
+_w
+ki
+mi
+add
+eysa_
+eys
+eysa
+ia
+nna
+ku
+-
+dda
+anag
+_me
+_b
+ngg
+adda
+ann
+_dag
+_dagi
+mey
+lo
+meys
+_sa
+meysa
+to
+_mey
+y_
+_meys
+panag
+gal
+ulo
+egan_
+_ba
+anna
+man_
+gga
+bi
+yan
+pag
+ngga
+um
+ung
+kad
+tu
+nak
+iku
+kul
+we
+gal_
+wen
+nan
+nggal
+ggal_
+tik
+aan
+_kad
+enn
+aka
+kada
+ungg
+away
+ggal
+ungga
+_kada
+enno_
+yaw
+nno_
+awaya
+_mai
+mai
+ayaw
+ed
+nno
+wan
+asa
+ni
+ib
+enno
+kulo
+_ad
+_man
+ikulo
+_ta
+_wen
+_wenn
+wenn
+ata
+_adda
+_we
+_add
+rt
+wenno
+ikul
+_Art
+kulo_
+_ag
+Arti
+rtiku
+Artik
+Ar
+lo_
+_Ar
+adag
+rtik
+tiku
+rti
+ip
+Art
+_Arti
+tikul
+ulo_
+adagi
+I
+kadag
+ong
+_pag
+ya_
+apa
+anan
+nna_
+ami
+dda_
+yo
+nang
+kas
+d_
+im
+de
+aki
+ri
+_si
+is
+ina
+id
+gp
+et
+mang
+adda_
+anang
+pu
+wayaw
+ayawa
+gpa
+ae
+wan_
+a._
+ala
+du
+_l
+a.
+_mang
+yaway
+yawa
+anna_
+gs
+aan_
+_tu
+eng
+mak
+panan
+ara
+ili
+ao
+_I
+et_
+ika
+li_
+at_
+tung
+waya_
+tun
+naka
+dad
+aya_
+anak
+ama
+ay_
+ipa
+toy
+tungg
+_tun
+_u
+yon
+sy
+_tung
+di
+s_
+gann
+oy
+ig
+ganna
+ge
+aen
+_nai
+nai
+T
+eng_
+us
+panak
+-a
+sin
+ani
+lya
+_mak
+ilya
+ly
+tao
+bab
+ur
+aik
+r_
+ket
+om
+ily
+gr
+oma
+mo
+toy_
+n-
+_bab
+lu
+yan_
+oy_
+_ki
diff --git a/langclass/ShortTexts/ilo.txt b/langclass/ShortTexts/ilo.txt
new file mode 100644
index 000..08bd414
--- /dev/null
+++ b/langclass/ShortTexts/ilo.txt
@@ -0,0 +1,210 @@
+NAILUBONGAN A PANAKAIPAKDAAR DAGITI KALINTEGAN TI TAO
+  Idinto ta bigbigen iti naisigsigud a dayaw ken panagpapada ken ti di 
maipaidam nga kalintegan dagiti amin a puli tao nga batayan ti wayawaya, 
hustisya ken ikakapya ti lubong.
+  Idinto ta iti saan nga panangi-kan-kano ken lalaisen dagiti kalinteganti 
tao nga nagbanag iti panagsupiat a maibusor iti konsensya ti sangkataw-an, ken 
iti idadateng iti meysa nga lubong a laklak-amen dagiti tao ti wayawaya a 
panagsao ken pammati ken awanen ti panagamak ken panagrigrigat nga inda nga 
inar-arapa-ap nga impakdaar dagiti kadawyan a tao.
+  Idinto ta deytoy ti kangrunaan, tapno saan a mapilitan ti tao nga 
mangriribok a maibusor ti kinaulpit ken pannakaidadanes, masapul nga 
masalakniban babaen kadagiti annuroten ti linteg.
+  Idinto ta deytoy ti kangrunaan tapno maiwanwan ti panag-giginnayem a 
nasayat dagiti amin nga pagilyan.
+  Idinto ta dagiti umili kadagiti Nagkaykaysa nga Pagilyan ket 
pinasingkedanda iti Tsarter dagiti pammatida nga kalintegan madaydayaw ken 
panangipateg iti kinatao ken dagiti panagpapada ti kalintegan dagiti lalaki ken 
babbai ken panangeddeng nga mangiwanwan ti gimong ken ti nasayaat a pagbasaran 
iti panagbiag a siwawaya.
+  Idinto ta dagiti miembro ti Estado nagkarida nga agtungpal iti 
pannakitinnulongda kadagiti Nagkeykeysa nga Pagilyan iti panakaitandudo ti 
panagdayaw iti sangalubongan ken panangammo dagiti kalintegan ti tao ken dagiti 
kangrunaan nga panagwayawaya.
+  Idinto ta iti meysa nga kadawyan a panakaawat dagitoy nga kalintegan ken 
wayawaya ket isu't kinapateg nga naan-anay a pannaka-amiris iti deytoy nga kari.
+  Ita, ngarud inpakdaar ti Asemblia Heneral dagitoy Nailubongana 
Panangipakdaar dagiti kalintegan ti dao nga kas meysa nga pagbasaran a 
magun-odan dagiti 

cppunit.git: src/cppunit

2023-12-30 Thread Libreoffice Gerrit user
 src/cppunit/TestFactoryRegistry.cpp |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit eadc170d8f5199453b770d9dc9d67141e0c90fdf
Author: Caolán McNamara 
AuthorDate: Sat Dec 30 20:08:01 2023 +
Commit: Caolán McNamara 
CommitDate: Sat Dec 30 21:10:49 2023 +0100

cid#1546460 COPY_INSTEAD_OF_MOVE

Change-Id: Ieca123c99b5c1e38152b9404371c938f3f4f9b79
Reviewed-on: https://gerrit.libreoffice.org/c/cppunit/+/161455
Tested-by: Caolán McNamara 
Reviewed-by: Caolán McNamara 

diff --git a/src/cppunit/TestFactoryRegistry.cpp 
b/src/cppunit/TestFactoryRegistry.cpp
index 3b68d58..7b38a34 100644
--- a/src/cppunit/TestFactoryRegistry.cpp
+++ b/src/cppunit/TestFactoryRegistry.cpp
@@ -85,7 +85,7 @@ public:
 
 TestFactoryRegistry::TestFactoryRegistry( std::string name ) :
 m_factories(),
-m_name( name )
+m_name(std::move(name))
 {
 }
 


libvisio.git: src/lib src/test

2023-12-30 Thread Libreoffice Gerrit user
 src/lib/VSDStyles.h |4 +++-
 src/test/data/blue-box.vsdx |binary
 src/test/importtest.cpp |   12 
 3 files changed, 15 insertions(+), 1 deletion(-)

New commits:
commit 2af22206aca7c14e70e40ee248e9a8a361fbc88f
Author: Andras Timar 
AuthorDate: Thu Dec 28 23:29:35 2023 +0100
Commit: Andras Timar 
CommitDate: Sat Dec 30 10:21:11 2023 +0100

tdf#77915 fix import of default shape fill color

Change-Id: I5f2f5fd4678774b024301aede4be50ad04a22f87
Reviewed-on: https://gerrit.libreoffice.org/c/libvisio/+/161397
Tested-by: Bartosz Kosiorek 
Reviewed-by: Bartosz Kosiorek 

diff --git a/src/lib/VSDStyles.h b/src/lib/VSDStyles.h
index 542b952..93eff0e 100644
--- a/src/lib/VSDStyles.h
+++ b/src/lib/VSDStyles.h
@@ -129,7 +129,9 @@ struct VSDOptionalFillStyle
 ASSIGN_OPTIONAL(style.qsFillColour, qsFillColour);
 ASSIGN_OPTIONAL(style.qsShadowColour, qsShadowColour);
 ASSIGN_OPTIONAL(style.qsFillMatrix, qsFillMatrix);
-ASSIGN_OPTIONAL(style.fgColour, fgColour);
+// Colour 'Blue, Variant 1' is special. It is the default,
+// and it is not saved explicitely in the VSDX file.
+ASSIGN_OPTIONAL(style.fgColour, fgColour);else fgColour = Colour(0x5b, 
0x9b, 0xd5, 0);
 ASSIGN_OPTIONAL(style.bgColour, bgColour);
 ASSIGN_OPTIONAL(style.shadowFgColour, shadowFgColour);
   }
diff --git a/src/test/data/blue-box.vsdx b/src/test/data/blue-box.vsdx
new file mode 100644
index 000..934d037
Binary files /dev/null and b/src/test/data/blue-box.vsdx differ
diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index 4a26b4a..5192284 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -215,6 +215,7 @@ class ImportTest : public CPPUNIT_NS::TestFixture
   CPPUNIT_TEST(testVsd11TextfieldsWithUnits);
   CPPUNIT_TEST(testBmpFileHeader);
   CPPUNIT_TEST(testBmpFileHeader2);
+  CPPUNIT_TEST(testVsdxImportDefaultFillColour);
   CPPUNIT_TEST_SUITE_END();
 
   void testVsdxMetadataTitle();
@@ -232,6 +233,7 @@ class ImportTest : public CPPUNIT_NS::TestFixture
   void testVsd11TextfieldsWithUnits();
   void testBmpFileHeader();
   void testBmpFileHeader2();
+  void testVsdxImportDefaultFillColour();
 
   xmlBufferPtr m_buffer;
   xmlDocPtr m_doc;
@@ -519,6 +521,16 @@ void ImportTest::testBmpFileHeader2()
   assertBmpDataOffset(m_doc, "/document/page/layer/drawGraphicObject[1]", 330);
 }
 
+void ImportTest::testVsdxImportDefaultFillColour()
+{
+  // Without the accompanying fix in place, this test would have failed with:
+  // equality assertion failed
+  // - Expected: #5b9bd5
+  // - Actual  : #ff
+  m_doc = parse("blue-box.vsdx", m_buffer);
+  assertXPath(m_doc, "/document/page/layer[1]//setStyle[2]", "fill-color", 
"#5b9bd5");
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(ImportTest);
 
 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */


libvisio.git: src/test

2023-12-23 Thread Libreoffice Gerrit user
 src/test/importtest.cpp |1 +
 1 file changed, 1 insertion(+)

New commits:
commit e7d32634cfeceea700f24af3176090f4501d534e
Author: Jan Tojnar 
AuthorDate: Sun Dec 10 15:42:24 2023 +0100
Commit: Ilmari Lauhakangas 
CommitDate: Sat Dec 23 17:43:39 2023 +0100

tests: Fix build with libxml 2.12

libxml 2.12.0 reorganized the headers, which removed `xmlParseMemory` 
function from the scope.

Change-Id: Ibd747fe7f83eb7c3a8b8cf57ac4a06e365986d46
Reviewed-on: https://gerrit.libreoffice.org/c/libvisio/+/160542
Tested-by: Ilmari Lauhakangas 
Reviewed-by: Ilmari Lauhakangas 

diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp
index 9a01473..4a26b4a 100644
--- a/src/test/importtest.cpp
+++ b/src/test/importtest.cpp
@@ -14,6 +14,7 @@
 
 #include 
 
+#include 
 #include 
 
 #include "xmldrawinggenerator.h"


[Libreoffice-commits] cppunit.git: include/cppunit

2023-05-09 Thread Libreoffice Gerrit user
 include/cppunit/TestAssert.h |3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit e2b0721c33d0df57c6a596b18ae98644575c51f9
Author: Stephan Bergmann 
AuthorDate: Tue Feb 21 11:10:00 2023 +0100
Commit: Markus Mohrhard 
CommitDate: Tue May 9 20:00:18 2023 +0200

Don't mis-apply GCC < 4.6 workaround for Clang

...which happens to define __GNUC__=4, __GNUC_MINOR__=2.  (See also


"external/cppunit: Don't mis-apply GCC < 4.6 workaround for Clang".  This 
change
requires  "Use snprintf
instead of sprintf" to avoid deprecation warnings on macOS, which had 
originally
been hidden by the mis-applied #pragma.)

Change-Id: I4fcb38a79766238862795ba4019638862e65b041
Reviewed-on: https://gerrit.libreoffice.org/c/cppunit/+/147384
Reviewed-by: Markus Mohrhard 
Tested-by: Markus Mohrhard 

diff --git a/include/cppunit/TestAssert.h b/include/cppunit/TestAssert.h
index 19a8ae5..de97f21 100644
--- a/include/cppunit/TestAssert.h
+++ b/include/cppunit/TestAssert.h
@@ -11,7 +11,8 @@
 
 // Work around "passing 'T' chooses 'int' over 'unsigned int'" warnings when T
 // is an enum type:
-#if defined __GNUC__ && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6))
+#if defined __GNUC__ && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 
6)) \
+&& !defined __clang__
 #pragma GCC system_header
 #endif
 


[Libreoffice-commits] cppunit.git: include/cppunit

2023-05-09 Thread Libreoffice Gerrit user
 include/cppunit/TestAssert.h |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 5f9aab1993016720db1d7008ed190b0a96293190
Author: Stephan Bergmann 
AuthorDate: Tue Feb 21 10:59:04 2023 +0100
Commit: Markus Mohrhard 
CommitDate: Tue May 9 19:59:41 2023 +0200

Use snprintf instead of sprintf

See


"external/cppunit: Use snprintf instead of sprintf" for how sprintf would 
have
caused deprecation warnings on macOS.

(For MSVC, keep using sprintf_s.  According to

:
"Beginning with the UCRT in Visual Studio 2015 and Windows 10, snprintf is 
no
longer identical to _snprintf.  The snprintf function behavior is now C99
standard conformant."  So for older versions, snprintf would potentially not
store a terminating NUL, like _snprintf but unlike sprintf_s.)

Change-Id: Ibf8b228cd1dd57428ecf85ed10e0793b78ae90c9
Reviewed-on: https://gerrit.libreoffice.org/c/cppunit/+/147383
Reviewed-by: Markus Mohrhard 
Tested-by: Markus Mohrhard 

diff --git a/include/cppunit/TestAssert.h b/include/cppunit/TestAssert.h
index 521a4e4..19a8ae5 100644
--- a/include/cppunit/TestAssert.h
+++ b/include/cppunit/TestAssert.h
@@ -112,7 +112,7 @@ struct assertion_traits
 #ifdef __STDC_SECURE_LIB__ // Use secure version with visual studio 2005 to 
avoid warning.
sprintf_s(buffer, sizeof(buffer), "%.*g", precision, x); 
 #else  
-   sprintf(buffer, "%.*g", precision, x); 
+   snprintf(buffer, sizeof(buffer), "%.*g", precision, x); 
 #endif
return buffer;
 }


[Libreoffice-commits] mso-dumper.git: msodumper/docrecord.py

2023-04-17 Thread Libreoffice Gerrit user
 msodumper/docrecord.py |   19 +++
 1 file changed, 19 insertions(+)

New commits:
commit 6890cac9f92d4e0d956dbb6bba450a2850ae5eec
Author: Miklos Vajna 
AuthorDate: Mon Apr 17 15:48:41 2023 +0200
Commit: Miklos Vajna 
CommitDate: Mon Apr 17 15:49:38 2023 +0200

doc-dump: show table border colors

Seen in core.git sw/qa/extras/ww8export/data/tdf80635_pageRightRTL.doc.

Change-Id: I72ce7303bf1700670cd2ecd6623af60afd348b7e
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/150519
Tested-by: Miklos Vajna 
Reviewed-by: Miklos Vajna 

diff --git a/msodumper/docrecord.py b/msodumper/docrecord.py
index d7df861..dea48bc 100644
--- a/msodumper/docrecord.py
+++ b/msodumper/docrecord.py
@@ -818,6 +818,23 @@ class CMajorityOperand(BinaryStream):
 print('')
 
 
+class BrcCvOperand(BinaryStream):
+"""The BrcCvOperand structure specifies border colors."""
+def __init__(self, parent):
+BinaryStream.__init__(self, parent.bytes)
+self.pos = parent.pos
+
+def dump(self):
+print('' % self.pos)
+self.printAndSet("cb", self.readuInt8())
+pos = self.pos
+print('' % (self.pos, self.cb))
+while self.pos - pos < self.cb:
+COLORREF(self).dump("cv")
+print('')
+print('')
+
+
 # The PgbApplyTo enumeration is used to specify the pages to which a page 
border applies.
 PgbApplyTo = {
 0x0: "pgbAllPages",
@@ -1596,6 +1613,8 @@ class Sprm(BinaryStream):
 self.ct = DefTableShd80Operand(self)
 elif self.sprm == 0xca47:
 self.ct = CMajorityOperand(self)
+elif self.sprm in (0xD61A, 0xD61B, 0xD61C, 0xD61D):
+self.ct = BrcCvOperand(self)
 else:
 print('' % hex(self.sprm))
 else:


[Libreoffice-commits] cppunit.git: src/cppunit

2022-12-13 Thread Libreoffice Gerrit user
 src/cppunit/TestResult.cpp |4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

New commits:
commit 01037c3ebee72192e31e44f5d38baf575832e77d
Author: Stephan Bergmann 
AuthorDate: Tue Dec 13 16:44:03 2022 +0100
Commit: Stephan Bergmann 
CommitDate: Tue Dec 13 16:15:21 2022 +

Introduce CPPUNIT_PROPAGATE_EXCEPTIONS environment variable

Often a developer debugging a failing CppUnit test wants a core dump with 
the
place where an uncaught exception is thrown.  So if the newly introduced
CPPUNIT_PROPAGATE_EXCEPTIONS environment variable is set (to any value), 
disable
the DefaultProtector that would otherwise catch such exceptions (and just 
report
some limited information about them).

Change-Id: Iac0e98837381578759384e45829fb4e2436f450a
Reviewed-on: https://gerrit.libreoffice.org/c/cppunit/+/144074
Reviewed-by: Markus Mohrhard 
Tested-by: Stephan Bergmann 

diff --git a/src/cppunit/TestResult.cpp b/src/cppunit/TestResult.cpp
index ad880bc..b3a1601 100644
--- a/src/cppunit/TestResult.cpp
+++ b/src/cppunit/TestResult.cpp
@@ -5,6 +5,7 @@
 #include 
 #include 
 #include 
+#include 
 #include "DefaultProtector.h"
 #include "ProtectorChain.h"
 #include "ProtectorContext.h"
@@ -18,7 +19,8 @@ TestResult::TestResult( SynchronizationObject *syncObject )
 , m_protectorChain( new ProtectorChain )
 , m_stop( false )
 { 
-  m_protectorChain->push( new DefaultProtector() );
+  if (!std::getenv("CPPUNIT_PROPAGATE_EXCEPTIONS"))
+m_protectorChain->push( new DefaultProtector() );
 }
 
 


[Libreoffice-commits] buildbot.git: lcov-report/lcov-report.sh lcov-report/README lcov-report/tinderbox

2022-08-18 Thread Libreoffice Gerrit user
 lcov-report/README |  129 ---
 lcov-report/lcov-report.sh |  355 
--
 lcov-report/tinderbox/.tb/profiles/lcov-make-check/autogen.lastrun |5 
 lcov-report/tinderbox/.tb/profiles/lcov-make-check/config  |   13 
 lcov-report/tinderbox/.tb/profiles/lcov-make-check/phases.sh   |   61 -
 5 files changed, 211 insertions(+), 352 deletions(-)

New commits:
commit bb1f2058eead6aa7f2df0b2f5c6933d98db75e2a
Author: Maarten Hoes 
AuthorDate: Thu Jun 9 17:41:27 2022 +0200
Commit: Thorsten Behrens 
CommitDate: Thu Aug 18 11:05:11 2022 +0200

Simplified usage, changed order of steps, better exclusions.

The old script required you to run the script multiple times, in
multiple 'steps/phases',and for you to run a manual 'make check'
in between these steps at some point. The new version only needs to
be run once, and only needs flags to tell it where the sources are,
where the report should go, etc.

Changed the order of the required steps to be more in line with
the lcov man page.

Added '--disable-ccache', as it may interfere with producing
accurate results.

Make sure that unwanted '$BUILD_DIR/foo' and '$SRC_DIR/foo'
(/workdir/*, /instdir/*, /external/*) all get excluded from the final
report, regardless of doing an in-source or out-of-source build.

Change-Id: Icf7a7da49cfd423228e64059376a3b2f6e6ce952
Reviewed-on: https://gerrit.libreoffice.org/c/buildbot/+/135560
Reviewed-by: Norbert Thiebaud 
Tested-by: Thorsten Behrens 
Reviewed-by: Thorsten Behrens 

diff --git a/lcov-report/README b/lcov-report/README
index f8afd82..df9962e 100644
--- a/lcov-report/README
+++ b/lcov-report/README
@@ -4,121 +4,50 @@ NAME
 
 DESCRIPTION
 
-A small script to create gcov/lcov code coverage reports of tests run
-on the libreoffice source code.
+A small script to create gcov/lcov code coverage reports of
+tests run on the libreoffice source code.
 
 
 SYNOPSIS
 
-lcov-report.sh [-a|-b|-c] -s [DIRECTORY] -t [DIRECTORY] \
-   -w [DIRECTORY] -d "test description"
-
--b
-Run lcov commands before you run your tests. This creates a
-baseline lcov tracefile. You can only supply one of '-a', '-b'
-or '-c' simultaneously.
-
--a
-Run lcov commands after you run your tests. This creates a
-tracefile that contains the results of your tests, and combines
-it with the baseline. You can only supply one of '-a', '-b' or
-'-c' simultaneously.
-
--c
-Specifies to compile the libreoffice sources in the location
-specified by the '-s' flag. This flag is optional. If you
-choose to omit it, you must make sure the libreoffice source
-code is built using the appropriate FLAGS ('-fprofile-arcs
--ftest-coverage'). You can only supply one of '-a', '-b' or
-'-c' simultaneously.
-
--C
-Specifies the location the sourcecode gets compiled in.
+   lcov-report.sh -s [DIRECTORY] -t [DIRECTORY] -r [DIRECTORY] \
+   -b [DIRECTORY]
 
 -s
-Specify the location where the libreoffice source code is
-located. This flag is mandatory.
+   Specify the location where the libreoffice source code is
+   located. This is expected to be a git repository. This option
+   is mandatory.
 
 -t
-Specifies the directory in which to contain the lcov
-tracefile's. This flag is mandatory when you run '-a' or '-b'.
-
--w
-Specifies the directory in which to contain the generated HTML
-report files. This flag is mandatory when you run '-a'.
+   Specifies the directory in which to put the lcov tracefile's.
+   This option is mandatory.
 
--d
-Specify a descriptive name for the test(s) you wish to create
-a report for. For example, if your test consists of the make
-target 'make check', you could specify '-d "make check"'.
+-r
+   Specifies the directory in which to contain the generated HTML
+   report files. This option is mandatory.
 
+-b
+   Specify a directory in which to build the libreoffice project,
+   in case you want to perform a 'out-of-source' build. This option
+   is optional: if you omit this option, a 'in-source-tree' build
+   is performed, and the build will be done in the same dirctory
+   that you specified with the '-s' option.
 
 
 EXAMPLE
 
-Summary.
-
-In essence, you run the following commands:
-
-1.) Compile LibreOffice.
-2.) Run 'lcov-report.sh' before you run your tests.
-3.) Run your tests.
-4.) Run 'lcov-report.sh' after your tests.
-
-That's it.
-
-
-1.) Compile LibreOffice.
-
-The first step is to compile the libreoffice code using
-the a

[Libreoffice-commits] libexttextcat.git: Changes to 'refs/tags/v3.4.6'

2022-04-27 Thread Libreoffice Gerrit user
Tag 'v3.4.6' created by Caolán McNamara  at 2022-04-27 
08:43 +

3.4.6
Changes since v3.4.3-36:
---
 0 files changed
---


[Libreoffice-commits] cppunit.git: src/cppunit

2022-04-11 Thread Libreoffice Gerrit user
 src/cppunit/TestFactoryRegistry.cpp |   10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)

New commits:
commit 64eaa35c2de99581e522608e841defffb4b2923b
Author: Stephan Bergmann 
AuthorDate: Thu Oct 21 11:14:34 2021 +0200
Commit: Stephan Bergmann 
CommitDate: Mon Apr 11 14:14:52 2022 +0200

Run tests in deterministic order

LibreOffice already benefits from this (see


"external/cppunit: Run tests in deterministic order", especially as 
otherwise
the order in which tests happened to get run differed between --disable-lto 
and
--enable-lto builds.

Change-Id: I87d6d7cb0f4c2f6a0ea1ac3ba3d48b4e089eb5c7
Reviewed-on: https://gerrit.libreoffice.org/c/cppunit/+/123963
Tested-by: Stephan Bergmann 
Reviewed-by: Stephan Bergmann 

diff --git a/src/cppunit/TestFactoryRegistry.cpp 
b/src/cppunit/TestFactoryRegistry.cpp
index 35448a6..3b68d58 100644
--- a/src/cppunit/TestFactoryRegistry.cpp
+++ b/src/cppunit/TestFactoryRegistry.cpp
@@ -143,12 +143,20 @@ TestFactoryRegistry::makeTest()
 void 
 TestFactoryRegistry::addTestToSuite( TestSuite *suite )
 {
+  std::multimap sorted;
   for ( Factories::iterator it = m_factories.begin(); 
 it != m_factories.end(); 
 ++it )
   {
 TestFactory *factory = *it;
-suite->addTest( factory->makeTest() );
+Test *test = factory->makeTest();
+sorted.insert({test->getName(), test});
+  }
+  // In the unlikely case of multiple Tests with identical names, those will
+  // still be added in random order:
+  for (auto const &i: sorted)
+  {
+suite->addTest( i.second );
   }
 }
 


[Libreoffice-commits] mso-dumper.git: msodumper/msodraw.py test/doc

2022-02-12 Thread Libreoffice Gerrit user
 msodumper/msodraw.py|2 +-
 test/doc/pass/tdf141049.doc |binary
 2 files changed, 1 insertion(+), 1 deletion(-)

New commits:
commit adf707e6680ffc03fbd7cd1948a1b0290825214a
Author: Hossein 
AuthorDate: Sat Feb 12 21:21:36 2022 +0100
Commit: Hossein 
CommitDate: Sat Feb 12 23:51:36 2022 +0330

Fix doc-dump.py problem with dumping binary data

I was getting this error when invoking:

./doc-dump.py test/doc/pass/tdf141049.doc

...
  File "mso-dumper/msodumper/msodraw.py", line 40, in inflate
return textwrap.fill(base64.b64encode(zlib.decompress(bytes)), 
width=160)
  File "/usr/lib/python3.8/textwrap.py", line 391, in fill
return w.fill(text)
  File "/usr/lib/python3.8/textwrap.py", line 363, in fill
return "\n".join(self.wrap(text))
  File "/usr/lib/python3.8/textwrap.py", line 351, in wrap
chunks = self._split_chunks(text)
  File "/usr/lib/python3.8/textwrap.py", line 337, in _split_chunks
text = self._munge_whitespace(text)
  File "/usr/lib/python3.8/textwrap.py", line 156, in _munge_whitespace
text = text.translate(self.unicode_whitespace_trans)
TypeError: a bytes-like object is required, not 'dict'

To check:

cd test/doc && ./test.py

Or simply run all the tests:

make check

The test fails without this fix in place.

Change-Id: I1573ed0568ceb46c01847008fad0c49d1142420c

diff --git a/msodumper/msodraw.py b/msodumper/msodraw.py
index 15f6a9c..73b698d 100644
--- a/msodumper/msodraw.py
+++ b/msodumper/msodraw.py
@@ -37,7 +37,7 @@ def hexdump(value):
 return "".join(ret)
 
 def inflate(bytes):
-return textwrap.fill(base64.b64encode(zlib.decompress(bytes)), width=160)
+return textwrap.fill(base64.b64encode(zlib.decompress(bytes)).decode(), 
width=160)
 
 class RecordHeader:
 
diff --git a/test/doc/pass/tdf141049.doc b/test/doc/pass/tdf141049.doc
new file mode 100644
index 000..a6a6955
Binary files /dev/null and b/test/doc/pass/tdf141049.doc differ


[Libreoffice-commits] cppunit.git: configure.ac

2022-01-27 Thread Libreoffice Gerrit user
 configure.ac |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit d69305b4bdc66e0592af45d4243f483ca446d7a3
Author: David Tardon 
AuthorDate: Thu Jan 27 18:52:17 2022 +0100
Commit: David Tardon 
CommitDate: Thu Jan 27 18:52:17 2022 +0100

Do not turn on --enable-werror by default

The help string for the option already says that it is "useful for
development", which implies it is not a good default.

Change-Id: Ic0f3bb0eaefd146ad0e5e87ff97abd821462f1a5

diff --git a/configure.ac b/configure.ac
index a591f45..6a933b9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -87,9 +87,9 @@ AS_IF([test "x$enable_debug" != "xno"], [
 ])
 
 AC_ARG_ENABLE([werror],
-   [AS_HELP_STRING([--disable-werror], [Treat all warnings as errors, 
useful for development])],
+   [AS_HELP_STRING([--enable-werror], [Treat all warnings as errors, 
useful for development])],
[enable_werror="$enableval"],
-   [enable_werror=yes]
+   [enable_werror=no]
 )
 AS_IF([test x"$enable_werror" != "xno"], [
CFLAGS="$CFLAGS -Werror"


[Libreoffice-commits] libexttextcat.git: configure.ac src/exttextcat-version.h src/win32_config.h

2021-11-08 Thread Libreoffice Gerrit user
 configure.ac |2 +-
 src/exttextcat-version.h |4 ++--
 src/win32_config.h   |4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

New commits:
commit cf73ba2ed9ab4d49800fe9bb4fa41a16687d6e39
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 12:40:53 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 12:40:53 2021 +

bump release to 3.4.6

diff --git a/configure.ac b/configure.ac
index c992155..1f0b918 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
 m4_define([exttextcat_version_major],[3])
 m4_define([exttextcat_version_minor],[4])
-m4_define([exttextcat_version_micro],[5])
+m4_define([exttextcat_version_micro],[6])
 
m4_define([exttextcat_version],[exttextcat_version_major.exttextcat_version_minor.exttextcat_version_micro])
 
 AC_PREREQ([2.68])
diff --git a/src/exttextcat-version.h b/src/exttextcat-version.h
index 66f98a4..86c4abf 100644
--- a/src/exttextcat-version.h
+++ b/src/exttextcat-version.h
@@ -1,9 +1,9 @@
 #ifndef EXTTEXTCAT_VERSION_H
 #define EXTTEXTCAT_VERSION_H
 
-#define EXTTEXTCAT_VERSION "3.4.5"
+#define EXTTEXTCAT_VERSION "3.4.6"
 #define EXTTEXTCAT_VERSION_MAJOR 3
 #define EXTTEXTCAT_VERSION_MINOR 4
-#define EXTTEXTCAT_VERSION_MICRO 5
+#define EXTTEXTCAT_VERSION_MICRO 6
 
 #endif
diff --git a/src/win32_config.h b/src/win32_config.h
index a49198a..5025f4a 100644
--- a/src/win32_config.h
+++ b/src/win32_config.h
@@ -57,7 +57,7 @@
 #define PACKAGE_NAME "libexttextcat"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "libexttextcat 3.4.5"
+#define PACKAGE_STRING "libexttextcat 3.4.6"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "libexttextcat"
@@ -72,6 +72,6 @@
 #define TIME_WITH_SYS_TIME 1
 
 /* Version number of package */
-#define VERSION "3.4.5"
+#define VERSION "3.4.6"
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


[Libreoffice-commits] libexttextcat.git: langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 langclass/LM/vec.lm  |  400 +++
 langclass/ShortTexts/vec.txt |  213 ++
 langclass/fpdb.conf  |1 
 src/Makefile.am  |2 
 4 files changed, 615 insertions(+), 1 deletion(-)

New commits:
commit 362153ac606f8e4f543689354620cd6a520f3235
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 11:49:53 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 11:49:53 2021 +

add Venetian

diff --git a/langclass/LM/vec.lm b/langclass/LM/vec.lm
new file mode 100644
index 000..7088797
--- /dev/null
+++ b/langclass/LM/vec.lm
@@ -0,0 +1,400 @@
+_
+e
+a
+i
+o
+n
+r
+t
+s
+e_
+d
+a_
+ł
+_d
+de
+_de
+ar
+p
+o_
+_e
+on
+c
+l
+_ł
+u
+i_
+si
+de_
+_de_
+g
+_p
+_c
+_i
+m
+l_
+n_
+à
+_s
+ła
+ri
+_ła
+io
+en
+ła_
+it
+_ła_
+,_
+,
+nt
+_a
+_e_
+r_
+in
+ion
+à_
+el
+sion
+sio
+el_
+_el_
+_el
+to
+pa
+te
+er
+j
+’
+ar_
+v
+łe
+co
+na
+ta
+re
+da
+to_
+z
+_in
+ti
+es
+rt
+_pa
+as
+tà
+rit
+_co
+_g
+par
+łi
+ì
+ga
+un
+on_
+b
+an
+ra
+_i_
+eri
+ion_
+nj
+st
+sa
+ał
+h
+f
+der
+deri
+erit
+_deri
+_der
+.
+._
+derit
+_par
+sion_
+asi
+se
+so
+łe_
+_o
+asio
+asion
+oł
+ns
+he
+_ga
+ga_
+tà_
+un_
+_r
+me
+_a_
+_n
+tr
+ti_
+_ga_
+pr
+ro
+go
+ent
+ch
+he_
+ito
+te_
+po
+ło
+ó
+rito
+or
+_m
+_ch
+nd
+che
+nte
+_re
+’l_
+’l
+int
+con
+erito
+_int
+is
+par_
+_che
+os
+A
+oło
+_pr
+ze
+rito_
+ni
+ito_
+ło_
+_da
+eg
+ie
+ia
+_par_
+ałe
+_łe
+ju
+rs
+ó_
+só
+_só
+_só_
+ez
+_f
+_A
+só_
+da_
+ma
+tì
+_con
+oło_
+è
+men
+art
+_che_
+ba
+na_
+che_
+at
+_t
+bar
+goł
+sar
+_da_
+rtì
+_Art
+Art
+rtìg
+goło
+tìgoł
+ità
+ìgoło
+tìgo
+Artìg
+rtìgo
+_Ar
+goło_
+ìg
+Ar
+tìg
+ìgo
+Artì
+ìgoł
+_Artì
+rà
+njun
+O
+nju
+_O
+jun
+pro
+njun_
+_łi
+_pro
+_Onj
+_o_
+jun_
+Onj
+ib
+On
+_On
+dar
+_łe_
+_Onju
+inte
+_v
+ta_
+_u
+Onju
+Onjun
+_se
+_inte
+_na
+am
+va
+ens
+nte_
+et
+ona
+e’
+rà_
+e’l_
+e’l
+ment
+_èsar
+èsa
+ut
+us
+_è
+osi
+_ès
+pi
+èsar
+_èsa
+_so
+ałi
+ès
+tar
+iba
+ji
+_po
+ca
+ars
+łib
+łiba
+_łiba
+nji
+_łib
+ibar
+łibar
+di
+ità_
+arà
+iti
+nsa
+nał
+a,_
+im
+ałe_
+a,
+np
+rtà
+riti
+artà
+ibart
+bartà
+ara
+bart
+arà_
+man
+om
+no
+ame
+tu
+sar_
+eriti
+su
+e,
+esi
+_l’
+nsi
+l’
+èsar_
+e,_
+sia
+se_
+ur
+eł
+_l
+rso
+sa_
+mi
+cu
+nto
+nto_
+nas
+nta
+vi
+ne
+rtà_
+gh
+do
+sp
+ento
+e.
+ento_
+sta
+artà_
+onał
+eze
+riti_
+iti_
+_’
+e._
+pe
+mo
+ond
+darà
+ze_
+res
+ve
+_z
+ras
+inte_
+nasio
+fa
+o,_
+darà_
+o,
+ec
+nasi
+lt
+n,
+ji_
+ita
+sie
+n,_
+nji_
+ani
+_’st
+_’s
+nsa_
+’s
+’st
+_na_
+amen
+sos
+nda
+ament
+pars
+av
+ist
+isi
+ot
+ro_
+tri
diff --git a/langclass/ShortTexts/vec.txt b/langclass/ShortTexts/vec.txt
new file mode 100644
index 000..f3880f6
--- /dev/null
+++ b/langclass/ShortTexts/vec.txt
@@ -0,0 +1,213 @@
+Declarasion univarsałe de i deriti umani
+  Preànboło
+  Considarà che el reconosimento de ła dinjità inerente a tuti i menbri de 
ła fameja umana e de i só deriti, conpanji e inałienàbiłi, el costituise el 
fondamento de ła łibartà, de ła justisia e de ła paze inte’l mondo;
+  Considarà che el desconosimento e el despreso de i deriti umani i ga 
portà a ati de barbarità che i ofende ła cosiensa de l’umanità, e che el rivar 
de un mondo ndove che i èsari umani i gode de ła łibartà de paroła e de credo e 
de ła łibartà da ła paura e da’l bezonjo el ze stà proclamà cofà ła pì alta 
aspirasion de l’omo;
+  Considarà ch’A ze indespensàbiłe che i deriti umani i sie protezesti da 
norme zurìdeghe, se A se vołe evitar che l’omo el sie costreto a recórar, cofà 
ùltima istansa, a ła rebełion contro de ła tiranìa e l’opresion;
+  Considarà ch’A ze indespensàbiłe promóvar el dezviłupo de raporti da 
amighi intrà Nasion;
+  Considarà che i pòpołi de łe Nasion Unìe i ga reafermà inte ła Carta ła 
só fede inte i deriti umani fondamentałi, inte ła dinjità e inte’l vałor de ła 
parsona umana, inte l’eguajansa de i deriti de l’omo e de ła dona, e i ga 
desizo de promóvar el progreso sosiałe e un mejo tenor de vita in na pì granda 
łibartà;
+  Considarà che i Stati menbri i se ga inpenjà a parseguir, in cooparasion 
co łe Nasion Unìe, el respeto e l’osarvansa univarsałe de i deriti umani e de 
łe łibartà fondamentałe;
+  Considarà che na consesion comun de ’sti deriti e de ’ste łibartà ła ze 
de ła màsima inportansa par ła piena reałizasion de ’sti inpenji;
+ L’asenblèa zenarałe
+ ła proclama
+ ’sta declarasion cofà ideałe comun par tuti i pòpołi e łe nasion, a’l 
fin che onji parsona e onji partision de ła sosietà łe gapie da mirar, tenjendo 
’sta Declarasion senpre inamente, a promóvar co l’insenjamento e l’educasion 
a’l respeto de ’sti deriti e de ’ste łibartà e traverso de mezure progresive, 
nasionałe e intarnasionałe, par seguràrghene reconosimento e osarvansa efetive, 
tanto par i pòpołi de i Stati Menbri par primi, che par i pòpołi che i ze soto 
só jurizdision.
+   
+  Artìgoło 1
+  Tuti i èsari umani i nase łìbari e conpanji par dinjità e deriti. I ze 
dot

[Libreoffice-commits] libexttextcat.git: langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 langclass/LM/swb.lm  |  400 +++
 langclass/ShortTexts/swb.txt |  214 +++
 langclass/fpdb.conf  |1 
 src/Makefile.am  |2 
 4 files changed, 616 insertions(+), 1 deletion(-)

New commits:
commit 7269b4069d5a4567955f38d3b9e9318d3c787c43
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 11:45:20 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 11:45:20 2021 +

add Comorian, Maore

diff --git a/langclass/LM/swb.lm b/langclass/LM/swb.lm
new file mode 100644
index 000..83b2209
--- /dev/null
+++ b/langclass/LM/swb.lm
@@ -0,0 +1,400 @@
+a
+_
+i
+a_
+u
+n
+h
+m
+s
+i_
+w
+e
+r
+wa
+na
+o
+k
+y
+t
+_m
+ha
+l
+z
+ya
+na_
+_u
+_y
+d
+_ya
+an
+_n
+ya_
+mu
+u_
+_na
+_ya_
+_h
+wa_
+o_
+_w
+,
+_na_
+,_
+_wa
+_ha
+zi
+_z
+_a
+hi
+sh
+ma
+ki
+_mu
+si
+ka
+am
+ak
+ts
+e_
+la
+f
+in
+ar
+_s
+shi
+ut
+tr
+g
+ri
+_i
+li
+ana
+ah
+ni
+ɓ
+ru
+ng
+_zi
+ul
+ha_
+hak
+_wa_
+un
+aki
+ki_
+za
+en
+haki
+_sh
+fa
+nd
+K
+us
+j
+la_
+ni_
+haki_
+aki_
+il
+_K
+ana_
+ad
+_shi
+mw
+as
+nu
+at
+.
+._
+um
+re
+utr
+_k
+au
+it
+ra
+_ma
+si_
+tru
+mwa
+v
+_mw
+ik
+so
+sa
+har
+ula
+_za
+af
+_ha_
+_mwa
+_haki
+utru
+mut
+_mut
+he
+hi_
+_hak
+ari
+ao
+shi_
+p
+ru_
+ri_
+is
+ama
+dr
+ndr
+hari
+io
+_mutr
+mutr
+_shi_
+hu
+al
+ud
+tso
+tru_
+wan
+i,
+b
+_t
+mwa_
+mutru
+ta
+i,_
+aw
+mb
+za_
+au_
+da
+uk
+ia
+io_
+ari_
+ili
+dz
+utru_
+hari_
+afa
+ir
+ao_
+_au
+_mwa_
+_au_
+tsi
+ih
+a,
+a,_
+ɓa
+az
+ula_
+ahe
+_Ka
+_har
+Ka
+ku
+dj
+le
+im
+_hari
+ja
+vh
+mi
+anu
+iha
+wana
+asi
+el
+end
+_za_
+ur
+uni
+mu_
+ɓi
+azi
+uni_
+endr
+ada
+awa
+_un
+_Kan
+anun
+ish
+nuni_
+nuni
+Kanun
+Kan
+ma_
+nun
+anuni
+Kanu
+_Kanu
+u,
+its
+pa
+ngi
+_am
+ny
+gi
+naf
+fas
+fasi
+u,_
+eng
+sha
+afas
+_Ku
+we
+iw
+kao
+Ku
+di
+aka
+nafas
+nafa
+afasi
+ika
+_ana
+_Kul
+aɓ
+mo
+yo
+me
+_ɓ
+amu
+ina
+Kula
+Kul
+_an
+wi
+Kula_
+_Kula
+iki
+_ana_
+aha
+asi_
+ba
+ra_
+ba_
+mba
+_ut
+li_
+mba_
+uh
+dam
+ka_
+lio
+su
+e,_
+ren
+_amb
+_amba
+amba_
+adam
+amb
+ini
+usi
+mus
+zin
+_zin
+e,
+ats
+_ud
+amba
+_it
+dzi
+adamu
+_ku
+fasi_
+nad
+nada
+yah
+_uk
+_ts
+damu
+kao_
+tsi_
+nadam
+ali
+M
+_mus
+ishi
+eo
+A
+ani
+imu
+_ul
+nu_
+dja
+_yah
+ama_
+_ka
+eo_
+ara
+dre
+ã
+iri
+ele
+uɓ
+yahe
+uka
+if
+itso
+ot
+ndre
+zi_
+udj
+wana_
+_yahe
+lio_
+ihaki
+iy
+_its
+on
+una
+ihak
+a.
+jam
+jama
+ots
+ai
+ing
+ke
+hus
+kin
+djam
+zih
+hw
+djama
+gu
+a._
+fi
+iwa
+ia_
+ziha
+ro
+ji
+sa_
+he,
+_at
+vhu
+amu_
+ila
+_ziha
+oj
+he,_
+ala
+_p
+_zih
+damu_
+ɗ
+_una
+_M
+ek
+fiki
+fu
+usu
+fik
+otsi
diff --git a/langclass/ShortTexts/swb.txt b/langclass/ShortTexts/swb.txt
new file mode 100644
index 000..0866091
--- /dev/null
+++ b/langclass/ShortTexts/swb.txt
@@ -0,0 +1,214 @@
+FASWIRI HA LUGHA YA SHIMAORE YA MUTEKELEZEO WA SHI ULEMENGU WA ZIHAKI ZA 
MWANADAMU (HAKI-L-ADAMI)
+  
+   
+  DAIƁADJI (MUKADDIMA)
+  Ha uwafiki amba mukuɓalio wa sheo wahuswiana na watru piya wapanga 
udjama wa shi ɓinadamu, na wa zihaki zao zilio sawa wala kazitriliha rahani, 
urendreha ɗe musingi wa unafasi,na wa haki, na wa amani hari mwa lidunia ;
+  Ha uwafiki amba muharalio na mupuzisio wa zihaki za mwanadamu 
zitsongesha mufanyishio wa zitrendrwa za shi ukatili zikao amba zitsotso fikira 
ya unadamu, arudi mujilio wa ulemengu ukao amba ziumbe ɓinadamu watsokana 
nafasi ya ulagua na ya uamini, amba wapukamana na trisidzo na usikini, ɓasi 
mujilio uwo utrangiziwa mauri ɗe mataradjio maɓole kaɓisa ya mwanadamu ;
+  Ha uwafiki amba irendreha muhimu zihaki za mwanadamu zihafadhwiwe na 
sirikali ya haki ile pare mwanadamu asulazimishihe, ha udzidailia, arumie 
shombo ndziro ya uwana kinyume na upeu, na unyonyozi ;
+  Ha uwafiki amba irendreha muhimu mutrilio-shime wa mwendreleombeli wa 
mingiliano ya shi uwandzani ɓaina ya matwaifa ;
+  Ha uwafiki amba hari mwa sharia-musingi, umati wa Uvhumoja wa Matwaifa 
watrangaza ha mara yangina iimani yao hari mwa zihaki musingi za mwanadamu, 
hari mwa usheo na uutru wa uɓinadamu,hari mwa usawa wa zihaki za watruɓaɓa na 
watrumama, esa wadzitayarisha ha uvhendzelea maendreleo ya shi udjama, esa 
wadzitayarisha wajau ha utria ndziani masharutwi mema ya uẽshi hari mwa unafasi 
mɓole kaɓisa ;
+  Ha uwafiki amba zi Daula Wanashama zirenge wahadi ya utria ndziani, 
mastaha ya shi ulemengu na ya kweli ya zihaki za uɓinadamu na zinafasi musingi 
; na zinu, ha mushirikiano na Kungumanyo ya Uvhumoja wa Matwaifa ;
+  Ha uwafiki amba fikira ya shi udjama ya zihaki zinu na zinafasi zinu ya 
muhimu kaɓisa ha urenga miãdi inu namna yastahiki ;
+  Liɓaraza djimla lisutrangaza Mutekelezeo wa shi Ulemengu uhusu Zihaki za 
Mwanadamu (Haki-l-Adami) mauri ɗe mataradjio ya djama yakusudiwa na umati piya 
na matwaifa piya, ile pare watru piya na zidjaniɓu zotsi za imudjitamaã, walio 
amba wana mutekelezeo unu fikirani, wafanye djitihadi, ha ndzia za musomo na za 
malezi, ya uendresa mbeli mastaha ya zihaki zinu na zinafasi zinu, na ha utri

[Libreoffice-commits] libexttextcat.git: 4 commits - langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 langclass/LM/nio.lm  |  400 +++
 langclass/LM/pap.lm  |  400 +++
 langclass/LM/quh.lm  |  400 +++
 langclass/LM/qxa.lm  |  400 ---
 langclass/LM/sun.lm  |  400 +++
 langclass/ShortTexts/nio.txt |  215 +++
 langclass/ShortTexts/pap.txt |  213 ++
 langclass/ShortTexts/quh.txt |  211 ++
 langclass/ShortTexts/qxa.txt |  141 ---
 langclass/ShortTexts/sun.txt |  221 +++
 langclass/fpdb.conf  |5 
 src/Makefile.am  |8 
 12 files changed, 2468 insertions(+), 546 deletions(-)

New commits:
commit 30c0d48a7dd897f7e8e25ad341df8578dd014adc
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 11:40:56 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 11:43:30 2021 +

add Sundanese

diff --git a/langclass/LM/sun.lm b/langclass/LM/sun.lm
new file mode 100644
index 000..712bd14
--- /dev/null
+++ b/langclass/LM/sun.lm
@@ -0,0 +1,400 @@
+a
+_
+n
+u
+e
+an
+i
+k
+g
+a_
+s
+t
+r
+ng
+na
+h
+n_
+b
+m
+sa
+d
+eu
+un
+l
+ga
+ka
+p
+_k
+an_
+ar
+ak
+_a
+na_
+ha
+o
+eun
+u_
+_s
+_b
+j
+di
+_ka
+ba
+ta
+_d
+_n
+at
+ana
+g_
+ang
+in
+_sa
+ng_
+ah
+ma
+_p
+w
+as
+_h
+_di
+ra
+la
+nga
+nu
+,_
+,
+ke
+al
+_j
+ung
+_t
+h_
+k_
+hak
+keu
+-
+un_
+je
+anu
+er
+A
+_ha
+pa
+nu_
+_an
+keun
+eun_
+_m
+wa
+ak_
+aw
+S
+ku
+en
+y
+._
+.
+anu_
+_anu
+_anu_
+keun_
+te
+i_
+bo
+ana_
+ung_
+_hak
+_bo
+hak_
+_ba
+am
+_je
+ata
+ik
+ina
+eung
+jeu
+asa
+jeung
+eung_
+jeun
+_jeun
+_jeu
+da
+_ng
+ara
+nan
+ri
+um
+tu
+awa
+gan
+ti
+kan
+e_
+ina_
+aha
+_na
+og
+ag
+ab
+ya
+ga_
+il
+_nga
+P
+ay
+oga
+bog
+_P
+boga
+ing
+_bog
+ja
+_hak_
+_boga
+sar
+oga_
+boga_
+_pa
+ngan
+_ma
+aa
+ae
+_S
+man
+t_
+re
+san
+_bae
+ur
+aha_
+ha_
+si
+c
+bae
+ing_
+be
+sah
+pi
+tan
+ru
+aga
+din
+sa_
+kat
+du
+dina
+ala
+ah_
+_ku
+_din
+ad
+_sah
+_dina
+dina_
+us
+saha
+aya
+saha_
+uk
+_te
+pe
+l_
+_saha
+kana_
+ae_
+_bae_
+_Sin
+_ti
+me
+bae_
+a.
+a._
+Sin
+ban
+_kana
+Sing_
+Sing
+kana
+Si
+_Si
+_kan
+_Sing
+aan
+gar
+nd
+ma_
+pan
+lah
+anga
+ngan_
+gan_
+ge
+AS
+SA
+im
+_at
+r_
+aj
+_pi
+ASA
+anan
+L
+eu_
+nt
+ra_
+a,
+ngs
+ari
+angs
+gs
+a,_
+ud
+kum
+SAL
+mi
+_PA
+PA
+SAL_
+gsa
+PASAL
+ASAL_
+ngsa
+L_
+PAS
+AL_
+angsa
+ran
+ua
+_PAS
+_PASA
+PASA
+AL
+eh
+ia
+ASAL
+ikeun
+ca
+taw
+ataw
+ike
+atawa
+awa_
+wa_
+ama
+_ata
+ara_
+san_
+_ataw
+ikeu
+tawa
+tawa_
+ta_
+n,_
+atan
+eba
+n,
+bas
+_pan
+_ja
+eb
+_u
+ika
+_sar
+it
+bebas
+beba
+beb
+li
+gara
+up
+on
+ul
+s_
+ebas
+_r
+ib
+kab
+se
+tan_
+_man
+pik
+pike
+asi
+per
+_i
+rt
+nana
+atu
+nda
+pikeu
+nag
+_pike
+asan
+_pik
+atan_
+k-
+una
+al_
+ak-
+we
+a-
+ol
+_kab
+_pe
+nagar
+is
+agar
+m_
+ku_
+_g
+agara
+aba
+oh_
+nang
+ac
+oh
+ila
+naga
+_boh
+art
+at_
+basa
+boh
+_boh_
+aku
+abe
+ngg
+boh_
+ut
+kabe
+ima
+rta
+gg
+ebasa
+arta
+ir
+de
+na.
+asar
+angan
+abeba
+adi
+hak-
+kabeb
+em
+basan
+abeb
+-h
+na._
+di_
+k-hak
+udu
+ak-h
+en_
+k-h
+mp
+-ha
+asan_
diff --git a/langclass/ShortTexts/sun.txt b/langclass/ShortTexts/sun.txt
new file mode 100644
index 000..310b79f
--- /dev/null
+++ b/langclass/ShortTexts/sun.txt
@@ -0,0 +1,221 @@
+
+Sakabeh manusa, gubragna ka alam dunya teh bari nampa hak-hak anu sarua 
jeung mutlak, kalawan dibarung ku ayana kabebasan anu fundamental.
+Perserikatan Bangsa-Bangsa boga komitmen pikeun nanjeurkeun jeung 
nangtayungan hak-hak asasi manusa sakumna.
+Ieu komitmen teh awalna lahir dina Piagem Perserikatan Bangsa-Bangsa anu 
ngeceskeun kayakinan sakumna bangsa di ieu dunya kana ayana hak-hak asasi 
manusa anu fundamental dina martabat katut ajen kamanusaan.
+Dina Pernyataan Umum ngeunaan Hak-Hak Asasi Manusa, Perserikatan 
Bangsa-Bangsa nerangkeun kalawan eces ngeunaan hak-hak anu geus jadi milikna 
saban jalma sacara adil. Eta hak-hak teh saestuna pisan bogana saderek.
+Eta hak - hak teh saestuna pisan mangrupa hak saderek.
+Atuh ku kituna, saderek kedah wanoh kana hak-hak saderek teh. Heg 
jalankeun eta hak-hak teh boh keur diri urang pribadi boh pikeun sasama.
+  PERNYATAAN UMUM NGEUNAAN HAK - HAK ASASI MANUSA
+Mukadimah
+Dumasar ku ayana timbangan yen pangakuan kana ayana martabat alamiah katut 
hak-hak anu sarua ti sakumna anggota kulawarga manusa nu dasarna kamerdikaan, 
kaadilan jeung perdamaian di dunya.
+Ku ayana timbangan yen ngalelewodehkeun katut nganggap enteng kana hak-hak 
manusa teh geus nyiptakeun polah - polah bengis anu nimbulkeun kaceuceub kana 
nurani manusa tur ngawangun hiji dunya tempat manusa ngasaan nikmatna kabebasan 
nyarita jeung ngagem agama sarta bebas tina kasieun jeung katuna, geus 
ditembrakkeun salaku cita-cita luhung ti rahayat biasa.
+Ku ayana timbangan yen hak-hak manusa teh perlu ditangtayungan ku aturan 
hukum sangkan ulah milih cara anu 

[Libreoffice-commits] libexttextcat.git: langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 langclass/LM/min.lm  |  400 +++
 langclass/ShortTexts/min.txt |  215 +++
 langclass/fpdb.conf  |1 
 src/Makefile.am  |2 
 4 files changed, 617 insertions(+), 1 deletion(-)

New commits:
commit 12bb4beb49bef42e701c529dc9b87ac3b9dafb1e
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 11:12:49 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 11:12:49 2021 +

add Minangkabau

diff --git a/langclass/LM/min.lm b/langclass/LM/min.lm
new file mode 100644
index 000..c5eeece
--- /dev/null
+++ b/langclass/LM/min.lm
@@ -0,0 +1,400 @@
+a
+_
+n
+an
+k
+i
+u
+d
+o
+s
+r
+t
+m
+n_
+an_
+l
+ak
+g
+k_
+p
+ka
+o_
+ar
+h
+sa
+da
+_d
+ma
+ra
+b
+as
+ng
+ak_
+ang
+at
+e
+al
+_m
+am
+_p
+_ma
+ta
+y
+_s
+ua
+ba
+i_
+_da
+un
+la
+_k
+na
+ha
+di
+pa
+ara
+ny
+ia
+_u
+,_
+,
+yo
+_ka
+nyo
+ga
+ah
+_sa
+j
+asa
+_b
+hak
+tu
+_h
+_n
+ran
+yo_
+dan
+nan
+nd
+in
+ad
+man
+_a
+nyo_
+ur
+a_
+_t
+nt
+_dan_
+ok
+_dan
+dan_
+_ha
+kan
+_di
+_pa
+-
+_man
+ek
+nan_
+_ba
+_na
+ng_
+g_
+ura
+.
+ang_
+._
+pu
+ata
+hak_
+uran
+si
+_hak
+ok_
+_nan
+ti
+rang
+kan_
+u_
+urang
+_nan_
+ik
+li
+ala
+nda
+_pu
+pun
+su
+h_
+uak
+ai
+l_
+ntu
+ri
+uak_
+ap
+_pun
+rang_
+io
+_ur
+tua
+_uran
+_ura
+ntua
+P
+_P
+_un
+ah_
+ntuak
+untu
+al_
+unt
+tuak
+ab
+tuak_
+and
+_untu
+_unt
+uny
+_ta
+unyo
+unyo_
+_hak_
+untua
+puny
+_puny
+punyo
+au
+il
+m_
+ama
+_j
+sal
+iok
+uk
+iok_
+ku
+jo
+do
+aa
+us
+ya
+ek_
+w
+Pa
+anga
+ado
+_Pa
+nga
+jo_
+aka
+aan
+asal
+c
+um
+tan
+du
+pan
+mo
+pe
+anda
+_l
+dak
+pek
+dap
+tau
+_ata
+asi
+amo
+atau
+_atau
+uan
+_at
+_i
+ko
+pek_
+tau_
+k-
+er
+asal_
+dapek
+ag
+ape
+dape
+nu
+apek
+au_
+sal_
+Pasal
+kat
+aj
+Pasa
+ak-
+ari
+atau_
+_Pas
+Pas
+_Pasa
+ja
+apek_
+gg
+mar
+ika
+bas
+ngg
+sam
+san
+_T
+sia
+T
+be
+lia
+anu
+am_
+_jo_
+_jo
+Tiok
+Ti
+_Tiok
+_Tio
+ul
+tar
+ni
+Tio
+_Ti
+Tiok_
+gan
+ca
+gara
+so
+sua
+_su
+lam
+dak_
+o,_
+alam
+o,
+_ti
+gar
+lu
+mand
+t_
+aan_
+sar
+at_
+ind
+_mand
+to
+sas
+bu
+-ha
+-h
+ndak
+di_
+asu
+k-hak
+-hak
+it
+-hak_
+on
+ak-h
+k-ha
+ak-ha
+atan
+k-h
+par
+mi
+mp
+samo
+ana
+alu
+iah
+manda
+ro
+id
+ia_
+angan
+ngan
+lam_
+alam_
+aga
+adi
+ant
+bat
+_pan
+dalam
+lak
+rad
+arad
+dala
+_dal
+_dala
+dal
+tan_
+usi
+mu
+ban
+ri_
+ay
+mo_
+hak-h
+ndap
+o._
+hak-
+aw
+asan
+mal
+aku
+ai_
+si_
+amo_
+eka
+adok
+o.
+basa
+_tar
+_di_
+_hak-
+ndape
+andap
+aro
+dok
+_la
+ian
+_par
+egar
+ndak_
+egara
+uka
+_tara
+mam
+ebas
+bebas
+beba
+eba
+tara
+beb
+eb
+eg
+lo
+n,
+ega
+ato
+_sam
+n,_
+_mam
+rado
+ro_
+_mal
+nusi
+ki
+nus
+ali
+iah_
+nusia
+rat
+wa
+usia
+anusi
diff --git a/langclass/ShortTexts/min.txt b/langclass/ShortTexts/min.txt
new file mode 100644
index 000..0c63d68
--- /dev/null
+++ b/langclass/ShortTexts/min.txt
@@ -0,0 +1,215 @@
+
+Manusia sadonyo lahia ka dunia mambao hak-hak dan kamardekaan mandasar nan 
samo dan indak dapek dipisahkan. Limbago Perserikatan Bangsa Bangsa batekad 
untuak manjunjuang tinggi, manggiatkan dan malinduangi hak-hak asasi tiok 
urang. Tekad ko bamulo dari Piagam Perserikatan Bangsa-Bangsa, nan mangukuahkan 
kayakinan umat manusia di dunia taradok hak-hak asasi dan martabat nan mandasar 
sarato nilai manusia sacaro pribadi. Dalam Deklarasi Sadunia Hak-Hak Asasi 
Manusia, Perserikatan Bangsa Bangsa mauraikan sacaro jaleh hak-hak nan dimiliki 
tiok urang. Hak-hak ko adolah milik awak. Itulah hak-hak awak. Katahui bana 
hak-hak awak ko. Bantulah mawujudkan dan mampatahankannyo untuak diri awak 
surang atau pun untuak sasamo umat manusia.
+  Deklarasi Sadunia Hak-Hak Asasi Manusia
+Mukadimah
+Sasungguahnyo pangakuan taradok martabat dasar dan hak-hak nan samo sarato 
mutlak dari tiok anggota kaluarga manusia adolah landasan dari kamardekaan, 
kaadilan dan pardamaian di dunia;
+Sasungguahnyo sikap tak paduli dan malecehkan hak-hak asasi manusia 
tabukti mangakibatkan parilaku biadab nan sangat malukoi nurani umat manusia, 
dan alah dicanangkannyo suatu dunia di ma tiok urang dapek manikmati kabebasan 
manyampaikan pandapek, bakayakinan, dan kabebasan dari raso takuik dan dari 
kakurangan, sabagai cito-cito paliang tinggi dari sadonyo urang;
+Sasungguahnyo supayo urang indak tapaso mamiliah barontak sabagai usaho 
pangabisan untuak manantang kazaliman dan panindasan, Hak-hak Asasi Manusia 
paralu dijamin malalui tartib hukum;
+Sasungguahnyo paralu bana mamajukan pangambangan hubuangan basahabat di 
antaro banso-banso di dunia;
+Sasungguahnyo dalam Piagam Perserikatan Bangsa-Bangsa sadonyo anggota alah 
mangukuahkan baliak kayakinan taradok hak-hak asasi manusia nan mandasar, 
taradok martabat dan nilai tiok urang, dan taradok hak-hak nan samo dari 
laki-laki jo padusi, dan batekad untuak mandorong kamajuan sosial sarato taraf 
iduik nan labiah elok dalam kamardekaan nan labiah gadang;
+Sasungguahnyo ikrar Negara-Negara Anggota, bakarajo samo jo Perserikatan 
Bangsa Bangsa, untuak mamajukan panghormatan taradok Hak-Hak 

[Libreoffice-commits] libexttextcat.git: langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 langclass/LM/lld.lm  |  400 +++
 langclass/ShortTexts/lld.txt |  214 +++
 langclass/fpdb.conf  |1 
 src/Makefile.am  |4 
 4 files changed, 617 insertions(+), 2 deletions(-)

New commits:
commit 38d32882ace41b0f83fecbc0d23a253b6861d9af
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 11:09:30 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 11:09:30 2021 +

add Ladin

diff --git a/langclass/LM/lld.lm b/langclass/LM/lld.lm
new file mode 100644
index 000..2424e66
--- /dev/null
+++ b/langclass/LM/lld.lm
@@ -0,0 +1,400 @@
+_
+a
+i
+e
+n
+r
+s
+d
+t
+l
+a_
+o
+_d
+c
+u
+p
+e_
+ë
+m
+es
+_p
+s_
+z
+g
+de
+_l
+na
+un
+or
+da
+_s
+_c
+i_
+la
+zi
+_de
+po
+es_
+on
+_po
+gn
+le
+so
+rt
+_y_
+_y
+y
+y_
+er
+n_
+al
+ra
+da_
+iu
+,_
+,
+v
+h
+_a
+nt
+ch
+_n
+t_
+iun
+l_
+por
+ni
+la_
+_da
+_por
+na_
+_le
+rs
+ia
+te
+_t
+f
+_m
+re
+cu
+ti
+ziu
+li
+ziun
+é
+de_
+dë
+ër
+b
+ona
+rso
+son
+rson
+ta
+_i
+ü
+sc
+_de_
+_dër
+orson
+._
+ors
+orso
+dl
+_dë
+dër
+.
+ig
+in
+_pors
+porso
+pors
+it
+_dl
+_da_
+az
+ën
+un_
+an
+_ch
+azi
+rsona
+ic
+é_
+o_
+sona
+ign
+le_
+di
+_le_
+ne
+ri
+he
+che
+ć
+à
+igni
+tr
+’
+che_
+he_
+à_
+gni
+_r
+ar
+st
+ona_
+sona_
+_o
+aziu
+më
+_g
+aziun
+at
+té
+ì
+_v
+ì_
+rt_
+ö
+iun_
+_à_
+_à
+co
+ra_
+am
+les
+_dërt
+dërt
+ërt
+pr
+_A
+ni_
+nz
+igni_
+A
+gni_
+ci
+r_
+les_
+ć_
+ad
+tic
+_la
+dërt_
+me
+_so
+en
+ërt_
+ala
+_re
+za
+ns
+res
+ul
+ter
+et
+sü
+cul
+_sü
+ziun_
+ënt
+Ar
+té_
+_cu
+_Ar
+gnì
+gnì_
+nì_
+rti
+nì
+_Arti
+Art
+icul
+Arti
+rtic
+icu
+vi
+icul_
+a,_
+rticu
+mi
+_Art
+ticu
+ma
+cul_
+ticul
+a,
+Artic
+ul_
+_gn
+_f
+sci
+_na
+cun
+tl
+ës
+se
+è
+_al
+_la_
+mën
+_che_
+_o_
+Vig
+_Vig
+_in
+Vigni
+Vign
+_Vign
+_Vi
+V
+Vi
+eg
+nza
+_co
+_V
+mënt
+_che
+dla_
+_gnì_
+dla
+_gnì
+ité
+_dla_
+_cun
+_dla
+_pr
+ala_
+ia_
+ëgn
+ëg
+za_
+nte
+uns
+pe
+_süa_
+_li
+süa
+j
+is
+üa
+nter
+üa_
+mo
+ed
+va
+_süa
+nes
+ert
+rć
+süa_
+be
+ib
+ara
+_i_
+ërć
+amë
+è_
+rć_
+ro
+ol
+tra
+ërć_
+nd
+dërć
+des
+_dërć
+_di
+ne_
+nza_
+one
+amën
+amënt
+dërć_
+’a
+con
+hë
+iuns
+al_
+_a_
+nt_
+ziuns
+im
+ns_
+os
+fo
+_te
+ber
+chë
+ur
+pro
+zia
+_pro
+ada
+ones
+ta_
+_chë
+_na_
+te_
+ënz
+ie
+nal
+lib
+_ne
+id
+oz
+ibe
+_libe
+bert
+res_
+libe
+_lib
+_ne_
+iber
+ea
+l’
+liber
+ibert
+ité_
+_vi
+_me
+pa
+ss
+vë
+fe
+hës
+D
+anz
+_e
+tes
+izi
+iz
+esc
+_D
+ca
+er_
+_sc
+_te_
+tes_
+_di_
+ai
+ir
+_ma
+_mo
+dle
+ënt_
+_dles
+em
+_ti
+di_
+ve
+dles_
+chës
+_dle
+nta
+_chës
+dles
+_pe
+ter_
diff --git a/langclass/ShortTexts/lld.txt b/langclass/ShortTexts/lld.txt
new file mode 100644
index 000..4c6b53d
--- /dev/null
+++ b/langclass/ShortTexts/lld.txt
@@ -0,0 +1,214 @@
+Detlaraziun Universala di Dërć dles Porsones
+  Ressoluziun 217 A (III) dla sentada generala di 10 de dezëmber dl 1948
+   
+  Pream
+  Deache le reconescimënt dla dignité de düć i mëmbri dla comunité dla 
jënt y di medemi dërć inalienabli, é la fondamënta dla liberté, dla iustizia y 
dla pêsc tl monn;
+  deache la manćianza de reconescimënt y le desprijamënt di dërć dles 
porsones à portè pro a ać de barbaria, che ofënn la cosciënza dles porsones y 
deache al é gnü anunzié che n monn, olache les porsones à la liberté de parora 
y de religiun y la liberté da tëma y meseria é la majera aspiraziun dla porsona;
+  deache al va debojëgn da defëne i dërć dles porsones cun normes 
iuridiches a na moda che la porsona ne vëgnes nia sforzada da adorè la rebeliun 
sciöche ultimo meso cuntra la tirania y l’opresciun;
+  deache al va debojëgn da sostignì le svilup di raporć d’amizizia danter 
les Naziuns;
+  deache i popui dles Naziuns Unides à reconfermè tl Statut süa crëta ti 
dërć fondamentai dla porsona, tla dignité y tl valur dla porsona, tl’avalianza 
di dërć danter ël y ëra y à tut la dezijiun da promöie le progrès sozial y de 
mius condiziuns de vita te na majera liberté,
+  deache i Stać mëmbri s’à tut dant da miré, en colaboraziun cun les 
Naziuns Unides, al respet y al’osservanza universala di dërć dla porsona y dles 
libertês fondamentales;
+  deache na comprenjiun coletiva de chisc dërć y de chëstes libertês é de 
grandiscima importanza por realisé deplëgn chëstes oblianzes,
+  protlamëia la Reuniun Generala
+  chësta detlaraziun universala di dërć dles porsones sciöche ideal 
coletif da arjunje da düć i popui y dötes les Naziuns, a na moda che vigni 
porsona y vigni organn dla sozieté se sforzes, tignin tres amënt chësta 
Detlaraziun, da sostignì cun l’insegnamënt y l’educaziun, le respet de chisc 
dërć y de chëstes libertês, y da garantì tres mosöres nazionales y 
internazionales progressives, le reconescimënt universal y efetif y le respet 
danter i popui di Stać mëmbri y chi di teritori sotmetüs a süa iurisdiziun.
+   
+  Articul 1
+  Dötes les porsones nasc lëdies y cun la medema dignité y i medemi dërć. 
Ares à na rajun y na cosciënza y mëss s’incuntè öna cun l’atr

[Libreoffice-commits] libexttextcat.git: langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 langclass/LM/lij.lm  |  400 +++
 langclass/ShortTexts/lij.txt |  211 ++
 langclass/fpdb.conf  |1 
 src/Makefile.am  |2 
 4 files changed, 613 insertions(+), 1 deletion(-)

New commits:
commit 94b9805a473826049258c26b0bf60a2aad295ba4
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 11:02:38 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 11:02:38 2021 +

add Ligurian

diff --git a/langclass/LM/lij.lm b/langclass/LM/lij.lm
new file mode 100644
index 000..dc13412
--- /dev/null
+++ b/langclass/LM/lij.lm
@@ -0,0 +1,400 @@
+_
+i
+e
+a
+o
+n
+t
+r
+e_
+d
+s
+c
+_d
+o_
+l
+a_
+p
+u
+g
+on
+_a
+i_
+n_
+m
+_p
+_e
+in
+er
+’
+ri
+_s
+de
+it
+io
+ç
+_e_
+,
+,_
+nt
+ti
+_c
+çi
+co
+to
+_de
+en
+-
+li
+_i
+_l
+de_
+çio
+se
+ò
+æ
+_de_
+te
+_a_
+v
+so
+h
+_in
+ion
+di
+to_
+pe
+an
+rt
+ci
+ic
+çion
+_g
+rit
+ra
+al
+ni
+b
+_co
+_pe
+z
+on_
+æ_
+f
+aç
+açi
+tæ
+açio
+dr
+_dr
+_drit
+drit
+.
+dri
+_dri
+._
+_o
+ia
+-a
+_se
+ti_
+ta
+le
+_o_
+me
+-a_
+sa
+pr
+sc
+ent
+da
+na
+ion_
+ns
+â
+is
+rs
+a-
+re
+eg
+tr
+çion_
+es
+h’
+_di
+’a
+in_
+ers
+ito
+ol
+tt
+_pr
+â_
+te_
+gh
+_l’
+l’
+açion
+nte
+con
+tæ_
+_a-
+int
+lo
+u_
+rso
+rito
+_gh
+per
+_da
+st
+sci
+ico
+_ò
+_int
+gn
+_gh’
+erso
+ch
+lo_
+gh’
+nn
+drito
+nn-
+n-
+gi
+_per
+ito_
+_m
+_r
+ro
+tic
+son
+ib
+_con
+rito_
+A
+at
+da_
+_li
+men
+ale
+nd
+olo_
+mi
+olo
+_da_
+vi
+he
+_A
+pro
+be
+rson
+do
+_pers
+pers
+erson
+po
+_f
+ut
+ment
+an_
+gni
+perso
+eu
+oi
+col
+ai
+_pro
+_t
+am
+he_
+rti
+nte_
+_so
+_n
+_Ar
+rtico
+nsa
+Ar
+a-a_
+un
+icolo
+_lib
+liber
+_Arti
+iber
+icol
+ali
+Artic
+tico
+Arti
+libe
+lib
+Art
+_libe
+colo_
+a-a
+ibe
+ber
+che
+colo
+_Art
+rtic
+ticol
+ca
+che_
+x
+or
+di_
+onn
+sonn
+_ch
+rsonn
+ar
+sonn-
+oin
+om
+onn-
+_ò_
+o,_
+o,
+eu_
+ioi
+ioin
+_di_
+ert
+nto
+a,_
+iâ
+ò_
+a,
+se_
+iâ_
+ni_
+tra
+iti
+iu
+_seu
+seu
+le_
+_seu_
+seu_
+ens
+bert
+_qu
+ertæ
+nto_
+qu
+rtæ
+utt
+seg
+_q
+ibert
+ig
+bertæ
+q
+_a-a
+ale_
+çioin
+_a-a_
+el
+n-a
+nn-a
+ve
+çioi
+gni_
+et
+h’a
+inte
+itæ
+sa_
+id
+oc
+_inte
+à
+ue
+oin_
+_che_
+do_
+av
+_in_
+iti_
+ez
+h’à_
+gh’à
+gh’à_
+h’à
+ioin_
+à_
+’à_
+_gh’à
+ze
+’à
+_che
+ond
+n-a_
+ter
+gg
+iv
+riti
+nn-a_
+_v
+im
+cia
+-e
+riti_
+nsa_
+tu
+ss
+nal
+driti
+ertæ_
+iç
+rtæ_
+mo
+gh’a
+_at
+ge
+-e_
+_gh’a
+ta_
+li_
+òu
+ie
+ot
+tti
+Ò
+go
+_ri
+_Ògn
+h’an
+ma
+n,
+tti_
+_Ògni
+amen
+fe
+’an_
+fo
+n,_
+Òg
+_Òg
+Ògn
+ame
+ament
+’an
+Ògni
+N
+_Ò
+h’an_
+açioi
+içi
+e,
+gh’an
+as
+sp
+_d’
+_seg
+e,_
+d’
diff --git a/langclass/ShortTexts/lij.txt b/langclass/ShortTexts/lij.txt
new file mode 100644
index 000..8f84d8a
--- /dev/null
+++ b/langclass/ShortTexts/lij.txt
@@ -0,0 +1,211 @@
+DICIARAÇION UNIVERSALE DI DRITI DE PERSONN-E
+  Preanbolo
+  Conscideròu che o riconoscimento da pròpia dignitæ e di driti pægi e 
inalienabili de tutti i menbri da famiggia umann-a o l’é o fondamento da 
libertæ, da giustiçia e da paxe into mondo,
+  Conscideròu che a negaçion e o desprexo di driti de personn-e an 
acaxonòu di atti de barbaritæ che an ofeizo a coscensa de l’umanitæ; e che l’é 
stæto proclamòu comme ciù erta aspiraçion de l’òmmo l’arivo de ’n mondo into 
quæ tutti, liberæ da-a poia e da-a mizeia, gödian da libertæ de paròlla e de 
creddo,
+  Conscideròu che l’é esensiale che i driti de personn-e segian protezui 
da de lezze giuridiche perché l’òmmo o no s’atreuve costreito, in urtima 
istansa, a-a rebelion contra a tirania e l’òprescion,
+  Conscideròu che l’é esensiale promeuve o sviluppo de de relaçioin da 
amixi fra e naçioin,
+  Conscideròu che i pòpoli de Naçioin Unie an afermòu into seu Statuto a 
seu fede inti driti fondamentali de personn-e, inta dignitæ e into valô da 
personn-a umann-a e inti driti pægi d’òmmi e dònne, e an determinòu a promoçion 
do progresso sociale e de ’n megio livello de vitta inte ’n ciù erto graddo de 
libertæ,
+  Conscideròu che i Stati Menbri se son conpromissi a aseguâ, in 
cooperaçion co-e Naçioin Unie, a promoçion do rispetto universale e l’òservansa 
di driti de l’òmmo e de libertæ fondamentali,
+  Conscideròu che ’na conceçion comun de questi driti e libertæ a l’é da 
ciù grande inportansa pe l’intrega realizaçion de questi conpromissi, 
l’asenblea generale, aloa,
+  a proclamma a prezente Diciaraçion Universale di Driti de Personn-e, 
comme ideale comun pe-o quæ tutte e gente e e naçioin gh’an da sforsase, de 
mòddo che ògni individoo e ògni istituçion, into tegnila de longo a memöia, 
promeuvan, atraverso l’insegnamento e l’educaçion, o rispetto pe questi driti e 
libertæ, e con de mezue progrescive naçionali e internaçionali n’aseguen o 
riconoscimento e l’aplicaçion universali e efetivi, segge fra i pòpoli di Stati 
Menbri che fra quelli di teritöi sotta a seu giurisdiçion.
+   
+  Articolo 1
+  Tutte e personn-e nascian libere e pæge in dignitæ e driti. Son dotæ de 
raxon e coscensa e gh’an da agî l’unn

[Libreoffice-commits] libexttextcat.git: src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 src/Makefile.am |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 391e1cb092374bea5920752a216ba030c20fa599
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 11:00:06 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 11:00:06 2021 +

sort languages

diff --git a/src/Makefile.am b/src/Makefile.am
index d7d3347..8cf88a9 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -35,7 +35,7 @@ check:
de dv dz ee el emk-Latn en eo es et eu fa fi fj fkv fo \
fon fr fur fy ga gd gl grc gu gug gv ha-NG haw he hi \
hil hr hsb ht hu hy ia id is it ja ka kbd kk kl km kn \
-   kng km ko koi ky ktu la lb lg ln lo lt lv mai mi \
+   kng km ko koi ktu ky la lb lg ln lo lt lv mai mi \
mk ml mn mos mr ms mt my nb nds ne nl nn nr nso \
ny oc om pa pl plt pt quz qxa rm ro ru rue rw sa \
sc sd se sg shs si sk sl so sq sr-Cyrl sr-Latn \


[Libreoffice-commits] libexttextcat.git: langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 langclass/LM/koi.lm  |  400 +++
 langclass/ShortTexts/koi.txt |  212 ++
 langclass/fpdb.conf  |1 
 src/Makefile.am  |2 
 4 files changed, 614 insertions(+), 1 deletion(-)

New commits:
commit 20fcd4aab28eb11948d89c44184db977ab732994
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 10:50:25 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 10:50:25 2021 +

add Komi-Permyak

diff --git a/langclass/LM/koi.lm b/langclass/LM/koi.lm
new file mode 100644
index 000..224595d
--- /dev/null
+++ b/langclass/LM/koi.lm
@@ -0,0 +1,400 @@
+_
+ӧ
+н
+с
+т
+о
+а
+ы
+р
+д
+л
+м
+и
+в
+е
+к
+ь
+з
+ны
+ӧ_
+ы_
+,
+,_
+лӧ
+п
+а_
+_п
+э
+_с
+ӧн
+ӧт
+_в
+й
+б
+у
+_м
+н_
+ра
+ны_
+во
+_к
+_д
+сь
+с_
+да
+г
+_о
+рт
+ӧм
+ор
+ж
+тӧ
+ӧн_
+м_
+пр
+ын
+ас
+і
+ав
+я
+ыд
+_пр
+ч
+нӧ
+да_
+ь_
+о_
+з_
+мо
+ол
+бы
+_б
+.
+пра
+._
+ве
+рав
+лӧн
+прав
+_да_
+_да
+кӧ
+_мо
+_э
+_пра
+т_
+орт
+мӧ
+на
+_прав
+ст
+_г
+ыс
+право
+раво
+аво
+_мор
+_н
+ӧй
+мор
+морт
+лӧн_
+_морт
+_а
+эз
+й_
+ӧр
+жӧ
+ер
+_ве
+ла
+ӧй_
+_бы
+ӧм_
+ль
+сӧ
+тл
+ис
+он
+ш
+ьн
+то
+ко
+ыт
+д_
+ан
+ет
+лӧ_
+ыд_
+дз
+нӧй
+ӧт_
+ги
+ьӧ
+_и
+тӧм
+ес
+ӧд
+_ги
+гиж
+тн
+_гиж
+иж
+ыс_
+ц
+_ӧ
+нӧй_
+ал
+Б
+ит
+и_
+сь_
+_Бы
+_Быд
+Бы
+_Б
+Быд
+сӧ_
+во_
+оз
+та
+гижӧ
+льн
+ци
+_гижӧ
+ижӧ
+ос
+кы
+жӧт
+ез
+іс
+гижӧт
+жӧт_
+не
+тны
+ижӧт_
+_у
+льнӧ
+ижӧт
+ьнӧ
+Быд_
+йӧ
+ӧс
+ыны
+_Быд_
+_не
+_и_
+по
+_по
+ыл
+сьӧ
+_ӧт
+бы_
+_ас
+то_
+н,_
+н,
+_ч
+_кы
+аво_
+_эм
+тны_
+ов
+раво_
+уд
+эм
+_быд
+эз_
+_от
+эм_
+тлӧ
+вер
+от
+быд
+_эм_
+шӧ
+ин
+аль
+од
+ир
+мортл
+ртл
+дн
+льнӧй
+ьнӧй
+рм
+ортл
+_кӧ
+мы
+_вер
+ед
+альн
+оэ
+до
+дӧ
+воэ
+лі
+ар
+тӧм_
+нн
+я_
+_ко
+_л
+ти
+_верм
+ты
+ств
+зл
+сл
+ерм
+верм
+альнӧ
+тв
+ьнӧй_
+ы,_
+ыны_
+ны,_
+ны,
+ы,
+се
+ме
+тс
+тш
+вӧ
+сс
+_т
+ли
+тшӧ
+ортлӧ
+_до
+ртлӧ
+ола
+ртлӧн
+ия
+ац
+авоэ
+ылӧ
+тлӧн
+равоэ
+вол
+ре
+эт
+ство
+ек
+кыт
+ето
+тво
+ето_
+аци
+нето
+нет
+Н
+кӧр
+тшӧм
+си
+са
+сы
+вн
+нето_
+_нет
+_нето
+ын_
+ӧдн
+ісь
+злӧ
+шӧм
+ліс
+_ол
+ті
+_се
+ке
+_вы
+вы
+_ме
+ен
+лас
+на_
+ё
+_мед
+тлӧн_
+ыдӧ
+вны
+_во
+ӧрт
+мед
+об
+за
+ыр
+рй
+р_
+_Н
+ісь_
+та_
+ас_
+ри
+едб
+ытш
+н._
+ӧс_
+ись
+лан
+оэз
+ытшӧ
+дбы
+ӧ,
+рӧ
+су
+ась
+ӧтл
+н.
+_вӧ
+_быдӧ
+едбы_
+_сы
+быдӧ
+едбы
+дбы_
+рмӧ
+ӧ,_
+воэз
+дб
+рн
+олан
+ция
+лісь_
+тир
+_вол
+ермӧ
+_оз
+ытшӧм
+_оз_
+медб
+_з
+ть
+лісь
+сі
+дж
+медбы
+олӧ
+ло
+го
+_медб
+_кыт
+оз_
+ӧн,_
+ви
+ӧн,
+вермӧ
+_сі
+_эт
+ӧл
+ел
+вны_
+сет
+_оти
+орты
+рты
+тч
+тыс
+ортыс
diff --git a/langclass/ShortTexts/koi.txt b/langclass/ShortTexts/koi.txt
new file mode 100644
index 000..56ff6fe
--- /dev/null
+++ b/langclass/ShortTexts/koi.txt
@@ -0,0 +1,212 @@
+Морт правоэзлӧн быдӧс мирись ӧтласа декларация
+  Примитӧм и паськыта юӧртӧм Генеральнӧй Ассамблеялӧн 217 А (111) 
резолюцияӧн декабрь 10 лунӧ 1948 годӧ
+   
+  Кыводз
+  Медбы тӧдны, что морт семьяись быд членлӧн эм аслас достоинство, а сылӧн 
ӧткодь да мырддьытӧм правоэз лоӧ воля, справедливость да лӧнь олан понда 
основаӧн;  медбы тӧдны, что морт правоэз нем туйӧ пуктӧм вайӧтіс  ни умӧль, 
кӧда морт увтырлӧ оз сет овны совесть сьӧрті, и что сэтшӧм мирыс, кытӧн отирыс 
пондас авйыны да сернитны повтӧг, а овны нуждатӧг, лоас сьӧлӧмсянь керӧм 
быдӧнныс понда; и
+  медбы тӧдны, что колӧ керны быдӧс, медбы мортлӧн пра- воэз дозирайтсисӧ 
законӧн и эз адззисьӧ моггез мортыслӧ лэбтісьны паныт умӧля видзӧмлӧ да 
дзескӧтӧмлӧ; и
+  медбы тӧдны, что пыр колӧ отсавны отиррезлӧ ёртасьӧмын; и
+  медбы тӧдны, что Йитӧм Нацияэзлӧн народдэз гижисӧ  вын мортлісь медыджыт 
правоэз, вылына лэбтісӧ личностьлі дон, мужиккезлісь да инькаэзлісь ӧтыжда 
правоэз и кутчисисӧ эшӧ ёнжыка отсавны социальнӧй прогресс да вольнӧй олан 
бурсьӧтӧмын; и
+  медбы тӧдны, что членнэз-государствоэз кӧсйисисӧ отсавны Нацияэзлӧн 
Йитӧм Чукӧрлӧ ӧтласа уджын, ӧтамӧд коласын морт правоэз сьӧрті бытшӧма да 
вольнӧя олӧмын; и
+  медбы тӧдны, что энӧ правоэсӧ да свободаэсӧ позьӧ тырмӧ пыртны оланас 
дзир сэк, кӧр быдӧнныс вежӧртӧны нылісь ыджыт донсӧ,
+  ГЕНЕРАЛЬНӦЙ АССАМБЛЕЯ паськыта юӧртӧ этӧ морт правоэзлісь быдӧс мирись 
ӧтласа декларациясӧ кыдз задача, кодӧ керны колӧ вынтӧтчыны быд отирлӧ и 
государстволӧ сійӧн, медбы быд мортыс и быд общественнӧй  этӧ Декларациясӧ юрын 
орӧттӧг видзтӧн, просвещеннё да велӧтчӧм увья вынтӧтчисӧ керны быдӧс, медбы 
донтны энӧ правоэсӧ да свободаэсӧ, пыртны нійӧ оланӧ национальнӧ да отиррезлӧн 
ӧтласа прогрессивнӧй праздниккезӧ Чукӧрись членнэз-государствоэзлӧн быд 
отиррезӧн бытшӧма примитӧмӧн.
+   
+  1 гижӧт
+  Быдӧс отирыс чужӧны вольнӧйезӧн да ӧткоддезӧн  достоинствоын да 
правоэзын. Нылӧ сетӧм мывкыд да совесть овны ӧтамӧдныскӧт кыдз воннэзлӧ.
+   
+  2 гижӧт
+  Быд мортлӧ бӧрйисьтӧг сетсьӧны быдӧс правоэз да  эз, кӧдна висьталӧмӧсь 
эта Декларацияын, кытшӧм бы эз вӧв раса, кучиклӧн рӧм, пол, кыв, енӧ веритӧм, 
политическӧй да модік вежӧр, национальнӧй нето социальнӧй петӧм, имущество да 
сословие.
+ 

[Libreoffice-commits] libexttextcat.git: src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 src/Makefile.am |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit ec99b9bd110ce901052780dba6f5bfecb3278274
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 10:40:11 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 10:40:11 2021 +

sort languages

diff --git a/src/Makefile.am b/src/Makefile.am
index 0b6d6b0..c941dba 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -34,8 +34,8 @@ check:
bem bho bi bik bg bm bn bo br bs buc ca ckb cs cv cy da \
de dv dz ee el emk-Latn en eo es et eu fa fi fj fkv fo \
fon fr fur fy ga gd gl grc gu gug gv ha-NG haw he hi \
-   hil hr hsb ht hu hy ia id is it ja ka kbd kk kl kn kng \
-   km ko ky ktu la lb lg ln lo lt lv mai mi \
+   hil hr hsb ht hu hy ia id is it ja ka kbd kk kl km kn \
+   kng km ko ky ktu la lb lg ln lo lt lv mai mi \
mk ml mn mos mr ms mt my nb nds ne nl nn nr nso \
ny oc om pa pl plt pt quz qxa rm ro ru rue rw sa \
sc sd se sg shs si sk sl so sq sr-Cyrl sr-Latn \


[Libreoffice-commits] libexttextcat.git: langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 langclass/LM/kbd.lm  |  400 +++
 langclass/ShortTexts/kbd.txt |  209 ++
 langclass/fpdb.conf  |1 
 src/Makefile.am  |4 
 4 files changed, 612 insertions(+), 2 deletions(-)

New commits:
commit 39bc1796fb422c48513eb0d40bd6b738308358e8
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 10:22:52 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 10:22:52 2021 +

add Kabardian

diff --git a/langclass/LM/kbd.lm b/langclass/LM/kbd.lm
new file mode 100644
index 000..336ab55
--- /dev/null
+++ b/langclass/LM/kbd.lm
@@ -0,0 +1,400 @@
+э
+_
+у
+ы
+ъ
+х
+и
+н
+г
+а
+э_
+гъ
+м
+ъэ
+щ
+ху
+к
+з
+ӏ
+р
+гъэ
+т
+уэ
+п
+хэ
+_х
+л
+_з
+къ
+и_
+м_
+ъу
+ыг
+эн
+ыгъ
+_и
+І
+эх
+эр
+ых
+,
+е
+,_
+эм
+с
+зы
+у_
+_к
+нэ
+ны
+_къ
+_ху
+ын
+ыгъэ
+зэ
+д
+ӏэ
+ь
+гъу
+ну
+ыху
+ныгъ
+ныг
+ъы
+ныгъэ
+эщ
+ъуэ
+_зы
+_щ
+эт
+уи
+ӏы
+гъуэ
+ал
+нэ_
+ц
+Іэ
+эм_
+хуи
+эу
+лъ
+хуэ
+ит
+ты
+ым
+ж
+_п
+._
+.
+ьэ
+_и_
+хь
+кӏ
+уэ_
+уит
+хуит
+_ц
+эхэ
+б
+ы_
+къы
+тын
+ӏых
+ун
+ъэр
+ра
+ъэ_
+хъ
+р_
+щӏ
+эг
+хьэ
+ӏыху
+хэм
+цӏ
+дэ
+_хуи
+цӏых
+цӏыху
+эху
+цӏы
+_цӏ
+_цӏы
+_цӏых
+_хуит
+гъэ_
+ф
+_зэ
+аг
+агъ
+ыны
+_е
+пс
+уиты
+иты
+хуиты
+ыныг
+ыныгъ
+щы
+мы
+уитын
+зы_
+итыны
+эк
+итын
+тыны
+тыныг
+эп
+ум
+-
+_зы_
+ыгъэ_
+эр_
+къэ
+_къы
+ри
+ыгъу
+_г
+эгъ
+ыгъуэ
+ыт
+щ_
+эну
+щІ
+энэ
+у,_
+у,
+о
+тх
+ым_
+эны
+рал
+_д
+эра
+ъуэ_
+гъуэ_
+_къэ
+ащ
+ш
+эхэм
+ч
+хъу
+агъэ
+энэ_
+этхэ
+я
+ъэра
+эрал
+ыщ
+кІ
+ъэрал
+этх
+_хуэ
+тхэ
+хэнэ
+сэ
+хэнэ_
+хэн
+тхэнэ
+Д
+уа
+этхэн
+тхэн
+_я
+_Д
+эд
+рэ
+пы
+къэра
+игъ
+щхь
+щхьэ
+у.
+иг
+_къэр
+щх
+къэр
+у._
+щэ
+эщ_
+_-
+чы
+ӏэ_
+гу
+_н
+эф
+эныгъ
+кӏэ
+чыгъ
+ыч
+_пы
+_-н
+чыгъу
+чыг
+пычыг
+_пыч
+-нэ
+пыч
+эныг
+пычы
+-нэ_
+ыну
+ычыг
+зэх
+_-нэ_
+-н
+_-нэ
+ычыгъ
+ычы
+_пычы
+й
+ъэх
+ик
+_зэх
+_л
+со
+рэ_
+эу_
+ну.
+_гъ
+ну._
+ха
+ей
+игъэ
+ми
+ум_
+жь
+ук
+_щы
+хэм_
+уэф
+эдэ
+хэр
+пэ
+ап
+ух
+лъэ
+щӏэ
+ры
+хум
+Дэ
+_Дэ
+Дэтхэ
+ыл
+Дэтх
+ъун
+Дэт
+_Дэт
+ти
+хуэф
+уэд
+_Дэтх
+аб
+хуа
+хум_
+_ик
+ъэм_
+ык
+нш
+мр
+Іэ_
+сы
+ӏу
+мрэ
+_хуэф
+ӏыхум
+ау
+ур
+ъэм
+ыхум
+иІ
+уэн
+ну,
+псо
+эмрэ
+шэ
+э,_
+ам
+эгъу
+ну,_
+хуэд
+эмр
+э,
+уэдэ
+_м
+эж
+ӏи
+ыхум_
+хуэдэ
+_иІ
+_нэ
+Іы
+фа
+ъэхэ
+экӏ
+мрэ_
+фащэ
+на
+бз
+ми_
+_е_
+лъы
+е_
+иІэ
+ащэ
+фащ
+ну_
+хэмр
+хэмрэ
+уэфащ
+эфа
+къу
+_а
+эфащ
+я_
+м,
+эры
+пх
+эмрэ_
+уэфа
+_я_
+алъ
+_иІэ
+м,_
+жы
+эфащэ
+ъэп
+хуэфа
+щІэ
+н_
+_лъ
+ал_
+хэр_
+ыз
+л_
+пщ
+Іэщ
+уэх
+гъэх
+гъэр
+эти
+_дэ
+_хъ
+уну
+мэ
+экІ
+эхэмр
+_хъу
+эс
+кІэ
+езы
+_с
+ыр
+ауэ
+ху_
+ез
+_гъэ
+ӏи_
+ъэщ
+зых
diff --git a/langclass/ShortTexts/kbd.txt b/langclass/ShortTexts/kbd.txt
new file mode 100644
index 000..a032cee
--- /dev/null
+++ b/langclass/ShortTexts/kbd.txt
@@ -0,0 +1,209 @@
+Цӏыху Хуэфащэхэм Теухуа Дунейпсо Джэпсалъэ
+  Дунейпсо къэрал зэгухьэныгъэм и зэхуэсу 1948 гъэм дыгъэгъазэм и 10-м 
щыӏам къыщащтащ 217 А (III) зи бжыгъэ унафэмкӏэ.
+   
+  Дунейпсо Къэрал Зэгухьэныгъэм (ДКъЗ) и Зэхуэсым егъэӏур;
+  Дунейпсо цӏыхугъэм къыхиубыдэ дэтхэнэ зы цӏыхури зэгухьэныгъэри;
+  мы джэпсалъэр сытым щыгъуи я нэгум щӏагъэтурэ мыбы къыщыхэщ цӏыху 
хуэфащэхэмрэ хуитыныгъэхэмрэ я нэӏэ зэрытрагъэтым, хуащӏ лъытэныгъэм 
егъэджэныгъэ-гъэсэныгъэ гъуэгукӏэ зрагъэужьыну;
+  хэгъэгу кӏуэцӏхэми дунейпсоми кӏуэхукӏэ нэхъри зыщызужь амалхэр 
зыхуагъэщхьэпэурэ мы зэгухьэныгъэшхуэм хэт къэралхэм езым я лъэпкъхэри, я 
унафэм щӏагъэт нэгъуэщӏ къэралхэм я лъэпкъхэри къызэщӏиубыдэу, дунейпсом и дэнэ 
щӏыпӏи мы цӏыху хуэфащэхэмрэ хуитыныгъэхэмрэ лъэщу щызрагъэкӏуэным, 
къыщащтэным, щагъэзэщӏэным хущӏэкъунхэу,
+  цӏыху хуэфащэхэм теухуауэ жылагъуэхэми лъэпкъхэми я зэхуэдэ идеал 
щапхъэхэр къэзыгъэув мы дунейпсо джэпсалъэр.
+   
+  1-нэ пычыгъуэ
+  Цӏыху псори щхьэхуиту, я щӏыхьымрэ я хуэфащэхэмрэкӏэ зэхуэдэу къалъхур. 
Акъылрэ зэхэщӏыкӏ гъуазэрэ яӏэщи, зыр зым зэкъуэш зэхащІэ яку дэлъу зэхущытын 
хуейхэщ.
+   
+  2-нэ пычыгъуэ
+  Дэтхэнэ зы цӏыхури зэхуэдэу хуитщ мы джэпсалъэм хэт цІыху хуэфащэхэмрэ 
хуитыныгъэхэмрэ зыхуигъэщхьэпэну, зыщыщ расэм, и фэм, цӏыхубз-цӏыхухъуу 
зэрыщытым, и бзэм, иӏыгъ диным, политичнэ е нэгъуэщӏ еплъыкӏэу иӏэм, лъэпкъыу е 
цӏыху гупу къызыхэкӏам, мылъкуу иӏэм, къыщалъхуа-къыздалъхуам емылъытауэ 
зэхэгъэжыншэу, хуэгъэкӏуэтэныгъэншэу.
+   Къинэмыщӏауэ, къэрал щхьэхуити, нэгъуэщӏым и унафэ щӏэти, 
щхьэхуитыжныгъэ (автономие) зимыӏи, нэгъуэщӏу зы щхьэхуитыныгъэ лъахъэ зытелъи, 
сыт хуэдэрей къэралым и цӏыхуу щытми дэтхэнэ зы цӏыхум зэхэгъэжныгъэ хуащӏ 
хъунукъым зыщыщ къэралым и политичнэ е юридическэ системэ е дунейпсо къэралхэм 
я зэхуакум щиӏэ статусым къыхэкӏыу.
+  
+  3-нэ пычыгъуэ
+  Псэуныр, щхьэхуитыныр, шынагъуэншагъэр хэти и хуэфащэщ.
+   
+  4-нэ пычыгъуэ
+  Хэти пщылӏыу плъытэ е пщӏылӏыпӏэ ибгъэт хъунукъым, сыт хуэдэ щӏыкӏэуи 
пщылӏыгъэр, пщылӏ щэн-къэщэхуныр зыми хуэбдэ мыхъуну къуэдыщ.
+   
+  5-нэ пычыгъуэ
+  Хэти лъэщыгъэ епхьэлӏэ хъунукъым, залымыгъэкӏэ, цӏыхугъэм къемызэгъу е и 
напэр зыгъэулъиин хуэ

[Libreoffice-commits] libexttextcat.git: langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 langclass/LM/fon.lm  |  400 +++
 langclass/ShortTexts/fon.txt |  211 ++
 langclass/fpdb.conf  |1 
 src/Makefile.am  |4 
 4 files changed, 614 insertions(+), 2 deletions(-)

New commits:
commit 0c0cf05f8ce3a515232fb2872507e717d4f84b9e
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 10:06:39 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 10:06:39 2021 +

add Fon

diff --git a/langclass/LM/fon.lm b/langclass/LM/fon.lm
new file mode 100644
index 000..03bbd31
--- /dev/null
+++ b/langclass/LM/fon.lm
@@ -0,0 +1,400 @@
+_
+n
+o
+ɔ
+ɛ
+a
+e
+o_
+i
+_n
+ɖ
+n_
+ɔ_
+ɛ_
+u
+b
+k
+_ɖ
+e_
+t
+a_
+l
+_e
+i_
+m
+p
+kp
+ɖo
+na
+s
+nu
+na_
+_na
+_ɖo
+y
+_na_
+ɔn
+w
+_t
+u_
+_b
+_k
+_e_
+mɛ
+ɖo_
+po
+kpo
+d
+_ɖo_
+_m
+_a
+ɔn_
+tɔ
+_s
+_kp
+g
+_ɔ
+_nu
+j
+in
+yi
+ɛn
+do
+si
+nu_
+_mɛ
+ɖe
+_l
+_g
+_w
+mɛ_
+gb
+_kpo
+,
+do_
+,_
+kpo_
+po_
+.
+é
+._
+yi_
+_gb
+_d
+ny
+tɔn
+ɛn_
+_é
+é_
+_ɔ_
+_si
+bɛ
+wɛ
+h
+_é_
+to
+tɔn_
+lɛ
+an
+bɔ
+un
+_y
+lɛ_
+_tɔ
+al
+in_
+_lɛ
+_to
+_j
+G
+_G
+bo
+_lɛ_
+_h
+nyi
+_nu_
+z
+ok
+_tɔn
+lo
+_al
+Gb
+_Gb
+_kpo_
+_mɛ_
+_do
+ta
+wɛ_
+bo_
+ɛt
+_ny
+ɛtɔ
+_tɔn_
+et
+lɔ
+gbɛ
+_do_
+c
+_bo
+tɔ_
+x
+ji
+lo_
+_gbɛ
+okp
+nɔ
+okpo
+nyi_
+ɖe_
+bɛt
+to_
+ɖok
+ɖokpo
+ɖokp
+ak
+_wɛ
+bɛtɔ
+_bo_
+cɛ
+sin
+ɛtɔ_
+bɛtɔ_
+be
+ee
+_sin
+_wɛ_
+_nyi
+sin_
+bɔ_
+_sin_
+_to_
+ɔ,_
+ɔ,
+_bɔ
+ee_
+_bɔ_
+E
+kɛ
+_ɔ,_
+bet
+_ɔ,
+ac
+beta
+_ɖe
+li
+acɛ
+eta
+_nyi_
+ɖɔ
+_acɛ
+_ac
+okpo_
+odo
+Gbe
+_Gbe
+nɔ_
+tak
+_Gbet
+Gbet
+_ɖok
+odo_
+kɛn
+od
+_ɖokp
+Gbeta
+akɛn
+betak
+takɛ
+_E
+etak
+etakɛ
+takɛn
+kɛn_
+akɛn_
+akɛ
+su
+en
+_ɖɔ
+cɛ_
+ɛɖ
+lin
+ɖɔ_
+bi
+v
+kpodo
+_z
+_ɖɔ_
+podo
+an_
+zɔ
+_kpod
+pod
+kpod
+hw
+podo_
+lɔ_
+_bi
+bi_
+wa
+nɛ
+we
+mɔ
+ji_
+_hw
+ye
+nɛ_
+_bi_
+_gbɛt
+acɛ_
+gbɛt
+_ji
+_acɛ_
+_ye
+ǎ
+ɛɖe
+ma
+_ǎ
+nn
+gbɛtɔ
+_x
+pl
+kpl
+_alo_
+mɛɖ
+alo
+_alo
+alo_
+le
+_en
+mɔ_
+enɛ
+_mɛɖ
+un_
+_nɔ
+si_
+ɖee
+_mɔ
+jɛ
+sɛ
+_mɛɖe
+_yi
+gbɔ
+mɛɖe
+enɛ_
+ka
+_enɛ
+em
+_yi_
+_wa
+_Gbɛ
+uk
+Gbɛ
+_enɛ_
+alɔ
+sɛn
+_gbɔ
+;
+Gbɛt
+_Gbɛt
+nnu
+Gbɛtɔ
+nun
+ij
+kɔ
+_nɔ_
+;_
+_sɛ
+hɛn
+bɔn_
+ɛɖe_
+hɛ
+E_
+pa
+jɛ_
+A
+gbɔn
+kpa
+_gbɔn
+'
+unɔ
+ɖee_
+bɔn
+_sɛn
+_hɛn
+oɖ
+gbɔn_
+_mɔ_
+_hɛ
+_jl
+wa_
+linu
+sɛn_
+inu
+zɔn
+jl
+da
+_ǎ._
+bɛ_
+_sɛn_
+mɛɖe_
+on
+ǎ.
+eɖ
+ó
+ǎ._
+ma_
+_E_
+_A
+_ǎ.
+hu
+nnu_
+f
+_ɖe_
+_zɔ
+kɔn
+nuk
+zɔn_
+ya
+xu
+_alɔ
+gbɛ_
+_ka
+six
+ǐ
+sis
+_su
+isi_
+ali
+sixu_
+isi
+xu_
+_zɔn
+ixu
+sixu
+sisi
+hwɛ
+_ji_
+_ali
+_sixu
+ɖi
+ix
+is
+jij
+_six
+ó_
+ixu_
+_gbɛ_
+_zɔn_
+eɖe
+sisi_
+_nuk
+ukɔn
+_kpa
+ǐ_
+_wa_
+_jlo
+_ta
+sɔ
+nmɛ_
+nm
diff --git a/langclass/ShortTexts/fon.txt b/langclass/ShortTexts/fon.txt
new file mode 100644
index 000..afa4f7d
--- /dev/null
+++ b/langclass/ShortTexts/fon.txt
@@ -0,0 +1,211 @@
+GBETA GBƐ Ɔ BI TƆN EE ƉƆ XÓ DÓ ACƐ E GBƐTƆ ƉÓ KPODO SISI E ƉO NA ƉÓ N'I LƐ KPO 
WU E
+  WEXWLE
+  Ee nyi ɖɔ hɛnnu ɖokpo mɛ ɔ, mɛ ɖokpoɖokpo ka do susu tɔn, bɔ acɛ ɖokpo ɔ 
wɛ mɛbi ɖo bo e ma sixu kan fɛn kpon é ɖi mɛɖesusi jijɛ, hwɛjijɔzinzan, kpodo 
fifa ni tiin nu wɛkɛ ɔ bi e ɔ,
+  Ee nyi ɖɔ nukumamɔ jɛ numɛ kpodo wangbɛnu sɛn ɖeɖee na zɔn bɔ gbɛtɔ na 
do tiin nyi lɛ wɛ nɔ dɔn alannuwiwa ɖee nɔ zɔn bɔ gbɛtɔ nɔ fɔn gu e, lo bɔ nu 
taji ɖee hudo gbɛtɔ ɔ wɛ nyi ɖɔ gbɛ e mɛ gbɛtɔ lɛ ma na nɔ mɛkannu ɖo xoɖiɖɔ 
sin alinu kpodo nuɖiɖi lo bo na tɔn sin adohuhu kpodo ya kpo mɛ é ɔ,
+  Ee nyi ɖɔ dandanmɛ wɛ e ɖo na jɛ hun do sɛn ɖee na zɔn bɔ gbɛtɔ na do 
tiin nyi le gbɔn acɛɖiɖo sin alinu se na zɔn bɔ gbɛtɔ ma na lin ɖɔ emi ɖo na ɖe 
emiɖee sin mɛkannu kpo yadonumɛ kpo e ɔ,
+  Ee nyi ɖɔ é ɖo dandanmɛ bɔ e ɖɔ na ɖe alinu wennyinyi ee ɖo na tiin nyi 
ɖo to ɖokpoɖokpo tɛntin e ɔ,
+  Ee nyi ɖɔ, ɖo xwedowema elɔ mɛ o wɛkɛ ɔ bi lɛ vɔ mɔ nu jɛ acɛ kpo do 
sisi dodo e gbɛtɔ ɖo na ɖo e, ɖo mɛɖesunɔnyinyi kpodo susu e do na xɔ nu gbɛtɔ 
e ɖo acɛ kpodo sisi sunnu kpodo nyɔnu tɔn kpo na nyi ɖokpo ɔ; lo bɔ ye lɛ yalɔ 
akɔ́n bonu nukɔnyinyi ni tiin lo bo na sɔ gbɛ ɖagbe zinzan gbɔn mɛɖesunɔsi jijɛ 
taji ze jijɔn ayi e ɔ,
+  Ee nyi ɖɔ to ɖokpoɖokpo yi gbe bo na ɖo sisi nu acɛ e gbɛtɔ lɛ ɖo kpodo 
mɛɖesusijijɛ taji kpo ɖó alɔ ɖo alɔmɛ xa to lɛ bi sin kplekple é ɔ,
+  Ee nyi ɖɔ linlin ɖokpo ɔ ɖuɖo nu acɛ, sisi kpodo mɛdesunɔsi jijɛ gbɛtɔ 
tɔn le, wɛ nyi nu taji ee na zɔn bɔ mi na nyi sɛn elɔ lɛ e ɔ,
+  Gbɛtɔ ɔ sin kplekple ɖe gbeta elɔ tɔn bɔ e na ɖɔ xo do acɛ e gbɛtɔ ɖo na 
ɖo kpo sisi e ɖo na ɖo n'i é kpo wu. Gbeta elɔ na nyi su ɖokpo tawun bɔ gbɛtɔ 
lɛ kpo to lɛ bi kpo ɖo na nyi bonu mɛ bi kpodo tuto e nyi gbɛtɔ lɛ tɔn lɛ ɖee 
gbeta elɔ ɖo tamɛ na nugbo lɛ e ni tɛnkpɔn nu sisi ni tiin nu acɛ kpodo 
mɛɖesunɔsi jijɛ gbɔn nunywɛyiyi li xo. Mɔ ɖokpo ɔ ye ɖo na tuun sɛn enɛ ɔ lɛ bo 
na zan ye nugbo tɔn gbɔn tuto e do ayi ɖo to ɖokpoɖokpomɛ kpodo gbɛ ɔ bi mɛ e 
kpo; acɛ enɛ ɔ kpodo susu enɛ kpan sin zinzan ɔ kpo nukun mɔ jɛ yenɛ kpo ɔ ɖo 
na nyi nu taji ɖokpo nu tovi ee sin to ɖò gbɛta elɔ mɛ e kpodo tovi ɖée sin to 
lɛ kpo ɖò acɛkpikpa to enɛ ɔ lɛ tɔn glɔ e.
+   
+  G

[Libreoffice-commits] libexttextcat.git: langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 langclass/LM/fkv.lm  |  400 +++
 langclass/ShortTexts/fkv.txt |  213 ++
 langclass/fpdb.conf  |1 
 src/Makefile.am  |4 
 4 files changed, 616 insertions(+), 2 deletions(-)

New commits:
commit 60df250bda7022205eeb754bfb375a3d5b34dcfd
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 10:02:58 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 10:02:58 2021 +

add Finnish, Kven

diff --git a/langclass/LM/fkv.lm b/langclass/LM/fkv.lm
new file mode 100644
index 000..659673f
--- /dev/null
+++ b/langclass/LM/fkv.lm
@@ -0,0 +1,400 @@
+_
+a
+i
+t
+n
+e
+s
+o
+k
+l
+n_
+h
+ä
+u
+a_
+m
+j
+is
+_o
+en
+r
+_j
+aa
+in
+ik
+an
+y
+p
+tt
+et
+i_
+kk
+_t
+ja
+v
+on
+ta
+ha
+oi
+st
+li
+en_
+ai
+el
+ke
+oo
+_ja
+_s
+ja_
+ikk
+_ja_
+se
+la
+_k
+ä_
+kke
+on_
+t_
+ii
+te
+_e
+oon
+,
+,_
+ikke
+si
+.
+._
+tä
+it
+oon_
+_oo
+_oon
+sa
+_oon_
+he
+us
+ti
+ma
+va
+mi
+in_
+_m
+ll
+än
+ise
+ee
+th
+at
+ko
+eu
+oik
+ss
+keu
+oikke
+ikkeu
+e_
+kkeu
+oikk
+ka
+il
+hä
+s_
+ne
+an_
+al
+ää
+_v
+_p
+la_
+as
+tu
+aan
+_oik
+_oi
+haa
+_oikk
+hi
+_h
+eli
+ks
+tte
+_va
+ais
+ol
+ist
+ni
+et_
+us_
+ett
+ei
+haan
+ty
+ok
+kh
+sta
+ki
+sen
+itt
+o_
+li_
+eli_
+na
+lla
+uk
+ta_
+iin
+nen
+_i
+uu
+_n
+keus
+eus
+er
+ap
+kkeus
+ns
+le
+aan_
+n,_
+lis
+eus_
+n,
+nen_
+keus_
+än_
+mis
+hee
+ph
+ksi
+A
+lla_
+_ko
+aat
+un
+su
+sen_
+haan_
+K
+au
+am
+tta
+ih
+_l
+_ka
+ö
+_a
+kha
+ah
+kel
+uks
+_sa
+ään
+ssa
+ali
+vap
+aik
+ko_
+aph
+_et
+jo
+so
+rt
+pha
+ra
+iin_
+tte_
+_A
+rti
+te_
+_ette
+_Ar
+apha
+Arti
+rtikk
+_Arti
+at_
+_Art
+_ta
+tikke
+Art
+Ar
+es
+ikkel
+vapha
+to
+_ett
+ette_
+vaph
+rtik
+tikk
+_.
+Artik
+tik
+hai
+tä_
+ette
+kkel
+ell
+_._
+mä
+okhai
+_vap
+keli
+iss
+khai
+_K
+aise
+okha
+ans
+ju
+okh
+hää
+taa
+_ko_
+sel
+een
+_hä
+nn
+hään
+_ei
+pi
+pa
+pe
+isel
+keli_
+kkeli
+_vaph
+khais
+hais
+le_
+lä
+sell
+_tä
+isell
+haise
+ine
+aisel
+om
+ue
+thaan
+sa_
+thaa
+sii
+tha
+ella
+ään_
+uo
+_hän
+_jo
+nt
+hän
+äm
+aal
+J
+n._
+_r
+n.
+aali
+hii
+ssa_
+ar
+sella
+yö
+hään_
+itte
+_tah
+tah
+ut
+_ma
+_mi
+hiin
+_ol
+taat
+heen
+_el
+sh
+_J
+ten
+ella_
+inen
+Jokh
+Jokha
+äne
+a,
+isen
+_Jokh
+ast
+_Jok
+_si
+a,_
+inen_
+Jok
+_Jo
+Jo
+_tu
+_y
+kan
+sä
+sta_
+ul
+aat_
+lu
+kai
+yn
+nii
+aphau
+sti
+eth
+iki
+phau
+ämä
+ii_
+oli
+ät
+ista
+ak
+_Ka
+hau
+Ka
+ttä
+stä
+ei_
+häne
+lai
+kil
+_ih
+sam
+_häne
+_se
+taat_
+_ei_
+_sam
+kä
+isen_
+aiki
+ois
+nh
+uksi
+een_
+ho
+hm
+ihmi
+hmi
+asj
+ttaa
+itten
+ten_
+_ihm
+sju
+ihm
+aikil
+ila
+tten
+issa
+sk
+sj
+_pi
+_ihmi
+the
diff --git a/langclass/ShortTexts/fkv.txt b/langclass/ShortTexts/fkv.txt
new file mode 100644
index 000..880edf5
--- /dev/null
+++ b/langclass/ShortTexts/fkv.txt
@@ -0,0 +1,213 @@
+IHMISOIKKEUSDEKLARASJUUNI
+  JOHATUS
+  Ko oon tunnustettu ette kaikila ihmissuvun jäseniilä oon syntymässä 
saatu sama arvo ja yhenlaiset oikkeuet, joista ei saata luoppuut, ja ko tämä 
oon vaphauen, oikkeuenmyötäisyyen ja rauhan pohja mailmassa,
+  ko se, ette ihmisoikkeuet oon olheet vähemän tärkkeet ja ette niitä oon 
ylikattottu, oon saanu aikhaan barbaarissii toimii mikkä oon kauhistuttanheet 
mailman ihmisten ommaatunttoo, ja ko eläminen mailmassa missä oon puhheen- ja 
uskonvaphaus ja vaphaus pölöstä ja häästä, oon ilmoitettu kanssoin korkkeimaksi 
tahoksi,
+  ko oon välttämätön ette laki suojaa ihmisoikkeuksii, niin ette ihmissii 
ei pakoiteta viimisennä konstina nousemhaan tyrannii ja alaspainamista vasthaan,
+  ko oon tähelistä eesauttaat sitä ette kanssoinväliset ystävälliset 
suhtheet eistythään,
+  ko Yhistynheitten Kanssoin kansat oon sopinheet Pohjasopimuksessa ette 
het uskothaan perusoikkeukshiin, ihmisarvhoon ja siihen ette miehilä ja 
vaimoila oon samat oikkeuet, ja ette het oon päättänheet työtelä sosiaalisen 
eistymisen ja pareman elämästandardin etheen vaphaamissa oloissa,
+  ko jäsenstaatit oon luvanheet työtelä yhessä Yhistynheitten Kanssoin 
kans sen etheen ette tehhä ihmisoikkeuksii ja perusvaphauksii lujemiksi, ja 
ette kunnioittaat ja eesauttaat niitä.
+  ko oon tärkkee ette kaikila oon yhtheinen ymmärys näistä oikkeuksista ja 
vaphauksista, niin ette tästä deklarasjuunista tullee tosi,
+  Sen tähen
+  Keneraalikokkous
+  anttaa nyt tämän IHMISOIKKEUSDEKLARASJUUNIN kanssoin ja kaikkiin 
nasjuuniitten yhtheiseksi mooliksi, niin ette jokhainen indiviidi ja jokhainen 
samfynnin esivalta pittää jammisti ajatella tämän julistuksen pääle, ja auttaat 
tehhä nämät oikkeuet ja vaphauet lujemaksi opetuksen ja ylöskassuuttamisen 
kautta, ja niin ette nasjunaalit ja internasjunaalit toimet turvathaan sen ette 
nämät oikkeuet ja vaphauet tunnustethaan ja kuorathaan ylheisesti ja 
effektiivisesti sekä jäsenmaissa ja aloissa jokka oon näitten maitten 
suvereniteetin alla.
+   
+  Artikkeli 1.
+  Kaikki ihmiset synnythään vaphaina, ja heilä kaikila oon sama ihmisarvo 
ja samat ihmisoikkeuet. Het oon saanheet j

[Libreoffice-commits] libexttextcat.git: src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 src/Makefile.am |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit b2ac5a7bacc9ac8b3f2d794d35f169cbf5926c0d
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 09:56:05 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 09:56:05 2021 +

sort languages

diff --git a/src/Makefile.am b/src/Makefile.am
index ee2c23a..e7d693d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -32,8 +32,8 @@ check:
@for primarylanguage in \
ab ace ada af ak alt am ar arn ast ay az az-Cyrl ban be \
bem bho bi bik bg bm bn bo br bs buc ca ckb cs cv cy da \
-   de dv dz ee emk-Latn en eo es et eu fa fi fj fo fr fur \
-   fy ga gd gl grc gu gug gv el ha-NG haw he hi hil hr \
+   de dv dz ee el emk-Latn en eo es et eu fa fi fj fo fr
+   fur fy ga gd gl grc gu gug gv ha-NG haw he hi hil hr \
hsb ht hu hy ia id is it ja ka kk kl kn kng km \
ko ky ktu la lb lg ln lo lt lv mai mi \
mk ml mn mos mr ms mt my nb nds ne nl nn nr nso \


[Libreoffice-commits] libexttextcat.git: langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 langclass/LM/dz.lm  |  400 
 langclass/ShortTexts/dz.txt |  212 +++
 langclass/fpdb.conf |1 
 src/Makefile.am |4 
 4 files changed, 615 insertions(+), 2 deletions(-)

New commits:
commit 5977cf58bc8b5540163bf80a903cc3638ad0e223
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 09:44:41 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 09:44:41 2021 +

add Dzongkha

diff --git a/langclass/LM/dz.lm b/langclass/LM/dz.lm
new file mode 100644
index 000..ec5dd7f
--- /dev/null
+++ b/langclass/LM/dz.lm
@@ -0,0 +1,400 @@
+་
+ི
+ད
+ག
+ས
+ང
+ོ
+བ
+ི་
+ང་
+འ
+་ད
+_
+ས་
+ར
+ལ
+ན
+མ
+ུ
+ེ
+་ག
+ན་
+་བ
+་_
+ྱ
+་ལ
+་ར
+་འ
+ག་
+་ས
+་མ
+འི་
+འི
+པ
+ད་
+ུ་
+ཚ
+།
+།_
+ྲ
+་ཚ
+ཡ
+ལ་
+དང
+བ་
+་དང
+ེ་
+དང་
+་དང་
+ར་
+མི
+ཐ
+་ཡ
+ལུ
+ོ་
+་ལུ
+གས
+དབ
+མི་
+་པ
+ཁ
+མ་
+་དབ
+བང
+བང་
+དབང
+དབང་
+ོད
+ོག
+་དབང
+་དབང་
+་ལུ་
+ལུ་
+་ན
+་མི
+ཡོ
+ཐོ
+་ཐ
+གས་
+ྱི
+་ཡོ
+་ཁ
+འབ
+་འབ
+དེ
+_ར
+་ཐོ
+ི་ད
+་མི་
+ཚུ
+་ར་
+གི
+་གི
+་ཚུ
+ཆ
+དེ་
+བད
+གོ
+པའི་
+་པའ
+པའི
+པའ
+་པའི
+་པའི་
+ོབ
+ྱི་
+བ་ད
+ོབ་
+ཡོད
+པ་
+་ཡོད
+ལས
+ཐོབ
+ཐོབ་
+ིན
+ང་ད
+ལས་
+ཚུ་
+་ཆ
+་ཚུ་
+་ལས
+ུང
+ཀ
+་ལས་
+ཐོབ་ད
+ག་ར
+ོབ་ད
+ྒ
+ང་_
+ི་ཐ
+ོད་
+ཉ
+ང་ག
+འབད
+དག
+གི་
+་འབད
+་གི་
+་ནི
+_ད
+ག་ར་
+ནི
+ཅ
+བད་
+_ག
+འབད་
+རྩ
+་འབད་
+ུང་
+བས
+ྩ
+ིག
+ི་ཐོ
+་ཐོབ
+་དགོ
+་དག
+དགོ
+་ཐོབ་
+ཞ
+ིན་
+རྒ
+ཡང
+ང་འ
+འད
+ྐ
+ི་ག
+བ་དབ
+བ་དབང
+ོབ་དབ
+ྡ
+་ག་
+ོང
+ེན
+ྒྱ
+ིའི
+་འད
+རྒྱ
+ིའ
+ིའི་
+ེན་
+འག
+ུ་_
+ོག་
+ི་ར
+ཏ
+་ཨ
+གྲ
+ཨ
+_མ
+ཚན
+་རི
+ས་འ
+ཅི
+ད་ད
+རི
+རང
+ད།
+ོགས་
+ཚན་
+རང་
+_འ
+ོགས
+ཉེ
+སོ
+ེས་
+ེས
+སྐ
+ོན
+་ཨི
+ོ་བ
+ཨི
+ཨིན
+་ཨིན
+ྲོ
+ི་ཐོབ
+ད།_
+མས
+_དེ
+ང་ཡ
+ལ་ད
+ིག་
+ྱོ
+_དེ་
+་ཚན
+རྩ་
+ར་ལ
+ོན་
+ྩ་
+མས་
+་བ་
+ག་ལ
+འི་ད
+ཟ
+དལ
+ུག
+ཡོད།
+་སོ
+་ཀ
+ཡོད།_
+ི་ས
+་ཡོད།
+་།
+ོད།_
+ོད།
+_མི
+་ཚན་
+དལ་དབ
+དལ་
+པ།
+དལ་ད
+ལ་དབ
+_མི་
+ཕ
+ྲི
+པ།_
+_རྩ་
+ཀྱ
+ང་།
+_རྩ
+གྱ
+ལ་དབང
+་ཀྱ
+མ་ག
+་།_
+་ཡང
+་ག་ར་
+སྤ
+ཀྱི་
+ལུ་_
+ནང
+ང་ཡོ
+་ལུ་_
+ྤ
+སྡ
+་ཀྱི་
+་ཀྱི
+་ག་ར
+ིམ
+ཀྱི
+ནང་
+་ར་ལ
+ངས
+ངོ
+ཆོ
+ེལ་
+_རྩ་ཚ
+རྩ་ཚ
+ས་ས
+རྩ་ཚན
+་ནང
+་ནང་
+ྐྱ
+་ཅ
+ེལ
+ྩ་ཚ
+ང་ས
+ར་ལུ
+ར་ལུ་
+ྩ་ཚན
+ང་ལ
+ང་།_
+་ར་ལུ
+ྩ་ཚན་
+་དལ
+གཞ
+ོང་
+་སྐ
+བར
+ང་དང
+ག་ར་ལ
+ང་ཡོད
+ི་བ
+ད་པ
+ཛ
+བ་མ
+་དེ
+_ག་
+རྒྱལ
+ང་གི
+ིས
+ྱལ
+རྒྱལ་
+ྱལ་
+ང་དང་
+ི་མ
+ྒྱལ་
+ི་_
+ྒྱལ
+ན་ད
+་དལ་ད
+་དལ་
+ཁྲ
+ཚོ
+བཟ
+་ནི་
+་ཆོ
+ྟ
+ིས་
+ངས་
+ནི་
+ཁྲི
+འཛ
+ོ་བ་
+་བས
+་བ་མ
+ྲོ་
+་གྱ
+ེད
+་དེ་
+་བའ
+གོ་
+དབང་ཡ
+གྲོ
+་ཨིན་
+་བའི
+འགྲ
+་ང
+བང་ཡོ
+བའ
+་བའི་
+བ་མི
+བའི་
+ས་ག
+ས་_
+སྤྱ
+ོས
+ང་གི་
+བའི
+བང་ཡ
+ཨིན་
+ྤྱ
+ྲོ་བ
+ོས་
+་རུ
+་བར
+་གཞ
+ུ་ག
+ཅིག་
+ླ
+ཅིག
+་གྱི
+ེ་ཡ
+་རུང
+་རུང་
+རུང་
+་ཅི
+རུང
+་ཉ
+ཞི
+གྱི
+ི་ཚ
+ྲོ་བ་
+རུ
+ཡང་
+་རྒ
+་སྤ
+དི
+འདི་
+དི་
+་འདི་
diff --git a/langclass/ShortTexts/dz.txt b/langclass/ShortTexts/dz.txt
new file mode 100644
index 000..74f4206
--- /dev/null
+++ b/langclass/ShortTexts/dz.txt
@@ -0,0 +1,212 @@
+འགྲོ་བ་མིའི་དབང་ཆ་གི་འཛམ་གླིང་གསལ་བསྒྲགས།
+  གླེང་གཞི།
+  དེ་ཡང་ འཛམ་གླིང་ནང་གི་ཞི་བདེ་དང་དྲང་ཁྲིམས། 
དེ་ལས་དལ་དབང་ཚུ་གི་གཞི་འགྱམ་གཙོ་བོ་དེ་ འགྲོ་བ་མིའི་རིགས་ག་ར་དང་མཉམ་ 
ལྷན་ཅིག་སྐྱེས་ཏེ་ཡོད་པའི་བརྩི་མཐོང་དང་འདྲ་མཉམ། 
རང་དང་འབྲེལ་བ་མེད་པའི་དལ་དབང་ཚུ་ཨིན་པའི་ངོས་འཛིན་གྲུབ་ཨིན།
+  དེ་ཡང་ འགྲོ་བ་མིའི་དལ་དབང་ལུ་ཆ་གནས་མ་འབད་མི་དང་། 
བརྩི་བཀུར་མ་འབད་མི་ལུ་བརྟེན་ཏེ་ 
ཀླ་ཀློའི་སྤྱོད་པ་དང་འབྲེལ་བའི་བྱ་སྤྱོད་ལུ་བརྩོན་བཅུག་སྟེ་ 
འགྲོ་བ་མིའི་རྣམ་དཔྱོད་དེ་ར་ཁོང་ཁྲོ་དང་ལྡན་མི་ཅིག་ལུ་བཟོ་སྟེ་ཡོདཔ་མ་ཚད།སྤྱིར་བཏང་འགྲོ་བ་མི་ཚུ་གིས་
 རང་ར་སོ་སོའི་ ཁའི་དལ་དབང་དང་ཡིད་ཆེས་ཀྱི་དལ་དབང་། དེ་ལས་ 
འདྲོག་འཇིགས་མེདཔ་གཅིག་དགོ་པའི་དལ་དབང་ཚུ་ཁག�
 �ཆེ་ཤོས་གཅིག་ལུ་འགྱུར་ཏེ་ཡོདཔ་ཨིན།
+  དེ་ཡང་ ག་དེམ་གཅིག་འབད་ འགྲོ་བ་མི་ཚུ་གིས་ 
དབང་སྐྱོང་དང་དབང་གནོན་ལས་བཟློག་ཐབས་ལུ་ མཐའ་མཇུག་གི་ཐབས་ཤེས་བཟུམ་ཅིག་འབད་ 
ངོ་བརྒལ་འབད་དགོཔ་མེདཔ་སྦེ་བཞག་དགོ་པ་ཅིན་ འགྲོ་བ་མིའི་དབང་ཆ་དེ་ 
ཁྲིམས་གྱིས་ཉེན་སྲུང་འབད་དགོཔ་ ག་ནི་ལས་ཁག་ཆེ།
+  དེ་ཡང་ 
རྒྱལ་ཁབ་ཚུ་གི་བར་ན་མཐུན་འབྲེལ་ཡར་དྲག་དང་གོང་འཕེལ་གཏང་དགོཔ་དེ་ཡང་ག་ནི་ལས་ཁག་ཆེ།
+  དེ་ཡང་ འཛམ་གླིང་སྤྱི་ཚོགས་ཀྱི་འཐུས་མི་ཨིན་པའི་རྒྱལ་ཁབ་ཀྱི་མི་ཚུ་གིས་ 
སྤྱི་ཚོགས་ཀྱི་བཀའ་ཁྲིམས་ནང་ལུ་ འགྲོ་བ་མིའི་དལ་དབང་གི་གཞི་རྩ། 
འགྲོ་བ་མིའི་ངོས་འཛིན་དང་རིན་ཐང་། ཕོ་མོ་འདྲ་མཉམ་གྱི་ཐོབ་དབང་། དེ་ལས་ 
རྒྱ་ཆེའི་དལ་དབང་གི་ཐོག་ལས་མི་སྡེ་ཡར་དྲག་གཏང་ནི་དང་ 
སྤུས་ཚད་ལྡན་པའི་མི་ཚེ་ཡར་དྲག་གཏང་དགོཔ་འབད་ཚུད་དེ་ཡོད།
+  དེ་ཡང་འཐུས་མི་རྒྱལ་ཁབ་ཚུ་གིས་ཡང་ 
འཛམ་གླིང་སྤྱི་ཚོགས་དང་གཅིག་ཁར་ལགཔ་མཐུད་དེ་ 
འཛམ་གླིང་ནང་ལུ་གུས་བཀུར་ཡར་དྲག་གཏང་ནི་དང་། 
འགྲོ་བ་མིའི་ཐོབ་དབང་དང་གཞི་རྟེན་གྱི་དལ་དབང་ཚུ་གྲུབ་ནི་ལུ་ཁས་ལེན་འབད་དེ་ཡོད།
+དེ་ཡང་ ཐོབ་དབང་དང་དལ་དབང་དེ་དང་འབྲེལ་བའི་ སྤྱིར་བཏང་གོ་བ་ལེན་དགོཔ་འདི་ 
དེ་ནང་འཁོད་དེ་ཡོད་པའི་ཁས་བླངས་ཚུ་ག་ར་འགྲུབ་ཚུགསཔ་འབད་དགོ་མི་དེ་ཨིན།
+  དེ་འབདཝ་ལས་ ད་ལས་ཕར།
+  འཛམ་གླིང་སྤྱི་ཚོགས་ཡོངས་ཁྱབ་ཞལ་འཛོམས་ནང་ལས།
+  འགྲོ་བ་མིའི་དབང་ཆ་གི་འཛམ་གླིང་གསལ་བསྒྲགས་འདི་ 
མི་དང་རྒྱལ་ཁབ་ག་ར་གིས་གནས་ཚད་གཅིག་གི་ཐོག་ལས་གྲུབ་དགོཔ་མི་གཅིག་དང་། 
མི་ངོམ་རེ་རེ་བཞིན་དང་མི་སྡེའི་ལས་ཚོགས་ཚུ་གིས་ 
གསལ་བསྒྲགས་འདི་དུས་རྒྱུན་དུ་སེམས་ཁར་དྲན་ཏེ་ ཤེས་རིག་ཡོན་ཏན་གྱི་ཐོག་ལས་ 
ཐོབ་དབང་དང་དལ་དབང་ཚུ་ལུ་བསྐྱེད་དགོ་པའི་གུས་ཞབས་ཡར་དྲག་གཏང་ནི་དང་།རྒྱལ་ཡོངས་དང་རྒྱལ་སྤྱི་གིས་
 འཛམ་གླིང་ཡོ�
 ��ས་དང་ འཐུས་མིའི་རྒྱལ་ཁབ་ཀྱི་མི་ཚུ་དང་། 
རང་སོའི་མངའ་ཁོངས་ཀྱི་ས་ཁོངས་ཚུ་ནང་ཡོད་པའི་མི་ཚུ་ལས་ཡང་ 
ནུས་ཤུགས་ལྡན་པའི་ངོས་འཛིན་དང་མིག་ལྟ་ཚུ་ཐོབ་ཐབས་འབད་ནིའི་སྤྱིར་བཏང་ག

[Libreoffice-commits] libexttextcat.git: langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 langclass/LM/cv.lm  |  400 
 langclass/ShortTexts/cv.txt |  210 +++
 langclass/fpdb.conf |1 
 src/Makefile.am |6 
 4 files changed, 614 insertions(+), 3 deletions(-)

New commits:
commit 72ef3256eea3526800410b3e6f95ca8c4c73ce0b
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 09:34:34 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 09:35:53 2021 +

add Chuvash

diff --git a/langclass/LM/cv.lm b/langclass/LM/cv.lm
new file mode 100644
index 000..8eb414d
--- /dev/null
+++ b/langclass/LM/cv.lm
@@ -0,0 +1,400 @@
+_
+а
+н
+е
+р
+у
+ӑ
+л
+ӗ
+с
+и
+п
+ф
+х
+м
+а_
+_п
+к
+уа
+_у
+н_
+е_
+фр
+т
+се
+_х
+ал
+ен
+ма
+й
+i
+s
+_пф
+пф
+лӑ
+ӑн
+в
+ӑх
+уа_
+ра
+лӑх
+_уа
+хӑ
+не
+_пфр
+пфр
+алӑ
+,_
+ш
+сен
+,
+алӑх
+не_
+ау
+_к
+ан
+ен_
+ха
+ин
+уе
+n
+iss
+issin
+_[
+ng]
+[m
+ing
+miss
+sing]
+si
+missi
+g]_
+mis
+ss
+ing]_
+ssing
+ssin
+issi
+[mi
+ing]
+ssi
+_[m
+_[mi
+is
+_[mis
+]_
+]
+р_
+sin
+ng
+[mis
+ng]_
+g
+sing
+[
+g]
+m
+mi
+[miss
+in
+ем
+ри
+и_
+о
+ч
+ма_
+са
+_ха
+хал
+ла
+_хал
+ауа
+ӗр
+халӑх
+халӑ
+ӗн
+_халӑ
+_и
+м_
+та
+рӑ
+ав
+ар
+_хӑ
+уӗ
+ь
+_ф
+ир
+сен_
+рӗ
+.
+ӑн_
+_с
+._
+уау
+пр
+я
+ӑй
+уауа
+к_
+уауа_
+_уауа
+ауа_
+са_
+_уау
+пра
+йӗ
+фр_
+ине
+ирӗ
+лӗ
+лл
+кф
+ӑхӑ
+ер
+ат
+_т
+хӑн
+ле
+_пр
+ӗ_
+ӑхӑн
+пӗ
+фл
+ӗс
+_П
+П
+хс
+па
+лӑхс
+ӑхс
+пе
+нм
+_ир
+_прав
+рӗк
+хӑй
+ине_
+ӗк
+_пра
+ирӗк
+прав
+нч
+ис
+рав
+_хӑй
+_ирӗк
+_ирӗ
+ене
+хсе
+ӑ_
+рӑн
+фрӑ
+_пӗ
+_кф
+ни
+_уа_
+ы
+лӑхсе
+сем
+нма
+ӑхсе
+фс
+фрӑн
+исе
+алӑхс
+ӑнм
+ӑнма
+_в
+ья
+ӗм
+алл
+че
+пфрӑн
+нче
+_уе
+ӗсе
+пфрӑ
+_пфрӑ
+лӑхӑн
+тать
+ас
+сене
+сене_
+стать
+атья_
+татья
+ья_
+сӑ
+стат
+_стат
+_ста
+тья_
+хӑн_
+на
+ӑхӑн_
+рм
+алӑхӑ
+тья
+ст
+_ст
+ать
+ем_
+атья
+ене_
+тат
+ак
+вӗ
+я_
+ор
+ть
+ста
+лӑхӑ
+х_
+ли
+ка
+е,
+ӗн_
+е,_
+рма
+ме
+мал
+ан_
+_пфл
+иу
+пфл
+ӗк_
+ирӗк_
+малл
+вӑ
+рӗк_
+_уӗ
+ви
+фу
+Пфр_
+нӑ
+_Пфр
+_Пф
+Пф
+уф
+Пфр
+ави
+пӑ
+ӑм
+ек
+_Пфр_
+рӑнм
+уер
+рӑнма
+прави
+йӗн
+ил
+пе_
+рави
+уи
+ори
+-
+ци
+ц
+ша
+ну
+исен
+рр
+фрӑнм
+ре
+ай
+ӑхсен
+хсен
+кфр
+_кфр
+ӗсен
+_фсӑ_
+ӗнч
+сӑ_
+ависе
+_фсӑ
+фсӑ_
+ӗу
+рри
+вис
+ӗнче
+шал
+ки
+фсӑ
+уӗм
+ӑл
+ӑр
+висе
+авис
+_фс
+равис
+ӗуӗ
+_ш
+лс
+р.
+уо
+рс
+р._
+уори
+_вӗ
+висен
+уор
+мӗ
+нуа
+па_
+ӗуӗм
+сем_
+_та
+уар
+уерр
+_шф
+_ч
+_шфу
+ала
+риу
+ӗш
+на_
+вӗс
+пфр_
+_вӗсе
+ӗл
+хӗ
+_па
+хсен_
+уӑ
+_уерр
+ара
+ру
+ик
+ӑнма_
+ам
+шф
+рма_
+а,_
+вӗсе
+тӗ
+а,
+_пфр_
+_м
+нма_
+_вӗс
+ерр
+_уер
+аци
+шфу
+ва
+_й
+ац
+иуор
+_пфр.
+рса
+риуо
+уем
+ерриу
+рин
+уерри
+рриуо
+_э
+ӗт
+пфр._
diff --git a/langclass/ShortTexts/cv.txt b/langclass/ShortTexts/cv.txt
new file mode 100644
index 000..94cdbef
--- /dev/null
+++ b/langclass/ShortTexts/cv.txt
@@ -0,0 +1,210 @@
+Халӑх прависен пӗтӗмӗшле декларацийӗ
+  Кӳртӗм
+  Эуем прависен Пӗуӗмӗшле Декларацийӗ, Граждансен уауа полиуика прависен 
Халӑхсен хфшшинчи Килӗшӗвӗ уауа Экономика, социаллӑ пфрнӑтпа кфльуфра прависен 
Халӑхсем хфшшинчи Килӗшӗвӗ / пфрӗ пӗрле Эуем прависен Пӗуӗм уӗнчери Хариуийӗ 
яупа пӗрлешӗнсе уӑракансем/пӗуӗмӗшлине уауа вӗсене пфр тӗруе хисеплемелле,
+  пфрнӑтламалла пфлнине шфуа илсе,
+  халӑхсен фйрӑм пфрӑнма ирӗк пфррине шфуа илсен уе, пфр паушалӑх уа эуем 
прависене пӑхӑнманнине кфрса уауа Эуем прависен Пӗуӗм уӗнчери Харуийӗ хальӗхе 
пфруе фсӑ кфрмалла пфлса уӑманнине шфуа илсе,
+  фйрӑм тынсен уауа халӑхсен кфльуфра, нацилӗх, чӗлхе уауа эуника уӗлӗшӗпе 
пӗр пек пфлма ирӗк пфррине йышӑнсан кӑна эуем прависене пфрнӑта кӗруме май 
пфррине шфуа илсе, пӗр вӑхӑурах уӗрлӗ халӑхсем пфрӑнни кӑна пфр кфльуфрӑна, 
чӗлхене, ӑс-хакӑл йӑли-йӗркине сыхласа хӑвармалли уауа ауалануармалли чӑннипех 
кирлӗ ларф-уӑрф пфлнине шфуа илсе,
+  халӑхсем, кфльуфрӑсем, чӗлхесем уауа ӑс-хакӑл йӑли-йӗрки уӗрлӗрен пфлни 
эуем пфрнӑтӗн чӑн-чӑн пфянлӑхӗ уауа тфу тануалӑк уӗсӗсен нфмай енлӗхӗ Ҫӗр тинчи 
пфрнӑта уӑсма май пани пекех эуемлӗх малашне пфрӑнассин уауа ауаланассин 
ӑнӑтлӑхӗ фнран килнине шфуа илсе,
+  ялан уенӗ пекех, халӑхсен ӗмӗрӗ эуемлӗх исуорийӗнче паушалӑхсеннинчен 
вӑрӑмрах пфлнине шфуа илсе,
+  эуемӗн уауа халӑхсен пӗуӗмӗшле прависен пӗуӗм уӗнчери праван фйрӑлми 
пайӗ пфлнине ПНОна кӗмен халӑхсен организацийӗн Генеральнӑй Ассамблейи 
тирӗплеуеу уауа такна чыслӑн пӗлуереу / Халӑхсен прависен Пӗуӗмӗшле 
Декларацине/:
+   
+  1 статья
+  Пфр халӑх уа фйрӑм пфрӑнма пӗр уан праваллӑ. Ҫак правапа фсӑ кфрса вӗсем 
хӑйсен полиуика суауфсне ирӗклӗн уфса хфраттӗ, экономика, общесуво уауа 
кфльуфра енӗпе ирӗклӗн ауаланаттӗ. Паушалӑхсен так правӑна хисеплемелле, 
уерриуори пӗр пӗуӗмлӗхӗн принципӗ фнпа фсӑ кфрма пӗр енлӗн чарса уӑракан чӑрмав 
пфлмалла мар.
+   
+  2 статья
+  Пфр халӑх уа уивӗтлӗ уауа хисепре пфрӑнма пӗр уан праваллӑ.
+  Пфр паушалӑхӑн уа фнуа пфрӑнакан халӑхсене пӗр уан уауа уӗрӗс пӑхмалла.
+  
+  3 статья
+  Пфр халӑхӑн уа хӑй ӗмӗруенпе пфрӑннӑ уерриуорире пфрӑнма ирӗк пфр, фнуа 
вӗсем хӑйсем уӗллӗн пфрӑнмалли правӑпа фсӑ кфрма пфлуараттӗ. Х

[Libreoffice-commits] libexttextcat.git: langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2021-11-08 Thread Libreoffice Gerrit user
 langclass/LM/buc.lm  |  400 +++
 langclass/ShortTexts/buc.txt |  210 ++
 langclass/fpdb.conf  |1 
 src/Makefile.am  |6 
 4 files changed, 614 insertions(+), 3 deletions(-)

New commits:
commit c90991fd6a26794135ef1aee797e77c7beafa8db
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 09:26:08 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 09:26:08 2021 +

add Bushi

diff --git a/langclass/LM/buc.lm b/langclass/LM/buc.lm
new file mode 100644
index 000..45fe930
--- /dev/null
+++ b/langclass/LM/buc.lm
@@ -0,0 +1,400 @@
+a
+_
+i
+n
+u
+a_
+i_
+m
+h
+k
+r
+ni
+s
+_n
+t
+l
+ŋ
+an
+e
+d
+u_
+f
+_a
+in
+ha
+-
+ŋa
+aŋ
+aŋa
+n-
+_m
+si
+ni_
+_ni
+ul
+am
+ka
+mi
+ŋa_
+z
+,
+aŋa_
+,_
+na
+_h
+fa
+o
+re
+la
+nin
+ah
+nd
+_nin
+ku
+_f
+b
+ra
+ka_
+in-
+ki
+nin-
+fi
+ma
+_nin-
+ek
+ik
+lu
+dr
+hu
+ndr
+si_
+dre
+is
+ak
+ndre
+_am
+_an
+ia
+eka_
+eka
+ulu
+aha
+rek
+an-
+drek
+ndrek
+_nd
+_ndre
+_ndr
+reka
+ar
+dreka
+reka_
+ta
+hi
+_mi
+ɓ
+ŋu
+v
+la_
+_an-
+_i
+uŋ
+isi
+iku
+_ha
+uŋu
+ki_
+zi
+at
+’
+n’
+al
+_t
+ula
+ŋu_
+w
+mu
+uŋu_
+ha_
+uluŋ
+it
+uluŋu
+luŋ
+luŋu
+ru
+’n
+_r
+un
+hulu
+sh
+hul
+n’n
+_k
+az
+huluŋ
+n’ni_
+n’ni
+isi_
+’ni
+’ni_
+as
+.
+_na
+luŋu_
+._
+in’
+mb
+K
+ad
+min
+aki
+g
+_K
+hak
+ami
+in’n
+amin
+-f
+_hu
+n-f
+_amin
+_ami
+min’
+ani
+amin’
+_hul
+_hulu
+in’ni
+_fa
+haki
+us
+ng
+_fi
+i,
+_ma
+i,_
+ri
+min’n
+di
+aha_
+ula_
+aki_
+ana
+ts
+_haki
+j
+_hak
+p
+haki_
+uni
+if
+za
+a,
+af
+a,_
+tr
+ur
+da
+ut
+_d
+im
+ir
+ani_
+ti
+mis
+eu
+li
+misi
+_misi
+misi_
+_mis
+sha
+ala
+bi
+wa
+uni_
+dj
+ja
+asi
+au
+sa
+azi
+fah
+an-f
+va
+zi_
+afa
+fik
+y
+_an-f
+_s
+ab
+u,
+ama
+u,_
+tu
+_u
+nu
+iaŋa
+anu
+dja
+amb
+iaŋ
+tan
+id
+_fah
+ini
+ih
+ɓa
+ira
+faha
+n-fi
+aka
+uru
+ro
+ua
+-fi
+_:
+_faha
+:_
+_:_
+ny
+:
+um
+nuni
+nun
+anun
+Kan
+yi
+_amb
+eu_
+iaŋa_
+tani
+_Kan
+Ka
+_Ka
+_Kanu
+fiku
+uh
+Kanun
+nuni_
+Kanu
+o_
+nyi
+anuni
+kul
+kula
+ã
+ini_
+faha_
+naf
+tsi
+_ts
+ŋan
+en
+ɓi
+raŋ
+afas
+-h
+_au
+aŋan
+iz
+reu
+fas
+mu_
+bu
+ba
+mp
+izi
+nafas
+_re
+ì
+Kul
+_Kula
+Ku
+_Ku
+_Kul
+Kula_
+_ku
+Kula
+au_
+afasi
+nik
+n-h
+nafa
+_au_
+fasi
+niku
+et
+vu
+_niku
+nazi
+naz
+_nik
+aɓ
+_naz
+n-fa
+raŋa
+fu
+_dj
+ara
+tani_
+_nazi
+_mu
+ata
+le
+-fa
+lu_
+naŋa
+ia_
+naŋ
+te
+and
+gu
+har
+ada
+_izi
+_fik
+_it
+_iz
+rah
+_ra
+_;
+iny
+ngu
+mbu
+_at
+_ta
+ma_
+_ki
+fih
+A
+;
+wi
+bu_
+an-fi
+anaŋa
+izi_
+ai
+inyi
+;_
+ti_
+kur
+_mb
+anaŋ
+itì
+tì
+ifa
+laŋa
+_;_
+_itì
+ali
+laŋ
+kuru
+li_
+i.
+ɓu
+imu
+vaŋ
diff --git a/langclass/ShortTexts/buc.txt b/langclass/ShortTexts/buc.txt
new file mode 100644
index 000..d878bc2
--- /dev/null
+++ b/langclass/ShortTexts/buc.txt
@@ -0,0 +1,210 @@
+TAFASWIRI AN-KIƁUSHI NIM-MATEKELEZO KI DUNIA NIN-HAKI-L-ADAMÌ
+  ALUHA NIN-VUDIN’NI KURAŊA
+  An-fahitaŋa amba, fikuɓaliaŋa amba ɓinadamu djabi nitirahinyi ndreka 
usheu ndreka haki meraŋa nandzari ro musingi nin-nafasi, nin-haki ndreka 
usalama duniani ;
+  An-fahitaŋa amba, tsifahizaŋa ndreka fipuzisaŋa haki-l-adamì ro 
mikutsonga faŋanovaŋa shitrendro ki katili maneitri rohu nin-umati djabi, 
amin’ni zenyi, fitunga nin-ulemengu mbu kuruhusu ɓinadamu ivulaŋa ndreka 
ikwamini aminnafasi, ɓilà tahutru wala taãɓu nin-ufukara, ro nikutekelezaŋa 
kirasimi, ustaãraɓu beheben-djabi ninhulumbelu ;
+  An-An- fahitaŋa amba, aŋatin’ni sharia-musingi nin-ndreu, zanatani 
nin-Uvumoja nin-Twaifa (Shama nin-Daula nin-Ulemengu) nikutekeleza mara hafa 
uaminifu nin-ndreu amin’ni haki musingi nim-ɓinadamu ; amin’ni usheu ndreka 
kima ninhulu an-rohuni, amin’ni fihiraŋa nin-haki nin-lalahi ndreka viavi, 
amin’zenyi, reu nampahei amba reu nangala ãzima ampadeha aluha faŋadzarisaŋa 
maisha nimɓinadamu ndreka ampiditri an-lalaŋa raha mbu andei tanafu tsara 
am-maisha nin-nafasi nankitinyi nimɓinadamu ;ahitaŋa amba, nikulazimu natou 
nguvu fihavaŋana ɓainan’ni tani ndreka tani ;
+  An- fahitaŋa amba, Daula Aŋatin-shama itì ndreka shama nin-Uvumoja 
nin-Twaifa (Shama nin-Daula nin-Ulemengu) nangala wahadi an-ndreu aŋaraka 
kaɓaru retu atà haki-ladamì ndreka nafasi musingi ikustehinyi nankitinyi 
amin’ni dunia mafia ;
+  An- fahitaŋa amba, fikutrugaŋa djumla nin-sharia ndreka nafasi retu 
nandzari muhimu swafi an-fikustehiaŋa namuna kulazimu, wahadi itì ;
+  Trengwe djumla nampahei amba Matekelezo ki Dunia nin-Haki-l-Adamì itì
+  ro daradja aŋabuŋabun-djabi nin-ustaãraɓu nikulazimu nahazu nin-kula 
karazaŋa zanatani ndreka nishani, anga ɓinadamu djabi ndreka kula karazaŋa 
ninfikueshiŋandreu, ihisi Matekelezo itì daima amin’ni luhan-ndreu, aŋanu 
djitihadi amin’ni fampidzuruaŋa ndreka fitarimiaŋa, ampiasa masitaha nin-sharia 
ndreka nafasi retu ; amin’ni zenyi, aŋanu modeli ata, amin’ndreu maŋapiditri 
an-lalaŋa moramora-moramora satua mifotutru tani ou mifotutru dunia, reu 
ikutsonga ata fikuɓaliaŋa ndreka fikurumiaŋa reu itì, ike nin-ankitinyi amin’ni 
dunia mafiha ; rangu amin’ni zanatan

[Libreoffice-commits] libexttextcat.git: README

2021-11-08 Thread Libreoffice Gerrit user
 README |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 23181185c5d600a50185387fe64d3e0b1f6550f7
Author: Caolán McNamara 
AuthorDate: Mon Nov 8 08:54:02 2021 +
Commit: Caolán McNamara 
CommitDate: Mon Nov 8 08:54:02 2021 +

change to a working link

diff --git a/README b/README
index 0b0a78d..0174d03 100644
--- a/README
+++ b/README
@@ -113,7 +113,7 @@ http://software.wise-guys.nl/libtextcat/
 
 [4] http://www.ohchr.org/EN/UDHR/Pages/SearchByLang.aspx
 
-[5] http://unicode.org/udhr/index_by_name.html
+[5] https://unicode.org/udhr/translations.html
 
 Contact:
 


[Libreoffice-commits] mso-dumper.git: msodumper/wmfrecord.py

2021-11-03 Thread Libreoffice Gerrit user
 msodumper/wmfrecord.py |   27 +++
 1 file changed, 23 insertions(+), 4 deletions(-)

New commits:
commit 6c81a12ef517ac5754214cd3d7e66c043c076def
Author: Miklos Vajna 
AuthorDate: Wed Nov 3 12:07:01 2021 +0100
Commit: Miklos Vajna 
CommitDate: Wed Nov 3 12:07:01 2021 +0100

wmfrecord: dump META_DIBSTRETCHBLT

But don't show the DIB which may be huge, just its size.

Change-Id: I595133cc62b7d5395d51722850d465412afe2442

diff --git a/msodumper/wmfrecord.py b/msodumper/wmfrecord.py
index e747b82..27b472c 100644
--- a/msodumper/wmfrecord.py
+++ b/msodumper/wmfrecord.py
@@ -779,7 +779,7 @@ class Header(WMFRecord):
 if PlaceableHeader(self).isPlaceable():
 PlaceableHeader(self).dump()
 self.Size += 22
-print("")
+print('')
 self.printAndSet("FileType", self.readuInt16(), dict=MetafileType)
 self.printAndSet("HeaderSize", self.readuInt16(), hexdump=False)
 self.printAndSet("Version", self.readuInt16(), hexdump=False)
@@ -798,7 +798,7 @@ class PlaceableHeader(WMFRecord):
 WMFRecord.__init__(self, parent)
 
 def dump(self):
-print("")
+print('')
 self.header = Header(self)
 self.Size = 22
 pos = self.pos
@@ -1460,12 +1460,31 @@ class Pie(WMFRecord):
 
 
 class StretchBlt(WMFRecord):
+"""2.3.1.3 META_DIBSTRETCHBLT Record"""
 def __init__(self, parent):
 WMFRecord.__init__(self, parent)
+self.name = "stretchblt"
 
 def dump(self):
-print("")
-pass
+dataPos = self.pos
+print('<%s type="StretchBlt">' % self.name)
+self.printAndSet("RecordSize", self.readuInt32(), hexdump=False)
+self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True)
+self.printAndSet("SrcHeight", self.readInt16(), hexdump=False)
+self.printAndSet("SrcWidth", self.readInt16(), hexdump=False)
+self.printAndSet("YSrc", self.readInt16(), hexdump=False)
+self.printAndSet("XSrc", self.readInt16(), hexdump=False)
+self.printAndSet("DestHeight", self.readInt16(), hexdump=False)
+self.printAndSet("DestWidth", self.readInt16(), hexdump=False)
+self.printAndSet("YDest", self.readInt16(), hexdump=False)
+self.printAndSet("XDest", self.readInt16(), hexdump=False)
+# RecordSize is described in words, so we should double for bytes
+end = dataPos + self.RecordSize * 2
+targetSize = end - self.pos
+print('' % targetSize)
+self.pos += targetSize
+print('' % self.name)
+assert self.pos == end
 
 
 class Escape(WMFRecord):


[Libreoffice-commits] mso-dumper.git: emf-dump.py test/emf test/wmf wmf-dump.py xls-dump.py

2021-10-01 Thread Libreoffice Gerrit user
 emf-dump.py  |   17 +
 test/emf/test.py |3 ++-
 test/wmf/test.py |3 ++-
 wmf-dump.py  |   17 +
 xls-dump.py  |1 +
 5 files changed, 31 insertions(+), 10 deletions(-)

New commits:
commit 8de7672dde1a8c1a344f058ff2d3588675b1b94f
Author: Hossein 
AuthorDate: Fri Oct 1 14:19:32 2021 +0200
Commit: Hossein 
CommitDate: Fri Oct 1 15:07:23 2021 +0200

Parameter checking support for emf and wmf dump

Added parameter checking support for emf-dump.py and wmf-dump.py.
Currently, there is only one parameter: -h for help

Change-Id: I4d97df26c9d70262f4a0b6d217aae9f3294b8365
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/122921
Tested-by: Hossein 
Reviewed-by: Hossein 

diff --git a/emf-dump.py b/emf-dump.py
index 7a900c6..57e292c 100755
--- a/emf-dump.py
+++ b/emf-dump.py
@@ -5,7 +5,8 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 #
 
-from msodumper import emfrecord
+from msodumper import emfrecord, globals
+import optparse
 import sys
 
 
@@ -21,12 +22,20 @@ class EMFDumper:
 strm.dump()
 
 
-def main(args):
-dumper = EMFDumper(args[1])
+def main():
+parser = optparse.OptionParser()
+options, args = parser.parse_args()
+
+if len(args) < 1:
+globals.error("takes at least one argument\n")
+parser.print_help()
+sys.exit(1)
+
+dumper = EMFDumper(args[0])
 dumper.dump()
 
 
 if __name__ == '__main__':
-main(sys.argv)
+main()
 
 # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
diff --git a/test/emf/test.py b/test/emf/test.py
index a9341aa..82499f3 100755
--- a/test/emf/test.py
+++ b/test/emf/test.py
@@ -23,7 +23,8 @@ class Test(unittest.TestCase):
 sock = open("%s.emf.xml" % name, "w")
 saved = sys.stdout
 sys.stdout = sock
-emf_dumper.main(["emf-dumper", "%s.emf" % name])
+dumper = emf_dumper.EMFDumper("%s.emf" % name)
+dumper.dump()
 sys.stdout = saved
 sock.close()
 tree = ElementTree.parse('%s.emf.xml' % name)
diff --git a/test/wmf/test.py b/test/wmf/test.py
index 831125e..ec0250a 100755
--- a/test/wmf/test.py
+++ b/test/wmf/test.py
@@ -23,7 +23,8 @@ class Test(unittest.TestCase):
 sock = open("%s.wmf.xml" % name, "w")
 saved = sys.stdout
 sys.stdout = sock
-wmf_dumper.main(["wmf-dumper", "%s.wmf" % name])
+dumper = wmf_dumper.WMFDumper("%s.wmf" % name)
+dumper.dump()
 sys.stdout = saved
 sock.close()
 tree = ElementTree.parse('%s.wmf.xml' % name)
diff --git a/wmf-dump.py b/wmf-dump.py
index 3c17636..d46ca01 100755
--- a/wmf-dump.py
+++ b/wmf-dump.py
@@ -5,8 +5,9 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 #
 
-from msodumper import wmfrecord
+from msodumper import wmfrecord, globals
 import sys
+import optparse
 
 class WMFDumper:
 def __init__(self, filepath):
@@ -20,12 +21,20 @@ class WMFDumper:
 strm.dump()
 
 
-def main(args):
-dumper = WMFDumper(args[1])
+def main():
+parser = optparse.OptionParser()
+options, args = parser.parse_args()
+
+if len(args) < 1:
+globals.error("takes at least one argument\n")
+parser.print_help()
+sys.exit(1)
+
+dumper = WMFDumper(args[0])
 dumper.dump()
 
 
 if __name__ == '__main__':
-main(sys.argv)
+main()
 
 # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
diff --git a/xls-dump.py b/xls-dump.py
index 15bf8f9..08b47b1 100755
--- a/xls-dump.py
+++ b/xls-dump.py
@@ -237,6 +237,7 @@ def main ():
 parser.print_help()
 sys.exit(1)
 
+
 if __name__ == '__main__':
 main()
 


[Libreoffice-commits] mso-dumper.git: msodumper/wmfrecord.py

2021-10-01 Thread Libreoffice Gerrit user
 msodumper/wmfrecord.py |2 ++
 1 file changed, 2 insertions(+)

New commits:
commit 49ac941aa0fa3413cf88931ffa325fccde9bd687
Author: Hossein 
AuthorDate: Fri Oct 1 14:54:10 2021 +0200
Commit: Hossein 
CommitDate: Fri Oct 1 15:00:36 2021 +0200

Add closing tag for SaveDC and RestoreDC

The closing tag for SaveDC and RestoreDC was missing. It is fixed
in this commit.

Change-Id: I334f32614e1b34a80556b93b71e1c33e83bb9082
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/122868
Tested-by: Hossein 
Reviewed-by: Hossein 

diff --git a/msodumper/wmfrecord.py b/msodumper/wmfrecord.py
index 6065163..e747b82 100644
--- a/msodumper/wmfrecord.py
+++ b/msodumper/wmfrecord.py
@@ -967,6 +967,7 @@ class RestoreDC(WMFRecord):
 self.printAndSet("RecordSize", self.readuInt32(), hexdump=False)
 self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True)
 self.printAndSet("nSavedDC", self.readInt16(), hexdump=False)
+print('' % self.name)
 # RecordSize is described in words, so we should double for bytes
 assert self.pos == dataPos + self.RecordSize * 2
 
@@ -1444,6 +1445,7 @@ class SaveDC(WMFRecord):
 print('<%s type="SaveDC">' % self.name)
 self.printAndSet("RecordSize", self.readuInt32(), hexdump=False)
 self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True)
+print('' % self.name)
 # RecordSize is described in words, so we should double for bytes
 assert self.pos == dataPos + self.RecordSize * 2
 


[Libreoffice-commits] cppunit.git: 12 commits - configure.ac examples/ClockerPlugIn examples/cppunittest examples/DumperPlugIn include/cppunit NEWS src/cppunit src/DllPlugInTester

2021-09-30 Thread Libreoffice Gerrit user
 NEWS|   12 ++
 configure.ac|2 
 examples/ClockerPlugIn/ClockerPlugIn.cpp|6 -
 examples/DumperPlugIn/DumperPlugIn.cpp  |2 
 examples/cppunittest/MockFunctor.h  |2 
 examples/cppunittest/MockTestCase.cpp   |4 
 examples/cppunittest/MockTestListener.cpp   |4 
 examples/cppunittest/TrackedTestCase.cpp|   14 +-
 include/cppunit/Asserter.h  |   82 
 include/cppunit/BriefTestProgressListener.h |8 -
 include/cppunit/CompilerOutputter.h |4 
 include/cppunit/Exception.h |4 
 include/cppunit/Message.h   |2 
 include/cppunit/Portability.h   |   15 --
 include/cppunit/SynchronizedObject.h|2 
 include/cppunit/Test.h  |8 -
 include/cppunit/TestCase.h  |6 -
 include/cppunit/TestComposite.h |8 -
 include/cppunit/TestFixture.h   |6 -
 include/cppunit/TestLeaf.h  |6 -
 include/cppunit/TestListener.h  |8 -
 include/cppunit/TestPath.h  |   10 -
 include/cppunit/TestResult.h|4 
 include/cppunit/TestResultCollector.h   |   10 -
 include/cppunit/TestRunner.h|8 -
 include/cppunit/TestSuccessListener.h   |6 -
 include/cppunit/TestSuite.h |8 -
 include/cppunit/TextOutputter.h |4 
 include/cppunit/TextTestProgressListener.h  |8 -
 include/cppunit/TextTestResult.h|4 
 include/cppunit/XmlOutputter.h  |6 -
 include/cppunit/config/config-msvc6.h   |3 
 include/cppunit/extensions/RepeatedTest.h   |4 
 include/cppunit/extensions/TestCaseDecorator.h  |   10 -
 include/cppunit/extensions/TestDecorator.h  |   12 +-
 include/cppunit/extensions/TestFactoryRegistry.h|4 
 include/cppunit/extensions/TestSetUp.h  |2 
 include/cppunit/extensions/TestSuiteBuilderContext.h|4 
 include/cppunit/plugin/DynamicLibraryManager.h  |8 -
 include/cppunit/plugin/DynamicLibraryManagerException.h |6 -
 include/cppunit/plugin/PlugInManager.h  |2 
 include/cppunit/plugin/TestPlugInDefaultImpl.h  |   14 +-
 include/cppunit/portability/Stream.h|2 
 include/cppunit/tools/XmlElement.h  |4 
 include/cppunit/ui/text/TextTestRunner.h|6 -
 src/DllPlugInTester/CommandLineParserTest.cpp   |   24 ++--
 src/cppunit/Asserter.cpp|   24 ++--
 src/cppunit/DefaultProtector.h  |2 
 src/cppunit/DynamicLibraryManager.cpp   |   11 --
 src/cppunit/DynamicLibraryManagerException.cpp  |2 
 src/cppunit/Exception.cpp   |6 -
 src/cppunit/PlugInManager.cpp   |2 
 src/cppunit/ProtectorChain.cpp  |2 
 src/cppunit/ProtectorChain.h|4 
 src/cppunit/SynchronizedObject.cpp  |2 
 src/cppunit/Test.cpp|8 -
 src/cppunit/TestCase.cpp|2 
 src/cppunit/TestFactoryRegistry.cpp |2 
 src/cppunit/TestFailure.cpp |2 
 src/cppunit/TestLeaf.cpp|2 
 src/cppunit/TypeInfoHelper.cpp  |4 
 src/cppunit/Win32DynamicLibraryManager.cpp  |6 -
 src/cppunit/XmlElement.cpp  |1 
 63 files changed, 223 insertions(+), 237 deletions(-)

New commits:
commit d7049a6dd98ef12f0949f3ccfbc8ff4dbd63df2e
Author: Markus Mohrhard 
AuthorDate: Fri Oct 1 03:14:16 2021 +0800
Commit: Markus Mohrhard 
CommitDate: Fri Oct 1 03:14:16 2021 +0800

add initial NEWS entries for 1.15.2

diff --git a/NEWS b/NEWS
index 10520c2..9de7602 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,13 @@
+  New in CppUnit 1.15.2:
+  -
+
+* Portability:
+
+  - Use more C++11 features and remove old and deprecated
+C++ language features
+
+  - Fix a few compiler warnings
+
   New in CppUnit 1.15.1:
   -
 
commit ae6bffb6caa0e68c6b3c85d4409141084cae84f5
Author: Markus Mohrhard 
AuthorDate: Fri Oct 1 03:13:56 2021 +0800
Commit: Markus Mohrhard 
CommitDate: Fri Oct 1 03:13:56 2021 +0800

fix incor

[Libreoffice-commits] mso-dumper.git: msodumper/wmfrecord.py

2021-09-28 Thread Libreoffice Gerrit user
 msodumper/wmfrecord.py |   40 
 1 file changed, 24 insertions(+), 16 deletions(-)

New commits:
commit 5b01cfd6971e8822b8d52e0ba3bad2134a9e5aa9
Author: Hossein 
AuthorDate: Tue Sep 28 09:42:03 2021 +0200
Commit: Hossein 
CommitDate: Tue Sep 28 09:50:54 2021 +0200

Added dump() for 2 wmf records in wmf-dump

Added dump() for 2 wmf records to wmf-dump.py

List of records:

1. SaveDC (META_SAVEDC)
2. RestoreDC (META_RESTOREDC)

Change-Id: I12007c40d385b3b3ca25876428f37e01e241757d
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/122754
Tested-by: Hossein 
Reviewed-by: Hossein 

diff --git a/msodumper/wmfrecord.py b/msodumper/wmfrecord.py
index dc1ecdb..6065163 100644
--- a/msodumper/wmfrecord.py
+++ b/msodumper/wmfrecord.py
@@ -953,13 +953,22 @@ class SetTextCharacterExtra(WMFRecord):
 pass
 
 
-class RestoreDC:
-def __init__(self, parent):
+class RestoreDC(WMFRecord):
+def __init__(self, parent, name=None):
 WMFRecord.__init__(self, parent)
+if name:
+self.name = name
+else:
+self.name = "restoredc"
 
 def dump(self):
-print("")
-pass
+dataPos = self.pos
+print('<%s type="RestoreDC">' % self.name)
+self.printAndSet("RecordSize", self.readuInt32(), hexdump=False)
+self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True)
+self.printAndSet("nSavedDC", self.readInt16(), hexdump=False)
+# RecordSize is described in words, so we should double for bytes
+assert self.pos == dataPos + self.RecordSize * 2
 
 
 class ResizePalette(WMFRecord):
@@ -1423,21 +1432,20 @@ class RoundRect(WMFRecord):
 
 
 class SaveDC(WMFRecord):
-def __init__(self, parent):
-WMFRecord.__init__(self, parent)
-
-def dump(self):
-print("")
-pass
-
-
-class SaveDC(WMFRecord):
-def __init__(self, parent):
+def __init__(self, parent, name=None):
 WMFRecord.__init__(self, parent)
+if name:
+self.name = name
+else:
+self.name = "savedc"
 
 def dump(self):
-print("")
-pass
+dataPos = self.pos
+print('<%s type="SaveDC">' % self.name)
+self.printAndSet("RecordSize", self.readuInt32(), hexdump=False)
+self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True)
+# RecordSize is described in words, so we should double for bytes
+assert self.pos == dataPos + self.RecordSize * 2
 
 
 class Pie(WMFRecord):


[Libreoffice-commits] mso-dumper.git: msodumper/wmfrecord.py

2021-09-28 Thread Libreoffice Gerrit user
 msodumper/wmfrecord.py |   21 -
 1 file changed, 16 insertions(+), 5 deletions(-)

New commits:
commit 7bcbe575ce88e4daa6f6335d0b78acc58917cb3e
Author: Hossein 
AuthorDate: Tue Sep 28 09:27:19 2021 +0200
Commit: Hossein 
CommitDate: Tue Sep 28 09:29:10 2021 +0200

Added dump() for META_POLYLINE record in wmf-dump

Added dump() for the META_POLYLINE (PolyLine) record in wmf-dump.py

Change-Id: Ie15f208ee46664cfcc915520d6416b1f3beb8421
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/122731
Tested-by: Hossein 
Reviewed-by: Hossein 

diff --git a/msodumper/wmfrecord.py b/msodumper/wmfrecord.py
index 272ba79..dc1ecdb 100644
--- a/msodumper/wmfrecord.py
+++ b/msodumper/wmfrecord.py
@@ -1103,13 +1103,24 @@ class Polygon(WMFRecord):
 assert self.pos == dataPos + self.RecordSize * 2
 
 
-class Polyline(WMFRecord):
-def __init__(self, parent):
+class PolyLine(WMFRecord):
+def __init__(self, parent, name=None):
 WMFRecord.__init__(self, parent)
+if name:
+self.name = name
+else:
+self.name = "polyline"
 
 def dump(self):
-print("")
-pass
+dataPos = self.pos
+print('<%s type="PolyLine">' % self.name)
+self.printAndSet("RecordSize", self.readuInt32(), hexdump=False)
+self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True)
+self.printAndSet("NumberOfPoints", self.readInt16(), hexdump=False)
+for i in range(self.NumberOfPoints):
+PointS(self, "aPoint%d" % i).dump()
+print('' % self.name)
+assert self.pos == dataPos + self.RecordSize * 2
 
 
 class SetTextJustification(WMFRecord):
@@ -1824,7 +1835,7 @@ RecordType = {
 0x0231: ['META_SETMAPPERFLAGS', SetMapperFlags],
 0x0234: ['META_SELECTPALETTE', SelectPalette],
 0x0324: ['META_POLYGON', Polygon],
-0x0325: ['META_POLYLINE', Polyline],
+0x0325: ['META_POLYLINE', PolyLine],
 0x020A: ['META_SETTEXTJUSTIFICATION', SetTextJustification],
 0x020B: ['META_SETWINDOWORG', SetWindowOrg],
 0x020C: ['META_SETWINDOWEXT', SetWindowExt],


[Libreoffice-commits] mso-dumper.git: msodumper/wmfrecord.py

2021-09-19 Thread Libreoffice Gerrit user
 msodumper/wmfrecord.py |  345 +
 1 file changed, 291 insertions(+), 54 deletions(-)

New commits:
commit b88b38cef5e42137edf8441325765a8ac35aa8c3
Author: Hossein 
AuthorDate: Mon Sep 20 01:18:20 2021 +0200
Commit: Hossein 
CommitDate: Mon Sep 20 01:26:04 2021 +0200

Added dump() for 17 wmf records in wmf-dump.py

Added dump() for 17 wmf records to complete the support for
test/wmf/pass/tdf88163.wmf file in wmf-dump.py. 58 records of wmf
still need dump().

List of records:

1.  SetMapMode
2.  SetPolyFillMode
3.  SetTextColor
4.  SetBkColor
5.  MoveTo
6.  Polygon
7.  SetWindowOrg
8.  SetWindowExt
9.  TextOut
10. PolyPolygon
11. SelectObject
12. DeleteObject
13. PenRecord
14. CreatePenIndirect
15. LogBrush
16. CreateBrushIndirect
17. EndOfFile

Change-Id: I1a3d2c30aa6bba01891662b8641a1213d3f5d16f
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/122333
Tested-by: Hossein 
Reviewed-by: Hossein 

diff --git a/msodumper/wmfrecord.py b/msodumper/wmfrecord.py
index cdc0581..272ba79 100644
--- a/msodumper/wmfrecord.py
+++ b/msodumper/wmfrecord.py
@@ -265,6 +265,17 @@ PaletteEntryFlag = {
 0x04: "PC_NOCOLLAPSE",
 }
 
+PitchFont = {
+0: "DEFAULT_PITCH",
+1: "FIXED_PITCH",
+2: "VARIABLE_PITCH",
+}
+
+PolyFillMode = {
+0x0001: "ALTERNATE",
+0x0002: "WINDING",
+}
+
 PostScriptCap = {
 -2: "PostScriptNotSet",
 0: "PostScriptFlatCap",
@@ -567,6 +578,26 @@ RasterPolishMap = {
 }
 
 
+PenStyle = {
+0x: "PS_COSMETIC",
+0x: "PS_ENDCAP_ROUND",
+0x: "PS_JOIN_ROUND",
+0x: "PS_SOLID",
+0x0001: "PS_DASH",
+0x0002: "PS_DOT",
+0x0003: "PS_DASHDOT",
+0x0004: "PS_DASHDOTDOT",
+0x0005: "PS_NULL",
+0x0006: "PS_INSIDEFRAME",
+0x0007: "PS_USERSTYLE",
+0x0008: "PS_ALTERNATE",
+0x0100: "PS_ENDCAP_SQUARE",
+0x0200: "PS_ENDCAP_FLAT",
+0x1000: "PS_JOIN_BEVEL",
+0x2000: "PS_JOIN_MITER",
+}
+
+
 class WMFStream(BinaryStream):
 def __init__(self, bytes):
 BinaryStream.__init__(self, bytes)
@@ -776,7 +807,7 @@ class PlaceableHeader(WMFRecord):
 self.printAndSet("HWmf", self.readuInt16())
 Rect(self, "BoundingBox").dump()
 self.printAndSet("Inch", self.readuInt16(), hexdump=False)
-self.printAndSet("Reserved", self.readuInt32())
+self.printAndSet("Reserved", self.readuInt32(), hexdump=False)
 self.printAndSet("Checksum", self.readuInt16())
 assert self.pos == dataPos + self.Size
 self.parent.pos = self.pos
@@ -834,7 +865,6 @@ class SetBkMode(WMFRecord):
 self.name = "setbkmode"
 
 def dump(self):
-pass
 dataPos = self.pos
 print('<%s type="SetBkMode">' % self.name)
 self.printAndSet("RecordSize", self.readuInt32(), hexdump=False)
@@ -848,12 +878,22 @@ class SetBkMode(WMFRecord):
 
 
 class SetMapMode(WMFRecord):
-def __init__(self, parent):
+"""The META_SETMAPMODE record is used to define the mapping mode in the 
playback device context."""
+def __init__(self, parent, name=None):
 WMFRecord.__init__(self, parent)
+if name:
+self.name = name
+else:
+self.name = "selectobject"
 
 def dump(self):
-print("")
-pass
+dataPos = self.pos
+print('<%s type="SetTextAlign">' % self.name)
+self.printAndSet("RecordSize", self.readuInt32(), hexdump=False)
+self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True)
+self.printAndSet("MapMode", self.readuInt16(), hexdump=False)
+print('' % self.name)
+assert self.pos == dataPos + self.RecordSize * 2
 
 
 class SetROP2(WMFRecord):
@@ -875,12 +915,24 @@ class SetRelAbs(WMFRecord):
 
 
 class SetPolyFillMode(WMFRecord):
-def __init__(self, parent):
+def __init__(self, parent, name=None):
 WMFRecord.__init__(self, parent)
+if name:
+self.name = name
+else:
+self.name = "setpolyfillmode"
 
 def dump(self):
-print("")
-pass
+dataPos = self.pos
+print('<%s type="SetPolyFillMode">' % self.name)
+self.printAndSet("RecordSize", self.readuInt32(), hexdump=False)
+self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True)
+self.printAndSet("PolyFillMode", self.readuInt16(), dict=PolyFillMode)
+# Check optional reserved value if the size shows that it exists
+if self.RecordSize == 5:
+self.printAndSet("Reserved", self.readuInt16(), hexdump=False)
+print('' % self.name)
+assert self.pos == dataPos + self.RecordSize * 2
 
 
 class SetStretchBltMode(WMFRecord):
@@ -937,40 +989,62 @@ class SetLayout(WMFRecord):
 pass
 
 
-class SetTextColor(WMFRecord):
-def __init__(self, parent):
-WMFReco

[Libreoffice-commits] mso-dumper.git: Makefile test/wmf

2021-09-11 Thread Libreoffice Gerrit user
 Makefile   |1 
 test/wmf/pass/TypeDetectionExample.wmf |binary
 test/wmf/pass/beef.wmf |binary
 test/wmf/pass/tdf88163.wmf |binary
 test/wmf/pass/vegetable.wmf|binary
 test/wmf/pass/visio_import_source.wmf  |binary
 test/wmf/test.py   |   46 +
 7 files changed, 47 insertions(+)

New commits:
commit db25622001241fda6f2a1c3a1cdff4bc79c6b65e
Author: Hossein 
AuthorDate: Sun Sep 12 00:31:38 2021 +0200
Commit: Hossein 
CommitDate: Sun Sep 12 00:43:37 2021 +0200

Add test and sample wmf files for wmf-dump.py

Added test.py similar to the test.py for emf files, and samples from the
LibreOffice Core source code and attachments from the Bugzilla. The test
is added to the Makefile, so that it is invoked with 'make check'.

To check:

cd test/wmf && ./test.py

Or simply:

make check

Change-Id: Ia2e819f48eae8cc4efc26411522ba1472bd19da4
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/121969
Tested-by: Hossein 
Reviewed-by: Hossein 

diff --git a/Makefile b/Makefile
index 39312bb..a57d4fb 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,7 @@
 check:
cd test/doc && ./test.py
cd test/emf && ./test.py
+   cd test/wmf && ./test.py
pycodestyle --ignore=E501 msodumper/binarystream.py
pycodestyle --ignore=E501 msodumper/msometa.py
pycodestyle --ignore=E501 doc-dump.py msodumper/doc*.py test/doc/test.py
diff --git a/test/wmf/pass/TypeDetectionExample.wmf 
b/test/wmf/pass/TypeDetectionExample.wmf
new file mode 100644
index 000..7ed7069
Binary files /dev/null and b/test/wmf/pass/TypeDetectionExample.wmf differ
diff --git a/test/wmf/pass/beef.wmf b/test/wmf/pass/beef.wmf
new file mode 100644
index 000..0947521
Binary files /dev/null and b/test/wmf/pass/beef.wmf differ
diff --git a/test/wmf/pass/tdf88163.wmf b/test/wmf/pass/tdf88163.wmf
new file mode 100644
index 000..edcab8a
Binary files /dev/null and b/test/wmf/pass/tdf88163.wmf differ
diff --git a/test/wmf/pass/vegetable.wmf b/test/wmf/pass/vegetable.wmf
new file mode 100644
index 000..364d122
Binary files /dev/null and b/test/wmf/pass/vegetable.wmf differ
diff --git a/test/wmf/pass/visio_import_source.wmf 
b/test/wmf/pass/visio_import_source.wmf
new file mode 100644
index 000..88deac9
Binary files /dev/null and b/test/wmf/pass/visio_import_source.wmf differ
diff --git a/test/wmf/test.py b/test/wmf/test.py
new file mode 100755
index 000..831125e
--- /dev/null
+++ b/test/wmf/test.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python3
+# -*- encoding: UTF-8 -*-
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+import sys
+sys.path.append(sys.path[0] + "/../..")
+wmf_dumper = __import__('wmf-dump')
+from xml.etree import ElementTree
+import unittest
+import os
+
+
+class Test(unittest.TestCase):
+def dump(self, name):
+try:
+os.unlink("%s.wmf.xml" % name)
+except OSError:
+pass
+sock = open("%s.wmf.xml" % name, "w")
+saved = sys.stdout
+sys.stdout = sock
+wmf_dumper.main(["wmf-dumper", "%s.wmf" % name])
+sys.stdout = saved
+sock.close()
+tree = ElementTree.parse('%s.wmf.xml' % name)
+self.root = tree.getroot()
+# Make sure everything is dumped - so it can't happen that dump(a) == 
dump(b), but a != b.
+self.assertEqual(0, len(self.root.findall('todo')))
+
+def test_pass(self):
+"""This test just makes sure that all files in the 'pass' directory are
+dumped without problems."""
+
+for dirname, dirnames, filenames in os.walk('pass'):
+for filename in filenames:
+if filename.endswith(".wmf"):
+self.dump(os.path.join(dirname, filename).replace('.wmf', 
''))
+
+if __name__ == '__main__':
+unittest.main()
+
+# vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:


[Libreoffice-commits] mso-dumper.git: msodumper/wmfrecord.py

2021-09-11 Thread Libreoffice Gerrit user
 msodumper/wmfrecord.py |   98 -
 1 file changed, 89 insertions(+), 9 deletions(-)

New commits:
commit e4a481e77c913710c0bb3b59b0749e99fdc1470a
Author: Hossein 
AuthorDate: Sat Sep 11 23:59:28 2021 +0200
Commit: Hossein 
CommitDate: Sun Sep 12 00:05:13 2021 +0200

Dump CreateFontIndirect, SetBkMode and SetTextAlign

The dump() methods for CreateFontIndirect (and also Font), SetBkMode
and SetTextAlign are implemented.

Change-Id: Ic15b4cee44f4eb28bef61f21b0ecf2025e03b4fd
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/121968
Tested-by: Hossein 
Reviewed-by: Hossein 

diff --git a/msodumper/wmfrecord.py b/msodumper/wmfrecord.py
index feb9d24..cdc0581 100644
--- a/msodumper/wmfrecord.py
+++ b/msodumper/wmfrecord.py
@@ -594,7 +594,7 @@ class WMFStream(BinaryStream):
 # META_EOF
 if type == "META_EOF":
 break
-if self.pos + size * 2 <= self.size:
+if (self.pos + size * 2) <= self.size:
 self.pos += size * 2
 else:
 print('')
@@ -823,12 +823,28 @@ class SetPaletteEntries(WMFRecord):
 
 
 class SetBkMode(WMFRecord):
-def __init__(self, parent):
+"""The SetBkMode record is used to define the background raster operation
+   mix mode (pens, text, hatched brushes, and inside of filled objects
+   with background colors)"""
+def __init__(self, parent, name=None):
 WMFRecord.__init__(self, parent)
+if name:
+self.name = name
+else:
+self.name = "setbkmode"
 
 def dump(self):
-print("")
 pass
+dataPos = self.pos
+print('<%s type="SetBkMode">' % self.name)
+self.printAndSet("RecordSize", self.readuInt32(), hexdump=False)
+self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True)
+self.printAndSet("BkMode", self.readuInt16(), hexdump=False)
+# Check optional reserved value if the size shows that it exists
+if self.RecordSize == 5:
+self.printAndSet("Reserved", self.readuInt16(), hexdump=False)
+print('' % self.name)
+assert self.pos == dataPos + self.RecordSize * 2
 
 
 class SetMapMode(WMFRecord):
@@ -1336,12 +1352,25 @@ class SelectObject(WMFRecord):
 
 
 class SetTextAlign(WMFRecord):
-def __init__(self, parent):
+"""The SetTextAlign record is used to define the text alignment"""
+def __init__(self, parent, name=None):
 WMFRecord.__init__(self, parent)
+if name:
+self.name = name
+else:
+self.name = "settextalign"
 
 def dump(self):
-print("")
-pass
+dataPos = self.pos
+print('<%s type="SetTextAlign">' % self.name)
+self.printAndSet("RecordSize", self.readuInt32(), hexdump=False)
+self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True)
+self.printAndSet("TextAlignmentMode", self.readuInt16(), hexdump=False)
+# Check optional reserved value if the size shows that it exists
+if self.RecordSize == 5:
+self.printAndSet("Reserved", self.readuInt16(), hexdump=False)
+print('' % self.name)
+assert self.pos == dataPos + self.RecordSize * 2
 
 
 class Arc(WMFRecord):
@@ -1453,12 +1482,63 @@ class CreatePenIndirect(WMFRecord):
 
 
 class CreateFontIndirect(WMFRecord):
-def __init__(self, parent):
+"""The CreateFontIndirect record is used to create a font object"""
+def __init__(self, parent, name=None):
 WMFRecord.__init__(self, parent)
+if name:
+self.name = name
+else:
+self.name = "createfontindirect"
 
 def dump(self):
-print("")
-pass
+dataPos = self.pos
+print('<%s type="CreateFontIndirect">' % self.name)
+self.printAndSet("RecordSize", self.readuInt32(), hexdump=False)
+self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True)
+# Check optional reserved value if the size shows that it exists
+if self.RecordSize > 3:
+Font(self, "Font").dump()
+print('' % self.name)
+# RecordSize is described in words, so we should double for bytes
+assert self.pos == dataPos + self.RecordSize * 2
+
+
+class Font(WMFRecord):
+"""The Font object describes a logical font and its attributes"""
+def __init__(self, parent, name=None):
+WMFRecord.__init__(self, parent)
+if name:
+self.name = name
+else:
+self.name = "Font"
+
+def dump(self):
+dataPos = self.pos
+print('<%s type="Font">' % self.name)
+self.printAndSet("Height", self.readInt16(), hexdump=False)
+self.printAndSet("Width", self.readInt16(), hexdump=False)
+self.printAndSet("Escapement", self.readInt16(), hexdump=False)
+self.printAndSet("Orientati

[Libreoffice-commits] mso-dumper.git: msodumper/wmfrecord.py

2021-09-11 Thread Libreoffice Gerrit user
 msodumper/wmfrecord.py |  827 -
 1 file changed, 750 insertions(+), 77 deletions(-)

New commits:
commit b641e7b062b86e4c9b5f19c1819cf2ebceee4ab8
Author: Hossein 
AuthorDate: Sat Sep 11 21:49:37 2021 +0200
Commit: Hossein 
CommitDate: Sat Sep 11 21:56:24 2021 +0200

Added classes with empty dump for all wmf records

Added classes for all the wmf records according to the function names
in GDI. Checked all the names to be compliant with Wine and MS
documents.

The dump() functions for ~70 classes will be completed later.

Change-Id: I9893cc1db933b09916d0fa5d73bad39526b2
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/121965
Tested-by: Hossein 
Reviewed-by: Hossein 

diff --git a/msodumper/wmfrecord.py b/msodumper/wmfrecord.py
index 96cdca1..feb9d24 100644
--- a/msodumper/wmfrecord.py
+++ b/msodumper/wmfrecord.py
@@ -6,6 +6,7 @@
 #
 
 from .binarystream import BinaryStream
+import base64
 
 PlaceableKey = {
 0x9ac6cdd7: "META_PLACEABLE",
@@ -629,7 +630,6 @@ class Rect(WMFRecord):
 
 class RectL(WMFRecord):
 """The RectL Object defines a rectangle."""
-
 def __init__(self, parent, name=None):
 WMFRecord.__init__(self, parent)
 if name:
@@ -649,7 +649,6 @@ class RectL(WMFRecord):
 
 class SizeL(WMFRecord):
 """The SizeL Object defines a rectangle."""
-
 def __init__(self, parent, name=None):
 WMFRecord.__init__(self, parent)
 if name:
@@ -667,7 +666,6 @@ class SizeL(WMFRecord):
 
 class PointL(WMFRecord):
 """The PointL Object defines the coordinates of a point."""
-
 def __init__(self, parent, name=None):
 WMFRecord.__init__(self, parent)
 if name:
@@ -685,7 +683,6 @@ class PointL(WMFRecord):
 
 class PointS(WMFRecord):
 """The PointS Object defines the x- and y-coordinates of a point."""
-
 def __init__(self, parent, name):
 WMFRecord.__init__(self, parent)
 self.name = name
@@ -700,7 +697,6 @@ class PointS(WMFRecord):
 
 class ColorRef(WMFRecord):
 """The ColorRef Object defines the RGB color."""
-
 def __init__(self, parent, name):
 WMFRecord.__init__(self, parent)
 self.name = name
@@ -715,7 +711,7 @@ class ColorRef(WMFRecord):
 self.parent.pos = self.pos
 
 
-class WMFLineto(WMFRecord):
+class Lineto(WMFRecord):
 """Draws a line from the current position up to, but not including, the
 specified point."""
 def __init__(self, parent):
@@ -794,7 +790,7 @@ class PlaceableHeader(WMFRecord):
 return False
 
 
-class WmfSetviewportorgex(WMFRecord):
+class Setviewportorgex(WMFRecord):
 """Defines the viewport origin."""
 
 def __init__(self, parent):
@@ -808,78 +804,755 @@ class WmfSetviewportorgex(WMFRecord):
 assert self.pos - posOrig == self.Size
 
 
-"""The RecordType enumeration defines values that uniquely identify EMF 
records."""
+class RealizePalette(WMFRecord):
+def __init__(self, parent):
+WMFRecord.__init__(self, parent)
+
+def dump(self):
+print("")
+pass
+
+
+class SetPaletteEntries(WMFRecord):
+def __init__(self, parent):
+WMFRecord.__init__(self, parent)
+
+def dump(self):
+print("")
+pass
+
+
+class SetBkMode(WMFRecord):
+def __init__(self, parent):
+WMFRecord.__init__(self, parent)
+
+def dump(self):
+print("")
+pass
+
+
+class SetMapMode(WMFRecord):
+def __init__(self, parent):
+WMFRecord.__init__(self, parent)
+
+def dump(self):
+print("")
+pass
+
+
+class SetROP2(WMFRecord):
+def __init__(self, parent):
+WMFRecord.__init__(self, parent)
+
+def dump(self):
+print("")
+pass
+
+
+class SetRelAbs(WMFRecord):
+def __init__(self, parent):
+WMFRecord.__init__(self, parent)
+
+def dump(self):
+print("")
+pass
+
+
+class SetPolyFillMode(WMFRecord):
+def __init__(self, parent):
+WMFRecord.__init__(self, parent)
+
+def dump(self):
+print("")
+pass
+
+
+class SetStretchBltMode(WMFRecord):
+def __init__(self, parent):
+WMFRecord.__init__(self, parent)
+
+def dump(self):
+print("")
+pass
+
+
+class SetTextCharacterExtra(WMFRecord):
+def __init__(self, parent):
+WMFRecord.__init__(self, parent)
+
+def dump(self):
+print("")
+pass
+
+
+class RestoreDC:
+def __init__(self, parent):
+WMFRecord.__init__(self, parent)
+
+def dump(self):
+print("")
+pass
+
+
+class ResizePalette(WMFRecord):
+def __init__(self, parent):
+WMFRecord.__init__(self, parent)
+
+def dump(self):
+print("")
+pass
+
+
+class CreateDIBPatternBrush(WMFRecord):
+def __init__(self, parent):
+WMFRecord.__init__(self, parent)
+
+def dump(self):
+print("")
+pass
+
+
+class SetLayout(WMFR

[Libreoffice-commits] mso-dumper.git: convert-enum.py Makefile msodumper/wmfrecord.py

2021-09-11 Thread Libreoffice Gerrit user
 Makefile   |1 
 convert-enum.py|   46 
 msodumper/wmfrecord.py |  272 -
 3 files changed, 315 insertions(+), 4 deletions(-)

New commits:
commit 9d706a8f4a0d35a2b11ff1f67b401af05926241a
Author: Hossein 
AuthorDate: Sat Sep 11 16:08:15 2021 +0200
Commit: Hossein 
CommitDate: Sat Sep 11 16:13:03 2021 +0200

Added all the enums from the wmf docs

All the enumerations used for the WMF files as described in [MS-WMF]
v20210625 (protocol revision 17.0) are added, except those that were
already existing.
The convert-enum.py script converts the C-style enums to Python
dictionaries that are used in the Python code.

Change-Id: Ia12f4e326e927d21f17ef9e2fb6729e63e1e33e3
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/121943
Tested-by: Hossein 
Reviewed-by: Hossein 

diff --git a/Makefile b/Makefile
index 9193c41..39312bb 100644
--- a/Makefile
+++ b/Makefile
@@ -9,3 +9,4 @@ check:
pycodestyle --ignore=E501 swlaycache-dump.py 
msodumper/swlaycacherecord.py
pycodestyle --ignore=E501 ole1-dump.py msodumper/ole1record.py
pycodestyle --ignore=E501 ole2preview-dump.py 
msodumper/ole2previewrecord.py
+   pycodestyle --ignore=E501 convert-enum.py
diff --git a/convert-enum.py b/convert-enum.py
new file mode 100755
index 000..0a1cae0
--- /dev/null
+++ b/convert-enum.py
@@ -0,0 +1,46 @@
+#!/usr/bin/env python3
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+#
+# This is a simple script to convert C enum from documentation to the
+# Dict that is used in the Python code
+#
+# Example input:
+# ---
+# typedef enum
+# {
+# BLACKONWHITE = 0x0001,
+# WHITEONBLACK = 0x0002,
+# COLORONCOLOR = 0x0003,
+# HALFTONE = 0x0004
+# } StretchMode;
+# ---
+#
+# Example output:
+# ---
+# StretchMode = {
+# 0x0001: "BLACKONWHITE",
+# 0x0002: "WHITEONBLACK",
+# 0x0003: "COLORONCOLOR",
+# 0x0004: "HALFTONE",
+# }
+# ---
+
+import sys
+
+result = ""
+for line in sys.stdin:
+word = line.split()
+if len(word) == 0 or word[0] == "{" or word[0] == "enum":
+continue
+elif word[0] == "}":
+name = word[1].replace(";", "")
+result = name + " = {\n" + result
+elif len(word) == 3:
+enum = word[2].replace(",", "")
+result += ("" + enum + ": \"" + word[0] + "\",\n")
+result += "}"
+print(result)
diff --git a/msodumper/wmfrecord.py b/msodumper/wmfrecord.py
index 2294301..96cdca1 100644
--- a/msodumper/wmfrecord.py
+++ b/msodumper/wmfrecord.py
@@ -11,9 +11,33 @@ PlaceableKey = {
 0x9ac6cdd7: "META_PLACEABLE",
 }
 
-FileType = {
-0x00: "Memory",
-0x01: "Disk",
+BinaryRasterOperation = {
+0x0001: "R2_BLACK",
+0x0002: "R2_NOTMERGEPEN",
+0x0003: "R2_MASKNOTPEN",
+0x0004: "R2_NOTCOPYPEN",
+0x0005: "R2_MASKPENNOT",
+0x0006: "R2_NOT",
+0x0007: "R2_XORPEN",
+0x0008: "R2_NOTMASKPEN",
+0x0009: "R2_MASKPEN",
+0x000A: "R2_NOTXORPEN",
+0x000B: "R2_NOP",
+0x000C: "R2_MERGENOTPEN",
+0x000D: "R2_COPYPEN",
+0x000E: "R2_MERGEPENNOT",
+0x000F: "R2_MERGEPEN",
+0x0010: "R2_WHITE",
+}
+
+BitCount = {
+0x: "BI_BITCOUNT_0",
+0x0001: "BI_BITCOUNT_1",
+0x0004: "BI_BITCOUNT_2",
+0x0008: "BI_BITCOUNT_3",
+0x0010: "BI_BITCOUNT_4",
+0x0018: "BI_BITCOUNT_5",
+0x0020: "BI_BITCOUNT_6",
 }
 
 # The BrushStyle Enumeration specifies the different possible brush types that 
can be used in graphics operations.
@@ -30,6 +54,81 @@ BrushStyle = {
 0x0009: "BS_MONOPATTERN"
 }
 
+CharacterSet = {
+0x0001: "DEFAULT_CHARSET",
+0x0002: "SYMBOL_CHARSET",
+0x004D: "MAC_CHARSET",
+0x0080: "SHIFTJIS_CHARSET",
+0x0081: "HANGUL_CHARSET",
+0x0082: "JOHAB_CHARSET",
+0x0086: "GB2312_CHARSET",
+0x0088: "CHINESEBIG5_CHARSET",
+0x00A1: "GREEK_CHARSET",
+0x00A2: "TURKISH_CHARSET",
+0x00A3: "VIETNAMESE_CHARSET",
+0x00B1: "HEBREW_CHARSET",
+0x00B2: "ARABIC_CHARSET",
+0x00BA: "BALTIC_CHARSET",
+0x00CC: "RUSSIAN_CHARSET",
+0x00DE: "THAI_CHARSET",
+0x00EE: "EASTEUROPE_CHARSET",
+0x00FF: "OEM_CHARSET",
+}
+
+ColorUsage = {
+0x: "DIB_RGB_COLORS",
+0x0001: "DIB_PAL_COLORS",
+0x0002: "DIB_PAL_INDICES",
+}
+
+Compression = {
+0x: "BI_RGB",
+0x0001: "BI_RLE8",
+0x0002: "BI_RLE4",
+0x0003: "BI_BITFIELDS",
+0x0004: "BI_JPEG",
+0x0005: "BI_PNG",
+0x000B: "BI_CMYK",
+0x000C: "BI_CMYKRLE8",
+0x000D: "BI_CMYKRLE4",
+}
+
+FamilyFont = {
+0x00: "FF_DONTCARE",
+0x01: "FF_ROMAN",
+0x02: "FF_SWISS",
+0x03: "FF_MODERN",
+0x04: "FF_SCRIPT",
+0x05: "FF_DECORATIVE

[Libreoffice-commits] mso-dumper.git: msodumper/emfrecord.py msodumper/wmfrecord.py wmf-dump.py

2021-09-08 Thread Libreoffice Gerrit user
 msodumper/emfrecord.py |   11 +-
 msodumper/wmfrecord.py |  237 -
 wmf-dump.py|   31 ++
 3 files changed, 275 insertions(+), 4 deletions(-)

New commits:
commit 77a03bd26e4076553ad3ea0972c64488baa467da
Author: Hossein 
AuthorDate: Wed Sep 8 23:13:17 2021 +0200
Commit: Hossein 
CommitDate: Wed Sep 8 23:27:41 2021 +0200

Add preliminary wmf support and minor cleanups

* Added "wmf-dump.py" and preliminary support for dumping header/data
  from wmf files in msodumper/wmfrecord.py
* Most of the records have data shown as  for now. Should be
  completed later
* Changed msodumper/wmfrecord.py and msodumper/emfrecord.py to
  handle wmf and emf files with unexpected end of file
* Changed msodumper/wmfrecord.py and msodumper/emfrecord.py to
  handle invalid values for the fields
* Tested to work (at least do not cause exception) for all the wmf
  and most of the emf files found inside LibreOffice core repository

Change-Id: Ia067961d006c9dc543e521ad64509b03b8454a80
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/121833
Tested-by: Hossein 
Reviewed-by: Hossein 

diff --git a/msodumper/emfrecord.py b/msodumper/emfrecord.py
index 7d7be0a..ca4b022 100644
--- a/msodumper/emfrecord.py
+++ b/msodumper/emfrecord.py
@@ -65,7 +65,7 @@ class EMFStream(BinaryStream):
 emrHeader.dump()
 for i in range(emrHeader.header.Records):
 id = self.getuInt32()
-record = RecordType[id]
+record = RecordType.get(id, ["INVALID"])
 type = record[0]
 size = self.getuInt32(pos=self.pos + 4)
 # EmrHeader is already dumped
@@ -77,7 +77,14 @@ class EMFStream(BinaryStream):
 else:
 print('')
 print('')
-self.pos += size
+# EMR_EOF
+if type == "EMR_EOF":
+break
+if self.pos + size <= self.size:
+self.pos += size
+else:
+print('')
+break
 print('')
 
 
diff --git a/msodumper/wmfrecord.py b/msodumper/wmfrecord.py
index 1d7b1fa..2294301 100644
--- a/msodumper/wmfrecord.py
+++ b/msodumper/wmfrecord.py
@@ -7,6 +7,14 @@
 
 from .binarystream import BinaryStream
 
+PlaceableKey = {
+0x9ac6cdd7: "META_PLACEABLE",
+}
+
+FileType = {
+0x00: "Memory",
+0x01: "Disk",
+}
 
 # The BrushStyle Enumeration specifies the different possible brush types that 
can be used in graphics operations.
 BrushStyle = {
@@ -22,7 +30,6 @@ BrushStyle = {
 0x0009: "BS_MONOPATTERN"
 }
 
-
 # The HatchStyle Enumeration specifies the hatch pattern.
 HatchStyle = {
 0x: "HS_HORIZONTAL",
@@ -33,7 +40,6 @@ HatchStyle = {
 0x0005: "HS_DIAGCROSS"
 }
 
-
 # No idea what's the proper name of this thing, see
 # http://msdn.microsoft.com/en-us/library/dd145130%28VS.85%29.aspx
 RasterPolishMap = {
@@ -296,6 +302,41 @@ RasterPolishMap = {
 }
 
 
+class WMFStream(BinaryStream):
+def __init__(self, bytes):
+BinaryStream.__init__(self, bytes)
+
+def dump(self):
+print('' % self.size)
+wmfHeader = WmfHeader(self)
+wmfHeader.dump()
+
+MAXIMUM_RECORDS = 10
+for i in range(1, MAXIMUM_RECORDS):
+size = self.getuInt32()
+id = self.getuInt16(pos=self.pos + 4)
+record = RecordType.get(id, ["INVALID"])
+type = record[0]
+# WmfHeader is already dumped
+if i:
+print('' % (i, type))
+if len(record) > 1:
+handler = record[1](self)
+handler.dump()
+else:
+print('')
+print('')
+# META_EOF
+if type == "META_EOF":
+break
+if self.pos + size * 2 <= self.size:
+self.pos += size * 2
+else:
+print('')
+break
+print('')
+
+
 class WMFRecord(BinaryStream):
 def __init__(self, parent):
 BinaryStream.__init__(self, parent.bytes)
@@ -303,8 +344,28 @@ class WMFRecord(BinaryStream):
 self.pos = parent.pos
 
 
+class Rect(WMFRecord):
+"""The Rect Object defines a rectangle."""
+def __init__(self, parent, name=None):
+WMFRecord.__init__(self, parent)
+if name:
+self.name = name
+else:
+self.name = "rect"
+
+def dump(self):
+print('<%s type="Rect">' % self.name)
+self.printAndSet("Left", self.readInt16(), hexdump=False)
+self.printAndSet("Top", self.readInt16(), hexdump=False)
+self.printAndSet("Right", self.readInt16(), hexdump=False)
+self.printAndSet("Bottom", self.readInt16(), hexdump=False)
+print('' % self.name)
+self.parent.pos = self.pos
+
+
 class RectL(WMFRecord):
 """T

[Libreoffice-commits] mso-dumper.git: compress.py decompress.py doc-dump.py emf-dump.py .gitignore Makefile msodumper/binarystream.py msodumper/docrecord.py msodumper/docsprm.py msodumper/docstream.py

2021-09-05 Thread Libreoffice Gerrit user
 .gitignore|1 +
 Makefile  |7 ---
 compress.py   |2 +-
 decompress.py |2 +-
 doc-dump.py   |2 +-
 emf-dump.py   |3 ++-
 msodumper/binarystream.py |2 +-
 msodumper/docrecord.py|6 +++---
 msodumper/docsprm.py  |2 +-
 msodumper/docstream.py|4 ++--
 msodumper/emfrecord.py|2 +-
 msodumper/msometa.py  |2 +-
 msodumper/oletool.py  |2 +-
 msodumper/vsdstream.py|2 +-
 msodumper/wmfrecord.py|2 +-
 msodumper/xmlpp.py|2 +-
 ppt-dump.py   |2 +-
 test/doc/test.py  |5 +++--
 test/emf/test.py  |2 +-
 test/vsd-test.py  |2 +-
 test/xls/test.py  |2 +-
 vbadump.py|2 +-
 vsd-dump.py   |2 +-
 xls-dump.py   |2 +-
 24 files changed, 33 insertions(+), 29 deletions(-)

New commits:
commit 684a25f0b19723337b9aedd765565b72ede89e91
Author: Hossein 
AuthorDate: Sat Sep 4 00:35:38 2021 +0200
Commit: Miklos Vajna 
CommitDate: Mon Sep 6 08:58:34 2021 +0200

Fix code to work with Python 3.8 and 3.9

* env python2 → python3
* Fixed problems with concatenation of str and bytes
* Removed \x00 from font names, so that the 'make check' tests pass
* Improved Makefile to work without {} that lead to 'file not found'
  in some situations
* 'make check' passes for Python 3.8 and 3.9

This is the error before the fix:

$ python3.8 ./doc-dump.py test/doc/fonts.doc
Traceback (most recent call last):
  File "./doc-dump.py", line 43, in 
main(sys.argv)
  File "./doc-dump.py", line 39, in main
dumper.dump()
  File "./doc-dump.py", line 23, in dump
strm = docstream.createDOCFile(file.read(), self.params)
  File "mso-dumper/msodumper/docstream.py", line 131, in createDOCFile
return GsfDOCFile(chars, params, gsf)
  File "mso-dumper/msodumper/docstream.py", line 75, in __init__
DOCFile.__init__(self, chars, params)
  File "mso-dumper/msodumper/docstream.py", line 29, in __init__
self.initWW8()
  File "mso-dumper/msodumper/docstream.py", line 107, in initWW8
childData += ctypes.string_at(self.gsf.gsf_input_read(child, bufSize, 
None), bufSize)
TypeError: can only concatenate str (not "bytes") to str

Change-Id: I804e2973b283a435a03ab55b258b7db5b9372693
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/121617
Tested-by: Miklos Vajna 
Reviewed-by: Miklos Vajna 

diff --git a/.gitignore b/.gitignore
index d18402d..3d2c1c6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 *.pyc
 .*.swp
+*.xml
diff --git a/Makefile b/Makefile
index 0cb047e..9193c41 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,10 @@
 check:
cd test/doc && ./test.py
cd test/emf && ./test.py
-   pycodestyle --ignore=E501 msodumper/{binarystream,msometa}.py
-   pycodestyle --ignore=E501 doc-dump.py 
msodumper/doc{record,sprm,stream}.py test/doc/test.py
-   pycodestyle --ignore=E501 emf-dump.py msodumper/{emf,wmf}record.py
+   pycodestyle --ignore=E501 msodumper/binarystream.py
+   pycodestyle --ignore=E501 msodumper/msometa.py
+   pycodestyle --ignore=E501 doc-dump.py msodumper/doc*.py test/doc/test.py
+   pycodestyle --ignore=E501 emf-dump.py msodumper/*mfrecord.py
pycodestyle --ignore=E501 vsd-dump.py msodumper/vsdstream.py 
test/vsd-test.py
pycodestyle --ignore=E501 swlaycache-dump.py 
msodumper/swlaycacherecord.py
pycodestyle --ignore=E501 ole1-dump.py msodumper/ole1record.py
diff --git a/compress.py b/compress.py
index e6b7ed7..3797246 100755
--- a/compress.py
+++ b/compress.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python3
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
diff --git a/decompress.py b/decompress.py
index cb2264c..52ab049 100755
--- a/decompress.py
+++ b/decompress.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python3
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
diff --git a/doc-dump.py b/doc-dump.py
index 164ea1c..9ddeb79 100755
--- a/doc-dump.py
+++ b/doc-dump.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python3
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
diff --git a/emf-dump.py b/emf-dump.py
index 614156a..7a900c6 100755
--- a/emf-dump.py
+++ b/emf-dump.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python3
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -8,6 +8,7 @@
 from msodumper i

[Libreoffice-commits] mso-dumper.git: msodumper/binarystream.py

2021-09-03 Thread Libreoffice Gerrit user
 msodumper/binarystream.py |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 0ffc7eac2596ff590eb7c7612940c7d785fea167
Author: Hossein 
AuthorDate: Thu Sep 2 20:12:41 2021 +0200
Commit: Miklos Vajna 
CommitDate: Fri Sep 3 13:59:32 2021 +0200

Handling exception on invalid values of the fields

There are situations where a field has an invalid value. In such a
case, an exception is occurs, the program halts execution, and the
output will be incomplete.

With this fix, if a key is not found for the dict, name="INVALID"
will be use in the output XML.

This is an example execution for attachment 171572 from tdf#142021
, "EMF with PolyfillMode set to 0 before the bottom star record"

PolygonFillMode can be either 1 or 2, but the field value has the
value of 0.

PolygonFillMode = {
0x01: "ALTERNATE",
0x02: "WINDING"
}

$ /opt/libreoffice7.2/program/python ./emf-dump.py star_pfm0.emf

Traceback (most recent call last):
  File "./emf-dump.py", line 29, in 
main(sys.argv)
  File "./emf-dump.py", line 25, in main
dumper.dump()
  File "./emf-dump.py", line 20, in dump
strm.dump()
  File "msodumper/emfrecord.py", line 76, in dump
handler.dump()
  File "msodumper/emfrecord.py", line 400, in dump
self.printAndSet("PolygonFillMode", self.readuInt32(), 
dict=PolygonFillMode)
  File "msodumper/binarystream.py", line 32, in printAndSet
attrs += ' name="%s"' % dict[value]
KeyError: 0

Change-Id: Id965ba0c47eace3029dd5fa12266f1a144eee41e
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/121529
Tested-by: Miklos Vajna 
Reviewed-by: Miklos Vajna 

diff --git a/msodumper/binarystream.py b/msodumper/binarystream.py
index bdd8f37..4946a45 100644
--- a/msodumper/binarystream.py
+++ b/msodumper/binarystream.py
@@ -29,7 +29,7 @@ class BinaryStream:
 attrs = ""
 if dict:
 if value in dict or default is None:
-attrs += ' name="%s"' % dict[value]
+attrs += ' name="%s"' % dict.get(value, "INVALID")
 else:
 attrs += ' name="%s"' % default
 if hexdump and type(value) != float:


[Libreoffice-commits] mso-dumper.git: emf-dump.py msodumper/emfrecord.py

2021-09-02 Thread Libreoffice Gerrit user
 emf-dump.py|3 ---
 msodumper/emfrecord.py |3 ++-
 2 files changed, 2 insertions(+), 4 deletions(-)

New commits:
commit 9fab31d1f5cfb6e054da87082f9e77d29e150c9b
Author: Hossein 
AuthorDate: Thu Sep 2 14:31:42 2021 +0200
Commit: Hossein 
CommitDate: Thu Sep 2 17:01:42 2021 +0430

Fix emf-dump to work with Python 3.8

Using update() method instead of + operator for dict items

After running with

/opt/libreoffice7.2/program/python ./emf-dump.py test.emf

This error was shown:

Traceback (most recent call last):
  File "./emf-dump.py", line 8, in 
from msodumper import emfrecord
  File "msodumper/emfrecord.py", line 139, in 
HatchStyle = dict(wmfrecord.HatchStyle.items() + EmfHatchStyle.items())
TypeError: unsupported operand type(s) for +: 'dict_items' and 'dict_items'

Also, in Python 3, the default encoding is utf-8, so using
sys.setdefaultencoding("utf-8") is not needed/encouraged.

diff --git a/emf-dump.py b/emf-dump.py
index c40f101..614156a 100755
--- a/emf-dump.py
+++ b/emf-dump.py
@@ -7,9 +7,6 @@
 
 from msodumper import emfrecord
 import sys
-sys = reload(sys)
-sys.setdefaultencoding("utf-8")
-
 
 class EMFDumper:
 def __init__(self, filepath):
diff --git a/msodumper/emfrecord.py b/msodumper/emfrecord.py
index 59424c0..61b7eb6 100644
--- a/msodumper/emfrecord.py
+++ b/msodumper/emfrecord.py
@@ -136,7 +136,8 @@ EmfHatchStyle = {
 0x000A: "HS_SOLIDBKCLR",
 0x000B: "HS_DITHEREDBKCLR"
 }
-HatchStyle = dict(wmfrecord.HatchStyle.items() + EmfHatchStyle.items())
+HatchStyle = dict(wmfrecord.HatchStyle.items())
+HatchStyle.update(dict(EmfHatchStyle.items()))
 
 
 class LogBrushEx(EMFRecord):


[Libreoffice-commits] libcdr.git: src/lib

2021-04-14 Thread Libreoffice Gerrit user
 src/lib/CDRContentCollector.cpp |7 +++
 1 file changed, 7 insertions(+)

New commits:
commit b14f6a1f17652aa842b23c66236610aea5233aa6
Author: Andrey Sobolev 
AuthorDate: Wed Sep 23 00:02:16 2020 +0500
Commit: Fridrich Štrba 
CommitDate: Wed Apr 14 20:06:28 2021 +0200

tdf#98994 Fixes parsing CDR7 files with no bbox surrounding text objects

As of now, libcdr gets the coordinates of a text object from the 
BoundingBox (bbox entry)
corresponding to the object. However, there are certain CDR version 700 
files that do not contain
bounding boxes for text objects. In this case the coordinates of the text 
object can be found from
the transform (trfd entry) for the text object. This commit provides the 
coordinates from trfd if
the bbox coordinates of the object are 0 (the case with no bbox).

Change-Id: I68a7aefbb8a8e2b24466f9dd3fd5e460e28ad9e7

diff --git a/src/lib/CDRContentCollector.cpp b/src/lib/CDRContentCollector.cpp
index f1a5817..46e2fa6 100644
--- a/src/lib/CDRContentCollector.cpp
+++ b/src/lib/CDRContentCollector.cpp
@@ -452,6 +452,13 @@ void libcdr::CDRContentCollector::_flushCurrentPath()
 x2 = m_currentBBox.getMinX() + m_currentBBox.getWidth();
   }
 }
+else if (!m_currentTransforms.empty())
+{
+  x1 = m_currentTransforms.getTranslateX();
+  y1 = m_currentTransforms.getTranslateY();
+  x2 = x1;
+  y2 = y1;
+}
 
 CDRTransform tmpTrafo(1.0, 0.0, -m_page.offsetX, 0.0, 1.0, 
-m_page.offsetY);
 tmpTrafo.applyToPoint(x1, y1);
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2021-03-29 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp|   10 +-
 src/lib/CMXParser.cpp|   18 +-
 src/lib/libcdr_utils.cpp |   16 
 3 files changed, 22 insertions(+), 22 deletions(-)

New commits:
commit 65a34c0b3fc58d8d7e209ad71af84a03802ab579
Author: Fridrich Štrba 
AuthorDate: Mon Mar 29 11:53:16 2021 +0200
Commit: Fridrich Štrba 
CommitDate: Mon Mar 29 11:53:16 2021 +0200

debug build with maximum werror

Change-Id: I09a451d7841ef049bbefb399a7319df4167952b0

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 1488a13..68f0ab8 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -2211,7 +2211,7 @@ void 
libcdr::CDRParser::readStlt(librevenge::RVNGInputStream *input, unsigned le
 const unsigned fillSize = 3 * 4 + (m_version >= 1300 ? 48 : 0);
 if (numFills > getRemainingLength(input) / fillSize)
   numFills = getRemainingLength(input) / fillSize;
-CDR_DEBUG_MSG(("CDRParser::readStlt numFills 0x%x\n", numFills));
+CDR_DEBUG_MSG(("CDRParser::readStlt numFills 0x%lx\n", numFills));
 std::map fillIds;
 for (unsigned long i=0; i getRemainingLength(input) / 12)
   numOutls = getRemainingLength(input) / 12;
-CDR_DEBUG_MSG(("CDRParser::readStlt numOutls 0x%x\n", numOutls));
+CDR_DEBUG_MSG(("CDRParser::readStlt numOutls 0x%lx\n", numOutls));
 std::map outlIds;
 for (unsigned long i=0; i getRemainingLength(input) / fontsSize)
   numFonts = getRemainingLength(input) / fontsSize;
-CDR_DEBUG_MSG(("CDRParser::readStlt numFonts 0x%x\n", numFonts));
+CDR_DEBUG_MSG(("CDRParser::readStlt numFonts 0x%lx\n", numFonts));
 std::map fontIds, fontEncodings;
 std::map fontSizes;
 for (unsigned long i=0; i getRemainingLength(input) / 12)
   numAligns = getRemainingLength(input) / 12;
 std::map aligns;
-CDR_DEBUG_MSG(("CDRParser::readStlt numAligns 0x%x\n", numAligns));
+CDR_DEBUG_MSG(("CDRParser::readStlt numAligns 0x%lx\n", numAligns));
 for (unsigned long i=0; i getRemainingLength(input) / indentSize)
   numIndents = getRemainingLength(input) / indentSize;
 std::map rightIndents, firstIndents, leftIndents;
-CDR_DEBUG_MSG(("CDRParser::readStlt numIndents 0x%x\n", numIndents));
+CDR_DEBUG_MSG(("CDRParser::readStlt numIndents 0x%lx\n", numIndents));
 for (unsigned long i=0; itell() + length;
 
-CDR_DEBUG_MSG(("Record: level %u %s, length: 0x%.8x (%u)\n", level, 
toFourCC(fourCC), length, length));
+CDR_DEBUG_MSG(("Record: level %u %s, length: 0x%.8lx (%lu)\n", level, 
toFourCC(fourCC), length, length));
 
 if (fourCC == CDR_FOURCC_RIFF || fourCC == CDR_FOURCC_RIFX || fourCC == 
CDR_FOURCC_LIST)
 {
@@ -1689,7 +1689,7 @@ void 
libcdr::CMXParser::readRclr(librevenge::RVNGInputStream *input)
   /* unsigned length = */ readU32(input, m_bigEndian);
 
   unsigned long numRecords = readU16(input, m_bigEndian);
-  CDR_DEBUG_MSG(("CMXParser::readRclr - numRecords %i\n", numRecords));
+  CDR_DEBUG_MSG(("CMXParser::readRclr - numRecords %li\n", numRecords));
   sanitizeNumRecords(numRecords, m_precision, 2, 2 + 0, 2, 
getRemainingLength(input));
   for (unsigned j = 1; j <= numRecords; ++j)
   {
@@ -1740,7 +1740,7 @@ void 
libcdr::CMXParser::readRdot(librevenge::RVNGInputStream *input)
   /* unsigned length = */ readU32(input, m_bigEndian);
 
   unsigned long numRecords = readU16(input, m_bigEndian);
-  CDR_DEBUG_MSG(("CMXParser::readRdot - numRecords %i\n", numRecords));
+  CDR_DEBUG_MSG(("CMXParser::readRdot - numRecords %li\n", numRecords));
   sanitizeNumRecords(numRecords, m_precision, 2, 2, 1, 
getRemainingLength(input));
   for (unsigned j = 1; j <= numRecords; ++j)
   {
@@ -1795,7 +1795,7 @@ void 
libcdr::CMXParser::readRott(librevenge::RVNGInputStream *input)
   /* unsigned length = */ readU32(input, m_bigEndian);
 
   unsigned long numRecords = readU16(input, m_bigEndian);
-  CDR_DEBUG_MSG(("CMXParser::readRott - numRecords %i\n", numRecords));
+  CDR_DEBUG_MSG(("CMXParser::readRott - numRecords %li\n", numRecords));
   sanitizeNumRecords(numRecords, m_precision, 2, 2, 1, 
getRemainingLength(input));
   for (unsigned j = 1; j <= numRecords; ++j)
   {
@@ -1844,7 +1844,7 @@ void 
libcdr::CMXParser::readRotl(librevenge::RVNGInputStream *input)
   /* unsigned length = */ readU32(input, m_bigEndian);
 
   unsigned long numRecords = readU16(input, m_bigEndian);
-  CDR_DEBUG_MSG(("CMXParser::readRotl - numRecords %i\n", numRecords));
+  CDR_DEBUG_MSG(("CMXParser::readRotl - numRecords %li\n", numRecords));
   sanitizeNumRecords(numRecords, m_precision, 12, 12, 1, 
getRemainingLength(input));
   for (unsigned j = 1; j <= numRecords; ++j)
   {
@@ -1901,7 +1901,7 @@ void 
libcdr::CMXParser::readRpen(librevenge::RVNGInputStream *input)
   /* unsigned length = */ readU32(input, m_bigEndian);
 
   unsigned long numRecords = readU16(input, m_bigEndian);
-  CDR_DEBUG_MSG(("CMXParser::readRpen - numRecords %i\n", numRecords));
+  CDR_DEBUG_MSG(("CMXParser::readRp

[Libreoffice-commits] libcdr.git: 2 commits - configure.ac src/lib

2021-03-29 Thread Libreoffice Gerrit user
 configure.ac|2 
 src/lib/CDRCollector.cpp|6 +-
 src/lib/CDRContentCollector.cpp |   32 +-
 src/lib/CDRInternalStream.cpp   |6 +-
 src/lib/CDRParser.cpp   |  117 +++-
 src/lib/CDRParser.h |2 
 src/lib/CDRPath.cpp |   10 +--
 src/lib/CDRStylesCollector.cpp  |   12 ++--
 src/lib/CDRTypes.h  |2 
 src/lib/CMXParser.cpp   |   96 
 src/lib/CMXParser.h |4 -
 src/lib/CommonParser.cpp|4 -
 src/lib/libcdr_utils.cpp|8 +-
 src/lib/libcdr_utils.h  |1 
 14 files changed, 152 insertions(+), 150 deletions(-)

New commits:
commit 6fbf17368a4233071846cd2bb46c13b24a84598d
Author: Fridrich Štrba 
AuthorDate: Mon Mar 29 11:34:02 2021 +0200
Commit: Fridrich Štrba 
CommitDate: Mon Mar 29 11:34:02 2021 +0200

Build with maximum werror

Change-Id: I44ca70cc7c0ce726b91cccfb11128b163e7e4a4b

diff --git a/src/lib/CDRCollector.cpp b/src/lib/CDRCollector.cpp
index 3f204d0..8435ade 100644
--- a/src/lib/CDRCollector.cpp
+++ b/src/lib/CDRCollector.cpp
@@ -139,9 +139,9 @@ unsigned libcdr::CDRParserState::_getRGBColor(const 
CDRColor &color)
 // todo handle tint
   }
   unsigned char col0 = colorValue & 0xff;
-  unsigned char col1 = (colorValue & 0xff00) >> 8;
-  unsigned char col2 = (colorValue & 0xff) >> 16;
-  unsigned char col3 = (colorValue & 0xff00) >> 24;
+  unsigned char col1 = (colorValue >> 8) & 0xff;
+  unsigned char col2 = (colorValue >> 16) & 0xff;
+  unsigned char col3 = (unsigned char)((colorValue >> 24) & 0xff);
   switch (colorModel)
   {
   case 0x00: // Pantone palette in CDR1
diff --git a/src/lib/CDRContentCollector.cpp b/src/lib/CDRContentCollector.cpp
index 683d8fd..f1a5817 100644
--- a/src/lib/CDRContentCollector.cpp
+++ b/src/lib/CDRContentCollector.cpp
@@ -409,7 +409,7 @@ void libcdr::CDRContentCollector::_flushCurrentPath()
 while (rotate > 2.0*M_PI)
   rotate -= 2.0*M_PI;
 
-if (rotate != 0.0)
+if (!CDR_ALMOST_ZERO(rotate))
   propList.insert("librevenge:rotate", rotate * 180 / M_PI, 
librevenge::RVNG_GENERIC);
 
 propList.insert("librevenge:mime-type", "image/bmp");
@@ -606,7 +606,7 @@ void libcdr::CDRContentCollector::collectLevel(unsigned 
level)
   const char *header =
 "\nhttp://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\";>\n";
   librevenge::RVNGBinaryData output((const unsigned char *)header, 
strlen(header));
-  output.append((unsigned char *)svgOutput[0].cstr(), 
strlen(svgOutput[0].cstr()));
+  output.append((const unsigned char *)svgOutput[0].cstr(), 
strlen(svgOutput[0].cstr()));
   m_ps.m_vects[m_spnd] = output;
 }
 #if DUMP_VECT
@@ -827,20 +827,20 @@ void 
libcdr::CDRContentCollector::_fillProperties(librevenge::RVNGPropertyList &
   propList.insert("draw:fill-image-ref-point", "bottom-left");
   if (m_currentFillStyle.imageFill.isRelative)
   {
-if (m_currentFillStyle.imageFill.xOffset != 0.0 && 
m_currentFillStyle.imageFill.xOffset != 1.0)
+if (!CDR_ALMOST_ZERO(m_currentFillStyle.imageFill.xOffset) && 
!CDR_ALMOST_ZERO(m_currentFillStyle.imageFill.xOffset))
   propList.insert("draw:fill-image-ref-point-x", 
m_currentFillStyle.imageFill.xOffset, librevenge::RVNG_PERCENT);
-if (m_currentFillStyle.imageFill.yOffset != 0.0 && 
m_currentFillStyle.imageFill.yOffset != 1.0)
+if (!CDR_ALMOST_ZERO(m_currentFillStyle.imageFill.yOffset) && 
!CDR_ALMOST_ZERO(m_currentFillStyle.imageFill.yOffset))
   propList.insert("draw:fill-image-ref-point-y", 
m_currentFillStyle.imageFill.yOffset, librevenge::RVNG_PERCENT);
   }
   else
   {
-if (m_fillTransforms.getTranslateX() != 0.0)
+if (!CDR_ALMOST_ZERO(m_fillTransforms.getTranslateX()))
 {
   double xOffset = m_fillTransforms.getTranslateX() / 
m_currentFillStyle.imageFill.width;
   normalize(xOffset);
   propList.insert("draw:fill-image-ref-point-x", xOffset, 
librevenge::RVNG_PERCENT);
 }
-if (m_fillTransforms.getTranslateY() != 0.0)
+if (!CDR_ALMOST_ZERO(m_fillTransforms.getTranslateY()))
 {
   double yOffset = m_fillTransforms.getTranslateY() / 
m_currentFillStyle.imageFill.width;
   normalize(yOffset);
@@ -887,14 +887,14 @@ void 
libcdr::CDRContentCollector::_fillProperties(librevenge::RVNGPropertyList &
   propList.insert("draw:fill-image-ref-point", "bottom-left");
   if (m_currentFillStyle.imageFill.isRelative)
   {
-if (m_currentFillStyle.imageFill.xOffset != 0.0 && 
m_currentFillStyle.imageFill.xOffset != 1.0)
+if (!CDR_ALMOST_ZERO(m_currentFillStyle.imageFill.xOffset) && 
!CDR_ALMOST_ZERO(m_currentFillStyle.imageFill.xOffset))
  

[Libreoffice-commits] libcdr.git: src/lib

2021-03-26 Thread Libreoffice Gerrit user
 src/lib/CDRDocument.cpp |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit f43988f7becb3e688af0633abb03b0caec73f04e
Author: Fridrich Štrba 
AuthorDate: Sat Mar 27 07:34:13 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Sat Mar 27 07:34:13 2021 +0100

Silence doxygen warnings

Change-Id: Ie08458b218ad56d7ee10466b3cf0c418c838c1d8

diff --git a/src/lib/CDRDocument.cpp b/src/lib/CDRDocument.cpp
index a271090..57f6f82 100644
--- a/src/lib/CDRDocument.cpp
+++ b/src/lib/CDRDocument.cpp
@@ -55,7 +55,7 @@ static unsigned getCDRVersion(librevenge::RVNGInputStream 
*input)
 
 /**
 Analyzes the content of an input stream to see if it can be parsed
-\param input The input stream
+\param input_ The input stream
 \return A value that indicates whether the content from the input
 stream is a Corel Draw Document that libcdr is able to parse
 */
@@ -95,7 +95,7 @@ catch (...)
 Parses the input stream content. It will make callbacks to the functions 
provided by a
 CDRPaintInterface class implementation when needed. This is often commonly 
called the
 'main parsing routine'.
-\param input The input stream
+\param input_ The input stream
 \param painter A CDRPainterInterface implementation
 \return A value that indicates whether the parsing was successful
 */
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] Changes to 'refs/tags/libcdr-0.1.7'

2021-03-26 Thread Libreoffice Gerrit user
Tag 'libcdr-0.1.7' created by Fridrich Štrba  at 
2021-03-26 18:05 +

Tagging 0.1.7 release

Changes since libcdr-0.1.6-32:
---
 0 files changed
---
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2021-03-26 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

New commits:
commit 55bfa48a55dfa090cb4fa4fdcd9eae309a5a1252
Author: Fridrich Štrba 
AuthorDate: Fri Mar 26 18:59:28 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Fri Mar 26 18:59:28 2021 +0100

Unused value + some more meaningful debug output

Change-Id: Ic8e94d97a8e85efd47c5e4f6ed9dcd87dedaa570

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index a309355..b9a95e9 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -113,7 +113,6 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
 
   boost::optional colourModel, colourPalette;
   std::vector fallbackColours;
-  std::string rest;
   std::vector val;
 
   if (colourString)
@@ -172,6 +171,8 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
 CDR_DEBUG_MSG(("parseColourString --> spirit grammar failed with string: 
%s\n", colourString));
 return -1;
   }
+  CDR_DEBUG_MSG(("parseColourString --> colourModel %u, colourPalette %u, val 
size %lu, num fallback %lu\n",
+ colourModel ? colourModel.get() : 0, colourPalette ? 
colourPalette.get() : 0, val.size(), fallbackColours.size()));
 
   // If fallback colours exist, use the first of them, since we are more likely
   // to get them right then the paletted spot colours
@@ -216,10 +217,10 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
   }
   else
   {
-CDR_DEBUG_MSG(("parseColourString --> bRes %i, size %lu, colorModel %u, 
colorValue 0x%.8x bkp: %lu\n", bRes, val.size(), colour.m_colorModel, 
colour.m_colorValue, fallbackColours.size()));
+CDR_DEBUG_MSG(("parseColourString --> colourModel %u, colorValue 0x%.8x, 
return 0\n", colour.m_colorModel, colour.m_colorValue));
 return 0;
   }
-  CDR_DEBUG_MSG(("parseColourString --> bRes %i, size %lu, colorModel %u, 
colorValue 0x%.8x blp: %lu\n", bRes, val.size(), colour.m_colorModel, 
colour.m_colorValue, fallbackColours.size()));
+  CDR_DEBUG_MSG(("parseColourString --> colourModel %u, colorValue 0x%.8x, 
return 1\n", colour.m_colorModel, colour.m_colorValue));
   return 1;
 }
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: configure.ac

2021-03-26 Thread Libreoffice Gerrit user
 configure.ac |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 1ef7c4c1ba476ffe1ac9ee748b3b83c2a25c69af
Author: Fridrich Štrba 
AuthorDate: Fri Mar 26 15:04:07 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Fri Mar 26 15:04:07 2021 +0100

Start release cycle 0.1.8 by bumping the version

Change-Id: I058962c08a0b1f7feb57771bcd4e0336971bef40

diff --git a/configure.ac b/configure.ac
index 96249e9..4e316de 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7,7 +7,7 @@ AC_PREREQ([2.65])
 # 
 m4_define([libcdr_version_major],[0])
 m4_define([libcdr_version_minor],[1])
-m4_define([libcdr_version_micro],[7])
+m4_define([libcdr_version_micro],[8])
 
m4_define([libcdr_version],[libcdr_version_major.libcdr_version_minor.libcdr_version_micro])
 
 # =
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2021-03-26 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |   76 +++---
 1 file changed, 36 insertions(+), 40 deletions(-)

New commits:
commit 0b06caf0ed750f1e817d446b1d7d7d79af45b218
Author: Fridrich Štrba 
AuthorDate: Fri Mar 26 14:28:46 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Fri Mar 26 14:28:46 2021 +0100

Sync the code closer with txsm16 in oletoy

Change-Id: I276a4b844418c2ffa818560bd8b93258d539dbaa

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index c04351c..a309355 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -2688,32 +2688,14 @@ void 
libcdr::CDRParser::readTxsm16(librevenge::RVNGInputStream *input)
 unsigned frameFlag = readU32(input);
 input->seek(37, librevenge::RVNG_SEEK_CUR);
 
-unsigned numFrame = readU32(input);
-
-unsigned textId = readU32(input);
+unsigned numFrames = readU32(input);
 
-input->seek(48, librevenge::RVNG_SEEK_CUR);
-if (!frameFlag)
-{
-  input->seek(28, librevenge::RVNG_SEEK_CUR);
-  unsigned tlen = readU32(input);
-  if (m_version < 1700)
-tlen *= 2;
-  input->seek(tlen, librevenge::RVNG_SEEK_CUR);
-  if (numFrame > 1)
-  {
-for (unsigned i = 0; i < numFrame-1; i++)
-{
-  input->seek(80, librevenge::RVNG_SEEK_CUR);
-  tlen = readU32(input);
-  if (m_version < 1700)
-tlen *= 2;
-  input->seek(tlen, librevenge::RVNG_SEEK_CUR);
-}
-  }
-}
-else
+unsigned textId = 0;
+for (unsigned i = 0; i < numFrames; ++i)
 {
+  unsigned frameId = readU32(input);
+  textId = frameId;
+  input->seek(48, librevenge::RVNG_SEEK_CUR);
   unsigned textOnPath = readU32(input);
   if (textOnPath == 1)
   {
@@ -2732,6 +2714,17 @@ void 
libcdr::CDRParser::readTxsm16(librevenge::RVNGInputStream *input)
   }
   else
 input->seek(8, librevenge::RVNG_SEEK_CUR);
+
+  if (!frameFlag)
+  {
+input->seek(16, librevenge::RVNG_SEEK_CUR);
+unsigned tlen = readU32(input);
+if (m_version > 1600)
+  input->seek(tlen, librevenge::RVNG_SEEK_CUR);
+else
+  input->seek(tlen*2, librevenge::RVNG_SEEK_CUR);
+
+  }
 }
 
 unsigned numPara = readU32(input);
@@ -2741,15 +2734,15 @@ void 
libcdr::CDRParser::readTxsm16(librevenge::RVNGInputStream *input)
 
   unsigned stlId = readU32(input);
 
+  input->seek(1, librevenge::RVNG_SEEK_CUR);
   if (frameFlag)
 input->seek(1, librevenge::RVNG_SEEK_CUR);
-  input->seek(1, librevenge::RVNG_SEEK_CUR);
 
-  unsigned len2 = readU32(input);
+  unsigned styleLen = readU32(input);
   if (m_version < 1700)
-len2 *= 2;
+styleLen *= 2;
   CDRStyle defaultStyle;
-  _readX6StyleString(input, len2, defaultStyle);
+  _readX6StyleString(input, styleLen, defaultStyle);
 
   unsigned numRecords = readU32(input);
 
@@ -2758,20 +2751,23 @@ void 
libcdr::CDRParser::readTxsm16(librevenge::RVNGInputStream *input)
   for (i=0; i= 17; ++i)
   {
 styles[i*2] = defaultStyle;
-input->seek(4, librevenge::RVNG_SEEK_CUR);
-unsigned flag = readU8(input);
-input->seek(1, librevenge::RVNG_SEEK_CUR);
-unsigned lenN = 0;
-if (flag & 0x04)
+input->seek(2, librevenge::RVNG_SEEK_CUR);
+unsigned short stFlag1 = readU16(input);
+unsigned short stFlag2 = readU16(input);
+if (stFlag2 & 0x04)
+{
+  // encoding
+  unsigned encLen = readU32(input);
+  encLen *= 2;
+  input->seek(encLen, librevenge::RVNG_SEEK_CUR);
+}
+if (stFlag1 || stFlag2 & 0x4)
 {
-  lenN = readU32(input);
-  lenN *= 2;
-  input->seek(lenN, librevenge::RVNG_SEEK_CUR);
+  unsigned jsonLen = readU32(input);
+  if (m_version < 1700)
+jsonLen *= 2;
+  _readX6StyleString(input, jsonLen, styles[i*2]);
 }
-lenN = readU32(input);
-if (m_version < 1700)
-  lenN *= 2;
-_readX6StyleString(input, lenN, styles[i*2]);
   }
 
   unsigned numChars = readU32(input);
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] mso-dumper.git: msodumper/emfrecord.py

2021-03-26 Thread Libreoffice Gerrit user
 msodumper/emfrecord.py |  121 -
 1 file changed, 119 insertions(+), 2 deletions(-)

New commits:
commit 926f5b3d21e97cbc659039aa7a03436e3826af0c
Author: Miklos Vajna 
AuthorDate: Fri Mar 26 12:54:32 2021 +0100
Commit: Miklos Vajna 
CommitDate: Fri Mar 26 12:54:32 2021 +0100

EMF: dump EmrCommentEmfplus

I.e. start dumping EMF+ data

Change-Id: I301abd9a3d4e9802e806f970bc72916c0010b3ea

diff --git a/msodumper/emfrecord.py b/msodumper/emfrecord.py
index 1b527c4..59424c0 100644
--- a/msodumper/emfrecord.py
+++ b/msodumper/emfrecord.py
@@ -282,6 +282,64 @@ class EmrCommentPublic(EMFRecord):
 print("")
 
 
+class EMFPlusRecordHeader(EMFRecord):
+"""The common start of EmfPlus* records."""
+def __init__(self, parent):
+EMFRecord.__init__(self, parent)
+
+def peek(self):
+print("")
+id = self.readuInt16()
+record = RecordType[id]
+type = record[0]
+print('' % (hex(id), type))
+self.Type = id
+self.printAndSet("Flags", self.readuInt16())
+self.printAndSet("Size", self.readuInt32())
+self.printAndSet("DataSize", self.readuInt32())
+print("")
+
+
+class EmfPlusHeader(EMFRecord):
+"""The EmfPlusHeader record specifies the start of EMF+ data in the 
metafile."""
+def __init__(self, parent, header):
+EMFRecord.__init__(self, parent)
+self.header = header
+
+def dump(self):
+print("")
+pos = self.pos
+self.pos += 12  # header size
+dataPos = self.pos
+self.printAndSet("Version", self.readuInt32())
+self.printAndSet("EmfPlusFlags", self.readuInt32())
+self.printAndSet("LogicalDpiX", self.readuInt32())
+self.printAndSet("LogicalDpiY", self.readuInt32())
+assert self.pos == dataPos + self.header.DataSize
+self.parent.pos = pos + self.header.Size
+print("")
+
+
+class EmrCommentEmfplus(EMFRecord):
+"""The EMR_COMMENT_EMFPLUS record contains embedded EMF+ records."""
+def __init__(self, parent):
+EMFRecord.__init__(self, parent)
+
+def dump(self):
+size = self.parent.DataSize - 4  # CommentIdentifier doesn't count
+print("" % size)
+end = self.pos + size
+while self.pos < end:
+header = EMFPlusRecordHeader(self)
+header.peek()
+if header.Type == 0x4001:  # EmfPlusHeader
+EmfPlusHeader(self, header).dump()
+else:
+print('' % 
RecordType[header.Type][0])
+self.pos += header.Size
+print("")
+
+
 CommentIdentifier = {
 0x: "EMR_COMMENT_EMFSPOOL",
 0x2B464D45: "EMR_COMMENT_EMFPLUS",
@@ -302,7 +360,7 @@ class EmrComment(EMFRecord):
 if self.CommentIdentifier == 0x:  # EMR_COMMENT_EMFSPOOL
 print('')
 elif self.CommentIdentifier == 0x2B464D45:  # EMR_COMMENT_EMFPLUS
-print('')
+EmrCommentEmfplus(self).dump()
 elif self.CommentIdentifier == 0x43494447:  # EMR_COMMENT_PUBLIC
 EmrCommentPublic(self).dump()
 else:
@@ -974,7 +1032,66 @@ RecordType = {
 0x0077: ['EMR_SETLINKEDUFIS'],
 0x0078: ['EMR_SETTEXTJUSTIFICATION'],
 0x0079: ['EMR_COLORMATCHTOTARGETW'],
-0x007A: ['EMR_CREATECOLORSPACEW']
+0x007A: ['EMR_CREATECOLORSPACEW'],
+# EmfPlus
+0x4001: ['EmfPlusHeader'],
+0x4002: ['EmfPlusEndOfFile'],
+0x4003: ['EmfPlusComment'],
+0x4004: ['EmfPlusGetDC'],
+0x4005: ['EmfPlusMultiFormatStart'],
+0x4006: ['EmfPlusMultiFormatSection'],
+0x4007: ['EmfPlusMultiFormatEnd'],
+0x4008: ['EmfPlusObject'],
+0x4009: ['EmfPlusClear'],
+0x400A: ['EmfPlusFillRects'],
+0x400B: ['EmfPlusDrawRects'],
+0x400C: ['EmfPlusFillPolygon'],
+0x400D: ['EmfPlusDrawLines'],
+0x400E: ['EmfPlusFillEllipse'],
+0x400F: ['EmfPlusDrawEllipse'],
+0x4010: ['EmfPlusFillPie'],
+0x4011: ['EmfPlusDrawPie'],
+0x4012: ['EmfPlusDrawArc'],
+0x4013: ['EmfPlusFillRegion'],
+0x4014: ['EmfPlusFillPath'],
+0x4015: ['EmfPlusDrawPath'],
+0x4016: ['EmfPlusFillClosedCurve'],
+0x4017: ['EmfPlusDrawClosedCurve'],
+0x4018: ['EmfPlusDrawCurve'],
+0x4019: ['EmfPlusDrawBeziers'],
+0x401A: ['EmfPlusDrawImage'],
+0x401B: ['EmfPlusDrawImagePoints'],
+0x401C: ['EmfPlusDrawString'],
+0x401D: ['EmfPlusSetRenderingOrigin'],
+0x401E: ['EmfPlusSetAntiAliasMode'],
+0x401F: ['EmfPlusSetTextRenderingHint'],
+0x4020: ['EmfPlusSetTextContrast'],
+0x4021: ['EmfPlusSetInterpolationMode'],
+0x4022: ['EmfPlusSetPixelOffsetMode'],
+0x4023: ['EmfPlusSetCompositingMode'],
+0x4024: ['EmfPlusSetCompositingQuality'],
+0x4025: ['EmfPlusSave'],
+0x4026: ['EmfPlusRestore'],
+0x4027: ['EmfPlusBeginContainer'],
+0x4028: ['EmfPlusBeginContainerNoParams'],
+0x4029: ['EmfPlusEn

[Libreoffice-commits] libcdr.git: src/lib

2021-03-26 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |   78 +++---
 1 file changed, 68 insertions(+), 10 deletions(-)

New commits:
commit 19eba0c9a6143a10ad847bf97da18806673df58f
Author: Fridrich Štrba 
AuthorDate: Fri Mar 26 12:08:40 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Fri Mar 26 12:08:40 2021 +0100

Fixes of txsm for 7 - 15

Change-Id: I212fa6a5a5243d57e6941d3398b20f830de4b26c

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 66ae391..c04351c 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -2483,11 +2483,28 @@ void 
libcdr::CDRParser::readTxsm(librevenge::RVNGInputStream *input, unsigned le
 if (m_version >= 1600)
   return readTxsm16(input);
 
-input->seek(0x24, librevenge::RVNG_SEEK_CUR);
+unsigned frameFlag = readU32(input);
+input->seek(0x20, librevenge::RVNG_SEEK_CUR);
 if (m_version >= 1500)
   input->seek(1, librevenge::RVNG_SEEK_CUR);
-else if (m_version < 800)
-  input->seek(4, librevenge::RVNG_SEEK_CUR);
+
+if (m_version <= 700)
+{
+  unsigned textOnPath = readU32(input);
+
+  if (textOnPath == 1)
+  {
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var1
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var3
+input->seek(4, librevenge::RVNG_SEEK_CUR); // Offset
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var4
+input->seek(4, librevenge::RVNG_SEEK_CUR); // Distance
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var5
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var6
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var7
+  }
+}
+
 unsigned numFrames = readU32(input);
 unsigned textId = 0;
 for (unsigned i=0; i < numFrames; ++i)
@@ -2495,13 +2512,49 @@ void 
libcdr::CDRParser::readTxsm(librevenge::RVNGInputStream *input, unsigned le
   unsigned frameId = readU32(input);
   textId = frameId;
   input->seek(48, librevenge::RVNG_SEEK_CUR);
-  input->seek(36, librevenge::RVNG_SEEK_CUR);
-  if (m_version > 800)
-input->seek(2, librevenge::RVNG_SEEK_CUR);
-  if (m_version > 1300)
-input->seek(2, librevenge::RVNG_SEEK_CUR);
-  if (m_version > 1400)
-input->seek(12, librevenge::RVNG_SEEK_CUR);
+  if (m_version > 700)
+  {
+unsigned textOnPath = readU32(input);
+if (textOnPath == 1)
+{
+  input->seek(4, librevenge::RVNG_SEEK_CUR); // var1
+  if (m_version > 1200)
+  {
+input->seek(4, librevenge::RVNG_SEEK_CUR); // Orientation
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var2
+  }
+  input->seek(4, librevenge::RVNG_SEEK_CUR); // var3
+  input->seek(4, librevenge::RVNG_SEEK_CUR); // Offset
+  input->seek(4, librevenge::RVNG_SEEK_CUR); // var4
+  input->seek(4, librevenge::RVNG_SEEK_CUR); // Distance
+  input->seek(4, librevenge::RVNG_SEEK_CUR); // var5
+  input->seek(4, librevenge::RVNG_SEEK_CUR); // Mirror Vert
+  input->seek(4, librevenge::RVNG_SEEK_CUR); // Mirror Hor
+  if (m_version >= 1500)
+  {
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var6
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var7
+  }
+}
+else if (m_version >= 1500)
+  input->seek(8, librevenge::RVNG_SEEK_CUR);
+  }
+
+  if (!frameFlag)
+  {
+if (m_version >= 1500)
+  input->seek(40, librevenge::RVNG_SEEK_CUR);
+else if (m_version >= 1400)
+  input->seek(36, librevenge::RVNG_SEEK_CUR);
+else if (m_version > 800)
+  input->seek(34, librevenge::RVNG_SEEK_CUR);
+else if (m_version >= 800)
+  input->seek(32, librevenge::RVNG_SEEK_CUR);
+else if (m_version >= 700)
+  input->seek(36, librevenge::RVNG_SEEK_CUR); // !!! txt-on-path is 
before frame, hence things are rearranged
+  }
+  else if (m_version >= 1500)
+input->seek(4, librevenge::RVNG_SEEK_CUR);
 }
 
 unsigned numPara = readU32(input);
@@ -2510,6 +2563,9 @@ void 
libcdr::CDRParser::readTxsm(librevenge::RVNGInputStream *input, unsigned le
 {
   unsigned stlId = readU32(input);
   input->seek(1, librevenge::RVNG_SEEK_CUR);
+  if (m_version > 1200 && frameFlag)
+input->seek(1, librevenge::RVNG_SEEK_CUR);
+
   unsigned numStyles = readU32(input);
   std::map styles;
   for (unsigned i = 0; i < numStyles; ++i)
@@ -2611,7 +2667,9 @@ void 
libcdr::CDRParser::readTxsm(librevenge::RVNGInputStream *input, unsigned le
   input->seek(1, librevenge::RVNG_SEEK_CUR); //skip the 0 ending character
 
   if (!textData.empty() || !styles.empty())
+  {
 m_collector->collectText(textId, stlId, textData, charDescriptions, 
styles);
+  }
 }
 #ifndef DEBUG
   }
___
Libreoffice-commits mailing list
libreoffic

[Libreoffice-commits] libcdr.git: src/lib

2021-03-26 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |   20 ++--
 1 file changed, 18 insertions(+), 2 deletions(-)

New commits:
commit 628c79ed597f720706b6a09a0426697ea1544687
Author: Fridrich Štrba 
AuthorDate: Fri Mar 26 08:25:33 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Fri Mar 26 08:25:33 2021 +0100

Fixes for text-on-path in txsm6

Change-Id: Iae442c48ea153436a9e588313d109b2f91acc06c

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 5b11d75..66ae391 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -2748,14 +2748,30 @@ void 
libcdr::CDRParser::readTxsm16(librevenge::RVNGInputStream *input)
 
 void libcdr::CDRParser::readTxsm6(librevenge::RVNGInputStream *input)
 {
-  input->seek(0x20, librevenge::RVNG_SEEK_CUR);
+  unsigned frameFlag = readU32(input);
+  input->seek(0x18, librevenge::RVNG_SEEK_CUR);
+  unsigned textOnPath = readU32(input);
+
+  if (textOnPath == 1)
+  {
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var1
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var3
+input->seek(4, librevenge::RVNG_SEEK_CUR); // Offset
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var4
+input->seek(4, librevenge::RVNG_SEEK_CUR); // Distance
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var5
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var6
+input->seek(4, librevenge::RVNG_SEEK_CUR); // var7
+  }
+
   unsigned numFrames = readU32(input);
   unsigned textId = 0;
   for (unsigned j=0; jseek(48, librevenge::RVNG_SEEK_CUR); // Trafo 6*8 bytes
-input->seek(8, librevenge::RVNG_SEEK_CUR); // Maybe flags
+if (!frameFlag)
+  input->seek(8, librevenge::RVNG_SEEK_CUR); // Maybe flags
   }
   unsigned numPara = readU32(input);
   for (unsigned j=0; jhttps://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2021-03-25 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |3 +++
 1 file changed, 3 insertions(+)

New commits:
commit d9e6f53fad91ef2a8a2f7a6dd1776c2b779f34af
Author: Fridrich Štrba 
AuthorDate: Thu Mar 25 18:47:48 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Thu Mar 25 18:47:48 2021 +0100

silence warnings of newer boost in json parser

Change-Id: Icfbd31cb08c994c494758dcd86b72ea68b4f54b0

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 299673a..5b11d75 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -17,6 +17,9 @@
 #ifndef BOOST_ALL_NO_LIB
 #define BOOST_ALL_NO_LIB 1
 #endif
+#ifndef BOOST_BIND_GLOBAL_PLACEHOLDERS
+#define BOOST_BIND_GLOBAL_PLACEHOLDERS 1
+#endif
 #include 
 #include 
 #include 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2021-03-25 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |   81 ++
 1 file changed, 30 insertions(+), 51 deletions(-)

New commits:
commit 695586b02a9bf5e79c3e0865c9f1006595e15071
Author: Fridrich Štrba 
AuthorDate: Thu Mar 25 17:05:12 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Thu Mar 25 17:05:12 2021 +0100

Fixes for omnibus txsm

Change-Id: I227aef5ff9ef68f1a377181c6779358383971507

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index de3df96..299673a 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -2479,59 +2479,39 @@ void 
libcdr::CDRParser::readTxsm(librevenge::RVNGInputStream *input, unsigned le
   return readTxsm6(input);
 if (m_version >= 1600)
   return readTxsm16(input);
+
+input->seek(0x24, librevenge::RVNG_SEEK_CUR);
 if (m_version >= 1500)
-  input->seek(0x25, librevenge::RVNG_SEEK_CUR);
-else
-  input->seek(0x24, librevenge::RVNG_SEEK_CUR);
-if (readU32(input))
-{
-  if (m_version < 800)
-input->seek(32, librevenge::RVNG_SEEK_CUR);
-}
-if (m_version < 800)
+  input->seek(1, librevenge::RVNG_SEEK_CUR);
+else if (m_version < 800)
   input->seek(4, librevenge::RVNG_SEEK_CUR);
-unsigned textId = readU32(input);
-input->seek(48, librevenge::RVNG_SEEK_CUR);
-if (m_version >= 800)
-{
-  if (readU32(input))
-  {
-input->seek(32, librevenge::RVNG_SEEK_CUR);
-if (m_version >= 1300)
-  input->seek(8, librevenge::RVNG_SEEK_CUR);
-  }
-}
-if (m_version >= 1500)
-  input->seek(12, librevenge::RVNG_SEEK_CUR);
-unsigned num = readU32(input);
-unsigned num4 = 1;
-if (!num)
-{
-  if (m_version >= 800)
-input->seek(4, librevenge::RVNG_SEEK_CUR);
+unsigned numFrames = readU32(input);
+unsigned textId = 0;
+for (unsigned i=0; i < numFrames; ++i)
+{
+  unsigned frameId = readU32(input);
+  textId = frameId;
+  input->seek(48, librevenge::RVNG_SEEK_CUR);
+  input->seek(36, librevenge::RVNG_SEEK_CUR);
   if (m_version > 800)
 input->seek(2, librevenge::RVNG_SEEK_CUR);
-  if (m_version >= 1400)
+  if (m_version > 1300)
 input->seek(2, librevenge::RVNG_SEEK_CUR);
-  input->seek(24, librevenge::RVNG_SEEK_CUR);
-  if (m_version < 800)
-input->seek(8, librevenge::RVNG_SEEK_CUR);
-  num4 = readU32(input);
+  if (m_version > 1400)
+input->seek(12, librevenge::RVNG_SEEK_CUR);
 }
 
-for (unsigned j = 0; j < num4 && getRemainingLength(input) >= 14; ++j)
+unsigned numPara = readU32(input);
+
+for (unsigned j = 0; j < numPara; ++j)
 {
   unsigned stlId = readU32(input);
-  if (m_version >= 1300 && num)
-input->seek(1, librevenge::RVNG_SEEK_CUR);
   input->seek(1, librevenge::RVNG_SEEK_CUR);
-  unsigned numRecords = readU32(input);
+  unsigned numStyles = readU32(input);
   std::map styles;
-  unsigned i = 0;
-  for (i=0; i= 3; ++i)
+  for (unsigned i = 0; i < numStyles; ++i)
   {
-unsigned char fl0 = readU8(input);
-readU8(input);
+readU16(input); // num chars using this style
 unsigned char fl2 = readU8(input);
 unsigned char fl3 = 0;
 if (m_version >= 800)
@@ -2568,10 +2548,10 @@ void 
libcdr::CDRParser::readTxsm(librevenge::RVNGInputStream *input, unsigned le
   std::map::const_iterator iter = 
m_fillStyles.find(fillId);
   if (iter != m_fillStyles.end())
 style.m_fillStyle = iter->second;
-  if (m_version >= 1600)
+  if (m_version >= 1300)
 input->seek(48, librevenge::RVNG_SEEK_CUR);
 }
-if (fl2&0x80) // Font Outl Colour
+if (fl2&0x80) // Font Outl ColourStld
 {
   unsigned outlId = readU32(input);
   std::map::const_iterator iter = 
m_lineStyles.find(outlId);
@@ -2591,13 +2571,14 @@ void 
libcdr::CDRParser::readTxsm(librevenge::RVNGInputStream *input, unsigned le
 if (fl3&0x20) // Something
 {
   unsigned flag = readU8(input);
+  input->seek(-1, librevenge::RVNG_SEEK_CUR);
   if (flag)
-input->seek(52, librevenge::RVNG_SEEK_CUR);
+  {
+input->seek(4, librevenge::RVNG_SEEK_CUR); // ftil fild Id
+if (m_version >= 1500)
+  input->seek(48, librevenge::RVNG_SEEK_CUR);
+  }
 }
-if (fl0 == 0x02)
-  if (m_version >= 1300)
-input->seek(48, librevenge::RVNG_SEEK_CUR);
-
 styles[2*i] = style;
   }
   unsigned numChars = readU32(input);
@@ -2605,7 +2586,7 @@ void 
libcdr::CDRParser::readTxsm(librevenge::RVNGInputStream *input, unsigned le
   if (numChars > getRemainingLength(input) / charSize)
 numChars = getRemainingLength(input) / charSize;
   std::vector charDescriptions(numChars);
-  for (i=0; i= 1200)
@@ -2733,8 +2714,6 @@

[Libreoffice-commits] libcdr.git: src/lib

2021-03-25 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |  128 +-
 1 file changed, 66 insertions(+), 62 deletions(-)

New commits:
commit f14c31a18622db4930d43c3e38bc774815cd61fb
Author: Fridrich Štrba 
AuthorDate: Thu Mar 25 14:30:02 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Thu Mar 25 14:30:02 2021 +0100

Some advance in txsm6

Change-Id: Ib81df0f50fa81d0c9b573d5b276ea66d2212e9b2

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 539c6cf..de3df96 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -2766,76 +2766,80 @@ void 
libcdr::CDRParser::readTxsm16(librevenge::RVNGInputStream *input)
 
 void libcdr::CDRParser::readTxsm6(librevenge::RVNGInputStream *input)
 {
-  unsigned fflag1 = readU32(input);
   input->seek(0x20, librevenge::RVNG_SEEK_CUR);
-  unsigned textId = readU32(input);
-  input->seek(48, librevenge::RVNG_SEEK_CUR);
-  input->seek(4, librevenge::RVNG_SEEK_CUR);
-  if (!fflag1)
-input->seek(8, librevenge::RVNG_SEEK_CUR);
-  unsigned stlId = readU32(input);
-  unsigned numSt = readU32(input);
-  unsigned i = 0;
-  std::map styles;
-  for (; i= 58; ++i)
-  {
-CDRStyle style;
-unsigned char flag = readU8(input);
-input->seek(3, librevenge::RVNG_SEEK_CUR);
-if (flag&0x01)
-{
-  unsigned short fontId = readU16(input);
-  std::map::const_iterator iterFont = 
m_fonts.find(fontId);
-  if (iterFont != m_fonts.end())
+  unsigned numFrames = readU32(input);
+  unsigned textId = 0;
+  for (unsigned j=0; jseek(48, librevenge::RVNG_SEEK_CUR); // Trafo 6*8 bytes
+input->seek(8, librevenge::RVNG_SEEK_CUR); // Maybe flags
+  }
+  unsigned numPara = readU32(input);
+  for (unsigned j=0; j styles;
+for (unsigned i=0; iseek(3, librevenge::RVNG_SEEK_CUR);
+  if (flag&0x01)
   {
-style.m_fontName = iterFont->second.m_name;
-style.m_charSet = iterFont->second.m_encoding;
+unsigned short fontId = readU16(input);
+std::map::const_iterator iterFont = 
m_fonts.find(fontId);
+if (iterFont != m_fonts.end())
+{
+  style.m_fontName = iterFont->second.m_name;
+  style.m_charSet = iterFont->second.m_encoding;
+}
+unsigned short charSet = readU16(input);
+if (charSet)
+  style.m_charSet = charSet;
   }
-  unsigned short charSet = readU16(input);
-  if (charSet)
-style.m_charSet = charSet;
-}
-else
-  input->seek(4, librevenge::RVNG_SEEK_CUR);
-input->seek(4, librevenge::RVNG_SEEK_CUR);
-if (flag&0x04)
-  style.m_fontSize = readCoordinate(input);
-else
+  else
+input->seek(4, librevenge::RVNG_SEEK_CUR);
   input->seek(4, librevenge::RVNG_SEEK_CUR);
-input->seek(44, librevenge::RVNG_SEEK_CUR);
-if (flag&0x10)
-{
-  unsigned fillId = readU32(input);
-  std::map::const_iterator iter = 
m_fillStyles.find(fillId);
-  if (iter != m_fillStyles.end())
-style.m_fillStyle = iter->second;
+  if (flag&0x04)
+style.m_fontSize = readCoordinate(input);
+  else
+input->seek(4, librevenge::RVNG_SEEK_CUR);
+  input->seek(44, librevenge::RVNG_SEEK_CUR);
+  if (flag&0x10)
+  {
+unsigned fillId = readU32(input);
+std::map::const_iterator iter = 
m_fillStyles.find(fillId);
+if (iter != m_fillStyles.end())
+  style.m_fillStyle = iter->second;
+  }
+  if (flag&0x20)
+  {
+unsigned outlId = readU32(input);
+std::map::const_iterator iter = 
m_lineStyles.find(outlId);
+if (iter != m_lineStyles.end())
+  style.m_lineStyle = iter->second;
+  }
+  styles[2*i] = style;
 }
-if (flag&0x20)
+unsigned numChars = readU32(input);
+input->seek(4, librevenge::RVNG_SEEK_CUR);
+std::vector textData;
+std::vector charDescriptions;
+textData.reserve(numChars);
+charDescriptions.reserve(numChars);
+for (unsigned i=0; i::const_iterator iter = 
m_lineStyles.find(outlId);
-  if (iter != m_lineStyles.end())
-style.m_lineStyle = iter->second;
+  textData.push_back(readU8(input));
+  input->seek(5, librevenge::RVNG_SEEK_CUR);
+  charDescriptions.push_back(readU8(input) << 1);
+  input->seek(5, librevenge::RVNG_SEEK_CUR);
 }
-styles[2*i] = style;
-  }
-  unsigned numChars = readU32(input);
-  if (numChars > getRemainingLength(input) / 12)
-numChars = getRemainingLength(input) / 12;
-  std::vector textData;
-  std::vector charDescriptions;
-  textData.reserve(numChars);
-  charDescriptions.reserve(numChars);
-  for (i=0; iseek(4, librevenge::RVNG_SEEK_CUR);
-textData.push_back(readU8(input));
-input->seek(5, librevenge::RVNG_SEEK_CUR);
-charDescriptions.push_back(readU8(input) << 1);
-input->seek(1, librevenge::RVNG_SEEK_CUR);
+if (!textData.empty())
+  m_collector->collectText(textId, stlId, textData, charDescriptions, 
styles);
   }
-  if (!textData.em

[Libreoffice-commits] libcdr.git: src/lib

2021-03-25 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 5594f776dfef54e09780c62fca9cd85426a0b2d6
Author: Fridrich Štrba 
AuthorDate: Thu Mar 25 12:46:36 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Thu Mar 25 12:46:36 2021 +0100

Default style id for txsm5

Change-Id: Ia7ada38f62d17abebc3d7d29d023750aac4dd451

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 4ea95e0..539c6cf 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -2854,7 +2854,7 @@ void 
libcdr::CDRParser::readTxsm5(librevenge::RVNGInputStream *input)
   unsigned numPara = readU16(input);
   for (unsigned j=0; jseek(2, librevenge::RVNG_SEEK_CUR);
+unsigned stlId = readU16(input);
 unsigned numSt = readU16(input);
 std::map styles;
 for (unsigned i= 0; i= 34 */; ++i)
@@ -2919,7 +2919,7 @@ void 
libcdr::CDRParser::readTxsm5(librevenge::RVNGInputStream *input)
   charDescriptions.push_back((readU16(input) >> 3) & 0xff);
 }
 if (!textData.empty())
-  m_collector->collectText(textId, 0, textData, charDescriptions, styles);
+  m_collector->collectText(textId, stlId, textData, charDescriptions, 
styles);
   }
 }
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] mso-dumper.git: 2 commits - Makefile msodumper/docstream.py msodumper/emfrecord.py msodumper/ole1previewrecord.py msodumper/ole1record.py ole1-dump.py ole1preview-dump.py test/do

2021-03-25 Thread Libreoffice Gerrit user
 Makefile   |2 
 dev/null   |binary
 msodumper/docstream.py |3 
 msodumper/emfrecord.py |5 -
 msodumper/ole1previewrecord.py |   89 
 msodumper/ole1record.py|  129 +
 ole1-dump.py   |   10 +--
 7 files changed, 140 insertions(+), 98 deletions(-)

New commits:
commit 0cbfc5e2b9a5e84d3e164132c682eb79e2cf0a25
Author: Miklos Vajna 
AuthorDate: Thu Mar 25 09:42:49 2021 +0100
Commit: Miklos Vajna 
CommitDate: Thu Mar 25 09:49:55 2021 +0100

OLE1: show native data as well

Only preview/presentation data was shown earlier.

Change-Id: Ia2ff4c19b53c3d4b968235173704b334e596ca79

diff --git a/Makefile b/Makefile
index fb90903..0cb047e 100644
--- a/Makefile
+++ b/Makefile
@@ -6,5 +6,5 @@ check:
pycodestyle --ignore=E501 emf-dump.py msodumper/{emf,wmf}record.py
pycodestyle --ignore=E501 vsd-dump.py msodumper/vsdstream.py 
test/vsd-test.py
pycodestyle --ignore=E501 swlaycache-dump.py 
msodumper/swlaycacherecord.py
-   pycodestyle --ignore=E501 ole1preview-dump.py 
msodumper/ole1previewrecord.py
+   pycodestyle --ignore=E501 ole1-dump.py msodumper/ole1record.py
pycodestyle --ignore=E501 ole2preview-dump.py 
msodumper/ole2previewrecord.py
diff --git a/msodumper/ole1previewrecord.py b/msodumper/ole1previewrecord.py
deleted file mode 100644
index 115ec69..000
--- a/msodumper/ole1previewrecord.py
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/usr/bin/env python3
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-
-from . import globals
-from .binarystream import BinaryStream
-
-
-class Ole1PreviewStream(BinaryStream):
-def __init__(self, bytes):
-BinaryStream.__init__(self, bytes)
-
-def dump(self):
-print('' % self.size)
-header = StandardPresentationObject(self, "Header")
-header.dump()
-self.printAndSet("PresentationDataSize", self.readuInt32(), 
hexdump=False, offset=True)
-self.printAndSet("Reserved1", self.readuInt16())
-self.printAndSet("Reserved2", self.readuInt16())
-self.printAndSet("Reserved3", self.readuInt16())
-self.printAndSet("Reserved4", self.readuInt16())
-print('' % (self.pos, 
int(self.PresentationDataSize) - 8))
-print('')
-
-
-class Record(BinaryStream):
-def __init__(self, parent):
-BinaryStream.__init__(self, parent.bytes)
-self.parent = parent
-self.pos = parent.pos
-
-
-class LengthPrefixedAnsiString(Record):
-"""Specified by [MS-OLEDS] 2.1.4, specifies a length-prefixed and
-null-terminated ANSI string."""
-def __init__(self, parent, name):
-Record.__init__(self, parent)
-self.parent = parent
-self.pos = parent.pos
-self.name = name
-
-def dump(self):
-print('<%s type="LengthPrefixedAnsiString">' % self.name)
-self.printAndSet("Length", self.readuInt32(), offset=True)
-bytes = []
-for dummy in range(self.Length):
-c = self.readuInt8()
-bytes.append(c)
-
-self.printAndSet("String", globals.encodeName("".join(map(lambda c: 
chr(c), bytes[:-1])), lowOnly=True).encode('utf-8'), hexdump=False, offset=True)
-
-print('' % self.name)
-self.parent.pos = self.pos
-
-
-class StandardPresentationObject(Record):
-def __init__(self, parent, name):
-Record.__init__(self, parent)
-self.name = name
-
-def dump(self):
-print('<%s type="StandardPresentationObject">' % self.name)
-header = PresentationObjectHeader(self, "Header")
-header.dump()
-self.printAndSet("Width", self.readuInt32())
-self.printAndSet("Height", self.readInt32() * -1)
-
-print('' % self.name)
-self.parent.pos = self.pos
-
-
-class PresentationObjectHeader(Record):
-def __init__(self, parent, name):
-Record.__init__(self, parent)
-self.name = name
-
-def dump(self):
-print('<%s type="PresentationObjectHeader">' % self.name)
-self.printAndSet("OLEVersion", self.readuInt32())
-self.printAndSet("FormatID", self.readuInt32())
-LengthPrefixedAnsiString(self, "ClassName").dump()
-
-print('' % self.name)
-self.parent.pos = self.pos
-
-# vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
diff --git a/msodumper/ole1record.py b/msodumper/ole1record.py
new file mode 100644
index 000..c2fce14
--- /dev/null
+++ b/msodumper/ole1record.py
@@ -0,0 +1,129 @@
+#!/usr/bin/env python3
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.

[Libreoffice-commits] libcdr.git: src/lib

2021-03-25 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |  133 +++---
 1 file changed, 72 insertions(+), 61 deletions(-)

New commits:
commit dc41748757362fb3166c2ad4f6a838921ccdb64c
Author: Fridrich Štrba 
AuthorDate: Thu Mar 25 09:48:38 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Thu Mar 25 09:48:38 2021 +0100

Some advance in txsm5

Change-Id: I52e03639bd8357cae4d1ad382089ddbf73512c7e

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 5ddced8..4ea95e0 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -2840,76 +2840,87 @@ void 
libcdr::CDRParser::readTxsm6(librevenge::RVNGInputStream *input)
 
 void libcdr::CDRParser::readTxsm5(librevenge::RVNGInputStream *input)
 {
-  input->seek(4, librevenge::RVNG_SEEK_CUR);
-  unsigned textId = readU16(input);
-  input->seek(4, librevenge::RVNG_SEEK_CUR);
-  unsigned stlId = readU16(input);
-  unsigned numSt = readU16(input);
-  unsigned i = 0;
-  std::map styles;
-  for (; i= 34; ++i)
+  input->seek(2, librevenge::RVNG_SEEK_CUR);
+  unsigned numFrames = readU16(input);
+  unsigned textId = 0;
+  for (unsigned j=0; jseek(2, librevenge::RVNG_SEEK_CUR);
+  }
+  unsigned numPara = readU16(input);
+  for (unsigned j=0; jseek(1, librevenge::RVNG_SEEK_CUR);
-if (flag&0x01)
+input->seek(2, librevenge::RVNG_SEEK_CUR);
+unsigned numSt = readU16(input);
+std::map styles;
+for (unsigned i= 0; i= 34 */; ++i)
 {
-  unsigned short fontId = readU8(input);
-  std::map::const_iterator iterFont = 
m_fonts.find(fontId);
-  if (iterFont != m_fonts.end())
+  CDRStyle style;
+  unsigned char flag = readU8(input);
+  input->seek(1, librevenge::RVNG_SEEK_CUR);
+  if (flag&0x01)
   {
-style.m_fontName = iterFont->second.m_name;
-style.m_charSet = iterFont->second.m_encoding;
+unsigned short fontId = readU8(input);
+std::map::const_iterator iterFont = 
m_fonts.find(fontId);
+if (iterFont != m_fonts.end())
+{
+  style.m_fontName = iterFont->second.m_name;
+  style.m_charSet = iterFont->second.m_encoding;
+}
+unsigned short charSet = readU8(input);
+if (charSet)
+  style.m_charSet = charSet;
   }
-  unsigned short charSet = readU8(input);
-  if (charSet)
-style.m_charSet = charSet;
-}
-else
-  input->seek(2, librevenge::RVNG_SEEK_CUR);
-input->seek(6, librevenge::RVNG_SEEK_CUR);
-if (flag&0x04)
-  style.m_fontSize = readCoordinate(input);
-else
+  else
+input->seek(2, librevenge::RVNG_SEEK_CUR);
+  input->seek(6, librevenge::RVNG_SEEK_CUR);
+  if (flag&0x04)
+style.m_fontSize = readCoordinate(input);
+  else
+input->seek(2, librevenge::RVNG_SEEK_CUR);
   input->seek(2, librevenge::RVNG_SEEK_CUR);
-input->seek(2, librevenge::RVNG_SEEK_CUR);
-if (flag&0x10)
+  if (flag&0x10)
+  {
+unsigned fillId = readU32(input);
+std::map::const_iterator iter = 
m_fillStyles.find(fillId);
+if (iter != m_fillStyles.end())
+  style.m_fillStyle = iter->second;
+  }
+  else
+input->seek(4, librevenge::RVNG_SEEK_CUR);
+  if (flag&0x20)
+  {
+unsigned outlId = readU32(input);
+std::map::const_iterator iter = 
m_lineStyles.find(outlId);
+if (iter != m_lineStyles.end())
+  style.m_lineStyle = iter->second;
+  }
+  else
+input->seek(4, librevenge::RVNG_SEEK_CUR);
+  input->seek(14, librevenge::RVNG_SEEK_CUR);
+  styles[2*i] = style;
+}
+unsigned numChars = readU16(input);
+if (numChars > getRemainingLength(input) / 8)
+  numChars = getRemainingLength(input) / 8;
+std::vector textData;
+std::vector charDescriptions;
+textData.reserve(numChars);
+charDescriptions.reserve(numChars);
+for (unsigned i=0; i::const_iterator iter = 
m_fillStyles.find(fillId);
-  if (iter != m_fillStyles.end())
-style.m_fillStyle = iter->second;
-}
-else
   input->seek(4, librevenge::RVNG_SEEK_CUR);
-if (flag&0x20)
-{
-  unsigned outlId = readU32(input);
-  std::map::const_iterator iter = 
m_lineStyles.find(outlId);
-  if (iter != m_lineStyles.end())
-style.m_lineStyle = iter->second;
+  textData.push_back(readU8(input));
+  input->seek(1, librevenge::RVNG_SEEK_CUR);
+  charDescriptions.push_back((readU16(input) >> 3) & 0xff);
 }
-else
-  input->seek(4, librevenge::RVNG_SEEK_CUR);
-input->seek(14, librevenge::RVNG_SEEK_CUR);
-styles[2*i] = style;
-  }
-  unsigned numChars = readU16(input);
-  if (numChars > getRemainingLength(input) / 8)
-numChars = getRemainingLength(input) / 8;
-  std::vector textData;
-  std::vector charDescriptions;
-  textData.reserve(numChars);
-  charDescriptions.reserve(numChars);
-  for (i=0; iseek(4, librevenge::RVNG_SEEK_CUR);
-textData.push_back(readU8(input));
-

[Libreoffice-commits] libcdr.git: src/lib

2021-03-22 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |3 +++
 1 file changed, 3 insertions(+)

New commits:
commit 00c30046b1f85c814869544b1a79782a06f155bf
Author: Fridrich Štrba 
AuthorDate: Tue Mar 23 07:27:42 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Tue Mar 23 07:27:42 2021 +0100

Add debug output to see immediately if grammar fails

Change-Id: I46402402931dad2190ef8aa405dd146a2d0fcf16

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index d141591..5ddced8 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -165,7 +165,10 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
   }
 
   if (!bRes)
+  {
+CDR_DEBUG_MSG(("parseColourString --> spirit grammar failed with string: 
%s\n", colourString));
 return -1;
+  }
 
   // If fallback colours exist, use the first of them, since we are more likely
   // to get them right then the paletted spot colours
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2021-03-22 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

New commits:
commit 878c3b55c3aef12b5b1d8ad2619644a0e062368e
Author: Fridrich Štrba 
AuthorDate: Tue Mar 23 06:32:15 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Tue Mar 23 06:32:15 2021 +0100

Fix the spirit grammar to cater for more cases

Change-Id: I8dd86e35c71e7657128ebd63a7cafe730c0daf47

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index c71cae5..d141591 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -153,8 +153,10 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
   >> (cpalette | omit[+iso8859_1::alnum]) >> lit(',')
   >> *(uint_ >> lit(','))
   >> omit[(repeat(8)[iso8859_1::xdigit] >> '-' >> 
repeat(3)[repeat(4)[iso8859_1::xdigit] >> '-'] >> 
repeat(12)[iso8859_1::xdigit])]
-  >> -(lit(",~,") >> omit[+(iso8859_1::char_ - 
lit(','))] >> lit(',') >> omit[uint_] >> lit(',')
-   >> repeat[+(iso8859_1::char_ - lit(",~,")) >> 
lit(",~,")] >> omit[*iso8859_1::char_])
+  >> -(lit(',')
+   >> -(lit("~,") >> omit[+(iso8859_1::char_ - 
lit(','))] >> lit(',') >> omit[uint_] >> lit(',')
+>> repeat[+(iso8859_1::char_ - lit(",~,")) 
>> lit(",~,")])
+   >> omit[*iso8859_1::char_])
 ),
 //  End grammar
 iso8859_1::space,
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2021-03-22 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |   19 +--
 1 file changed, 13 insertions(+), 6 deletions(-)

New commits:
commit d41d8f66957b3e2667e4781bffc1856627957fee
Author: Fridrich Štrba 
AuthorDate: Mon Mar 22 20:42:00 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Mon Mar 22 20:42:00 2021 +0100

Parse and use fallback colours if they exist

Change-Id: I970bfbe0c00032ad196dd06bf27d32e341afc3f6

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 045a1b9..c71cae5 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -109,7 +109,8 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
   bool bRes = false;
 
   boost::optional colourModel, colourPalette;
-  std::vector rest;
+  std::vector fallbackColours;
+  std::string rest;
   std::vector val;
 
   if (colourString)
@@ -123,6 +124,7 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
 ("HLS", 7)
 ("GRAY255", 9)
 ("YIQ255", 11)
+("LAB", 12)
 ("PANTONEHX", 14)
 ("LAB255", 18)
 ("REGCOLOR", 20)
@@ -151,18 +153,23 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
   >> (cpalette | omit[+iso8859_1::alnum]) >> lit(',')
   >> *(uint_ >> lit(','))
   >> omit[(repeat(8)[iso8859_1::xdigit] >> '-' >> 
repeat(3)[repeat(4)[iso8859_1::xdigit] >> '-'] >> 
repeat(12)[iso8859_1::xdigit])]
-  >> -(lit(',') >> *iso8859_1::char_)
+  >> -(lit(",~,") >> omit[+(iso8859_1::char_ - 
lit(','))] >> lit(',') >> omit[uint_] >> lit(',')
+   >> repeat[+(iso8859_1::char_ - lit(",~,")) >> 
lit(",~,")] >> omit[*iso8859_1::char_])
 ),
 //  End grammar
 iso8859_1::space,
-colourModel, colourPalette, val, rest)
+colourModel, colourPalette, val, fallbackColours)
&& it == end;
   }
-  rest.push_back(0);
 
   if (!bRes)
 return -1;
 
+  // If fallback colours exist, use the first of them, since we are more likely
+  // to get them right then the paletted spot colours
+  if (!fallbackColours.empty())
+return parseColourString(fallbackColours.begin()->c_str(), colour, 
opacity);
+
   if (colourModel)
 colour.m_colorModel = get(colourModel);
 
@@ -201,10 +208,10 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
   }
   else
   {
-CDR_DEBUG_MSG(("parseColourString --> bRes %i, size %lu, colorModel %u, 
colorValue 0x%.8x\n", bRes, val.size(), colour.m_colorModel, 
colour.m_colorValue));
+CDR_DEBUG_MSG(("parseColourString --> bRes %i, size %lu, colorModel %u, 
colorValue 0x%.8x bkp: %lu\n", bRes, val.size(), colour.m_colorModel, 
colour.m_colorValue, fallbackColours.size()));
 return 0;
   }
-  CDR_DEBUG_MSG(("parseColourString --> bRes %i, size %lu, colorModel %u, 
colorValue 0x%.8x\n", bRes, val.size(), colour.m_colorModel, 
colour.m_colorValue));
+  CDR_DEBUG_MSG(("parseColourString --> bRes %i, size %lu, colorModel %u, 
colorValue 0x%.8x blp: %lu\n", bRes, val.size(), colour.m_colorModel, 
colour.m_colorValue, fallbackColours.size()));
   return 1;
 }
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2021-03-22 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |   13 +
 1 file changed, 5 insertions(+), 8 deletions(-)

New commits:
commit 3a811cc153c6bc79a017f163ac03d51b3f66506d
Author: Fridrich Štrba 
AuthorDate: Mon Mar 22 17:14:03 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Mon Mar 22 17:14:03 2021 +0100

Revert "use boost spirit in unicode when appropriate"

This reverts commit e2b0c8a788ec124a58a63ddc56d77fa317624bf5.

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index f9dba55..045a1b9 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -17,9 +17,6 @@
 #ifndef BOOST_ALL_NO_LIB
 #define BOOST_ALL_NO_LIB 1
 #endif
-#ifndef BOOST_SPIRIT_UNICODE
-#define BOOST_SPIRIT_UNICODE 1
-#endif
 #include 
 #include 
 #include 
@@ -150,14 +147,14 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
 bRes = phrase_parse(it, end,
 //  Begin grammar
 (
-  (cmodel | omit[+unicode::alnum]) >> lit(',')
-  >> (cpalette | omit[+unicode::alnum]) >> lit(',')
+  (cmodel | omit[+iso8859_1::alnum]) >> lit(',')
+  >> (cpalette | omit[+iso8859_1::alnum]) >> lit(',')
   >> *(uint_ >> lit(','))
-  >> omit[(repeat(8)[unicode::xdigit] >> '-' >> 
repeat(3)[repeat(4)[unicode::xdigit] >> '-'] >> repeat(12)[unicode::xdigit])]
-  >> -(lit(',') >> *unicode::char_)
+  >> omit[(repeat(8)[iso8859_1::xdigit] >> '-' >> 
repeat(3)[repeat(4)[iso8859_1::xdigit] >> '-'] >> 
repeat(12)[iso8859_1::xdigit])]
+  >> -(lit(',') >> *iso8859_1::char_)
 ),
 //  End grammar
-unicode::space,
+iso8859_1::space,
 colourModel, colourPalette, val, rest)
&& it == end;
   }
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: 2 commits - src/lib

2021-03-22 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp|   15 +--
 src/lib/libcdr_utils.cpp |9 +
 src/lib/libcdr_utils.h   |1 +
 3 files changed, 19 insertions(+), 6 deletions(-)

New commits:
commit e2b0c8a788ec124a58a63ddc56d77fa317624bf5
Author: Fridrich Štrba 
AuthorDate: Mon Mar 22 16:40:12 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Mon Mar 22 16:40:12 2021 +0100

use boost spirit in unicode when appropriate

Change-Id: I9c97f3010ba7d4ec38dde0825e61fca6c7bce62e

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 045a1b9..f9dba55 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -17,6 +17,9 @@
 #ifndef BOOST_ALL_NO_LIB
 #define BOOST_ALL_NO_LIB 1
 #endif
+#ifndef BOOST_SPIRIT_UNICODE
+#define BOOST_SPIRIT_UNICODE 1
+#endif
 #include 
 #include 
 #include 
@@ -147,14 +150,14 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
 bRes = phrase_parse(it, end,
 //  Begin grammar
 (
-  (cmodel | omit[+iso8859_1::alnum]) >> lit(',')
-  >> (cpalette | omit[+iso8859_1::alnum]) >> lit(',')
+  (cmodel | omit[+unicode::alnum]) >> lit(',')
+  >> (cpalette | omit[+unicode::alnum]) >> lit(',')
   >> *(uint_ >> lit(','))
-  >> omit[(repeat(8)[iso8859_1::xdigit] >> '-' >> 
repeat(3)[repeat(4)[iso8859_1::xdigit] >> '-'] >> 
repeat(12)[iso8859_1::xdigit])]
-  >> -(lit(',') >> *iso8859_1::char_)
+  >> omit[(repeat(8)[unicode::xdigit] >> '-' >> 
repeat(3)[repeat(4)[unicode::xdigit] >> '-'] >> repeat(12)[unicode::xdigit])]
+  >> -(lit(',') >> *unicode::char_)
 ),
 //  End grammar
-iso8859_1::space,
+unicode::space,
 colourModel, colourPalette, val, rest)
&& it == end;
   }
commit 9bbf5b653324ea567269b5ac18e09853dff4a0cd
Author: Fridrich Štrba 
AuthorDate: Mon Mar 22 16:25:38 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Mon Mar 22 16:25:38 2021 +0100

Read the json as utf-8 for versions 17+

Change-Id: I4fa754ba03be06594e421de1d03be25aec0e5c1e

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 62bdf0d..045a1b9 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -3055,7 +3055,7 @@ void 
libcdr::CDRParser::_readX6StyleString(librevenge::RVNGInputStream *input, u
 memcpy(&styleBuffer[0], tmpBuffer, numBytesRead);
   librevenge::RVNGString styleString;
   if (m_version >= 1700)
-libcdr::appendCharacters(styleString, styleBuffer, 0);
+libcdr::appendUTF8Characters(styleString, styleBuffer);
   else
 libcdr::appendCharacters(styleString, styleBuffer);
   CDR_DEBUG_MSG(("CDRParser::_readX6StyleString - styleString = \"%s\"\n", 
styleString.cstr()));
diff --git a/src/lib/libcdr_utils.cpp b/src/lib/libcdr_utils.cpp
index 250f0a0..c900b0a 100644
--- a/src/lib/libcdr_utils.cpp
+++ b/src/lib/libcdr_utils.cpp
@@ -462,6 +462,15 @@ void libcdr::appendCharacters(librevenge::RVNGString 
&text, std::vector characters)
+{
+  if (characters.empty())
+return;
+
+  for (std::vector::const_iterator iter = characters.begin(); 
iter != characters.end(); ++iter)
+text.append((char)*iter);
+}
+
 #ifdef DEBUG
 
 void libcdr::debugPrint(const char *const format, ...)
diff --git a/src/lib/libcdr_utils.h b/src/lib/libcdr_utils.h
index a4472fc..52871e3 100644
--- a/src/lib/libcdr_utils.h
+++ b/src/lib/libcdr_utils.h
@@ -91,6 +91,7 @@ void writeU16(librevenge::RVNGBinaryData &buffer, const int 
value);
 void writeU32(librevenge::RVNGBinaryData &buffer, const int value);
 void appendCharacters(librevenge::RVNGString &text, std::vector 
characters, unsigned short charset);
 void appendCharacters(librevenge::RVNGString &text, std::vector 
characters);
+void appendUTF8Characters(librevenge::RVNGString &text, std::vector characters);
 
 #ifdef DEBUG
 const char *toFourCC(unsigned value, bool bigEndian=false);
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2021-03-22 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |   11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

New commits:
commit 0d36bda438c8c1e33ef9aada24a65d8bb8107c6c
Author: Fridrich Štrba 
AuthorDate: Mon Mar 22 13:19:35 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Mon Mar 22 13:20:04 2021 +0100

use the iso8859_1 to parse colours

The standard parser chokes on some characters due to conversion of
codes >127 into negative numbers

Change-Id: I3e5ac008376997c0b9b657016c293d5702bf75ec

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 36b6aff..62bdf0d 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -105,6 +105,7 @@ static void processNameForEncoding(librevenge::RVNGString 
&name, unsigned short
 static int parseColourString(const char *colourString, libcdr::CDRColor 
&colour, double &opacity)
 {
   using namespace boost::spirit::qi;
+
   bool bRes = false;
 
   boost::optional colourModel, colourPalette;
@@ -146,14 +147,14 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
 bRes = phrase_parse(it, end,
 //  Begin grammar
 (
-  (cmodel | omit[+alnum]) >> lit(',')
-  >> (cpalette | omit[+alnum]) >> lit(',')
+  (cmodel | omit[+iso8859_1::alnum]) >> lit(',')
+  >> (cpalette | omit[+iso8859_1::alnum]) >> lit(',')
   >> *(uint_ >> lit(','))
-  >> omit[(repeat(8)[xdigit] >> '-' >> 
repeat(3)[repeat(4)[xdigit] >> '-'] >> repeat(12)[xdigit])]
-  >> -(lit(',') >> *char_)
+  >> omit[(repeat(8)[iso8859_1::xdigit] >> '-' >> 
repeat(3)[repeat(4)[iso8859_1::xdigit] >> '-'] >> 
repeat(12)[iso8859_1::xdigit])]
+  >> -(lit(',') >> *iso8859_1::char_)
 ),
 //  End grammar
-space,
+iso8859_1::space,
 colourModel, colourPalette, val, rest)
&& it == end;
   }
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2021-03-22 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |   15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)

New commits:
commit 528018f253d8e01cd5507eed1b3f852346887a5f
Author: Fridrich Štrba 
AuthorDate: Mon Mar 22 11:47:35 2021 +0100
Commit: Fridrich Štrba 
CommitDate: Mon Mar 22 11:47:35 2021 +0100

A possible fix of multi-paragraph text in frame

Change-Id: I8a6a455b2dd57b9aa0d2fa3a0e3298f623f1586d

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index ca881fc..36b6aff 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -2631,7 +2631,9 @@ void 
libcdr::CDRParser::readTxsm16(librevenge::RVNGInputStream *input)
   {
 #endif
 unsigned frameFlag = readU32(input);
-input->seek(41, librevenge::RVNG_SEEK_CUR);
+input->seek(37, librevenge::RVNG_SEEK_CUR);
+
+unsigned numFrame = readU32(input);
 
 unsigned textId = readU32(input);
 
@@ -2643,6 +2645,17 @@ void 
libcdr::CDRParser::readTxsm16(librevenge::RVNGInputStream *input)
   if (m_version < 1700)
 tlen *= 2;
   input->seek(tlen, librevenge::RVNG_SEEK_CUR);
+  if (numFrame > 1)
+  {
+for (unsigned i = 0; i < numFrame-1; i++)
+{
+  input->seek(80, librevenge::RVNG_SEEK_CUR);
+  tlen = readU32(input);
+  if (m_version < 1700)
+tlen *= 2;
+  input->seek(tlen, librevenge::RVNG_SEEK_CUR);
+}
+  }
 }
 else
 {
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


Have to set up IDE for Java again, any hints?

2020-12-18 Thread gerrit

Hello
I've been trying to fix a bug in the Libreoffice Base reportbuilder, and 
to push the bugfix I deleted some stuff from my libreoffice folder that 
had nothing to do with my changes. now I found bugs in my bugfix and my 
carefully hacked together eclipse fails to read the sources again wich 
it barely did before. I was unable to find the Instructions I need 
online. There was only c++ setups, no java, and if there was java, it 
was to create my own plugin wich i'm also not doing. Can someone please 
show me instructions on how to easily and correctly setup any opensource 
IDE on Linux to debug the reportbuilder?

Greetings,
Gerrit Großkopf
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice


[Libreoffice-commits] core.git: filter/source

2020-12-16 Thread gerrit (via logerrit)
 filter/source/xslt/odf2xhtml/export/xhtml/body.xsl |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 9804cb2f195451811eff8924d7997a3cbd6d679d
Author: gerrit 
AuthorDate: Mon Oct 19 21:15:11 2020 +0200
Commit: Noel Grandin 
CommitDate: Wed Dec 16 09:25:35 2020 +0100

tdf#95662 Convert , to . for the min-width in the Lists only

Works where strings should never have a ",", didn't check other strings.

Change-Id: I693a2dbf13701420768c70c3cd11b84eac81f378
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104544
Tested-by: Noel Grandin 
Reviewed-by: Noel Grandin 

diff --git a/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl 
b/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
index 83171a1f4d1a..8c9cb705d967 100644
--- a/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
+++ b/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
@@ -2042,7 +2042,7 @@
 
 
 ;min-width:
-
+
 cm;
 
 
@@ -2104,7 +2104,7 @@
 
 
 ;min-width:
-
+
 cm
 
  
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2020-11-04 Thread Libreoffice Gerrit user
 src/lib/libcdr_utils.cpp |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit bf3e7f3bbc414d4341cf1420c99293debf1bd894
Author: Miklos Vajna 
AuthorDate: Wed Nov 4 16:23:01 2020 +0100
Commit: Miklos Vajna 
CommitDate: Wed Nov 4 16:23:05 2020 +0100

Fix icu-68.1 build

This is really similar to LibreOffice core.git
.

Change-Id: I91c5a9a5f573086d06428b16a459852d993ea31f

diff --git a/src/lib/libcdr_utils.cpp b/src/lib/libcdr_utils.cpp
index 09ab42e..250f0a0 100644
--- a/src/lib/libcdr_utils.cpp
+++ b/src/lib/libcdr_utils.cpp
@@ -108,7 +108,7 @@ static unsigned short getEncoding(const unsigned char 
*buffer, unsigned bufferLe
 csd = ucsdet_open(&status);
 if (U_FAILURE(status) || !csd)
   return 0;
-ucsdet_enableInputFilter(csd, TRUE);
+ucsdet_enableInputFilter(csd, true);
 ucsdet_setText(csd, (const char *)buffer, bufferLength, &status);
 if (U_FAILURE(status))
   throw libcdr::EncodingException();
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] mso-dumper.git: msodumper/binarystream.py msodumper/emfrecord.py

2020-09-16 Thread Libreoffice Gerrit user
 msodumper/binarystream.py |2 +-
 msodumper/emfrecord.py|4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 483938f60e083577c713a026f5eafc33951c1fd7
Author: Miklos Vajna 
AuthorDate: Wed Sep 16 15:25:18 2020 +0200
Commit: Miklos Vajna 
CommitDate: Wed Sep 16 15:25:18 2020 +0200

emf-dump: CommentIdentifier is optional, don't fail if it's missing

Change-Id: Ic73a21642155dac89096dcb2d263d9f50e695306

diff --git a/msodumper/binarystream.py b/msodumper/binarystream.py
index 9ab829d..bdd8f37 100644
--- a/msodumper/binarystream.py
+++ b/msodumper/binarystream.py
@@ -28,7 +28,7 @@ class BinaryStream:
 return
 attrs = ""
 if dict:
-if value in dict or not default:
+if value in dict or default is None:
 attrs += ' name="%s"' % dict[value]
 else:
 attrs += ' name="%s"' % default
diff --git a/msodumper/emfrecord.py b/msodumper/emfrecord.py
index be66124..f0e38c0 100644
--- a/msodumper/emfrecord.py
+++ b/msodumper/emfrecord.py
@@ -297,7 +297,7 @@ class EmrComment(EMFRecord):
 self.printAndSet("Type", self.readuInt32())
 self.printAndSet("Size", self.readuInt32(), hexdump=False)
 self.printAndSet("DataSize", self.readuInt32(), hexdump=False)
-self.printAndSet("CommentIdentifier", self.readuInt32(), 
dict=CommentIdentifier)
+self.printAndSet("CommentIdentifier", self.readuInt32(), 
dict=CommentIdentifier, default="")
 if self.CommentIdentifier == 0x:  # EMR_COMMENT_EMFSPOOL
 print('')
 elif self.CommentIdentifier == 0x2B464D45:  # EMR_COMMENT_EMFPLUS
@@ -305,7 +305,7 @@ class EmrComment(EMFRecord):
 elif self.CommentIdentifier == 0x43494447:  # EMR_COMMENT_PUBLIC
 EmrCommentPublic(self).dump()
 else:
-print('' 
% hex(commentIdentifier))
+print('' 
% hex(self.CommentIdentifier))
 
 
 class EmrSetviewportorgex(EMFRecord):
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] mso-dumper.git: msodumper/emfrecord.py

2020-09-16 Thread Libreoffice Gerrit user
 msodumper/emfrecord.py |   42 ++
 1 file changed, 42 insertions(+)

New commits:
commit 8849621e3af4a137651d7483f9cf2b8203fe47cb
Author: Miklos Vajna 
AuthorDate: Wed Sep 16 12:12:57 2020 +0200
Commit: Miklos Vajna 
CommitDate: Wed Sep 16 12:12:57 2020 +0200

emf-dump: show EmrCommentMultiformats

Change-Id: Iff30c99e70540b5dfa0f9ce024586f6890fe7948

diff --git a/msodumper/emfrecord.py b/msodumper/emfrecord.py
index 60d9de3..be66124 100644
--- a/msodumper/emfrecord.py
+++ b/msodumper/emfrecord.py
@@ -217,6 +217,46 @@ class EmrSeticmmode(EMFRecord):
 assert self.pos - posOrig == self.Size
 
 
+# The FormatSignature enumeration defines values that are used to identify the 
format of embedded
+# data in EMF records.
+FormatSignature = {
+0x464D4520: "ENHMETA_SIGNATURE",
+0x46535045: "EPS_SIGNATURE",
+0x50444620: "PDF ", # not in [MS-EMF]
+}
+
+class EmrFormat(EMFRecord):
+"""
+The EmrFormat object contains information that identifies the format of 
image data in an
+EMR_COMMENT_MULTIFORMATS record.
+"""
+def __init__(self, parent, index):
+EMFRecord.__init__(self, parent)
+self.index = index
+
+def dump(self):
+print("" % self.index)
+self.printAndSet("Signature", self.readuInt32(), dict=FormatSignature)
+self.printAndSet("Version", self.readuInt32())
+self.printAndSet("SizeData", self.readuInt32(), hexdump=False)
+self.printAndSet("offData", self.readuInt32(), hexdump=False)
+print("")
+
+
+class EmrCommentMultiformats(EMFRecord):
+"""The EMR_COMMENT_MULTIFORMATS record specifies an image in multiple 
graphics formats."""
+def __init__(self, parent):
+EMFRecord.__init__(self, parent)
+
+def dump(self):
+print("")
+wmfrecord.RectL(self, "OutputRect").dump()
+self.printAndSet("CountFormats", self.readuInt32())
+for formatIndex in range(self.CountFormats):
+EmrFormat(self, formatIndex).dump()
+print("")
+
+
 # Defines the types of data that a public comment record can contain.
 EmrCommentEnum = {
 0x8001: "EMR_COMMENT_WINDOWS_METAFILE",
@@ -236,6 +276,8 @@ class EmrCommentPublic(EMFRecord):
 def dump(self):
 print("")
 self.printAndSet("PublicCommentIdentifier", self.readuInt32(), 
dict=EmrCommentEnum)
+if self.PublicCommentIdentifier == 0x4004: # 
EMR_COMMENT_MULTIFORMATS
+EmrCommentMultiformats(self).dump()
 print("")
 
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] mso-dumper.git: msodumper/emfrecord.py

2020-09-16 Thread Libreoffice Gerrit user
 msodumper/emfrecord.py |   39 ++-
 1 file changed, 34 insertions(+), 5 deletions(-)

New commits:
commit bae6ef4213ec4ebaa8cdc6c6b33550cf05b4d9aa
Author: Miklos Vajna 
AuthorDate: Wed Sep 16 11:07:20 2020 +0200
Commit: Miklos Vajna 
CommitDate: Wed Sep 16 11:07:20 2020 +0200

emf-dump: show CommentIdentifier and EmrComment enumerators

diff --git a/msodumper/emfrecord.py b/msodumper/emfrecord.py
index 98c1611..60d9de3 100644
--- a/msodumper/emfrecord.py
+++ b/msodumper/emfrecord.py
@@ -217,6 +217,35 @@ class EmrSeticmmode(EMFRecord):
 assert self.pos - posOrig == self.Size
 
 
+# Defines the types of data that a public comment record can contain.
+EmrCommentEnum = {
+0x8001: "EMR_COMMENT_WINDOWS_METAFILE",
+0x0002: "EMR_COMMENT_BEGINGROUP",
+0x0003: "EMR_COMMENT_ENDGROUP",
+0x4004: "EMR_COMMENT_MULTIFORMATS",
+0x0040: "EMR_COMMENT_UNICODE_STRING",
+0x0080: "EMR_COMMENT_UNICODE_END",
+}
+
+
+class EmrCommentPublic(EMFRecord):
+"""The EMR_COMMENT_PUBLIC record types specify extensions to EMF 
processing."""
+def __init__(self, parent):
+EMFRecord.__init__(self, parent)
+
+def dump(self):
+print("")
+self.printAndSet("PublicCommentIdentifier", self.readuInt32(), 
dict=EmrCommentEnum)
+print("")
+
+
+CommentIdentifier = {
+0x: "EMR_COMMENT_EMFSPOOL",
+0x2B464D45: "EMR_COMMENT_EMFPLUS",
+0x43494447: "EMR_COMMENT_PUBLIC",
+}
+
+
 class EmrComment(EMFRecord):
 """The EMR_COMMENT record contains arbitrary private data."""
 def __init__(self, parent):
@@ -226,13 +255,13 @@ class EmrComment(EMFRecord):
 self.printAndSet("Type", self.readuInt32())
 self.printAndSet("Size", self.readuInt32(), hexdump=False)
 self.printAndSet("DataSize", self.readuInt32(), hexdump=False)
-commentIdentifier = self.getuInt32()
-if commentIdentifier == 0x:  # EMR_COMMENT_EMFSPOOL
+self.printAndSet("CommentIdentifier", self.readuInt32(), 
dict=CommentIdentifier)
+if self.CommentIdentifier == 0x:  # EMR_COMMENT_EMFSPOOL
 print('')
-elif commentIdentifier == 0x2B464D45:  # EMR_COMMENT_EMFPLUS
+elif self.CommentIdentifier == 0x2B464D45:  # EMR_COMMENT_EMFPLUS
 print('')
-elif commentIdentifier == 0x43494447:  # EMR_COMMENT_PUBLIC
-print('')
+elif self.CommentIdentifier == 0x43494447:  # EMR_COMMENT_PUBLIC
+EmrCommentPublic(self).dump()
 else:
 print('' 
% hex(commentIdentifier))
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] cppunit.git: examples/money

2020-08-31 Thread Libreoffice Gerrit user
 examples/money/MoneyTest.cpp |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 942992e8abbe00aad7d0671671124a046cae2cda
Author: Алексей Тулинов 
AuthorDate: Mon Aug 31 05:25:10 2020 +0300
Commit: Markus Mohrhard 
CommitDate: Mon Aug 31 19:51:32 2020 +0200

Fixed CPPUNIT_ASSERT_EQUAL() being called on doubles

Change-Id: Ie72531ebdc858a0122886a7a3cfe49185dc0ff76
Reviewed-on: https://gerrit.libreoffice.org/c/cppunit/+/101688
Tested-by: Markus Mohrhard 
Reviewed-by: Markus Mohrhard 

diff --git a/examples/money/MoneyTest.cpp b/examples/money/MoneyTest.cpp
index 65870a6..3fc9aaa 100644
--- a/examples/money/MoneyTest.cpp
+++ b/examples/money/MoneyTest.cpp
@@ -32,7 +32,7 @@ MoneyTest::testConstructor()
   Money money( longNumber, currencyFF );
 
   // Check
-  CPPUNIT_ASSERT_EQUAL( longNumber, money.getAmount() );
+  CPPUNIT_ASSERT_DOUBLES_EQUAL( longNumber, money.getAmount(), 0.0001 );
   CPPUNIT_ASSERT_EQUAL( currencyFF, money.getCurrency() );
 }
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] cppunit.git: Changes to 'refs/tags/cppunit-1.15.0'

2020-08-25 Thread Libreoffice Gerrit user
Tag 'cppunit-1.15.0' created by Andras Timar  at 
2020-08-25 09:22 +

cppunit-1.15.0

Changes since cppunit-1.14.0-21:
---
 0 files changed
---
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] cppunit.git: Changes to 'refs/tags/cppunit-1.15.1'

2020-08-25 Thread Libreoffice Gerrit user
Tag 'cppunit-1.15.1' created by Andras Timar  at 
2020-08-25 09:19 +

cppunit-1.15.1

Changes since cppunit-1.14.0-27:
---
 0 files changed
---
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2020-02-19 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |7 +++
 1 file changed, 7 insertions(+)

New commits:
commit 04b3c20882653adf4727a4dcf18fa1b577c0f20e
Author: Fridrich Štrba 
AuthorDate: Wed Feb 19 09:39:14 2020 +0100
Commit: Fridrich Štrba 
CommitDate: Wed Feb 19 09:39:14 2020 +0100

Some more colour model and palette id mappings

Change-Id: Ic91d9631687208351d24d57677df834bc752523e

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 7feba1a..ca881fc 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -122,6 +122,7 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
 ("HLS", 7)
 ("GRAY255", 9)
 ("YIQ255", 11)
+("PANTONEHX", 14)
 ("LAB255", 18)
 ("REGCOLOR", 20)
 ("SPOT", 25)
@@ -133,6 +134,12 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
 ("DUPONT", 9)
 ("TOYO", 10)
 ("DIC", 11)
+("PAN_HEX", 12)
+("HKS", 0x17)
+("HKS_K", 0x1a)
+("HKS_N", 0x1b)
+("HKS_Z", 0x1c)
+("HKS_E", 0x1d)
 ;
 auto it = colourString;
 const auto end = it + std::strlen(it);
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: 3 commits - src/lib

2020-02-18 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |  115 +++---
 1 file changed, 63 insertions(+), 52 deletions(-)

New commits:
commit 8378597beae61ef66807a0eaf56689e6de75c203
Author: Fridrich Štrba 
AuthorDate: Wed Feb 19 08:18:21 2020 +0100
Commit: Fridrich Štrba 
CommitDate: Wed Feb 19 08:18:21 2020 +0100

Some progress with multiparagraph text in versions x6 and more

Change-Id: I4ecb2af0918bfe5a3f925ecf6e60cf72a2bbc282

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index c6c9d97..7feba1a 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -2635,7 +2635,7 @@ void 
libcdr::CDRParser::readTxsm16(librevenge::RVNGInputStream *input)
   unsigned tlen = readU32(input);
   if (m_version < 1700)
 tlen *= 2;
-  input->seek(tlen + 4, librevenge::RVNG_SEEK_CUR);
+  input->seek(tlen, librevenge::RVNG_SEEK_CUR);
 }
 else
 {
@@ -2657,65 +2657,72 @@ void 
libcdr::CDRParser::readTxsm16(librevenge::RVNGInputStream *input)
   }
   else
 input->seek(8, librevenge::RVNG_SEEK_CUR);
-  input->seek(4, librevenge::RVNG_SEEK_CUR);
 }
 
-unsigned stlId = readU32(input);
+unsigned numPara = readU32(input);
+
+for (unsigned j = 0; j < numPara; ++j)
+{
+
+  unsigned stlId = readU32(input);
 
-if (frameFlag)
+  if (frameFlag)
+input->seek(1, librevenge::RVNG_SEEK_CUR);
   input->seek(1, librevenge::RVNG_SEEK_CUR);
-input->seek(1, librevenge::RVNG_SEEK_CUR);
 
-unsigned len2 = readU32(input);
-if (m_version < 1700)
-  len2 *= 2;
-CDRStyle defaultStyle;
-_readX6StyleString(input, len2, defaultStyle);
+  unsigned len2 = readU32(input);
+  if (m_version < 1700)
+len2 *= 2;
+  CDRStyle defaultStyle;
+  _readX6StyleString(input, len2, defaultStyle);
 
-unsigned numRecords = readU32(input);
+  unsigned numRecords = readU32(input);
 
-unsigned i = 0;
-std::map styles;
-for (i=0; i= 17; ++i)
-{
-  styles[i*2] = defaultStyle;
-  input->seek(4, librevenge::RVNG_SEEK_CUR);
-  unsigned flag = readU8(input);
-  input->seek(1, librevenge::RVNG_SEEK_CUR);
-  unsigned lenN = 0;
-  if (flag & 0x04)
+  unsigned i = 0;
+  std::map styles;
+  for (i=0; i= 17; ++i)
   {
+styles[i*2] = defaultStyle;
+input->seek(4, librevenge::RVNG_SEEK_CUR);
+unsigned flag = readU8(input);
+input->seek(1, librevenge::RVNG_SEEK_CUR);
+unsigned lenN = 0;
+if (flag & 0x04)
+{
+  lenN = readU32(input);
+  lenN *= 2;
+  input->seek(lenN, librevenge::RVNG_SEEK_CUR);
+}
 lenN = readU32(input);
-lenN *= 2;
-input->seek(lenN, librevenge::RVNG_SEEK_CUR);
+if (m_version < 1700)
+  lenN *= 2;
+_readX6StyleString(input, lenN, styles[i*2]);
   }
-  lenN = readU32(input);
-  if (m_version < 1700)
-lenN *= 2;
-  _readX6StyleString(input, lenN, styles[i*2]);
-}
 
-unsigned numChars = readU32(input);
-if (numChars > getRemainingLength(input) / 8)
-  numChars = getRemainingLength(input) / 8;
-std::vector charDescriptions(numChars);
-for (i=0; i> 16) | (tmpCharDescription & 
0x01);
-}
-unsigned numBytes = readU32(input);
-unsigned long numBytesRead = 0;
-const unsigned char *buffer = input->read(numBytes, numBytesRead);
-if (numBytesRead != numBytes)
-  throw GenericException();
-std::vector textData(numBytesRead);
-if (numBytesRead)
-  memcpy(&textData[0], buffer, numBytesRead);
+  unsigned numChars = readU32(input);
+  if (numChars > getRemainingLength(input) / 8)
+numChars = getRemainingLength(input) / 8;
+  std::vector charDescriptions(numChars);
+  for (i=0; i> 16) | (tmpCharDescription 
& 0x01);
+  }
+  unsigned numBytes = readU32(input);
+  unsigned long numBytesRead = 0;
+  const unsigned char *buffer = input->read(numBytes, numBytesRead);
+  if (numBytesRead != numBytes)
+throw GenericException();
+  std::vector textData(numBytesRead);
+  if (numBytesRead)
+memcpy(&textData[0], buffer, numBytesRead);
+  input->seek(1, librevenge::RVNG_SEEK_CUR); //skip the 0 ending character
+
 
-if (!textData.empty())
-  m_collector->collectText(textId, stlId, textData, charDescriptions, 
styles);
+  if (!textData.empty())
+m_collector->collectText(textId, stlId, textData, charDescriptions, 
styles);
+}
 #ifndef DEBUG
   }
   catch (...)
commit 900c54843680df8fe5c0209fd6935c2591b093f9
Author: Fridrich Štrba 
AuthorDate: Wed Feb 19 08:17:04 2020 +0100
Commit: Fridrich Štrba 
CommitDate: Wed Feb 19 08:17:04 2020 +0100

Move debug messages inside the _resolveColorPalette function

Change-Id: I07aff123bf56d5202acca17233d525cf572a5ffc

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 

[Libreoffice-commits] libcdr.git: src/lib

2020-02-18 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

New commits:
commit 6d37a8e264957f28ff0b6016e91806ac6bb67fdf
Author: Fridrich Štrba 
AuthorDate: Tue Feb 18 14:29:32 2020 +0100
Commit: Fridrich Štrba 
CommitDate: Tue Feb 18 14:29:32 2020 +0100

Resolve colour palettes for x6 text colours too

Change-Id: I88ba199fa77913e0bb075004f052bf8226efec52

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index eb43b39..91d2e27 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -155,6 +155,9 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
   if (colourModel)
 colour.m_colorModel = get(colourModel);
 
+  if (colourPalette)
+colour.m_colorPalette = get(colourPalette);
+
   if (val.size() >= 5)
   {
 colour.m_colorValue = val[0] | (val[1] << 8) | (val[2] << 16) | (val[3] << 
24);
@@ -172,7 +175,7 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
   }
   else if (val.size() >= 2)
   {
-if (colour.m_colorModel == 25)
+if (colour.m_colorModel == 25 || colour.m_colorModel == 14)
   colour.m_colorValue = (val[1] << 16) | val[0];
 else
 {
@@ -3070,6 +3073,7 @@ void 
libcdr::CDRParser::_readX6StyleString(librevenge::RVNGInputStream *input, u
   {
 double opacity = 1.0;
 parseColourString(color.get().c_str(), style.m_lineStyle.color, 
opacity);
+_resolveColorPalette(style.m_lineStyle.color);
   }
 }
 
@@ -3083,12 +3087,14 @@ void 
libcdr::CDRParser::_readX6StyleString(librevenge::RVNGInputStream *input, u
   {
 double opacity = 1.0;
 parseColourString(color1.get().c_str(), style.m_fillStyle.color1, 
opacity);
+_resolveColorPalette(style.m_fillStyle.color1);
   }
   boost::optional color2 = 
pt.get_optional("character.fill.primaryColor");
   if (!!color2)
   {
 double opacity = 1.0;
 parseColourString(color2.get().c_str(), style.m_fillStyle.color2, 
opacity);
+_resolveColorPalette(style.m_fillStyle.color2);
   }
 }
   }
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2020-02-18 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |  900 +-
 src/lib/CDRParser.h   |1 
 src/lib/CDRTypes.h|8 
 3 files changed, 458 insertions(+), 451 deletions(-)

New commits:
commit 9c123d71095d284fad32296b1d35b744878d33b1
Author: Fridrich Štrba 
AuthorDate: Tue Feb 18 14:17:45 2020 +0100
Commit: Fridrich Štrba 
CommitDate: Tue Feb 18 14:17:45 2020 +0100

Extract palette resolution into a separate function

Change-Id: Ifd7e8c42c1ff2cd0986a467a27335af6b441b2f8

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 8d6ddba..eb43b39 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -734,476 +734,57 @@ double 
libcdr::CDRParser::readRectCoord(librevenge::RVNGInputStream *input)
 
 libcdr::CDRColor libcdr::CDRParser::readColor(librevenge::RVNGInputStream 
*input)
 {
-  unsigned short colorModel = 0;
-  unsigned colorValue = 0;
+  libcdr::CDRColor tmpColor;
+
   if (m_version >= 500)
   {
-colorModel = readU16(input);
-if (colorModel == 0x01 && m_version >= 1300)
-  colorModel = 0x19;
-if (colorModel == 0x19 || colorModel == 0x1e)
-{
-  unsigned char r = 0;
-  unsigned char g = 0;
-  unsigned char b = 0;
-  unsigned char c = 0;
-  unsigned char m = 0;
-  unsigned char y = 0;
-  unsigned char k = 100;
-  unsigned short paletteID = 0;
-  /* A bug in CorelDraw x7 creates a corrupted file. If we meet colorModel 
of 0x1e,
-   * it is actually colorModel 0x19 and paletteId 0x1e */
-  if (colorModel == 0x1e)
-  {
-colorModel = 0x19;
-paletteID = 0x1e;
-  }
-  else
-  {
-paletteID = readU16(input);
-input->seek(4, librevenge::RVNG_SEEK_CUR);
-  }
-  unsigned short ix = readU16(input);
-  unsigned short tint = readU16(input);
-  switch (paletteID)
-  {
-  case 0x03:
-if (ix > 0
-&& ix <= sizeof(palette_19_03_C)/sizeof(palette_19_03_C[0])
-&& ix <= sizeof(palette_19_03_M)/sizeof(palette_19_03_M[0])
-&& ix <= sizeof(palette_19_03_Y)/sizeof(palette_19_03_Y[0])
-&& ix <= sizeof(palette_19_03_K)/sizeof(palette_19_03_K[0]))
-{
-  c = palette_19_03_C[ix-1];
-  m = palette_19_03_M[ix-1];
-  y = palette_19_03_Y[ix-1];
-  k = palette_19_03_K[ix-1];
-}
-break;
-  case 0x08:
-if (ix > 0
-&& ix <= sizeof(palette_19_08_C)/sizeof(palette_19_08_C[0])
-&& ix <= sizeof(palette_19_08_M)/sizeof(palette_19_08_M[0])
-&& ix <= sizeof(palette_19_08_Y)/sizeof(palette_19_08_Y[0])
-&& ix <= sizeof(palette_19_08_K)/sizeof(palette_19_08_K[0]))
-{
-  c = palette_19_08_C[ix-1];
-  m = palette_19_08_M[ix-1];
-  y = palette_19_08_Y[ix-1];
-  k = palette_19_08_K[ix-1];
-}
-break;
-  case 0x09:
-if (ix > 0
-&& ix <= sizeof(palette_19_09_L)/sizeof(palette_19_09_L[0])
-&& ix <= sizeof(palette_19_09_A)/sizeof(palette_19_09_A[0])
-&& ix <= sizeof(palette_19_09_B)/sizeof(palette_19_09_B[0]))
-{
-  colorValue = palette_19_09_B[ix-1];
-  colorValue <<= 8;
-  colorValue |= palette_19_09_A[ix-1];
-  colorValue <<= 8;
-  colorValue |= palette_19_09_L[ix-1];
-}
-break;
-  case 0x0a:
-if (ix > 0
-&& ix <= sizeof(palette_19_0A_C)/sizeof(palette_19_0A_C[0])
-&& ix <= sizeof(palette_19_0A_M)/sizeof(palette_19_0A_M[0])
-&& ix <= sizeof(palette_19_0A_Y)/sizeof(palette_19_0A_Y[0])
-&& ix <= sizeof(palette_19_0A_K)/sizeof(palette_19_0A_K[0]))
-{
-  c = palette_19_0A_C[ix-1];
-  m = palette_19_0A_M[ix-1];
-  y = palette_19_0A_Y[ix-1];
-  k = palette_19_0A_K[ix-1];
-}
-break;
-  case 0x0b:
-if (ix > 0
-&& ix <= sizeof(palette_19_0B_C)/sizeof(palette_19_0B_C[0])
-&& ix <= sizeof(palette_19_0B_M)/sizeof(palette_19_0B_M[0])
-&& ix <= sizeof(palette_19_0B_Y)/sizeof(palette_19_0B_Y[0])
-&& ix <= sizeof(palette_19_0B_K)/sizeof(palette_19_0B_K[0]))
-{
-  c = palette_19_0B_C[ix-1];
-  m = palette_19_0B_M[ix-1];
-  y = palette_19_0B_Y[ix-1];
-  k = palette_19_0B_K[ix-1];
-}
-break;
-  case 0x11:
-if (ix > 0
-&& ix <= sizeof(palette_19_11_C)/sizeof(palette_19_11_C[0])
-&& ix <= sizeof(palette_19_11_M)/sizeof(palette_19_11_M[0])
-&& ix <= sizeof(palette_19_11_Y)/sizeof(palette_19_11_Y[0])
-&& ix <= sizeof(palette_19_11_K)/sizeof(palette_19_11_K[0]))
-{
-  c = palette_19_11_C[ix-1];
-  m = palette_19_11_M[ix-1];
-  y = palette_19_11_Y[ix-1];
-  k = palette_19_11_K[ix-1];
-}
-break;
-  case 0x12

[Libreoffice-commits] libcdr.git: src/lib

2020-02-09 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |   35 +++
 1 file changed, 23 insertions(+), 12 deletions(-)

New commits:
commit a44d6bc1e586e3035431bdf68a53cf0b3f5c7579
Author: Fridrich Štrba 
AuthorDate: Sun Feb 9 16:47:46 2020 +0100
Commit: Fridrich Štrba 
CommitDate: Sun Feb 9 16:47:46 2020 +0100

Some progress of reading palettes in x16+ text colours

Change-Id: I6d08021d222b21c43cd0f29a1ed8d4aad21a45a5

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index 1cac4d5..8d6ddba 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -105,9 +105,10 @@ static void processNameForEncoding(librevenge::RVNGString 
&name, unsigned short
 static int parseColourString(const char *colourString, libcdr::CDRColor 
&colour, double &opacity)
 {
   using namespace boost::spirit::qi;
-  bool bRes = true;
+  bool bRes = false;
 
-  boost::optional colourModel;
+  boost::optional colourModel, colourPalette;
+  std::vector rest;
   std::vector val;
 
   if (colourString)
@@ -125,24 +126,31 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
 ("REGCOLOR", 20)
 ("SPOT", 25)
 ;
+symbols cpalette;
+cpalette.add
+("USER", 5)
+("FOCTONE", 8)
+;
 auto it = colourString;
 const auto end = it + std::strlen(it);
 bRes = phrase_parse(it, end,
 //  Begin grammar
 (
   (cmodel | omit[+alnum]) >> lit(',')
-  >> omit[+alnum] >> lit(',')
+  >> (cpalette | omit[+alnum]) >> lit(',')
   >> *(uint_ >> lit(','))
-  >> (repeat(8)[xdigit] >> '-' >> 
repeat(3)[repeat(4)[xdigit] >> '-'] >> repeat(12)[xdigit])
+  >> omit[(repeat(8)[xdigit] >> '-' >> 
repeat(3)[repeat(4)[xdigit] >> '-'] >> repeat(12)[xdigit])]
+  >> -(lit(',') >> *char_)
 ),
 //  End grammar
 space,
-colourModel, val)
+colourModel, colourPalette, val, rest)
&& it == end;
   }
+  rest.push_back(0);
 
-  // if (bRes)
-  //  return -1;
+  if (!bRes)
+return -1;
 
   if (colourModel)
 colour.m_colorModel = get(colourModel);
@@ -164,8 +172,13 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
   }
   else if (val.size() >= 2)
   {
-colour.m_colorValue = val[0];
-opacity = (double)val[1] / 100.0;
+if (colour.m_colorModel == 25)
+  colour.m_colorValue = (val[1] << 16) | val[0];
+else
+{
+  colour.m_colorValue = val[0];
+  opacity = (double)val[1] / 100.0;
+}
   }
   else if (val.size() >= 1)
   {
@@ -1018,9 +1031,7 @@ libcdr::CDRColor 
libcdr::CDRParser::readColor(librevenge::RVNGInputStream *input
 }
 break;
   default:
-colorValue = tint;
-colorValue <<= 16;
-colorValue |= ix;
+colorValue = (tint << 16) | ix;
 break;
   }
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2020-02-06 Thread Libreoffice Gerrit user
 src/lib/CDRCollector.cpp |   10 -
 src/lib/CDRParser.cpp|   50 ++-
 2 files changed, 46 insertions(+), 14 deletions(-)

New commits:
commit 2bdf2a9d5d2ef15c3af1434803d9b58b0bfa0a29
Author: Fridrich Štrba 
AuthorDate: Thu Feb 6 22:36:35 2020 +0100
Commit: Fridrich Štrba 
CommitDate: Thu Feb 6 22:36:35 2020 +0100

Some more work on parsing CDRx6+ character colours

Change-Id: Ia80c4efe9b6c3282a9ee92d9b75c9c16e1bfdc50

diff --git a/src/lib/CDRCollector.cpp b/src/lib/CDRCollector.cpp
index 0119a54..3f204d0 100644
--- a/src/lib/CDRCollector.cpp
+++ b/src/lib/CDRCollector.cpp
@@ -337,7 +337,6 @@ unsigned libcdr::CDRParserState::_getRGBColor(const 
CDRColor &color)
   case 0x01:
   case 0x02:
   case 0x15:
-  case 0x14:
   {
 double cmyk[4] =
 {
@@ -567,6 +566,15 @@ unsigned libcdr::CDRParserState::_getRGBColor(const 
CDRColor &color)
 blue = rgb[2];
 break;
   }
+  // Registration colour
+  case 0x14:
+  {
+red = (unsigned char)cdr_round(255.0 * col0 / 100.0);
+green = (unsigned char)cdr_round(255.0 * col0 / 100.0);
+blue = (unsigned char)cdr_round(255.0 * col0 / 100.0);
+break;
+  }
+
   default:
 break;
   }
diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index e27357d..1cac4d5 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -117,16 +117,23 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
 ("CMYK", 2)
 ("CMYK255", 3)
 ("RGB255", 5)
+("HSB", 6)
+("HLS", 7)
+("GRAY255", 9)
+("YIQ255", 11)
+("LAB255", 18)
+("REGCOLOR", 20)
+("SPOT", 25)
 ;
 auto it = colourString;
 const auto end = it + std::strlen(it);
 bRes = phrase_parse(it, end,
 //  Begin grammar
 (
-  (cmodel | omit[+alnum]) >> -lit(',')
-  >> omit[+alnum] >> -lit(',')
-  >> *(uint_ >> -lit(','))
-  >> (repeat(8)[alnum] >> '-' >> 
repeat(3)[repeat(4)[alnum] >> '-'] >> repeat(12)[alnum])
+  (cmodel | omit[+alnum]) >> lit(',')
+  >> omit[+alnum] >> lit(',')
+  >> *(uint_ >> lit(','))
+  >> (repeat(8)[xdigit] >> '-' >> 
repeat(3)[repeat(4)[xdigit] >> '-'] >> repeat(12)[xdigit])
 ),
 //  End grammar
 space,
@@ -134,8 +141,8 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
&& it == end;
   }
 
-  if (bRes)
-return -1;
+  // if (bRes)
+  //  return -1;
 
   if (colourModel)
 colour.m_colorModel = get(colourModel);
@@ -144,17 +151,34 @@ static int parseColourString(const char *colourString, 
libcdr::CDRColor &colour,
   {
 colour.m_colorValue = val[0] | (val[1] << 8) | (val[2] << 16) | (val[3] << 
24);
 opacity = (double)val[4] / 100.0;
-return 1;
   }
-
-  if (val.size() >= 4)
+  else if (val.size() >= 4)
   {
-colour.m_colorValue = val[0] | (val[1] << 8) | (val[2] << 16);
+if (colour.m_colorModel == 5)
+  colour.m_colorValue = val[2] | (val[1] << 8) | (val[0] << 16);
+else if (colour.m_colorModel == 6 || colour.m_colorModel == 7)
+  colour.m_colorValue = val[0] | (val[1] << 16) | (val[2] << 24);
+else
+  colour.m_colorValue = val[0] | (val[1] << 8) | (val[2] << 16);
 opacity = (double)val[3] / 100.0;
-return 1;
   }
-
-  return 0;
+  else if (val.size() >= 2)
+  {
+colour.m_colorValue = val[0];
+opacity = (double)val[1] / 100.0;
+  }
+  else if (val.size() >= 1)
+  {
+colour.m_colorValue = val[0];
+opacity = 1.0;
+  }
+  else
+  {
+CDR_DEBUG_MSG(("parseColourString --> bRes %i, size %lu, colorModel %u, 
colorValue 0x%.8x\n", bRes, val.size(), colour.m_colorModel, 
colour.m_colorValue));
+return 0;
+  }
+  CDR_DEBUG_MSG(("parseColourString --> bRes %i, size %lu, colorModel %u, 
colorValue 0x%.8x\n", bRes, val.size(), colour.m_colorModel, 
colour.m_colorValue));
+  return 1;
 }
 
 void normalizeAngle(double &angle)
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] libcdr.git: src/lib

2020-02-06 Thread Libreoffice Gerrit user
 src/lib/CDRParser.cpp |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit ace7b9c22c91c9f3b89af5f09dd25e5ac1254bb3
Author: Fridrich Štrba 
AuthorDate: Thu Feb 6 11:29:02 2020 +0100
Commit: Fridrich Štrba 
CommitDate: Thu Feb 6 11:29:02 2020 +0100

Typo in debug output

Change-Id: Ia7762b1946ba50d71a4d53bbcffb963701d3b320

diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp
index e57fb67..e27357d 100644
--- a/src/lib/CDRParser.cpp
+++ b/src/lib/CDRParser.cpp
@@ -1166,7 +1166,7 @@ libcdr::CDRColor 
libcdr::CDRParser::readColor(librevenge::RVNGInputStream *input
 colorValue = readU32(input);
   }
 
-  CDR_DEBUG_MSG(("CDRParser::redColor --> colorModel 0x%x -- colorValue 
0x%x\n", colorModel, colorValue));
+  CDR_DEBUG_MSG(("CDRParser::readColor --> colorModel 0x%x -- colorValue 
0x%x\n", colorModel, colorValue));
 
   return libcdr::CDRColor(colorModel, colorValue);
 }
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


  1   2   3   4   5   6   7   8   9   10   >