[Libreoffice-commits] core.git: 3 commits - Repository.mk solenv/inc tools/bootstrp tools/Executable_mkunroll.mk tools/Executable_rscdep.mk tools/Executable_so_checksum.mk tools/Module_tools.mk

Bjoern Michaelsen bjoern.michaelsen at canonical.com
Fri Feb 15 13:43:17 PST 2013


 Repository.mk                        |    2 
 solenv/inc/settings.mk               |   47 ------
 tools/Executable_mkunroll.mk         |   39 -----
 tools/Executable_rscdep.mk           |   43 -----
 tools/Executable_so_checksum.mk      |   40 -----
 tools/Module_tools.mk                |    3 
 tools/bootstrp/cppdep.cxx            |  217 ----------------------------
 tools/bootstrp/cppdep.hxx            |   46 ------
 tools/bootstrp/md5.cxx               |  141 ------------------
 tools/bootstrp/md5.hxx               |   25 ---
 tools/bootstrp/mkunroll/mkunroll.cxx |  234 -------------------------------
 tools/bootstrp/prj.cxx               |   58 -------
 tools/bootstrp/rscdep.cxx            |  264 -----------------------------------
 tools/bootstrp/so_checksum.cxx       |   47 ------
 14 files changed, 1206 deletions(-)

New commits:
commit 18d37cf9fb21dd809ec79135ce93f9a55512c9b3
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Fri Feb 15 22:27:38 2013 +0100

    rscdep is dead and gone ... and there was much rejoicing
    
    Change-Id: Id411a6caceaac92d3044fe6a2385d8b1c2f16133

diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk
index 30e77a5..097cb7f 100644
--- a/solenv/inc/settings.mk
+++ b/solenv/inc/settings.mk
@@ -199,10 +199,6 @@ IMPLIBFLAGS=
 MAPSYM=
 MAPSYMFLAGS=
 
-RSC=
-RSCFLAGS=
-RSCDEFS=
-RSCLANG=
 
 RC=
 RCFLAGS=
@@ -391,22 +387,6 @@ ENVCFLAGSINCXX*=$(envcflagsincxx)
 ENVLINKFLAGS*=$(envlinkflags)
 .ENDIF
 
-.IF "$(envrscflags)"!=""
-ENVRSCFLAGS*=$(envrscflags)
-.ENDIF
-
-.IF "$(envrscdefs)"!=""
-ENVRSCDEFS*=$(envrscdefs)
-.ENDIF
-
-.IF "$(envrsclinkflags)"!=""
-# ENVRSCLINKFLAGS*=$(envrsclinkflags)
-.ENDIF
-
-.IF "$(envrcflags)"!=""
-ENVRCFLAGS*=$(envrcflags)
-.ENDIF
-
 .IF "$(envrclinkflags)"!=""
 ENVRCLINKFLAGS*=$(envrclinkflags)
 .ENDIF
@@ -475,8 +455,6 @@ OPTIMIZE=
 
 .INCLUDE : postset.mk
 
-RSC_LANG_ISO+:=$(completelangiso)
-.EXPORT : RSC_LANG_ISO
 
 ######################################################
 
@@ -868,12 +846,6 @@ SCPLINKFLAGS=-i $(PAR),$(SOLARPARDIR)
 SCPLINKFLAGS+=-v $(SCPLINKVERSION)
 .ENDIF			# "$(SCPLINKVERSION)"!=""
 
-.IF "$(make_srs_deps)"!=""
-RSC=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rscdep
-.ELSE # "$(make_srs_deps)"!=""
-RSC=$(AUGMENT_LIBRARY_PATH) $(FLIPCMD) $(SOLARBINDIR)/rsc
-.ENDIF # "$(make_srs_deps)"!=""
-
 .IF "$(VERBOSE)" == "TRUE"
     VERBOSITY=-verbose
 .ELSE
@@ -884,17 +856,6 @@ RSC=$(AUGMENT_LIBRARY_PATH) $(FLIPCMD) $(SOLARBINDIR)/rsc
 COMPILE_ECHO_SWITCH=
 COMPILE_ECHO_FILE=$(<:f)
 
-RSCFLAGS=-s
-RSCDEFS=-D$(GUI) -D$(COM) $(JAVADEF)
-
-RSCDEFIMG*=icon-themes/galaxy
-
-RSCEXTINC=.
-
-.IF "$(DEBUG)" != ""
-RSCDEFS+= -DDEBUG
-.ENDIF
-
 # settings for mozilla idl compiler
 XPIDL=xpidl
 XPIDL_LINK=xpt_link
@@ -1062,21 +1023,17 @@ LINKFLAGSADD+= $(LINKFLAGSDEBUG)
 .IF "$(dbgutil)"!=""
 CDEFS+=$(CDEFSDBGUTIL)
 CFLAGS+=$(CFLAGSDBGUTIL)
-RSCDEFS+=-DDBG_UTIL
 .ENDIF
 
 .IF "$(product)"!=""
 CDEFS+= -DPRODUCT
-RSCDEFS+= -DPRODUCT
 .IF "$(ASSERT_ALWAYS_ABORT)"=="FALSE"
 CDEFS+=-DNDEBUG
-RSCDEFS+= -DNDEBUG
 .ENDIF
 .ENDIF
 
 .IF "$(DBG_LEVEL)"!=""
 CDEFS+=-DOSL_DEBUG_LEVEL=$(DBG_LEVEL)
-RSCDEFS+=-DOSL_DEBUG_LEVEL=$(DBG_LEVEL)
 .IF "$(DBG_LEVEL)"!="0"
 CDEFS+=-DSAL_LOG_INFO -DSAL_LOG_WARN
 .ENDIF
