Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Specify ASCII versions of Win32 API functions. (CVS 1785) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
48b31540db5f0212a7e37e4833b76061 |
User & Date: | drh 2004-06-30 14:29:00.000 |
Context
2004-06-30
| ||
22:35 | Up the version number to 3.0.2 and make changes to the website in preparation for the first beta release. (CVS 1786) (check-in: 0b73b7a074 user: drh tags: trunk) | |
14:29 | Specify ASCII versions of Win32 API functions. (CVS 1785) (check-in: 48b31540db user: drh tags: trunk) | |
13:28 | Fix a typo in capi3.tcl. (CVS 1784) (check-in: 982389b25d user: danielk1977 tags: trunk) | |
Changes
Changes to src/os_win.c.
︙ | ︙ | |||
30 31 32 33 34 35 36 | */ #include "os_common.h" /* ** Delete the named file */ int sqlite3OsDelete(const char *zFilename){ | | | | 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | */ #include "os_common.h" /* ** Delete the named file */ int sqlite3OsDelete(const char *zFilename){ DeleteFileA(zFilename); TRACE2("DELETE \"%s\"\n", zFilename); return SQLITE_OK; } /* ** Return TRUE if the named file exists. */ int sqlite3OsFileExists(const char *zFilename){ return GetFileAttributesA(zFilename) != 0xffffffff; } /* ** Attempt to open a file for both reading and writing. If that ** fails, try opening it read-only. If the file does not exist, ** try to create it. ** |
︙ | ︙ | |||
62 63 64 65 66 67 68 | int sqlite3OsOpenReadWrite( const char *zFilename, OsFile *id, int *pReadonly ){ HANDLE h; assert( !id->isOpen ); | | | | 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | int sqlite3OsOpenReadWrite( const char *zFilename, OsFile *id, int *pReadonly ){ HANDLE h; assert( !id->isOpen ); h = CreateFileA(zFilename, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS, NULL ); if( h==INVALID_HANDLE_VALUE ){ h = CreateFileA(zFilename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS, NULL ); |
︙ | ︙ | |||
120 121 122 123 124 125 126 | assert( !id->isOpen ); if( delFlag ){ fileflags = FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_RANDOM_ACCESS | FILE_FLAG_DELETE_ON_CLOSE; }else{ fileflags = FILE_FLAG_RANDOM_ACCESS; } | | | 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | assert( !id->isOpen ); if( delFlag ){ fileflags = FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_RANDOM_ACCESS | FILE_FLAG_DELETE_ON_CLOSE; }else{ fileflags = FILE_FLAG_RANDOM_ACCESS; } h = CreateFileA(zFilename, GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, fileflags, NULL ); |
︙ | ︙ | |||
150 151 152 153 154 155 156 | ** On success, write the file handle into *id and return SQLITE_OK. ** ** On failure, return SQLITE_CANTOPEN. */ int sqlite3OsOpenReadOnly(const char *zFilename, OsFile *id){ HANDLE h; assert( !id->isOpen ); | | | 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | ** On success, write the file handle into *id and return SQLITE_OK. ** ** On failure, return SQLITE_CANTOPEN. */ int sqlite3OsOpenReadOnly(const char *zFilename, OsFile *id){ HANDLE h; assert( !id->isOpen ); h = CreateFileA(zFilename, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS, NULL ); |
︙ | ︙ | |||
204 205 206 207 208 209 210 | int sqlite3OsTempFileName(char *zBuf){ static char zChars[] = "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "0123456789"; int i, j; char zTempPath[SQLITE_TEMPNAME_SIZE]; | | | 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 | int sqlite3OsTempFileName(char *zBuf){ static char zChars[] = "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "0123456789"; int i, j; char zTempPath[SQLITE_TEMPNAME_SIZE]; GetTempPathA(SQLITE_TEMPNAME_SIZE-30, zTempPath); for(i=strlen(zTempPath); i>0 && zTempPath[i-1]=='\\'; i--){} zTempPath[i] = 0; for(;;){ sprintf(zBuf, "%s\\"TEMP_FILE_PREFIX, zTempPath); j = strlen(zBuf); sqlite3Randomness(15, &zBuf[j]); for(i=0; i<15; i++, j++){ |
︙ | ︙ | |||
663 664 665 666 667 668 669 | ** The calling function is responsible for freeing this space once it ** is no longer needed. */ char *sqlite3OsFullPathname(const char *zRelative){ char *zNotUsed; char *zFull; int nByte; | | | | 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 | ** The calling function is responsible for freeing this space once it ** is no longer needed. */ char *sqlite3OsFullPathname(const char *zRelative){ char *zNotUsed; char *zFull; int nByte; nByte = GetFullPathNameA(zRelative, 0, 0, &zNotUsed) + 1; zFull = sqliteMalloc( nByte ); if( zFull==0 ) return 0; GetFullPathNameA(zRelative, nByte, zFull, &zNotUsed); return zFull; } /* ** The following variable, if set to a non-zero value, becomes the result ** returned from sqlite3OsCurrentTime(). This is used for testing. */ |
︙ | ︙ |