[Libreoffice-commits] .: 17 commits - dictionaries/de_AT dictionaries/de_CH dictionaries/de_DE dictionaries/fr_FR dictionaries/it_IT dictionaries/oc_FR dictionaries/pl_PL dictionaries/sk_SK graphite/graphite2-0.9.2.patch

Jan Holesovsky kendy at kemper.freedesktop.org
Tue May 31 02:03:59 PDT 2011


 dev/null                                      |binary
 dictionaries/de_AT/README_extension_owner.txt |   13 
 dictionaries/de_AT/README_hyph_de_AT.txt      |   47 
 dictionaries/de_AT/README_th_de_AT_v2.txt     |    4 
 dictionaries/de_AT/de_AT_frami.aff            |   10 
 dictionaries/de_AT/de_AT_frami.dic            |14355 +++++------
 dictionaries/de_AT/description.xml            |    2 
 dictionaries/de_AT/th_de_AT_v2.dat            |32970 +++++++++++++++-----------
 dictionaries/de_CH/README_extension_owner.txt |   76 
 dictionaries/de_CH/README_hyph_de_CH.txt      |   45 
 dictionaries/de_CH/README_th_de_CH_v2.txt     |    2 
 dictionaries/de_CH/de_CH_frami.aff            |   10 
 dictionaries/de_CH/de_CH_frami.dic            |14338 +++++------
 dictionaries/de_CH/description.xml            |    2 
 dictionaries/de_CH/th_de_CH_v2.dat            |18391 ++++++++++----
 dictionaries/de_DE/README_extension_owner.txt |   75 
 dictionaries/de_DE/README_hyph_de_DE.txt      |   47 
 dictionaries/de_DE/README_th_de_DE_v2.txt     |    4 
 dictionaries/de_DE/de_DE_frami.aff            |   10 
 dictionaries/de_DE/de_DE_frami.dic            |14330 +++++------
 dictionaries/de_DE/description.xml            |    2 
 dictionaries/de_DE/th_de_DE_v2.dat            |18498 ++++++++++----
 dictionaries/fr_FR/description.xml            |    4 
 dictionaries/fr_FR/makefile.mk                |    3 
 dictionaries/it_IT/description.xml            |    4 
 dictionaries/it_IT/makefile.mk                |    1 
 dictionaries/oc_FR/LICENCES-fr.txt            |    2 
 dictionaries/oc_FR/LICENSES-en.txt            |    6 
 dictionaries/oc_FR/README_oc_FR.txt           |    7 
 dictionaries/oc_FR/description.xml            |    2 
 dictionaries/oc_FR/oc_FR.aff                  |    7 
 dictionaries/pl_PL/description.xml            |    5 
 dictionaries/pl_PL/makefile.mk                |    1 
 dictionaries/sk_SK/description.xml            |    4 
 dictionaries/sk_SK/makefile.mk                |    1 
 graphite/graphite2-0.9.2.patch                |   49 
 36 files changed, 69110 insertions(+), 44217 deletions(-)

New commits:
commit ccf187be0b39dcd8e2ddeb8df6bdad1721bbb8f9
Merge: bfda37a... af2da2d...
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Tue May 31 10:52:20 2011 +0200

    Merge branch 'master' of git://anongit.freedesktop.org/libreoffice/libs-extern-sys
    
    Conflicts:
    	graphite/graphite2-0.9.2.patch

diff --cc graphite/graphite2-0.9.2.patch
index a775c1f,aca8b63..c6d7968
--- a/graphite/graphite2-0.9.2.patch
+++ b/graphite/graphite2-0.9.2.patch
@@@ -393,61 -391,24 +391,73 @@@ diff current src/List.
            0,0,0,0,0,0,0,0, 
  --- misc/graphite2-0.9.2/include/graphite2/Types.h	2011-02-12 16:54:16.000000000 +0100
  +++ misc/build/graphite2-0.9.2/include/graphite2/Types.h	2011-03-15 21:38:06.264788098 +0100
- @@ -36,7 +36,7 @@
-  };
+ @@ -36,19 +36,7 @@
   
   // Definitions for library publicly exported symbols
