--- filter/prj/d.lst	25 Apr 2005 08:49:30 -0000	1.24
+++ filter/prj/d.lst	2 Jul 2007 09:47:13 -0000
@@ -20,6 +20,7 @@
 mkdir: %_DEST%\bin%_EXT%\xslt\import\common
 mkdir: %_DEST%\bin%_EXT%\xslt\import\spreadsheetml
 mkdir: %_DEST%\bin%_EXT%\xslt\import\wordml
+mkdir: %_DEST%\bin%_EXT%\xslt\odfflatxml
 mkdir: %_DEST%\xml%_EXT%\registry
 mkdir: %_DEST%\xml%_EXT%\registry\spool
 ..\source\xslt\common\*.xsl %_DEST%\bin%_EXT%\xslt\common\*.xsl
@@ -32,6 +33,7 @@
 ..\source\xslt\import\common\*.xsl %_DEST%\bin%_EXT%\xslt\import\common\*.xsl
 ..\source\xslt\import\spreadsheetml\*.xsl %_DEST%\bin%_EXT%\xslt\import\spreadsheetml\*.xsl
 ..\source\xslt\import\wordml\*.xsl %_DEST%\bin%_EXT%\xslt\import\wordml\*.xsl
+..\source\odfflatxml\*.xsl %_DEST%\bin%_EXT%\xslt\odfflatxml\*.xsl
 ..\%__SRC%\bin\*.xsl %_DEST%\bin%_EXT%\*.xsl
 ..\%__SRC%\bin\*.stw %_DEST%\bin%_EXT%\*.stw
 ..\%__SRC%\misc\filters\modulepacks\fcfg_*.xcu %_DEST%\xml%_EXT%\registry\spool\fcfg_*.xcu
--- filter/source/config/fragments/fcfg_xslt.mk	21 Mar 2005 11:48:40 -0000	1.7
+++ filter/source/config/fragments/fcfg_xslt.mk	2 Jul 2007 09:34:15 -0000
@@ -3,14 +3,22 @@
 # -----------------------------------------------
 # count = 3
 T4_XSLT = \
+    calc_ODS_FlatXML \
+    draw_ODG_FlatXML \
+    impress_ODP_FlatXML \
     writer_DocBook_File \
+    writer_ODT_FlatXML \
     XHTML_File \
     MediaWiki_File
 
 # -----------------------------------------------
 # count = 7
 F4_XSLT = \
     DocBook_File \
+    ODG_FlatXML \
+    ODP_FlatXML \
+    ODS_FlatXML \
+    ODT_FlatXML \
     XHTML_Calc_File \
     XHTML_Draw_File \
     XHTML_Impress_File \
