convert FLAG constants to o3tl::typed_flags

Change-Id: I3b51321c425b8e0039932b5d4b48d35c3bf14378
This commit is contained in:
Noel Grandin
2016-11-24 13:28:56 +02:00
parent c2775560ab
commit a0ee31da5c
5 changed files with 42 additions and 35 deletions

View File

@@ -24,6 +24,7 @@
#include <rscdef.hxx>
#include <rschash.hxx>
#include <rtl/alloc.h>
#include <o3tl/typed_flags_set.hxx>
/******************* T y p e s *******************************************/
typedef char * CLASS_DATA; // Zeiger auf die Daten einer Klasse
@@ -45,16 +46,22 @@ extern AtomContainer* pHS;
/******************* D e f i n e s ***************************************/
#define HELP_FLAG 0x0001 // Hilfe anzeigen
#define NOPREPRO_FLAG 0x0002 // kein Preprozesor
#define NOSYNTAX_FLAG 0x0004 // keine Syntaxanalyse
#define NOLINK_FLAG 0x0008 // nicht linken
#define NORESFILE_FLAG 0x0010 // keine .res-Datei erzeugen
#define DEFINE_FLAG 0x0020 // es wurde Definitionen angegeben
#define INCLUDE_FLAG 0x0040 // der Include-Pfad wurde erweitert
#define PRELOAD_FLAG 0x0200 // Alle Resourcen Preloaden
#define SRSDEFAULT_FLAG 0x1000 // immer der Default geschrieben
#define NOSYSRESTEST_FLAG 0x2000 // ueberprueft nicht die Richtigkeit von (bmp, ico, cur)
enum class CommandFlags {
NONE = 0x0000,
Help = 0x0001, // Hilfe anzeigen
NoPrePro = 0x0002, // kein Preprozesor
NoSyntax = 0x0004, // keine Syntaxanalyse
NoLink = 0x0008, // nicht linken
NoResFile = 0x0010, // keine .res-Datei erzeugen
Define = 0x0020, // es wurde Definitionen angegeben
Include = 0x0040, // der Include-Pfad wurde erweitert
Preload = 0x0200, // Alle Resourcen Preloaden
SrsDefault = 0x1000, // immer der Default geschrieben
NoSysResTest = 0x2000 // ueberprueft nicht die Richtigkeit von (bmp, ico, cur)
};
namespace o3tl {
template<> struct typed_flags<CommandFlags> : is_typed_flags<CommandFlags, 0x327f> {};
}
/******************* T y p e s *******************************************/

View File

@@ -113,16 +113,16 @@ public:
RscError* pEH; // error handler
RscNameTable aNmTb; // name table
RscFileTab aFileTab; // fila name table
sal_uInt32 nFlags;
RscFileTab aFileTab; // file name table
CommandFlags nFlags;
std::map<sal_uInt64, sal_uLong> aIdTranslator; // map resources types and ids to an id (under PM9 or to a file position (MTF)
RscTypCont( RscError *, RSCBYTEORDER_TYPE, const OString& rSearchPath, sal_uInt32 nFlags );
RscTypCont( RscError *, RSCBYTEORDER_TYPE, const OString& rSearchPath, CommandFlags nFlags );
~RscTypCont();
Atom AddLanguage( const char* );
bool IsSrsDefault() const
{ return (nFlags & SRSDEFAULT_FLAG) != 0; }
{ return bool(nFlags & CommandFlags::SrsDefault); }
OString ChangeLanguage(const OString & rNewLang);
const std::vector< sal_uInt32 >& GetFallbacks() const
{ return aLangFallbacks; }

View File

@@ -35,10 +35,10 @@ class RscCmdLine
public:
RscStrList aInputList; // source file list
RscStrList aInputList; // source file list
OString aPath; // path list
RSCBYTEORDER_TYPE nByteOrder;
unsigned short nCommands; // command bits
CommandFlags nCommands; // command bits
OString aOutputSrs; // Srs output file name
OString aILDir;

View File

@@ -38,7 +38,7 @@
RscTypCont::RscTypCont( RscError * pErrHdl,
RSCBYTEORDER_TYPE nOrder,
const OString& rSearchPath,
sal_uInt32 nFlagsP )
CommandFlags nFlagsP )
: nSourceCharSet( RTL_TEXTENCODING_UTF8 )
, nByteOrder( nOrder )
, aSearchPath( rSearchPath )

View File

