|
From: <cre...@us...> - 2007-11-27 18:56:42
|
Revision: 1786
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1786&view=rev
Author: creecode
Date: 2007-11-27 10:56:45 -0800 (Tue, 27 Nov 2007)
Log Message:
-----------
in deletefile function, for Mac, call FSDeleteContainer when deleting folders, this seems to solve a problem which FSDeleteObject has running into locked files
Modified Paths:
--------------
Frontier/branches/IUDA_Desktop/Common/source/file.c
Modified: Frontier/branches/IUDA_Desktop/Common/source/file.c
===================================================================
--- Frontier/branches/IUDA_Desktop/Common/source/file.c 2007-11-25 23:12:54 UTC (rev 1785)
+++ Frontier/branches/IUDA_Desktop/Common/source/file.c 2007-11-27 18:56:45 UTC (rev 1786)
@@ -759,6 +759,10 @@
boolean deletefile ( const ptrfilespec fs ) {
//
+ // 2007-11-27 creedon: for Mac, call FSDeleteContainer when deleting
+ // folders, this seems to solve a problem which
+ // FSDeleteObject has running into locked files.
+ //
// 2006-06-26 creedon: for Mac, FSRef-ized
//
// 5.0.1 dmb: always setfserror param
@@ -769,13 +773,25 @@
#ifdef MACVERSION
OSErr err;
-
+ boolean fl;
+
setfserrorparam ( fs ); // in case error message takes a filename parameter
-
- FSClearNameLocked ( &( *fs ).fsref );
- err = FSDeleteObject ( &( *fs ).fsref );
+ if ( ! fileisfolder ( fs, &fl ) )
+ return ( false );
+
+ if ( fl )
+ err = FSDeleteContainer ( &( *fs ).fsref );
+
+ else {
+
+ FSClearNameLocked ( &( *fs ).fsref );
+
+ err = FSDeleteObject ( &( *fs ).fsref );
+
+ }
+
return ( ! oserror ( err ) );
#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|