- -#if defined _WIN32 || defined __CYGWIN__
- +#if ( defined _WIN32 || defined __CYGWIN__ ) && !defined GR2_STATIC
-    #ifdef GR2_EXPORTING
-      #ifdef __GNUC__
-        #define GR2_API    __attribute__((dllexport))
+  #if defined _WIN32 || defined __CYGWIN__
+ -  #ifdef GR2_EXPORTING
+ -    #ifdef __GNUC__
+ -      #define GR2_API    __attribute__((dllexport))
+ -    #else
+ -      #define GR2_API    __declspec(dllexport)
+ -    #endif
+ -  #else
+ -    #ifdef __GNUC__
+ -      #define GR2_API    __attribute__((dllimport))
+ -    #else
+ -      #define GR2_API    __declspec(dllimport)
+ -    #endif
+ -  #endif
+ +  #define GR2_API
+    #define GR2_LOCAL
+  #else
+    #if __GNUC__ >= 4
 +diff -r b3a86877ec68 src/Pass.cpp
 +--- misc/build/graphite2-0.9.2/src/Pass.cpp	Wed May 11 09:34:52 2011 +0700
 ++++ misc/build/graphite2-0.9.2/src/Pass.cpp	Mon May 16 13:54:00 2011 +0700
 +@@ -513,6 +513,7 @@
 + bool Pass::testConstraint(const Rule &r, Machine & m) const
 + {
 +     if (r.sort - r.preContext > (int)m.slotMap().size() - m.slotMap().context())    return false;
 ++    if (m.slotMap().context() - r.preContext < 0) return false;
 +     if (!*r.constraint)                 return true;
 +     assert(r.constraint->constraint());
 + 
 +@@ -527,6 +528,7 @@
 +     Machine::status_t status = Machine::finished;
 +     for (int n = r.sort; n && map; --n, ++map)
 +     {
 ++	if (!*map) continue;
 +         const int32 ret = r.constraint->run(m, map, status);
 +         if (!ret || status != Machine::finished)
 +         {
 +diff -r b3a86877ec68 src/Rule.h
 +--- misc/build/graphite2-0.9.2/src/Rule.h	Wed May 11 09:34:52 2011 +0700
 ++++ misc/build/graphite2-0.9.2/src/Rule.h	Mon May 16 13:54:00 2011 +0700
 +@@ -187,8 +187,9 @@
 +   // Merge the new sorted rules list into the current sorted result set.
 +   const RuleEntry * lre = begin(), * rre = state.rules;
 +   RuleEntry * out = m_rules + (m_begin == m_rules)*MAX_RULES;    
 ++  const RuleEntry * lrend = out + MAX_RULES;
 +   m_begin = out; 
 +-  while (lre != end())
 ++  while (lre != end() && out != lrend)
 +   {
 +     if (*lre < *rre)      *out++ = *lre++;
 +     else if (*rre < *lre) { *out++ = *rre++; }
 +@@ -196,12 +197,12 @@
 + 
 +     if (rre == state.rules_end) 
 +     { 
 +-      while (lre != end()) { *out++ = *lre++; }
 ++      while (lre != end() && out != lrend) { *out++ = *lre++; }
 +       m_end = out;
 +       return;
 +     }
 +   }
 +-  while (rre != state.rules_end) { *out++ = *rre++; }
 ++  while (rre != state.rules_end && out != lrend) { *out++ = *rre++; }
 +   m_end = out;
 + }
 + 
 +
commit bfda37a0355330bc61aac804da9f93af632e1a7f
Merge: 2bc91e9... 96a30ea...
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Mon May 30 13:12:14 2011 +0200

    Merge commit 'libreoffice-3.4.0.2'

commit 96a30ea682b31116fe0de83dd6589b04d8147e27
Author: Petr Mladek <pmladek at suse.cz>
Date:   Tue May 24 19:29:13 2011 +0200

    Version 3.4.0.2, tag libreoffice-3.4.0.2 (3.4.0-rc2)
commit 789b4106abb8644a6190c619c42977ec385576e7
Author: Andras Timar <atimar at suse.com>
Date:   Mon May 23 11:41:16 2011 +0200

    remove added license header that caused parse error (fdo#37433)
    
    we have the license text in the README_hyph_* files anyway
    
    Signed-off-by: Petr Mladek <pmladek at suse.cz>
    Signed-off-by: Luboš Luňák <l.lunak at suse.cz>

diff --git a/dictionaries/de_AT/hyph_de_AT.dic b/dictionaries/de_AT/hyph_de_AT.dic
index 50b229c..f83c809 100644
--- a/dictionaries/de_AT/hyph_de_AT.dic
+++ b/dictionaries/de_AT/hyph_de_AT.dic
@@ -1,32 +1,3 @@
-##################################################################################
-# This is the hyphenation file "hyph_de_AT.dic" of the German dictionary	 	 #
-# according to the reform of 2006-08-01	(i.e. reformed or new spelling)			 #
-#																			 	 #
-# Language: German (de AT)													 	 #
-#																			 	 #
-# Version:  2011-05-05 (author and license information in source file added)	 #
-#																			 	 #
-# Origin:   Based on the TeX hyphenation tables	"dehyphn.tex", revision level 31.#
-#           http://www.ctan.org/tex-archive/language/hyphenation/dehyphn.tex 	 #
-#		    The TeX hyphenation tables are released under the LaTeX Project  	 #
-#		    Public License (LPPL)											 	 #
-#																			 	 #
-# License:  OpenOffice.org Adaptions of this package are licensed under the  	 #
-#           GNU Lesser General Public License (LGPL 2 or later) and are under 	 #
-#		    Copyright by													 	 #
-#																			 	 #
-# Author:   conversion author is Marco Huggenberger<marco at by-night.ch>		 	 #
-#           revised conversion and extensions: Daniel Naber					 	 #
-#           http://qa.openoffice.org/issues/show_bug.cgi?id=26355			 	 #
-#																			 	 #
-# Please note, this dictionary is based on syllable matching patterns		 	 #
-# and thus should be suitable under other variations of German				 	 #
-#																			 	 #
-# HYPH de DE hyph_de_DE														 	 #
-# HYPH de AT hyph_de_AT														 	 #
-# HYPH de CH hyph_de_CH														 	 #
-#																			 	 #
-##################################################################################
 ISO8859-1
 .aa6l
 .6a1ba
diff --git a/dictionaries/de_CH/hyph_de_CH.dic b/dictionaries/de_CH/hyph_de_CH.dic
index 9c541b2..f83c809 100644
--- a/dictionaries/de_CH/hyph_de_CH.dic
+++ b/dictionaries/de_CH/hyph_de_CH.dic
@@ -1,32 +1,3 @@
-##################################################################################
-# This is the hyphenation file "hyph_de_CH.dic" of the German dictionary	 	 #
-# according to the reform of 2006-08-01	(i.e. reformed or new spelling)			 #
-#																			 	 #
-# Language: German (de CH)													 	 #
-#																			 	 #
-# Version:  2011-05-05 (author and license information in source file added)	 #
-#																			 	 #
-# Origin:   Based on the TeX hyphenation tables	"dehyphn.tex", revision level 31.#
-#           http://www.ctan.org/tex-archive/language/hyphenation/dehyphn.tex 	 #
-#		    The TeX hyphenation tables are released under the LaTeX Project  	 #
-#		    Public License (LPPL)											 	 #
-#																			 	 #
-# License:  OpenOffice.org Adaptions of this package are licensed under the  	 #
-#           GNU Lesser General Public License (LGPL 2 or later) and are under 	 #
-#		    Copyright by													 	 #
-#																			 	 #
-# Author:   conversion author is Marco Huggenberger<marco at by-night.ch>		 	 #
-#           revised conversion and extensions: Daniel Naber					 	 #
-#           http://qa.openoffice.org/issues/show_bug.cgi?id=26355			 	 #
-#																			 	 #
-# Please note, this dictionary is based on syllable matching patterns		 	 #
-# and thus should be suitable under other variations of German				 	 #
-#																			 	 #
-# HYPH de DE hyph_de_DE														 	 #
-# HYPH de AT hyph_de_AT														 	 #
-# HYPH de CH hyph_de_CH														 	 #
-#																			 	 #
-##################################################################################
 ISO8859-1
 .aa6l
 .6a1ba
diff --git a/dictionaries/de_DE/hyph_de_DE.dic b/dictionaries/de_DE/hyph_de_DE.dic
index bcf16d2..f83c809 100644
--- a/dictionaries/de_DE/hyph_de_DE.dic
+++ b/dictionaries/de_DE/hyph_de_DE.dic
@@ -1,32 +1,3 @@
-##################################################################################
-# This is the hyphenation file "hyph_de_DE.dic" of the German dictionary	 	 #
-# according to the reform of 2006-08-01	(i.e. reformed or new spelling)			 #
-#																			 	 #
-# Language: German (de DE)													 	 #
-#																			 	 #
-# Version:  2011-05-05 (author and license information in source file added)	 #
-#																			 	 #
-# Origin:   Based on the TeX hyphenation tables	"dehyphn.tex", revision level 31.#
-#           http://www.ctan.org/tex-archive/language/hyphenation/dehyphn.tex 	 #
-#		    The TeX hyphenation tables are released under the LaTeX Project  	 #
-#		    Public License (LPPL)											 	 #
-#																			 	 #
-# License:  OpenOffice.org Adaptions of this package are licensed under the  	 #
-#           GNU Lesser General Public License (LGPL 2 or later) and are under 	 #
-#		    Copyright by													 	 #
-#																			 	 #
-# Author:   conversion author is Marco Huggenberger<marco at by-night.ch>		 	 #
-#           revised conversion and extensions: Daniel Naber					 	 #
-#           http://qa.openoffice.org/issues/show_bug.cgi?id=26355			 	 #
-#																			 	 #
-# Please note, this dictionary is based on syllable matching patterns		 	 #
-# and thus should be suitable under other variations of German				 	 #
-#																			 	 #
-# HYPH de DE hyph_de_DE														 	 #
-# HYPH de AT hyph_de_AT														 	 #
-# HYPH de CH hyph_de_CH														 	 #
-#																			 	 #
-##################################################################################
 ISO8859-1
 .aa6l
 .6a1ba
commit dde9106809692f25f49d48bed567d03d71043eae
Author: Petr Mladek <pmladek at suse.cz>
Date:   Tue May 17 20:49:48 2011 +0200

    Branch libreoffice-3-4-0
    
    This is 'libreoffice-3-4-0' - the stable branch for the 3.4.0 release.
    Only very safe changes, reviewed by three people are allowed.
    
    If you want to commit more complicated fix for the next 3.4.x release,
    please use the 'libreoffice-3-4' branch.
    
    If you want to build something cool, unstable, and risky, use master.
commit e6bafbfcda44256080d6a7acba3580c1bf7e76e7
Author: Petr Mladek <pmladek at suse.cz>
Date:   Tue May 17 19:55:36 2011 +0200

    Version 3.4.0.1, tag libreoffice-3.4.0.1 (3.4.0-rc1)
commit 2b46dd6afee72839d96d0646dbf52cfe3a9a7236
Author: Martin Hosken <martin_hosken at sil.org>
Date:   Mon May 16 20:07:36 2011 +0200

    Fix graphite2-0.9.2 particulary for LinLibertineG (fdo#36510, fdo#36752)
    
    Signed-off-by: Petr Mladek <pmladek at suse.cz>

diff --git a/graphite/graphite2-0.9.2.patch b/graphite/graphite2-0.9.2.patch
index 35f0bd2..a775c1f 100644
--- a/graphite/graphite2-0.9.2.patch
+++ b/graphite/graphite2-0.9.2.patch
@@ -402,3 +402,52 @@ diff current src/List.h
    #ifdef GR2_EXPORTING
      #ifdef __GNUC__
        #define GR2_API    __attribute__((dllexport))
+diff -r b3a86877ec68 src/Pass.cpp
+--- misc/build/graphite2-0.9.2/src/Pass.cpp	Wed May 11 09:34:52 2011 +0700
++++ misc/build/graphite2-0.9.2/src/Pass.cpp	Mon May 16 13:54:00 2011 +0700
+@@ -513,6 +513,7 @@
+ bool Pass::testConstraint(const Rule &r, Machine & m) const
+ {
+     if (r.sort - r.preContext > (int)m.slotMap().size() - m.slotMap().context())    return false;
++    if (m.slotMap().context() - r.preContext < 0) return false;
+     if (!*r.constraint)                 return true;
+     assert(r.constraint->constraint());
+ 
+@@ -527,6 +528,7 @@
+     Machine::status_t status = Machine::finished;
+     for (int n = r.sort; n && map; --n, ++map)
+     {
++	if (!*map) continue;
+         const int32 ret = r.constraint->run(m, map, status);
+         if (!ret || status != Machine::finished)
+         {
+diff -r b3a86877ec68 src/Rule.h
+--- misc/build/graphite2-0.9.2/src/Rule.h	Wed May 11 09:34:52 2011 +0700
++++ misc/build/graphite2-0.9.2/src/Rule.h	Mon May 16 13:54:00 2011 +0700
+@@ -187,8 +187,9 @@
+   // Merge the new sorted rules list into the current sorted result set.
+   const RuleEntry * lre = begin(), * rre = state.rules;
+   RuleEntry * out = m_rules + (m_begin == m_rules)*MAX_RULES;    
++  const RuleEntry * lrend = out + MAX_RULES;
+   m_begin = out; 
+-  while (lre != end())
++  while (lre != end() && out != lrend)
+   {
+     if (*lre < *rre)      *out++ = *lre++;
+     else if (*rre < *lre) { *out++ = *rre++; }
+@@ -196,12 +197,12 @@
+ 
+     if (rre == state.rules_end) 
+     { 
+-      while (lre != end()) { *out++ = *lre++; }
++      while (lre != end() && out != lrend) { *out++ = *lre++; }
+       m_end = out;
+       return;
+     }
+   }
+-  while (rre != state.rules_end) { *out++ = *rre++; }
++  while (rre != state.rules_end && out != lrend) { *out++ = *rre++; }
+   m_end = out;
+ }
+ 
+
commit 6adac1ade2de3e7e8ad5812a2d9c59e45013d7c3
Author: Petr Mladek <pmladek at suse.cz>
Date:   Mon May 16 20:05:14 2011 +0200

    Revert "Fix graphite2 particulary for LinLibertineG"
    
    caused many build problems on Windows; too late to do this change
    
    This reverts commit 1dbaab9692545a9c8c032a886932a7626e48dbe9.

diff --git a/graphite/graphite-2.3.1_debug.patch b/graphite/graphite-2.3.1_debug.patch
new file mode 100644
index 0000000..583fac7
--- /dev/null
+++ b/graphite/graphite-2.3.1_debug.patch
@@ -0,0 +1,13 @@
+--- misc/silgraphite-2.3.1/engine/src/segment/SegmentAux.cpp	2008-08-21 16:24:32.000000000 +0200
++++ misc/build/silgraphite-2.3.1/engine/src/segment/SegmentAux.cpp	2011-02-21 13:22:23.159834368 +0100
+@@ -247,7 +247,9 @@
+ GlyphSetIterator::reference GlyphSetIterator::operator*() const
+ {
+ 	assert(m_pseg != 0);
+-	assert(m_vit != std::vector<int>::const_iterator());
++        // #i116227# the check below is well meant but breaks itself when using stlport with debug facilities
++        // a valid iterator cannot be compared to an empty one in that case
++	// assert(m_vit != std::vector<int>::const_iterator());
+ 														// in the case of a non-contiguous list
+ 	return m_pseg->m_prgginf[(*m_vit) - m_pseg->m_isloutGinf0];
+ }
diff --git a/graphite/graphite2-0.9.2.patch b/graphite/graphite2-0.9.2.patch
new file mode 100644
index 0000000..35f0bd2
--- /dev/null
+++ b/graphite/graphite2-0.9.2.patch
@@ -0,0 +1,404 @@
+diff -r 5369cdd12120 CMakeLists.txt
+--- misc/build/graphite2-0.9.2/CMakeLists.txt	Sat Feb 12 22:54:16 2011 +0700
++++ misc/build/graphite2-0.9.2/CMakeLists.txt	Fri Feb 18 16:05:40 2011 +0700
+@@ -61,7 +61,7 @@
+ add_subdirectory(gr2fonttest)
+ add_subdirectory(tests)
+ add_subdirectory(doc)
+-set(version 0.0.0)
++set(version 2.0.0)
+ set(libdir ${CMAKE_INSTALL_PREFIX}/lib)
+ set(includedir ${CMAKE_INSTALL_PREFIX}/include)
+ 
+diff -r 5369cdd12120 gr2fonttest/gr2FontTest.cpp
+--- misc/build/graphite2-0.9.2/gr2fonttest/gr2FontTest.cpp	Sat Feb 12 22:54:16 2011 +0700
++++ misc/build/graphite2-0.9.2/gr2fonttest/gr2FontTest.cpp	Fri Feb 18 16:05:40 2011 +0700
+@@ -758,13 +758,11 @@
+         float advanceWidth = gr_seg_advance_X(pSeg);
+         fprintf(log, "Advance width = %6.1f\n", advanceWidth);
+         unsigned int numchar = gr_seg_n_cinfo(pSeg);
+-        gr_uint32 *firsts = (gr_uint32 *)malloc(numchar * sizeof(gr_uint32));
+-        gr_uint32 *lasts = (gr_uint32 *)malloc(numchar * sizeof(gr_uint32));
+-        gr_seg_char_slots(pSeg, firsts, lasts, 0, 0);
+         fprintf(log, "\nChar\tUnicode\tBefore\tAfter\n");
+         for (unsigned int j = 0; j < numchar; j++)
+         {
+-            fprintf(log, "%d\t%04X\t%d\t%d\n", j, gr_cinfo_unicode_char(gr_seg_cinfo(pSeg, j)), firsts[j], lasts[j]);
++            const gr_char_info *c = gr_seg_cinfo(pSeg, j);
++            fprintf(log, "%d\t%04X\t%d\t%d\n", j, gr_cinfo_unicode_char(c), gr_cinfo_before(c), gr_cinfo_after(c));
+         }
+         free(map);
+         gr_seg_destroy(pSeg);
+diff -r 5369cdd12120 include/graphite2/Segment.h
+--- misc/build/graphite2-0.9.2/include/graphite2/Segment.h	Sat Feb 12 22:54:16 2011 +0700
++++ misc/build/graphite2-0.9.2/include/graphite2/Segment.h	Fri Feb 18 16:05:40 2011 +0700
+@@ -135,6 +135,20 @@
+   */
+ GR2_API int gr_cinfo_break_weight(const gr_char_info* p/*not NULL*/);
+ 
++/** Returns the slot index that after this character is after in the slot stream
++  *
++  * @return after slot index between 0 and gr_seg_n_slots()
++  * @param p Pointer to charinfo to return information on.
++  */
++GR2_API int gr_cinfo_after(const gr_char_info* p/*not NULL*/);
++
++/** Returns the slot index that before this character is before in the slot stream
++  *
++  * @return before slot index between 0 and gr_seg_n_slots()
++  * @param p Pointer to charinfo to return information on.
++  */
++GR2_API int gr_cinfo_before(const gr_char_info* p/*not NULL*/);
++
+ /** Returns the number of unicode characters in a string.
+   *
+   * @return number of characters in the string
+@@ -205,22 +219,6 @@
+   */
+ GR2_API const gr_slot* gr_seg_last_slot(gr_segment* pSeg/*not NULL*/);    //may give a base slot or a slot which is attached to another
+ 
+-/** Calculates the underlying character to glyph associations.
+-  *
+-  * @param pSeg  Pointer to the segment we want information on.
+-  * @param begins An array of gr_seg_n_cinfo integers giving slot index for each
+-  *               charinfo. The value corresponds to which slot a cursor would be before
+-  *               if an underlying cursor were before the charinfo at this index.
+-  * @param ends  An array of gr_seg_n_cinfo integers giving the slot index for each
+-  *              charinfo. The value at an index corresponds to which slot a cursor would
+-  *              be after if an underlying cursor were after the charinfo at the index.
+-  * @param sbegins   An array of gr_seg_n_cinfo gr_slot * corresponding to the gr_slot at
+-  *                  index given by begins. The pointer to the array may be NULL.
+-  * @param sends An array of gr_seg_n_cinfo gr_slot * corresponding to the gr_slot at the
+-  *              index given by ends. The pointer to the array may be NULL.
+-  */
+-GR2_API void gr_seg_char_slots(const gr_segment *pSeg, gr_uint32 *begins, gr_uint32 *ends, gr_slot **sbegins, gr_slot **sends);
+-
+ /** Returns the next slot along in the segment.
+   *
+   * Slots are held in a linked list. This returns the next in the linked list. The slot
+@@ -306,6 +304,13 @@
+   */
+ GR2_API int gr_slot_after(const gr_slot* p/*not NULL*/);
+ 
++/** Returns the index of this slot in the segment
++  *
++  * Returns the index given to this slot during final positioning. This corresponds to the value returned br gr_cinfo_before()
++  * and gr_cinfo_after()
++  */
++GR2_API unsigned int gr_slot_index(const gr_slot* p/*not NULL*/);
++
+ /** Return a slot attribute value
+   *
+   * Given a slot and an attribute along with a possible subattribute, return the
+diff -r 5369cdd12120 src/CMakeLists.txt
+--- misc/build/graphite2-0.9.2/src/CMakeLists.txt	Sat Feb 12 22:54:16 2011 +0700
++++ misc/build/graphite2-0.9.2/src/CMakeLists.txt	Fri Feb 18 16:05:40 2011 +0700
+@@ -25,7 +25,7 @@
+ INCLUDE(CheckTypeSize)
+ INCLUDE(CheckCXXSourceCompiles)
+ 
+-set(GRAPHITE_API_MAJOR 1)
++set(GRAPHITE_API_MAJOR 2)
+ set(GRAPHITE_API_MINOR 0)
+ set(GRAPHITE_API_AGE 0)
+ set(GRAPHITE_SO_VERSION ${GRAPHITE_API_MAJOR}.${GRAPHITE_API_MINOR}.${GRAPHITE_API_AGE})
+diff -r 5369cdd12120 src/CharInfo.h
+--- misc/build/graphite2-0.9.2/src/CharInfo.h	Sat Feb 12 22:54:16 2011 +0700
++++ misc/build/graphite2-0.9.2/src/CharInfo.h	Fri Feb 18 16:05:40 2011 +0700
+@@ -29,16 +29,23 @@
+ {
+ 
+ public:
++    CharInfo() : m_before(-1), m_after(0) {}
+     void init(int cid) { m_char = cid; }
+     unsigned int unicodeChar() const { return m_char; }
+     void feats(int offset) { m_featureid = offset; }
+     int fid() const { return m_featureid; }
+     int breakWeight() const { return m_break; }
+     void breakWeight(int val) { m_break = val; }
++    int after() const { return m_after; }
++    void after(int val) { m_after = val; }
++    int before() const { return m_before; }
++    void before(int val) { m_before = val; }
+ 
+     CLASS_NEW_DELETE
+ private:
+     int m_char;     // Unicode character from character stream
++    int m_before;   // slot index before us, comes before
++    int m_after;    // slot index after us, comes after
+     uint8 m_featureid;	// index into features list in the segment
+     int8 m_break;	// breakweight coming from lb table
+ };
+diff -r 5369cdd12120 src/Segment.cpp
+--- misc/build/graphite2-0.9.2/src/Segment.cpp	Sat Feb 12 22:54:16 2011 +0700
++++ misc/build/graphite2-0.9.2/src/Segment.cpp	Fri Feb 18 16:05:40 2011 +0700
+@@ -283,6 +283,7 @@
+ {
+     Position currpos;
+     Slot *s, *ls = NULL;
++    int iSlot = 0;
+     float cMin = 0.;
+     float clusterMin = 0.;
+     Rect bbox;
+@@ -292,8 +293,16 @@
+     
+     if (m_dir & 1)
+     {
+-        for (s = iEnd; s && s != iStart->prev(); s = s->prev())
++        for (s = iEnd, iSlot = m_numGlyphs - 1; s && s != iStart->prev(); s = s->prev(), --iSlot)
+         {
++            for (int j = s->before(); j <= s->after(); j++)
++            {
++                CharInfo *c = charinfo(j);
++                if (c->before() == -1 || iSlot < c->before()) c->before(iSlot);
++                if (c->after() < iSlot) c->after(iSlot);
++            }
++            s->index(iSlot);
++
+             if (s->isBase())
+             {
+                 clusterMin = currpos.x;
+@@ -306,8 +315,16 @@
+     }
+     else
+     {
+-        for (s = iStart; s && s != iEnd->next(); s = s->next())
++        for (s = iStart, iSlot = 0; s && s != iEnd->next(); s = s->next(), ++iSlot)
+         {
++            for (int j = s->before(); j <= s->after(); j++)
++            {
++                CharInfo *c = charinfo(j);
++                if (c->before() == -1 || iSlot < c->before()) c->before(iSlot);
++                if (c->after() < iSlot) c->after(iSlot);
++            }
++            s->index(iSlot);
++
+             if (s->isBase())
+             {
+                 clusterMin = currpos.x;
+@@ -321,35 +338,6 @@
+     if (iStart == m_first && iEnd == m_last) m_advance = currpos;
+ }
+ 
+-
+-void Segment::getCharSlots(uint32 *begins, uint32 *ends, Slot **sbegins, Slot **sends) const
+-{
+-    Slot *s;
+-    uint32 i;
+-    if (!begins || !ends) return;
+-    memset(begins, 0xFF, m_numCharinfo * sizeof(uint32));
+-    memset(ends, 0, m_numCharinfo * sizeof(uint32));
+-    
+-    for (s = m_first, i = 0; s; s = s->next(), i++)
+-    {
+-        for (int j = s->before(); j <= s->after(); j++)
+-        {
+-            assert(j >= 0);
+-            assert(j < static_cast<int>(m_numCharinfo));
+-            if (i < begins[j])
+-            {
+-                begins[j] = i;
+-                if (sbegins) sbegins[j] = s;
+-            }
+-            if (i > ends[j])
+-            {
+-                ends[j] = i;
+-                if (sends) sends[j] = s;
+-            }
+-        }
+-    }
+-}
+-
+ #ifndef DISABLE_TRACING
+ void Segment::logSegment(gr_encform enc, const void* pStart, size_t nChars) const
+ {
+diff -r 5369cdd12120 src/Segment.h
+--- misc/build/graphite2-0.9.2/src/Segment.h	Sat Feb 12 22:54:16 2011 +0700
++++ misc/build/graphite2-0.9.2/src/Segment.h	Fri Feb 18 16:05:40 2011 +0700
+@@ -118,7 +118,6 @@
+     int defaultOriginal() const { return m_defaultOriginal; }
+     const Face * getFace() const { return m_face; }
+     const Features & getFeatures(unsigned int /*charIndex*/) { assert(m_feats.size() == 1); return m_feats[0]; }
+-    void getCharSlots(uint32 *begins, uint32 *ends, Slot **sbegins, Slot **sends) const;
+ 
+     CLASS_NEW_DELETE
+ 
+diff -r 5369cdd12120 src/Slot.cpp
+--- misc/build/graphite2-0.9.2/src/Slot.cpp	Sat Feb 12 22:54:16 2011 +0700
++++ misc/build/graphite2-0.9.2/src/Slot.cpp	Fri Feb 18 16:05:40 2011 +0700
+@@ -188,15 +188,15 @@
+     }
+ }
+ 
+-int Slot::getAttr(const Segment *seg, attrCode index, uint8 subindex) const
++int Slot::getAttr(const Segment *seg, attrCode ind, uint8 subindex) const
+ {
+     if (!this) return 0;
+-    if (index == gr_slatUserDefnV1)
++    if (ind == gr_slatUserDefnV1)
+     {
+-        index = gr_slatUserDefn;
++        ind = gr_slatUserDefn;
+         subindex = 0;
+     }
+-    switch (index)
++    switch (ind)
+     {
+     case gr_slatAdvX :
+         return static_cast<int>(m_advance.x);
+@@ -259,15 +259,15 @@
+     }
+ }
+ 
+-void Slot::setAttr(Segment *seg, attrCode index, uint8 subindex, int16 value, const SlotMap & map)
++void Slot::setAttr(Segment *seg, attrCode ind, uint8 subindex, int16 value, const SlotMap & map)
+ {
+     if (!this) return;
+-    if (index == gr_slatUserDefnV1)
++    if (ind == gr_slatUserDefnV1)
+     {
+-        index = gr_slatUserDefn;
++        ind = gr_slatUserDefn;
+         subindex = 0;
+     }
+-    switch (index)
++    switch (ind)
+     {
+     case gr_slatAdvX :
+         m_advance = Position(value, m_advance.y);
+diff -r 5369cdd12120 src/Slot.h
+--- misc/build/graphite2-0.9.2/src/Slot.h	Sat Feb 12 22:54:16 2011 +0700
++++ misc/build/graphite2-0.9.2/src/Slot.h	Fri Feb 18 16:05:40 2011 +0700
+@@ -47,6 +47,8 @@
+     Position advancePos() const { return m_advance; }
+     int before() const { return m_before; }
+     int after() const { return m_after; }
++    uint32 index() const { return m_index; }
++    void index(uint32 val) { m_index = val; }
+ 
+     Slot();
+     void set(const Slot & slot, int charOffset, uint8 numUserAttr);
+@@ -58,10 +60,10 @@
+     void setGlyph(Segment *seg, uint16 glyphid, const GlyphFace * theGlyph = NULL);
+     void setRealGid(uint16 realGid) { m_realglyphid = realGid; }
+     void origin(const Position &pos) { m_position = pos + m_shift; }
+-    void originate(int index) { m_original = index; }
++    void originate(int ind) { m_original = ind; }
+     int original() const { return m_original; }
+-    void before(int index) { m_before = index; }
+-    void after(int index) { m_after = index; }
++    void before(int ind) { m_before = ind; }
++    void after(int ind) { m_after = ind; }
+     bool isBase() const { return (!m_parent); }
+     void update(int numSlots, int numCharInfo, Position &relpos);
+     Position finalise(const Segment* seg, const Font* font, Position* base, Rect* bbox, float* cMin, uint8 attrLevel, float *clusterMin);
+@@ -75,8 +77,8 @@
+     uint16 *userAttrs() { return m_userAttr; }
+     void userAttrs(uint16 *p) { m_userAttr = p; }
+     void markInsertBefore(bool state) { if (!state) m_flags |= SLOT_INSERT; else m_flags &= ~SLOT_INSERT; }
+-    void setAttr(Segment* seg, attrCode index, uint8 subindex, int16 val, const SlotMap & map);
+-    int getAttr(const Segment *seg, attrCode index, uint8 subindex) const;
++    void setAttr(Segment* seg, attrCode ind, uint8 subindex, int16 val, const SlotMap & map);
++    int getAttr(const Segment *seg, attrCode ind, uint8 subindex) const;
+     void attachTo(Slot *ap) { m_parent = ap; }
+     Slot *attachedTo() const { return m_parent; }
+     Slot* firstChild() const { return m_child; }
+@@ -96,8 +98,9 @@
+     unsigned short m_glyphid;        // glyph id
+     uint16 m_realglyphid;
+     uint32 m_original;	    // charinfo that originated this slot (e.g. for feature values)
+-    uint32 m_before;           // charinfo index of before association
+-    uint32 m_after;            // charinfo index of after association
++    uint32 m_before;        // charinfo index of before association
++    uint32 m_after;         // charinfo index of after association
++    uint32 m_index;         // slot index given to this slot during finalising
+     Slot *m_parent;         // index to parent we are attached to
+     Slot *m_child;          // index to first child slot that attaches to us
+     Slot *m_sibling;        // index to next child that attaches to our parent
+diff -r 5369cdd12120 src/gr_char_info.cpp
+--- misc/build/graphite2-0.9.2/src/gr_char_info.cpp	Sat Feb 12 22:54:16 2011 +0700
++++ misc/build/graphite2-0.9.2/src/gr_char_info.cpp	Fri Feb 18 16:05:40 2011 +0700
+@@ -39,4 +39,16 @@
+     return p->breakWeight();
+ }
+ 
+-} // extern "C"
+\ No newline at end of file
++int gr_cinfo_after(const gr_char_info *p/*not NULL*/)
++{
++    assert(p);
++    return p->after();
++}
++
++int gr_cinfo_before(const gr_char_info *p/*not NULL*/)
++{
++    assert(p);
++    return p->before();
++}
++
++} // extern "C"
+diff -r 5369cdd12120 src/gr_segment.cpp
+--- misc/build/graphite2-0.9.2/src/gr_segment.cpp	Sat Feb 12 22:54:16 2011 +0700
++++ misc/build/graphite2-0.9.2/src/gr_segment.cpp	Fri Feb 18 16:05:40 2011 +0700
+@@ -162,11 +162,5 @@
+     return static_cast<const gr_slot*>(pSeg->last());
+ }
+ 
+-void gr_seg_char_slots(const gr_segment *pSeg, gr_uint32 *begins, gr_uint32 *ends, gr_slot **sbegins, gr_slot **sends)
+-{
+-    assert(pSeg && begins && ends);
+-    pSeg->getCharSlots(begins, ends, reinterpret_cast<Slot**>(sbegins), reinterpret_cast<Slot**>(sends));
+-}
+-
+ 
+ } // extern "C"
+diff -r 5369cdd12120 src/gr_slot.cpp
+--- misc/build/graphite2-0.9.2/src/gr_slot.cpp	Sat Feb 12 22:54:16 2011 +0700
++++ misc/build/graphite2-0.9.2/src/gr_slot.cpp	Fri Feb 18 16:05:40 2011 +0700
+@@ -121,6 +121,12 @@
+     return p->after();
+ }
+ 
++unsigned int gr_slot_index(const gr_slot *p/*not NULL*/)
++{
++    assert(p);
++    return p->index();
++}
++
+ int gr_slot_attr(const gr_slot* p/*not NULL*/, const gr_segment* pSeg/*not NULL*/, gr_attrCode index, gr_uint8 subindex)
+ {
+     assert(p);
+diff current src/List.h
+--- misc/build/graphite2-0.9.2/src/List.h	Sat Feb 12 22:54:16 2011 +0700
++++ misc/build/graphite2-0.9.2/src/List.h	Fri Feb 18 16:05:40 2011 +0700
+@@ -51,6 +51,6 @@
+     template <typename I> 
+     Vector(I first, const I last)               : m_first(0), m_last(0), m_end(0) { insert(begin(), first, last); }
+-    ~Vector() { free(m_first); }
++    ~Vector() { clear(); free(m_first); }
+     
+     iterator            begin()         { return m_first; }
+     const_iterator      begin() const   { return m_first; }
+
+--- misc/graphite2-0.9.2/src/Code.cpp	2011-02-12 16:54:16.000000000 +0100
++++ misc/build/graphite2-0.9.2/src/Code.cpp	2011-03-11 11:28:11.700215286 +0100
+@@ -168,7 +168,7 @@
+         face.getGlyphFaceCache()->numAttrs(),
+         face.numFeatures(), 
+         {1,1,1,1,1,1,1,1, 
+-         1,1,1,1,1,1,1,-1, 
++         1,1,1,1,1,1,1,(uint8)-1, 
+          1,1,1,1,1,1,1,1, 
+          1,1,1,1,1,1,0,0, 
+          0,0,0,0,0,0,0,0, 
+--- misc/graphite2-0.9.2/include/graphite2/Types.h	2011-02-12 16:54:16.000000000 +0100
++++ misc/build/graphite2-0.9.2/include/graphite2/Types.h	2011-03-15 21:38:06.264788098 +0100
+@@ -36,7 +36,7 @@
+ };
+ 
+ // Definitions for library publicly exported symbols
+-#if defined _WIN32 || defined __CYGWIN__
++#if ( defined _WIN32 || defined __CYGWIN__ ) && !defined GR2_STATIC
+   #ifdef GR2_EXPORTING
+     #ifdef __GNUC__
+       #define GR2_API    __attribute__((dllexport))
diff --git a/graphite/graphite2-0.9.4.patch b/graphite/graphite2-0.9.4.patch
deleted file mode 100644
index e8e44a5..0000000
--- a/graphite/graphite2-0.9.4.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-diff -r b3a86877ec68 src/Pass.cpp
---- misc/build/graphite2-0.9.4/src/Pass.cpp	Wed May 11 09:34:52 2011 +0700
-+++ misc/build/graphite2-0.9.4/src/Pass.cpp	Mon May 16 14:23:58 2011 +0700
-@@ -513,6 +513,7 @@
- bool Pass::testConstraint(const Rule &r, Machine & m) const
- {
-     if (r.sort - r.preContext > (int)m.slotMap().size() - m.slotMap().context())    return false;
-+    if (m.slotMap().context() - r.preContext < 0) return false;
-     if (!*r.constraint)                 return true;
-     assert(r.constraint->constraint());
- 
-@@ -527,6 +528,7 @@
-     Machine::status_t status = Machine::finished;
-     for (int n = r.sort; n && map; --n, ++map)
-     {
-+	if (!*map) continue;
-         const int32 ret = r.constraint->run(m, map, status);
-         if (!ret || status != Machine::finished)
-         {
-diff -r b3a86877ec68 src/Rule.h
---- misc/build/graphite2-0.9.4/src/Rule.h	Wed May 11 09:34:52 2011 +0700
-+++ misc/build/graphite2-0.9.4/src/Rule.h	Mon May 16 14:23:58 2011 +0700
-@@ -187,8 +187,9 @@
-   // Merge the new sorted rules list into the current sorted result set.
-   const RuleEntry * lre = begin(), * rre = state.rules;
-   RuleEntry * out = m_rules + (m_begin == m_rules)*MAX_RULES;    
-+  const RuleEntry * lrend = out + MAX_RULES;
-   m_begin = out; 
--  while (lre != end())
-+  while (lre != end() && out != lrend)
-   {
-     if (*lre < *rre)      *out++ = *lre++;
-     else if (*rre < *lre) { *out++ = *rre++; }
-@@ -196,12 +197,12 @@
- 
-     if (rre == state.rules_end) 
-     { 
--      while (lre != end()) { *out++ = *lre++; }
-+      while (lre != end() && out != lrend) { *out++ = *lre++; }
-       m_end = out;
-       return;
-     }
-   }
--  while (rre != state.rules_end) { *out++ = *rre++; }
-+  while (rre != state.rules_end && out != lrend) { *out++ = *rre++; }
-   m_end = out;
- }
- 
-diff -r b3a86877ec68 src/opcodes.h
---- misc/build/graphite2-0.9.4/src/opcodes.h	Wed May 11 09:34:52 2011 +0700
-+++ misc/build/graphite2-0.9.4/src/opcodes.h	Mon May 16 14:23:58 2011 +0700
-@@ -274,6 +274,7 @@
-         {
-             seg.last()->next(newSlot);
-             newSlot->prev(seg.last());
-+	    newSlot->before(seg.last()->before());
-             seg.last(newSlot);
-         }
-         else
-@@ -286,10 +287,12 @@
-     {
-         iss->prev()->next(newSlot);
-         newSlot->prev(iss->prev());
-+	newSlot->before(iss->prev()->after());
-     }
-     else
-     {
-         newSlot->prev(NULL);
-+	newSlot->before(iss->before());
-         seg.first(newSlot);
-     }
-     newSlot->next(iss);
-@@ -297,10 +300,12 @@
-     {
-         iss->prev(newSlot);
-         newSlot->originate(iss->original());
-+	newSlot->after(iss->before());
-     }
-     else if (newSlot->prev())
-     {
-         newSlot->originate(newSlot->prev()->original());
-+	newSlot->after(newSlot->prev()->after());
-     }
-     else
-     {
commit 9eed809112af47790ac2744d72aa88cfd74b3a06
Author: Petr Mladek <pmladek at suse.cz>
Date:   Mon May 16 20:04:12 2011 +0200

    Revert "And the makefiles"
    
    caused many build problems on Windows; too late to do this change
    
    This reverts commit 7911b8ed64ba69322dc5b82177c7149c39c3604e.

diff --git a/graphite/graphite_make.patch b/graphite/graphite_make.patch
index 6db7758..f28ed6d 100644
--- a/graphite/graphite_make.patch
+++ b/graphite/graphite_make.patch
@@ -1,5 +1,5 @@
---- misc/build/graphite2-0.9.4/src/makefile.mk  Fri Mar  4 10:20:30 2011 +0700
-+++ misc/build/graphite2-0.9.4/src/makefile.mk  Fri Mar  4 10:20:30 2011 +0700
+--- misc/build/graphite2-0.9.2/src/makefile.mk  Fri Mar  4 10:20:30 2011 +0700
++++ misc/build/graphite2-0.9.2/src/makefile.mk  Fri Mar  4 10:20:30 2011 +0700
 @@ -1,1 +1,54 @@
 -dummy
 +EXTERNAL_WARNINGS_NOT_ERRORS := TRUE
diff --git a/graphite/makefile.mk b/graphite/makefile.mk
index 8369080..e580b40 100644
--- a/graphite/makefile.mk
+++ b/graphite/makefile.mk
@@ -45,9 +45,9 @@ all:
 
 # --- Files --------------------------------------------------------
 .IF "$(ENABLE_GRAPHITE)"=="TRUE"
-TARFILE_NAME=graphite2-0.9.4
-TARFILE_MD5=1a5ae56d15e704a709010c5478fdf384
-PATCH_FILES= graphite2-0.9.4.patch \
+TARFILE_NAME=graphite2-0.9.2
+TARFILE_MD5=0625a7d661f899a8ce263fc8a9879108
+PATCH_FILES= graphite2-0.9.2.patch \
         graphite_make.patch
 
 ADDITIONAL_FILES= \
commit 7911b8ed64ba69322dc5b82177c7149c39c3604e
Author: Martin Hosken <martin_hosken at sil.org>
Date:   Mon May 16 14:39:01 2011 +0700

    And the makefiles

diff --git a/graphite/graphite_make.patch b/graphite/graphite_make.patch
index f28ed6d..6db7758 100644
--- a/graphite/graphite_make.patch
+++ b/graphite/graphite_make.patch
@@ -1,5 +1,5 @@
---- misc/build/graphite2-0.9.2/src/makefile.mk  Fri Mar  4 10:20:30 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/makefile.mk  Fri Mar  4 10:20:30 2011 +0700
+--- misc/build/graphite2-0.9.4/src/makefile.mk  Fri Mar  4 10:20:30 2011 +0700
++++ misc/build/graphite2-0.9.4/src/makefile.mk  Fri Mar  4 10:20:30 2011 +0700
 @@ -1,1 +1,54 @@
 -dummy
 +EXTERNAL_WARNINGS_NOT_ERRORS := TRUE
diff --git a/graphite/makefile.mk b/graphite/makefile.mk
index e580b40..8369080 100644
--- a/graphite/makefile.mk
+++ b/graphite/makefile.mk
@@ -45,9 +45,9 @@ all:
 
 # --- Files --------------------------------------------------------
 .IF "$(ENABLE_GRAPHITE)"=="TRUE"
-TARFILE_NAME=graphite2-0.9.2
-TARFILE_MD5=0625a7d661f899a8ce263fc8a9879108
-PATCH_FILES= graphite2-0.9.2.patch \
+TARFILE_NAME=graphite2-0.9.4
+TARFILE_MD5=1a5ae56d15e704a709010c5478fdf384
+PATCH_FILES= graphite2-0.9.4.patch \
         graphite_make.patch
 
 ADDITIONAL_FILES= \
commit 1dbaab9692545a9c8c032a886932a7626e48dbe9
Author: Martin Hosken <martin_hosken at sil.org>
Date:   Mon May 16 14:37:54 2011 +0700

    Fix graphite2 particulary for LinLibertineG

diff --git a/graphite/graphite-2.3.1_debug.patch b/graphite/graphite-2.3.1_debug.patch
deleted file mode 100644
index 583fac7..0000000
--- a/graphite/graphite-2.3.1_debug.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- misc/silgraphite-2.3.1/engine/src/segment/SegmentAux.cpp	2008-08-21 16:24:32.000000000 +0200
-+++ misc/build/silgraphite-2.3.1/engine/src/segment/SegmentAux.cpp	2011-02-21 13:22:23.159834368 +0100
-@@ -247,7 +247,9 @@
- GlyphSetIterator::reference GlyphSetIterator::operator*() const
- {
- 	assert(m_pseg != 0);
--	assert(m_vit != std::vector<int>::const_iterator());
-+        // #i116227# the check below is well meant but breaks itself when using stlport with debug facilities
-+        // a valid iterator cannot be compared to an empty one in that case
-+	// assert(m_vit != std::vector<int>::const_iterator());
- 														// in the case of a non-contiguous list
- 	return m_pseg->m_prgginf[(*m_vit) - m_pseg->m_isloutGinf0];
- }
diff --git a/graphite/graphite2-0.9.2.patch b/graphite/graphite2-0.9.2.patch
deleted file mode 100644
index 35f0bd2..0000000
--- a/graphite/graphite2-0.9.2.patch
+++ /dev/null
@@ -1,404 +0,0 @@
-diff -r 5369cdd12120 CMakeLists.txt
---- misc/build/graphite2-0.9.2/CMakeLists.txt	Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/CMakeLists.txt	Fri Feb 18 16:05:40 2011 +0700
-@@ -61,7 +61,7 @@
- add_subdirectory(gr2fonttest)
- add_subdirectory(tests)
- add_subdirectory(doc)
--set(version 0.0.0)
-+set(version 2.0.0)
- set(libdir ${CMAKE_INSTALL_PREFIX}/lib)
- set(includedir ${CMAKE_INSTALL_PREFIX}/include)
- 
-diff -r 5369cdd12120 gr2fonttest/gr2FontTest.cpp
---- misc/build/graphite2-0.9.2/gr2fonttest/gr2FontTest.cpp	Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/gr2fonttest/gr2FontTest.cpp	Fri Feb 18 16:05:40 2011 +0700
-@@ -758,13 +758,11 @@
-         float advanceWidth = gr_seg_advance_X(pSeg);
-         fprintf(log, "Advance width = %6.1f\n", advanceWidth);
-         unsigned int numchar = gr_seg_n_cinfo(pSeg);
--        gr_uint32 *firsts = (gr_uint32 *)malloc(numchar * sizeof(gr_uint32));
--        gr_uint32 *lasts = (gr_uint32 *)malloc(numchar * sizeof(gr_uint32));
--        gr_seg_char_slots(pSeg, firsts, lasts, 0, 0);
-         fprintf(log, "\nChar\tUnicode\tBefore\tAfter\n");
-         for (unsigned int j = 0; j < numchar; j++)
-         {
--            fprintf(log, "%d\t%04X\t%d\t%d\n", j, gr_cinfo_unicode_char(gr_seg_cinfo(pSeg, j)), firsts[j], lasts[j]);
-+            const gr_char_info *c = gr_seg_cinfo(pSeg, j);
-+            fprintf(log, "%d\t%04X\t%d\t%d\n", j, gr_cinfo_unicode_char(c), gr_cinfo_before(c), gr_cinfo_after(c));
-         }
-         free(map);
-         gr_seg_destroy(pSeg);
-diff -r 5369cdd12120 include/graphite2/Segment.h
---- misc/build/graphite2-0.9.2/include/graphite2/Segment.h	Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/include/graphite2/Segment.h	Fri Feb 18 16:05:40 2011 +0700
-@@ -135,6 +135,20 @@
-   */
- GR2_API int gr_cinfo_break_weight(const gr_char_info* p/*not NULL*/);
- 
-+/** Returns the slot index that after this character is after in the slot stream
-+  *
-+  * @return after slot index between 0 and gr_seg_n_slots()
-+  * @param p Pointer to charinfo to return information on.
-+  */
-+GR2_API int gr_cinfo_after(const gr_char_info* p/*not NULL*/);
-+
-+/** Returns the slot index that before this character is before in the slot stream
-+  *
-+  * @return before slot index between 0 and gr_seg_n_slots()
-+  * @param p Pointer to charinfo to return information on.
-+  */
-+GR2_API int gr_cinfo_before(const gr_char_info* p/*not NULL*/);
-+
- /** Returns the number of unicode characters in a string.
-   *
-   * @return number of characters in the string
-@@ -205,22 +219,6 @@
-   */
- GR2_API const gr_slot* gr_seg_last_slot(gr_segment* pSeg/*not NULL*/);    //may give a base slot or a slot which is attached to another
- 
--/** Calculates the underlying character to glyph associations.
--  *
--  * @param pSeg  Pointer to the segment we want information on.
--  * @param begins An array of gr_seg_n_cinfo integers giving slot index for each
--  *               charinfo. The value corresponds to which slot a cursor would be before
--  *               if an underlying cursor were before the charinfo at this index.
--  * @param ends  An array of gr_seg_n_cinfo integers giving the slot index for each
--  *              charinfo. The value at an index corresponds to which slot a cursor would
--  *              be after if an underlying cursor were after the charinfo at the index.
--  * @param sbegins   An array of gr_seg_n_cinfo gr_slot * corresponding to the gr_slot at
--  *                  index given by begins. The pointer to the array may be NULL.
--  * @param sends An array of gr_seg_n_cinfo gr_slot * corresponding to the gr_slot at the
--  *              index given by ends. The pointer to the array may be NULL.
--  */
--GR2_API void gr_seg_char_slots(const gr_segment *pSeg, gr_uint32 *begins, gr_uint32 *ends, gr_slot **sbegins, gr_slot **sends);
--
- /** Returns the next slot along in the segment.
-   *
-   * Slots are held in a linked list. This returns the next in the linked list. The slot
-@@ -306,6 +304,13 @@
-   */
- GR2_API int gr_slot_after(const gr_slot* p/*not NULL*/);
- 
-+/** Returns the index of this slot in the segment
-+  *
-+  * Returns the index given to this slot during final positioning. This corresponds to the value returned br gr_cinfo_before()
-+  * and gr_cinfo_after()
-+  */
-+GR2_API unsigned int gr_slot_index(const gr_slot* p/*not NULL*/);
-+
- /** Return a slot attribute value
-   *
-   * Given a slot and an attribute along with a possible subattribute, return the
-diff -r 5369cdd12120 src/CMakeLists.txt
---- misc/build/graphite2-0.9.2/src/CMakeLists.txt	Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/CMakeLists.txt	Fri Feb 18 16:05:40 2011 +0700
-@@ -25,7 +25,7 @@
- INCLUDE(CheckTypeSize)
- INCLUDE(CheckCXXSourceCompiles)
- 
--set(GRAPHITE_API_MAJOR 1)
-+set(GRAPHITE_API_MAJOR 2)
- set(GRAPHITE_API_MINOR 0)
- set(GRAPHITE_API_AGE 0)
- set(GRAPHITE_SO_VERSION ${GRAPHITE_API_MAJOR}.${GRAPHITE_API_MINOR}.${GRAPHITE_API_AGE})
-diff -r 5369cdd12120 src/CharInfo.h
---- misc/build/graphite2-0.9.2/src/CharInfo.h	Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/CharInfo.h	Fri Feb 18 16:05:40 2011 +0700
-@@ -29,16 +29,23 @@
- {
- 
- public:
-+    CharInfo() : m_before(-1), m_after(0) {}
-     void init(int cid) { m_char = cid; }
-     unsigned int unicodeChar() const { return m_char; }
-     void feats(int offset) { m_featureid = offset; }
-     int fid() const { return m_featureid; }
-     int breakWeight() const { return m_break; }
-     void breakWeight(int val) { m_break = val; }
-+    int after() const { return m_after; }
-+    void after(int val) { m_after = val; }
-+    int before() const { return m_before; }
-+    void before(int val) { m_before = val; }
- 
-     CLASS_NEW_DELETE
- private:
-     int m_char;     // Unicode character from character stream
-+    int m_before;   // slot index before us, comes before
-+    int m_after;    // slot index after us, comes after
-     uint8 m_featureid;	// index into features list in the segment
-     int8 m_break;	// breakweight coming from lb table
- };
-diff -r 5369cdd12120 src/Segment.cpp
---- misc/build/graphite2-0.9.2/src/Segment.cpp	Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/Segment.cpp	Fri Feb 18 16:05:40 2011 +0700
-@@ -283,6 +283,7 @@
- {
-     Position currpos;
-     Slot *s, *ls = NULL;
-+    int iSlot = 0;
-     float cMin = 0.;
-     float clusterMin = 0.;
-     Rect bbox;
-@@ -292,8 +293,16 @@
-     
-     if (m_dir & 1)
-     {
--        for (s = iEnd; s && s != iStart->prev(); s = s->prev())
-+        for (s = iEnd, iSlot = m_numGlyphs - 1; s && s != iStart->prev(); s = s->prev(), --iSlot)
-         {
-+            for (int j = s->before(); j <= s->after(); j++)
-+            {
-+                CharInfo *c = charinfo(j);
-+                if (c->before() == -1 || iSlot < c->before()) c->before(iSlot);
-+                if (c->after() < iSlot) c->after(iSlot);
-+            }
-+            s->index(iSlot);
-+
-             if (s->isBase())
-             {
-                 clusterMin = currpos.x;
-@@ -306,8 +315,16 @@
-     }
-     else
-     {
--        for (s = iStart; s && s != iEnd->next(); s = s->next())
-+        for (s = iStart, iSlot = 0; s && s != iEnd->next(); s = s->next(), ++iSlot)
-         {
-+            for (int j = s->before(); j <= s->after(); j++)
-+            {
-+                CharInfo *c = charinfo(j);
-+                if (c->before() == -1 || iSlot < c->before()) c->before(iSlot);
-+                if (c->after() < iSlot) c->after(iSlot);
-+            }
-+            s->index(iSlot);
-+
-             if (s->isBase())
-             {
-                 clusterMin = currpos.x;
-@@ -321,35 +338,6 @@
-     if (iStart == m_first && iEnd == m_last) m_advance = currpos;
- }
- 
--
--void Segment::getCharSlots(uint32 *begins, uint32 *ends, Slot **sbegins, Slot **sends) const
--{
--    Slot *s;
--    uint32 i;
--    if (!begins || !ends) return;
--    memset(begins, 0xFF, m_numCharinfo * sizeof(uint32));
--    memset(ends, 0, m_numCharinfo * sizeof(uint32));
--    
--    for (s = m_first, i = 0; s; s = s->next(), i++)
--    {
--        for (int j = s->before(); j <= s->after(); j++)
--        {
--            assert(j >= 0);
--            assert(j < static_cast<int>(m_numCharinfo));
--            if (i < begins[j])
--            {
--                begins[j] = i;
--                if (sbegins) sbegins[j] = s;
--            }
--            if (i > ends[j])
--            {
--                ends[j] = i;
--                if (sends) sends[j] = s;
--            }
--        }
--    }
--}
--
- #ifndef DISABLE_TRACING
- void Segment::logSegment(gr_encform enc, const void* pStart, size_t nChars) const
- {
-diff -r 5369cdd12120 src/Segment.h
---- misc/build/graphite2-0.9.2/src/Segment.h	Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/Segment.h	Fri Feb 18 16:05:40 2011 +0700
-@@ -118,7 +118,6 @@
-     int defaultOriginal() const { return m_defaultOriginal; }
-     const Face * getFace() const { return m_face; }
-     const Features & getFeatures(unsigned int /*charIndex*/) { assert(m_feats.size() == 1); return m_feats[0]; }
--    void getCharSlots(uint32 *begins, uint32 *ends, Slot **sbegins, Slot **sends) const;
- 
-     CLASS_NEW_DELETE
- 
-diff -r 5369cdd12120 src/Slot.cpp
---- misc/build/graphite2-0.9.2/src/Slot.cpp	Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/Slot.cpp	Fri Feb 18 16:05:40 2011 +0700
-@@ -188,15 +188,15 @@
-     }
- }
- 
--int Slot::getAttr(const Segment *seg, attrCode index, uint8 subindex) const
-+int Slot::getAttr(const Segment *seg, attrCode ind, uint8 subindex) const
- {
-     if (!this) return 0;
--    if (index == gr_slatUserDefnV1)
-+    if (ind == gr_slatUserDefnV1)
-     {
--        index = gr_slatUserDefn;
-+        ind = gr_slatUserDefn;
-         subindex = 0;
-     }
--    switch (index)
-+    switch (ind)
-     {
-     case gr_slatAdvX :
-         return static_cast<int>(m_advance.x);
-@@ -259,15 +259,15 @@
-     }
- }
- 
--void Slot::setAttr(Segment *seg, attrCode index, uint8 subindex, int16 value, const SlotMap & map)
-+void Slot::setAttr(Segment *seg, attrCode ind, uint8 subindex, int16 value, const SlotMap & map)
- {
-     if (!this) return;
--    if (index == gr_slatUserDefnV1)
-+    if (ind == gr_slatUserDefnV1)
-     {
--        index = gr_slatUserDefn;
-+        ind = gr_slatUserDefn;
-         subindex = 0;
-     }
--    switch (index)
-+    switch (ind)
-     {
-     case gr_slatAdvX :
-         m_advance = Position(value, m_advance.y);
-diff -r 5369cdd12120 src/Slot.h
---- misc/build/graphite2-0.9.2/src/Slot.h	Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/Slot.h	Fri Feb 18 16:05:40 2011 +0700
-@@ -47,6 +47,8 @@
-     Position advancePos() const { return m_advance; }
-     int before() const { return m_before; }
-     int after() const { return m_after; }
-+    uint32 index() const { return m_index; }
-+    void index(uint32 val) { m_index = val; }
- 
-     Slot();
-     void set(const Slot & slot, int charOffset, uint8 numUserAttr);
-@@ -58,10 +60,10 @@
-     void setGlyph(Segment *seg, uint16 glyphid, const GlyphFace * theGlyph = NULL);
-     void setRealGid(uint16 realGid) { m_realglyphid = realGid; }
-     void origin(const Position &pos) { m_position = pos + m_shift; }
--    void originate(int index) { m_original = index; }
-+    void originate(int ind) { m_original = ind; }
-     int original() const { return m_original; }
--    void before(int index) { m_before = index; }
--    void after(int index) { m_after = index; }
-+    void before(int ind) { m_before = ind; }
-+    void after(int ind) { m_after = ind; }
-     bool isBase() const { return (!m_parent); }
-     void update(int numSlots, int numCharInfo, Position &relpos);
-     Position finalise(const Segment* seg, const Font* font, Position* base, Rect* bbox, float* cMin, uint8 attrLevel, float *clusterMin);
-@@ -75,8 +77,8 @@
-     uint16 *userAttrs() { return m_userAttr; }
-     void userAttrs(uint16 *p) { m_userAttr = p; }
-     void markInsertBefore(bool state) { if (!state) m_flags |= SLOT_INSERT; else m_flags &= ~SLOT_INSERT; }
--    void setAttr(Segment* seg, attrCode index, uint8 subindex, int16 val, const SlotMap & map);
--    int getAttr(const Segment *seg, attrCode index, uint8 subindex) const;
-+    void setAttr(Segment* seg, attrCode ind, uint8 subindex, int16 val, const SlotMap & map);
-+    int getAttr(const Segment *seg, attrCode ind, uint8 subindex) const;
-     void attachTo(Slot *ap) { m_parent = ap; }
-     Slot *attachedTo() const { return m_parent; }
-     Slot* firstChild() const { return m_child; }
-@@ -96,8 +98,9 @@
-     unsigned short m_glyphid;        // glyph id
-     uint16 m_realglyphid;
-     uint32 m_original;	    // charinfo that originated this slot (e.g. for feature values)
--    uint32 m_before;           // charinfo index of before association
--    uint32 m_after;            // charinfo index of after association
-+    uint32 m_before;        // charinfo index of before association
-+    uint32 m_after;         // charinfo index of after association
-+    uint32 m_index;         // slot index given to this slot during finalising
-     Slot *m_parent;         // index to parent we are attached to
-     Slot *m_child;          // index to first child slot that attaches to us
-     Slot *m_sibling;        // index to next child that attaches to our parent
-diff -r 5369cdd12120 src/gr_char_info.cpp
---- misc/build/graphite2-0.9.2/src/gr_char_info.cpp	Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/gr_char_info.cpp	Fri Feb 18 16:05:40 2011 +0700
-@@ -39,4 +39,16 @@
-     return p->breakWeight();
- }
- 
--} // extern "C"
-\ No newline at end of file
-+int gr_cinfo_after(const gr_char_info *p/*not NULL*/)
-+{
-+    assert(p);
-+    return p->after();
-+}
-+
-+int gr_cinfo_before(const gr_char_info *p/*not NULL*/)
-+{
-+    assert(p);
-+    return p->before();
-+}
-+
-+} // extern "C"
-diff -r 5369cdd12120 src/gr_segment.cpp
---- misc/build/graphite2-0.9.2/src/gr_segment.cpp	Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/gr_segment.cpp	Fri Feb 18 16:05:40 2011 +0700
-@@ -162,11 +162,5 @@
-     return static_cast<const gr_slot*>(pSeg->last());
- }
- 
--void gr_seg_char_slots(const gr_segment *pSeg, gr_uint32 *begins, gr_uint32 *ends, gr_slot **sbegins, gr_slot **sends)
--{
--    assert(pSeg && begins && ends);
--    pSeg->getCharSlots(begins, ends, reinterpret_cast<Slot**>(sbegins), reinterpret_cast<Slot**>(sends));
--}
--
- 
- } // extern "C"
-diff -r 5369cdd12120 src/gr_slot.cpp
---- misc/build/graphite2-0.9.2/src/gr_slot.cpp	Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/gr_slot.cpp	Fri Feb 18 16:05:40 2011 +0700
-@@ -121,6 +121,12 @@
-     return p->after();
- }
- 
-+unsigned int gr_slot_index(const gr_slot *p/*not NULL*/)
-+{
-+    assert(p);
-+    return p->index();
-+}
-+
- int gr_slot_attr(const gr_slot* p/*not NULL*/, const gr_segment* pSeg/*not NULL*/, gr_attrCode index, gr_uint8 subindex)
- {
-     assert(p);
-diff current src/List.h
---- misc/build/graphite2-0.9.2/src/List.h	Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/List.h	Fri Feb 18 16:05:40 2011 +0700
-@@ -51,6 +51,6 @@
-     template <typename I> 
-     Vector(I first, const I last)               : m_first(0), m_last(0), m_end(0) { insert(begin(), first, last); }
--    ~Vector() { free(m_first); }
-+    ~Vector() { clear(); free(m_first); }
-     
-     iterator            begin()         { return m_first; }
-     const_iterator      begin() const   { return m_first; }
-
---- misc/graphite2-0.9.2/src/Code.cpp	2011-02-12 16:54:16.000000000 +0100
-+++ misc/build/graphite2-0.9.2/src/Code.cpp	2011-03-11 11:28:11.700215286 +0100
-@@ -168,7 +168,7 @@
-         face.getGlyphFaceCache()->numAttrs(),
-         face.numFeatures(), 
-         {1,1,1,1,1,1,1,1, 
--         1,1,1,1,1,1,1,-1, 
-+         1,1,1,1,1,1,1,(uint8)-1, 
-          1,1,1,1,1,1,1,1, 
-          1,1,1,1,1,1,0,0, 
-          0,0,0,0,0,0,0,0, 
---- misc/graphite2-0.9.2/include/graphite2/Types.h	2011-02-12 16:54:16.000000000 +0100
-+++ misc/build/graphite2-0.9.2/include/graphite2/Types.h	2011-03-15 21:38:06.264788098 +0100
-@@ -36,7 +36,7 @@
- };
- 
- // Definitions for library publicly exported symbols
--#if defined _WIN32 || defined __CYGWIN__
-+#if ( defined _WIN32 || defined __CYGWIN__ ) && !defined GR2_STATIC
-   #ifdef GR2_EXPORTING
-     #ifdef __GNUC__
-       #define GR2_API    __attribute__((dllexport))
diff --git a/graphite/graphite2-0.9.4.patch b/graphite/graphite2-0.9.4.patch
new file mode 100644
index 0000000..e8e44a5
--- /dev/null
+++ b/graphite/graphite2-0.9.4.patch
@@ -0,0 +1,85 @@
+diff -r b3a86877ec68 src/Pass.cpp
+--- misc/build/graphite2-0.9.4/src/Pass.cpp	Wed May 11 09:34:52 2011 +0700
++++ misc/build/graphite2-0.9.4/src/Pass.cpp	Mon May 16 14:23:58 2011 +0700
+@@ -513,6 +513,7 @@
+ bool Pass::testConstraint(const Rule &r, Machine & m) const
+ {
+     if (r.sort - r.preContext > (int)m.slotMap().size() - m.slotMap().context())    return false;
++    if (m.slotMap().context() - r.preContext < 0) return false;
+     if (!*r.constraint)                 return true;
+     assert(r.constraint->constraint());
+ 
+@@ -527,6 +528,7 @@
+     Machine::status_t status = Machine::finished;
+     for (int n = r.sort; n && map; --n, ++map)
+     {
++	if (!*map) continue;
+         const int32 ret = r.constraint->run(m, map, status);
+         if (!ret || status != Machine::finished)
+         {
+diff -r b3a86877ec68 src/Rule.h
+--- misc/build/graphite2-0.9.4/src/Rule.h	Wed May 11 09:34:52 2011 +0700
++++ misc/build/graphite2-0.9.4/src/Rule.h	Mon May 16 14:23:58 2011 +0700
+@@ -187,8 +187,9 @@
+   // Merge the new sorted rules list into the current sorted result set.
+   const RuleEntry * lre = begin(), * rre = state.rules;
+   RuleEntry * out = m_rules + (m_begin == m_rules)*MAX_RULES;    
++  const RuleEntry * lrend = out + MAX_RULES;
+   m_begin = out; 
+-  while (lre != end())
++  while (lre != end() && out != lrend)
+   {
+     if (*lre < *rre)      *out++ = *lre++;
+     else if (*rre < *lre) { *out++ = *rre++; }
+@@ -196,12 +197,12 @@
+ 
+     if (rre == state.rules_end) 
+     { 
+-      while (lre != end()) { *out++ = *lre++; }
++      while (lre != end() && out != lrend) { *out++ = *lre++; }
+       m_end = out;
+       return;
+     }
+   }
+-  while (rre != state.rules_end) { *out++ = *rre++; }
++  while (rre != state.rules_end && out != lrend) { *out++ = *rre++; }
+   m_end = out;
+ }
+ 
+diff -r b3a86877ec68 src/opcodes.h
+--- misc/build/graphite2-0.9.4/src/opcodes.h	Wed May 11 09:34:52 2011 +0700
++++ misc/build/graphite2-0.9.4/src/opcodes.h	Mon May 16 14:23:58 2011 +0700
+@@ -274,6 +274,7 @@
+         {
+             seg.last()->next(newSlot);
+             newSlot->prev(seg.last());
++	    newSlot->before(seg.last()->before());
+             seg.last(newSlot);
+         }
+         else
+@@ -286,10 +287,12 @@
+     {
+         iss->prev()->next(newSlot);
+         newSlot->prev(iss->prev());
++	newSlot->before(iss->prev()->after());
+     }
+     else
+     {
+         newSlot->prev(NULL);
++	newSlot->before(iss->before());
+         seg.first(newSlot);
+     }
+     newSlot->next(iss);
+@@ -297,10 +300,12 @@
+     {
+         iss->prev(newSlot);
+         newSlot->originate(iss->original());
++	newSlot->after(iss->before());
+     }
+     else if (newSlot->prev())
+     {
+         newSlot->originate(newSlot->prev()->original());
++	newSlot->after(newSlot->prev()->after());
+     }
+     else
+     {
commit e852fea281f051ad16c30c6208b37e9fbe294d99
Author: Petr Mladek <pmladek at suse.cz>
Date:   Tue May 10 20:01:43 2011 +0200

    Version 3.3.99.5, tag libreoffice-3.3.99.5 (3.4.0-beta5)
commit d92c1d03672d7554d3f296422eef84847e855b15
Author: Andras Timar <atimar at novell.com>
Date:   Tue May 10 16:46:02 2011 +0200

    remove national flags (dictionary icons)
    
    using national flags to identify a language is controversial

diff --git a/dictionaries/fr_FR/description.xml b/dictionaries/fr_FR/description.xml
index 83097dd..3654c0e 100755
--- a/dictionaries/fr_FR/description.xml
+++ b/dictionaries/fr_FR/description.xml
@@ -21,10 +21,6 @@
         <OpenOffice.org-minimal-version value="3.0" d:name="OpenOffice.org 3.0" />
     </dependencies>
     
-    <icon>
-        <default xlink:href="drapeau_tricolore.png" />
-    </icon>
-    
     <publisher>
         <name xlink:href="http://www.dicollecte.org/home.php?prj=fr" lang="fr">Dicollecte</name>
     </publisher>
diff --git a/dictionaries/fr_FR/drapeau_tricolore.png b/dictionaries/fr_FR/drapeau_tricolore.png
deleted file mode 100644
index 3976cf8..0000000
Binary files a/dictionaries/fr_FR/drapeau_tricolore.png and /dev/null differ
diff --git a/dictionaries/fr_FR/makefile.mk b/dictionaries/fr_FR/makefile.mk
index e09677c..56dafab 100644
--- a/dictionaries/fr_FR/makefile.mk
+++ b/dictionaries/fr_FR/makefile.mk
@@ -56,8 +56,7 @@ COMPONENT_FILES= \
     $(EXTENSIONDIR)$/frhyph.tex \
     $(EXTENSIONDIR)$/hyph_fr.dic \
     $(EXTENSIONDIR)$/thes_fr.dat \
-    $(EXTENSIONDIR)$/package-description.txt \
-    $(EXTENSIONDIR)$/drapeau_tricolore.png
+    $(EXTENSIONDIR)$/package-description.txt
 
 COMPONENT_CONFIGDEST=.
 COMPONENT_XCU= \
diff --git a/dictionaries/it_IT/description.xml b/dictionaries/it_IT/description.xml
index bb4ee61..163c818 100644
--- a/dictionaries/it_IT/description.xml
+++ b/dictionaries/it_IT/description.xml
@@ -21,10 +21,6 @@
         <name lang="it">Dizionario ortografico, dei sinonimi e di sillabazione per la lingua italiana</name>
     </display-name>
 
-    <icon>
-        <default xlink:href="ico.png" />
-    </icon>
-
     <extension-description>
         <src xlink:href="desc_en.txt" lang="en" />
         <src xlink:href="desc_it.txt" lang="it" />
diff --git a/dictionaries/it_IT/ico.png b/dictionaries/it_IT/ico.png
deleted file mode 100644
index 79f0472..0000000
Binary files a/dictionaries/it_IT/ico.png and /dev/null differ
diff --git a/dictionaries/it_IT/makefile.mk b/dictionaries/it_IT/makefile.mk
index 67227ef..1262e75 100644
--- a/dictionaries/it_IT/makefile.mk
+++ b/dictionaries/it_IT/makefile.mk
@@ -52,7 +52,6 @@ COMPONENT_FILES= \
     $(EXTENSIONDIR)$/desc_en.txt \
     $(EXTENSIONDIR)$/desc_it.txt \
     $(EXTENSIONDIR)$/hyph_it_IT.dic \
-    $(EXTENSIONDIR)$/ico.png \
     $(EXTENSIONDIR)$/it_IT.aff \
     $(EXTENSIONDIR)$/it_IT.dic \
     $(EXTENSIONDIR)$/README_hyph_it_IT.txt \
diff --git a/dictionaries/pl_PL/description.xml b/dictionaries/pl_PL/description.xml
index 8cdb3bf..b3f8626 100755
--- a/dictionaries/pl_PL/description.xml
+++ b/dictionaries/pl_PL/description.xml
@@ -29,11 +29,6 @@
     <dependencies>
         <OpenOffice.org-minimal-version value="3.0" d:name="OpenOffice.org 3.0" />
     </dependencies>
-    <icon>
-        <default xlink:href="flaga.png" />
-    </icon>
-
-    
 
     <!-- MORE OPTIONAL LIKE ENTRIES FOLLOWING (may easily be omitted, out-commented by default)... -->
 
diff --git a/dictionaries/pl_PL/flaga.png b/dictionaries/pl_PL/flaga.png
deleted file mode 100644
index 57776bb..0000000
Binary files a/dictionaries/pl_PL/flaga.png and /dev/null differ
diff --git a/dictionaries/pl_PL/makefile.mk b/dictionaries/pl_PL/makefile.mk
index 07e2256..60eac32 100644
--- a/dictionaries/pl_PL/makefile.mk
+++ b/dictionaries/pl_PL/makefile.mk
@@ -49,7 +49,6 @@ EXTENSION_ZIPNAME:=dict-pl
 
 # just copy:
 COMPONENT_FILES= \
-    $(EXTENSIONDIR)$/flaga.png \
     $(EXTENSIONDIR)$/hyph_pl_PL.dic \
     $(EXTENSIONDIR)$/pl_PL.aff \
     $(EXTENSIONDIR)$/pl_PL.dic \
diff --git a/dictionaries/sk_SK/description.xml b/dictionaries/sk_SK/description.xml
index 30ba355..d675532 100644
--- a/dictionaries/sk_SK/description.xml
+++ b/dictionaries/sk_SK/description.xml
@@ -21,10 +21,6 @@
         <name lang="sk">Slovenský slovník pre kontrolu pravopisu, delenie slov a slovník synoným</name>
     </display-name>
 
-    <icon>
-        <default xlink:href="iconsk3.png" />
-    </icon>
-
     <!--Dictionaries should work with all platforms...-->
     <platform value="all" />
     
diff --git a/dictionaries/sk_SK/iconsk3.png b/dictionaries/sk_SK/iconsk3.png
deleted file mode 100644
index 573606d..0000000
Binary files a/dictionaries/sk_SK/iconsk3.png and /dev/null differ
diff --git a/dictionaries/sk_SK/makefile.mk b/dictionaries/sk_SK/makefile.mk
index 7260a58..4acf9f3 100644
--- a/dictionaries/sk_SK/makefile.mk
+++ b/dictionaries/sk_SK/makefile.mk
@@ -51,7 +51,6 @@ EXTENSION_ZIPNAME:=dict-sk
 
 COMPONENT_FILES= \
     $(EXTENSIONDIR)$/hyph_sk_SK.dic \
-    $(EXTENSIONDIR)$/iconsk3.png \
     $(EXTENSIONDIR)$/README_en.txt \
     $(EXTENSIONDIR)$/README_sk.txt \
     $(EXTENSIONDIR)$/README_th_sk_SK_v2.txt \
commit 6fb716d02b9fe4a1b8c24f8ad191a25e00928b6f
Author: Andras Timar <atimar at novell.com>
Date:   Fri May 6 11:23:01 2011 +0200

    updated German dictionaries - fdo#36879

diff --git a/dictionaries/de_AT/README_extension_owner.txt b/dictionaries/de_AT/README_extension_owner.txt
index 8efb60c..e865c75 100644
--- a/dictionaries/de_AT/README_extension_owner.txt
+++ b/dictionaries/de_AT/README_extension_owner.txt
@@ -6,24 +6,25 @@ This extension is based on:
 
 Spell checking:
 ===============
-de-AT_frami spell checking - Version: 2010-12-04
+de-AT_frami
+Version: 2011-05-05
 Author: Franz Michael Baumann <frami.baumann at web.de>
 License: GNU GPL Version 2 or GPL Version 3 or OASIS 0.1
 
-The "frami"-dictionary contains the complete word list of Bj�rn Jacke's "igerman98"
-(Version: 2010-07-27) and numerous supplements by Franz Michael Baumann according to
+The "frami"-dictionary contains the complete word list of Björn Jacke's "igerman98" 
+(Version: 2011-03-21) and numerous supplements by Franz Michael Baumann according to
 the reform of 2006-08-01.
 
 Hyphenation:
 ============
 Authors: Marco Huggenberger <marco at by-night.ch> / Daniel Naber <naber at danielnaber de>
-Version: 2010-01-13 (bug in hyphenation modul and license problems in Readme file fixed)
+Version: 2011-05-05 (author and license information in source file added)
 License: GNU LGPL
 
 Thesaurus:
 ==========
 OpenThesaurus - Deutscher Thesaurus - Synonyme und Assoziationen
-Version: 2010-12-04
+Version: 2011-05-04 AT
 License: GNU LGPL
 http://www.openthesaurus.de
 
@@ -34,4 +35,4 @@ dictionaries, please read his related README files. Updated extension is intende
 published, as soon related dictionaries will have been actualized.
 
 For contacting the extension owner write to:
-karl<dot>zeiler<at>t-online.de
+karl<dot>zeiler<at>t-online.de
\ No newline at end of file
diff --git a/dictionaries/de_AT/README_hyph_de_AT.txt b/dictionaries/de_AT/README_hyph_de_AT.txt
index 71532a3..e7f541f 100644
--- a/dictionaries/de_AT/README_hyph_de_AT.txt
+++ b/dictionaries/de_AT/README_hyph_de_AT.txt
@@ -1,37 +1,40 @@
-Hyphenation dictionary
-----------------------
-
-Language: German (de AT).
-Origin:   Based on the TeX hyphenation tables
-          http://www.ctan.org/tex-archive/language/hyphenation/dehyphn.tex
-		  The TeX hyphenation tables are released under the LaTeX Project
-		  Public License (LPPL)
-
-License:  OpenOffice.org Adaptions of this package are licensed under the
-          GNU Lesser General Public License (LGPL) and are under 
-		  Copyright by
-
+Hyphenation dictionary "hyph_de_AT.dic"
+---------------------------------------
+
+Language: German (de AT)
+		  according to the reform of 2006-08-01	(i.e. reformed or new spelling)
+		  
+Version:  2011-05-05 (author and license information in source file added)	
+
+Origin:   Based on the TeX hyphenation tables "dehyphn.tex", revision level 31.
+          http://www.ctan.org/tex-archive/language/hyphenation/dehyphn.tex
+		  The TeX hyphenation tables are released under the LaTeX Project
+		  Public License (LPPL)
+
+License:  OpenOffice.org Adaptions of this package are licensed under the
+          GNU Lesser General Public License (LGPL 2 or later) and are under 
+		  Copyright by
+
 Author:   conversion author is Marco Huggenberger<marco at by-night.ch>
           revised conversion and extensions: Daniel Naber
           http://qa.openoffice.org/issues/show_bug.cgi?id=26355
 
-Please note, this dictionary is based on syllable matching patterns
-and thus should be suitable under other variations of German
+Note:	  This dictionary is based on syllable matching patterns
+		  and thus should be suitable under other variations of German:
+		  HYPH de DE hyph_de_DE
+		  HYPH de CH hyph_de_CH
 
-HYPH de DE hyph_de_DE
-HYPH de CH hyph_de_CH
 
---------------------------------------------------------------------------------
-Trennmuster (hyph_de_AT.dic):
---------------------------------------------------------------------------------
+Trennmuster (hyph_de_AT.dic)
+----------------------------
 
 Die Trennmuster (hyph_de_AT.dic) basieren auf den TeX Trennmustern
 "dehyphn.tex", revision level 31.
-Lizenz der Trennmuster: LPPL. Die Anpassung der Trennmuster an
+Lizenz der Trennmuster: LPPL. Die Anpassung der Trennmuster an
 den in OpenOffice.org benutzten "ALTLinux LibHnj Hyphenator" wurde
 mit dem Script substrings.pl durchgeführt, das unter
 http://lingucomponent.openoffice.org/hyphenator.html als Teil der
 Datei altlinux_Hyph.zip heruntergeladen werden kann.
 Die Original-Trennmuster können hier heruntergeladen werden:
-http://www.ctan.org/tex-archive/language/hyphenation/dehyphn.tex
+http://www.ctan.org/tex-archive/language/hyphenation/dehyphn.tex
 
diff --git a/dictionaries/de_AT/README_th_de_AT_v2.txt b/dictionaries/de_AT/README_th_de_AT_v2.txt
index acde303..e2f46bd 100644
--- a/dictionaries/de_AT/README_th_de_AT_v2.txt
+++ b/dictionaries/de_AT/README_th_de_AT_v2.txt
@@ -1,6 +1,6 @@
-OpenThesaurus - Deutscher Thesaurus - Version für OpenOffice.org/LibreOffice.org
+OpenThesaurus - Deutscher Thesaurus (AT) - Version für OpenOffice.org/LibreOffice.org
 Copyright (C) 2003-2010 Daniel Naber (naber at danielnaber de)
-Snapshot, automatisch generiert 2010-12-04 00:10
+Snapshot, automatisch generiert 2011-05-04 23:23
 Homepage: http://www.openthesaurus.de
 
 
diff --git a/dictionaries/de_AT/de_AT_frami.aff b/dictionaries/de_AT/de_AT_frami.aff
index 0adc3cf..21a68f3 100644
--- a/dictionaries/de_AT/de_AT_frami.aff
+++ b/dictionaries/de_AT/de_AT_frami.aff
@@ -1,9 +1,9 @@
 # this is the affix file of the de_AT Hunspell dictionary
 # derived from the igerman98 dictionary
 #
-# Version: 20100727+frami20101020 (build 20101020)
+# Version: 20110321+frami20110505 (build 20110505)
 #
-# Copyright (C) 1998-2010 Bjoern Jacke <bjoern at j3e.de>
+# Copyright (C) 1998-2011 Bjoern Jacke <bjoern at j3e.de>
 #
 # License: GPLv2, GPLv3 or OASIS distribution license agreement
 # There should be a copy of both of this licenses included
@@ -565,9 +565,9 @@ WORDCHARS 
 COMPOUNDMIN 2
 
 # this ones are for Duden R36 (old orthography)
-#CHECKCOMPOUNDPATTERN 2
-#CHECKCOMPOUNDPATTERN ee e
-#CHECKCOMPOUNDPATTERN oo o
+#CHECKCOMPOUNDPATTERN 2  #oldspell
+#CHECKCOMPOUNDPATTERN ee e #oldspell
+#CHECKCOMPOUNDPATTERN oo o #oldspell
 # also need oo o
 
 # this one needs to be flagable to be used for old orthography
diff --git a/dictionaries/de_AT/de_AT_frami.dic b/dictionaries/de_AT/de_AT_frami.dic
index 9221bb5..86176a9 100644
--- a/dictionaries/de_AT/de_AT_frami.dic
+++ b/dictionaries/de_AT/de_AT_frami.dic
@@ -1,10 +1,10 @@
-173552
+174362
 	This is the dictionary file of the de_AT Hunspell dictionary
 	derived from the igerman98 dictionary
 	
-	Version: 20100727+frami20101204 (build 20101204)
+	Version: 20110321+frami20110505 (build 20110505)
 	
-	Copyright (C) 1998-2010 Bjoern Jacke <bjoern at j3e.de>/Franz Michael Baumann <fm.baumann at uni-muenster.de>
+	Copyright (C) 1998-2011 Bjoern Jacke <bjoern at j3e.de>, for the addon Franz Michael Baumann <fm.baumann at uni-muenster.de>
 	
 	License: GPLv2, GPLv3 or OASIS distribution license agreement There
 	should be a copy of all of this licenses included with every distribution
@@ -30,7 +30,6 @@
 Ägäisbereich/EPSTm
 Ägäisinsel/Nm
 Ägäiskreuzfahrt/Pm
-Ägide/Nm
 Ägide/m
 Ägidii
 Ägidisch/Am
@@ -45,6 +44,8 @@
 Ähnlichkeitsabbildung/Pm
 Ähnlichkeitsbeziehung/Pm
 Ähnlichkeitsmaß/EPTm
+Ähnlichkeitsprinzip/Sm
+Ähnlichkeitsregel/m
 Ähnlichkeitsrelation/Pm
 Ährchen/S
 Ähre/Nm
@@ -59,6 +60,7 @@
 Ängste/Nm
 Ängstigen/SJm
 Ängstlichkeit/m
+Äon/PS
 Äonen/m
 Äpfel/Nm
 Äquator/Sm
@@ -73,8 +75,7 @@
 Äquatorregion/Pm
 Äquatorrichtung/m
 Äquatorstreifen/Sm
-Äquatorumfänge/Nm
-Äquatorumfang/STm
+Äquatorumfang/STpm
 Äquatorwulst/EPSTm
 Äquilibrieren/SJ
 Äquivalentkonzentration/Pm
@@ -89,8 +90,8 @@
 Äsen/S
 Äskulap/S
 Ästchen/Sm
-Ästhet/Pm
-Ästhetik/m
+Ästhet/PFm
+Ästhetik/Pm
 Ästhetikbegriff/EPSTm
 Ästhetiker/FNS
 Ästhetisieren/SJm
@@ -105,7 +106,7 @@
 Ätherbegriff/EPSTm
 Ätherdriftexperiment/EPSTm
 Äthergedanke/Nm
-Äthermodell/EPSTm
+Äthermodell/EPSm
 Äthernarkose/Nm
 Ätherwind/EPSTm
 Äthiopien/Sm
@@ -135,10 +136,12 @@ AEG
 AG
 AGB/S
 AGP
+AGs
 AI
 AIX/m
 AK/S
 AKW
+AKWs
 AMD/S
 ANSI
 AOK
@@ -156,7 +159,7 @@ ATM
 Aa
 Aach
 Aachen/Sm
-Aachener/NFm
+Aachener/NFSm
 Aal/EPSTm
 Aalen/S
 Aalener/FNS
@@ -178,7 +181,7 @@ Aaseestadt/m
 Aaseeterrasse/Nm
 Aasfresser/NSm
 Aasgeier/NSm
-Abänderbarkeit
+Abänderbarkeit/
 Abändern/SJm
 Abänderungs/hij
 Abaelard/S
@@ -202,12 +205,9 @@ Abbestellen/SJm
 Abbiegemöglichkeit/Pm
 Abbiegen/SJm
 Abbieger/NFSm
-Abbiegeunfälle/Nm
-Abbiegeunfall/STm
-Abbiegevorgänge/Nm
-Abbiegevorgang/STm
+Abbiegeunfall/STpm
+Abbiegevorgang/STpm
 Abbild/JRTm
-Abbild/Sm
 Abbilddatei/Pm
 Abbildtheorie/Nm
 Abbildungs/hij
@@ -262,9 +262,9 @@ Abdunkeln/SJm
 Abdunkelungs/hij
 Abduzens/hij
 Abece/nSm
-Abecebücher/Nm
+Abecebücher/nNm
 Abecebuch/nSTm
-Abeceschütze/Nm
+Abeceschütze/nNm
 Abel/S
 Abelitz
 Abend/EPSmij
@@ -284,9 +284,10 @@ Aberglaube/m
 Aberglauben/Sm
 Aberkennen/SJm
 Aberration/P
-Aberwitz/m
+Aberwitz/Tm
 Abessinien/Sm
-Abessinienkrieg/m
+Abessinienkrieg/STEPm
+Abessinierkatze/Nm
 Abeter/S
 Abfahrt/Pmij
 Abfahrts/hij
@@ -323,7 +324,8 @@ Abfuhr/Pmij
 Abgänger/FNS
 Abgabe/Nmij
 Abgaben/hij
-Abgang/Spm
+Abgabeordnung/d
+Abgang/STpm
 Abgangs/hij
 Abgas/EPTmij
 Abgegrenztheit
@@ -335,17 +337,16 @@ Abgeltungssteuer/Nm
 Abgeordnete/Nm
 Abgeordneten/hij
 Abgeordneter/m
-Abgesänge/N
-Abgesang/ST
+Abgesang/STp
 Abgeschiedenheit/m
 Abgeschlagenheit
 Abgeschlossenheit/m
 Abgeschlossenheits/hij
 Abgespanntheit/m
-Abglanz/m
-Abgleich/Sm
+Abglanz/Tm
+Abgleich/STm
 Abgötter/Nm
-Abgott/Sm
+Abgott/STm
 Abgrabungsfläche/Nm
 Abgrabungsrecht/EPSTm
 Abgrenzen/SJm
@@ -362,9 +363,10 @@ Abh
 Abhäute/hij
 Abhalten/SJ
 Abhandeln/SJm
-Abhang/Sm
+Abhang/STm
 Abhebe/hij
 Abheben/SJm
+Abheilen/SJ
 Abhilfe/Nm
 Abhilfemaßnahme/Nm
 Abhitze/hij
@@ -378,12 +380,12 @@ Abholzen/SJm
 Abholzungsmaßnahme/Nm
 Abhübe/N
 Abhub/ST
-Abi/m
+Abi/Sm
 Abientlassung/nPm
 Abientlassungsfeier/nNm
 Abirren/SJ
 Abisolier/hij
-Abitur/EPSTm
+Abitur/EPSm
 Abitur/Smij
 Abiturient/FPm
 Abiturienten/ghij
@@ -394,7 +396,8 @@ Abkanzeln/SJ
 Abkapseln/SJm
 Abkehr/m
 Abklären/SJm
-Abklatsch/Tijm
+Abklatsch/T
+ijm
 Abkling/hij
 Abklingen/S
 Abkömmling/EPSm
@@ -409,7 +412,6 @@ Abk
 Abkürzen/SJm
 Abkürzungs/hij
 Abkunft/m
-Ablässe/Nm
 Ablachtal/STm
 Ablade/hij
 Abladen/SJm
@@ -419,7 +421,8 @@ Ablage/Nmij
 Ablagern/SJm
 Ablagerungs/hij
 Ablaichen/S
-Ablass/Tmij
+Ablass/Tm
+Ablass/Tpmij
 Ablation/P
 Ablationsschicht/Pm
 Ablativ/Sm
@@ -461,7 +464,7 @@ Abmahnflut/Pm
 Abmahngebühr/Pm
 Abmahnkosten/m
 Abmahnwelle/Nm
-Abmarsch/Sm
+Abmarsch/STm
 Abmelde/hij
 Abmelden/SJm
 Abmessen/SJm
@@ -478,7 +481,7 @@ Abnormit
 Abnützen/SJm
 Abnutzen/SJm
 Abnutzungs/hij
-Abo
+Abo/S
 Abonnement/Smij
 Abonnements/hij
 Abonnent/PFm
@@ -559,7 +562,6 @@ Abschleifen/SJ
 Abschlepp/hij
 Abschließung/Pm
 Abschluss/Tpmij
-Abschlussquiz/EPTm
 Abschmelzen/SJ
 Abschmier/hij
 Abschmiernippel/NSm
@@ -594,8 +596,9 @@ Abschw
 Abschwächungs/hij
 Abschweifen/SJm
 Abschwellen/SJ
+Abschwemmen/SJ
 Abschwünge/Nm
-Abschwung/Sm
+Abschwung/STm
 Abscisinsäure/Nm
 Abseits/hij
 Absenden/SJm
@@ -603,8 +606,7 @@ Absender/NSFm
 Absenderadresse/Nm
 Absenderangabe/Nm
 Absenken/SJm
-Absenkvorgänge/Nm
-Absenkvorgang/STm
+Absenkvorgang/STpm
 Absenz/Pm
 Abservieren/SJm
 Absetz/hij
@@ -667,12 +669,12 @@ Abstands/hij
 Abstauber/NSm
 Abstaubertor/EPSTm
 Abstecher/NSm
-Absteigequartier/EPSTm
+Absteigequartier/EPSm
 Absteiger/NSFm
 Abstell/hij
 Abstellen/SJm
 Absterben/S
-Abstieg/EPSm
+Abstieg/EPSTm
 Abstiegs/hij
 Abstimm/hij
 Abstimmen/SJm
@@ -693,14 +695,14 @@ Abstraktor/PS
 Abstraktum/S
 Abstreifer/NSm
 Abstreuen/SJ
-Abstrich/EPSm
+Abstrich/EPSTm
 Abstürze/Nm
 Abstützbalken/Sm
 Abstützen/SJm
 Abstufen/SJm
 Abstumpfen/SJ
 Absturz/Tmij
-Absud/EPTm
+Absud/EPTSm
 Absurdität/Pm
 Abszess/EPTm
 Abszisse/Nm
@@ -712,6 +714,7 @@ Abtauchen/Sm
 Abtauschvariante/Nm
 Abtei/Pm
 Abteiberg/STm
+Abteibier/EPSTm
 Abteigärten/m
 Abteigarten/Sm
 Abteigebäude/NSm
@@ -727,7 +730,7 @@ Abt
 Abtorfen/SJ
 Abtragen/SJm
 Abtragungsschutt/STm
-Abtransport/m
+Abtransport/SEPTm
 Abtransportfunktion/Pm
 Abtreiben/SJm
 Abtreibungs/hij
@@ -739,18 +742,18 @@ Abtreter/Nm
 Abtretungs/hij
 Abtrieb/Sm
 Abtriebskörper/NSm
-Abtritt/EPSm
+Abtritt/EPSTm
 Abtropf/hij
-Abtrünnigkeit/m
+Abtrünnigkeit/Pm
 Abtsberg/STm
 Abtsgmünd/S
 Abtswürde/Nm
 Abtszelle/Nm
+Abugida
 Abuja/S
 Abundanz/P
 Aburteilen/SJm
-Abverkäufe/N
-Abverkauf/ST
+Abverkauf/STp
 Abwägen/SJm
 Abwägungs/hij
 Abwälzen/SJm
@@ -758,16 +761,17 @@ Abw
 Abwärts/hij
 Abwässer/Nm
 Abwahl/Pm
-Abwahlanträge/Nm
-Abwahlantrag/STm
+Abwahlantrag/STpm
 Abwahlmöglichkeit/Pm
 Abwandeln/SJm
 Abwandelung/Pm
 Abwandern/SJm
 Abwanderungs/hij
-Abwasch/Tmijm
+Abwasch/ijm
+Abwasch/nTm
 Abwasser/Smij
 Abwechseln/SJm
+Abwechslungsreichtum/Sm
 Abweg/EPSm
 Abwegigkeit
 Abwehr/ijm
@@ -781,22 +785,22 @@ Abwenden/SJm
 Abwerben/SJm
 Abwerten/SJm
 Abwertungs/hij
-Abwesenheit/m
+Abwesenheit/Pm
 Abwesenheits/hij
 Abwickel/hij
 Abwickeln/SJm
 Abwickler/NS
 Abwicklungs/hij
-Abwind/TPm
+Abwind/TPESm
 Abwindkanäle/Nm
-Abwindkanal/STm
+Abwindkanal/Sm
 Abwrack/hij
 Abwracken/SJ
 Abwrackgelände/NSm
 Abwürfe/Nm
 Abwurf/STmij
 Abzähl/hij
-Abzählbarkeit/m
+Abzählbarkeit/Pm
 Abzäunen/SJ
 Abzahlen/SJm
 Abzahlungs/hij
@@ -804,6 +808,7 @@ Abzehren/SJm
 Abzeichen/Smij
 Abzeichnung/Pm
 Abzieh/hij
+Abzinsen/SJ
 Abzocker/FNS
 Abzockerei
 Abzug/STpm
@@ -849,12 +854,12 @@ Achs/hij
 Achse/Nm
 Achsel/Nmij
 Achsen/hij
-Achszapfen/Sm
 Acht/hij
 Achtal/STm
 Achtbarkeit/m
 Achteck/EPSTm
-Achtelfinale
+Achtelfinale/NS
+Achtelläufe/Nm
 Achtelnote/Nm
 Achten/SJm
 Achter/NSmij
@@ -910,6 +915,8 @@ Adaptieren/SJm
 Adaption/Pm
 Adaptions/hij
 Adaptivität
+Addenda
+Addendum/S
 Addier/hij
 Addita
 Addition/Pm
@@ -919,8 +926,7 @@ Additivit
 Additivitätseigenschaft/Pm
 Additum/S
 Adduktions/hij
-Adduktorenproblem/EPSTm
-Adebar/S
+Adduktorenproblem/EPSm
 Adebar/m
 Adel/SJmij
 Adelaide/S
@@ -930,13 +936,14 @@ Adelheid/S
 Adeln/Sm
 Adels/hij
 Adenau/S
+Adenauer/FN
 Adenauer/S
 Adenauerring/STm
 Adenin/Sm
 Adeninbaustein/EPSTm
 Adeninnukleotid/EPSm
 Adeninrest/EPSTm
-Adenokarzinom/EPSTm
+Adenokarzinom/EPSm
 Adenosylmethionin/Sm
 Adenylatcyclase/Nm
 Adenylatkinase/Nm
@@ -944,6 +951,7 @@ Adept/P
 Ader/Nmij
 Aderlässe/Nm
 Aderlass/TEm
+Aderlassstelle/Nm
 Adhäsion
 Adhäsions/hij
 Adiabat/SEPm
@@ -953,7 +961,7 @@ Adipins
 Adipositas/m
 Adjektiv/EPSm
 Adjektivform/Pm
-Adjunkt/EPST
+Adjunkt/EPS
 Adjunkt/Pm
 Adjunktion/Pm
 Adjunktionsbeseitigung/Pm
@@ -998,8 +1006,7 @@ Adrenalin/Sm
 Adrenalinausschütting/Pm
 Adress/hij
 Adressat/EPFm
-Adressatenbezüge/Nm
-Adressatenbezug/STm
+Adressatenbezug/STpm
 Adressatengruppe/Nm
 Adressatenkreis/EPTm
 Adressatenorientierung/Pm
@@ -1016,24 +1023,22 @@ Adriahafen/Sm
 Adriahandel/Sm
 Adriaküste/Nm
 Adrian/SET
-Adrianopel
+Adrianopel/S
 Adsorbens/m
 Adsorbentia/m
 Adsorbenzien/m
 Adsorption/Pm
 Adsorptions/hij
 Adulthäutung/Pm
+Adultkleid/STm
 Advektion
 Advektionsnebel/NSm
-Advent/m
-Adventgemeinde/Nm
+Advent/TSmij
 Adventist/FPm
 Adventivknospe/Nm
 Adventivspross/EPTm
 Adventivtrieb/EPSTm
 Adventivwurzel/Nm
-Adventnächte/Nm
-Adventnacht/m
 Advents/hij
 Adventssonntag/EPSm
 Adverb/Sm
@@ -1043,11 +1048,13 @@ Adverbien/m
 Advokat/Pm
 Aerodynamik/m
 Aerodynamiker/NSFm
+Aeroflot
 Aeroklimatologie/m
 Aerometer/NS
 Aeronautik/m
+Aerosol/SEPm
 Aerosolausbeute/Nm
-Aerosole/Nm
+Aerosolform/m
 Aerosolteilchenkonzentration/Pm
 Aerostatik/m
 Aeschach/S
@@ -1072,7 +1079,7 @@ Affix/EPT
 Affodill/S
 Affodillgewächs/EPTm
 Affoltern/S
-Affrikat/EPST
+Affrikat/EPS
 Affront/Sm
 Afghane/FNm
 Afghanistan/Sm
@@ -1088,12 +1095,12 @@ Afrikaanssprecher/NSm
 Afrikaner/FNSm
 Afrikanistik
 Afroamerikaner/FNSm
-Afrolook/m
+Afrolook/Sm
 After/Smij
 Aftershave/Sm
 Aftershavelotion/nPm
 Afterworkparty/nSm
-Agadir/m
+Agadir/Sm
 Agalaktie/Nm
 Agar
 Agarmedium/Sm
@@ -1195,7 +1202,7 @@ Ahnen/SJmij
 Ahnfrau/Pm
 Ahnherr/PNm
 Ahnungslosigkeit/m
-Ahorn/EPSTm
+Ahorn/EPSm
 Ahorn/Smij
 Ahr
 Ahrbrück/Sm
@@ -1229,7 +1236,6 @@ Airbaglenkr
 Airbaglenkrad/STm
 Airbrush/m
 Airbus
-Airbus/Qqm
 Airconditioner/NSm
 Aires
 Airline/Sm
@@ -1249,19 +1255,19 @@ Akademismus
 Akadier/NSm
 Akanthusblätter/Nm
 Akanthusblatt/STm
-Akanthusblattmotiv/EPSTm
+Akanthusblattmotiv/EPSm
 Akanthusblattverzierung/Pm
-Akanthusmotiv/EPSTm
+Akanthusmotiv/EPSm
 Akanthusranke/Nm
 Akazie/Nm
 Akazienart/Pm
-Akazienformation/PSm
+Akazienformation/Pm
 Akazienwälder/Nm
 Akazienwald/STm
 Akelei/m
 Akkader/NS
 Akklamation/Pm
-Akklamationsorgan/EPSTm
+Akklamationsorgan/EPSm
 Akklimatisieren/SJm
 Akkolade/Nm
 Akkommodation/Pm
@@ -1275,9 +1281,9 @@ Akkreditierungs/hij
 Akkreditiv/Smij
 Akku/Sij
 Akkulturation
-Akkumulation/m
+Akkumulation/Pm
 Akkumulationspuffer/NSm
-Akkumulationssystem/EPSTm
+Akkumulationssystem/EPSm
 Akkumulator/SPmij
 Akkumulatorenbatterie/Nm
 Akkuratesse/m
@@ -1306,7 +1312,7 @@ Akrostichen
 Akrostichon/S
 Akt/EPSTmij
 Aktant/Pm
-Aktantenmodell/EPSTm
+Aktantenmodell/EPSm
 Akten/hij
 Aktenschredder/NSm
 Akteur/EPSFm
@@ -1324,8 +1330,7 @@ Aktinmodulator/Pm
 Aktinmolekül/EPSTm
 Aktinmonomere/Nm
 Aktinpolymerisation/Pm
-Aktinstränge/Nm
-Aktinstrang/STm
+Aktinstrang/STpm
 Aktintyp/PSm
 Aktion/Pm
 Aktionär/EPSFm
@@ -1350,7 +1355,7 @@ Aktor/Pm
 Aktstudie/Nm
 Aktualisieren/SJm
 Aktualisierungs/hij
-Aktualität/m
+Aktualität/Pm
 Aktualitätenfilm/EPSTm
 Aktualitätsgehalt/EPSTm
 Aktuar/SEPm
@@ -1359,8 +1364,7 @@ Akupressur/Pm
 Akupunktur/Pmij
 Akustik/ijm
 Akutbehandlung/Pm
-Akutkrankenhäuser/Nm
-Akutkrankenhaus/Tm
+Akutkrankenhaus/Tpm
 Akutstadien/m
 Akutstadium/Sm
 Akzeleration/m
@@ -1381,12 +1385,11 @@ Alabama/Sm
 Alabaster/Sm
 Alabasterbüste/Nm
 Alabastergefäß/EPTm
-Alabastersarkophag/EPSTm
+Alabastersarkophag/EPSm
 Alabasterscherbe/Nm
 Aladin/S
 Alamanne/N
-Alamanneneinfälle/Nm
-Alamanneneinfall/STm
+Alamanneneinfall/STpm
 Alanin/Sm
 Alant/Sm
 Alanya/S
@@ -1401,7 +1404,6 @@ Alaskastra
 Alaunschiefergestein/EPSTm
 Alb/m
 Alba
-Alba/S
 Albachten/S
 Alban/S
 Albaner/FNSm
@@ -1411,9 +1413,7 @@ Albatrosjunge/NSm
 Albdörfer/Nm
 Albdorf/Sm
 Albdrücken/Sm
-Albdruck/STm
 Albdruck/m
-Albe/Nm
 Albedo
 Alben/m
 Albencharts/m
@@ -1443,12 +1443,14 @@ Albstadt/S
 Albtal/STm
 Albtraum/STpm
 Albulabahn/m
-Album/m
+Album/Sm
 Albumcharts/m
 Albumcover/NSm
 Albumin/Sm
 Albumineichkurve/Nm
 Albumineichlösung/Pm
+Albuminmangel/Sm
+Albuminmenge/Nm
 Albvorland/STm
 Albwasserversorgung/m
 Alcantara/Sm
@@ -1492,10 +1494,10 @@ Alexanderliteratur/m
 Alexanderplatz
 Alexanderplatz/Tm
 Alexanderreich/STm
-Alexanderroman/EPSTm
+Alexanderroman/EPSm
 Alexanderschanze/m
 Alexanderschlacht/m
-Alexandersittich/EPSTm
+Alexandersittich/EPSm
 Alexanderstoff/STm
 Alexanderüberlieferung/Pm
 Alexandra/S
@@ -1505,7 +1507,7 @@ Alexandrine/S
 Alexandriner/FNSm
 Alexius
 Alf/S
-Alfa
+Alfa/S
 Alfalfa/S
 Alfons
 Alfonso/S
@@ -1515,13 +1517,13 @@ Alfter/S
 Algarve/m
 Alge/Nm
 Algebra/m
-Algebraisierung/Pm
+Algebraisieren/SJm
 Algebren/m
 Algenart/Pm
 Algenbewuchs/Tm
-Algenblüte/m
+Algenblüte/Nm
 Algenkolonie/Nm
-Algenteppich/EPSTm
+Algenteppich/EPSm
 Algenwuchs/Tm
 Algenzelle/Nm
 Algerien/Smij
@@ -1547,7 +1549,7 @@ Alimentationsprinzip/Sm
 Alimente/Nm
 Alina/S
 Alisphenoidkanäle/Nm
-Alisphenoidkanal/STm
+Alisphenoidkanal/Sm
 Alitalia/S
 Alkali/PSmij
 Alkalisieren/SJm
@@ -1557,6 +1559,7 @@ Alkan/EPSTm
 Alkibiades
 Alkmaar/S
 Alkohol/EPSmijm
+Alkoholdämpfe/Nm
 Alkoholika/m
 Alkoholiker/FNSm
 Alkoholismus/m
@@ -1583,6 +1586,7 @@ Allensbacher/FNS
 Allenstein/S
 Allensteiner/FNS
 Allergie/Nm
+Allergiestoff/EPSTm
 Allergiker/NSFm
 Allerheiligen/m
 Allerheiligenaltäre/Nm
@@ -1615,14 +1619,18 @@ Alligator/SPm
 Alliierten/m
 Alliteration/Pm
 Allklasse/N
+Allmächtigkeit
 Allmacht/m
 Allmende/Nm
+Allmendegüter/Nm
+Allmendegut/STm
+Allmendeproblematik/m
 Allmendingen/S
 Allmendshofen/S
 Allode
 Allodialbesitz/Tm
 Allodifikation/P
-Allofon/nEPST
+Allofon/nEPS
 Allofs
 Allograf/P
 Allograph/nP
@@ -1639,7 +1647,7 @@ Allokator/Pm
 Allokutiv/EPS
 Allongeperücke/Nm
 Allopathie
-Allophon/EPST
+Allophon/EPS
 Allotria
 Allparteienregierung/Pm
 Allquantifikation/P
@@ -1725,7 +1733,7 @@ Altach/S
 Altaigebirge/Sm
 Altaisprache/Nm
 Altamerikaner/m
-Altamira
+Altamira/S
 Altamura/S
 Altan/EPSTm
 Altar/Smij
@@ -1774,7 +1782,7 @@ Altnic
 Altöl/Tmij
 Altötting/S
 Altöttinger/FNS
-Altona
+Altona/S
 Altonaer/FNS
 Altruismen/m
 Altruismus/m
@@ -1787,7 +1795,7 @@ Alttestamentler/FNSm
 Alu/ij
 Aluminium/Smij
 Aluminiumoxidsäule/Nm
-Alumnat/EPST
+Alumnat/EPS
 Alveolarknochen/Sm
 Alveslohe/S
 Alvesloher/FNS
@@ -1823,13 +1831,12 @@ Amazonasbecken/Sm
 Amazonasgebiet/EPSTm
 Amazonaswälder/Nm
 Amazonaswald/STm
-Amazonaszuflüsse/Nm
-Amazonaszufluss/Tm
+Amazonaszufluss/Tpm
 Amazone/Nm
 Amazonien/Sm
 Amberg/S
 Amberger/FNS
-Ambiente/m
+Ambiente/Sm
 Ambiguisieren/SJm
 Ambiguität/Pm
 Ambiorix
@@ -1888,7 +1895,6 @@ Amme/Nm
 Ammen/hij
 Ammer
 Ammerland/S
-Ammersee/S
 Ammersee/Sm
 Ammertal/STm
 Ammertalbahn/m
@@ -1896,7 +1902,7 @@ Amminkomplex/EPTm
 Amminligand/Pm
 Ammoniak/Smijm
 Ammoniakdämpfe/Nm
-Ammonit/EPST
+Ammonit/EPS
 Ammonit/m
 Ammonium/Smij
 Ammoniumacetat/EPSm
@@ -1927,7 +1933,7 @@ Amphetamin/SEPm
 Amphetaminpille/Nm
 Amphibie/Nm
 Amphibien/hij
-Amphibolit/EPST
+Amphibolit/EPS
 Amphidromie
 Amphitheater/Sm
 Ampholyt/EPSm
@@ -1957,7 +1963,7 @@ Amstetten/S
 Amt/STm
 Amtleute/Nm
 Amtmänner/Nm
-Amtmann/m
+Amtmann/STm
 Amts/hij
 Amtsanklage/Nm
 Amtschinesisch/m
@@ -1971,6 +1977,7 @@ Amunpriester/NSm
 Amygdala/Sm
 Amylase/Nm
 Amylaseaktivität/Pm
+Amyloidose/Nm
 Amylopektin/EPSm
 Amyloplast/EPSm
 Amylose/Nm
@@ -1992,14 +1999,13 @@ Analog/hij
 Analogie/Nm
 Analogieargument/EPSTm
 Analogieprinzip/Sm
-Analogieschlüsse/Nm
-Analogieschluss/Tm
+Analogieschluss/Tpm
 Analogmultiplexer/m
 Analogon/Sm
 Analphabet/FPm
-Analphabetenquote/m
+Analphabetenquote/Nm
 Analphabetenrate/Nm
-Analphabetentum/m
+Analphabetentum/Sm
 Analphabetismus/m
 Analysandum/S
 Analysans
@@ -2008,11 +2014,11 @@ Analyse/Nmij
 Analysierbarkeit/m
 Analysis/m
 Analyst/PFm
-Analystenkommentar/EPSTm
+Analystenkommentar/EPSm
 Analytik/m
 Analytiker/NSFm
 Analytizität/P
-Anamnese/m
+Anamnese/Nm
 Ananas/ijqm
 Anaphase/Nm
 Anapher/Nm
@@ -2020,10 +2026,11 @@ Anarchie/Nm
 Anarchismus/m
 Anarchist/FPm
 Anarchokapitalismus/m
+Anarchosyndikalist/Pm
 Anastasia/S
 Anastasios
 Anatevka/S
-Anathem/EPST
+Anathem/EPS
 Anathema/S
 Anatol/S
 Anatolien/Sm
@@ -2039,7 +2046,7 @@ Anaxagoras
 Anbahnen/SJm
 Anbau/STmij
 Anbauer/NSm
-Anbeginn/m
+Anbeginn/STm
 Anbeten/SJm
 Anbeter/FNSm
 Anbetracht/m
@@ -2049,21 +2056,20 @@ Anbieter/NSFm
 Anbieterfirma/m
 Anbieterfirmen/m
 Anbieterkonkurrenz/m
-Anbietermodell/EPSTm
+Anbietermodell/EPSm
 Anbieterpreis/EPTm
 Anbieterseite/Nm
 Anbieterstruktur/Pm
 Anbieterwechsel/NSm
 Anbieterwettbewerb/STm
 Anbinden/SJm
-Anbindeställe/Nm
-Anbindestall/STm
+Anbindestall/STpm
 Anblasmanöver/NSm
 Anblick/Sm
 Anbremszone/Nm
 Anbringen/SJm
 Anbrüche/Nm
-Anbruch/Sm
+Anbruch/STm
 Anchovis/m
 Ancona/S
 Andacht/Pm
@@ -2076,6 +2082,8 @@ Andelgras/Tm
 Andelzone/Nm
 Anden/m
 Andenbaumläufer/NSm
+Andengemeinschaft/m
+Andengruppe/m
 Andenken/Smij
 Andenkenlädchen/Sm
 Andenpflanze/Nm
@@ -2088,14 +2096,14 @@ Andersartigkeit/m
 Andersch/S
 Andersen/S
 Anderssein/Sm
-Andesit/EPST
+Andesit/EPS
 Andeuten/SJm
 Andienen/SJm
 Andockposition/Pm
 Andockstelle/Nm
-Andorra/m
+Andorra/Sm
 Andorraner/FNS
-Andrängen/m
+Andrängen/Sm
 Andrang/STm
 Andre/S
 Andrea/S
@@ -2112,6 +2120,7 @@ Androgenrezeptorprotein/EPSm
 Androgenspiegel/NSm
 Androhen/SJm
 Androide/Nm
+Andromache/S
 Andromeda/Sij
 Andropow/S
 Andruck/Smij
@@ -2138,8 +2147,8 @@ Anfahr/hij
 Anfahrmomentabstützung/Pm
 Anfahrt/Pm
 Anfahrts/hij
-Anfall/Spm
-Anfang/Spm
+Anfall/STpm
+Anfang/STpm
 Anfangs/hij
 Anfangself/m
 Anfangsmonolog/EPSTm
@@ -2148,6 +2157,7 @@ Anfechten/SJm
 Anfechtungs/hij
 Anfeinden/SJm
 Anfertigen/SJm
+Anfeuern/SJm
 Anfeuerungs/hij
 Anflug/STpmij
 Anfordern/SJm
@@ -2223,13 +2233,14 @@ Anglophilie
 Angola/Sm
 Angolaner/FNSm
 Angora/hij
-Angreifbarkeit
+Angreifbarkeit/
 Angreifer/FNSm
 Angrenzen/SJm
 Angriff/EPSTm
 Angriffs/hij
 Angrivarier/FNS
 Angst/ijm
+Angstmacherei/m
 Anguilla/S
 Anhängelast/Pm
 Anhänger/FNSmij
@@ -2237,7 +2248,7 @@ Anh
 Anhänglichkeit/m
 Anhängsel/NSm
 Anhäufen/SJm
-Anhalt/m
+Anhalt/Sm
 Anhaltebefehl/EPSTm
 Anhalter/FNSm
 Anhalteweg/EPSTm
@@ -2246,9 +2257,9 @@ Anhaltezentren/m
 Anhaltezentrum/Sm
 Anhaltiner/FNS
 Anhaltspunkt/EPSTm
-Anhang/Sm
+Anhang/STm
 Anhangsdrüse/Nm
-Anhangsorgan/EPSTm
+Anhangsorgan/EPSm
 Anhausen/S
 Anhausener/FNS
 Anheben/SJm
@@ -2266,11 +2277,11 @@ Animation/Pm
 Animations/hij
 Animator/FPm
 Animieren/SJm
-Animierprogramm/EPSTm
+Animierprogramm/EPSm
 Animismus
 Animist/FPm
 Animosität/Pm
-Anion/SPm
+Anion/SEPm
 Anionenaustauscher/NSm
 Anionenposition/Pm
 Anis/m
@@ -2280,7 +2291,7 @@ Anita/S
 Anja/S
 Anjou/S
 Ankäufer/FNSm
-Ankara/m
+Ankara/Sm
 Ankathete/Nm
 Ankauf/Spm
 Ankauf/Tmij
@@ -2293,7 +2304,7 @@ Ankl
 Anklage/hij
 Anklagebank/Pm
 Anklam/S
-Anklang/Spm
+Anklang/STpm
 Ankleide/hij
 Anklemmung/m
 Anknüpfen/SJm
@@ -2326,9 +2337,12 @@ Anlasser/NSm
 Anlassprüfung/Pm
 Anlauf/STm
 Anlauf/Spmij
-Anlaut/EPTm
+Anlaut/EPTSm
+Anlautalternation/Pm
+Anlautkonsonant/Pm
 Anlautreim/EPSTm
 Anlautsilbe/Nm
+Anlautveränderung/Pm
 Anlege/hij
 Anlegen/SJ
 Anlegen/Sm
@@ -2347,7 +2361,7 @@ Anlocken/SJ
 Anm.
 Anmärsche/Nm
 Anmahnen/SJ
-Anmarsch/Tm
+Anmarsch/TSm
 Anmarschroute/Nm
 Anmarschweg/EPSTm
 Anmaßen/SJm
@@ -2355,7 +2369,7 @@ Anmelde/hij
 Anmelden/SJm
 Anmelder/NSFm
 Anmerken/SJm
-Anmerkungssymbol/EPSTm
+Anmerkungssymbol/EPSm
 Anmerkungstext/EPSTm
 Anmieten/SJm
 Anmoderation/P
@@ -2421,7 +2435,7 @@ Anpfiff/SEPm
 Anpflanzen/SJm
 Anprall/Sm
 Anpreisen/SJm
-Anpressdruck/Sm
+Anpressdruck/STm
 Anprobe/Nm
 Anrainer/NSm
 Anrainer/Nmij
@@ -2441,12 +2455,12 @@ Anreise/hij
 Anreiz/EPTm
 Anreizeffekt/EPSTm
 Anreizkompatibilität/m
-Anreizmotiv/EPSTm
-Anreizproblem/EPSTm
+Anreizmotiv/EPSm
+Anreizproblem/EPSm
 Anreizsetzung/Pm
 Anreizsituation/Pm
 Anreizstruktur/Pm
-Anreizsystem/EPSTm
+Anreizsystem/EPSm
 Anreizvorteil/EPSTm
 Anreizwirkung/Pm
 Anrichteküche/Nm
@@ -2481,10 +2495,10 @@ Anschliff/EPSTm
 Anschluss/Tpmij
 Anschlussweiche/Nm
 Anschnall/hij
-Anschnitt/EPTm
+Anschnitt/EPTSm
 Anschovis/nm
 Anschraub/hij
-Anschreibekredite/m
+Anschreibekredit/EPSTm
 Anschreiben/Sm
 Anschrift/Pm
 Anschriftenkartei/Pm
@@ -2528,11 +2542,12 @@ Anspruch/STm
 Anspruchs/hij
 Anspülen/SJ
 Anständigkeit/P
+Anständigkeit/m
 Anstalt/Pm
 Anstalts/hij
 Anstaltsgeistliche/Nm
 Anstaltsgeistlicher/m
-Anstand/Sm
+Anstand/STm
 Anstands/hij
 Ansteck/hij
 Anstecken/SJm
@@ -2545,7 +2560,7 @@ Ansteuer/hij
 Ansteuern/SJm
 Ansteuerungs/hij
 Anstich/EPSTm
-Anstieg/EPSm
+Anstieg/EPSTm
 Anstiegs/hij
 Anstiften/SJm
 Anstifter/FNSm
@@ -2553,8 +2568,8 @@ Anst
 Anstoß/Tpm
 Anstreicher/NSFm
 Anstrengen/SJm
-Anstrich/EPSm
-Ansturm/Sm
+Anstrich/EPSTm
+Ansturm/STm
 Antagonismen
 Antagonismus/m
 Antagonist/FP
@@ -2568,10 +2583,9 @@ Antarktisforscher/NSm
 Antarktisforschung/Pm
 Antarktisgebiet/EPSTm
 Antarktishistoriker/FNSm
-Antarktisneuling/EPSTm
-Antarktisprogramm/EPSTm
-Antarktisverträge/Nm
-Antarktisvertrag/STm
+Antarktisneuling/EPSm
+Antarktisprogramm/EPSm
+Antarktisvertrag/STpm
 Antarktisvertragswerk/STm
 Antarktisveteran/Pm
 Anteil/EPSmij
@@ -2591,6 +2605,7 @@ Anthocyanidinphase/Nm
 Anthocyanlösung/Pm
 Anthologie/Nm
 Antholz
+Anthracen/EPSm
 Anthracen/Sm
 Anthrachinon/m
 Anthrachinonfarbstoff/EPSTm
@@ -2619,13 +2634,17 @@ Antiaging/nSm
 Antialiasing/m
 Antiallergika/m
 Antiallergikum/Sm
+Antiasthmatika/m
+Antiasthmatikum/Sm
 Antibiotika/m
+Antibiotikaresistenz/Pm
 Antibiotikum/Sm
-Antiblockiersystem/EPSTm
+Antiblockiersystem/EPSm
 Anticodon/EPSm
 Antidepressiva/m
 Antidepressivum/Sm
 Antidiskriminierungsbüro/Sm
+Antidiskriminierungsgesetz/EPTm
 Antidiskriminierungsrecht/STm
 Antidiskriminierungsstelle/Nm
 Antidiskriminierungsvorgabe/Nm
@@ -2636,11 +2655,12 @@ Antiepileptika/m
 Antiepileptikum/Sm
 Antietatist/Pm
 Antifa/ijm
-Antifon/EPSTm
+Antifon/EPSm
 Antifonale/Nm
 Antifonalie/Nm
 Antifonar/Sm
 Antifonarie/Nm
+Antigone/S
 Antigua/S
 Antihistaminika/m
 Antihistaminikum/Sm
@@ -2649,6 +2669,7 @@ Antihypertensivum/Sm
 Antiintellektualismus/m
 Antiislamisierungskongress/nEPTm
 Antijudaismen/m
+Antikenbehörde/Nm
 Antikendienst/STm
 Antikenfilm/EPSTm
 Antikenkopie/Nm
@@ -2660,7 +2681,7 @@ Antik
 Antikomintern/m
 Antikominternpakt/STm
 Antillen/m
-Antilleninsel/m
+Antilleninsel/Nm
 Antilope/Nm
 Antilopenköpfe/Nm
 Antilopenkopf/STm
@@ -2672,7 +2693,7 @@ Antimycin/EPSm
 Antimykotika/m
 Antimykotikum/Sm
 Antinomie/N
-Antinomienproblem/EPSTm
+Antinomienproblem/EPSm
 Antinomienproblematik/Pm
 Antiochia/S
 Antiochien/Sm
@@ -2681,7 +2702,7 @@ Antiparasitika/m
 Antiparasitikum/Sm
 Antipas
 Antipathie/Nm
-Antiphon/nEPSTm
+Antiphon/nEPSm
 Antiphonale/nNm
 Antiphonalie/nNm
 Antiphonar/nSm
@@ -2746,12 +2767,12 @@ Antwort/Pmij
 Anubis
 Anubispavian/EPSTm
 Anus
-Anverwandlung/m
+Anverwandlung/Pm
 Anverwandte/Nm
 Anwälte/Nm
 Anwältin/Fm
 Anwärter/FNSm
-Anwahl/m
+Anwahl/Pm
 Anwalt/STm
 Anwalts/hij
 Anwaltschaft/Pm
@@ -2762,10 +2783,11 @@ Anwar/S
 Anwartschaft/Pm
 Anwartschafts/hij
 Anweisen/SJm
+Anweiser/FNSm
 Anweisungs/hij
 Anwendbarkeit/m
 Anwenden/SJm
-Anwender/NSFmij
+Anwender/NSFmgij
 Anwendungs/hij
 Anwerbeländer/Nm
 Anwerbeland/STm
@@ -2839,7 +2861,7 @@ Apnoist/FP
 Apo/n
 Apokalypse/Nm
 Apokalypse/m
-Apokalypsenkommentar/EPSTm
+Apokalypsenkommentar/EPSm
 Apokalyptik/P
 Apolda/S
 Apoldaer/FNS
@@ -2852,8 +2874,10 @@ Apolloraumschiff/nEPSTm
 Apologet/Pm
 Apologetik
 Apologie/N
+Apoplexie/Nm
 Apoptose
 Aporie/Nm
+Apostasie/Nm
 Apostel/NSmij
 Aposteltonne/dN
 Apostroph/SEPm
@@ -2873,9 +2897,8 @@ Appartement/Smij
 Appeasementpolitik/m
 Appeasementpolitiker/FNSm
 Appell/EPSm
-Appellabläufe/Nm
-Appellablauf/STm
-Appellationsgericht/m
+Appellablauf/STpm
+Appellationsgericht/EPSTm
 Appellationsinstanz/Pm
 Appellcharakter/Sm
 Appellfunktion/Pm
@@ -2910,7 +2933,7 @@ Aprikosen/hij
 April/Smij
 Apriorismen
 Apriorismus
-Apside/m
+Apside/Nm
 Apsis/m
 Apsistürmchen/Sm
 Apsistürme/Nm
@@ -2919,7 +2942,7 @@ Apsisturmkreuz/EPTm
 Apulien/Sm
 Aquädukt/EPST
 Aquäduktbauweise/Nm
-Aquadrom/m
+Aquadrom/EPSm
 Aquakomplex/EPTm
 Aquakultur/Pm
 Aquaplaning/Sm
@@ -2936,12 +2959,16 @@ Aquisgrana
 Aquitaner/NS
 Aquitanien/Sm
 Ar
-Ar/EPSTm
+Ar/EPSm
 Araber/FNSmij
 Arabeske/Nm
 Arabien/Sm
+Arabienforscher/FNSm
+Arabienreisende/Nm
+Arabienreisender/m
 Arabisieren/SJ
 Arachidonsäure/Nm
+Arachnophobie/N
 Arafat/S
 Aragon/Sm
 Aragonese/FN
@@ -2951,7 +2978,8 @@ Aralbecken/Sm
 Araldit/m
 Aralsee/Sm
 Aramäer/FNS
-Ararat/m
+Ararat/Sm
+Aravasenke/m
 ArbStättV
 ArbZG
 Arbeit/Pm
@@ -2966,7 +2994,7 @@ Arbeitsarray/Sm
 Arbeitsdirectory/m
 Arbeitsgeber/dNSF
 Arbeitslosen/hij
-Arbeitslosigkeitsproblem/EPSTm
+Arbeitslosigkeitsproblem/EPSm
 Arbeitslosigkeitsrate/Nm
 Arbeitslosigkeitsrisiken/m
 Arbeitslosigkeitsrisiko/Sm
@@ -2977,6 +3005,7 @@ Arbeitsteiligkeit/m
 Arbeitsüberlastung/m
 Arbitrage/Nm
 Arbitrarität/P
+Arbon/S
 Arboretum/S
 Archäobotanik/m
 Archäologe/NFm
@@ -2988,12 +3017,12 @@ Archaebakterie/Nm
 Archaismen
 Archaismus
 Archangelsk/S
-Arche/m
-Archenholz/m
+Arche/Nm
+Archenholz/Tm
 Archetyp/PS
 Archetypen
 Archetypus
-Archidiakon/EPST
+Archidiakon/EPS
 Archidiakonat/EPST
 Archimandrit/P
 Archimedes
@@ -3002,7 +3031,7 @@ Architekt/PFm
 Architekten/ghij
 Architektonik/m
 Architektur/Pmij
-Architrav/EPST
+Architrav/EPS
 Archiv/EPSmij
 Archivale
 Archivalie/N
@@ -3064,11 +3093,11 @@ Arisieren/SJm
 Aristidis
 Aristokrat/FPm
 Aristokraten/hij
-Aristokratie/m
+Aristokratie/Pm
 Aristophanes
 Aristoteles
 Aristotelesforschung/Pm
-Aristoteleskommentar/EPSTm
+Aristoteleskommentar/EPSm
 Aristoteleskommentator/FPm
 Aristoteleslehre/Nm
 Aristotelesrede/Nm
@@ -3150,8 +3179,7 @@ Aromabestandteil/EPSTm
 Aromastoff/EPSTm
 Aromatasehemmer/NSm
 Aromen/m
-Aromenaufschlüsse/Nm
-Aromenaufschluss/Tm
+Aromenaufschluss/Tpm
 Aromenentwicklung/Pm
 Aromune/N
 Aronstab/ST
@@ -3168,11 +3196,13 @@ Arretieren/SJ
 Arrhythmie/Nm
 Arroganz/m
 Arrondieren/SJm
+Arrondierungspläne/Nm
 Arrondissement/Sm
 Arsbeck/S
 Arsch/Tmnij
 Arsen/Smij
 Arsenal/EPSm
+Arsenalgebäude/NSm
 Arsenik/m
 Art/Pmij
 Artaxerxes
@@ -3180,12 +3210,13 @@ Artefakt/EPSTm
 Artemis
 Artemistempel/NSm
 Arten/hij
+Artendiversität/m
 Arterie/Nm
 Arterien/hij
 Arterienäste/Nm
 Arterienast/STm
 Arteriitis/m
-Arteriosklerose/m
+Arteriosklerose/Nm
 Artgenosse/Nm
 Arthritiden/m
 Arthritis/m
@@ -3208,7 +3239,7 @@ Artistik/m
 Artus
 Artusepik/m
 Artushof/STm
-Artusroman/EPSTm
+Artusroman/EPSm
 Aruba/S
 Arupadhatu/S
 Arverner/NS
@@ -3222,8 +3253,7 @@ Aschaffenburger/FNS
 Aschau/S
 Asche/m
 Ascheansammlung/Pm
-Aschebeläge/Nm
-Aschebelag/STm
+Aschebelag/STpm
 Ascheberg/S
 Ascheberger/FNS
 Ascheebene/Nm
@@ -3245,7 +3275,7 @@ Aschheim/S
 Aschheimer/FNS
 Aschkenase/N
 Ascoli/S
-Ascona/m
+Ascona/Sm
 Ascorbatumsätze/Nm
 Ascorbatumsatz/Tm
 Ascorbinsäure/Nm
@@ -3253,6 +3283,7 @@ Ascorbins
 Ascosporen
 Asdorftalbahn/m
 Asebie/N
+Asepsis/m
 Aserbaidschan/Sm
 Aserbaidschaner/FNSm
 Asexualität/m
@@ -3271,9 +3302,9 @@ Asparagin/EPSm
 Asparaginsäure/Nm
 Aspartat/EPSm
 Aspekt/EPTSm
-Aspektreichtum/STm
+Aspektreichtum/Sm
 Aspenstedt/S
-Asphalt/EPSTm
+Asphalt/EPSm
 Asphalt/Smij
 Aspik/Sm
 Aspik/m
@@ -3283,11 +3314,13 @@ Aspirin/S
 Aspisviper/N
 Ass/PETm
 Assad/S
+Assam/Sm
 Assassine/N
 Assekuranz/Pm
 Assel/Nm
 Asselburg
 Assembler/NSmij
+Assertion/P
 Asservaten
 Asservatenkammer/Nm
 Assessment/Sm
@@ -3297,16 +3330,15 @@ Assessor/Pm
 Assimilant/FP
 Assimilat/EPSTm
 Assimilation/m
-Assimilationsorgan/EPSTm
+Assimilationsorgan/EPSm
 Assimilationsversuch/EPSTm
 Assimilieren/SJ
 Assimilierungsversuch/EPSTm
 Assiniboine/S
-Assisi/m
+Assisi/Sm
 Assistent/FPm
 Assistentenfunktion/Pm
-Assistentenverträge/Nm
-Assistentenvertrag/STm
+Assistentenvertrag/STpm
 Assistenz/Pmij
 Assonanz/P
 Assoziation/Pm
@@ -3315,12 +3347,12 @@ Assoziationscortex/EPTm
 Assoziativität/m
 Assoziieren/SJ
 Assuan/S
-Assuanstaudamm/m
+Assuanstaudamm/STm
 Assyrer/FNSm
-Assyrien/m
+Assyrien/Sm
 Ast/Tmij
 Aster/Nm
-Asterblüte/m
+Asterblüte/Nm
 Asterismen
 Asterismus
 Asterix
@@ -3335,7 +3367,7 @@ Asthmatiker/FNSm
 Asthmen/m
 Astoria/S
 Astrachan/Sm
-Astrachankaviar/STm
+Astrachankaviar/Sm
 Astralgötter/Nm
 Astralgott/STm
 Astrid/S
@@ -3344,7 +3376,7 @@ Astrographie/n
 Astrologe/NFm
 Astrologie/m
 Astrometrie
-Astronaut/Pm
+Astronaut/PFm
 Astronauten/ghij
 Astronautik/m
 Astronom/FPSm
@@ -3357,6 +3389,8 @@ Asturien/Sm
 Asyl/Smij
 AsylVfG
 Asylant/PFm
+Asylantenheim/EPSTm
+Asylantenwohnheim/EPSTm
 Asylberechtigte/Nm
 Asymmetrie/Nm
 Asymptote/Nm
@@ -3375,7 +3409,7 @@ Atemwegs/hij
 Athanasius
 Atheismus/m
 Atheist/FPm
-Athen/m
+Athen/Sm
 Athenäen/m
 Athenäum/Sm
 Athena/S
@@ -3398,7 +3432,7 @@ Atlantiker/NS
 Atlantis/m
 Atlantislegende/m
 Atlas/m
-Atlasgebirge/m
+Atlasgebirge/Sm
 Atmen/SJm
 Atmosph"arenkapsel/Nm
 Atmosphäre/Nm
@@ -3414,8 +3448,9 @@ Atom/EPSmij
 Atomabsorptionsspektometrie/m
 Atomisieren/SJm
 Atomismus
+Atomismus
 Atomist/FP
-Atomium/m
+Atomium/Sm
 Atomsphäre/dN
 Aton/S
 Atonalität/P
@@ -3424,8 +3459,7 @@ Atonkult/EPSTm
 Atopie/N
 Atrien
 Atrium/S
-Atriumhäuser/Nm
-Atriumhaus/Tm
+Atriumhaus/Tpm
 Atrophie
 Atropin/EPSm
 Attac/S
@@ -3447,7 +3481,7 @@ Attraktivit
 Attraktivitätskriterium/Sm
 Attraktivitätsverlust/EPSTm
 Attrappe/Nm
-Attrappenversuche/m
+Attrappenversuch/SEPTm
 Attribuieren/SJm
 Attribut/EPSTm
 Atü
@@ -3479,7 +3513,7 @@ Auenw
 Auenwald/STm
 Auerbachsche/Am
 Auerhähne/Nm
-Auerhahn/Sm
+Auerhahn/STm
 Auerhühner/Nm
 Auerhuhn/Sm
 Auerochse/Nm
@@ -3492,6 +3526,7 @@ Aufbahrungshalle/Nm
 Aufbau/STmij
 Aufbauschen/SJm
 Aufbauten/m
+Aufbegehren/S
 Aufbegehren/Sm
 Aufbereiten/SJm
 Aufbereitungs/hij
@@ -3502,14 +3537,15 @@ Aufbieten/SJm
 Aufblähen/SJ
 Aufbleiben/S
 Aufblick/EPST
+Aufblühen/S
 Aufbringen/SJm
 Aufbrüche/Nm
 Aufbruch/Sm
-Aufbruchssignal/EPSTm
+Aufbruchssignal/EPSm
 Aufbruchstimmung/m
 Aufbruchszeit/Pm
 Aufdecken/SJm
-Aufdringlichkeit
+Aufdringlichkeit/
 Aufdruck/Sm
 Aufdüngen/SJm
 Aufeinanderfolge/m
@@ -3525,7 +3561,7 @@ Auff
 Auffahrt/Pm
 Auffahrts/hij
 Auffahrunfall/Spm
-Auffahrwarnsystem/EPSTm
+Auffahrwarnsystem/EPSm
 Auffalten/SJ
 Auffang/hij
 Auffangweiche/Nm
@@ -3540,10 +3576,9 @@ Aufflackern/Sm
 Auffordern/SJm
 Aufforderungs/hij
 Aufforsten/SJm
-Aufforstungsbeschlüsse/Nm
-Aufforstungsbeschluss/Tm
+Aufforstungsbeschluss/Tpm
 Aufforstungsfläche/Nm
-Aufforstungsprogramm/EPSTm
+Aufforstungsprogramm/EPSm
 Auffrischen/SJm
 Auffrischungs/hij
 Aufführen/SJm
@@ -3561,6 +3596,7 @@ Aufgeregtheit/m
 Aufgeschlossenheit/m
 Aufgliedern/SJm
 Aufguss/Tpm
+Aufgussgetränk/EPSTm
 Aufhängeapparat/EPSTm
 Aufhängebänder/Nm
 Aufhängeband/STm
@@ -3582,7 +3618,7 @@ Aufholjagd/Pm
 Aufholprozess/EPTm
 Aufkäufer/NSFm
 Aufkauf/STpm
-Aufkaufsystem/EPSTm
+Aufkaufsystem/EPSm
 Aufkirch/S
 Aufklären/SJm
 Aufklärer/NSFm
@@ -3709,12 +3745,12 @@ Aufsplittern/SJm
 Aufsprengen/SJm
 Aufsprünge/N
 Aufsprung/ST
-Aufsprunghänge/Nm
-Aufsprunghang/STm
+Aufsprunghang/STpm
 Aufspülen/SJ
 Aufspüren/SJ
 Aufstände/Nm
 Aufstacheln/SJ
+Aufstacheln/SJm
 Aufstand/Sm

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list