--- a/toolsandutils/e32tools/elf2e32/source/h_utl.cpp Fri Jun 25 18:24:47 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,260 +0,0 @@
-// Copyright (c) 2005-2009 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:
-// Implementation of the e32 image version for e32 image dump for the elf2e32 tool
-// @internalComponent
-// @released
-//
-//
-
-#include <stdlib.h>
-#include <stdio.h>
-#include "h_utl.h"
-
-/**
-Function to check bracketed hex i.e '{', '}'
-
-@internalComponent
-@released
-
-@param aTemp
-@param aBrackets
-@param aDigits
-@param aValue
-
-@return True if the value passed in is a bracketed hex.
-*/
-TBool IsBracketedHex(const char* aTemp, const char* aBrackets, TInt aDigits, TUint32& aValue)
-{
- if (aTemp[0]!=aBrackets[0] || aTemp[1+aDigits]!=aBrackets[1])
- return 0;
- TInt i;
- TUint32 x = 0;
- for (i=1; i<=aDigits; ++i)
- {
- TInt c = aTemp[i];
- if (c>='a' && c<='z') c-=32;
- if (c<'0' || (c>'9' && c<'A') || c>'F')
- return 0;
- c-='0';
- if (c>9)
- c-=7;
- x = (x<<4) | (TUint32)c;
- }
- aValue = x;
-
- return 1;
-}
-
-/**
-Function to check the decimal version
-
-@internalComponent
-@released
-
-@param aBegin
-Beginning of the version information
-@param aTemp
-@param aValue
-Holds the hexadecimal value
-@return the checked value.
-*/
-TInt CheckForDecimalVersion(const char* aBegin, const char* aTemp, TUint32& aValue)
-{
- aValue = 0;
- if (aTemp <= aBegin || *aTemp != '}')
- return 0;
- TUint32 v[2] = {0,0};
- TUint32 m = 1;
- TInt pos = 0;
- const char* s0 = aTemp + 1;
- for (--aTemp; aTemp >= aBegin; --aTemp)
- {
- int c = *aTemp;
- if (c >= '0' && c <= '9')
- {
- v[pos] += m * (c - '0');
- if (v[pos] >= 65536u)
- return 0;
- m *= 10;
- }
- else if (c == '.')
- {
- m = 1;
- if (++pos >= 2)
- return 0;
- }
- else if (c == '{')
- break;
- else
- return 0;
- }
- if (aTemp < aBegin)
- return 0;
-
- aValue = (v[1] << 16) | v[0];
-
- return s0 - aTemp;
-}
-
-/**
-Function to Parse a filename and convert decimal version number to hex
-
-@internalComponent
-@released
-
-@param aName
-Filename to be parsed
-
-@return the converted name wherein the decimal number is converted to hex.
-*/
-char* NormaliseFileName(const char* aName)
-{
- TFileNameInfo f(aName, 0);
- TInt nl = f.iBaseLength;
- TInt el = f.iTotalLength - f.iExtPos;
- TInt tl = nl + el;
- if (f.iFlags & EVerPresent)
- tl += 10;
- char* t = new char[tl + 1];
- if (t)
- {
- memcpy(t, aName, nl);
- if (f.iFlags & EVerPresent)
- sprintf(t + nl, "{%08x}%s", (TInt)f.iModuleVersion, aName + f.iExtPos);
- else if (el)
- memcpy(t + nl, aName + f.iExtPos, el);
- t[tl] = 0;
- }
-
- return t;
-}
-
-/**
-Constructor for Class TFileNameInfo
-
-@internalComponent
-@released
-
-@param aFileName
-Filename to be parsed
-@param aLookForUid
-*/
-TFileNameInfo::TFileNameInfo(const char* aFileName, TBool aLookForUid)
-{
- iFileName = aFileName;
- TInt l = strlen(aFileName);
- iTotalLength = l;
- TInt remain = l;
- iFlags = 0;
- iUid3 = 0;
- iModuleVersion = 0;
- iBaseLength = l;
- iExtPos = l;
- const char* s = iFileName + l;
- for (; s>=iFileName && *s!='.' && *s!='}' && (!aLookForUid || *s!=']'); --s)
- {
- }
-
- if (s<iFileName)
- return;
- if (*s == '.')
- {
- iExtPos = s - iFileName;
- if (iExtPos == 0)
- {
- iBaseLength = 0;
- return;
- }
- remain = iExtPos;
- --s;
- }
- else if (s != iFileName + l)
- return;
-
- if (aLookForUid && remain>=10 && IsBracketedHex(s-9, "[]", 8, iUid3))
- {
- iFlags |= EUidPresent;
- remain -= 10;
- s -= 10;
- }
-
- if (remain>=10 && IsBracketedHex(s-9, "{}", 8, iModuleVersion))
- {
- iFlags |= EVerPresent;
- remain -= 10;
- s -= 10;
- }
- else
- {
- TInt n = CheckForDecimalVersion(iFileName, s, iModuleVersion);
- if (n>0)
- {
- iFlags |= EVerPresent;
- remain -= n;
- s -= n;
- }
- }
- iBaseLength = remain;
-}
-
-/*-------------------------------------------------------------------------
-String comparison on Linux seems to be a little half-baked.
--------------------------------------------------------------------------*/
-#ifdef __LINUX__
-
-int stricmp(const char *a, const char *b)
- {
- unsigned char ca,cb;
-
- do {
- ca = *a++;
- cb = *b++;
- ca = tolower(ca);
- cb = tolower(cb);
- }
- while((ca == cb) && (ca));
- return (int) ca-cb;
- }
-
-int strnicmp(const char *a, const char *b, int n)
- {
- unsigned char ca,cb;
- int i = 0;
-
- do {
- if (++i > n) return 0;
- ca = *a++;
- cb = *b++;
- ca = tolower(ca);
- cb = tolower(cb);
- }
- while((ca == cb) && (ca));
- return (int) ca-cb;
- }
-
-char* strupr(char *a)
- {
- char *ret = a;
-
- while (*a)
- {
- *a = toupper(*a);
- a++;
- }
-
- return ret;
- }
-
-
-#endif