Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(295)

Unified Diff: third_party/sqlite/mac_time_machine.patch

Issue 694353003: Get `gn gen` to succeed on Windows (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: remove GYP_DEFINES code Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/sqlite/icu-shell.patch ('k') | third_party/sqlite/memcmp.patch » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/sqlite/mac_time_machine.patch
diff --git a/third_party/sqlite/mac_time_machine.patch b/third_party/sqlite/mac_time_machine.patch
new file mode 100644
index 0000000000000000000000000000000000000000..bfd113b6d1c52642908412cecbfdc75a86a3c310
--- /dev/null
+++ b/third_party/sqlite/mac_time_machine.patch
@@ -0,0 +1,103 @@
+Index: src/sqliteInt.h
+===================================================================
+--- src/sqliteInt.h (revision 87306)
++++ src/sqliteInt.h (working copy)
+@@ -2522,6 +2522,16 @@
+ #endif
+
+ /*
++** The CoreServices.h and CoreFoundation.h headers are needed for excluding a
++** -journal file from Time Machine backups when its associated database has
++** previously been excluded by the client code.
++*/
++#if defined(__APPLE__)
++#include <CoreServices/CoreServices.h>
++#include <CoreFoundation/CoreFoundation.h>
++#endif
++
++/*
+ ** The following macros mimic the standard library functions toupper(),
+ ** isspace(), isalnum(), isdigit() and isxdigit(), respectively. The
+ ** sqlite versions only work for ASCII characters, regardless of locale.
+Index: src/pager.c
+===================================================================
+--- src/pager.c (revision 87306)
++++ src/pager.c (working copy)
+@@ -5130,7 +5130,21 @@
+ }
+ }
+
++#if defined(__APPLE__)
+ /*
++** Create and return a CFURLRef given a cstring containing the path to a file.
++*/
++static CFURLRef create_cfurl_from_cstring(const char* filePath){
++ CFStringRef urlString = CFStringCreateWithFileSystemRepresentation(
++ kCFAllocatorDefault, filePath);
++ CFURLRef urlRef = CFURLCreateWithFileSystemPath(kCFAllocatorDefault,
++ urlString, kCFURLPOSIXPathStyle, FALSE);
++ CFRelease(urlString);
++ return urlRef;
++}
++#endif
++
++/*
+ ** This function is called at the start of every write transaction.
+ ** There must already be a RESERVED or EXCLUSIVE lock on the database
+ ** file when this routine is called.
+@@ -5189,6 +5203,24 @@
+ #else
+ rc = sqlite3OsOpen(pVfs, pPager->zJournal, pPager->jfd, flags, 0);
+ #endif
++#if defined(__APPLE__)
++ /* Set the TimeMachine exclusion metadata for the journal if it has
++ ** been set for the database. Only do this for unix-type vfs
++ ** implementations. */
++ if( rc==SQLITE_OK && pPager->zFilename!=NULL
++ && strlen(pPager->zFilename)>0
++ && strncmp(pVfs->zName, "unix", 4)==0
++ && ( pVfs->zName[4]=='-' || pVfs->zName[4]=='\0' ) ){
++ CFURLRef database = create_cfurl_from_cstring(pPager->zFilename);
++ if( CSBackupIsItemExcluded(database, NULL) ){
++ CFURLRef journal = create_cfurl_from_cstring(pPager->zJournal);
++ /* Ignore errors from the following exclusion call. */
++ CSBackupSetItemExcluded(journal, TRUE, FALSE);
++ CFRelease(journal);
++ }
++ CFRelease(database);
++ }
++#endif
+ }
+ assert( rc!=SQLITE_OK || isOpen(pPager->jfd) );
+ }
+Index: ext/fts3/fts3_porter.c
+===================================================================
+--- ext/fts3/fts3_porter.c (revision 87306)
++++ ext/fts3/fts3_porter.c (working copy)
+@@ -129,7 +129,7 @@
+ /*
+ ** Vowel or consonant
+ */
+-static const char cType[] = {
++static const char vOrCType[] = {
+ 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0,
+ 1, 1, 1, 2, 1
+ };
+@@ -153,7 +153,7 @@
+ char x = *z;
+ if( x==0 ) return 0;
+ assert( x>='a' && x<='z' );
+- j = cType[x-'a'];
++ j = vOrCType[x-'a'];
+ if( j<2 ) return j;
+ return z[1]==0 || isVowel(z + 1);
+ }
+@@ -162,7 +162,7 @@
+ char x = *z;
+ if( x==0 ) return 0;
+ assert( x>='a' && x<='z' );
+- j = cType[x-'a'];
++ j = vOrCType[x-'a'];
+ if( j<2 ) return 1-j;
+ return isConsonant(z + 1);
+ }
« no previous file with comments | « third_party/sqlite/icu-shell.patch ('k') | third_party/sqlite/memcmp.patch » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698