[Libreoffice-commits] .: tools/bootstrp tools/prj

Joseph Powers jpowers at kemper.freedesktop.org
Fri Feb 11 08:33:19 PST 2011


 tools/bootstrp/addexes2/makefile.mk |   56 ++++++++
 tools/bootstrp/addexes2/mkfilt.cxx  |  240 ++++++++++++++++++++++++++++++++++++
 tools/prj/build.lst                 |    1 
 3 files changed, 297 insertions(+)

New commits:
commit 3fa9ccffd2af19e2983824083a08593462545d7f
Author: Joseph Powers <jpowers27 at cox.net>
Date:   Fri Feb 11 08:32:51 2011 -0800

    Revert removeal of mkfilt.
    
    It seems that this is used manually to create build files.

diff --git a/tools/bootstrp/addexes2/makefile.mk b/tools/bootstrp/addexes2/makefile.mk
new file mode 100644
index 0000000..8014fdb
--- /dev/null
+++ b/tools/bootstrp/addexes2/makefile.mk
@@ -0,0 +1,56 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org.  If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=tools
+TARGET=addexes2
+TARGETTYPE=CUI
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE :  settings.mk
+
+# --- Files --------------------------------------------------------
+
+APP1TARGET=	mkunroll
+APP1OBJS=   $(OBJ)$/mkfilt.obj
+APP1STDLIBS= $(SALLIB)  $(TOOLSLIB)
+.IF "$(OS)"=="LINUX"
+APP1STDLIBS+=-lpthread
+.ENDIF
+.IF "$(OS)"=="NETBSD"
+APP1STDLIBS+=-lpthread
+.ENDIF
+APP1LIBS=	$(LB)$/btstrp.lib $(LB)$/bootstrp2.lib
+APP1DEPN=   $(LB)$/atools.lib $(LB)$/btstrp.lib $(LB)$/bootstrp2.lib
+
+
+DEPOBJFILES		=	$(APP1OBJS)
+# --- Targets ------------------------------------------------------
+
+.INCLUDE :  target.mk
diff --git a/tools/bootstrp/addexes2/mkfilt.cxx b/tools/bootstrp/addexes2/mkfilt.cxx
new file mode 100644
index 0000000..6f42f53
--- /dev/null
+++ b/tools/bootstrp/addexes2/mkfilt.cxx
@@ -0,0 +1,240 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_tools.hxx"
+
+#include <stdio.h>
+
+#include <../../inc/tools/string.hxx>
+#include <../../inc/tools/list.hxx>
+
+class TextFilter
+{
+protected:
+    FILE			*pIn, *pOut;
+    virtual void	Filter();
+public:
+                    TextFilter( ByteString aInFile = "stdin",
+                        ByteString aOutFile = "stdout" );
+    virtual			~TextFilter();
+
+    virtual void	Execute();
+};
+
+TextFilter::TextFilter( ByteString aInFile, ByteString aOutFile )
+{
+    if ( aInFile == "stdin" )
+        pIn = stdin;
+    else
+        if (( pIn = fopen( aInFile.GetBuffer(), "r" )) == NULL )
+            printf( "Can't read %s\n", aInFile.GetBuffer() );
+
+    if ( aOutFile == "stdout" )
+        pOut = stdout;
+    else
+        if (( pOut = fopen( aOutFile.GetBuffer(), "w" )) == NULL )
+            printf( "Can't write %s\n", aOutFile.GetBuffer() );
+}
+
+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 ByteStringList;
+
+class MkLine
+{
+public:
+    ByteString			aLine;
+    ByteStringList*		pPrivateTnrLst;
+    BOOL			bOut;
+    BOOL			bHier;
+
+                    MkLine();
+};
+
+MkLine::MkLine()
+{
+    bOut = FALSE;
+    bHier = FALSE;
+    pPrivateTnrLst = NULL;
+}
+
+DECLARE_LIST( ByteStringList, MkLine * )
+
+class MkFilter : public TextFilter
+{
+    static ByteString	aTnr;
+    ByteStringList		*pLst;
+    ByteStringList		*pTnrLst;
+protected:
+    virtual void	Filter();
+public:
+                    MkFilter( ByteString aInFile = "stdin", ByteString aOutFile = "stdout");
+                    ~MkFilter();
+};
+
+MkFilter::MkFilter( ByteString aInFile, ByteString aOutFile ) :
+    TextFilter( aInFile, aOutFile )
+{
+    pLst = new ByteStringList;
+    pTnrLst = new ByteStringList;
+}
+
+MkFilter::~MkFilter()
+{
+    delete pTnrLst;
+    delete pLst;
+}
+
+ByteString MkFilter::aTnr="$(TNR)";
+
+void MkFilter::Filter()
+{
+    char aLineBuf[LINE_LEN];
+    int nState = 0;
+
+    while(( fgets(aLineBuf, LINE_LEN, pIn)) != NULL )
+    {
+        ByteString aLine( aLineBuf );
+        //fprintf(stderr, "aLine :%s\n", aLine.GetBuffer());
+        if ( aLine.Search("mkfilter1" ) != STRING_NOTFOUND )
+        {
+            // Zeilen unterdruecken
+            fprintf( stderr, "mkfilter1\n" );
+            nState = 0;
+        }
+        else if ( aLine.Search("unroll begin" ) != STRING_NOTFOUND )
+        {
+            // Zeilen raus schreiben mit ersetzen von $(TNR) nach int n
+            fprintf( stderr, "\nunroll begin\n" );
+            nState = 1;
+        }
+        ;
+
+        if ( nState == 0  )
+        {
+            fprintf( stderr, "." );
+            MkLine *pMkLine = new MkLine();
+            ByteString *pStr = new ByteString( aLineBuf );
+            pMkLine->aLine = *pStr;
+            pMkLine->bOut = FALSE;
+
+            pLst->Insert( pMkLine, LIST_APPEND );
+        }
+        else if ( nState == 1 )
+        {
+            BOOL bInTnrList = TRUE;
+            fprintf( stderr, ":" );
+            MkLine *pMkLine = new MkLine();
+            if ( aLine.Search("unroll end") != STRING_NOTFOUND )
+            {
+                fprintf( stderr, ";\nunroll end\n" );
+                MkLine *p_MkLine = new MkLine();
+                p_MkLine->bHier = TRUE;
+                ByteString *pByteString = new ByteString("# do not delete this line === mkfilter3i\n");
+                p_MkLine->aLine = *pByteString;
+                p_MkLine->bOut = FALSE;
+                p_MkLine->pPrivateTnrLst = pTnrLst;
+                pTnrLst = new ByteStringList();
+                pLst->Insert( p_MkLine, LIST_APPEND );
+                nState = 0;
+                bInTnrList = FALSE;
+            }
+            ByteString *pStr = new ByteString( aLineBuf );
+            pMkLine->aLine = *pStr;
+            pMkLine->bOut = FALSE;
+
+            if ( bInTnrList )
+                pTnrLst->Insert( pMkLine, LIST_APPEND );
+        }
+        else {
+            /* Zeilen ignorieren */;
+        }
+    }	// End Of File
+    fprintf( stderr, "\n" );
+
+    // das File wieder ausgegeben
+    ULONG nLines = pLst->Count();
+    for ( ULONG j=0; j<nLines; j++ )
+    {
+        MkLine *pLine = pLst->GetObject( j );
+        if ( pLine->bHier )
+        {
+            // die List n - Mal abarbeiten
+            for ( USHORT n=1; n<11; n++)
+            {
+                ULONG nCount = pLine->pPrivateTnrLst->Count();
+                for ( ULONG i=0; i<nCount; i++ )
+                {
+                    MkLine *pMkLine = pLine->pPrivateTnrLst->GetObject(i);
+                    ByteString aLine = pMkLine->aLine;
+                    while( aLine.SearchAndReplace( aTnr, ByteString::CreateFromInt32( n )) != (USHORT)-1 ) ;
+                    fputs( aLine.GetBuffer(), pOut );
+                    fprintf( stderr, "o" );
+                }
+            }
+            if ( pLine->pPrivateTnrLst != NULL )
+                delete pLine->pPrivateTnrLst;
+            pLine->pPrivateTnrLst = NULL;
+        }
+        if ( pLine->bOut )
+                fputs(pLine->aLine.GetBuffer(), 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: */
diff --git a/tools/prj/build.lst b/tools/prj/build.lst
index 108c859..0c602a1 100644
--- a/tools/prj/build.lst
+++ b/tools/prj/build.lst
@@ -27,4 +27,5 @@ tl	tools\os2\source\dll				nmake	-	p	tl_dllp tl_inc NULL
 tl	tools\unx\source\dll				nmake	-	u	tl_dllu tl_inc NULL
 tl	tools\util							nmake	-	all	tl_utl tl_com tl_dat tl_deb tl_dllu.u tl_dllp.p tl_dllw.w tl_fsys tl_gen tl_inet tl_mem tl_rc tl_ref tl_str tl_string tl_misc tl_zco tl_ttloader NULL
 tl	tools\bootstrp						nmake	-	all	tl_bstrp tl_utl tl_inc NULL
+tl	tools\bootstrp\addexes2				nmake	-	all	tl_bsexes2 tl_bstrp tl_inc NULL
 tl	tools\qa					nmake	-	all	tl_qa tl_utl NULL


More information about the Libreoffice-commits mailing list