--- /dev/null	2007-05-04 12:54:50.000000000 +0200
+++ filter/source/config/fragments/filters/ODG_FlatXML.xcu	2007-07-02 11:32:38.000000000 +0200
@@ -0,0 +1,13 @@
+	<node oor:name="OpenDocument Drawing Flat XML" oor:op="replace">
+		<prop oor:name="FileFormatVersion"><value>0</value></prop>
+		<prop oor:name="Type"><value>draw_ODG_FlatXML</value></prop>
+		<prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+		<prop oor:name="UIComponent"/>
+		<prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Draw.XMLOasisImporter,com.sun.star.comp.Draw.XMLOasisExporter,../share/xslt/odfflatxml/odfflatxmlimport.xsl,../share/xslt/odfflatxml/odfflatxmlexport.xsl</value></prop>
+		<prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+		<prop oor:name="TemplateName"/>
+		<prop oor:name="UIName">
+			<value>OpenDocument Drawing (Flat XML)</value>
+		</prop>
+		<prop oor:name="Flags"><value>IMPORT EXPORT OWN 3RDPARTYFILTER</value></prop>
+	</node>
--- /dev/null	2007-05-04 12:54:50.000000000 +0200
+++ filter/source/config/fragments/filters/ODP_FlatXML.xcu	2007-07-02 11:32:38.000000000 +0200
@@ -0,0 +1,13 @@
+	<node oor:name="OpenDocument Presentation Flat XML" oor:op="replace">
+		<prop oor:name="FileFormatVersion"><value>0</value></prop>
+		<prop oor:name="Type"><value>impress_ODP_FlatXML</value></prop>
+		<prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+		<prop oor:name="UIComponent"/>
+		<prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Impress.XMLOasisImporter,com.sun.star.comp.Impress.XMLOasisExporter,../share/xslt/odfflatxml/odfflatxmlimport.xsl,../share/xslt/odfflatxml/odfflatxmlexport.xsl</value></prop>
+		<prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+		<prop oor:name="TemplateName"/>
+		<prop oor:name="UIName">
+			<value>OpenDocument Presentation (Flat XML)</value>
+		</prop>
+		<prop oor:name="Flags"><value>IMPORT EXPORT OWN 3RDPARTYFILTER</value></prop>
+	</node>
--- /dev/null	2007-05-04 12:54:50.000000000 +0200
+++ filter/source/config/fragments/filters/ODS_FlatXML.xcu	2007-07-02 11:32:38.000000000 +0200
@@ -0,0 +1,13 @@
+	<node oor:name="OpenDocument Spreadsheet Flat XML" oor:op="replace">
+		<prop oor:name="FileFormatVersion"><value>0</value></prop>
+		<prop oor:name="Type"><value>calc_ODS_FlatXML</value></prop>
+		<prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+		<prop oor:name="UIComponent"/>
+		<prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Calc.XMLOasisImporter,com.sun.star.comp.Calc.XMLOasisExporter,../share/xslt/odfflatxml/odfflatxmlimport.xsl,../share/xslt/odfflatxml/odfflatxmlexport.xsl</value></prop>
+		<prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+		<prop oor:name="TemplateName"/>
+		<prop oor:name="UIName">
+			<value>OpenDocument Spreadsheet (Flat XML)</value>
+		</prop>
+		<prop oor:name="Flags"><value>IMPORT EXPORT OWN 3RDPARTYFILTER</value></prop>
+	</node>
--- /dev/null	2007-05-04 12:54:50.000000000 +0200
+++ filter/source/config/fragments/filters/ODT_FlatXML.xcu	2007-07-02 11:32:38.000000000 +0200
@@ -0,0 +1,13 @@
+	<node oor:name="OpenDocument Text Flat XML" oor:op="replace">
+		<prop oor:name="FileFormatVersion"><value>0</value></prop>
+		<prop oor:name="Type"><value>writer_ODT_FlatXML</value></prop>
+		<prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
+		<prop oor:name="UIComponent"/>
+		<prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Writer.XMLOasisImporter,com.sun.star.comp.Writer.XMLOasisExporter,../share/xslt/odfflatxml/odfflatxmlimport.xsl,../share/xslt/odfflatxml/odfflatxmlexport.xsl</value></prop>
+		<prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+		<prop oor:name="TemplateName"/>
+		<prop oor:name="UIName">
+			<value>OpenDocument Text (Flat XML)</value>
+		</prop>
+		<prop oor:name="Flags"><value>IMPORT EXPORT OWN 3RDPARTYFILTER</value></prop>
+	</node>
--- /dev/null	2007-05-04 12:54:50.000000000 +0200
+++ filter/source/config/fragments/types/calc_ODS_FlatXML.xcu	2007-07-02 11:33:24.000000000 +0200
@@ -0,0 +1,14 @@
+	<node oor:name="calc_ODS_FlatXML" oor:op="replace">
+		<prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+		<prop oor:name="URLPattern"/>
+		<prop oor:name="Extensions"><value>fods ods xml</value></prop>
+		<prop oor:name="MediaType"/>
+		<prop oor:name="Preferred"><value>false</value></prop>
+		<prop oor:name="PreferredFilter"><value>OpenDocument Spreadsheet Flat XML</value></prop>
+		<prop oor:name="UIName">
+			<value>OpenDocument Spreadsheet (Flat XML)</value>
+		</prop>
+		<prop oor:name="ClipboardFormat">
+ 			<value>doctype:office:mimetype="application/vnd.oasis.opendocument.spreadsheet"</value>
+ 		</prop>
+	</node>
--- /dev/null	2007-05-04 12:54:50.000000000 +0200
+++ filter/source/config/fragments/types/draw_ODG_FlatXML.xcu	2007-07-02 11:33:13.000000000 +0200
@@ -0,0 +1,14 @@
+	<node oor:name="draw_ODG_FlatXML" oor:op="replace">
+		<prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+		<prop oor:name="URLPattern"/>
+		<prop oor:name="Extensions"><value>fodg odg xml</value></prop>
+		<prop oor:name="MediaType"/>
+		<prop oor:name="Preferred"><value>false</value></prop>
+		<prop oor:name="PreferredFilter"><value>OpenDocument Drawing Flat XML</value></prop>
+		<prop oor:name="UIName">
+			<value>OpenDocument Drawing (Flat XML)</value>
+		</prop>
+		<prop oor:name="ClipboardFormat">
+ 			<value>doctype:office:mimetype="application/vnd.oasis.opendocument.graphics"</value>
+ 		</prop>
+	</node>
--- /dev/null	2007-05-04 12:54:50.000000000 +0200
+++ filter/source/config/fragments/types/impress_ODP_FlatXML.xcu	2007-07-02 11:33:19.000000000 +0200
@@ -0,0 +1,14 @@
+	<node oor:name="impress_ODP_FlatXML" oor:op="replace">
+		<prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+		<prop oor:name="URLPattern"/>
+		<prop oor:name="Extensions"><value>fodp odp xml</value></prop>
+		<prop oor:name="MediaType"/>
+		<prop oor:name="Preferred"><value>false</value></prop>
+		<prop oor:name="PreferredFilter"><value>OpenDocument Presentation Flat XML</value></prop>
+		<prop oor:name="UIName">
+			<value>OpenDocument Presentation (Flat XML)</value>
+		</prop>
+		<prop oor:name="ClipboardFormat">
+ 			<value>doctype:office:mimetype="application/vnd.oasis.opendocument.presentation"</value>
+ 		</prop>
+	</node>
--- /dev/null	2007-05-04 12:54:50.000000000 +0200
+++ filter/source/config/fragments/types/writer_ODT_FlatXML.xcu	2007-07-02 11:33:05.000000000 +0200
@@ -0,0 +1,14 @@
+	<node oor:name="writer_ODT_FlatXML" oor:op="replace">
+		<prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+		<prop oor:name="URLPattern"/>
+		<prop oor:name="Extensions"><value>fodt odt xml</value></prop>
+		<prop oor:name="MediaType"/>
+		<prop oor:name="Preferred"><value>false</value></prop>
+		<prop oor:name="PreferredFilter"><value>OpenDocument Text Flat XML</value></prop>
+		<prop oor:name="UIName">
+			<value>OpenDocument Text (Flat XML)</value>
+		</prop>
+		<prop oor:name="ClipboardFormat">
+ 			<value>doctype:office:mimetype="application/vnd.oasis.opendocument.text"</value>
+ 		</prop>
+	</node>
--- /dev/null	2007-05-04 12:54:50.000000000 +0200
+++ filter/source/odfflatxml/odfflatxmlexport.xsl	2007-07-02 11:24:46.000000000 +0200
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0">
+    <xsl:output method="xml" encoding="UTF-8"/>
+
+  <xsl:template match="@*|node()">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()"/>
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="@office:mimetype[string(.)='application/vnd.oasis.opendocument.drawing']">
+      <xsl:attribute name="office:mimetype">application/vnd.oasis.opendocument.graphics</xsl:attribute>
+  </xsl:template>
+</xsl:stylesheet>
+
--- /dev/null	2007-05-04 12:54:50.000000000 +0200
+++ filter/source/odfflatxml/odfflatxmlimport.xsl	2007-07-02 11:24:46.000000000 +0200
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
+
+    <xsl:template match="@*|node()">
+        <xsl:copy>
+            <xsl:apply-templates select="@*|node()"/>
+        </xsl:copy>
+    </xsl:template>
+</xsl:stylesheet>
+
--- filter/source/xmlfilterdetect/filterdetect.cxx	5 Jun 2007 14:44:30 -0000	1.8
+++ filter/source/xmlfilterdetect/filterdetect.cxx	6 Jul 2007 17:46:01 -0000	1.8.14.1
@@ -222,13 +222,11 @@ Reference< com::sun::star::frame::XModel
 		com::sun::star::uno::Sequence< sal_Int8 > aData;
             /* long nBytesToRead= */ xInStream->available();
             xInStream->skipBytes (0);
