Bugzilla – Attachment 112473 Details for
Bug 75467
OS X integration: selecting a file in Open File dialog or merely viewing a folder in Save File dialog adds resource fork, changes size and mod date (10.6/10.7)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Commit aa539f6 responsible for bug in Open dialog
LO_aa539f6.txt (text/plain), 4.54 KB, created by
Peter Nowee
on 2015-01-19 14:16:51 UTC
(
hide
)
Description:
Commit aa539f6 responsible for bug in Open dialog
Filename:
MIME Type:
Creator:
Peter Nowee
Created:
2015-01-19 14:16:51 UTC
Size:
4.54 KB
patch
obsolete
>commit aa539f6c9d37f5eeef56a468f7009c542fddc02a >Author: Tor Lillqvist <tml@iki.fi> >Date: Sun Jun 16 11:02:32 2013 +0300 > > Don't use deprecated API for OS X alias resolving > > Change-Id: Ifaaec1863f12cd73d0a77c3367935f57675157e2 > >diff --git a/sal/osl/unx/system.c b/sal/osl/unx/system.c >index 1e9e249..a857769 100644 >--- a/sal/osl/unx/system.c >+++ b/sal/osl/unx/system.c >@@ -135,14 +135,11 @@ struct hostent *gethostbyname_r(const char *name, struct hostent *result, > #if defined(MACOSX) > /* > * Add support for resolving Mac native alias files (not the same as unix alias files) >+ * (what are "unix alias files"?) > * returns 0 on success. > */ > int macxp_resolveAlias(char *path, int buflen) > { >- FSRef aFSRef; >- OSStatus nErr; >- Boolean bFolder; >- Boolean bAliased; > char *unprocessedPath = path; > > if ( *unprocessedPath == '/' ) >@@ -155,50 +152,65 @@ int macxp_resolveAlias(char *path, int buflen) > if ( unprocessedPath ) > *unprocessedPath = '\0'; > >- nErr = noErr; >- bFolder = FALSE; >- bAliased = FALSE; >- if ( FSPathMakeRef( (const UInt8 *)path, &aFSRef, 0 ) == noErr ) >+ CFStringRef cfpath = CFStringCreateWithCString( NULL, path, kCFStringEncodingUTF8 ); >+ CFURLRef cfurl = CFURLCreateWithFileSystemPath( NULL, cfpath, kCFURLPOSIXPathStyle, false ); >+ CFRelease( cfpath ); >+ CFErrorRef cferror; >+ CFDataRef cfbookmark = CFURLCreateBookmarkDataFromFile( NULL, cfurl, &cferror ); >+ CFRelease( cfurl ); >+ if ( cfbookmark == NULL ) > { >- nErr = FSResolveAliasFileWithMountFlags( &aFSRef, TRUE, &bFolder, &bAliased, kResolveAliasFileNoUI ); >- if ( nErr == nsvErr ) >+ CFRelease( cferror ); >+ } >+ else >+ { >+ Boolean isStale; >+ cfurl = CFURLCreateByResolvingBookmarkData( NULL, cfbookmark, kCFBookmarkResolutionWithoutUIMask, >+ NULL, NULL, &isStale, &cferror ); >+ CFRelease( cfbookmark ); >+ if ( cfurl == NULL ) > { >- errno = ENOENT; >- nRet = -1; >+ CFRelease( cferror ); > } >- else if ( nErr == noErr && bAliased ) >+ else > { >- char tmpPath[ PATH_MAX ]; >- if ( FSRefMakePath( &aFSRef, (UInt8 *)tmpPath, PATH_MAX ) == noErr ) >+ cfpath = CFURLCopyFileSystemPath( cfurl, kCFURLPOSIXPathStyle ); >+ CFRelease( cfurl ); >+ if ( cfpath != NULL ) > { >- int nLen = strlen( tmpPath ) + ( unprocessedPath ? strlen( unprocessedPath + 1 ) + 1 : 0 ); >- if ( nLen < buflen && nLen < PATH_MAX ) >+ char tmpPath[ PATH_MAX ]; >+ if ( CFStringGetCString( cfpath, tmpPath, PATH_MAX, kCFStringEncodingUTF8 ) ) > { >- if ( unprocessedPath ) >+ int nLen = strlen( tmpPath ) + ( unprocessedPath ? strlen( unprocessedPath + 1 ) + 1 : 0 ); >+ if ( nLen < buflen && nLen < PATH_MAX ) > { >- int nTmpPathLen = strlen( tmpPath ); >- strcat( tmpPath, "/" ); >- strcat( tmpPath, unprocessedPath + 1 ); >- strcpy( path, tmpPath); >- unprocessedPath = path + nTmpPathLen; >+ if ( unprocessedPath ) >+ { >+ int nTmpPathLen = strlen( tmpPath ); >+ strcat( tmpPath, "/" ); >+ strcat( tmpPath, unprocessedPath + 1 ); >+ strcpy( path, tmpPath); >+ unprocessedPath = path + nTmpPathLen; >+ } >+ else if ( !unprocessedPath ) >+ { >+ strcpy( path, tmpPath ); >+ } > } >- else if ( !unprocessedPath ) >+ else > { >- strcpy( path, tmpPath); >+ errno = ENAMETOOLONG; >+ nRet = -1; > } > } >- else >- { >- errno = ENAMETOOLONG; >- nRet = -1; >- } >+ CFRelease( cfpath ); > } > } > } > > if ( unprocessedPath ) > *unprocessedPath++ = '/'; >- } >+ } > > return nRet; > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 75467
:
95178
|
112354
|
112355
|
112472
| 112473