Revision: 201015
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 13:28:06 +0300
changeset 50 c6286dcf6040
parent 43 1951b3078691
child 51 fb74ac75c07b
child 53 8f0f421d3d0f
Revision: 201015 Kit: 201018
fontsupport/fontutils/iTypeRaster/armv5/ityperast.dll
fontsupport/fontutils/iTypeRaster/winscw/ityperast.dll
group/bld.inf
layouts/aknlayout2/generated/aknapaclayout.cdl.custom.h
layouts/aknlayout2/generated/aknlayout.cdl.custom.h
layouts/aknlayout2/generated/appapaclayout.cdl.custom.h
layouts/aknlayout2/generated/applayout.cdl.custom.h
layouts/aknlayout2/generated/skinlayout.cdl.custom.h
locales/loce32/Collations/Turkish/coltur_basekeys.txt
locales/loce32/Collations/Turkish/coltur_strings.txt
locales/loce32/src/ls_coltur.cpp
locales/loce32/src/ls_cyuk.cpp
skins/AknSkins/group/bld.inf
skins/AknSkins/sdcinc/SDCCompat.h
skins/AknSkins/sdcinc/SDCGlobals.h
skins/AknSkins/sdcinc/SDCIIDConstants.h
skins/AknSkins/sdcinc/SDCInput.h
skins/AknSkins/sdcsrc/SDCBinOutput.cpp
skins/AknSkins/sdcsrc/SDCData.cpp
skins/AknSkins/sdcsrc/SDCDebugOutput.cpp
skins/AknSkins/sdcsrc/SDCIIDConstants.cpp
skins/AknSkins/sdcsrc/SDCInlOutput.cpp
skins/AknSkins/sdcsrc/SDCInput.cpp
skins/AknSkins/sdcsrc/SDCMBMOutput.cpp
skins/AknSkins/sdcsrc/SDCMain.cpp
skins/AknSkins/sdcsrc/SDCPkgOutput.cpp
skins/AknSkins/sdcsrc/SDCReader.cpp
skins/group/bld.inf
uiconfig/s60config/src/NHD4_L_B_QW.bmp
uiconfig/s60config/src/NHD4_P_B.bmp
uiconfig/s60config/src/QHD_L_B_QW.bmp
uiconfig/s60config/src/QHD_P_B.bmp
uiconfig/s60config/src/VGA_L_B_QW.bmp
uigraphics/AknIcon/SvgtFbsRasterizer/src/SvgtFbsRasterizer.cpp
uigraphics/AknIcon/inc/AknIconLoader.h
uigraphics/AknIcon/src/AknIconLoader.cpp
uigraphics/AknIcon/srvsrc/AknIconDataPreserver.cpp
uigraphics/AknIcon/srvsrc/AknIconSrvUtils.cpp
uiresources_pub/scalable_icons_api/inc/AknInternalIconUtils.h
uiresources_pub/scalable_icons_api/scalable_icons_api.metaxml
Binary file fontsupport/fontutils/iTypeRaster/armv5/ityperast.dll has changed
Binary file fontsupport/fontutils/iTypeRaster/winscw/ityperast.dll has changed
--- a/group/bld.inf	Fri Apr 16 16:01:57 2010 +0300
+++ b/group/bld.inf	Mon May 03 13:28:06 2010 +0300
@@ -15,8 +15,13 @@
 *
 */
 
+#include "../uiresources_pub/group/bld.inf"
+
+#ifdef TOOLS2
+#include "../skins/group/bld.inf"
+
+#else
 #include "../uiresources_plat/group/bld.inf"
-#include "../uiresources_pub/group/bld.inf"
 #include "../uigraphics/group/bld.inf"
 #include "../layouts/group/bld.inf"
 #include "../skins/group/bld.inf"
@@ -25,3 +30,5 @@
 #include "../uiconfig/group/bld.inf"
 #include "../fontsupport/group/bld.inf"
 #include "../helpthemes/group/bld.inf"
+
+#endif
--- a/layouts/aknlayout2/generated/aknapaclayout.cdl.custom.h	Fri Apr 16 16:01:57 2010 +0300
+++ b/layouts/aknlayout2/generated/aknapaclayout.cdl.custom.h	Mon May 03 13:28:06 2010 +0300
@@ -22,7 +22,7 @@
 #define AKNAPACLAYOUT_CDL_CUSTOM_H
 
 #include <CdlEngDef.h>