-            long bytestRead =xInStream->readBytes (aData,  1000);
+            long bytestRead =xInStream->readBytes (aData,  4000);
             resultString=::rtl::OString((const sal_Char *)aData.getConstArray(),bytestRead) ;
 
 
              // test typedetect code
-
-
             Reference <XNameAccess> xTypeCont(mxMSF->createInstance(OUString::createFromAscii("com.sun.star.document.TypeDetection")),UNO_QUERY);
             Sequence < ::rtl::OUString > myTypes= xTypeCont->getElementNames();
             nLength = myTypes.getLength();
@@ -262,7 +260,6 @@ Reference< com::sun::star::frame::XModel
         {
                  OSL_ENSURE( sal_False, "An Exception occured while opening File stream" );
         }
-
         if(sTypeName.equalsAscii(""))
         {
             //sTypeName=::rtl::OUString::createFromAscii("writer_Flat_XML_File");
@@ -274,7 +271,6 @@ Reference< com::sun::star::frame::XModel
 				aArguments.realloc(nLength+1);
 				aArguments[location].Name = ::rtl::OUString::createFromAscii( "TypeName" );
 			}
-
         	aArguments[location].Value <<=sTypeName;
         }
        // OSL_ENSURE( sal_False, ::rtl::OUStringToOString(sTypeName,RTL_TEXTENCODING_ASCII_US).getStr() );
