# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1268649984 -7200 # Node ID 3a3c1a7fa1e8069739028dd62b8087328cb9fb5d # Parent fa985af7715941fff5ce9bd071a265455c7f8df1 Revision: 201007 Kit: 201010 diff -r fa985af77159 -r 3a3c1a7fa1e8 genericopenlibs/openenvcore/include/wchar.h --- a/genericopenlibs/openenvcore/include/wchar.h Fri Mar 12 15:50:56 2010 +0200 +++ b/genericopenlibs/openenvcore/include/wchar.h Mon Mar 15 12:46:24 2010 +0200 @@ -337,6 +337,7 @@ #define _A_NORMAL 0x0000 //Normal. File has no other attributes set and can be read or written to without restriction. Value: 0x00. #define _A_RDONLY 0x0001 //Read-only. File cannot be opened for writing and a file with the same name cannot be created. Value: 0x01. #define _A_SYSTEM 0x0004 //System file. Not normally seen with the DIR command, unless the /A or /A:S option is used +#define _A_SUBDIR 0x0010 // Subdirectory. IMPORT_C size_t wcslcat(wchar_t *, const wchar_t *, size_t); IMPORT_C size_t wcslcpy(wchar_t *, const wchar_t *, size_t); diff -r fa985af77159 -r 3a3c1a7fa1e8 genericopenlibs/openenvcore/libc/src/wfindfirst.cpp --- a/genericopenlibs/openenvcore/libc/src/wfindfirst.cpp Fri Mar 12 15:50:56 2010 +0200 +++ b/genericopenlibs/openenvcore/libc/src/wfindfirst.cpp Mon Mar 15 12:46:24 2010 +0200 @@ -1,4 +1,4 @@ -// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2005-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" @@ -67,68 +67,115 @@ #include #include -#include #include #include "sysif.h" - +#include #include #include -#define MAXPATHLEN 260 +#define MAXPATHLEN 260 +#define ATTMASK (_A_ARCH|_A_HIDDEN|_A_NORMAL|_A_RDONLY|_A_SYSTEM|_A_SUBDIR ) + +class CFindFileByPath : public CBase + { + public: + CFindFileByPath(RFs& aFs) : iFinder(aFs),iLastCount(-1) + { + } + ~CFindFileByPath() + { + delete iDir; + iDir = NULL; + } + const TEntry& Entry() + { + return (*iDir)[iLastCount]; + } + TInt FindFirst(const TDesC&,const TDesC&); + TInt FindNext(); + private: + TFindFile iFinder; + CDir* iDir; + TInt iLastCount; + TBuf iPath; + }; + +TInt CFindFileByPath::FindFirst(const TDesC &aPattern, const TDesC& aPath) + { + iPath = aPath; + TInt ret = iFinder.FindWildByPath(aPattern,&iPath,iDir); + if(ret != KErrNone) + { + return ret; + } + return FindNext(); + } + +TInt CFindFileByPath::FindNext() + { + TInt count = iDir->Count(); +// Results from the search either in pattern path or in the cwd. + if(++iLastCountname ,(wchar_t *)aFinder.Entry().iName.Ptr()); + TInt k = aFinder.Entry().iName.Size()/sizeof(wchar_t); + aFileinfo->name[k] = L'\0'; + + + aFileinfo->size = aFinder.Entry().iSize; + + // Unmask unnecessary attributes in iAtt. + // All constant definitions are in sync with what is expected in finddata structure. + aFileinfo->attrib = aFinder.Entry().iAtt; + aFileinfo->attrib &= (ATTMASK); + + time_t time_modify = as_time_t(aFinder.Entry().iModified); + aFileinfo->time_write = time_modify; + + aFileinfo->time_create = -1L; + aFileinfo->time_access = -1L; + + } extern "C" { - //RFs FileServerSession ; + //RFs FileServerSession ; EXPORT_C intptr_t wfindfirst(const wchar_t* filespec, struct _wfinddata_t* fileinfo) { if(!filespec||!fileinfo) return EINVAL; - long handle = -1; + long handle = -1; wchar_t *dirf =(wchar_t*)malloc(MAXPATHLEN * sizeof(wchar_t)); // getting the cuurent directory wgetcwd(dirf,MAXPATHLEN); TPtrC16 dird((const TUint16*)dirf); // converting it into descriptor TPtrC16 fsd((const TUint16*)filespec ); - TUidType uid(KNullUid, KNullUid, KNullUid); - //FileServerSession.Connect() ; - - CFindFileByType *temp1= new CFindFileByType(Backend()->FileSession()); // #include + + CFindFileByPath *temp1= new CFindFileByPath(Backend()->FileSession()); if(temp1== NULL) - { - return EINVAL; - } - int k = temp1->FindFirst(fsd,dird,uid); + { + return EINVAL; + } + int k = temp1->FindFirst(fsd,dird); if(k==KErrNone) - { - - wcscpy(fileinfo->name ,(wchar_t *)temp1->Entry().iName.Ptr()); - k = temp1->Entry().iName.Size()/sizeof(wchar_t); - fileinfo->name[k] = L'\0'; - - - fileinfo->size = temp1->Entry().iSize; - - fileinfo->attrib = temp1->Entry().iAtt; // we have to eport defined - //also like KEntryAttNormal all this are availabel in f32file.h one - //attribte _A_SUBDIR will not be suuported - - time_t time_modify = as_time_t(temp1->Entry().iModified); - fileinfo->time_write = time_modify; - - fileinfo->time_create = -1L; - fileinfo->time_access = -1L; - - - handle = reinterpret_cast(temp1); - } + { + UpdateFileInfo(fileinfo,*temp1); + handle = reinterpret_cast(temp1); + } else - { - handle = -1; - errno = ENOENT ; - } - delete dirf; // delete directory pointer - //FileServerSession.Close(); - + { + handle = -1; + delete temp1; + errno = ENOENT ; + } + delete dirf; // delete directory pointer return handle; } @@ -136,37 +183,33 @@ EXPORT_C intptr_t wfindnext(intptr_t handle, struct _wfinddata_t * fileinfo) { - if((handle<=0)||!fileinfo) - return EINVAL; - - CFindFileByType *temp1 = reinterpret_cast(handle); - int k = temp1->FindNext(); - if(KErrNone==k) - { - wcscpy(fileinfo->name , (wchar_t *)temp1->Entry().iName.Ptr()); - k = temp1->Entry().iName.Size()/sizeof(wchar_t); - fileinfo->name[k] = L'\0'; - fileinfo->size = temp1->Entry().iSize; - return 0; - } - else - { - errno = ENOENT ; - return -1; - } + if((handle<=0)||!fileinfo) + return EINVAL; + + CFindFileByPath *temp1 = reinterpret_cast(handle); + int k = temp1->FindNext(); + if(KErrNone==k) + { + UpdateFileInfo(fileinfo,*temp1); + return 0; + } + else + { + errno = ENOENT ; + return -1; + } } - + EXPORT_C int findclose( intptr_t handle) { - if(handle <=0) - { - errno = ENOENT ; - return -1; - } - CFindFileByType *temp1 = reinterpret_cast(handle); - //FileServerSession.Close(); - delete temp1; - return 0; + if(handle <=0) + { + errno = ENOENT ; + return -1; + } + CFindFileByPath *temp1 = reinterpret_cast(handle); + delete temp1; + return 0; } } diff -r fa985af77159 -r 3a3c1a7fa1e8 genericservices/s60compatibilityheaders/hwrm/HWRMPluginService.inl --- a/genericservices/s60compatibilityheaders/hwrm/HWRMPluginService.inl Fri Mar 12 15:50:56 2010 +0200 +++ b/genericservices/s60compatibilityheaders/hwrm/HWRMPluginService.inl Mon Mar 15 12:46:24 2010 +0200 @@ -11,15 +11,6 @@ // Contributors: // // Description: -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of the License "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: -// // stub header file - use Symbian supplied version instead #include diff -r fa985af77159 -r 3a3c1a7fa1e8 genericservices/taskscheduler/group/backup_registration.xml --- a/genericservices/taskscheduler/group/backup_registration.xml Fri Mar 12 15:50:56 2010 +0200 +++ b/genericservices/taskscheduler/group/backup_registration.xml Mon Mar 15 12:46:24 2010 +0200 @@ -2,10 +2,10 @@