mirror of
https://github.com/postgres/postgres.git
synced 2025-07-03 20:02:46 +03:00
Use native Cygwin symlinks so tablespaces work on Win95/98/ME which
don't support junction points. Doesn't affect native Win32.
This commit is contained in:
@ -6,7 +6,7 @@
|
|||||||
* Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/include/port.h,v 1.63 2004/09/27 23:24:37 momjian Exp $
|
* $PostgreSQL: pgsql/src/include/port.h,v 1.64 2004/10/11 22:50:33 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -167,8 +167,6 @@ extern int pclose_check(FILE *stream);
|
|||||||
*/
|
*/
|
||||||
extern int pgrename(const char *from, const char *to);
|
extern int pgrename(const char *from, const char *to);
|
||||||
extern int pgunlink(const char *path);
|
extern int pgunlink(const char *path);
|
||||||
extern int pgsymlink(const char *oldpath, const char *newpath);
|
|
||||||
|
|
||||||
/* Include this first so later includes don't see these defines */
|
/* Include this first so later includes don't see these defines */
|
||||||
#ifdef WIN32_CLIENT_ONLY
|
#ifdef WIN32_CLIENT_ONLY
|
||||||
#include <io.h>
|
#include <io.h>
|
||||||
@ -176,9 +174,19 @@ extern int pgsymlink(const char *oldpath, const char *newpath);
|
|||||||
|
|
||||||
#define rename(from, to) pgrename(from, to)
|
#define rename(from, to) pgrename(from, to)
|
||||||
#define unlink(path) pgunlink(path)
|
#define unlink(path) pgunlink(path)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Cygwin has its own symlinks which work on Win95/98/ME where
|
||||||
|
* junction points don't, so use it instead. We have no way of
|
||||||
|
* knowing what type of system Cygwin binaries will be run on.
|
||||||
|
*/
|
||||||
|
#ifdef WIN32
|
||||||
|
extern int pgsymlink(const char *oldpath, const char *newpath);
|
||||||
#define symlink(oldpath, newpath) pgsymlink(oldpath, newpath)
|
#define symlink(oldpath, newpath) pgsymlink(oldpath, newpath)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
extern bool rmtree(char *path, bool rmtopdir);
|
extern bool rmtree(char *path, bool rmtopdir);
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
* Win32 (NT, Win2k, XP). replace() doesn't work on Win95/98/Me.
|
* Win32 (NT, Win2k, XP). replace() doesn't work on Win95/98/Me.
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/port/dirmod.c,v 1.27 2004/09/27 19:16:02 momjian Exp $
|
* $PostgreSQL: pgsql/src/port/dirmod.c,v 1.28 2004/10/11 22:50:48 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -142,6 +142,7 @@ pgunlink(const char *path)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef WIN32 /* Cygwin has its own symlinks */
|
||||||
/*
|
/*
|
||||||
* pgsymlink support:
|
* pgsymlink support:
|
||||||
*
|
*
|
||||||
@ -160,9 +161,7 @@ typedef struct
|
|||||||
WORD PrintNameOffset;
|
WORD PrintNameOffset;
|
||||||
WORD PrintNameLength;
|
WORD PrintNameLength;
|
||||||
WCHAR PathBuffer[1];
|
WCHAR PathBuffer[1];
|
||||||
}
|
} REPARSE_JUNCTION_DATA_BUFFER;
|
||||||
|
|
||||||
REPARSE_JUNCTION_DATA_BUFFER;
|
|
||||||
|
|
||||||
#define REPARSE_JUNCTION_DATA_BUFFER_HEADER_SIZE \
|
#define REPARSE_JUNCTION_DATA_BUFFER_HEADER_SIZE \
|
||||||
FIELD_OFFSET(REPARSE_JUNCTION_DATA_BUFFER, SubstituteNameOffset)
|
FIELD_OFFSET(REPARSE_JUNCTION_DATA_BUFFER, SubstituteNameOffset)
|
||||||
@ -246,6 +245,7 @@ pgsymlink(const char *oldpath, const char *newpath)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* We undefined this above, so we redefine it */
|
/* We undefined this above, so we redefine it */
|
||||||
|
Reference in New Issue
Block a user