@@ -287,20 +283,15 @@ Reference< com::sun::star::frame::XModel
 
 ::rtl::OUString SAL_CALL supportedByType( const ::rtl::OUString clipBoardFormat ,  const ::rtl::OString resultString, const ::rtl::OUString checkType)
 {
-    sal_Int32 checked =0;
+
     ::rtl::OUString sTypeName= OUString::createFromAscii("");
     if((clipBoardFormat.match(OUString::createFromAscii("doctype:"))))
     {
             ::rtl::OString tryStr = ::rtl::OUStringToOString(clipBoardFormat.copy(8),RTL_TEXTENCODING_ASCII_US).getStr();
-            // OSL_ENSURE( sal_False, tryStr);
-            while((checked <=resultString.getLength())&& (sTypeName.equalsAscii("")))
+            // OSL_ENSURE( sal_False, tryStr);			
+            if (resultString.indexOf(tryStr) >= 0)
             {
-                if( resultString.match(tryStr,checked))
-                {
                     sTypeName = checkType;
-                    break;
-                }
-                checked++;
             }
     }
     return sTypeName;
--- scp2/source/ooo/directory_ooo.scp	5 Jun 2007 11:53:07 -0000	1.36
+++ scp2/source/ooo/directory_ooo.scp	2 Jul 2007 10:29:16 -0000
@@ -487,6 +487,11 @@
     DosName = "common";
 End
 
+Directory gid_Dir_Share_Xslt_Odfflatxml
+    ParentID = gid_Dir_Share_Xslt;
+    DosName = "odfflatxml";
+End
+
 Directory gid_Dir_Share_Dtd
     ParentID = gid_Dir_Share;
     DosName = "dtd";
--- scp2/source/xsltfilter/file_xsltfilter.scp	4 Jun 2007 11:53:40 -0000	1.13
+++ scp2/source/xsltfilter/file_xsltfilter.scp	2 Jul 2007 10:29:16 -0000
@@ -125,3 +125,17 @@
     Dir = gid_Dir_Share_Xslt_Wiki;
     Name = "/xslt/export/wiki/odt2mediawiki.xsl";
 End
+
+File gid_File_Xsl_Export_Odfflatxml
+    TXT_FILE_BODY;
+    Styles = (PACKED, PATCH);
+    Dir = gid_Dir_Share_Xslt_Odfflatxml;
+    Name = "/xslt/odfflatxml/odfflatxmlexport.xsl";
+End
+
+File gid_File_Xsl_Import_Odfflatxml
+    TXT_FILE_BODY;
+    Styles = (PACKED, PATCH);
+    Dir = gid_Dir_Share_Xslt_Odfflatxml;
+    Name = "/xslt/odfflatxml/odfflatxmlimport.xsl";
+End
--- scp2/source/xsltfilter/module_xsltfilter.scp	9 Sep 2005 01:51:40 -0000	1.8
+++ scp2/source/xsltfilter/module_xsltfilter.scp	2 Jul 2007 10:29:16 -0000
@@ -49,6 +49,8 @@
     gid_File_Xsl_Export_Xhtml_Table,
     gid_File_Xsl_MediaWiki,
     gid_File_Stw_MediaWikiTemplate,
+    gid_File_Xsl_Export_Odfflatxml,
+    gid_File_Xsl_Import_Odfflatxml,
     gid_File_Registry_Spool_Oo_TypeDetection_XSLT_Types_Xcu,
     gid_File_Registry_Spool_Oo_TypeDetection_XSLT_Filters_Xcu );
     Minimal = NO;
