diff options
Diffstat (limited to 'data/sqlite3/tempdir.diff')
-rw-r--r-- | data/sqlite3/tempdir.diff | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/data/sqlite3/tempdir.diff b/data/sqlite3/tempdir.diff new file mode 100644 index 000000000..b4762ac44 --- /dev/null +++ b/data/sqlite3/tempdir.diff @@ -0,0 +1,67 @@ +diff -ru sqlite-3.5.9/Makefile.in sqlite-3.5.9+iPhone/Makefile.in +--- sqlite-3.5.9/Makefile.in 2008-05-12 17:10:26.000000000 +0000 ++++ sqlite-3.5.9+iPhone/Makefile.in 2008-08-01 08:21:45.000000000 +0000 +@@ -413,10 +413,12 @@ + + libsqlite3.la: $(LIBOBJ) + $(LTLINK) -o $@ $(LIBOBJ) $(TLIBS) \ ++ -framework CoreFoundation -framework Foundation \ + ${ALLOWRELEASE} -rpath "$(libdir)" -version-info "8:6:8" + + libtclsqlite3.la: tclsqlite.lo libsqlite3.la + $(LTLINK) -o $@ tclsqlite.lo \ ++ -framework CoreFoundation -framework Foundation \ + $(LIBOBJ) @TCL_STUB_LIB_SPEC@ $(TLIBS) \ + -rpath "$(libdir)/sqlite" \ + -version-info "8:6:8" +diff -ru sqlite-3.5.9/src/os_unix.c sqlite-3.5.9+iPhone/src/os_unix.c +--- sqlite-3.5.9/src/os_unix.c 2008-05-13 12:51:29.000000000 +0000 ++++ sqlite-3.5.9+iPhone/src/os_unix.c 2008-08-01 08:18:14.000000000 +0000 +@@ -75,6 +75,10 @@ + */ + #define MAX_PATHNAME 512 + ++#ifdef __APPLE__ ++#import <CoreServices/CoreServices.h> ++#endif ++ + + /* + ** The unixFile structure is subclass of sqlite3_file specific for the unix +@@ -2497,6 +2501,7 @@ + static int unixGetTempname(sqlite3_vfs *pVfs, int nBuf, char *zBuf){ + static const char *azDirs[] = { + 0, ++ 0, + "/var/tmp", + "/usr/tmp", + "/tmp", +@@ -2509,6 +2514,11 @@ + int i, j; + struct stat buf; + const char *zDir = "."; ++#ifdef __APPLE__ ++ CFStringRef cfstr; ++ CFIndex maxsize; ++ char *cstr; ++#endif + + /* It's odd to simulate an io-error here, but really this is just + ** using the io-error infrastructure to test that SQLite handles this +@@ -2516,6 +2526,16 @@ + */ + SimulateIOError( return SQLITE_ERROR ); + ++#ifdef __APPLE__ ++ if (azDirs[1] == NULL) { ++ cfstr = (CFStringRef) NSTemporaryDirectory(); ++ maxsize = CFStringGetMaximumSizeForEncoding(CFStringGetLength(cfstr), kCFStringEncodingUTF8) + 1; ++ cstr = malloc(maxsize); ++ CFStringGetCString(cfstr, cstr, maxsize, kCFStringEncodingUTF8); ++ azDirs[1] = cstr; ++ } ++#endif ++ + azDirs[0] = sqlite3_temp_directory; + for(i=0; i<sizeof(azDirs)/sizeof(azDirs[0]); i++){ + if( azDirs[i]==0 ) continue; |