@@ -1204,10 +1161,6 @@ CFLAGSCXX+= $(ENVCFLAGSCXX)
 CFLAGSINCXX+:=$(ENVCFLAGSINCXX)
 LIBFLAGS+= $(ENVLIBFLAGS)
 LINKFLAGSADD+= $(ENVLINKFLAGS)
-RSCFLAGS+= $(ENVRSCFLAGS)
-RSCDEFS+= $(ENVRSCDEFS)
-# RSCLINKFLAGS+= $(ENVRSCLINKFLAGS)
-RCFLAGS+= $(ENVRCFLAGS)
 RCLINKFLAGS+= $(ENVRCLINKFLAGS)
 
 LINKFLAGSRUNPATH_URELIB*=
diff --git a/tools/Executable_rscdep.mk b/tools/Executable_rscdep.mk
deleted file mode 100644
index d00cba5..0000000
--- a/tools/Executable_rscdep.mk
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-#   Licensed to the Apache Software Foundation (ASF) under one or more
-#   contributor license agreements. See the NOTICE file distributed
-#   with this work for additional information regarding copyright
-#   ownership. The ASF licenses this file to you under the Apache
-#   License, Version 2.0 (the "License"); you may not use this file
-#   except in compliance with the License. You may obtain a copy of
-#   the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-$(eval $(call gb_Executable_Executable,rscdep))
-
-$(eval $(call gb_Executable_set_include,rscdep,\
-    -I$(SRCDIR)/tools/bootstrp \
-    -I$(SRCDIR)/tools/inc \
-    $$(INCLUDE) \
-))
-
-$(eval $(call gb_Executable_use_libraries,rscdep,\
-    comphelper \
-    sal \
-    tl \
-	$(gb_UWINAPI) \
-))
-
-$(eval $(call gb_Executable_use_sdk_api,rscdep))
-
-$(eval $(call gb_Executable_add_exception_objects,rscdep,\
-    tools/bootstrp/rscdep \
-    tools/bootstrp/cppdep \
-    tools/bootstrp/prj \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/tools/Module_tools.mk b/tools/Module_tools.mk
index b6fe5f6..f49c489 100644
--- a/tools/Module_tools.mk
+++ b/tools/Module_tools.mk
@@ -34,7 +34,6 @@ $(eval $(call gb_Module_add_check_targets,tools,\
 ifneq ($(CROSS_COMPILING),YES)
 $(eval $(call gb_Module_add_targets,tools,\
     Executable_bestreversemap \
-    Executable_rscdep \
 ))
 endif
 
diff --git a/tools/bootstrp/cppdep.cxx b/tools/bootstrp/cppdep.cxx
deleted file mode 100644
index c006e8a..0000000
--- a/tools/bootstrp/cppdep.cxx
+++ /dev/null
@@ -1,217 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sys/stat.h>
-#include <tools/stream.hxx>
-#include <rtl/strbuf.hxx>
-#include "cppdep.hxx"
-
-CppDep::CppDep()
-{
-}
-
-CppDep::~CppDep()
-{
-}
-
-void CppDep::Execute()
-{
-    size_t nCount = m_aSources.size();
-    for ( size_t n = 0; n < nCount; ++n )
-    {
-        const rtl::OString &rStr = m_aSources[n];
-        Search(rStr);
-    }
-}
-
-sal_Bool CppDep::AddSearchPath( const char* pPath )
-{
-    m_aSearchPath.push_back( rtl::OString(pPath) );
-    return sal_False;
-}
-
-sal_Bool CppDep::AddSource( const char* pSource )
-{
-    m_aSources.push_back( rtl::OString(pSource) );
-    return sal_False;
-}
-
-sal_Bool CppDep::Search(const rtl::OString &rFileName)
-{
-#ifdef DEBUG_VERBOSE
-    fprintf( stderr, "SEARCH : %s\n", rFileName.getStr());
-#endif
-    sal_Bool bRet = sal_False;
-
-    SvFileStream aFile;
-    rtl::OString aReadLine;
-
-    rtl::OUString suFileName(rtl::OStringToOUString(rFileName, osl_getThreadTextEncoding()));
-
-    aFile.Open( suFileName, STREAM_READ );
-    while ( aFile.ReadLine( aReadLine ))
-    {
-        sal_Int32 nPos = aReadLine.indexOfL(
-            RTL_CONSTASCII_STRINGPARAM("include"));
-        if ( nPos != -1 )
-        {
-#ifdef DEBUG_VERBOSE
-            fprintf( stderr, "found : %d %s\n", nPos, aReadLine.getStr() );
-#endif
-            rtl::OString aResult = IsIncludeStatement( aReadLine );
-#ifdef DEBUG_VERBOSE
-            fprintf( stderr, "Result : %s\n", aResult.getStr() );
-#endif
-
-            rtl::OString aNewFile;
-            if (!aResult.isEmpty())
-            if ( !(aNewFile = Exists( aResult )).isEmpty() )
-            {
-                sal_Bool bFound = sal_False;
-                size_t nCount = m_aFileList.size();
-                for ( size_t i = 0; i < nCount; ++i )
-                {
-                    const rtl::OString &rStr = m_aFileList[i];
-                    if ( rStr == aNewFile )
-                        bFound = sal_True;
-                }
-#ifdef DEBUG_VERBOSE
-                fprintf( stderr, "not in list : %d %s\n", nPos, aReadLine.getStr() );
-#endif
-                if ( !bFound )
-                {
-                    m_aFileList.push_back(aNewFile);
-#ifdef DEBUG_VERBOSE
-                    fprintf( stderr, " CppDep %s\\\n", aNewFile.getStr() );
-#endif
-                    Search(aNewFile);
-                }
-            }
-        }
-    }
-    aFile.Close();
-
-    return bRet;
-}
-
-rtl::OString CppDep::Exists(const rtl::OString &rFileName)
-{
-    char pFullName[1023];
-
-#ifdef DEBUG_VERBOSE
-    fprintf( stderr, "Searching %s \n", rFileName.getStr() );
-#endif
-
-    size_t nCount = m_aSearchPath.size();
-    for ( size_t n = 0; n < nCount; ++n )
-    {
-        struct stat aBuf;
-        const rtl::OString &rPathName = m_aSearchPath[n];
-
-        strcpy( pFullName, rPathName.getStr());
-        strcat( pFullName, DIR_SEP );
-        strcat( pFullName, rFileName.getStr());
-
-#ifdef DEBUG_VERBOSE
-        fprintf( stderr, "looking for %s\t ", pFullName );
-#endif
-        if ( stat( pFullName, &aBuf ) == 0 )
-        {
-#ifdef DEBUG_VERBOSE
-            fprintf( stderr, "Got Dependency %s \\\n", pFullName );
-#endif
-            return rtl::OString(pFullName);
-        }
-    }
-    return rtl::OString();
-}
-
-rtl::OString CppDep::IsIncludeStatement(rtl::OString aLine)
-{
-    sal_Int32 nIndex;
-
-    nIndex = aLine.indexOf("/*");
-    if ( nIndex != -1 )
-    {
-#ifdef DEBUG_VERBOSE
-        fprintf( stderr, "found starting C comment : %s\n", aLine.getStr() );
-#endif
-        aLine = aLine.copy(0, nIndex);
-#ifdef DEBUG_VERBOSE
-        fprintf( stderr, "cleaned string : %s\n", aLine.getStr() );
-#endif
-    }
-
-    nIndex = aLine.indexOf("//");
-    if ( nIndex != -1 )
-    {
-#ifdef DEBUG_VERBOSE
-        fprintf( stderr, "found C++ comment : %s\n", aLine.getStr() );
-#endif
-        aLine = aLine.copy(0, nIndex);
-#ifdef DEBUG_VERBOSE
-        fprintf( stderr, "cleaned string : %s\n", aLine.getStr() );
-#endif
-    }
-    // WhiteSpacesfressen
-    aLine = aLine.replaceAll(rtl::OString(' '), rtl::OString()).
-        replaceAll(rtl::OString('\t'), rtl::OString());
-#ifdef DEBUG_VERBOSE
-    fprintf( stderr, "now : %s\n", aLine.getStr() );
-#endif
-    // ist der erste Teil ein #include ?
-    rtl::OString aRetStr;
-    if (
-        aLine.getLength() >= 10 &&
-        aLine.match(rtl::OString(RTL_CONSTASCII_STRINGPARAM("#include")))
-       )
-    {
-        //#include<foo> or #include"foo"
-        aLine = aLine.copy(9, aLine.getLength()-10);
-#ifdef DEBUG_VERBOSE
-        fprintf( stderr, "Gotcha : %s\n", aLine.getStr() );
-#endif
-        aRetStr = aLine;
-    }
-    return aRetStr;
-}
-
-#ifdef TEST
-
-int main( int argc, char **argv )
-{
-    CppDep *pDep = new CppDep();
-    pDep->AddSearchPath(".");
-    pDep->AddSearchPath("/usr/include");
-    pDep->AddSearchPath("/usr/local/include");
-    pDep->AddSearchPath("/usr/include/sys");
-    pDep->AddSearchPath("/usr/include/X11");
-    pDep->Execute();
-    delete pDep;
-    return 0;
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/tools/bootstrp/cppdep.hxx b/tools/bootstrp/cppdep.hxx
deleted file mode 100644
index 842fa96..0000000
--- a/tools/bootstrp/cppdep.hxx
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <vector>
-#define PATH_SEP ":"
-#define DIR_SEP "/"
-
-class CppDep
-{
-    std::vector<rtl::OString> m_aSearchPath;
-
-protected:
-    std::vector<rtl::OString> m_aFileList;
-    std::vector<rtl::OString> m_aSources;
-
-    sal_Bool            Search(const rtl::OString& rFileName);
-    rtl::OString Exists(const rtl::OString& rFileName);
-
-    rtl::OString IsIncludeStatement(rtl::OString aLine);
-public:
-                    CppDep();
-                    virtual ~CppDep();
-    virtual void    Execute();
-
-    std::vector<rtl::OString>& GetDepList() { return m_aFileList; }
-    sal_Bool            AddSearchPath( const char* aPath );
-    sal_Bool            AddSource( const char * aSource );
-};
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/tools/bootstrp/prj.cxx b/tools/bootstrp/prj.cxx
deleted file mode 100644
index 6676332..0000000
--- a/tools/bootstrp/prj.cxx
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include "bootstrp/prj.hxx"
-#include <comphelper/string.hxx>
-
-SimpleConfig::SimpleConfig(const String &rSimpleConfigFileName)
-{
-    aFileStream.Open(rSimpleConfigFileName, STREAM_READ);
-}
-
-SimpleConfig::~SimpleConfig()
-{
-    aFileStream.Close ();
-}
-
-rtl::OString SimpleConfig::getNext()
-{
-    if (aStringBuffer.isEmpty())
-      while ((aStringBuffer = GetNextLine()) == "\t") ; //solange bis != "\t"
-    if (aStringBuffer.isEmpty())
-        return rtl::OString();
-
-    rtl::OString aString = comphelper::string::getToken(aStringBuffer, 0, '\t');
-
-    aStringBuffer = aStringBuffer.copy(aString.getLength()+1);
-
-    aStringBuffer = comphelper::string::stripStart(aStringBuffer, '\t');
-
-    return aString;
-}
-
-rtl::OString SimpleConfig::GetNextLine()
-{
-    rtl::OString aTmpStr;
-    aFileStream.ReadLine(aTmpStr);
-    if (aTmpStr[0] == '#')
-        return rtl::OString('\t');
-    return aTmpStr.trim().replace(' ', '\t');
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/tools/bootstrp/rscdep.cxx b/tools/bootstrp/rscdep.cxx
deleted file mode 100644
index 04ae7a1..0000000
--- a/tools/bootstrp/rscdep.cxx
+++ /dev/null
@@ -1,264 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifdef UNX
-#include <unistd.h>
-#endif
-
-#include <sys/stat.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "bootstrp/prj.hxx"
-
-#include <rtl/strbuf.hxx>
-#include <tools/string.hxx>
-#include <tools/fsys.hxx>
-#include <tools/stream.hxx>
-
-#include "cppdep.hxx"
-
-class RscHrcDep : public CppDep
-{
-public:
-                    RscHrcDep();
-    virtual         ~RscHrcDep();
-
-    virtual void    Execute();
-};
-
-RscHrcDep::RscHrcDep()  :
-    CppDep()
-{
-}
-
-RscHrcDep::~RscHrcDep()
-{
-}
-
-void RscHrcDep::Execute()
-{
-    CppDep::Execute();
-}
-
-int main( int argc, char** argv )
-{
-    char aBuf[255];
-    char pFileNamePrefix[255];
-    char pOutputFileName[255];
-    char pSrsFileName[255];
-    String aSrsBaseName;
-    sal_Bool bSource = sal_False;
-    rtl::OStringBuffer aRespArg;
-//  who needs anything but '/' ?
-    sal_Char cDelim = '/';
-
-    RscHrcDep *pDep = new RscHrcDep;
-
-    // When the options are processed, the non-option arguments are
-    // collected at the head of the argv array.
-    // nLastNonOption points to the last of them.
-    int nLastNonOption (-1);
-
-    pOutputFileName[0] = 0;
-    pSrsFileName[0] = 0;
-
-    for ( int i=1; i<argc; i++)
-    {
-        strncpy( aBuf, (const char *)argv[i], sizeof(aBuf) );
-        const sal_Int32 nLength (strlen(aBuf));
-
-#ifdef DEBUG
-        printf("option %d is [%s] and has length %d\n", i, aBuf, (int)nLength);
-#endif
-
-        if (nLength == 0) // Is this even possible?
-            continue;
-
-        if (aBuf[0] == '-' && nLength > 0)
-        {
-            bool bIsKnownOption = true;
-            // Make a switch on the first character after the - for a
-            // preselection of the option.
-            // This is faster then multiple ifs and improves readability.
-            switch (aBuf[1])
-            {
-                case 'p':
-                    if (nLength > 1 && aBuf[2] == '=' )
-                        strcpy(pFileNamePrefix, &aBuf[3]);
-                    else
-                        bIsKnownOption = false;
-                    break;
-                case 'f':
-                    if (nLength > 2 && aBuf[2] == 'o' && aBuf[3] == '=' )
-                        strcpy(pOutputFileName, &aBuf[4]);
-                    else if (nLength>2 && aBuf[2] == 'p' && aBuf[3] == '=' )
-                    {
-                        strcpy(pSrsFileName, &aBuf[4]);
-                        String aName( pSrsFileName, osl_getThreadTextEncoding());
-                        DirEntry aDest( aName );
-                        aSrsBaseName = aDest.GetBase();
-                    }
-                    else
-                        bIsKnownOption = false;
-                    break;
-                case 'i':
-                case 'I':
-#ifdef DEBUG_VERBOSE
-                    printf("Include : %s\n", &aBuf[2] );
-#endif
-                    pDep->AddSearchPath( &aBuf[2] );
-                    break;
-                case 'h' :
-                case 'H' :
-                case '?' :
-                    printf("RscDep 1.0\n");
-                    break;
-                case 'a' :
-#ifdef DEBUG_VERBOSE
-                    printf("option a\n");
-#endif
-                    break;
-
-                case 'l' :
-#ifdef DEBUG_VERBOSE
-                    printf("option l with Value %s\n", &aBuf[2] );
-#endif
-                    pDep->AddSource(&aBuf[2]);
-                    break;
-
-                default:
-                    bIsKnownOption = false;
-                    break;
-            }
-#ifdef DEBUG_VERBOSE
-            if ( ! bIsKnownOption)
-				printf("Unknown option error [%s]\n", aBuf);
-#else
-            (void)bIsKnownOption;
-#endif
-        }
-        else if (aBuf[0] == '@' )
-        {
-            rtl::OString aToken;
-            String aRespName( &aBuf[1], osl_getThreadTextEncoding());
-            SimpleConfig aConfig( aRespName );
-            while (!(aToken = aConfig.getNext()).isEmpty())
-            {
-                char aBuf2[255];
-                strcpy( aBuf2, aToken.getStr());
-                if ( aBuf[0] == '-' && aBuf[1] == 'p' && aBuf[2] == '=' )
-                {
-                    strcpy(pFileNamePrefix, &aBuf[3]);
-                }
-                if ( aBuf2[0] == '-' && aBuf2[1] == 'f' && aBuf2[2] == 'o' )
-                {
-                    strcpy(pOutputFileName, &aBuf2[3]);
-                }
-                if ( aBuf2[0] == '-' && aBuf2[1] == 'f' && aBuf2[2] == 'p' )
-                {
-                    strcpy(pSrsFileName, &aBuf2[3]);
-                    String aName( pSrsFileName, osl_getThreadTextEncoding());
-                    DirEntry aDest( aName );
-                    aSrsBaseName = aDest.GetBase();
-                }
-                if (aBuf2[0] == '-' &&  aBuf2[1] == 'i' )
-                {
-                    pDep->AddSearchPath( &aBuf2[2] );
-                }
-                if (aBuf2[0] == '-' &&  aBuf2[1] == 'I' )
-                {
-                    pDep->AddSearchPath( &aBuf2[2] );
-                }
-                if (( aBuf2[0] != '-' ) && ( aBuf2[0] != '@' ))
-                {
-                    pDep->AddSource( &aBuf2[0] );
-                    aRespArg.append(' ').append(&aBuf2[0]);
-                    bSource = sal_True;
-                }
-            }
-        }
-        else
-        {
-            // Collect all non-options at the head of argv.
-            if (++nLastNonOption < i)
-                argv[nLastNonOption] = argv[i];
-        }
-    }
-
-    String aCwd(pFileNamePrefix, osl_getThreadTextEncoding());
-    SvFileStream aOutStream;
-    String aOutputFileName( pOutputFileName, osl_getThreadTextEncoding());
-    DirEntry aOutEntry( aOutputFileName );
-    String aOutPath = aOutEntry.GetPath().GetFull();
-
-    String aFileName( aOutPath );
-    aFileName += cDelim;
-    aFileName += aCwd;
-    aFileName += String(".", osl_getThreadTextEncoding());
-    aFileName += aSrsBaseName;
-    aFileName += String(".dprr", osl_getThreadTextEncoding());
-    aOutStream.Open( aFileName, STREAM_WRITE );
-
-    // Process the yet unhandled non-options.  These are supposed to
-    // be names of files on which the target depends.
-    rtl::OStringBuffer aString;
-    if ( nLastNonOption >= 0 )
-    {
-#ifdef DEBUG_VERBOSE
-        printf("further arguments : ");
-#endif
-        aString.append(rtl::OString(pSrsFileName).replace('\\', cDelim));
-        aString.append(RTL_CONSTASCII_STRINGPARAM(" : " ));
-
-        for (sal_Int32 nIndex=0; nIndex<=nLastNonOption; ++nIndex)
-        {
-#ifdef DEBUG
-            printf("option at %d is [%s]\n", (int)nIndex, argv[nIndex]);
-#endif
-            if (!bSource )
-            {
-                aString.append(' ');
-                aString.append(argv[nIndex]);
-                pDep->AddSource(argv[nIndex]);
-            }
-        }
-    }
-    aString.append(aRespArg.makeStringAndClear());
-    pDep->Execute();
-    std::vector<rtl::OString>& rLst = pDep->GetDepList();
-    size_t nCount = rLst.size();
-    if ( nCount != 0 )
-        aString.append('\\');
-    aOutStream.WriteLine( aString.makeStringAndClear() );
-
-    for ( size_t j = 0; j < nCount; ++j )
-    {
-        rtl::OStringBuffer aStr(rLst[j].replace('\\', cDelim));
-        if ( j != (nCount-1) )
-            aStr.append('\\');
-        aOutStream.WriteLine(aStr.makeStringAndClear());
-    }
-    delete pDep;
-    aOutStream.Close();
-
-    return 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 507f51b093a1dfcd2866785cd700d5c390ee28f6
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Fri Feb 15 22:23:09 2013 +0100

    so_checksum is dead and gone ... and there was much rejoicing
    
    Change-Id: I6cba24830d397ca405646a1deb0ee0385a3b67e4

diff --git a/Repository.mk b/Repository.mk
index a18a9a3..cb034f0 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -61,7 +61,6 @@ $(eval $(call gb_Helper_register_executables,NONE, \
     rsc \
     rscdep \
     saxparser \
-    so_checksum \
     sp2bv \
     svg2odf \
     svidl \
diff --git a/tools/Executable_so_checksum.mk b/tools/Executable_so_checksum.mk
deleted file mode 100644
index fcd72c2..0000000
--- a/tools/Executable_so_checksum.mk
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-#   Licensed to the Apache Software Foundation (ASF) under one or more
-#   contributor license agreements. See the NOTICE file distributed
-#   with this work for additional information regarding copyright
-#   ownership. The ASF licenses this file to you under the Apache
-#   License, Version 2.0 (the "License"); you may not use this file
-#   except in compliance with the License. You may obtain a copy of
-#   the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-$(eval $(call gb_Executable_Executable,so_checksum))
-
-$(eval $(call gb_Executable_set_include,so_checksum,\
-    $$(INCLUDE) \
-    -I$(SRCDIR)/tools/inc \
-    -I$(SRCDIR)/tools/bootstrp \
-))
-
-$(eval $(call gb_Executable_use_libraries,so_checksum,\
-    sal \
-    tl \
-	$(gb_UWINAPI) \
-))
-# used to link against basegfxlx comphelp4gcc3 i18nisolang1gcc3 ucbhelper4gcc3 uno_cppu uno_cppuhelpergcc3 uno_salhelpergcc3 vos3gcc3 - seems to be superficial
-
-$(eval $(call gb_Executable_add_exception_objects,so_checksum,\
-    tools/bootstrp/md5 \
-    tools/bootstrp/so_checksum \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/tools/Module_tools.mk b/tools/Module_tools.mk
index 2ec37e0..b6fe5f6 100644
--- a/tools/Module_tools.mk
+++ b/tools/Module_tools.mk
@@ -35,7 +35,6 @@ ifneq ($(CROSS_COMPILING),YES)
 $(eval $(call gb_Module_add_targets,tools,\
     Executable_bestreversemap \
     Executable_rscdep \
-    Executable_so_checksum \
 ))
 endif
 
diff --git a/tools/bootstrp/md5.cxx b/tools/bootstrp/md5.cxx
deleted file mode 100644
index bf2b72a..0000000
--- a/tools/bootstrp/md5.cxx
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-
-#include "md5.hxx"
-
-#include <cstddef>
-#include <stdio.h>
-
-#include <rtl/strbuf.hxx>
-
-#ifdef WNT
-#define FILE_OPEN_READ  "rb"
-#else
-#define FILE_OPEN_READ  "r"
-#endif
-
-// Extended calc_md5_checksum to recognize Windows executables and libraries. To
-// create the same md5 checksum for a (code/data) identical file it ignores a different
-// date and header checksum. Please see crashrep/source/win32/soreport.cpp
-// where the same method is also used. The crash reporter uses the MD5
-// checksums to transfer them to the crash database. You have to make sure that both
-// methods use the same algorithm otherwise there could be problems with stack reports.
-
-void normalize_pe_image(sal_uInt8* buffer, size_t nBufferSize)
-{
-    // Check the header part of the file buffer
-    if (buffer[0] == sal_uInt8('M') && buffer[1] == sal_uInt8('Z'))
-    {
-        const int OFFSET_PE_OFFSET = 0x3c;
-        unsigned long PEHeaderOffset = (long)buffer[OFFSET_PE_OFFSET];
-        if (PEHeaderOffset < nBufferSize-4)
-        {
-            if ( buffer[PEHeaderOffset+0] == sal_uInt8('P') &&
-                 buffer[PEHeaderOffset+1] == sal_uInt8('E') &&
-                 buffer[PEHeaderOffset+2] == 0 &&
-                 buffer[PEHeaderOffset+3] == 0 )
-            {
-                const int PE_SIGNATURE_SIZE = 4;
-                const int OFFSET_COFF_TIMEDATESTAMP = 4;
-                PEHeaderOffset += PE_SIGNATURE_SIZE;
-                if (PEHeaderOffset+OFFSET_COFF_TIMEDATESTAMP < nBufferSize-4)
-                {
-                    // Set timedatestamp and checksum fields to a normalized
-                    // value to enforce the same MD5 checksum for identical
-                    // Windows  executables/libraries.
-                    buffer[PEHeaderOffset+OFFSET_COFF_TIMEDATESTAMP+0] = 0;
-                    buffer[PEHeaderOffset+OFFSET_COFF_TIMEDATESTAMP+1] = 0;
-                    buffer[PEHeaderOffset+OFFSET_COFF_TIMEDATESTAMP+2] = 0;
-                    buffer[PEHeaderOffset+OFFSET_COFF_TIMEDATESTAMP+3] = 0;
-                }
-                const int COFFHEADER_SIZE = 20;
-                const int OFFSET_PE_OPTIONALHEADER_CHECKSUM = 64;
-                if (PEHeaderOffset+COFFHEADER_SIZE+OFFSET_PE_OPTIONALHEADER_CHECKSUM < nBufferSize-4)
-                {
-                    // Set checksum to a normalized value
-                    buffer[PEHeaderOffset+COFFHEADER_SIZE+OFFSET_PE_OPTIONALHEADER_CHECKSUM] = 0;
-                    buffer[PEHeaderOffset+COFFHEADER_SIZE+OFFSET_PE_OPTIONALHEADER_CHECKSUM+1] = 0;
-                    buffer[PEHeaderOffset+COFFHEADER_SIZE+OFFSET_PE_OPTIONALHEADER_CHECKSUM+2] = 0;
-                    buffer[PEHeaderOffset+COFFHEADER_SIZE+OFFSET_PE_OPTIONALHEADER_CHECKSUM+3] = 0;
-                }
-            }
-        }
-    }
-}
-
-rtlDigestError calc_md5_checksum(const char *filename, rtl::OString &rChecksum)
-{
-    sal_uInt8 checksum[RTL_DIGEST_LENGTH_MD5];
-    rtlDigestError error = rtl_Digest_E_None;
-    rtl::OStringBuffer aChecksumBuf;
-
-    FILE *fp = fopen( filename, FILE_OPEN_READ );
-
-    if ( fp )
-    {
-        rtlDigest digest = rtl_digest_createMD5();
-
-        if ( digest )
-        {
-            const size_t BUFFER_SIZE  = 0x1000;
-            size_t          nBytesRead;
-            sal_uInt8       buffer[BUFFER_SIZE];
-            bool            bHeader(true);
-
-            while ( rtl_Digest_E_None == error &&
-                0 != (nBytesRead = fread( buffer, 1, sizeof(buffer), fp )) )
-            {
-                if (bHeader)
-                {
-                    bHeader = false;
-                    const size_t MINIMAL_SIZE = 512;
-                    if (nBytesRead >= MINIMAL_SIZE && buffer[0] == sal_uInt8('M') && buffer[1] == sal_uInt8('Z') )
-                        normalize_pe_image(buffer, nBytesRead);
-                }
-
-                error = rtl_digest_updateMD5( digest, buffer, nBytesRead );
-            }
-
-            if ( rtl_Digest_E_None == error )
-            {
-                error = rtl_digest_getMD5( digest, checksum, sizeof(checksum) );
-            }
-
-            rtl_digest_destroyMD5( digest );
-
-            for ( std::size_t i = 0; i < sizeof(checksum); i++ )
-            {
-                if ( checksum[i] < 16 )
-                    aChecksumBuf.append('0');
-                aChecksumBuf.append(static_cast<sal_Int32>(checksum[i]), 16);
-            }
-        }
-
-        fclose( fp );
-    }
-    else
-        error = rtl_Digest_E_Unknown;
-
-    rChecksum = aChecksumBuf.makeStringAndClear();
-
-    return error;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/tools/bootstrp/md5.hxx b/tools/bootstrp/md5.hxx
deleted file mode 100644
index 378787c..0000000
--- a/tools/bootstrp/md5.hxx
+++ /dev/null
@@ -1,25 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <rtl/digest.h>
-#include <rtl/string.hxx>
-
-rtlDigestError calc_md5_checksum(const char *filename, rtl::OString &rChecksum);
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/tools/bootstrp/so_checksum.cxx b/tools/bootstrp/so_checksum.cxx
deleted file mode 100644
index f4ad46a..0000000
--- a/tools/bootstrp/so_checksum.cxx
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-
-#include "md5.hxx"
-
-#include <rtl/string.hxx>
-
-#include <stdio.h>
-
-int main( int argc, char * argv[] )
-{
-    for (int n = 1; n < argc; ++n)
-    {
-        rtl::OString aChecksum;
-        rtlDigestError error = calc_md5_checksum(argv[n], aChecksum);
-
-        if ( rtl_Digest_E_None == error )
-        {
-            printf( "%s  %s\n", aChecksum.getStr(), argv[n] );
-        }
-        else
-            printf( "ERROR: Unable to calculate MD5 checksum for %s\n", argv[n] );
-    }
-
-    return 0;
-}
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit b2ded51418a272c300f10370032933c9671446b2
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Fri Feb 15 22:20:17 2013 +0100

    mkunroll is dead and gone ... and there was much rejoicing
    
    Change-Id: Ib5e791e85b244ac5af5b504a237892b6d81eeba8

diff --git a/Repository.mk b/Repository.mk
index fce9b23..a18a9a3 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -50,7 +50,6 @@ $(eval $(call gb_Helper_register_executables,NONE, \
     lngconvex \
     localize \
     makedepend \
-    mkunroll \
     mork_helper \
     osl_process_child \
     pdf2xml \
diff --git a/tools/Executable_mkunroll.mk b/tools/Executable_mkunroll.mk
deleted file mode 100644
index d030d1d..0000000
--- a/tools/Executable_mkunroll.mk
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-#   Licensed to the Apache Software Foundation (ASF) under one or more
-#   contributor license agreements. See the NOTICE file distributed
-#   with this work for additional information regarding copyright
-#   ownership. The ASF licenses this file to you under the Apache
-#   License, Version 2.0 (the "License"); you may not use this file
-#   except in compliance with the License. You may obtain a copy of
-#   the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-$(eval $(call gb_Executable_Executable,mkunroll))
-
-$(eval $(call gb_Executable_set_include,mkunroll,\
-    $$(INCLUDE) \
-    -I$(SRCDIR)/tools/inc \
-    -I$(SRCDIR)/tools/bootstrp \
-))
-
-$(eval $(call gb_Executable_use_libraries,mkunroll,\
-    basegfx \
-    sal \
-    tl \
-	$(gb_UWINAPI) \
-))
-
-$(eval $(call gb_Executable_add_exception_objects,mkunroll,\
-    tools/bootstrp/mkunroll/mkunroll \
-))
-
-# vim: set noet sw=4 ts=4:
diff --git a/tools/Module_tools.mk b/tools/Module_tools.mk
index b7298de..2ec37e0 100644
--- a/tools/Module_tools.mk
+++ b/tools/Module_tools.mk
@@ -34,7 +34,6 @@ $(eval $(call gb_Module_add_check_targets,tools,\
 ifneq ($(CROSS_COMPILING),YES)
 $(eval $(call gb_Module_add_targets,tools,\
     Executable_bestreversemap \
-    Executable_mkunroll \
     Executable_rscdep \
     Executable_so_checksum \
 ))
diff --git a/tools/bootstrp/mkunroll/mkunroll.cxx b/tools/bootstrp/mkunroll/mkunroll.cxx
deleted file mode 100644
index 8f4c935..0000000
--- a/tools/bootstrp/mkunroll/mkunroll.cxx
+++ /dev/null
@@ -1,234 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-
-#include <stdio.h>
-
-#include <../../inc/tools/string.hxx>
-#include <vector>
-
-class TextFilter
-{
-protected:
-    FILE            *pIn, *pOut;
-    virtual void    Filter();
-public:
-                    TextFilter( rtl::OString aInFile = "stdin",
-                        rtl::OString aOutFile = "stdout" );
-    virtual         ~TextFilter();
-
-    virtual void    Execute();
-};
-
-TextFilter::TextFilter( rtl::OString aInFile, rtl::OString aOutFile )
-{
-    if ( aInFile == "stdin" )
-        pIn = stdin;
-    else
-        if (( pIn = fopen( aInFile.getStr(), "r" )) == NULL )
-            printf( "Can't read %s\n", aInFile.getStr() );
-
-    if ( aOutFile == "stdout" )
-        pOut = stdout;
-    else
-        if (( pOut = fopen( aOutFile.getStr(), "w" )) == NULL )
-            printf( "Can't write %s\n", aOutFile.getStr() );
-}
-
-TextFilter::~TextFilter()
-{
-    fclose( pOut );
-    fclose( pIn );
-}
-
-void TextFilter::Execute()
-{
-    Filter();
-}
-
-void TextFilter::Filter()
-{
-    int c;
-    while ( (c = fgetc( pIn )) != EOF )
-        fputc( c, pOut );
-}
-
-#define LINE_LEN 2048
-
-class MkLine;
-typedef ::std::vector< MkLine* > ByteStringList;
-
-class MkLine
-{
-public:
-    rtl::OString aLine;
-    ByteStringList*     pPrivateTnrLst;
-    sal_Bool            bOut;
-    sal_Bool            bHier;
-
-                    MkLine();
-};
-
-MkLine::MkLine()
-{
-    bOut = sal_False;
-    bHier = sal_False;
-    pPrivateTnrLst = NULL;
-}
-
-
-class MkFilter : public TextFilter
-{
-    static rtl::OString aTnr;
-    ByteStringList      *pLst;
-    ByteStringList      *pTnrLst;
-protected:
-    virtual void    Filter();
-public:
-                    MkFilter( rtl::OString aInFile = "stdin", rtl::OString aOutFile = "stdout");
-                    ~MkFilter();
-};
-
-MkFilter::MkFilter( rtl::OString aInFile, rtl::OString aOutFile ) :
-    TextFilter( aInFile, aOutFile )
-{
-    pLst = new ByteStringList;
-    pTnrLst = new ByteStringList;
-}
-
-MkFilter::~MkFilter()
-{
-    for ( size_t i = 0, n = pTnrLst->size(); i < n; ++i ) {
-        delete (*pTnrLst)[ i ];
-    }
-    delete pTnrLst;
-    for ( size_t i = 0, n = pLst->size(); i < n; ++i ) {
-        delete (*pLst)[ i ];
-    }
-    delete pLst;
-}
-
-rtl::OString MkFilter::aTnr(RTL_CONSTASCII_STRINGPARAM("$(TNR)"));
-
-void MkFilter::Filter()
-{
-    char aLineBuf[LINE_LEN];
-    int nState = 0;
-
-    while(( fgets(aLineBuf, LINE_LEN, pIn)) != NULL )
-    {
-        rtl::OString aLine(aLineBuf);
-        if (aLine.indexOf(rtl::OString(RTL_CONSTASCII_STRINGPARAM("mkfilter1"))) != -1)
-        {
-            // surpress lines
-            fprintf( stderr, "mkfilter1\n" );
-            nState = 0;
-        }
-        else if (aLine.indexOf(rtl::OString(RTL_CONSTASCII_STRINGPARAM("unroll begin"))) != -1)
-        {
-            // Print lines while replacing $(TNR) with int n
-            fprintf( stderr, "\nunroll begin\n" );
-            nState = 1;
-        }
-
-        if ( nState == 0  )
-        {
-            fprintf( stderr, "." );
-            MkLine *pMkLine = new MkLine();
-            pMkLine->aLine = aLineBuf;
-            pMkLine->bOut = sal_False;
-
-            pLst->push_back( pMkLine );
-        }
-        else if ( nState == 1 )
-        {
-            sal_Bool bInTnrList = sal_True;
-            fprintf( stderr, ":" );
-            MkLine *pMkLine = new MkLine();
-            if (aLine.indexOf(rtl::OString(RTL_CONSTASCII_STRINGPARAM("unroll end"))) != -1)
-            {
-                fprintf( stderr, ";\nunroll end\n" );
-                MkLine *p_MkLine = new MkLine();
-                p_MkLine->bHier = sal_True;
-                p_MkLine->aLine = rtl::OString(RTL_CONSTASCII_STRINGPARAM(
-                    "# do not delete this line === mkfilter3i\n"));
-                p_MkLine->bOut = sal_False;
-                p_MkLine->pPrivateTnrLst = pTnrLst;
-                pTnrLst = new ByteStringList();
-                pLst->push_back( p_MkLine );
-                nState = 0;
-                bInTnrList = sal_False;
-            }
-            pMkLine->aLine = rtl::OString(aLineBuf);
-            pMkLine->bOut = sal_False;
-
-            if ( bInTnrList )
-                pTnrLst->push_back( pMkLine );
-        }
-        else {
-            /* Skip these lines */;
-        }
-    }   // End Of File
-    fprintf( stderr, "\n" );
-
-    // Output file again
-    size_t nLines = pLst->size();
-    for ( size_t j=0; j<nLines; j++ )
-    {
-        MkLine *pLine = (*pLst)[ j ];
-        if ( pLine->bHier )
-        {
-            // Iterate list n times
-            for ( sal_uInt16 n=1; n<11; n++)
-            {
-                size_t nCount = pLine->pPrivateTnrLst->size();
-                for ( size_t i=0; i<nCount; i++ )
-                {
-                    MkLine *pMkLine = (*pLine->pPrivateTnrLst)[ i ];
-                    rtl::OString aLine = pMkLine->aLine.replaceAll(aTnr, OString::number(n));
-                    fputs( aLine.getStr(), pOut );
-                    fprintf( stderr, "o" );
-                }
-            }
-            if ( pLine->pPrivateTnrLst != NULL ) {
-                for ( size_t i = 0, n = pLine->pPrivateTnrLst->size(); i < n; ++i ) {
-                    delete (*pLine->pPrivateTnrLst)[ i ];
-                }
-                delete pLine->pPrivateTnrLst;
-            }
-            pLine->pPrivateTnrLst = NULL;
-        }
-        if ( pLine->bOut )
-            fputs(pLine->aLine.getStr(), pOut );
-    }
-    fprintf( stderr, "\n" );
-}
-
-int main()
-{
-    int nRet = 0;
-
-    TextFilter *pFlt = new MkFilter();
-    pFlt->Execute();
-    delete pFlt;
-
-    return nRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list