diff options
author | Caolán McNamara <caolanm@redhat.com> | 2011-08-15 00:22:23 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2011-08-15 09:21:49 +0100 |
commit | 061ebc34468c37d27524352de56faaf9df742556 (patch) | |
tree | 96d924d1f23690029ba13598290858881bdb2495 /l10ntools | |
parent | 90fe8dadaaad07aee2ec513eab1ad75bbf306cb3 (diff) |
add a getToken wrapper for extracting a single token painlessly
Diffstat (limited to 'l10ntools')
-rw-r--r-- | l10ntools/source/export.cxx | 29 | ||||
-rw-r--r-- | l10ntools/source/makefile.mk | 1 |
2 files changed, 19 insertions, 11 deletions
diff --git a/l10ntools/source/export.cxx b/l10ntools/source/export.cxx index b6a47a008f72..9cfb032cfbfa 100644 --- a/l10ntools/source/export.cxx +++ b/l10ntools/source/export.cxx @@ -36,6 +36,7 @@ #include <iostream> #include <vector> #include <rtl/strbuf.hxx> +#include <comphelper/string.hxx> extern "C" { int yyerror( const char * ); } extern "C" { int YYWarning( const char * ); } @@ -1032,23 +1033,29 @@ int Export::Execute( int nToken, const char * pToken ) bDontWriteOutput = sal_True; } break; - case APPFONTMAPPING: { + case APPFONTMAPPING: + { + using comphelper::string::replace; + using comphelper::string::getToken; + bDontWriteOutput = sal_False; // this is a AppfontMapping, so look if its a definition // of field size ByteString sKey = sToken.GetToken( 0, '=' ); sKey.EraseAllChars( ' ' ); sKey.EraseAllChars( '\t' ); - ByteString sMapping = sToken.GetToken( 1, '=' ); - sMapping = sMapping.GetToken( 1, '(' ); - sMapping = sMapping.GetToken( 0, ')' ); - sMapping.EraseAllChars( ' ' ); - sMapping.EraseAllChars( '\t' ); - if ( sKey.ToUpperAscii() == "SIZE" ) { - pResData->nWidth = ( sal_uInt16 ) sMapping.GetToken( 0, ',' ).ToInt32(); - } - else if ( sKey == "POSSIZE" ) { - pResData->nWidth = ( sal_uInt16 ) sMapping.GetToken( 2, ',' ).ToInt32(); + rtl::OString sMapping = sToken.GetToken( 1, '=' ); + sMapping = getToken(sMapping, 1, '('); + sMapping = getToken(sMapping, 0, ')'); + sMapping = replace(sMapping, rtl::OString(' '), rtl::OString()); + sMapping = replace(sMapping, rtl::OString('\t'), rtl::OString()); + if ( sKey.ToUpperAscii() == "SIZE" ) + { + pResData->nWidth = ( sal_uInt16 ) getToken(sMapping, 0, ',').toInt32(); + } + else if ( sKey == "POSSIZE" ) + { + pResData->nWidth = ( sal_uInt16 ) getToken(sMapping, 2, ',').toInt32(); } } break; diff --git a/l10ntools/source/makefile.mk b/l10ntools/source/makefile.mk index 5ab3c4fdf23c..50e9e3388f2b 100644 --- a/l10ntools/source/makefile.mk +++ b/l10ntools/source/makefile.mk @@ -77,6 +77,7 @@ APP1TARGET= transex3 APP1OBJS= $(OBJ)$/src_yy_wrapper.obj APP1STDLIBS+= \ $(TOOLSLIB) \ + $(COMPHELPERLIB) \ $(SALLIB) APP1LIBS+= $(LB)$/$(TARGET).lib APP1DEPN= $(OBJ)$/src_yy_wrapper.obj $(LB)$/$(TARGET).lib |