--- scp2/source/calc/registryitem_calc.scp
+++ scp2/source/calc/registryitem_calc.scp
@@ -823,6 +823,53 @@
     Value = "\"<progpath>\program\soffice.exe\" -pt \"%2\" \"%1\"";
 End
 
+// .fods
+
+RegistryItem gid_Regitem_Fods_PersistentHandler
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Calc_Bin;
+    Subkey = ".fods\PersistentHandler";
+    Value = "{7BC0E713-5703-45BE-A29D-5D46D8B39262}";
+End
+
+RegistryItem gid_Regitem_Fods_Shellex_00021500_0000_0000_C000_000000000046
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Calc_Bin;
+    Subkey = ".fods\shellex\{00021500-0000-0000-C000-000000000046}";
+    Value = "{087B3AE3-E237-4467-B8DB-5A38AB959AC9}";
+End
+
+RegistryItem gid_Regitem_Fods_Shellex_BB2E617C_0920_11D1_9A0B_00C04FC2D6C1
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Calc_Bin;
+    Subkey = ".fods\shellex\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}";
+    Value = "{3B092F0C-7696-40E3-A80F-68D74DA84210}";
+End
+
+RegistryItem gid_Regitem__Fods
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Calc_Bin;
+    Subkey = ".fods";
+    Value = "opendocument.CalcDocument.1";
+End
+
+RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_fods
+    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
+    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
+    ModuleID = gid_Module_Root;
+    Name = ".fods";
+    Value = "opendocument.CalcDocument.1";
+    Styles = (PATCH);
+End
+
+RegistryItem gid_Regitem_Fods_Contenttype
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Calc_Bin;
+    Subkey = ".fods";
+    Name = "Content Type";
+    Value = "application/vnd.oasis.opendocument.spreadsheet";
+End
+
 // new ots file extension 
 
 RegistryItem gid_Regitem_Ots_PersistentHandler
--- scp2/source/draw/registryitem_draw.scp
+++ scp2/source/draw/registryitem_draw.scp
@@ -823,6 +823,53 @@
     Value = "&Open";
 End
 
+// .fodg
+
+RegistryItem gid_Regitem_Fodg_PersistentHandler
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Draw_Bin;
+    Subkey = ".fodg\PersistentHandler";
+    Value = "{7BC0E713-5703-45BE-A29D-5D46D8B39262}";
+End
+
+RegistryItem gid_Regitem_Fodg_Shellex_00021500_0000_0000_C000_000000000046
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Draw_Bin;
+    Subkey = ".fodg\shellex\{00021500-0000-0000-C000-000000000046}";
+    Value = "{087B3AE3-E237-4467-B8DB-5A38AB959AC9}";
+End
+
+RegistryItem gid_Regitem_Fodg_Shellex_BB2E617C_0920_11D1_9A0B_00C04FC2D6C1
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Draw_Bin;
+    Subkey = ".fodg\shellex\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}";
+    Value = "{3B092F0C-7696-40E3-A80F-68D74DA84210}";
+End
+
+RegistryItem gid_Regitem_Fodg_Contenttype
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Draw_Bin;
+    Subkey = ".fodg";
+    Name = "Content Type";
+    Value = "application/vnd.oasis.opendocument.graphics";
+End
+
+RegistryItem gid_Regitem__Fodg
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Draw_Bin;
+    Subkey = ".fodg";
+    Value = "opendocument.DrawDocument.1";
+End
+
+RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_fodg
+    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
+    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
+    ModuleID = gid_Module_Root;
+    Name = ".fodg";
+    Value = "opendocument.DrawDocument.1";
+    Styles = (PATCH);
+End
+
 // new otg file extension 
 
 RegistryItem gid_Regitem_Otg_PersistentHandler
--- scp2/source/impress/registryitem_impress.scp
+++ scp2/source/impress/registryitem_impress.scp
@@ -885,6 +885,53 @@
     Value = "\"<progpath>\program\soffice.exe\" -show \"%1\"";
 End
 
+// .fodp
+
+RegistryItem gid_Regitem_Fodp_PersistentHandler
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Impress_Bin;
+    Subkey = ".fodp\PersistentHandler";
+    Value = "{7BC0E713-5703-45BE-A29D-5D46D8B39262}";
+End
+
+RegistryItem gid_Regitem_Fodp_Shellex_00021500_0000_0000_C000_000000000046
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Impress_Bin;
+    Subkey = ".fodp\shellex\{00021500-0000-0000-C000-000000000046}";
+    Value = "{087B3AE3-E237-4467-B8DB-5A38AB959AC9}";
+End
+
+RegistryItem gid_Regitem_Fodp_Shellex_BB2E617C_0920_11D1_9A0B_00C04FC2D6C1
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Impress_Bin;
+    Subkey = ".fodp\shellex\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}";
+    Value = "{3B092F0C-7696-40E3-A80F-68D74DA84210}";
+End
+
+RegistryItem gid_Regitem__Fodp
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Impress_Bin;
+    Subkey = ".fodp";
+    Value = "opendocument.ImpressDocument.1";
+End
+
+RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_fodp
+    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
+    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
+    ModuleID = gid_Module_Root;
+    Name = ".fodp";
+    Value = "opendocument.ImpressDocument.1";
+    Styles = (PATCH);
+End
+
+RegistryItem gid_Regitem_Fodp_Contenttype
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Impress_Bin;
+    Subkey = ".fodp";
+    Name = "Content Type";
+    Value = "application/vnd.oasis.opendocument.presentation";
+End
+
 // new otp file extension
 
 RegistryItem gid_Regitem_Otp_PersistentHandler
--- scp2/source/writer/registryitem_writer.scp
+++ scp2/source/writer/registryitem_writer.scp
@@ -1027,6 +1027,53 @@
     Value = "\"<progpath>\program\soffice.exe\" -pt \"%2\" \"%1\"";
 End
 
+// .fodt
+
+RegistryItem gid_Regitem_Fodt_PersistentHandler
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Wrt_Bin;
+    Subkey = ".fodt\PersistentHandler";
+    Value = "{7BC0E713-5703-45BE-A29D-5D46D8B39262}";
+End
+
+RegistryItem gid_Regitem_Fodt_Shellex_00021500_0000_0000_C000_000000000046
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Wrt_Bin;
+    Subkey = ".fodt\shellex\{00021500-0000-0000-C000-000000000046}";
+    Value = "{087B3AE3-E237-4467-B8DB-5A38AB959AC9}";
+End
+
+RegistryItem gid_Regitem_Fodt_Shellex_BB2E617C_0920_11D1_9A0B_00C04FC2D6C1
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Wrt_Bin;
+    Subkey = ".fodt\shellex\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}";
+    Value = "{3B092F0C-7696-40E3-A80F-68D74DA84210}";
+End
+
+RegistryItem gid_Regitem__Fodt
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Wrt_Bin;
+    Subkey = ".fodt";
+    Value = "opendocument.WriterDocument.1";
+End
+
+RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_fodt
+    ParentID = PREDEFINED_HKEY_LOCAL_MACHINE;
+    Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations";
+    ModuleID = gid_Module_Root;
+    Name = ".fodt";
+    Value = "opendocument.WriterDocument.1";
+    Styles = (PATCH);
+End
+
+RegistryItem gid_Regitem_Fodt_Contenttype
+    ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+    ModuleID = gid_Module_Prg_Wrt_Bin;
+    Subkey = ".fodt";
+    Name = "Content Type";
+    Value = "application/vnd.oasis.opendocument.text";
+End
+
 // new ott file extension 
 
 RegistryItem gid_Regitem_Ott_PersistentHandler