-#include "AknApacLayout.cdl.common.h"
+#include "aknapaclayout.cdl.common.h"
 
 namespace AknApacLayout
 {
--- a/layouts/aknlayout2/generated/aknlayout.cdl.custom.h	Fri Apr 16 16:01:57 2010 +0300
+++ b/layouts/aknlayout2/generated/aknlayout.cdl.custom.h	Mon May 03 13:28:06 2010 +0300
@@ -22,7 +22,7 @@
 #define AKNLAYOUT_CDL_CUSTOM_H
 
 #include <CdlEngDef.h>
-#include "AknLayout.cdl.common.h"
+#include "aknlayout.cdl.common.h"
 
 namespace AknLayout
 {
--- a/layouts/aknlayout2/generated/appapaclayout.cdl.custom.h	Fri Apr 16 16:01:57 2010 +0300
+++ b/layouts/aknlayout2/generated/appapaclayout.cdl.custom.h	Mon May 03 13:28:06 2010 +0300
@@ -22,7 +22,7 @@
 #define APPAPACLAYOUT_CDL_CUSTOM_H
 
 #include <CdlEngDef.h>
-#include "AppApacLayout.cdl.common.h"
+#include "appapaclayout.cdl.common.h"
 
 namespace AppApacLayout
 {
--- a/layouts/aknlayout2/generated/applayout.cdl.custom.h	Fri Apr 16 16:01:57 2010 +0300
+++ b/layouts/aknlayout2/generated/applayout.cdl.custom.h	Mon May 03 13:28:06 2010 +0300
@@ -22,7 +22,7 @@
 #define APPLAYOUT_CDL_CUSTOM_H
 
 #include <CdlEngDef.h>
-#include "AppLayout.cdl.common.h"
+#include "applayout.cdl.common.h"
 
 namespace AppLayout
 {
--- a/layouts/aknlayout2/generated/skinlayout.cdl.custom.h	Fri Apr 16 16:01:57 2010 +0300
+++ b/layouts/aknlayout2/generated/skinlayout.cdl.custom.h	Mon May 03 13:28:06 2010 +0300
@@ -22,7 +22,7 @@
 #define SKINLAYOUT_CDL_CUSTOM_H
 
 #include <CdlEngDef.h>
-#include "SkinLayout.cdl.common.h"
+#include "skinlayout.cdl.common.h"
 
 namespace SkinLayout
 {
--- a/locales/loce32/Collations/Turkish/coltur_basekeys.txt	Fri Apr 16 16:01:57 2010 +0300
+++ b/locales/loce32/Collations/Turkish/coltur_basekeys.txt	Mon May 03 13:28:06 2010 +0300
@@ -24,7 +24,7 @@
 
          % RULE in strings.txt:  Combination of  LATIN SMALL LETTER G and  COMBINING BREVE : Goes after :  LATIN CAPITAL LETTER G
          % RULE in strings.txt:  Combination of  LATIN CAPITAL LETTER G and  COMBINING BREVE : Goes after :  Combination of  LATIN SMALL LETTER G and  COMBINING BREVE
-0131 ; [.078D.0020.0002.0131] % LATIN SMALL LETTER DOTLESS I : Goes after :  Combination of  LATIN CAPITAL LETTER G and  COMBINING BREVE
+0131 ; [.078E.0020.0002.0131] % LATIN SMALL LETTER DOTLESS I : Goes after :  Combination of  LATIN CAPITAL LETTER G and  COMBINING BREVE
 0049 ; [.078D.0020.0008.0049] % LATIN CAPITAL LETTER I : Goes after :  LATIN SMALL LETTER DOTLESS I
 0069 ; [.078D.0020.0002.0069] % LATIN SMALL LETTER I : Goes after :  LATIN CAPITAL LETTER I
          % RULE in strings.txt:  LATIN CAPITAL LETTER I WITH DOT ABOVE : Goes after :  LATIN SMALL LETTER I
--- a/locales/loce32/Collations/Turkish/coltur_strings.txt	Fri Apr 16 16:01:57 2010 +0300
+++ b/locales/loce32/Collations/Turkish/coltur_strings.txt	Mon May 03 13:28:06 2010 +0300
@@ -27,7 +27,7 @@
          % RULE in basekeys.txt:  LATIN SMALL LETTER DOTLESS I : Goes after :  Combination of  LATIN CAPITAL LETTER G and  COMBINING BREVE
          % RULE in basekeys.txt:  LATIN CAPITAL LETTER I : Goes after :  LATIN SMALL LETTER DOTLESS I
          % RULE in basekeys.txt:  LATIN SMALL LETTER I : Goes after :  LATIN CAPITAL LETTER I
-0049 0307 [.078D.0020.0008.0130] % LATIN CAPITAL LETTER I WITH DOT ABOVE : Goes after :  LATIN SMALL LETTER I
+0049 0307 [.078E.0020.0008.0130] % LATIN CAPITAL LETTER I WITH DOT ABOVE : Goes after :  LATIN SMALL LETTER I
 006F 0308 [.0806.0020.0002.006F] % Combination of  LATIN SMALL LETTER O and  COMBINING DIAERESIS : Goes after :  LATIN CAPITAL LETTER O
 004F 0308 [.0806.0020.0008.004F] % Combination of  LATIN CAPITAL LETTER O and  COMBINING DIAERESIS : Goes after :  Combination of  LATIN SMALL LETTER O and  COMBINING DIAERESIS
 0073 0327 [.085E.0020.0002.0073] % Combination of  LATIN SMALL LETTER S and  COMBINING CEDILLA : Goes after :  LATIN CAPITAL LETTER S
--- a/locales/loce32/src/ls_coltur.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/locales/loce32/src/ls_coltur.cpp	Mon May 03 13:28:06 2010 +0300
@@ -18,19 +18,18 @@
 
 #include <kernel/ls_std.h>
 #include <collate.h>
-#include <unicode.h>
 
 const TUint KUidColturCollationMethod = 0x100059DD;
 
 static const TUint32 TheColturKey[] = 
 	{
-	0x7540109,0x7540121,0x78d0121,0x8060109,0x8060121,0x85e0109,0x85e0121,0x88e0109,
-	0x88e0121,0x78d0109,
+	0x7540109,0x7540121,0x78e0121,0x8060109,0x8060121,0x85e0109,0x85e0121,0x88e0109,
+	0x88e0121,0x78e0109,0x78d0121,0x78d0109,
 	};
 
 static const TUint32 TheColturIndex[] = 
 	{
-	0x490002,0x690009,0x1310009,
+	0x49000a,0x69000b,0x1310009,
 	};
 
 static const TUint16 TheColturStringElement[] = 
@@ -72,27 +71,9 @@
 	2
 	};
 
-static const TUnicodeData TheUnicodeTurkishData[] =	// property table
-	{
-	{ 0, 0, 0, 0, 232, 1 }	// character properties. See the definition of TUnicodeData in /include/unicode.h.
-	};
-static const TUnicodeDataRange TheUnicodeTurkishDataRange[] =	// character range table
-	{
-// This table defines only one character 0x49.
-	{ 0x0, -1 },	// characters 0x0-0x48 has index=-1 into above property table (-1 means not defined)
-	{ 0x49, 0 },	// characters 0x49-0x49 has index=0 into above property table, that is, 0x49 has property {0,0,0,0,232,1}
-	{ 0x4A, -1 }	// characters 0x4A-0x10FFFF has index=-1 into above property table (-1 means not defined)
-	};
-const TUnicodeDataSet TheUnicodeTurkishDataSet =	
-	{
-	TheUnicodeTurkishData, 						// address of above property table
-	TheUnicodeTurkishDataRange, 					// character range table
-	sizeof(TheUnicodeTurkishDataRange)/sizeof(TUnicodeDataRange) 	// character range table size (should be 3 in this case)
-	};
-
 // The one and only locale character set object.
 const LCharSet TheCharSet =
 	{
-	&TheUnicodeTurkishDataSet,
+	NULL,
 	&TheCollationDataSet
 	};
--- a/locales/loce32/src/ls_cyuk.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/locales/loce32/src/ls_cyuk.cpp	Mon May 03 13:28:06 2010 +0300
@@ -35,11 +35,11 @@
 const TDateFormat LLocaleData::DateFormat = EDateEuropean;
 const TTimeFormat LLocaleData::TimeFormat = ETime12;
 const TLocalePos LLocaleData::CurrencySymbolPosition = ELocaleBefore;
-const TBool LLocaleData::CurrencySpaceBetween = ETrue;
+const TBool LLocaleData::CurrencySpaceBetween = EFalse;
 const TInt LLocaleData::CurrencyDecimalPlaces = 2; 
 const TLocale::TNegativeCurrencyFormat LLocaleData::NegativeCurrencyFormat=TLocale::TNegativeCurrencyFormat(TLocale::ELeadingMinusSign); // replacing CurrencyNegativeInBrackets
 const TBool LLocaleData::CurrencyTriadsAllowed = ETrue;
-const TText * const LLocaleData::ThousandsSeparator = _S(" ");
+const TText * const LLocaleData::ThousandsSeparator = _S(",");
 const TText * const LLocaleData::DecimalSeparator = _S(".");
 const TText * const LLocaleData::DateSeparator[KMaxDateSeparators] = {_S(""),_S("/"),_S("/"),_S("")};
 const TText * const LLocaleData::TimeSeparator[KMaxTimeSeparators] = {_S(""),_S(":"),_S(":"),_S("")};
--- a/skins/AknSkins/group/bld.inf	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/AknSkins/group/bld.inf	Mon May 03 13:28:06 2010 +0300
@@ -23,7 +23,7 @@
 // ============================================================================
 //
 PRJ_PLATFORMS
-DEFAULT TOOLS CWTOOLS
+DEFAULT TOOLS CWTOOLS TOOLS2
 
 // ============================================================================
 // Exports
@@ -90,7 +90,7 @@
 //
 PRJ_MMPFILES
 
-#if defined(TOOLS) || defined(CWTOOLS)
+#if defined(TOOLS) || defined(CWTOOLS) || defined(TOOLS2)
 // Skin descriptor compiler (TOOLS target only)
 //
 /*
@@ -100,9 +100,11 @@
  * uncomment below line, run build tools. New Compiler will be in /epoc32/tools/
  *
  */
-//AknSkinDescCompiler.mmp
-//AknSkinDescCompiler_NR.mmp
 
+#if defined(TOOLS2)
+AknSkinDescCompiler.mmp
+AknSkinDescCompiler_NR.mmp
+#endif
 
 #else
 //
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/skins/AknSkins/sdcinc/SDCCompat.h	Mon May 03 13:28:06 2010 +0300
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Reader class.
+*
+*/
+
+#ifndef _SDCCOMPAT_H
+#define _SDCCOMPAT_H
+
+#include <wchar.h>
+
+/* _MSC_VER for checking VC6, so that we can keep this library still compilable using `tools'. */
+#if (defined(__MSVCRT__) || defined(_MSC_VER))
+#include <windows.h>
+#define sd_strcasecmp  stricmp
+#define sd_strncasecmp strnicmp
+#define sd_wcscasecmp  _wcsicmp
+#define sd_wcsncasecmp _wcsnicmp
+
+#else  /* linux */
+#define sd_strcasecmp  strcasecmp
+#define sd_strncasecmp strncasecmp
+#define sd_wcscasecmp  wcscasecmp
+#define sd_wcsncasecmp wcsncasecmp
+#endif
+
+const unsigned long long SEC_TO_USEC = 1000000;
+// 100-nanosecond
+const unsigned long long USEC_TO_100NANOSEC = 10;
+
+#endif
--- a/skins/AknSkins/sdcinc/SDCGlobals.h	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/AknSkins/sdcinc/SDCGlobals.h	Mon May 03 13:28:06 2010 +0300
@@ -41,7 +41,7 @@
 // 3.0 = 2
 static const int gVersionMajor = 2;
 
-static const int gVersionMinor = 143;
+static const int gVersionMinor = 145;
 
 #if defined(__SERIES60_26__)
 static const unsigned char gPlatformMajor = 2;
--- a/skins/AknSkins/sdcinc/SDCIIDConstants.h	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/AknSkins/sdcinc/SDCIIDConstants.h	Mon May 03 13:28:06 2010 +0300
@@ -23,7 +23,7 @@
 #pragma once
 #endif // _MSC_VER > 1000
 
-#include "AknsConstants.hrh"
+#include <AknsConstants.hrh>
 
 #include <string.h>
 #include <vector>
--- a/skins/AknSkins/sdcinc/SDCInput.h	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/AknSkins/sdcinc/SDCInput.h	Mon May 03 13:28:06 2010 +0300
@@ -63,7 +63,7 @@
     bool iUnicode;
     bool iFirstInLine;
 
-    wint_t iNextChar;
+    wchar_t iNextChar;
     wchar_t iToken[512];
     int iHash;
 };
--- a/skins/AknSkins/sdcsrc/SDCBinOutput.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/AknSkins/sdcsrc/SDCBinOutput.cpp	Mon May 03 13:28:06 2010 +0300
@@ -15,12 +15,17 @@
 *
 */
 
-#include <windows.h>
+#include <wchar.h>
+#include <sys/time.h>
+#include <unistd.h>
+#include <cstdlib>
+#include <string>
 
 #include "SDCGlobals.h"
 #include "SDCBinOutput.h"
 #include "AknsConstants.hrh"
 #include "SDCException.h"
+#include "SDCCompat.h"
 
 // Make std namespace available for compatibility
 namespace std {}
@@ -81,11 +86,11 @@
 
     PrepareSkinDescriptor( aStubOnly );
 
-    if( iOutputPos != iOutputVector.size() ) throw CSDCException( ESDCUnknownError, "Internal binary output size does not match" );
+    if( iOutputPos != static_cast<int>( iOutputVector.size() ) ) throw CSDCException( ESDCUnknownError, "Internal binary output size does not match" );
 
     FILE* file = fopen( aBinFilename, "wb" );
     if( !file ) throw CSDCException( ESDCFileOpenError, "Can not open target binary file for writing" );
-    int i;
+    unsigned int i;
     for( i=0; i<iOutputVector.size(); i++ )
         {
         fputc( iOutputVector[i], file );
@@ -141,7 +146,7 @@
     PrepareInformation();
     chunksN++;
 
-    int i;
+    unsigned int i;
 
     for( i=0; i<iData->iTargetDeviceVector.size(); i++ )
         {
@@ -234,7 +239,7 @@
         PrepareEncapsulatedNormalClass( 0x00020000 );
         chunksN++;
 
-        for (int count = 0;count < iData->iLanguageVector.size(); count++)
+        for (unsigned int count = 0;count < iData->iLanguageVector.size(); count++)
             {
             // Language
             PrepareEncapsulatedNormalClass( iData->iLanguageVector[count] );
@@ -266,7 +271,7 @@
     AppendBytes( 1*2 );
     WriteUint16( wcslen( aDeviceName ) );
 
-    for( int i=0; i<wcslen( aDeviceName ); i++ )
+    for( unsigned int i=0; i<wcslen( aDeviceName ); i++ )
         {
         AppendBytes( 2 );
         WriteUint16( aDeviceName[i] );
@@ -293,7 +298,7 @@
     WriteInt16( aLanguage );
     WriteUint16( wcslen( aName ) );
 
-    for( int i=0; i<wcslen( aName ); i++ )
+    for( unsigned int i=0; i<wcslen( aName ); i++ )
         {
         AppendBytes( 2 );
         WriteUint16( aName[i] );
@@ -310,7 +315,7 @@
 void CSDCBinOutput::PrepareInformation()
     {
     TPos startPos( this );
-    int i;
+    unsigned int i;
 
     AppendBytes( 1*4 + 2*2 );
     WriteUint( 0 );             // Length
@@ -318,12 +323,19 @@
     WriteUint16( 2 );           // Version
 
     AppendBytes( 2*4 );
-    SYSTEMTIME sysTime;
-    GetSystemTime( &sysTime );
-    FILETIME fileTime;
-    SystemTimeToFileTime( &sysTime, &fileTime );
-    WriteInt( fileTime.dwHighDateTime );
-    WriteInt( fileTime.dwLowDateTime );
+
+	struct timeval sysTime;
+	gettimeofday( &sysTime, NULL);
+	// 100-nanosecond
+	unsigned long long currentTime;
+	// get the 100-nanosecond number at time of UTC
+	currentTime = ( sysTime.tv_usec + mktime(gmtime(&sysTime.tv_sec)) * SEC_TO_USEC ) * USEC_TO_100NANOSEC;
+
+	unsigned int highPart = static_cast<unsigned int>((currentTime >> 32) );
+	unsigned int lowPart = static_cast<unsigned int>( currentTime );
+
+    WriteInt( highPart );
+    WriteInt( lowPart );
 
     AppendBytes( 2*4 );
     WriteInt( (gVersionMajor<<16) | gVersionMinor );
@@ -404,7 +416,7 @@
     WriteByte( aWpType );
     WriteUint16( strlen( buf ) );
 
-    for( int i=0; i<strlen( buf ); i++ )
+    for( unsigned int i=0; i<strlen( buf ); i++ )
         {
         AppendBytes( 2 );
         WriteUint16( (short int)buf[i] );
@@ -434,7 +446,7 @@
     WriteInt( aId );
     WriteUint16( strlen( aFilename ) );
 
-    for( int i=0; i<strlen( aFilename ); i++ )
+    for( unsigned int i=0; i<strlen( aFilename ); i++ )
         {
         AppendBytes( 2 );
         WriteUint16( (short int)aFilename[i] );
@@ -535,7 +547,7 @@
     TPos chunksNPos( this );
     WriteInt( 0 );              // ChunksN
 
-    int i;
+    unsigned int i;
     for( i=0; i<iData->iBitmapDefVector.size(); i++ )
         {
         if( iData->iBitmapDefVector[i]->iRestriction != aRestriction ) continue;
@@ -650,7 +662,7 @@
     TPos chunksNPos( this );
     WriteInt( 0 );              // ChunksN
 
-    int i;
+    unsigned int i;
     for( i=0; i<iData->iBitmapDefVector.size(); i++ )
         {
         if( iData->iBitmapDefVector[i]->iAppIconBitmap == true )
@@ -736,7 +748,7 @@
     WriteInt( aColorTableDef->iIID.iMinor );
     WriteByte( aColorTableDef->iColors.size() );
 
-    for( int i=0; i<aColorTableDef->iColors.size(); i++ )
+    for( unsigned int i=0; i<aColorTableDef->iColors.size(); i++ )
         {
         AppendBytes( 1*2 + 1*4 );
         WriteInt16( (short int)aColorTableDef->iColors[i].iIndex );
@@ -780,7 +792,7 @@
     WriteByte( (unsigned char)aBmpAnimDef->iFlash );
     WriteByte( (unsigned char)aBmpAnimDef->iFrames.size() );
 
-    for( int i=0; i<aBmpAnimDef->iFrames.size(); i++ )
+    for( unsigned int i=0; i<aBmpAnimDef->iFrames.size(); i++ )
         {
         AppendBytes( 2*4 + 3*2 );
         WriteInt( aBmpAnimDef->iFrames[i].iIID.iMajor );
@@ -814,7 +826,7 @@
     WriteInt( aStringDef->iIID.iMinor );
     WriteUint16( wcslen( aStringDef->iString ) );
 
-    for( int i=0; i<wcslen( aStringDef->iString ); i++ )
+    for( unsigned int i=0; i<wcslen( aStringDef->iString ); i++ )
         {
         AppendBytes( 2 );
         WriteUint16( aStringDef->iString[i] );
@@ -859,7 +871,7 @@
     AppendBytes( 1*2 );
     WriteUint16( aItemDef->iCommands.size() );
 
-    for( int i=0; i<aItemDef->iCommands.size(); i++ )
+    for( unsigned int i=0; i<aItemDef->iCommands.size(); i++ )
         {
         PrepareEffectCommand( aItemDef->iCommands[i] );
         }
@@ -911,7 +923,7 @@
 
     AppendBytes( 1*2 );
     WriteUint16( aItemDef->iPreprocessCommands.size() );
-    int i;
+    unsigned int i;
     for( i=0; i<aItemDef->iPreprocessCommands.size(); i++ )
         {
         PrepareEffectCommand( aItemDef->iPreprocessCommands[i] );
@@ -967,7 +979,7 @@
     WriteInt( aIID.iMinor );
     WriteByte( (unsigned char)aImages.size() );
 
-    for( int i=0; i<aImages.size(); i++ )
+    for( unsigned int i=0; i<aImages.size(); i++ )
         {
         AppendBytes( 2*4 );
         WriteInt( aImages[i].iMajor );
@@ -1015,7 +1027,7 @@
 
 void CSDCBinOutput::PrepareParamVector( const vector<TSDCEffectParameter>& aParameters )
     {
-    for( int i=0; i<aParameters.size(); i++ )
+    for( unsigned int i=0; i<aParameters.size(); i++ )
         {
         int type = aParameters[i].iType;
 
@@ -1048,7 +1060,7 @@
         AppendBytes( 1*2 );
         WriteUint16( wcslen(aParameters[i].iName) ); // ParamNameLen
 
-        for( int b=0; b<wcslen(aParameters[i].iName); b++ )
+        for( unsigned int b=0; b<wcslen(aParameters[i].iName); b++ )
             {
             AppendBytes( 1*2 );
             WriteUint16( aParameters[i].iName[b] );
@@ -1064,7 +1076,7 @@
             AppendBytes( 1*2 );
             WriteUint16( wcslen(aParameters[i].iString) );
 
-            for( int a=0; a<wcslen(aParameters[i].iString); a++ )
+            for( unsigned int a=0; a<wcslen(aParameters[i].iString); a++ )
                 {
                 AppendBytes( 1*2 );
                 WriteUint16( aParameters[i].iString[a] );
--- a/skins/AknSkins/sdcsrc/SDCData.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/AknSkins/sdcsrc/SDCData.cpp	Mon May 03 13:28:06 2010 +0300
@@ -18,11 +18,13 @@
 
 #include <string.h>
 #include <sys/stat.h>
+#include <wchar.h>
 
 #include "SDCGlobals.h"
 #include "SDCData.h"
 #include "SDCException.h"
 #include "SDCInput.h"
+#include "SDCCompat.h"
 
 // Make std namespace available for compatibility
 namespace std {}
@@ -126,7 +128,7 @@
 
 bool CSDCData::IsDefined( const TSDCIID aIID )
     {
-    int i;
+    unsigned int i;
     for( i=0; i<iBitmapDefVector.size(); i++ )
         {
         TSDCBitmapDef* entry = iBitmapDefVector[i];
@@ -172,7 +174,7 @@
 
 bool CSDCData::IsDefined( const TSDCIID aIID, const int aRestriction )
     {
-    int i;
+    unsigned int i;
     for( i=0; i<iBitmapDefVector.size(); i++ )
         {
         TSDCBitmapDef* entry = iBitmapDefVector[i];
@@ -218,7 +220,7 @@
 
 void CSDCData::AppendNameEntry( const int aLanguageID, const wchar_t* aName )
     {
-    for( int i=0; i<iNameVector.size(); i++ )
+    for( unsigned int i=0; i<iNameVector.size(); i++ )
         {
         TSDCNameEntry* entry = iNameVector[i];
         if( entry->iLanguageID == aLanguageID ) throw CSDCException( ESDCContentError, "Name for the language ID has already been specified" );
@@ -244,12 +246,12 @@
 
 TSDCMBMEntry* CSDCData::FindMbmEntry( const TSDCColorDepth aColorDepth, const wchar_t* aFilename )
     {
-    for( int i=0; i<iMbmVector.size(); i++ )
+    for( unsigned int i=0; i<iMbmVector.size(); i++ )
         {
         TSDCMBMEntry* entry = iMbmVector[i];
-        if( (_wcsicmp(entry->iSourcePath,iBmpPath)==0) &&
+        if( (sd_wcscasecmp(entry->iSourcePath,iBmpPath)==0) &&
             (entry->iColorDepth==aColorDepth) &&
-            (_wcsicmp(entry->iSourceFilename,aFilename)==0) ) return entry;
+            (sd_wcscasecmp(entry->iSourceFilename,aFilename)==0) ) return entry;
         }
     return NULL;
     }
@@ -323,7 +325,7 @@
 
 TSDCBitmapDef* CSDCData::GetBitmapDef( const TSDCIID aIID )
     {
-    for( int i=0; i<iBitmapDefVector.size(); i++ )
+    for( unsigned int i=0; i<iBitmapDefVector.size(); i++ )
         {
         TSDCBitmapDef* entry = iBitmapDefVector[i];
         if( (entry->iIID.iMajor==aIID.iMajor) && (entry->iIID.iMinor==aIID.iMinor) ) return entry;
@@ -450,8 +452,8 @@
 		
 		strcat(asciiPatch,asciiFileName);
 
-    struct _stat buf;
-    int result = _stat( asciiPatch, &buf );
+    struct stat buf;
+    int result = stat( asciiPatch, &buf );
     if(result == -1)
 		    {
 		    return false;
--- a/skins/AknSkins/sdcsrc/SDCDebugOutput.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/AknSkins/sdcsrc/SDCDebugOutput.cpp	Mon May 03 13:28:06 2010 +0300
@@ -19,6 +19,7 @@
 #include "SDCDebugOutput.h"
 
 #include <stdio.h>
+#include <wchar.h>
 
 //////////////////////////////////////////////////////////////////////
 // Construction/Destruction
@@ -38,7 +39,7 @@
 
 void CSDCDebugOutput::Output( CSDCData* aData )
     {
-    int i;
+    unsigned int i;
 
     wprintf(L"\nSkin content\n");
     wprintf(L"  PID=0x%08x 0x%08x\n", aData->iPid.iPID2, aData->iPid.iPID1 );
@@ -77,7 +78,7 @@
         TSDCColorTableDef* entry = aData->iColorTableDefVector[i];
         wprintf(L"  (0x%x,0x%x) = ", entry->iIID.iMajor, entry->iIID.iMinor );
 
-        for( int a=0; a<entry->iColors.size(); a++ )
+        for( unsigned int a=0; a<entry->iColors.size(); a++ )
             wprintf(L"[%i,0x%x] ", entry->iColors[a].iIndex, entry->iColors[a].iRgb );
 
         wprintf(L"\n");
@@ -89,7 +90,7 @@
         TSDCFrameDef* entry = aData->iFrameDefVector[i];
         wprintf(L"  (0x%x,0x%x) = ", entry->iIID.iMajor, entry->iIID.iMinor );
 
-        for( int a=0; a<entry->iElements.size(); a++ )
+        for( unsigned int a=0; a<entry->iElements.size(); a++ )
             wprintf(L"[0x%x,0x%x] ", entry->iElements[a].iMajor, entry->iElements[a].iMinor );
 
         wprintf(L"\n");
@@ -101,7 +102,7 @@
         TSDCAppIconDef* entry = aData->iAppIconDefVector[i];
         wprintf(L"  (0x%x,0x%x) = ", entry->iIID.iMajor, entry->iIID.iMinor );
 
-        for( int a=0; a<entry->iIcons.size(); a++ )
+        for( unsigned int a=0; a<entry->iIcons.size(); a++ )
             wprintf(L"[0x%x,0x%x] ", entry->iIcons[a].iMajor, entry->iIcons[a].iMinor );
 
         wprintf(L"\n");
--- a/skins/AknSkins/sdcsrc/SDCIIDConstants.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/AknSkins/sdcsrc/SDCIIDConstants.cpp	Mon May 03 13:28:06 2010 +0300
@@ -17,9 +17,12 @@
 
 
 #include <stdio.h>
+#include <wchar.h>
+
 #include "SDCGlobals.h"
 #include "SDCIIDConstants.h"
 #include "SDCInput.h"
+#include "SDCCompat.h"
 
 // Make std namespace available for compatibility
 namespace std {}
@@ -76,7 +79,7 @@
 
     while( input.NextTokenAllowLF() )
         {
-        if( _wcsicmp( input.iToken, L"IID" ) == 0 )
+        if( sd_wcscasecmp( input.iToken, L"IID" ) == 0 )
             {
             // Parse string token
             input.NextStringToken();
@@ -116,9 +119,9 @@
 
 const TSDCIIDEntry* SDCIIDConstants::Find( const wchar_t* aName )
     {
-    for( int i=0; i<gIIDVector.size(); i++ )
+    for( unsigned int i=0; i<gIIDVector.size(); i++ )
         {
-        if( _wcsicmp( aName, gIIDVector[i]->iName ) == 0 )
+        if( sd_wcscasecmp( aName, gIIDVector[i]->iName ) == 0 )
             return gIIDVector[i];
         }
     return NULL;
--- a/skins/AknSkins/sdcsrc/SDCInlOutput.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/AknSkins/sdcsrc/SDCInlOutput.cpp	Mon May 03 13:28:06 2010 +0300
@@ -77,7 +77,7 @@
     fprintf( file, "static const TText* const K%s_Mbm = _S(\"z:\\\\system\\\\skins\\\\%08x\\\\%s.mbm\");\n", aSkinName, storageUid, aSkinName );
     fprintf( file, "#endif\n");
 
-    int i, a;
+    unsigned int i, a;
 
     fprintf( file, "\n// Bitmap definitions\n");
     for( i=0; i<iData->iBitmapDefVector.size(); i++ )
@@ -320,7 +320,7 @@
     int entries = 0;
     fprintf( aFile, "static const TAknsSrvDef K%s_%s_All[] = {\n", aSkinName, className );
 
-    int i;
+    unsigned int i;
     for( i=0; i<iData->iBitmapDefVector.size(); i++ )
         {
         TSDCBitmapDef* entry = iData->iBitmapDefVector[i];
--- a/skins/AknSkins/sdcsrc/SDCInput.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/AknSkins/sdcsrc/SDCInput.cpp	Mon May 03 13:28:06 2010 +0300
@@ -17,8 +17,10 @@
 
 
 #include <string.h>
+#include <wchar.h>
 #include "SDCGlobals.h"
 #include "SDCInput.h"
+#include "SDCCompat.h"
 
 // Make std namespace available for compatibility
 namespace std {}
@@ -101,7 +103,9 @@
     ReadNextChar();
     while( iNextChar != L'\"' )
         {
-        if( (iNextChar==L'\n') || (iNextChar==L'\r') || (iNextChar==WEOF) ) throw CSDCException( ESDCParseError, "Unterminated string" );
+        if( (iNextChar==L'\n') || (iNextChar==L'\r') || (iNextChar==WEOF) )
+            throw CSDCException( ESDCParseError, "Unterminated string" );
+
         if( escaped )
             {
             if( iNextChar == L'>' )
@@ -196,7 +200,7 @@
 int CSDCInput::ConvertToNumber( const wchar_t* aToken )
     {
     bool hexadecimal = false;
-    if( _wcsnicmp( aToken, L"0x", 2 ) == 0 ) hexadecimal = true;
+    if( sd_wcsncasecmp( aToken, L"0x", 2 ) == 0 ) hexadecimal = true;
 
     int result = 0;
     const wchar_t *p = aToken;
@@ -273,22 +277,22 @@
 
 TSDCColorDepth CSDCInput::ConvertToColorDepth( const wchar_t* aToken )
     {
-    if( _wcsicmp( aToken, L"1" ) == 0) return ESDCColorDepth1;
-    else if( _wcsicmp( aToken, L"2" ) == 0) return ESDCColorDepth2;
-    else if( _wcsicmp( aToken, L"4" ) == 0) return ESDCColorDepth4;
-    else if( _wcsicmp( aToken, L"8" ) == 0) return ESDCColorDepth8;
-    else if( _wcsicmp( aToken, L"c4" ) == 0) return ESDCColorDepthC4;
-    else if( _wcsicmp( aToken, L"c8" ) == 0) return ESDCColorDepthC8;
-    else if( _wcsicmp( aToken, L"c12" ) == 0) return ESDCColorDepthC12;
-    else if( _wcsicmp( aToken, L"c16" ) == 0) return ESDCColorDepthC16;
-    else if( _wcsicmp( aToken, L"c24" ) == 0) return ESDCColorDepthC24;
-    else if( _wcsicmp( aToken, L"c32" ) == 0) return ESDCColorDepthC32;
+    if( sd_wcscasecmp( aToken, L"1" ) == 0) return ESDCColorDepth1;
+    else if( sd_wcscasecmp( aToken, L"2" ) == 0) return ESDCColorDepth2;
+    else if( sd_wcscasecmp( aToken, L"4" ) == 0) return ESDCColorDepth4;
+    else if( sd_wcscasecmp( aToken, L"8" ) == 0) return ESDCColorDepth8;
+    else if( sd_wcscasecmp( aToken, L"c4" ) == 0) return ESDCColorDepthC4;
+    else if( sd_wcscasecmp( aToken, L"c8" ) == 0) return ESDCColorDepthC8;
+    else if( sd_wcscasecmp( aToken, L"c12" ) == 0) return ESDCColorDepthC12;
+    else if( sd_wcscasecmp( aToken, L"c16" ) == 0) return ESDCColorDepthC16;
+    else if( sd_wcscasecmp( aToken, L"c24" ) == 0) return ESDCColorDepthC24;
+    else if( sd_wcscasecmp( aToken, L"c32" ) == 0) return ESDCColorDepthC32;
     throw CSDCException( ESDCParseError, "Unknown color depth parameter" );
     }
 
 int CSDCInput::ConvertToLayer( const wchar_t* aToken )
     {
-    if( _wcsicmp( aToken, L"none" ) == 0 ) return 0x0001;
+    if( sd_wcscasecmp( aToken, L"none" ) == 0 ) return 0x0001;
 
     wchar_t buf[512];
     wcscpy( buf, aToken );
@@ -299,15 +303,15 @@
     p = p+1;
 
     int layer = ConvertToNumber( buf ) << 8;
-    if( _wcsicmp( p, L"RGB" ) == 0 )
+    if( sd_wcscasecmp( p, L"RGB" ) == 0 )
         {
         layer |= 0x02;
         }
-    else if( _wcsicmp( p, L"A" ) == 0 )
+    else if( sd_wcscasecmp( p, L"A" ) == 0 )
         {
         layer |= 0x04;
         }
-    else if( _wcsicmp( p, L"RGBA" ) == 0 )
+    else if( sd_wcscasecmp( p, L"RGBA" ) == 0 )
         {
         layer |= 0x08;
         }
@@ -325,7 +329,7 @@
     if( len<4 ) return false;
 
     const wchar_t* p = aFilename + len - 4;
-    if( _wcsicmp( p, L".svg" ) == 0 )
+    if( sd_wcscasecmp( p, L".svg" ) == 0 )
         {
         return true;
         }
--- a/skins/AknSkins/sdcsrc/SDCMBMOutput.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/AknSkins/sdcsrc/SDCMBMOutput.cpp	Mon May 03 13:28:06 2010 +0300
@@ -51,7 +51,7 @@
         fprintf( file, "%s.mbm\n", aBaseName );
         }
 
-    for( int i=0; i<aData->iMbmVector.size(); i++ )
+    for( unsigned int i=0; i<aData->iMbmVector.size(); i++ )
         {
         TSDCMBMEntry* entry = aData->iMbmVector[i];
         if( (entry->iIndex>=16384) && (!aData->IsScalable()) )
--- a/skins/AknSkins/sdcsrc/SDCMain.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/AknSkins/sdcsrc/SDCMain.cpp	Mon May 03 13:28:06 2010 +0300
@@ -18,9 +18,10 @@
 
 // INCLUDE FILES
 
-#include <stdlib.h>
-#include <string.h>
-#include <windows.h>
+#include <sys/time.h>
+#include <unistd.h>
+#include <cstdlib>
+#include <string>
 
 #include "SDCGlobals.h"
 #include "SDCReader.h"
@@ -30,6 +31,7 @@
 #include "SDCPkgOutput.h"
 #include "SDCIIDConstants.h"
 #include "SDCDebugOutput.h"
+#include "SDCCompat.h"
 
 // LOCAL VARIABLES
 
@@ -106,34 +108,34 @@
     int fileParam = 0;
     for( int i=1; i<argc; i++ )
         {
-        if( stricmp( "--drm", argv[i] ) == 0 )
+        if( sd_strcasecmp( "--drm", argv[i] ) == 0 )
             {
             drmEnabled = true;
             }
-        else if( stricmp( "--forcesystem", argv[i] ) == 0 )
+        else if( sd_strcasecmp( "--forcesystem", argv[i] ) == 0 )
             {
             forceSystem = true;
             }
-        else if( stricmp( "--forcenormal", argv[i] ) == 0 )
+        else if( sd_strcasecmp( "--forcenormal", argv[i] ) == 0 )
             {
             forceNormal = true;
             }
-        else if( strnicmp( "-m", argv[i], 2 ) == 0 )
+        else if( sd_strncasecmp( "-m", argv[i], 2 ) == 0 )
             {
             strcpy( mbmPath, argv[i]+2 );
             AppendBackslash( mbmPath );
             }
-        else if( strnicmp( "-t", argv[i], 2 ) == 0 )
+        else if( sd_strncasecmp( "-t", argv[i], 2 ) == 0 )
             {
             strcpy( sknPath, argv[i]+2 );
             AppendBackslash( sknPath );
             }
-        else if( strnicmp( "-s", argv[i], 2 ) == 0 )
+        else if( sd_strncasecmp( "-s", argv[i], 2 ) == 0 )
             {
             strcpy( dllPath, argv[i]+2 );
             AppendBackslash( dllPath );
             }
-        else if( strnicmp( "-i", argv[i], 2 ) == 0 )
+        else if( sd_strncasecmp( "-i", argv[i], 2 ) == 0 )
             {
             strcpy( iidFile, argv[i]+2 );
             }
@@ -162,44 +164,49 @@
 
 void GeneratePID( CSDCData* data )
     {
-    SYSTEMTIME sysTime;
-    GetSystemTime( &sysTime );
-    FILETIME fileTime;
-    SystemTimeToFileTime( &sysTime, &fileTime );
-    ULARGE_INTEGER currentTime;
-    currentTime.LowPart = fileTime.dwLowDateTime;
-    currentTime.HighPart = fileTime.dwHighDateTime;
+	struct timeval sysTime;
+	gettimeofday( &sysTime, NULL);
+	// 100-nanosecond
+	unsigned long long currentTime;
+	// get the 100-nanosecond number at time of UTC
+	currentTime = ( sysTime.tv_usec + mktime(gmtime(&sysTime.tv_sec)) * SEC_TO_USEC ) * USEC_TO_100NANOSEC;
+
+	struct tm startTime;
+	// initialize startTime
+	memset(&startTime,0,sizeof(startTime));
+	startTime.tm_year = 2003 - 1900;
+	startTime.tm_mon = 0;
+	startTime.tm_mday = 1;
+	startTime.tm_hour = 0;
+	startTime.tm_min = 0;
+	startTime.tm_sec = 0;
+	time_t secTime = mktime( &startTime );
+	// 100-nanosecond
+	unsigned long long epochTime;
+	// get the 100-nanosecond number at time @20030101 00:00:00
+	epochTime = ( secTime * SEC_TO_USEC ) * USEC_TO_100NANOSEC;
 
-    sysTime.wYear = 2003;
-    sysTime.wMonth = 1;
-    sysTime.wDay = 1;
-    sysTime.wHour = 0;
-    sysTime.wMinute = 0;
-    sysTime.wSecond = 0;
-    sysTime.wMilliseconds = 0;
-    SystemTimeToFileTime( &sysTime, &fileTime );
-    ULARGE_INTEGER epochTime;
-    epochTime.LowPart = fileTime.dwLowDateTime;
-    epochTime.HighPart = fileTime.dwHighDateTime;
+	unsigned long long timeStamp;
+	timeStamp = currentTime - epochTime;
+	timeStamp = timeStamp >> 20;
+
+	unsigned int highPart = static_cast<unsigned int>((currentTime >> 32) );
+	unsigned int lowPart = static_cast<unsigned int>( currentTime );
+	srand( gInput.iHash ^ highPart ^ lowPart );
 
-    ULARGE_INTEGER timeStamp;
-    timeStamp.QuadPart = currentTime.QuadPart - epochTime.QuadPart;
-    timeStamp.QuadPart = timeStamp.QuadPart >> 20;
-
-    srand( gInput.iHash ^ currentTime.HighPart ^ currentTime.LowPart );
+	// Timestamp
+	data->iPid.iPID2 = static_cast<int>(timeStamp);
+	if( data->iPid.iPID2 == 0 ) data->iPid.iPID2 += 1;
 
-    // Timestamp
-    data->iPid.iPID2 = timeStamp.LowPart;
-    if( data->iPid.iPID2 == 0 ) data->iPid.iPID2 += 1;
+	// Random number
+	data->iPid.iPID1 = rand();
+	data->iPid.iPID1 = data->iPid.iPID1 << 8;
+	data->iPid.iPID1 ^= rand();
+	data->iPid.iPID1 = data->iPid.iPID1 << 8;
+	data->iPid.iPID1 ^= rand();
+	data->iPid.iPID1 = data->iPid.iPID1 << 8;
+	data->iPid.iPID1 ^= rand();
 
-    // Random number
-    data->iPid.iPID1 = rand();
-    data->iPid.iPID1 = data->iPid.iPID1 << 8;
-    data->iPid.iPID1 ^= rand();
-    data->iPid.iPID1 = data->iPid.iPID1 << 8;
-    data->iPid.iPID1 ^= rand();
-    data->iPid.iPID1 = data->iPid.iPID1 << 8;
-    data->iPid.iPID1 ^= rand();
     }
 
 //////////////////////////////////////////////////////////////////////
--- a/skins/AknSkins/sdcsrc/SDCPkgOutput.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/AknSkins/sdcsrc/SDCPkgOutput.cpp	Mon May 03 13:28:06 2010 +0300
@@ -20,6 +20,7 @@
 #include "SDCException.h"
 #include "SDCInput.h"
 #include "AknsConstants.hrh"
+#include "SDCCompat.h"
 
 //////////////////////////////////////////////////////////////////////
 // Construction/Destruction
@@ -114,8 +115,6 @@
 
     char trgPath[256];
 
-    fprintf( file, "IF package(0x102032be) ; Check for S60 3.1 stub sis\n");
-//-------- New 3.1 compatible install directory
     if( storagePid.iPID2 == 0 )
         {
         sprintf( trgPath, "!:\\resource\\skins\\%08x", storagePid.iPID1 );
@@ -131,8 +130,6 @@
         fprintf( file, "\"%s.mif\" - \"%s\\%s.mif\"\n", aSkinName, trgPath, aSkinName );
         }
 
-    fprintf( file, "ELSE\n");
-//-------- 3.0 compatible install directory
     if( storagePid.iPID2 == 0 )
         {
         sprintf( trgPath, "!:\\private\\10207114\\import\\%08x", storagePid.iPID1 );
@@ -142,13 +139,6 @@
         sprintf( trgPath, "!:\\private\\10207114\\import\\%08x%08x", storagePid.iPID1, storagePid.iPID2 );
         }
 
-    fprintf( file, "\"%s.mbm\" - \"%s\\%s.mbm\"\n", aSkinName, trgPath, aSkinName );
-    if( aData->IsScalable() )
-        {
-        fprintf( file, "\"%s.mif\" - \"%s\\%s.mif\"\n", aSkinName, trgPath, aSkinName );
-        }
-    fprintf( file, "ENDIF\n") ;
-// ------- ENDIF
     if( drm )
         {
         fprintf( file, ";SKN file %s.skn moved to DRM definition file\n", aSkinName );
@@ -173,16 +163,16 @@
 
 
     vector<wchar_t*> soundFiles;
-    int i;
+    unsigned int i;
     for( i=0; i<aData->iStringDefVector.size(); i++ )
         {
         TSDCStringDef* entry = aData->iStringDefVector[i];
         if( entry->iIID.iMajor == EAknsMajorSound )
             {
             bool alreadyAppended = false;
-            for( int a=0; a<soundFiles.size(); a++ )
+            for( unsigned int a=0; a<soundFiles.size(); a++ )
                 {
-                if( !wcsicmp( entry->iString, soundFiles[a] ) )
+                if( ! sd_wcscasecmp( entry->iString, soundFiles[a] ) )
                     {
                     alreadyAppended = true;
                     }
--- a/skins/AknSkins/sdcsrc/SDCReader.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/AknSkins/sdcsrc/SDCReader.cpp	Mon May 03 13:28:06 2010 +0300
@@ -19,6 +19,7 @@
 #include "SDCReader.h"
 #include "SDCIIDConstants.h"
 #include "SDCException.h"
+#include "SDCCompat.h"
 
 // Make std namespace available for compatibility
 namespace std {}
@@ -44,16 +45,16 @@
 void CSDCReader::Parse()
     {
     gInput.NextTokenAllowLF();
-    if( _wcsicmp( gInput.iToken, L"SKINTYPE" ) != 0 ) UnexpectedTokenError( gInput.iToken, L"SKINTYPE" );
+    if( sd_wcscasecmp( gInput.iToken, L"SKINTYPE" ) != 0 ) UnexpectedTokenError( gInput.iToken, L"SKINTYPE" );
     ParseSkintype();
 
     gInput.NextTokenAllowLF();
-    if( _wcsicmp( gInput.iToken, L"UID" ) == 0 )
+    if( sd_wcscasecmp( gInput.iToken, L"UID" ) == 0 )
         {
         ParseUID();
         gInput.NextTokenAllowLF();
         }
-    else if( _wcsicmp( gInput.iToken, L"PID" ) == 0 )
+    else if( sd_wcscasecmp( gInput.iToken, L"PID" ) == 0 )
         {
         ParsePID();
         gInput.NextTokenAllowLF();
@@ -63,87 +64,87 @@
         GeneratePID();
         }
 
-    if( _wcsicmp( gInput.iToken, L"NAME" ) != 0 ) UnexpectedTokenError( gInput.iToken, L"NAME" );
+    if( sd_wcscasecmp( gInput.iToken, L"NAME" ) != 0 ) UnexpectedTokenError( gInput.iToken, L"NAME" );
     ParseName();
 
     while( gInput.NextTokenAllowLF() )
         {
-        if( _wcsicmp( gInput.iToken, L"NAME" ) == 0 )
+        if( sd_wcscasecmp( gInput.iToken, L"NAME" ) == 0 )
             {
             ParseName();
             }
-        else if( _wcsicmp( gInput.iToken, L"LANGUAGEOVERRIDE" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"LANGUAGEOVERRIDE" ) == 0 )
             {
             ParseLanguageOverride();
             }
-        else if( _wcsicmp( gInput.iToken, L"LANGUAGEPARENT" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"LANGUAGEPARENT" ) == 0 )
             {
             ParseParentUID();
             }
-        else if( _wcsicmp( gInput.iToken, L"PROTECT" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"PROTECT" ) == 0 )
             {
             ParseProtect();
             }
-        else if( _wcsicmp( gInput.iToken, L"AUTHOR" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"AUTHOR" ) == 0 )
             {
             ParseAuthor();
             }
-        else if( _wcsicmp( gInput.iToken, L"COPYRIGHT" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"COPYRIGHT" ) == 0 )
             {
             ParseCopyright();
             }
-        else if( _wcsicmp( gInput.iToken, L"TARGETDEVICE" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"TARGETDEVICE" ) == 0 )
             {
             ParseTargetDevice();
             }
-        else if( _wcsicmp( gInput.iToken, L"TOOL" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"TOOL" ) == 0 )
             {
             ParseTool();
             }
-        else if( _wcsicmp( gInput.iToken, L"BITMAP" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"BITMAP" ) == 0 )
             {
             ParseBitmap();
             }
-        else if( _wcsicmp( gInput.iToken, L"COLORTABLE" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"COLORTABLE" ) == 0 )
             {
             ParseColorTable();
             }
-        else if( _wcsicmp( gInput.iToken, L"FRAME" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"FRAME" ) == 0 )
             {
             ParseFrame();
             }
-        else if( _wcsicmp( gInput.iToken, L"BMPANIM" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"BMPANIM" ) == 0 )
             {
             ParseBmpAnim();
             }
-        else if( _wcsicmp( gInput.iToken, L"APPICON" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"APPICON" ) == 0 )
             {
             ParseAppIcon();
             }
-        else if( _wcsicmp( gInput.iToken, L"PALETTE" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"PALETTE" ) == 0 )
             {
             ParsePalette();
             }
-        else if( (_wcsicmp( gInput.iToken, L"SOUND" ) == 0)
-            || (_wcsicmp( gInput.iToken, L"STRING" ) == 0) )
+        else if( (sd_wcscasecmp( gInput.iToken, L"SOUND" ) == 0)
+            || (sd_wcscasecmp( gInput.iToken, L"STRING" ) == 0) )
             {
             ParseString();
             }
-        else if( _wcsicmp( gInput.iToken, L"SCALABLEITEM" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"SCALABLEITEM" ) == 0 )
             {
             if( !iData->IsScalable() ) throw CSDCException( ESDCContentError, "SCALABLEITEM can only be included in scalable skins" );
             ParseScalableItem();
             }
-        else if( _wcsicmp( gInput.iToken, L"ANIMATION" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"ANIMATION" ) == 0 )
             {
             if( !iData->IsScalable() ) throw CSDCException( ESDCContentError, "ANIMATION can only be included in scalable skins" );
             ParseAnimation();
             }
-        else if( _wcsicmp( gInput.iToken, L"BITMAPPATH" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"BITMAPPATH" ) == 0 )
             {
             ParseBitmapPath();
             }
-        else if( _wcsicmp( gInput.iToken, L"RESTRICTION" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"RESTRICTION" ) == 0 )
             {
             ParseRestriction();
             }
@@ -159,15 +160,15 @@
     {
     gInput.NextToken();
 
-    if( _wcsicmp( gInput.iToken, L"normal" ) == 0 )
+    if( sd_wcscasecmp( gInput.iToken, L"normal" ) == 0 )
         {
         iData->iSkinType = 0x0;
         }
-    else if( _wcsicmp( gInput.iToken, L"system" ) == 0 )
+    else if( sd_wcscasecmp( gInput.iToken, L"system" ) == 0 )
         {
         iData->iSkinType = 0x1;
         }
-    else if( _wcsicmp( gInput.iToken, L"scalable" ) == 0 )
+    else if( sd_wcscasecmp( gInput.iToken, L"scalable" ) == 0 )
         {
 #if !defined( RD_ENHANCED_SKINNING )
         throw CSDCException( ESDCNotSupportedError, "Scalable skins not supported" );
@@ -182,7 +183,7 @@
 
     if( gInput.NextToken() )
         {
-        if( _wcsicmp( gInput.iToken, L"language=AH" ) == 0 )
+        if( sd_wcscasecmp( gInput.iToken, L"language=AH" ) == 0 )
             {
             iData->iSkinType |= 0x102;
             }
@@ -235,7 +236,7 @@
         throw CSDCException( ESDCParseError, "Language override can not be used with scalable skins" );
 
     gInput.NextToken();
-    if( _wcsicmp( gInput.iToken, L"AH" ) != 0 )
+    if( sd_wcscasecmp( gInput.iToken, L"AH" ) != 0 )
         {
         throw CSDCException( ESDCParseError, "Unknown or missing parameter for LANGUAGEOVERRIDE" );
         }
@@ -276,7 +277,7 @@
 void CSDCReader::ParseProtect()
     {
     gInput.NextToken();
-    if( _wcsicmp( gInput.iToken, L"disablecopy" ) != 0 )
+    if( sd_wcscasecmp( gInput.iToken, L"disablecopy" ) != 0 )
         {
         throw CSDCException( ESDCParseError, "Unknown or missing parameter for PROTECT" );
         }
@@ -313,7 +314,7 @@
     gInput.NextToken();
 
     bool appIcon = false;
-    if( _wcsicmp( gInput.iToken, L"CLASS=appicon" ) == 0 )
+    if( sd_wcscasecmp( gInput.iToken, L"CLASS=appicon" ) == 0 )
         {
         appIcon = true;
         gInput.NextToken();
@@ -321,7 +322,7 @@
 
     int restriction( iData->iCurrentRestriction );
     const TSDCIIDEntry* iid = NULL;
-    if( _wcsnicmp( gInput.iToken, L"IID=", 4 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"IID=", 4 ) == 0 )
         {
         wchar_t iidBuf[512];
         wcscpy( iidBuf, gInput.iToken+4 );
@@ -361,7 +362,7 @@
 
     while( gInput.NextToken() )
         {
-        if( _wcsnicmp( gInput.iToken, L"MASK=", 5 ) == 0 )
+        if( sd_wcsncasecmp( gInput.iToken, L"MASK=", 5 ) == 0 )
             {
             if( svg ) throw CSDCException( ESDCParseError, "SVG icon can not have a named mask" );
             if( mbmEntry->iMaskColorDepth!=ESDCColorDepthNone )
@@ -376,7 +377,7 @@
                 }
             maskIndex = mbmIndex+1;
             }
-        else if( _wcsnicmp( gInput.iToken, L"SOFTMASK=", 9 ) == 0 )
+        else if( sd_wcsncasecmp( gInput.iToken, L"SOFTMASK=", 9 ) == 0 )
             {
             if( svg ) throw CSDCException( ESDCParseError, "SVG icon can not have a named mask" );
             if( mbmEntry->iMaskColorDepth!=ESDCColorDepthNone )
@@ -391,13 +392,13 @@
                 }
             maskIndex = mbmIndex+1;
             }
-        else if( _wcsicmp( gInput.iToken, L"MASK" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"MASK" ) == 0 )
             {
             if( !svg ) throw CSDCException( ESDCParseError, "Non-SVG icon can not have an unnamed mask" );
             mbmEntry->iMaskColorDepth = ESDCColorDepth1;
             maskIndex = mbmIndex+1;
             }
-        else if( _wcsicmp( gInput.iToken, L"SOFTMASK" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"SOFTMASK" ) == 0 )
             {
             if( !svg ) throw CSDCException( ESDCParseError, "Non-SVG icon can not have an unnamed mask" );
             mbmEntry->iMaskColorDepth = ESDCColorDepth8;
@@ -421,7 +422,7 @@
 
     TSDCIID realIid;
     int restriction( iData->iCurrentRestriction );
-    if( _wcsnicmp( gInput.iToken, L"IID=", 4 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"IID=", 4 ) == 0 )
         {
         wchar_t iidBuf[512];
         wcscpy( iidBuf, gInput.iToken+4 );
@@ -440,19 +441,19 @@
 
     while( gInput.NextTokenAllowLF() )
         {
-        if( _wcsicmp( gInput.iToken, L"END" ) == 0 )
+        if( sd_wcscasecmp( gInput.iToken, L"END" ) == 0 )
             {
             iData->CreateColorTableDef( realIid, colors, restriction );
             return;
             }
-        else if( _wcsnicmp( gInput.iToken, L"IDX=", 4 ) == 0 )
+        else if( sd_wcsncasecmp( gInput.iToken, L"IDX=", 4 ) == 0 )
             {
             TSDCColorTableEntry entry;
             entry.iIndex = gInput.ConvertToNumber( gInput.iToken+4 );
             entry.iRgb = 0;
             colors.push_back( entry );
             }
-        else if( _wcsnicmp( gInput.iToken, L"RGB=", 4 ) == 0 )
+        else if( sd_wcsncasecmp( gInput.iToken, L"RGB=", 4 ) == 0 )
             {
             TSDCColorTableEntry entry;
             entry.iIndex = -1;
@@ -474,7 +475,7 @@
 
     TSDCIID realIid;
     int restriction( iData->iCurrentRestriction );
-    if( _wcsnicmp( gInput.iToken, L"IID=", 4 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"IID=", 4 ) == 0 )
         {
         wchar_t iidBuf[512];
         wcscpy( iidBuf, gInput.iToken+4 );
@@ -493,7 +494,7 @@
 
     while( gInput.NextTokenAllowLF() )
         {
-        if( _wcsicmp( gInput.iToken, L"END" ) == 0)
+        if( sd_wcscasecmp( gInput.iToken, L"END" ) == 0)
             {
             iData->CreateFrameDef( realIid, elements, restriction );
             return;
@@ -513,7 +514,7 @@
 
     TSDCIID realIid;
     int restriction( iData->iCurrentRestriction );
-    if( _wcsnicmp( gInput.iToken, L"IID=", 4 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"IID=", 4 ) == 0 )
         {
         wchar_t iidBuf[512];
         wcscpy( iidBuf, gInput.iToken+4 );
@@ -535,28 +536,28 @@
 
     while( gInput.NextToken() )
         {
-        if( _wcsnicmp( gInput.iToken, L"INTERVAL=", 9 ) == 0 )
+        if( sd_wcsncasecmp( gInput.iToken, L"INTERVAL=", 9 ) == 0 )
             {
             interval = gInput.ConvertToNumber( gInput.iToken+9 );
             }
-        else if( _wcsicmp( gInput.iToken, L"MODE=play" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"MODE=play" ) == 0 )
             {
             playMode = 0;
             }
-        else if( _wcsicmp( gInput.iToken, L"MODE=cycle" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"MODE=cycle" ) == 0 )
             {
             playMode = 1;
             }
-        else if( _wcsicmp( gInput.iToken, L"MODE=bounce" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"MODE=bounce" ) == 0 )
             {
             playMode = 2;
             }
-        else if( _wcsicmp( gInput.iToken, L"MODE=svganim" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"MODE=svganim" ) == 0 )
             {
             playMode = 255;
             svganim = true;
             }
-        else if( _wcsicmp( gInput.iToken, L"FLASH" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"FLASH" ) == 0 )
             {
             flash = 1;
             }
@@ -573,11 +574,11 @@
     int posy = 0;
     while( gInput.NextTokenAllowLF() )
         {
-        if( _wcsnicmp( gInput.iToken, L"TIME=", 5 ) == 0 )
+        if( sd_wcsncasecmp( gInput.iToken, L"TIME=", 5 ) == 0 )
             {
             time = gInput.ConvertToNumber( gInput.iToken+5 );
             }
-        else if( _wcsnicmp( gInput.iToken, L"POS=", 4 ) == 0 )
+        else if( sd_wcsncasecmp( gInput.iToken, L"POS=", 4 ) == 0 )
             {
             wchar_t buf[512];
             wcscpy( buf, gInput.iToken+4 );
@@ -587,7 +588,7 @@
             posx = gInput.ConvertToNumber( buf );
             posy = gInput.ConvertToNumber( p+1 );
             }
-        else if( _wcsicmp( gInput.iToken, L"END" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"END" ) == 0 )
             {
             iData->CreateBmpAnimDef( realIid, interval, playMode, flash, frames, restriction );
             return;
@@ -615,7 +616,7 @@
     {
     gInput.NextToken();
     int uid;
-    if( _wcsnicmp( gInput.iToken, L"UID=", 4 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"UID=", 4 ) == 0 )
         {
         uid = gInput.ConvertToNumber( gInput.iToken+4 );
         }
@@ -629,7 +630,7 @@
     vector<TSDCIID> iconBitmaps;
     while( gInput.NextTokenAllowLF() )
         {
-        if( _wcsicmp( gInput.iToken, L"END" ) == 0)
+        if( sd_wcscasecmp( gInput.iToken, L"END" ) == 0)
             {
             TSDCIID realIid;
             realIid.iMajor = EAknsMajorAppIcon;
@@ -659,7 +660,7 @@
 void CSDCReader::ParsePalette()
     {
     gInput.NextToken();
-    if( _wcsnicmp( gInput.iToken, L"SCHEME=", 7 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"SCHEME=", 7 ) == 0 )
         {
         iData->iPalettePid.iPID2 = 0;
         iData->iPalettePid.iPID1 = gInput.ConvertToNumber( gInput.iToken+7 );
@@ -675,7 +676,7 @@
     gInput.NextToken();
     TSDCIID realIid;
     int restriction( iData->iCurrentRestriction );
-    if( _wcsnicmp( gInput.iToken, L"IID=", 4 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"IID=", 4 ) == 0 )
         {
         wchar_t iidBuf[512];
         wcscpy( iidBuf, gInput.iToken+4 );
@@ -699,7 +700,7 @@
     gInput.NextToken();
     TSDCIID realIid;
     int restriction( iData->iCurrentRestriction );
-    if( _wcsnicmp( gInput.iToken, L"IID=", 4 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"IID=", 4 ) == 0 )
         {
         wchar_t iidBuf[512];
         wcscpy( iidBuf, gInput.iToken+4 );
@@ -716,11 +717,11 @@
 
     gInput.NextToken();
     int input = 0;
-    if( _wcsnicmp( gInput.iToken, L"INPUT=", 6 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"INPUT=", 6 ) == 0 )
         {
         input = CSDCInput::ConvertToLayer( gInput.iToken+6 );
         }
-    else if( _wcsnicmp( gInput.iToken, L"REFIID=", 7 ) == 0 )
+    else if( sd_wcsncasecmp( gInput.iToken, L"REFIID=", 7 ) == 0 )
         {
         // Reference only
         TSDCIID refIid;
@@ -748,7 +749,7 @@
 
     gInput.NextToken();
     int output = 0;
-    if( _wcsnicmp( gInput.iToken, L"OUTPUT=", 7 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"OUTPUT=", 7 ) == 0 )
         {
         output = CSDCInput::ConvertToLayer( gInput.iToken+7 );
         }
@@ -760,12 +761,12 @@
     vector<TSDCEffectCommand> commands;
     while( gInput.NextTokenAllowLF() )
         {
-        if( _wcsicmp( gInput.iToken, L"END" ) == 0)
+        if( sd_wcscasecmp( gInput.iToken, L"END" ) == 0)
             {
             iData->CreateScalableItemDef( realIid, input, output, commands, restriction );
             return;
             }
-        else if( _wcsicmp( gInput.iToken, L"EFFECT" ) == 0)
+        else if( sd_wcscasecmp( gInput.iToken, L"EFFECT" ) == 0)
             {
             TSDCEffectCommand command;
             ParseEffectCommand( command );
@@ -785,7 +786,7 @@
     gInput.NextToken();
     TSDCIID realIid;
     int restriction( iData->iCurrentRestriction );
-    if( _wcsnicmp( gInput.iToken, L"IID=", 4 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"IID=", 4 ) == 0 )
         {
         wchar_t iidBuf[512];
         wcscpy( iidBuf, gInput.iToken+4 );
@@ -802,7 +803,7 @@
 
     gInput.NextToken();
     int input = 0;
-    if( _wcsnicmp( gInput.iToken, L"INPUT=", 6 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"INPUT=", 6 ) == 0 )
         {
         input = CSDCInput::ConvertToLayer( gInput.iToken+6 );
         }
@@ -813,7 +814,7 @@
 
     gInput.NextToken();
     int output = 0;
-    if( _wcsnicmp( gInput.iToken, L"OUTPUT=", 7 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"OUTPUT=", 7 ) == 0 )
         {
         output = CSDCInput::ConvertToLayer( gInput.iToken+7 );
         }
@@ -824,7 +825,7 @@
 
     gInput.NextToken();
     int mininterval = 0;
-    if( _wcsnicmp( gInput.iToken, L"MININTERVAL=", 12 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"MININTERVAL=", 12 ) == 0 )
         {
         mininterval = CSDCInput::ConvertToNumber( gInput.iToken+12 );
         }
@@ -836,7 +837,7 @@
     gInput.NextTokenAllowLF();
 
     bool morphing = false;
-    if( _wcsicmp( gInput.iToken, L"MORPHING" ) == 0 )
+    if( sd_wcscasecmp( gInput.iToken, L"MORPHING" ) == 0 )
         {
         morphing = true;
 
@@ -844,17 +845,17 @@
         }
 
     vector<TSDCEffectCommand> preprocessCommands;
-    if( _wcsicmp( gInput.iToken, L"PREPROCESS" ) == 0 )
+    if( sd_wcscasecmp( gInput.iToken, L"PREPROCESS" ) == 0 )
         {
         bool terminated( false );
         while( gInput.NextTokenAllowLF() )
             {
-            if( _wcsicmp( gInput.iToken, L"END" ) == 0)
+            if( sd_wcscasecmp( gInput.iToken, L"END" ) == 0)
                 {
                 terminated = true;
                 break;
                 }
-            else if( _wcsicmp( gInput.iToken, L"EFFECT" ) == 0)
+            else if( sd_wcscasecmp( gInput.iToken, L"EFFECT" ) == 0)
                 {
                 TSDCEffectCommand command;
                 ParseEffectCommand( command );
@@ -878,32 +879,32 @@
     bool terminated( false );
     do
         {
-        if( _wcsicmp( gInput.iToken, L"END" ) == 0)
+        if( sd_wcscasecmp( gInput.iToken, L"END" ) == 0)
             {
             terminated = true;
             break;
             }
-        else if( _wcsicmp( gInput.iToken, L"COMMAND" ) == 0)
+        else if( sd_wcscasecmp( gInput.iToken, L"COMMAND" ) == 0)
             {
             TSDCEffectCommand command;
             ParseEffectCommand( command );
             animCommands.push_back( command );
             }
-        else if( _wcsicmp( gInput.iToken, L"VALUE" ) == 0)
+        else if( sd_wcscasecmp( gInput.iToken, L"VALUE" ) == 0)
             {
             gInput.NextToken();
-            if( _wcsnicmp( gInput.iToken, L"UID=", 4 ) )
+            if( sd_wcsncasecmp( gInput.iToken, L"UID=", 4 ) )
                 throw new CSDCException( ESDCParseError, "UID parameter expected for VALUE" );
             int uid = CSDCInput::ConvertToNumber( gInput.iToken+4 );
 
             gInput.NextToken();
-            if( _wcsnicmp( gInput.iToken, L"TIMINGID=", 9 ) )
+            if( sd_wcsncasecmp( gInput.iToken, L"TIMINGID=", 9 ) )
                 throw new CSDCException( ESDCParseError, "TIMINGID parameter expected for VALUE" );
             int timingId = CSDCInput::ConvertToNumber( gInput.iToken+9 );
 
             TSDCAnimParamGroup paramGroup;
 
-            while( gInput.NextTokenAllowLF() && _wcsicmp( gInput.iToken, L"END" ) )
+            while( gInput.NextTokenAllowLF() && sd_wcscasecmp( gInput.iToken, L"END" ) )
                 {
                 TSDCEffectParameter parameter;
                 ParseEffectParameter( parameter );
@@ -914,16 +915,16 @@
             paramGroup.iValueB = timingId;
             values.push_back( paramGroup );
             }
-        else if( _wcsicmp( gInput.iToken, L"TIMINGMODEL" ) == 0)
+        else if( sd_wcscasecmp( gInput.iToken, L"TIMINGMODEL" ) == 0)
             {
             gInput.NextToken();
-            if( _wcsnicmp( gInput.iToken, L"UID=", 4 ) )
+            if( sd_wcsncasecmp( gInput.iToken, L"UID=", 4 ) )
                 throw new CSDCException( ESDCParseError, "UID parameter expected for TIMINGMODEL" );
             int uid = CSDCInput::ConvertToNumber( gInput.iToken+4 );
 
             TSDCAnimParamGroup paramGroup;
 
-            while( gInput.NextTokenAllowLF() && _wcsicmp( gInput.iToken, L"END" ) )
+            while( gInput.NextTokenAllowLF() && sd_wcscasecmp( gInput.iToken, L"END" ) )
                 {
                 TSDCEffectParameter parameter;
                 ParseEffectParameter( parameter );
@@ -934,7 +935,7 @@
             paramGroup.iValueB = 0;
             timingModels.push_back( paramGroup );
             }
-        else if( _wcsicmp( gInput.iToken, L"SIZEBOUNDPARAM" ) == 0)
+        else if( sd_wcscasecmp( gInput.iToken, L"SIZEBOUNDPARAM" ) == 0)
             {
             gInput.NextToken();
             TSDCEffectParameter parameter;
@@ -943,21 +944,21 @@
             parameter.iNumber = 0;
 
             gInput.NextToken();
-            if( _wcsnicmp( gInput.iToken, L"VALUEID=", 8 ) )
+            if( sd_wcsncasecmp( gInput.iToken, L"VALUEID=", 8 ) )
                 throw new CSDCException( ESDCParseError, "VALUEID parameter expected for SIZEBOUNDPARAM" );
             int valueId = CSDCInput::ConvertToNumber( gInput.iToken+8 );
 
             gInput.NextToken();
             int flags = 0;
-            if( _wcsicmp( gInput.iToken, L"FLAGS=W" ) == 0 )
+            if( sd_wcscasecmp( gInput.iToken, L"FLAGS=W" ) == 0 )
                 {
                 flags = 1;
                 }
-            else if( _wcsicmp( gInput.iToken, L"FLAGS=H" ) == 0 )
+            else if( sd_wcscasecmp( gInput.iToken, L"FLAGS=H" ) == 0 )
                 {
                 flags = 2;
                 }
-            else if( _wcsicmp( gInput.iToken, L"FLAGS=W_AND_H" ) == 0 )
+            else if( sd_wcscasecmp( gInput.iToken, L"FLAGS=W_AND_H" ) == 0 )
                 {
                 flags = 3;
                 }
@@ -986,7 +987,7 @@
     if( gInput.NextToken() )
         {
         bool changed( true );
-        if( _wcsicmp( gInput.iToken, iData->iBmpPath ) == 0 ) changed = false;
+        if( sd_wcscasecmp( gInput.iToken, iData->iBmpPath ) == 0 ) changed = false;
         iData->SetBmpPath( gInput.iToken );
         char buf[512];
         CSDCInput::ConvertToAscii( buf, gInput.iToken );
@@ -1006,59 +1007,59 @@
         printf( "WARNING: RESTRICTION elements is only allowed in scalable skins, layout types will not work with this skin (line %i)\n", gInput.iLineNumber );
 
     gInput.NextToken();
-    if( _wcsicmp( gInput.iToken, L"S60_2_6" ) == 0 )
+    if( sd_wcscasecmp( gInput.iToken, L"S60_2_6" ) == 0 )
         {
         iData->iCurrentRestriction = 0x0206;
         printf("NOTE: Current restriction set to 2.6\n");
         }
-    else if( _wcsicmp( gInput.iToken, L"S60_2_7" ) == 0 )
+    else if( sd_wcscasecmp( gInput.iToken, L"S60_2_7" ) == 0 )
         {
         iData->iCurrentRestriction = 0x0207;
         printf("NOTE: Current restriction set to 2.7\n");
         }
-    else if( _wcsicmp( gInput.iToken, L"S60_2_8" ) == 0 )
+    else if( sd_wcscasecmp( gInput.iToken, L"S60_2_8" ) == 0 )
         {
         iData->iCurrentRestriction = 0x0208;
         printf("NOTE: Current restriction set to 2.8\n");
         }
-    else if( _wcsicmp( gInput.iToken, L"S60_3_0" ) == 0 )
+    else if( sd_wcscasecmp( gInput.iToken, L"S60_3_0" ) == 0 )
         {
         iData->iCurrentRestriction = 0x0300;
         printf("NOTE: Current restriction set to 3.0\n");
         }
-    else if( _wcsicmp( gInput.iToken, L"S60_3_1" ) == 0 )
+    else if( sd_wcscasecmp( gInput.iToken, L"S60_3_1" ) == 0 )
         {
         iData->iCurrentRestriction = 0x0301;
         printf("NOTE: Current restriction set to 3.1\n");
         }
-    else if( _wcsicmp( gInput.iToken, L"S60_3_2" ) == 0 )
+    else if( sd_wcscasecmp( gInput.iToken, L"S60_3_2" ) == 0 )
         {
         iData->iCurrentRestriction = 0x0302;
         printf("NOTE: Current restriction set to 3.2\n");
         }
-    else if( _wcsicmp( gInput.iToken, L"S60_5_0" ) == 0 )
+    else if( sd_wcscasecmp( gInput.iToken, L"S60_5_0" ) == 0 )
         {
         iData->iCurrentRestriction = 0x0500;
         printf("NOTE: Current restriction set to 5.0\n");
         }
-    else if( _wcsicmp( gInput.iToken, L"LAY_W" ) == 0 )
+    else if( sd_wcscasecmp( gInput.iToken, L"LAY_W" ) == 0 )
         {
         iData->iCurrentRestriction = 0x00010000;
         printf("NOTE: Current restriction set to Layout/Non-Mirrored\n");
         }
-    else if( _wcsicmp( gInput.iToken, L"LAY_AH" ) == 0 )
+    else if( sd_wcscasecmp( gInput.iToken, L"LAY_AH" ) == 0 )
         {
         iData->iCurrentRestriction = 0x00020000;
         printf("NOTE: Current restriction set to Layout/Mirrored\n");
         }
-    else if( _wcsnicmp( gInput.iToken, L"LANG=", 5 ) == 0 )
+    else if( sd_wcsncasecmp( gInput.iToken, L"LANG=", 5 ) == 0 )
         {
         int language = (CSDCInput::ConvertToNumber( gInput.iToken+5 ))&0xffff;
         printf("NOTE: Current restriction set to Language/langcode:%d\n", language);
         iData->iCurrentRestriction = language|0x00030000;
         iData->iLanguageVector.push_back(language|0x00030000);
         }
-    else if( _wcsicmp( gInput.iToken, L"NONE" ) == 0 )
+    else if( sd_wcscasecmp( gInput.iToken, L"NONE" ) == 0 )
         {
         iData->iCurrentRestriction = 0;
         printf("NOTE: Current restriction cleared\n");
@@ -1072,7 +1073,7 @@
 TSDCIID CSDCReader::ParseBitmapSource( const bool aAppIcon, const int aRestriction, const bool aSvgAnim )
     {
     int restriction( iData->iCurrentRestriction );
-    if( _wcsnicmp( gInput.iToken, L"IID=", 4 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"IID=", 4 ) == 0 )
         {
         wchar_t iidBuf[512];
         wcscpy( iidBuf, gInput.iToken+4 );
@@ -1154,7 +1155,7 @@
 
     while( gInput.NextToken() )
         {
-        if( _wcsnicmp( gInput.iToken, L"MASK=", 5 ) == 0 )
+        if( sd_wcsncasecmp( gInput.iToken, L"MASK=", 5 ) == 0 )
             {
             if( svg ) throw CSDCException( ESDCParseError, "SVG icon can not have a named mask" );
             if( mbmEntry->iMaskColorDepth!=ESDCColorDepthNone )
@@ -1169,7 +1170,7 @@
                 }
             maskIndex = mbmIndex+1;
             }
-        else if( _wcsnicmp( gInput.iToken, L"SOFTMASK=", 9 ) == 0 )
+        else if( sd_wcsncasecmp( gInput.iToken, L"SOFTMASK=", 9 ) == 0 )
             {
             if( svg ) throw CSDCException( ESDCParseError, "SVG icon can not have a named mask" );
             if( mbmEntry->iMaskColorDepth!=ESDCColorDepthNone )
@@ -1184,13 +1185,13 @@
                 }
             maskIndex = mbmIndex+1;
             }
-        else if( _wcsicmp( gInput.iToken, L"MASK" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"MASK" ) == 0 )
             {
             if( !svg ) throw CSDCException( ESDCParseError, "Non-SVG icon can not have an unnamed mask" );
             mbmEntry->iMaskColorDepth = ESDCColorDepth1;
             maskIndex = mbmIndex+1;
             }
-        else if( _wcsicmp( gInput.iToken, L"SOFTMASK" ) == 0 )
+        else if( sd_wcscasecmp( gInput.iToken, L"SOFTMASK" ) == 0 )
             {
             if( !svg ) throw CSDCException( ESDCParseError, "Non-SVG icon can not have an unnamed mask" );
             mbmEntry->iMaskColorDepth = ESDCColorDepth8;
@@ -1216,7 +1217,7 @@
     wchar_t buf[512];
     wcscpy( buf, aSource );
 
-    if( _wcsnicmp( buf, L"COORDS=", 7 ) == 0 )
+    if( sd_wcsncasecmp( buf, L"COORDS=", 7 ) == 0 )
         {
         wchar_t* p = wcsstr( buf, L"," );
         if( !p ) throw CSDCException( ESDCParseError, "No comma in image attribute COORDS" );
@@ -1225,7 +1226,7 @@
         aAttributes.iCoordX = gInput.ConvertToNumber( buf+7 );
         aAttributes.iCoordY = gInput.ConvertToNumber( p+1 );
         }
-    else if( _wcsnicmp( buf, L"SIZE=", 5 ) == 0 )
+    else if( sd_wcsncasecmp( buf, L"SIZE=", 5 ) == 0 )
         {
         wchar_t* p = wcsstr( buf, L"," );
         if( !p ) throw CSDCException( ESDCParseError, "No comma in image attribute SIZE" );
@@ -1234,33 +1235,33 @@
         aAttributes.iSizeW = gInput.ConvertToNumber( buf+5 );
         aAttributes.iSizeH  = gInput.ConvertToNumber( p+1 );
         }
-    else if( _wcsicmp( buf, L"STRETCH" ) == 0 )
+    else if( sd_wcscasecmp( buf, L"STRETCH" ) == 0 )
         {
         aAttributes.iAttributeFlags |= ESDCImageAttributeStretch;
         }
-    else if( _wcsicmp( buf, L"TILE" ) == 0 )
+    else if( sd_wcscasecmp( buf, L"TILE" ) == 0 )
         {
         aAttributes.iAttributeFlags |= ESDCImageAttributeTile;
         }
-    else if( _wcsicmp( buf, L"TILEX" ) == 0 )
+    else if( sd_wcscasecmp( buf, L"TILEX" ) == 0 )
         {
         aAttributes.iAttributeFlags |= ESDCImageAttributeTileX;
         }
-    else if( _wcsicmp( buf, L"TILEY" ) == 0 )
+    else if( sd_wcscasecmp( buf, L"TILEY" ) == 0 )
         {
         aAttributes.iAttributeFlags |= ESDCImageAttributeTileY;
         }
-    else if( _wcsnicmp( buf, L"ALIGN=", 6 ) == 0 )
+    else if( sd_wcsncasecmp( buf, L"ALIGN=", 6 ) == 0 )
         {
-        if( _wcsicmp( buf+6, L"TL" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignTL;
-        else if( _wcsicmp( buf+6, L"TC" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignTC;
-        else if( _wcsicmp( buf+6, L"TR" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignTR;
-        else if( _wcsicmp( buf+6, L"CL" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignCL;
-        else if( _wcsicmp( buf+6, L"CC" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignCC;
-        else if( _wcsicmp( buf+6, L"CR" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignCR;
-        else if( _wcsicmp( buf+6, L"BL" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignBL;
-        else if( _wcsicmp( buf+6, L"BC" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignBC;
-        else if( _wcsicmp( buf+6, L"BR" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignBR;
+        if( sd_wcscasecmp( buf+6, L"TL" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignTL;
+        else if( sd_wcscasecmp( buf+6, L"TC" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignTC;
+        else if( sd_wcscasecmp( buf+6, L"TR" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignTR;
+        else if( sd_wcscasecmp( buf+6, L"CL" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignCL;
+        else if( sd_wcscasecmp( buf+6, L"CC" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignCC;
+        else if( sd_wcscasecmp( buf+6, L"CR" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignCR;
+        else if( sd_wcscasecmp( buf+6, L"BL" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignBL;
+        else if( sd_wcscasecmp( buf+6, L"BC" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignBC;
+        else if( sd_wcscasecmp( buf+6, L"BR" ) == 0 ) aAttributes.iAlignmentFlags = ESDCImageAlignBR;
         else throw CSDCException( ESDCParseError, "Unknown parameter for image attribute ALIGN" );
 
         aAttributes.iAttributeFlags |= ESDCImageAttributeAlign;
@@ -1271,7 +1272,7 @@
 void CSDCReader::ParseEffectCommand( TSDCEffectCommand& aCommand )
     {
     gInput.NextToken();
-    if( _wcsnicmp( gInput.iToken, L"UID=", 4 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"UID=", 4 ) == 0 )
         {
         aCommand.iUid = CSDCInput::ConvertToNumber( gInput.iToken+4 );
         }
@@ -1281,7 +1282,7 @@
         }
 
     gInput.NextToken();
-    if( _wcsnicmp( gInput.iToken, L"INPUTA=", 7 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"INPUTA=", 7 ) == 0 )
         {
         aCommand.iInputA = CSDCInput::ConvertToLayer( gInput.iToken+7 );
         }
@@ -1291,7 +1292,7 @@
         }
 
     gInput.NextToken();
-    if( _wcsnicmp( gInput.iToken, L"INPUTB=", 7 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"INPUTB=", 7 ) == 0 )
         {
         aCommand.iInputB = CSDCInput::ConvertToLayer( gInput.iToken+7 );
         }
@@ -1301,7 +1302,7 @@
         }
 
     gInput.NextToken();
-    if( _wcsnicmp( gInput.iToken, L"OUTPUT=", 7 ) == 0 )
+    if( sd_wcsncasecmp( gInput.iToken, L"OUTPUT=", 7 ) == 0 )
         {
         aCommand.iOutput = CSDCInput::ConvertToLayer( gInput.iToken+7 );
         }
@@ -1312,7 +1313,7 @@
 
     while( gInput.NextTokenAllowLF() )
         {
-        if( _wcsicmp( gInput.iToken, L"END" ) == 0)
+        if( sd_wcscasecmp( gInput.iToken, L"END" ) == 0)
             {
             // Just return, everything should be in the struct by now
             return;
@@ -1330,23 +1331,23 @@
 
 void CSDCReader::ParseEffectParameter( TSDCEffectParameter& aParameter )
     {
-    if( _wcsicmp( gInput.iToken, L"INT" ) == 0)
+    if( sd_wcscasecmp( gInput.iToken, L"INT" ) == 0)
         {
         aParameter.iType = 0;
         }
-    else if( _wcsicmp( gInput.iToken, L"STR" ) == 0)
+    else if( sd_wcscasecmp( gInput.iToken, L"STR" ) == 0)
         {
         aParameter.iType = 1;
         }
-    else if( _wcsicmp( gInput.iToken, L"BMP" ) == 0)
+    else if( sd_wcscasecmp( gInput.iToken, L"BMP" ) == 0)
         {
         aParameter.iType = 2;
         }
-    else if( _wcsicmp( gInput.iToken, L"NAMEDREF" ) == 0)
+    else if( sd_wcscasecmp( gInput.iToken, L"NAMEDREF" ) == 0)
         {
         aParameter.iType = 3;
         }
-    else if( _wcsicmp( gInput.iToken, L"RAW" ) == 0)
+    else if( sd_wcscasecmp( gInput.iToken, L"RAW" ) == 0)
         {
         aParameter.iType = 4;
         }
@@ -1384,7 +1385,7 @@
         aParameter.iMaskIndex = -1;
         if( gInput.NextToken() )
             {
-            if( _wcsnicmp( gInput.iToken, L"MASK=", 5 ) == 0 )
+            if( sd_wcsncasecmp( gInput.iToken, L"MASK=", 5 ) == 0 )
                 {
                 if( svg ) throw CSDCException( ESDCParseError, "SVG icon can not have a named mask" );
                 if( mbmEntry->iMaskColorDepth!=ESDCColorDepthNone )
@@ -1399,7 +1400,7 @@
                     }
                 aParameter.iMaskIndex = aParameter.iBmpIndex+1;
                 }
-            else if( _wcsnicmp( gInput.iToken, L"SOFTMASK=", 9 ) == 0 )
+            else if( sd_wcsncasecmp( gInput.iToken, L"SOFTMASK=", 9 ) == 0 )
                 {
                 if( svg ) throw CSDCException( ESDCParseError, "SVG icon can not have a named mask" );
                 if( mbmEntry->iMaskColorDepth!=ESDCColorDepthNone )
@@ -1414,13 +1415,13 @@
                     }
                 aParameter.iMaskIndex = aParameter.iBmpIndex+1;
                 }
-            else if( _wcsicmp( gInput.iToken, L"MASK" ) == 0 )
+            else if( sd_wcscasecmp( gInput.iToken, L"MASK" ) == 0 )
                 {
                 if( !svg ) throw CSDCException( ESDCParseError, "Non-SVG icon can not have an unnamed mask" );
                 mbmEntry->iMaskColorDepth = ESDCColorDepth1;
                 aParameter.iMaskIndex = aParameter.iBmpIndex+1;
                 }
-            else if( _wcsicmp( gInput.iToken, L"SOFTMASK" ) == 0 )
+            else if( sd_wcscasecmp( gInput.iToken, L"SOFTMASK" ) == 0 )
                 {
                 if( !svg ) throw CSDCException( ESDCParseError, "Non-SVG icon can not have an unnamed mask" );
                 mbmEntry->iMaskColorDepth = ESDCColorDepth8;
@@ -1435,7 +1436,7 @@
     else if( aParameter.iType == 3 )
         {
         gInput.NextToken();
-        if( _wcsnicmp( gInput.iToken, L"VALUEID=", 8 ) == 0 )
+        if( sd_wcsncasecmp( gInput.iToken, L"VALUEID=", 8 ) == 0 )
             {
             aParameter.iNumber = CSDCInput::ConvertToNumber( gInput.iToken+8 );
             }
@@ -1495,39 +1496,39 @@
     wcscpy( buf, delimiter+1 );
 
     *delimiter = 0;
-    if( _wcsicmp( aIID, L"S60_2_6" ) == 0 )
+    if( sd_wcscasecmp( aIID, L"S60_2_6" ) == 0 )
         {
         aRestriction = 0x0206;
         }
-    else if( _wcsicmp( aIID, L"S60_2_7" ) == 0 )
+    else if( sd_wcscasecmp( aIID, L"S60_2_7" ) == 0 )
         {
         aRestriction = 0x0207;
         }
-    else if( _wcsicmp( aIID, L"S60_2_8" ) == 0 )
+    else if( sd_wcscasecmp( aIID, L"S60_2_8" ) == 0 )
         {
         aRestriction = 0x0208;
         }
-    else if( _wcsicmp( aIID, L"S60_3_0" ) == 0 )
+    else if( sd_wcscasecmp( aIID, L"S60_3_0" ) == 0 )
         {
         aRestriction = 0x0300;
         }
-    else if( _wcsicmp( aIID, L"S60_3_1" ) == 0 )
+    else if( sd_wcscasecmp( aIID, L"S60_3_1" ) == 0 )
         {
         aRestriction = 0x0301;
         }
-    else if( _wcsicmp( aIID, L"S60_3_2" ) == 0 )
+    else if( sd_wcscasecmp( aIID, L"S60_3_2" ) == 0 )
         {
         aRestriction = 0x0302;
         }
-    else if( _wcsicmp( aIID, L"S60_5_0" ) == 0 )
+    else if( sd_wcscasecmp( aIID, L"S60_5_0" ) == 0 )
         {
         aRestriction = 0x0500;
         }
-    else if( _wcsicmp( aIID, L"LAY_W" ) == 0 )
+    else if( sd_wcscasecmp( aIID, L"LAY_W" ) == 0 )
         {
         aRestriction = 0x00010000;
         }
-    else if( _wcsicmp( aIID, L"LAY_AH" ) == 0 )
+    else if( sd_wcscasecmp( aIID, L"LAY_AH" ) == 0 )
         {
         aRestriction = 0x00020000;
         }
--- a/skins/group/bld.inf	Fri Apr 16 16:01:57 2010 +0300
+++ b/skins/group/bld.inf	Mon May 03 13:28:06 2010 +0300
@@ -15,5 +15,13 @@
 *
 */
 
+#ifdef TOOLS2
+
+#include "../AknSkins/group/bld.inf"
+
+#else
+
 #include "../AknSkinContent/group/bld.inf"
 #include "../AknSkins/group/bld.inf"
+
+#endif
Binary file uiconfig/s60config/src/NHD4_L_B_QW.bmp has changed
Binary file uiconfig/s60config/src/NHD4_P_B.bmp has changed
Binary file uiconfig/s60config/src/QHD_L_B_QW.bmp has changed
Binary file uiconfig/s60config/src/QHD_P_B.bmp has changed
Binary file uiconfig/s60config/src/VGA_L_B_QW.bmp has changed
--- a/uigraphics/AknIcon/SvgtFbsRasterizer/src/SvgtFbsRasterizer.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/uigraphics/AknIcon/SvgtFbsRasterizer/src/SvgtFbsRasterizer.cpp	Mon May 03 13:28:06 2010 +0300
@@ -551,7 +551,7 @@
     TReal R = 1.0;
     TInt HaN = Ha;
     
-    const TInt lastColumn = aSize.iHeight - 1;
+    const TInt lastColumn = aSize.iWidth - 1;
     for ( TInt curRow = 0; curRow < validMargin; curRow++ )
         {
         const TInt y = (aSize.iHeight - 1) - curRow; // h - 1 is the last line
--- a/uigraphics/AknIcon/inc/AknIconLoader.h	Fri Apr 16 16:01:57 2010 +0300
+++ b/uigraphics/AknIcon/inc/AknIconLoader.h	Mon May 03 13:28:06 2010 +0300
@@ -118,7 +118,7 @@
         CAknIconLocationInfo* LoadIconLocationInfoL( const TDesC& aFileName );
         
 #ifdef _NGATESTING        
-        TInt32 GetDerivedIconTypeL(TInt32 aType, const TDesC & aMifFileName);
+        TInt32 GetDerivedIconTypeL(TInt32 aType);
         void SetIconTypeConfig(TInt32 aConfigIconType, const TDesC & aNGATestDirectory);
 #endif
         
--- a/uigraphics/AknIcon/src/AknIconLoader.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/uigraphics/AknIcon/src/AknIconLoader.cpp	Mon May 03 13:28:06 2010 +0300
@@ -339,26 +339,12 @@
     iNGADirectory.Copy(aNGATestDirectory);
     }
 
-TInt32 CAknIconLoader::GetDerivedIconTypeL(TInt32 aType, const TDesC & aMifFileName)
+TInt32 CAknIconLoader::GetDerivedIconTypeL(TInt32 aType)
     {
     if (aType != EIconFormatBMP &&
         aType != EIconFormatNVG)
         {
-        if (iConfigIconType != -1)
-            {
-            aType = iConfigIconType;
-            }
-
-        if (aType != EIconFormatNGA)
-            {
-            TInt NGADirectoryLength = iNGADirectory.Length();
-            if ( NGADirectoryLength > 0 && 
-                 NGADirectoryLength < aMifFileName.Length() && 
-                 aMifFileName.Left(NGADirectoryLength).CompareF(iNGADirectory) == 0 )
-                {
                 aType = EIconFormatNGA;
-                }
-            }
         }
     
     return aType;
--- a/uigraphics/AknIcon/srvsrc/AknIconDataPreserver.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/uigraphics/AknIcon/srvsrc/AknIconDataPreserver.cpp	Mon May 03 13:28:06 2010 +0300
@@ -192,6 +192,7 @@
             {
             iHandler->UnprepareIcon( item->iHandle );
             delete item;
+            item = 0;
             iItems.Remove( index );
             }
         }
--- a/uigraphics/AknIcon/srvsrc/AknIconSrvUtils.cpp	Fri Apr 16 16:01:57 2010 +0300
+++ b/uigraphics/AknIcon/srvsrc/AknIconSrvUtils.cpp	Mon May 03 13:28:06 2010 +0300
@@ -53,7 +53,7 @@
     TInt type = aLoader->IconTypeL( aParams.iBitmapId );
     
 #ifdef _NGATESTING        
-    type = aLoader->GetDerivedIconTypeL(type, aParams.iFileName);
+    type = aLoader->GetDerivedIconTypeL(type);
 #endif
     
     // Check if handler is already present, if so then return with same pointer
@@ -91,7 +91,9 @@
         }
 
     TInt type = aLoader->IconTypeL( aIconId );
-
+#ifdef _NGATESTING        
+    type = aLoader->GetDerivedIconTypeL(type);
+#endif
     if ( !aHandler )
         {
         aHandler = AknIconFormatHandlerFactory::NewIconFormatHandlerL( type );
--- a/uiresources_pub/scalable_icons_api/inc/AknInternalIconUtils.h	Fri Apr 16 16:01:57 2010 +0300
+++ b/uiresources_pub/scalable_icons_api/inc/AknInternalIconUtils.h	Mon May 03 13:28:06 2010 +0300
@@ -20,6 +20,7 @@
 
 #ifndef AKN_INTERNAL_ICON_UTILS_H
 #define AKN_INTERNAL_ICON_UTILS_H
+class CFbsBitmap;
 
 class AknInternalIconUtils
     {
--- a/uiresources_pub/scalable_icons_api/scalable_icons_api.metaxml	Fri Apr 16 16:01:57 2010 +0300
+++ b/uiresources_pub/scalable_icons_api/scalable_icons_api.metaxml	Mon May 03 13:28:06 2010 +0300
@@ -1,7 +1,7 @@
 <?xml version="1.0" ?>
 <api id="50ba4fd3c4c588f11d01bfead8725867" dataversion="2.0">
   <name>Scalable Icons API</name>
-  <description></description>
+  <description>Provides a framework to create the scalable icons</description>
   <type>c++</type>
   <collection>domain</collection>
   <libs>