diff -r 5d7fec11a5ce -r 03d9ade4748d networkingutils/ipadministrationtool/src/uniload.cpp --- a/networkingutils/ipadministrationtool/src/uniload.cpp Fri Jun 11 16:24:17 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -// Copyright (c) 2004-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: -// uniload.cpp - universal file load (work for narrow or wide builds) -// - -#include "uniload.h" - -HBufC *UnicodeLoad::LoadL(RFs &aFs, const TDesC &aName) - { - RFile pf; - TInt size; - User::LeaveIfError(pf.Open(aFs, aName, EFileShareAny)); - pf.Size(size); - // - // For narrow build, this allocates exactly right amount - // of space, for Unicode build, this allocates the size - // doubled in bytes, which is exactly what we want, if - // we need to widen the narrow Ascii control file (this - // is assumed to be the default case). For UNICODE file - // in UNICODE environment, this allocates too much space. - // - HBufC *data = HBufC::New(size); - - if (data == NULL) - { - pf.Close(); - User::Leave(KErrNoMemory); - } - // - // buf is "native" pointer, either 16 or 8 wide - // - TPtr buf(data->Des()); -#ifdef __WINS__ - buf.Set(data->Des()); // VC6 kludge -#endif - // - // ptr is always 8 wide - // - TPtr8 ptr((TUint8 *)buf.Ptr(), size, size); - pf.Read(ptr); - pf.Close(); - - if (size >= 2 && ptr[0] == 0xFF && ptr[1] == 0xFE) - { - // - // The file is presented as UNICODE text - // (for now, only one byte order supported) - // - size -= 2; -#ifdef _UNICODE - Mem::Copy((TUint8 *)ptr.Ptr(), ptr.Ptr() + 2, size); - buf.SetLength(size / 2); // True number of Unicode characters. -#else - // Trying to load a Unicode file for Narrow build - size = size / 2; - for (TInt i = 1; i < size; ++i) - { - if (ptr[2*i] != 0) - ptr[i] = 0x01; // Substitute too wide stuff with 0x1 - else - ptr[i] = ptr[2*i + 1]; - } - buf.SetLength(size); -#endif - } - else - { - // - // The file is narrow, 8 bit characters - // - buf.SetLength(size); -#ifdef _UNICODE - // Must "widen" the characters for unicode. - for (TInt i = size; --i >= 0; ) - buf[i] = ptr[i]; -#endif - } - return data; - }