diff options
author | Mikhail Voytenko <mav@openoffice.org> | 2011-01-06 14:57:12 +0100 |
---|---|---|
committer | Mikhail Voytenko <mav@openoffice.org> | 2011-01-06 14:57:12 +0100 |
commit | 305315337b472eeee344c3ee174dded67da8d1af (patch) | |
tree | ea57d289a315e6a4b3b1f2ba80e8062f72dd59e5 /rsc | |
parent | removetooltypes01: #i112600# resync to DEV300_m92; remove tooltypes from xml... (diff) | |
parent | CWS-TOOLING: integrate CWS fwk160 (diff) | |
download | core-305315337b472eeee344c3ee174dded67da8d1af.tar.gz core-305315337b472eeee344c3ee174dded67da8d1af.zip |
removetooltypes01: rebase to DEV300_m96
Diffstat (limited to 'rsc')
-rw-r--r-- | rsc/inc/rsc/rscsfx.hxx (renamed from rsc/inc/rscsfx.hxx) | 0 | ||||
-rw-r--r-- | rsc/prj/d.lst | 2 | ||||
-rw-r--r-- | rsc/source/parser/rscdb.cxx | 3 | ||||
-rw-r--r-- | rsc/source/parser/rscibas.cxx | 4 | ||||
-rw-r--r-- | rsc/source/parser/rscicpx.cxx | 2 | ||||
-rw-r--r-- | rsc/source/rsc/rsc.cxx | 172 |
6 files changed, 85 insertions, 98 deletions
diff --git a/rsc/inc/rscsfx.hxx b/rsc/inc/rsc/rscsfx.hxx index 830bbcf37baa..830bbcf37baa 100644 --- a/rsc/inc/rscsfx.hxx +++ b/rsc/inc/rsc/rscsfx.hxx diff --git a/rsc/prj/d.lst b/rsc/prj/d.lst index e59c9b2e9f3a..e79c03d9bb63 100644 --- a/rsc/prj/d.lst +++ b/rsc/prj/d.lst @@ -6,4 +6,4 @@ ..\%__SRC%\bin\rscpp %_DEST%\bin%_EXT%\rscpp mkdir: %_DEST%\inc%_EXT%\rsc -..\inc\rscsfx.hxx %_DEST%\inc%_EXT%\rsc\rscsfx.hxx +..\inc\rsc/rscsfx.hxx %_DEST%\inc%_EXT%\rsc\rscsfx.hxx diff --git a/rsc/source/parser/rscdb.cxx b/rsc/source/parser/rscdb.cxx index fdbf6459ac63..e14d406b3bbc 100644 --- a/rsc/source/parser/rscdb.cxx +++ b/rsc/source/parser/rscdb.cxx @@ -903,7 +903,7 @@ ERRTYPE RscTypCont :: WriteHxx( FILE * fOutput, sal_uIntPtr nFileKey ) fprintf( fOutput, "#include <vcl/fixed.hxx>\n" ); fprintf( fOutput, "#include <vcl/group.hxx>\n" ); fprintf( fOutput, "#include <vcl/image.hxx>\n" ); - fprintf( fOutput, "#include <vcl/imagebtn.hxx>\n" ); + fprintf( fOutput, "#include <vcl/button.hxx>\n" ); fprintf( fOutput, "#include <vcl/keycod.hxx>\n" ); fprintf( fOutput, "#include <vcl/lstbox.hxx>\n" ); fprintf( fOutput, "#include <vcl/mapmod.hxx>\n" ); @@ -1113,3 +1113,4 @@ sal_uInt32 RscTypCont::PutTranslatorKey( sal_uInt64 nKey ) aIdTranslator[ nKey ] = nFilePos; return nPMId++; } + diff --git a/rsc/source/parser/rscibas.cxx b/rsc/source/parser/rscibas.cxx index c68fa6ac7ebf..75239f82e55b 100644 --- a/rsc/source/parser/rscibas.cxx +++ b/rsc/source/parser/rscibas.cxx @@ -102,7 +102,7 @@ void RscLangEnum::Init( RscNameTable& rNames ) while ( NULL != ( pLangEntry = MsLangId::getIsoLangEntry( nIndex )) && ( pLangEntry->mnLang != LANGUAGE_DONTKNOW )) { #if OSL_DEBUG_LEVEL > 2 - fprintf( stderr, "ISO Language in : %d %d %s\n", + fprintf( stderr, "ISO Language in : %d\n", (int)nIndex, pLangEntry->mnLang, MsLangId::convertLanguageToIsoByteString( pLangEntry->mnLang ).getStr() ); @@ -200,7 +200,7 @@ Atom RscLangEnum::AddLanguage( const char* pLang, RscNameTable& rNames ) mnLangId++; } #if OSL_DEBUG_LEVEL > 2 - fprintf( stderr, "AddLanguage( %s ) = 0x%lx\n", pLang, nResult ); + fprintf( stderr, "AddLanguage( %s ) = %d\n", pLang, nResult ); #endif return nResult; } diff --git a/rsc/source/parser/rscicpx.cxx b/rsc/source/parser/rscicpx.cxx index eab06b3ea8ec..13d84851a563 100644 --- a/rsc/source/parser/rscicpx.cxx +++ b/rsc/source/parser/rscicpx.cxx @@ -40,7 +40,7 @@ #include <rscclass.hxx> #include <rsccont.hxx> #include <rscdb.hxx> -#include <rscsfx.hxx> +#include <rsc/rscsfx.hxx> #include "rsclex.hxx" #include <yyrscyacc.hxx> diff --git a/rsc/source/rsc/rsc.cxx b/rsc/source/rsc/rsc.cxx index c1eb0f85b36b..81284ab00df8 100644 --- a/rsc/source/rsc/rsc.cxx +++ b/rsc/source/rsc/rsc.cxx @@ -66,12 +66,14 @@ #include <rschash.hxx> #include <osl/file.h> +#include <osl/file.hxx> #include <osl/process.h> #include <rtl/strbuf.hxx> #include <rtl/tencinfo.h> #include <rtl/textenc.h> #include <vector> +#include <algorithm> using namespace rtl; @@ -139,7 +141,7 @@ RscCmdLine::RscCmdLine( int argc, char ** argv, RscError * pEH ) RscPtrPtr aCmdLine; // Kommandozeile ByteString aString; sal_uInt32 i; - sal_Bool bOutputSrsIsSet = sal_False; + sal_Bool bOutputSrsIsSet = sal_False; Init(); // Defaults setzen @@ -724,7 +726,7 @@ ERRTYPE RscCompiler :: IncludeParser( sal_uIntPtr lFileKey ) *************************************************************************/ ERRTYPE RscCompiler :: ParseOneFile( sal_uIntPtr lFileKey, const RscCmdLine::OutputFile* pOutputFile, - const WriteRcContext* pContext ) + const WriteRcContext* pContext ) { FILE * finput = NULL; ERRTYPE aError; @@ -802,13 +804,36 @@ ERRTYPE RscCompiler :: ParseOneFile( sal_uIntPtr lFileKey, |* *************************************************************************/ -static OString do_prefix( const char* pPrefix, const OUString& rFile ) +namespace { - OStringBuffer aBuf(256); - aBuf.append( pPrefix ); - aBuf.append( ":" ); - aBuf.append( OUStringToOString( rFile, RTL_TEXTENCODING_MS_1252 ) ); - return aBuf.makeStringAndClear(); + using namespace ::osl; + class RscIoError { }; + static inline OUString lcl_getAbsoluteUrl(const OUString& i_sBaseUrl, const OString& i_sPath) + { + OUString sRelUrl, sAbsUrl; + if(FileBase::getFileURLFromSystemPath(OStringToOUString(i_sPath, RTL_TEXTENCODING_MS_1252), sRelUrl) != FileBase::E_None) + throw RscIoError(); + if(FileBase::getAbsoluteFileURL(i_sBaseUrl, sRelUrl, sAbsUrl) != FileBase::E_None) + throw RscIoError(); + return sAbsUrl; + }; + static inline OString lcl_getSystemPath(const OUString& i_sUrl) + { + OUString sSys; + if(FileBase::getSystemPathFromFileURL(i_sUrl, sSys) != FileBase::E_None) + throw RscIoError(); + OSL_TRACE("temporary file: %s", OUStringToOString(sSys, RTL_TEXTENCODING_UTF8).getStr()); + return OUStringToOString(sSys, RTL_TEXTENCODING_MS_1252); + }; + static inline OString lcl_getTempFile(OUString& sTempDirUrl) + { + // get a temp file name for the rc file + OUString sTempUrl; + if(FileBase::createTempFile(&sTempDirUrl, NULL, &sTempUrl) != FileBase::E_None) + throw RscIoError(); + OSL_TRACE("temporary url: %s", OUStringToOString(sTempUrl, RTL_TEXTENCODING_UTF8).getStr()); + return lcl_getSystemPath(sTempUrl); + }; } ERRTYPE RscCompiler::Link() @@ -817,12 +842,6 @@ ERRTYPE RscCompiler::Link() ERRTYPE aError; RscFile* pFName; -#ifdef UNX -#define PATHSEP '/' -#else -#define PATHSEP '\\' -#endif - if( !(pCL->nCommands & NOLINK_FLAG) ) { ::std::list<RscCmdLine::OutputFile>::const_iterator it; @@ -836,91 +855,59 @@ ERRTYPE RscCompiler::Link() { pTC->Delete( pTC->aFileTab.GetIndex( pFName ) ); pTC->aFileTab.Seek( pFName ); - pFName->bLoaded = sal_False; - } - } - - // rc-Datei schreiben - ByteString aDir( it->aOutputRc ); - aDir.SetToken( aDir.GetTokenCount( PATHSEP )-1, PATHSEP, ByteString() ); - if( ! aDir.Len() ) - { - char aBuf[1024]; - if( getcwd( aBuf, sizeof( aBuf ) ) ) - { - aDir = aBuf; - aDir.Append( PATHSEP ); + pFName->bLoaded = FALSE; } } - // work dir for absolute Urls - OUString aCWD, aTmpUrl; - osl_getProcessWorkingDir( &aCWD.pData ); // get two temp file urls OString aRcTmp, aSysListTmp, aSysList; - OUString aSysPath, aUrlDir; - aSysPath = OStringToOUString( aDir, RTL_TEXTENCODING_MS_1252 ); - if( osl_getFileURLFromSystemPath( aSysPath.pData, &aUrlDir.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "url conversion", aUrlDir ) ); - - if( osl_getAbsoluteFileURL( aCWD.pData, aUrlDir.pData, &aTmpUrl.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "absolute url", aUrlDir ) ); - aUrlDir = aTmpUrl; + try + { + OUString sPwdUrl; + osl_getProcessWorkingDir( &sPwdUrl.pData ); + OUString sRcUrl = lcl_getAbsoluteUrl(sPwdUrl, it->aOutputRc); + // TempDir is either the directory where the rc file is located or pwd + OUString sTempDirUrl = sRcUrl.copy(0,sRcUrl.lastIndexOf('/')); + OSL_TRACE("rc directory URL: %s", OUStringToOString(sTempDirUrl, RTL_TEXTENCODING_UTF8).getStr()); + + aRcTmp = lcl_getTempFile(sTempDirUrl); + OSL_TRACE("temporary rc file: %s", aRcTmp.getStr()); + + OUString sOilDirUrl; + if(pCL->aILDir.Len()) + sOilDirUrl = lcl_getAbsoluteUrl(sPwdUrl, pCL->aILDir); + else + sOilDirUrl = sTempDirUrl; + OSL_TRACE("ilst directory URL: %s", OUStringToOString(sOilDirUrl, RTL_TEXTENCODING_UTF8).getStr()); - // create temp file for rc target - if( osl_createTempFile( aUrlDir.pData, NULL, &aTmpUrl.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "temp file creation", aUrlDir ) ); + aSysListTmp = lcl_getTempFile(sOilDirUrl); + OSL_TRACE("temporary ilst file: %s", aSysListTmp.getStr()); - if( osl_getSystemPathFromFileURL( aTmpUrl.pData, &aSysPath.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "sys path conversion", aTmpUrl ) ); - aRcTmp = OUStringToOString( aSysPath, RTL_TEXTENCODING_MS_1252 ); + OUString sIlstUrl, sIlstSys; + sIlstUrl = sRcUrl.copy(sRcUrl.lastIndexOf('/')+1); + sIlstUrl = sIlstUrl.copy(0,sIlstUrl.lastIndexOf('.')); + sIlstUrl += OUString::createFromAscii(".ilst"); + sIlstUrl = lcl_getAbsoluteUrl(sOilDirUrl, OUStringToOString(sIlstUrl, RTL_TEXTENCODING_UTF8)); - if ( NULL == (fExitFile = foutput = fopen( aRcTmp.getStr(), "wb" )) ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), aRcTmp.getStr() ); - - // make absolute path from IL dir (-oil switch) - // if no -oil was given, use the same dir as for rc file - if( pCL->aILDir.Len() ) + aSysList = lcl_getSystemPath(sIlstUrl); + OSL_TRACE("ilst file: %s", aSysList.getStr()); + } + catch (RscIoError&) { - aSysPath = OStringToOUString( pCL->aILDir, RTL_TEXTENCODING_MS_1252 ); - if( osl_getFileURLFromSystemPath( aSysPath.pData, &aTmpUrl.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "url conversion", aSysPath ) ); - if( osl_getAbsoluteFileURL( aCWD.pData, aTmpUrl.pData, &aUrlDir.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "absolute url", aTmpUrl ) ); + OString sMsg("Error with paths:\n"); + sMsg += "temporary rc file: " + aRcTmp + "\n"; + sMsg += "temporary ilst file: " + aSysListTmp + "\n"; + sMsg += "ilst file: " + aSysList + "\n"; + pTC->pEH->FatalError(ERR_OPENFILE, RscId(), sMsg); } - - if( osl_getSystemPathFromFileURL( aUrlDir.pData, &aSysPath.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "sys path conversion", aUrlDir ) ); - - aSysList = OUStringToOString( aSysPath, RTL_TEXTENCODING_MS_1252 ); - aSysList = aSysList + "/"; - xub_StrLen nLastSep = it->aOutputRc.SearchBackward( PATHSEP ); - if( nLastSep == STRING_NOTFOUND ) - nLastSep = 0; - xub_StrLen nLastPt = it->aOutputRc.Search( '.', nLastSep ); - if( nLastPt == STRING_NOTFOUND ) - nLastPt = it->aOutputRc.Len()+1; - aSysList = aSysList + it->aOutputRc.Copy( nLastSep+1, nLastPt - nLastSep-1 ); - aSysList = aSysList + ".ilst"; - // create temp file for sys list target - if( osl_createTempFile( aUrlDir.pData, NULL, &aTmpUrl.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "temp file creation", aUrlDir ) ); - - if( osl_getSystemPathFromFileURL( aTmpUrl.pData, &aSysPath.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "sys path conversion", aTmpUrl ) ); - aSysListTmp = OUStringToOString( aSysPath, RTL_TEXTENCODING_MS_1252 ); - - pTC->pEH->StdOut( "Generating .rc file\n" ); - - rtl_TextEncoding aEnc = RTL_TEXTENCODING_UTF8; - //if( it->aLangName.CompareIgnoreCaseToAscii( "de", 2 ) == COMPARE_EQUAL ) - // aEnc = RTL_TEXTENCODING_MS_1252; + if ( NULL == (fExitFile = foutput = fopen( aRcTmp.getStr(), "wb" )) ) + pTC->pEH->FatalError( ERR_OPENFILE, RscId(), aRcTmp.getStr() ); // Schreibe Datei sal_Char cSearchDelim = ByteString( DirEntry::GetSearchDelimiter(), RTL_TEXTENCODING_ASCII_US ).GetChar( 0 ); sal_Char cAccessDelim = ByteString( DirEntry::GetAccessDelimiter(), RTL_TEXTENCODING_ASCII_US ).GetChar( 0 ); pTC->ChangeLanguage( it->aLangName ); - pTC->SetSourceCharSet( aEnc ); + pTC->SetSourceCharSet( RTL_TEXTENCODING_UTF8 ); pTC->ClearSysNames(); ByteString aSysSearchPath( it->aLangSearchPath ); xub_StrLen nIndex = 0; @@ -936,9 +923,7 @@ ERRTYPE RscCompiler::Link() aSysSearchPath.Append( cSearchDelim ); aSysSearchPath.Append( aToken ); } -#if OSL_DEBUG_LEVEL > 1 - fprintf( stderr, "setting search path for language %s: %s\n", it->aLangName.GetBuffer(), aSysSearchPath.GetBuffer() ); -#endif + OSL_TRACE( "setting search path for language %s: %s\n", it->aLangName.GetBuffer(), aSysSearchPath.GetBuffer() ); pTC->SetSysSearchPath( aSysSearchPath ); WriteRcContext aContext; @@ -1130,7 +1115,7 @@ ByteString RscCompiler::GetTmpFileName() /********************************************************************/ /* */ -/* Function : sal_Bool openinput() */ +/* Function : sal_Bool openinput() */ /* */ /* Description : Check to see if the input file exists and can */ /* be opened for reading. */ @@ -1153,7 +1138,7 @@ void RscCompiler::OpenInput( const ByteString& rInput ) |*************************************************************************/ bool RscCompiler::GetImageFilePath( const RscCmdLine::OutputFile& rOutputFile, - const WriteRcContext& rContext, + const WriteRcContext& rContext, const ByteString& rBaseFileName, ByteString& rImagePath, FILE* pSysListFile ) @@ -1243,9 +1228,9 @@ bool RscCompiler::GetImageFilePath( const RscCmdLine::OutputFile& rOutputFile, // ------------------------------------------------------------------------------ void RscCompiler::PreprocessSrsFile( const RscCmdLine::OutputFile& rOutputFile, - const WriteRcContext& rContext, - const DirEntry& rSrsInPath, - const DirEntry& rSrsOutPath ) + const WriteRcContext& rContext, + const DirEntry& rSrsInPath, + const DirEntry& rSrsOutPath ) { SvFileStream aIStm( rSrsInPath.GetFull(), STREAM_READ ); SvFileStream aOStm( rSrsOutPath.GetFull(), STREAM_WRITE | STREAM_TRUNC ); @@ -1353,7 +1338,7 @@ void RscCompiler::PreprocessSrsFile( const RscCmdLine::OutputFile& rOutputFile, } aOStm.WriteLine( "};" ); - } + } else aOStm.WriteLine( aLine ); } @@ -1382,3 +1367,4 @@ void RscCompiler::PreprocessSrsFile( const RscCmdLine::OutputFile& rOutputFile, if( pSysListFile ) fclose( pSysListFile ); } + |