X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/32f3104396bf705c0ba9eee6a851bfe1f20dd3f0..15ba5c2731f1c4a7555408b35c7d593b1cb1a590:/src/common/filefn.cpp diff --git a/src/common/filefn.cpp b/src/common/filefn.cpp index ea1417f900..6d2afb1a79 100644 --- a/src/common/filefn.cpp +++ b/src/common/filefn.cpp @@ -57,6 +57,7 @@ #else #include #include + #include #endif #ifdef __UNIX__ @@ -1057,13 +1058,15 @@ wxCopyFile (const wxString& file1, const wxString& file2) return FALSE; } +#ifndef __VISAGECPP__ +// no chmod in VA. SHould be some permission API for HPFS386 partitions however if ( chmod(file2, fbuf.st_mode) != 0 ) { wxLogSysError(_("Impossible to set permissions for the file '%s'"), file2.c_str()); return FALSE; } - +#endif return TRUE; } @@ -1680,16 +1683,40 @@ wxChar *wxGetWorkingDirectory(wxChar *buf, int sz) #ifdef _MSC_VER if (_getcwd(buf, sz) == NULL) { #elif defined( __WXMAC__) - enum - { - SFSaveDisk = 0x214, CurDirStore = 0x398 - }; - FSSpec cwdSpec ; - - FSMakeFSSpec( - *(short *) SFSaveDisk , *(long *) CurDirStore , NULL , &cwdSpec ) ; - wxString res = wxMacFSSpec2UnixFilename( &cwdSpec ) ; - strcpy( buf , res ) ; - if (0) { + FSSpec cwdSpec ; + FCBPBRec pb; + OSErr error; + Str255 fileName ; + pb.ioNamePtr = (StringPtr) &fileName; + pb.ioVRefNum = 0; + pb.ioRefNum = LMGetCurApRefNum(); + pb.ioFCBIndx = 0; + error = PBGetFCBInfoSync(&pb); + if ( error == noErr ) + { + cwdSpec.vRefNum = pb.ioFCBVRefNum; + cwdSpec.parID = pb.ioFCBParID; + cwdSpec.name[0] = 0 ; + wxString res = wxMacFSSpec2UnixFilename( &cwdSpec ) ; + + strcpy( buf , res ) ; + buf[res.length()-1]=0 ; + } + else + buf[0] = 0 ; + /* + this version will not always give back the application directory on mac + enum + { + SFSaveDisk = 0x214, CurDirStore = 0x398 + }; + FSSpec cwdSpec ; + + FSMakeFSSpec( - *(short *) SFSaveDisk , *(long *) CurDirStore , NULL , &cwdSpec ) ; + wxString res = wxMacFSSpec2UnixFilename( &cwdSpec ) ; + strcpy( buf , res ) ; + */ + if (0) { #elif(__VISAGECPP__) APIRET rc; rc = ::DosQueryCurrentDir( 0 // current drive