@@ -65,7 +65,7 @@ AtomContainer* pHS = nullptr;
void RscCmdLine::Init()
{
nCommands = 0;
nCommands = CommandFlags::NONE;
nByteOrder = RSC_BIGENDIAN;
aPath = OString(".");
@@ -114,24 +114,24 @@ RscCmdLine::RscCmdLine( int argc, char ** argv, RscError * pEH )
if( !rsc_stricmp( (*ppStr) + 1, "h" )
|| !strcmp( (*ppStr) + 1, "?" ) )
{ // Write help to standard output
nCommands |= HELP_FLAG;
nCommands |= CommandFlags::Help;
}
else if( !rsc_stricmp( (*ppStr) + 1, "p" ) )
{ // No preprocessor
nCommands |= NOPREPRO_FLAG;
nCommands |= CommandFlags::NoPrePro;
}
else if( !rsc_stricmp( (*ppStr) + 1, "s" ) )
{ // Syntax analysis, creates .srs file
nCommands |= NOLINK_FLAG;
nCommands |= CommandFlags::NoLink;
}
else if( !rsc_stricmp( (*ppStr) + 1, "l" ) )
{ // links, no syntax and no preprocessing
nCommands |= NOPREPRO_FLAG;
nCommands |= NOSYNTAX_FLAG;
nCommands |= CommandFlags::NoPrePro;
nCommands |= CommandFlags::NoSyntax;
}
else if( !rsc_stricmp( (*ppStr) + 1, "r" ) )
{ // generate no .res file
nCommands |= NORESFILE_FLAG;
nCommands |= CommandFlags::NoResFile;
}
else if( !rsc_strnicmp( (*ppStr) + 1, "sub", 3 ) )
{
@@ -146,7 +146,7 @@ RscCmdLine::RscCmdLine( int argc, char ** argv, RscError * pEH )
}
else if( !rsc_stricmp( (*ppStr) + 1, "PreLoad" ) )
{ // all resources with Preload
nCommands |= PRELOAD_FLAG;
nCommands |= CommandFlags::Preload;
}
else if( !rsc_stricmp( (*ppStr) + 1, "LITTLEENDIAN" ) )
{ // endianness when writing
@@ -158,11 +158,11 @@ RscCmdLine::RscCmdLine( int argc, char ** argv, RscError * pEH )
}
else if( !rsc_strnicmp( (*ppStr) + 1, "d", 1 ) )
{ // define symbols
nCommands |= DEFINE_FLAG;
nCommands |= CommandFlags::Define;
}
else if( !rsc_strnicmp( (*ppStr) + 1, "i", 1 ) )
{ // define include path
nCommands |= INCLUDE_FLAG;
nCommands |= CommandFlags::Include;
OStringBuffer aBuffer(aPath);
if (!aBuffer.isEmpty())
aBuffer.append(SAL_PATHSEPARATOR);
@@ -204,11 +204,11 @@ RscCmdLine::RscCmdLine( int argc, char ** argv, RscError * pEH )
}
else if( !rsc_stricmp( (*ppStr) + 1, "NoSysResTest" ) )
{ // don't check Bitmap, Pointers, Icons
nCommands |= NOSYSRESTEST_FLAG;
nCommands |= CommandFlags::NoSysResTest;
}
else if( !rsc_stricmp( (*ppStr) + 1, "SrsDefault" ) )
{ // Only write one language to srs file
nCommands |= SRSDEFAULT_FLAG;
nCommands |= CommandFlags::SrsDefault;
}
else if( !rsc_stricmp( (*ppStr) + 1, "lg" ) )
{
@@ -232,7 +232,7 @@ RscCmdLine::RscCmdLine( int argc, char ** argv, RscError * pEH )
i++;
}
if( nCommands & HELP_FLAG )
if( nCommands & CommandFlags::Help )
pEH->FatalError( ERR_USAGE, RscId() );
// was an inputted file specified
else if( !aInputList.empty() )
@@ -319,9 +319,9 @@ ERRTYPE RscCompiler::Start()
for( size_t i = 0, n = pCL->aInputList.size(); i < n; ++i )
pTC->aFileTab.NewCodeFile( *pCL->aInputList[ i ] );
if( !(pCL->nCommands & NOSYNTAX_FLAG) )
if( !(pCL->nCommands & CommandFlags::NoSyntax) )
{
if( pCL->nCommands & NOPREPRO_FLAG )
if( pCL->nCommands & CommandFlags::NoPrePro )
{
pTC->pEH->SetListFile( nullptr );
@@ -371,7 +371,7 @@ ERRTYPE RscCompiler::Start()
void RscCompiler::EndCompile()
{
if( !pCL->aOutputSrs.isEmpty() && (pCL->nCommands & NOLINK_FLAG) )
if( !pCL->aOutputSrs.isEmpty() && (pCL->nCommands & CommandFlags::NoLink) )
{
pTC->pEH->StdOut( "Writing file ", RscVerbosityVerbose );
pTC->pEH->StdOut( pCL->aOutputSrs.getStr(), RscVerbosityVerbose );
@@ -379,7 +379,7 @@ void RscCompiler::EndCompile()
// copy from TMP to real names
unlink( pCL->aOutputSrs.getStr() ); // delete target file
if( !(pCL->nCommands & NOSYNTAX_FLAG) )
if( !(pCL->nCommands & CommandFlags::NoSyntax) )
{
FILE * foutput;
@@ -558,7 +558,7 @@ ERRTYPE RscCompiler::Link()
ERRTYPE aError;
RscFile* pFName;
if( !(pCL->nCommands & NOLINK_FLAG) )
if( !(pCL->nCommands & CommandFlags::NoLink) )
{
::std::list<RscCmdLine::OutputFile>::const_iterator it;