mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
Pgindent run for 8.0.
This commit is contained in:
@ -6,7 +6,7 @@
|
||||
*
|
||||
* Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/port/open.c,v 1.3 2004/08/29 04:13:12 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/port/open.c,v 1.4 2004/08/29 05:07:02 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -21,20 +21,25 @@
|
||||
static int
|
||||
openFlagsToCreateFileFlags(int openFlags)
|
||||
{
|
||||
switch (openFlags & (O_CREAT|O_TRUNC|O_EXCL))
|
||||
switch (openFlags & (O_CREAT | O_TRUNC | O_EXCL))
|
||||
{
|
||||
case 0:
|
||||
case O_EXCL: return OPEN_EXISTING;
|
||||
case O_EXCL:
|
||||
return OPEN_EXISTING;
|
||||
|
||||
case O_CREAT: return OPEN_ALWAYS;
|
||||
case O_CREAT:
|
||||
return OPEN_ALWAYS;
|
||||
|
||||
case O_TRUNC:
|
||||
case O_TRUNC|O_EXCL: return TRUNCATE_EXISTING;
|
||||
case O_TRUNC | O_EXCL:
|
||||
return TRUNCATE_EXISTING;
|
||||
|
||||
case O_CREAT|O_TRUNC: return CREATE_ALWAYS;
|
||||
case O_CREAT | O_TRUNC:
|
||||
return CREATE_ALWAYS;
|
||||
|
||||
case O_CREAT|O_EXCL:
|
||||
case O_CREAT|O_TRUNC|O_EXCL: return CREATE_NEW;
|
||||
case O_CREAT | O_EXCL:
|
||||
case O_CREAT | O_TRUNC | O_EXCL:
|
||||
return CREATE_NEW;
|
||||
}
|
||||
|
||||
/* will never get here */
|
||||
@ -42,46 +47,53 @@ openFlagsToCreateFileFlags(int openFlags)
|
||||
}
|
||||
|
||||
/*
|
||||
* - file attribute setting, based on fileMode?
|
||||
* - handle other flags? (eg FILE_FLAG_NO_BUFFERING/FILE_FLAG_WRITE_THROUGH)
|
||||
* - file attribute setting, based on fileMode?
|
||||
* - handle other flags? (eg FILE_FLAG_NO_BUFFERING/FILE_FLAG_WRITE_THROUGH)
|
||||
*/
|
||||
int win32_open(const char* fileName, int fileFlags, ...)
|
||||
int
|
||||
win32_open(const char *fileName, int fileFlags,...)
|
||||
{
|
||||
int fd;
|
||||
HANDLE h;
|
||||
int fd;
|
||||
HANDLE h;
|
||||
SECURITY_ATTRIBUTES sa;
|
||||
|
||||
/* Check that we can handle the request */
|
||||
assert((fileFlags & ((O_RDONLY|O_WRONLY|O_RDWR) | O_APPEND |
|
||||
(O_RANDOM|O_SEQUENTIAL|O_TEMPORARY) |
|
||||
_O_SHORT_LIVED |
|
||||
(O_CREAT|O_TRUNC|O_EXCL) | (O_TEXT|O_BINARY))) == fileFlags);
|
||||
assert((fileFlags & ((O_RDONLY | O_WRONLY | O_RDWR) | O_APPEND |
|
||||
(O_RANDOM | O_SEQUENTIAL | O_TEMPORARY) |
|
||||
_O_SHORT_LIVED |
|
||||
(O_CREAT | O_TRUNC | O_EXCL) | (O_TEXT | O_BINARY))) == fileFlags);
|
||||
|
||||
sa.nLength=sizeof(sa);
|
||||
sa.bInheritHandle=TRUE;
|
||||
sa.lpSecurityDescriptor=NULL;
|
||||
sa.nLength = sizeof(sa);
|
||||
sa.bInheritHandle = TRUE;
|
||||
sa.lpSecurityDescriptor = NULL;
|
||||
|
||||
if ((h = CreateFile(fileName,
|
||||
/* cannot use O_RDONLY, as it == 0 */
|
||||
(fileFlags & O_RDWR) ? (GENERIC_WRITE | GENERIC_READ) :
|
||||
((fileFlags & O_WRONLY) ? GENERIC_WRITE : GENERIC_READ),
|
||||
(FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE),
|
||||
/* cannot use O_RDONLY, as it == 0 */
|
||||
(fileFlags & O_RDWR) ? (GENERIC_WRITE | GENERIC_READ) :
|
||||
((fileFlags & O_WRONLY) ? GENERIC_WRITE : GENERIC_READ),
|
||||
(FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE),
|
||||
&sa,
|
||||
openFlagsToCreateFileFlags(fileFlags),
|
||||
FILE_ATTRIBUTE_NORMAL |
|
||||
((fileFlags & O_RANDOM) ? FILE_FLAG_RANDOM_ACCESS : 0) |
|
||||
((fileFlags & O_SEQUENTIAL) ? FILE_FLAG_SEQUENTIAL_SCAN : 0) |
|
||||
((fileFlags & _O_SHORT_LIVED) ? FILE_ATTRIBUTE_TEMPORARY : 0) |
|
||||
((fileFlags & O_TEMPORARY) ? FILE_FLAG_DELETE_ON_CLOSE : 0),
|
||||
FILE_ATTRIBUTE_NORMAL |
|
||||
((fileFlags & O_RANDOM) ? FILE_FLAG_RANDOM_ACCESS : 0) |
|
||||
((fileFlags & O_SEQUENTIAL) ? FILE_FLAG_SEQUENTIAL_SCAN : 0) |
|
||||
((fileFlags & _O_SHORT_LIVED) ? FILE_ATTRIBUTE_TEMPORARY : 0) |
|
||||
((fileFlags & O_TEMPORARY) ? FILE_FLAG_DELETE_ON_CLOSE : 0),
|
||||
NULL)) == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
switch (GetLastError())
|
||||
{
|
||||
/* EMFILE, ENFILE should not occur from CreateFile. */
|
||||
/* EMFILE, ENFILE should not occur from CreateFile. */
|
||||
case ERROR_PATH_NOT_FOUND:
|
||||
case ERROR_FILE_NOT_FOUND: errno = ENOENT; break;
|
||||
case ERROR_FILE_EXISTS: errno = EEXIST; break;
|
||||
case ERROR_ACCESS_DENIED: errno = EACCES; break;
|
||||
case ERROR_FILE_NOT_FOUND:
|
||||
errno = ENOENT;
|
||||
break;
|
||||
case ERROR_FILE_EXISTS:
|
||||
errno = EEXIST;
|
||||
break;
|
||||
case ERROR_ACCESS_DENIED:
|
||||
errno = EACCES;
|
||||
break;
|
||||
default:
|
||||
errno = EINVAL;
|
||||
}
|
||||
@ -89,9 +101,9 @@ int win32_open(const char* fileName, int fileFlags, ...)
|
||||
}
|
||||
|
||||
/* _open_osfhandle will, on error, set errno accordingly */
|
||||
if ((fd = _open_osfhandle((long)h,fileFlags&O_APPEND)) < 0 ||
|
||||
(fileFlags&(O_TEXT|O_BINARY) && (_setmode(fd,fileFlags&(O_TEXT|O_BINARY)) < 0)))
|
||||
CloseHandle(h); /* will not affect errno */
|
||||
if ((fd = _open_osfhandle((long) h, fileFlags & O_APPEND)) < 0 ||
|
||||
(fileFlags & (O_TEXT | O_BINARY) && (_setmode(fd, fileFlags & (O_TEXT | O_BINARY)) < 0)))
|
||||
CloseHandle(h); /* will not affect errno */
|
||||
return fd;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user