diff options
Diffstat (limited to 'rsc/source/prj/start.cxx')
-rw-r--r-- | rsc/source/prj/start.cxx | 350 |
1 files changed, 0 insertions, 350 deletions
diff --git a/rsc/source/prj/start.cxx b/rsc/source/prj/start.cxx deleted file mode 100644 index c4ed4bf21f5a..000000000000 --- a/rsc/source/prj/start.cxx +++ /dev/null @@ -1,350 +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 <stdlib.h> -#include <stdio.h> -#include <fcntl.h> -#include <string.h> - -#ifdef UNX -#include <unistd.h> -#include <sys/wait.h> -#else // UNX - -#include <io.h> -#include <process.h> -#include <dos.h> - -#endif // UNX - -#include <gui.hxx> -#include <rsctools.hxx> -#include <rscerror.h> -#include <sal/main.h> -#include <rtl/strbuf.hxx> - - -static bool CallPrePro( const OString& rInput, - const OString& rOutput, RscPtrPtr * pCmdLine, - bool bResponse ) -{ - RscPtrPtr aNewCmdL; - RscPtrPtr aRespCmdL; - RscPtrPtr * pCmdL = &aNewCmdL; - int i, nRet; - FILE* fRspFile = nullptr; - OString aRspFileName; - - if( bResponse ) - { - aRspFileName = ::GetTmpFileName(); - fRspFile = fopen( aRspFileName.getStr(), "w" ); - } - - if( !fRspFile ) - aNewCmdL.Append( rsc_strdup( "rscpp" ) ); - - bool bVerbose = false; - for( i = 1; i < int(pCmdLine->GetCount() -1); i++ ) - { - if ( 0 == rsc_stricmp( static_cast<char *>(pCmdLine->GetEntry( i )), "-verbose" ) ) - { - bVerbose = true; - continue; - } - if (strcmp(static_cast<char *>(pCmdLine->GetEntry(i)), "-isystem") == 0) - { - // ignore "-isystem" and following arg - if (i < int(pCmdLine->GetCount()) - 1) - { - ++i; - } - continue; - } - if (strncmp( - static_cast<char *>(pCmdLine->GetEntry(i)), "-isystem", - strlen("-isystem")) - == 0) - { - // ignore args starting with "-isystem" - continue; - } - if ( !rsc_strnicmp( static_cast<char *>(pCmdLine->GetEntry( i )), "-u", 2 ) || - !rsc_strnicmp( static_cast<char *>(pCmdLine->GetEntry( i )), "-i", 2 ) || - !rsc_strnicmp( static_cast<char *>(pCmdLine->GetEntry( i )), "-d", 2 )) - { - aNewCmdL.Append( rsc_strdup( static_cast<char *>(pCmdLine->GetEntry( i )) ) ); - } - } - - aNewCmdL.Append( rsc_strdup( rInput.getStr() ) ); - aNewCmdL.Append( rsc_strdup( rOutput.getStr() ) ); - aNewCmdL.Append( static_cast<void *>(nullptr) ); - - if ( bVerbose ) - { - printf( "Preprocessor commandline: " ); - for( i = 0; i < (int)(pCmdL->GetCount() -1); i++ ) - { - printf( " " ); - printf( "%s", static_cast<const char *>(pCmdL->GetEntry( i )) ); - } - printf( "\n" ); - } - - if( fRspFile ) - { - aRespCmdL.Append( rsc_strdup( "rscpp" ) ); - OStringBuffer aTmpStr; - aTmpStr.append('@').append(aRspFileName); - aRespCmdL.Append( rsc_strdup( aTmpStr.getStr() ) ); - aRespCmdL.Append( static_cast<void *>(nullptr) ); - - pCmdL = &aRespCmdL; - for( i = 0; i < (int)(aNewCmdL.GetCount() -1); i++ ) - { - fprintf( fRspFile, "%s ", static_cast<const char *>(aNewCmdL.GetEntry( i )) ); - } - fclose( fRspFile ); - - if ( bVerbose ) - { - printf( "Preprocessor startline: " ); - for( i = 0; i < (int)(pCmdL->GetCount() -1); i++ ) - { - printf( " " ); - printf( "%s", static_cast<const char *>(pCmdL->GetEntry( i )) ); - } - printf( "\n" ); - } - } - - nRet = rscpp_main( pCmdL->GetCount()-1, reinterpret_cast<char**>(pCmdL->GetBlock()) ); - - if ( fRspFile ) - { - #if OSL_DEBUG_LEVEL > 5 - fprintf( stderr, "leaving response file %s\n", aRspFileName.getStr() ); - #else - unlink( aRspFileName.getStr() ); - #endif - } - if ( nRet ) - return false; - - return true; -} - - -static bool CallRsc2( RscStrList * pInputList, - const OString &rSrsName, RscPtrPtr * pCmdLine ) -{ - int nRet; - RscVerbosity eVerbosity = RscVerbosityNormal; - - RscPtrPtr aNewCmdL; - aNewCmdL.Append( rsc_strdup( "rsc2" ) ); - - for (int i = 1; i < (int)(pCmdLine->GetCount() -1); ++i) - { - if ( !rsc_stricmp( static_cast<char *>(pCmdLine->GetEntry( i )), "-verbose" ) ) - { - eVerbosity = RscVerbosityVerbose; - continue; - } - if ( !rsc_stricmp( static_cast<char *>(pCmdLine->GetEntry( i )), "-quiet" ) ) - { - eVerbosity = RscVerbositySilent; - continue; - } - if( !rsc_strnicmp( static_cast<char *>(pCmdLine->GetEntry( i )), "-fp=", 4 ) || - !rsc_strnicmp( static_cast<char *>(pCmdLine->GetEntry( i )), "-fo=", 4 ) || - !rsc_strnicmp( static_cast<char *>(pCmdLine->GetEntry( i )), "-presponse", 10 ) || - !rsc_strnicmp( static_cast<char *>(pCmdLine->GetEntry( i )), "-rc", 3 ) || - !rsc_stricmp( static_cast<char *>(pCmdLine->GetEntry( i )), "-+" ) || - !rsc_stricmp( static_cast<char *>(pCmdLine->GetEntry( i )), "-br" ) || - !rsc_stricmp( static_cast<char *>(pCmdLine->GetEntry( i )), "-bz" ) || - !rsc_stricmp( static_cast<char *>(pCmdLine->GetEntry( i )), "-r" ) || - ( '-' != *static_cast<char *>(pCmdLine->GetEntry( i )) ) ) - { - } - else - { - aNewCmdL.Append( rsc_strdup( static_cast<char *>(pCmdLine->GetEntry( i )) ) ); - } - } - - aNewCmdL.Append( rsc_strdup( rSrsName.getStr() ) ); - - for ( size_t i = 0, n = pInputList->size(); i < n; ++i ) - { - OString* pString = (*pInputList)[ i ]; - aNewCmdL.Append( rsc_strdup( pString->getStr() ) ); - } - - if ( eVerbosity >= RscVerbosityVerbose ) - { - printf( "Rsc2 commandline: " ); - for( size_t i = 0; i < (unsigned int)(aNewCmdL.GetCount() -1); i++ ) - { - printf( " %s", static_cast<const char *>(aNewCmdL.GetEntry( i )) ); - } - printf( "\n" ); - } - - nRet = rsc2_main( aNewCmdL.GetCount(), reinterpret_cast<char**>(aNewCmdL.GetBlock()) ); - - if( nRet ) - return false; - return true; -} - -SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) -{ - bool bPrePro = true; - bool bHelp = false; - bool bError = false; - bool bResponse = false; - OString aSrsName; - OString aResName; - RscStrList aInputList; - RscStrList aTmpList; - char * pStr; - char ** ppStr; - RscPtrPtr aCmdLine; - sal_uInt32 i; - - pStr = ::ResponseFile( &aCmdLine, argv, argc ); - if( pStr ) - { - printf( "Cannot open response file <%s>\n", pStr ); - return 1; - }; - - ppStr = reinterpret_cast<char **>(aCmdLine.GetBlock()); - ppStr++; - i = 1; - bool bSetSrs = false; - while( ppStr && i < (aCmdLine.GetCount() -1) ) - { - if (strcmp(*ppStr, "-isystem") == 0) - { - // ignore "-isystem" and following arg - if (i < aCmdLine.GetCount() - 1) - { - ++ppStr; - ++i; - } - } - else if (strncmp(*ppStr, "-isystem", strlen("-isystem")) == 0) - { - // ignore args starting with "-isystem" - } - else if( '-' == **ppStr ) - { - if( !rsc_stricmp( (*ppStr) + 1, "p" ) - || !rsc_stricmp( (*ppStr) + 1, "l" ) ) - { // no pre-processor - bPrePro = false; - } - else if( !rsc_stricmp( (*ppStr) + 1, "h" ) ) - { // print help - bHelp = true; - } - else if( !rsc_strnicmp( (*ppStr) + 1, "presponse", 9 ) ) - { // whether to use response file when parameterising preprocessor - bResponse = true; - } - else if( !rsc_strnicmp( (*ppStr) + 1, "fo=", 3 ) ) - { // another Name for .res-file - aResName = (*ppStr) + 4; - } - else if( !rsc_strnicmp( (*ppStr) + 1, "fp=", 3 ) ) - { // another Name for .srs-file - bSetSrs = true; - aSrsName = (*ppStr); - } - } - else - { - aInputList.push_back( new OString(*ppStr) ); - } - ppStr++; - i++; - } - - if( !aInputList.empty() ) - { - // build the output file names - if (!aResName.getLength()) - aResName = OutputFile( *aInputList[ 0 ], "res" ); - if( ! bSetSrs ) - { - aSrsName = OString("-fp=") + OutputFile(*aInputList[0], "srs"); - } - }; - - if( bHelp ) - bPrePro = false; - - if( bPrePro && !aInputList.empty() ) - { - OString aTmpName; - - for ( size_t k = 0, n = aInputList.size(); k < n; ++k ) - { - OString* pString = aInputList[ k ]; - aTmpName = ::GetTmpFileName(); - if( !CallPrePro( *pString, aTmpName, &aCmdLine, bResponse ) ) - { - printf( "Error starting preprocessor\n" ); - bError = true; - break; - } - aTmpList.push_back( new OString(aTmpName) ); - }; - }; - - if( !bError ) - { - if( !CallRsc2( bPrePro ? &aTmpList : &aInputList, aSrsName, &aCmdLine ) ) - { - if( !bHelp ) - { - printf( "Error starting rsc2 compiler\n" ); - bError = true; - } - }; - }; - - for ( size_t k = 0, n = aTmpList.size(); k < n; ++k ) - unlink( aTmpList[ k ]->getStr() ); - - return bError ? EXIT_FAILURE : EXIT_SUCCESS; -} - -void RscExit( sal_uInt32 nExit ) -{ - if( nExit ) - printf( "Program exit is %d\n", (int)nExit ); - exit( nExit ); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |