diff options
author | Brad King <brad.king@kitware.com> | 2016-11-09 14:23:18 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-11-09 14:23:18 (GMT) |
commit | 95a97a40e48a0db2b206c4560d6962be3666812c (patch) | |
tree | e7f6f0e6ffca54ee18f8c276735e8a60e45f8833 /Source/kwsys/SharedForward.h.in | |
parent | 666bb0e3fa0d212c03f785bd9f6bc05d29925e1f (diff) | |
parent | 773b36e5d4af3ac040625e0ea16bcfd30fcdeb6d (diff) | |
download | CMake-95a97a40e48a0db2b206c4560d6962be3666812c.zip CMake-95a97a40e48a0db2b206c4560d6962be3666812c.tar.gz CMake-95a97a40e48a0db2b206c4560d6962be3666812c.tar.bz2 |
Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
KWSys 2016-11-09 (18c65411)
Diffstat (limited to 'Source/kwsys/SharedForward.h.in')
-rw-r--r-- | Source/kwsys/SharedForward.h.in | 604 |
1 files changed, 277 insertions, 327 deletions
diff --git a/Source/kwsys/SharedForward.h.in b/Source/kwsys/SharedForward.h.in index f80ef84..c9ae135 100644 --- a/Source/kwsys/SharedForward.h.in +++ b/Source/kwsys/SharedForward.h.in @@ -1,14 +1,5 @@ -/*============================================================================ - KWSys - Kitware System Library - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium - - Distributed under the OSI-approved BSD License (the "License"); - see accompanying file Copyright.txt for details. - - This software is distributed WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the License for more information. -============================================================================*/ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing#kwsys for details. */ #ifndef @KWSYS_NAMESPACE@_SharedForward_h #define @KWSYS_NAMESPACE@_SharedForward_h @@ -30,7 +21,8 @@ #define @KWSYS_NAMESPACE@_SHARED_FORWARD_PATH_BUILD "." CONFIG_DIR_POST #define @KWSYS_NAMESPACE@_SHARED_FORWARD_PATH_INSTALL "../lib/foo-1.2" #define @KWSYS_NAMESPACE@_SHARED_FORWARD_EXE_BUILD CONFIG_DIR_PRE "foo-real" - #define @KWSYS_NAMESPACE@_SHARED_FORWARD_EXE_INSTALL "../lib/foo-1.2/foo-real" + #define @KWSYS_NAMESPACE@_SHARED_FORWARD_EXE_INSTALL + "../lib/foo-1.2/foo-real" #define @KWSYS_NAMESPACE@_SHARED_FORWARD_OPTION_COMMAND "--command" #define @KWSYS_NAMESPACE@_SHARED_FORWARD_OPTION_PRINT "--print" #define @KWSYS_NAMESPACE@_SHARED_FORWARD_OPTION_LDD "--ldd" @@ -68,16 +60,16 @@ /* Disable -Wcast-qual warnings since they are too hard to fix in a cross-platform way. */ #if defined(__clang__) && defined(__has_warning) -# if __has_warning("-Wcast-qual") -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wcast-qual" -# endif +#if __has_warning("-Wcast-qual") +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wcast-qual" +#endif #endif #if defined(__BORLANDC__) && !defined(__cplusplus) - /* Code has no effect; raised by winnt.h in C (not C++) when ignoring an - unused parameter using "(param)" syntax (i.e. no cast to void). */ -# pragma warn -8019 +/* Code has no effect; raised by winnt.h in C (not C++) when ignoring an + unused parameter using "(param)" syntax (i.e. no cast to void). */ +#pragma warn - 8019 #endif /*--------------------------------------------------------------------------*/ @@ -85,96 +77,107 @@ /* Full path to the directory in which this executable is built. Do not include a trailing slash. */ #if !defined(@KWSYS_NAMESPACE@_SHARED_FORWARD_DIR_BUILD) -# error "Must define @KWSYS_NAMESPACE@_SHARED_FORWARD_DIR_BUILD" +#error "Must define @KWSYS_NAMESPACE@_SHARED_FORWARD_DIR_BUILD" #endif #if !defined(KWSYS_SHARED_FORWARD_DIR_BUILD) -# define KWSYS_SHARED_FORWARD_DIR_BUILD @KWSYS_NAMESPACE@_SHARED_FORWARD_DIR_BUILD +#define KWSYS_SHARED_FORWARD_DIR_BUILD \ + @KWSYS_NAMESPACE@_SHARED_FORWARD_DIR_BUILD #endif /* Library search path for build tree. */ #if !defined(@KWSYS_NAMESPACE@_SHARED_FORWARD_PATH_BUILD) -# error "Must define @KWSYS_NAMESPACE@_SHARED_FORWARD_PATH_BUILD" +#error "Must define @KWSYS_NAMESPACE@_SHARED_FORWARD_PATH_BUILD" #endif #if !defined(KWSYS_SHARED_FORWARD_PATH_BUILD) -# define KWSYS_SHARED_FORWARD_PATH_BUILD @KWSYS_NAMESPACE@_SHARED_FORWARD_PATH_BUILD +#define KWSYS_SHARED_FORWARD_PATH_BUILD \ + @KWSYS_NAMESPACE@_SHARED_FORWARD_PATH_BUILD #endif /* Library search path for install tree. */ #if !defined(@KWSYS_NAMESPACE@_SHARED_FORWARD_PATH_INSTALL) -# error "Must define @KWSYS_NAMESPACE@_SHARED_FORWARD_PATH_INSTALL" +#error "Must define @KWSYS_NAMESPACE@_SHARED_FORWARD_PATH_INSTALL" #endif #if !defined(KWSYS_SHARED_FORWARD_PATH_INSTALL) -# define KWSYS_SHARED_FORWARD_PATH_INSTALL @KWSYS_NAMESPACE@_SHARED_FORWARD_PATH_INSTALL +#define KWSYS_SHARED_FORWARD_PATH_INSTALL \ + @KWSYS_NAMESPACE@_SHARED_FORWARD_PATH_INSTALL #endif /* The real executable to which to forward in the build tree. */ #if !defined(@KWSYS_NAMESPACE@_SHARED_FORWARD_EXE_BUILD) -# error "Must define @KWSYS_NAMESPACE@_SHARED_FORWARD_EXE_BUILD" +#error "Must define @KWSYS_NAMESPACE@_SHARED_FORWARD_EXE_BUILD" #endif #if !defined(KWSYS_SHARED_FORWARD_EXE_BUILD) -# define KWSYS_SHARED_FORWARD_EXE_BUILD @KWSYS_NAMESPACE@_SHARED_FORWARD_EXE_BUILD +#define KWSYS_SHARED_FORWARD_EXE_BUILD \ + @KWSYS_NAMESPACE@_SHARED_FORWARD_EXE_BUILD #endif /* The real executable to which to forward in the install tree. */ #if !defined(@KWSYS_NAMESPACE@_SHARED_FORWARD_EXE_INSTALL) -# error "Must define @KWSYS_NAMESPACE@_SHARED_FORWARD_EXE_INSTALL" +#error "Must define @KWSYS_NAMESPACE@_SHARED_FORWARD_EXE_INSTALL" #endif #if !defined(KWSYS_SHARED_FORWARD_EXE_INSTALL) -# define KWSYS_SHARED_FORWARD_EXE_INSTALL @KWSYS_NAMESPACE@_SHARED_FORWARD_EXE_INSTALL +#define KWSYS_SHARED_FORWARD_EXE_INSTALL \ + @KWSYS_NAMESPACE@_SHARED_FORWARD_EXE_INSTALL #endif -/* The configuration name with which this executable was built (Debug/Release). */ +/* The configuration name with which this executable was built (Debug/Release). + */ #if defined(@KWSYS_NAMESPACE@_SHARED_FORWARD_CONFIG_NAME) -# define KWSYS_SHARED_FORWARD_CONFIG_NAME @KWSYS_NAMESPACE@_SHARED_FORWARD_CONFIG_NAME +#define KWSYS_SHARED_FORWARD_CONFIG_NAME \ + @KWSYS_NAMESPACE@_SHARED_FORWARD_CONFIG_NAME #else -# undef KWSYS_SHARED_FORWARD_CONFIG_NAME +#undef KWSYS_SHARED_FORWARD_CONFIG_NAME #endif /* Create command line option to replace executable. */ #if defined(@KWSYS_NAMESPACE@_SHARED_FORWARD_OPTION_COMMAND) -# if !defined(KWSYS_SHARED_FORWARD_OPTION_COMMAND) -# define KWSYS_SHARED_FORWARD_OPTION_COMMAND @KWSYS_NAMESPACE@_SHARED_FORWARD_OPTION_COMMAND -# endif +#if !defined(KWSYS_SHARED_FORWARD_OPTION_COMMAND) +#define KWSYS_SHARED_FORWARD_OPTION_COMMAND \ + @KWSYS_NAMESPACE@_SHARED_FORWARD_OPTION_COMMAND +#endif #else -# undef KWSYS_SHARED_FORWARD_OPTION_COMMAND +#undef KWSYS_SHARED_FORWARD_OPTION_COMMAND #endif /* Create command line option to print environment setting and exit. */ #if defined(@KWSYS_NAMESPACE@_SHARED_FORWARD_OPTION_PRINT) -# if !defined(KWSYS_SHARED_FORWARD_OPTION_PRINT) -# define KWSYS_SHARED_FORWARD_OPTION_PRINT @KWSYS_NAMESPACE@_SHARED_FORWARD_OPTION_PRINT -# endif +#if !defined(KWSYS_SHARED_FORWARD_OPTION_PRINT) +#define KWSYS_SHARED_FORWARD_OPTION_PRINT \ + @KWSYS_NAMESPACE@_SHARED_FORWARD_OPTION_PRINT +#endif #else -# undef KWSYS_SHARED_FORWARD_OPTION_PRINT +#undef KWSYS_SHARED_FORWARD_OPTION_PRINT #endif /* Create command line option to run ldd or equivalent. */ #if defined(@KWSYS_NAMESPACE@_SHARED_FORWARD_OPTION_LDD) -# if !defined(KWSYS_SHARED_FORWARD_OPTION_LDD) -# define KWSYS_SHARED_FORWARD_OPTION_LDD @KWSYS_NAMESPACE@_SHARED_FORWARD_OPTION_LDD -# endif +#if !defined(KWSYS_SHARED_FORWARD_OPTION_LDD) +#define KWSYS_SHARED_FORWARD_OPTION_LDD \ + @KWSYS_NAMESPACE@_SHARED_FORWARD_OPTION_LDD +#endif #else -# undef KWSYS_SHARED_FORWARD_OPTION_LDD +#undef KWSYS_SHARED_FORWARD_OPTION_LDD #endif /*--------------------------------------------------------------------------*/ /* Include needed system headers. */ -#include <stddef.h> /* size_t */ +#include <errno.h> #include <limits.h> +#include <stddef.h> /* size_t */ +#include <stdio.h> #include <stdlib.h> #include <string.h> -#include <errno.h> -#include <stdio.h> #if defined(_WIN32) && !defined(__CYGWIN__) -# include <io.h> -# include <windows.h> -# include <process.h> -# define KWSYS_SHARED_FORWARD_ESCAPE_ARGV /* re-escape argv for execvp */ +#include <windows.h> + +#include <io.h> +#include <process.h> +#define KWSYS_SHARED_FORWARD_ESCAPE_ARGV /* re-escape argv for execvp */ #else -# include <unistd.h> -# include <sys/stat.h> +#include <sys/stat.h> +#include <unistd.h> #endif /*--------------------------------------------------------------------------*/ @@ -182,22 +185,26 @@ /* The path separator for this platform. */ #if defined(_WIN32) && !defined(__CYGWIN__) -# define KWSYS_SHARED_FORWARD_PATH_SEP ';' -# define KWSYS_SHARED_FORWARD_PATH_SLASH '\\' +#define KWSYS_SHARED_FORWARD_PATH_SEP ';' +#define KWSYS_SHARED_FORWARD_PATH_SLASH '\\' #else -# define KWSYS_SHARED_FORWARD_PATH_SEP ':' -# define KWSYS_SHARED_FORWARD_PATH_SLASH '/' +#define KWSYS_SHARED_FORWARD_PATH_SEP ':' +#define KWSYS_SHARED_FORWARD_PATH_SLASH '/' #endif -static const char kwsys_shared_forward_path_sep[2] = {KWSYS_SHARED_FORWARD_PATH_SEP, 0}; -static const char kwsys_shared_forward_path_slash[2] = {KWSYS_SHARED_FORWARD_PATH_SLASH, 0}; +static const char kwsys_shared_forward_path_sep[2] = { + KWSYS_SHARED_FORWARD_PATH_SEP, 0 +}; +static const char kwsys_shared_forward_path_slash[2] = { + KWSYS_SHARED_FORWARD_PATH_SLASH, 0 +}; /* The maximum length of a file name. */ #if defined(PATH_MAX) -# define KWSYS_SHARED_FORWARD_MAXPATH PATH_MAX +#define KWSYS_SHARED_FORWARD_MAXPATH PATH_MAX #elif defined(MAXPATHLEN) -# define KWSYS_SHARED_FORWARD_MAXPATH MAXPATHLEN +#define KWSYS_SHARED_FORWARD_MAXPATH MAXPATHLEN #else -# define KWSYS_SHARED_FORWARD_MAXPATH 16384 +#define KWSYS_SHARED_FORWARD_MAXPATH 16384 #endif /* Select the environment variable holding the shared library runtime @@ -206,82 +213,82 @@ static const char kwsys_shared_forward_path_slash[2] = {KWSYS_SHARED_FORWARD_PAT /* Linux */ #if defined(__linux) -# define KWSYS_SHARED_FORWARD_LDD "ldd" -# define KWSYS_SHARED_FORWARD_LDD_N 1 -# define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH" +#define KWSYS_SHARED_FORWARD_LDD "ldd" +#define KWSYS_SHARED_FORWARD_LDD_N 1 +#define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH" /* FreeBSD */ #elif defined(__FreeBSD__) -# define KWSYS_SHARED_FORWARD_LDD "ldd" -# define KWSYS_SHARED_FORWARD_LDD_N 1 -# define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH" +#define KWSYS_SHARED_FORWARD_LDD "ldd" +#define KWSYS_SHARED_FORWARD_LDD_N 1 +#define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH" /* OpenBSD */ #elif defined(__OpenBSD__) -# define KWSYS_SHARED_FORWARD_LDD "ldd" -# define KWSYS_SHARED_FORWARD_LDD_N 1 -# define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH" +#define KWSYS_SHARED_FORWARD_LDD "ldd" +#define KWSYS_SHARED_FORWARD_LDD_N 1 +#define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH" /* OSX */ #elif defined(__APPLE__) -# define KWSYS_SHARED_FORWARD_LDD "otool", "-L" -# define KWSYS_SHARED_FORWARD_LDD_N 2 -# define KWSYS_SHARED_FORWARD_LDPATH "DYLD_LIBRARY_PATH" +#define KWSYS_SHARED_FORWARD_LDD "otool", "-L" +#define KWSYS_SHARED_FORWARD_LDD_N 2 +#define KWSYS_SHARED_FORWARD_LDPATH "DYLD_LIBRARY_PATH" /* AIX */ #elif defined(_AIX) -# define KWSYS_SHARED_FORWARD_LDD "dump", "-H" -# define KWSYS_SHARED_FORWARD_LDD_N 2 -# define KWSYS_SHARED_FORWARD_LDPATH "LIBPATH" +#define KWSYS_SHARED_FORWARD_LDD "dump", "-H" +#define KWSYS_SHARED_FORWARD_LDD_N 2 +#define KWSYS_SHARED_FORWARD_LDPATH "LIBPATH" /* SUN */ #elif defined(__sun) -# define KWSYS_SHARED_FORWARD_LDD "ldd" -# define KWSYS_SHARED_FORWARD_LDD_N 1 -# include <sys/isa_defs.h> -# if defined(_ILP32) -# define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH" -# elif defined(_LP64) -# define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH_64" -# endif +#define KWSYS_SHARED_FORWARD_LDD "ldd" +#define KWSYS_SHARED_FORWARD_LDD_N 1 +#include <sys/isa_defs.h> +#if defined(_ILP32) +#define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH" +#elif defined(_LP64) +#define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH_64" +#endif /* HP-UX */ #elif defined(__hpux) -# define KWSYS_SHARED_FORWARD_LDD "chatr" -# define KWSYS_SHARED_FORWARD_LDD_N 1 -# if defined(__LP64__) -# define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH" -# else -# define KWSYS_SHARED_FORWARD_LDPATH "SHLIB_PATH" -# endif +#define KWSYS_SHARED_FORWARD_LDD "chatr" +#define KWSYS_SHARED_FORWARD_LDD_N 1 +#if defined(__LP64__) +#define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH" +#else +#define KWSYS_SHARED_FORWARD_LDPATH "SHLIB_PATH" +#endif /* SGI MIPS */ #elif defined(__sgi) && defined(_MIPS_SIM) -# define KWSYS_SHARED_FORWARD_LDD "ldd" -# define KWSYS_SHARED_FORWARD_LDD_N 1 -# if _MIPS_SIM == _ABIO32 -# define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH" -# elif _MIPS_SIM == _ABIN32 -# define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARYN32_PATH" -# elif _MIPS_SIM == _ABI64 -# define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY64_PATH" -# endif +#define KWSYS_SHARED_FORWARD_LDD "ldd" +#define KWSYS_SHARED_FORWARD_LDD_N 1 +#if _MIPS_SIM == _ABIO32 +#define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH" +#elif _MIPS_SIM == _ABIN32 +#define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARYN32_PATH" +#elif _MIPS_SIM == _ABI64 +#define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY64_PATH" +#endif /* Cygwin */ #elif defined(__CYGWIN__) -# define KWSYS_SHARED_FORWARD_LDD "cygcheck" /* TODO: cygwin 1.7 has ldd */ -# define KWSYS_SHARED_FORWARD_LDD_N 1 -# define KWSYS_SHARED_FORWARD_LDPATH "PATH" +#define KWSYS_SHARED_FORWARD_LDD "cygcheck" /* TODO: cygwin 1.7 has ldd */ +#define KWSYS_SHARED_FORWARD_LDD_N 1 +#define KWSYS_SHARED_FORWARD_LDPATH "PATH" /* Windows */ #elif defined(_WIN32) -# define KWSYS_SHARED_FORWARD_LDPATH "PATH" +#define KWSYS_SHARED_FORWARD_LDPATH "PATH" /* Guess on this unknown system. */ #else -# define KWSYS_SHARED_FORWARD_LDD "ldd" -# define KWSYS_SHARED_FORWARD_LDD_N 1 -# define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH" +#define KWSYS_SHARED_FORWARD_LDD "ldd" +#define KWSYS_SHARED_FORWARD_LDD_N 1 +#define KWSYS_SHARED_FORWARD_LDPATH "LD_LIBRARY_PATH" #endif #ifdef KWSYS_SHARED_FORWARD_ESCAPE_ARGV @@ -312,45 +319,37 @@ static kwsys_sf_arg_info kwsys_sf_get_arg_info(const char* in) info.quote = 0; /* Scan the string for characters that require escaping or quoting. */ - for(c=in; *c; ++c) - { + for (c = in; *c; ++c) { /* Check whether this character needs quotes. */ - if(strchr(" \t?'#&<>|^", *c)) - { + if (strchr(" \t?'#&<>|^", *c)) { info.quote = 1; - } + } /* On Windows only backslashes and double-quotes need escaping. */ - if(*c == '\\') - { + if (*c == '\\') { /* Found a backslash. It may need to be escaped later. */ ++windows_backslashes; - } - else if(*c == '"') - { + } else if (*c == '"') { /* Found a double-quote. We need to escape it and all immediately preceding backslashes. */ info.size += windows_backslashes + 1; windows_backslashes = 0; - } - else - { + } else { /* Found another character. This eliminates the possibility that any immediately preceding backslashes will be escaped. */ windows_backslashes = 0; - } } + } /* Check whether the argument needs surrounding quotes. */ - if(info.quote) - { + if (info.quote) { /* Surrounding quotes are needed. Allocate space for them. */ info.size += 2; /* We must escape all ending backslashes when quoting on windows. */ info.size += windows_backslashes; - } + } return info; } @@ -365,57 +364,47 @@ static char* kwsys_sf_get_arg(kwsys_sf_arg_info info, char* out) int windows_backslashes = 0; /* Whether the argument must be quoted. */ - if(info.quote) - { + if (info.quote) { /* Add the opening quote for this argument. */ *out++ = '"'; - } + } /* Scan the string for characters that require escaping or quoting. */ - for(c=info.arg; *c; ++c) - { + for (c = info.arg; *c; ++c) { /* On Windows only backslashes and double-quotes need escaping. */ - if(*c == '\\') - { + if (*c == '\\') { /* Found a backslash. It may need to be escaped later. */ ++windows_backslashes; - } - else if(*c == '"') - { + } else if (*c == '"') { /* Found a double-quote. Escape all immediately preceding backslashes. */ - while(windows_backslashes > 0) - { + while (windows_backslashes > 0) { --windows_backslashes; *out++ = '\\'; - } + } /* Add the backslash to escape the double-quote. */ *out++ = '\\'; - } - else - { + } else { /* We encountered a normal character. This eliminates any escaping needed for preceding backslashes. */ windows_backslashes = 0; - } + } /* Store this character. */ *out++ = *c; - } + } - if(info.quote) - { + if (info.quote) { /* Add enough backslashes to escape any trailing ones. */ - while(windows_backslashes > 0) - { + while (windows_backslashes > 0) { --windows_backslashes; *out++ = '\\'; - } + } /* Add the closing quote for this argument. */ *out++ = '"'; - } + } /* Store a terminating null without incrementing. */ *out = 0; @@ -430,8 +419,8 @@ static int kwsys_shared_forward_realpath(const char* in_path, char* out_path) { #if defined(_WIN32) && !defined(__CYGWIN__) /* Implementation for Windows. */ - DWORD n = GetFullPathNameA(in_path, KWSYS_SHARED_FORWARD_MAXPATH, - out_path, 0); + DWORD n = + GetFullPathNameA(in_path, KWSYS_SHARED_FORWARD_MAXPATH, out_path, 0); return n > 0 && n <= KWSYS_SHARED_FORWARD_MAXPATH; #else /* Implementation for UNIX. */ @@ -445,11 +434,10 @@ static int kwsys_shared_forward_samepath(const char* file1, const char* file2) #if defined(_WIN32) int result = 0; HANDLE h1 = CreateFileA(file1, GENERIC_READ, FILE_SHARE_READ, NULL, - OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); + OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); HANDLE h2 = CreateFileA(file2, GENERIC_READ, FILE_SHARE_READ, NULL, - OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); - if(h1 != INVALID_HANDLE_VALUE && h2 != INVALID_HANDLE_VALUE) - { + OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); + if (h1 != INVALID_HANDLE_VALUE && h2 != INVALID_HANDLE_VALUE) { BY_HANDLE_FILE_INFORMATION fi1; BY_HANDLE_FILE_INFORMATION fi2; GetFileInformationByHandle(h1, &fi1); @@ -457,10 +445,10 @@ static int kwsys_shared_forward_samepath(const char* file1, const char* file2) result = (fi1.dwVolumeSerialNumber == fi2.dwVolumeSerialNumber && fi1.nFileIndexHigh == fi2.nFileIndexHigh && fi1.nFileIndexLow == fi2.nFileIndexLow); - } - CloseHandle(h1); - CloseHandle(h2); - return result; + } + CloseHandle(h1); + CloseHandle(h2); + return result; #else struct stat fs1, fs2; return (stat(file1, &fs1) == 0 && stat(file2, &fs2) == 0 && @@ -477,17 +465,16 @@ static void kwsys_shared_forward_strerror(char* message) #if defined(_WIN32) && !defined(__CYGWIN__) /* Implementation for Windows. */ DWORD original = GetLastError(); - DWORD length = FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, 0, original, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - message, KWSYS_SHARED_FORWARD_MAXPATH, 0); - if(length < 1 || length > KWSYS_SHARED_FORWARD_MAXPATH) - { + DWORD length = + FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + 0, original, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + message, KWSYS_SHARED_FORWARD_MAXPATH, 0); + if (length < 1 || length > KWSYS_SHARED_FORWARD_MAXPATH) { /* FormatMessage failed. Use a default message. */ _snprintf(message, KWSYS_SHARED_FORWARD_MAXPATH, - "Error 0x%X (FormatMessage failed with error 0x%X)", - original, GetLastError()); - } + "Error 0x%X (FormatMessage failed with error 0x%X)", original, + GetLastError()); + } #else /* Implementation for UNIX. */ strcpy(message, strerror(errno)); @@ -503,28 +490,28 @@ static void kwsys_shared_forward_execvp(const char* cmd, /* Count the number of arguments. */ int argc = 0; { - char const* const* argvc; - for(argvc = argv; *argvc; ++argvc,++argc) {} + char const* const* argvc; + for (argvc = argv; *argvc; ++argvc, ++argc) { + } } /* Create the escaped arguments. */ { - char** nargv = (char**)malloc((argc+1) * sizeof(char*)); - int i; - for(i=0; i < argc; ++i) - { - kwsys_sf_arg_info info = kwsys_sf_get_arg_info(argv[i]); - nargv[i] = (char*)malloc(info.size); - kwsys_sf_get_arg(info, nargv[i]); + char** nargv = (char**)malloc((argc + 1) * sizeof(char*)); + int i; + for (i = 0; i < argc; ++i) { + kwsys_sf_arg_info info = kwsys_sf_get_arg_info(argv[i]); + nargv[i] = (char*)malloc(info.size); + kwsys_sf_get_arg(info, nargv[i]); } - nargv[argc] = 0; + nargv[argc] = 0; - /* Replace the command line to be used. */ - argv = (char const* const*)nargv; + /* Replace the command line to be used. */ + argv = (char const* const*)nargv; } #endif - /* Invoke the child process. */ +/* Invoke the child process. */ #if defined(_MSC_VER) _execvp(cmd, argv); #elif defined(__MINGW32__) && !defined(__MINGW64__) @@ -541,40 +528,33 @@ static void kwsys_shared_forward_dirname(const char* begin, char* result) /* Find the location of the last slash. */ int last_slash_index = -1; const char* end = begin + strlen(begin); - for(;begin <= end && last_slash_index < 0; --end) - { - if(*end == '/' || *end == '\\') - { - last_slash_index = (int)(end-begin); - } + for (; begin <= end && last_slash_index < 0; --end) { + if (*end == '/' || *end == '\\') { + last_slash_index = (int)(end - begin); } + } /* Handle each case of the index of the last slash. */ - if(last_slash_index < 0) - { + if (last_slash_index < 0) { /* No slashes. */ strcpy(result, "."); - } - else if(last_slash_index == 0) - { + } else if (last_slash_index == 0) { /* Only one leading slash. */ strcpy(result, kwsys_shared_forward_path_slash); - } + } #if defined(_WIN32) - else if(last_slash_index == 2 && begin[1] == ':') - { + else if (last_slash_index == 2 && begin[1] == ':') { /* Only one leading drive letter and slash. */ strncpy(result, begin, (size_t)last_slash_index); result[last_slash_index] = KWSYS_SHARED_FORWARD_PATH_SLASH; - result[last_slash_index+1] = 0; - } + result[last_slash_index + 1] = 0; + } #endif - else - { + else { /* A non-leading slash. */ strncpy(result, begin, (size_t)last_slash_index); result[last_slash_index] = 0; - } + } } /*--------------------------------------------------------------------------*/ @@ -582,23 +562,20 @@ static void kwsys_shared_forward_dirname(const char* begin, char* result) static int kwsys_shared_forward_is_executable(const char* f) { #if defined(_MSC_VER) -# define KWSYS_SHARED_FORWARD_ACCESS _access +#define KWSYS_SHARED_FORWARD_ACCESS _access #else -# define KWSYS_SHARED_FORWARD_ACCESS access +#define KWSYS_SHARED_FORWARD_ACCESS access #endif #if defined(X_OK) -# define KWSYS_SHARED_FORWARD_ACCESS_OK X_OK +#define KWSYS_SHARED_FORWARD_ACCESS_OK X_OK #else -# define KWSYS_SHARED_FORWARD_ACCESS_OK 04 +#define KWSYS_SHARED_FORWARD_ACCESS_OK 04 #endif - if(KWSYS_SHARED_FORWARD_ACCESS(f, KWSYS_SHARED_FORWARD_ACCESS_OK) == 0) - { + if (KWSYS_SHARED_FORWARD_ACCESS(f, KWSYS_SHARED_FORWARD_ACCESS_OK) == 0) { return 1; - } - else - { + } else { return 0; - } + } } /*--------------------------------------------------------------------------*/ @@ -608,66 +585,60 @@ static int kwsys_shared_forward_self_path(const char* argv0, char* result) /* Check whether argv0 has a slash. */ int has_slash = 0; const char* p = argv0; - for(;*p && !has_slash; ++p) - { - if(*p == '/' || *p == '\\') - { + for (; *p && !has_slash; ++p) { + if (*p == '/' || *p == '\\') { has_slash = 1; - } } + } - if(has_slash) - { + if (has_slash) { /* There is a slash. Use the dirname of the given location. */ kwsys_shared_forward_dirname(argv0, result); return 1; - } - else - { + } else { /* There is no slash. Search the PATH for the executable. */ const char* path = getenv("PATH"); const char* begin = path; - const char* end = begin + (begin?strlen(begin):0); + const char* end = begin + (begin ? strlen(begin) : 0); const char* first = begin; - while(first != end) - { + while (first != end) { /* Store the end of this path entry. */ const char* last; /* Skip all path separators. */ - for(;*first && *first == KWSYS_SHARED_FORWARD_PATH_SEP; ++first); + for (; *first && *first == KWSYS_SHARED_FORWARD_PATH_SEP; ++first) + ; /* Find the next separator. */ - for(last = first;*last && *last != KWSYS_SHARED_FORWARD_PATH_SEP; ++last); + for (last = first; *last && *last != KWSYS_SHARED_FORWARD_PATH_SEP; + ++last) + ; /* If we got a non-empty directory, look for the executable there. */ - if(first < last) - { + if (first < last) { /* Determine the length without trailing slash. */ - size_t length = (size_t)(last-first); - if(*(last-1) == '/' || *(last-1) == '\\') - { + size_t length = (size_t)(last - first); + if (*(last - 1) == '/' || *(last - 1) == '\\') { --length; - } + } /* Construct the name of the executable in this location. */ strncpy(result, first, length); result[length] = KWSYS_SHARED_FORWARD_PATH_SLASH; - strcpy(result+(length)+1, argv0); + strcpy(result + (length) + 1, argv0); /* Check if it exists and is executable. */ - if(kwsys_shared_forward_is_executable(result)) - { + if (kwsys_shared_forward_is_executable(result)) { /* Found it. */ result[length] = 0; return 1; - } } + } /* Move to the next directory in the path. */ first = last; - } } + } /* We could not find the executable. */ return 0; @@ -677,42 +648,36 @@ static int kwsys_shared_forward_self_path(const char* argv0, char* result) /* Function to convert a specified path to a full path. If it is not already full, it is taken relative to the self path. */ static int kwsys_shared_forward_fullpath(const char* self_path, - const char* in_path, - char* result, + const char* in_path, char* result, const char* desc) { /* Check the specified path type. */ - if(in_path[0] == '/') - { + if (in_path[0] == '/') { /* Already a full path. */ strcpy(result, in_path); - } + } #if defined(_WIN32) - else if(in_path[0] && in_path[1] == ':') - { + else if (in_path[0] && in_path[1] == ':') { /* Already a full path. */ strcpy(result, in_path); - } + } #endif - else - { + else { /* Relative to self path. */ char temp_path[KWSYS_SHARED_FORWARD_MAXPATH]; strcpy(temp_path, self_path); strcat(temp_path, kwsys_shared_forward_path_slash); strcat(temp_path, in_path); - if(!kwsys_shared_forward_realpath(temp_path, result)) - { - if(desc) - { + if (!kwsys_shared_forward_realpath(temp_path, result)) { + if (desc) { char msgbuf[KWSYS_SHARED_FORWARD_MAXPATH]; kwsys_shared_forward_strerror(msgbuf); - fprintf(stderr, "Error converting %s \"%s\" to real path: %s\n", - desc, temp_path, msgbuf); - } - return 0; + fprintf(stderr, "Error converting %s \"%s\" to real path: %s\n", desc, + temp_path, msgbuf); } + return 0; } + } return 1; } @@ -723,16 +688,20 @@ static int kwsys_shared_forward_get_settings(const char* self_path, char* ldpath, char* exe) { /* Possible search paths. */ - static const char* search_path_build[] = {KWSYS_SHARED_FORWARD_PATH_BUILD, 0}; - static const char* search_path_install[] = {KWSYS_SHARED_FORWARD_PATH_INSTALL, 0}; + static const char* search_path_build[] = { KWSYS_SHARED_FORWARD_PATH_BUILD, + 0 }; + static const char* search_path_install[] = { + KWSYS_SHARED_FORWARD_PATH_INSTALL, 0 + }; /* Chosen paths. */ const char** search_path; const char* exe_path; - /* Get the real name of the build and self paths. */ +/* Get the real name of the build and self paths. */ #if defined(KWSYS_SHARED_FORWARD_CONFIG_NAME) - char build_path[] = KWSYS_SHARED_FORWARD_DIR_BUILD "/" KWSYS_SHARED_FORWARD_CONFIG_NAME; + char build_path[] = + KWSYS_SHARED_FORWARD_DIR_BUILD "/" KWSYS_SHARED_FORWARD_CONFIG_NAME; char self_path_logical[KWSYS_SHARED_FORWARD_MAXPATH]; #else char build_path[] = KWSYS_SHARED_FORWARD_DIR_BUILD; @@ -740,19 +709,17 @@ static int kwsys_shared_forward_get_settings(const char* self_path, #endif char build_path_real[KWSYS_SHARED_FORWARD_MAXPATH]; char self_path_real[KWSYS_SHARED_FORWARD_MAXPATH]; - if(!kwsys_shared_forward_realpath(self_path, self_path_real)) - { + if (!kwsys_shared_forward_realpath(self_path, self_path_real)) { char msgbuf[KWSYS_SHARED_FORWARD_MAXPATH]; kwsys_shared_forward_strerror(msgbuf); fprintf(stderr, "Error converting self path \"%s\" to real path: %s\n", self_path, msgbuf); return 0; - } + } /* Check whether we are running in the build tree or an install tree. */ - if(kwsys_shared_forward_realpath(build_path, build_path_real) && - kwsys_shared_forward_samepath(self_path_real, build_path_real)) - { + if (kwsys_shared_forward_realpath(build_path, build_path_real) && + kwsys_shared_forward_samepath(self_path_real, build_path_real)) { /* Running in build tree. Use the build path and exe. */ search_path = search_path_build; #if defined(_WIN32) @@ -765,9 +732,7 @@ static int kwsys_shared_forward_get_settings(const char* self_path, /* Remove the configuration directory from self_path. */ kwsys_shared_forward_dirname(self_path, self_path_logical); #endif - } - else - { + } else { /* Running in install tree. Use the install path and exe. */ search_path = search_path_install; #if defined(_WIN32) @@ -780,35 +745,31 @@ static int kwsys_shared_forward_get_settings(const char* self_path, /* Use the original self path directory. */ strcpy(self_path_logical, self_path); #endif - } + } /* Construct the runtime search path. */ { - const char** dir; - for(dir = search_path; *dir; ++dir) - { - /* Add separator between path components. */ - if(dir != search_path) - { - strcat(ldpath, kwsys_shared_forward_path_sep); + const char** dir; + for (dir = search_path; *dir; ++dir) { + /* Add separator between path components. */ + if (dir != search_path) { + strcat(ldpath, kwsys_shared_forward_path_sep); } - /* Add this path component. */ - if(!kwsys_shared_forward_fullpath(self_path_logical, *dir, - ldpath+strlen(ldpath), - "runtime path entry")) - { - return 0; + /* Add this path component. */ + if (!kwsys_shared_forward_fullpath(self_path_logical, *dir, + ldpath + strlen(ldpath), + "runtime path entry")) { + return 0; } } } /* Construct the executable location. */ - if(!kwsys_shared_forward_fullpath(self_path_logical, exe_path, exe, - "executable file")) - { + if (!kwsys_shared_forward_fullpath(self_path_logical, exe_path, exe, + "executable file")) { return 0; - } + } return 1; } @@ -820,15 +781,15 @@ static void kwsys_shared_forward_print_failure(char const* const* argv) char const* const* arg = argv; kwsys_shared_forward_strerror(msg); fprintf(stderr, "Error running"); - for(; *arg; ++arg) - { + for (; *arg; ++arg) { fprintf(stderr, " \"%s\"", *arg); - } + } fprintf(stderr, ": %s\n", msg); } /* Static storage space to store the updated environment variable. */ -static char kwsys_shared_forward_ldpath[65535] = KWSYS_SHARED_FORWARD_LDPATH "="; +static char kwsys_shared_forward_ldpath[65535] = + KWSYS_SHARED_FORWARD_LDPATH "="; /*--------------------------------------------------------------------------*/ /* Main driver function to be called from main. */ @@ -837,74 +798,67 @@ static int @KWSYS_NAMESPACE@_shared_forward_to_real(int argc, char** argv_in) char const** argv = (char const**)argv_in; /* Get the directory containing this executable. */ char self_path[KWSYS_SHARED_FORWARD_MAXPATH]; - if(kwsys_shared_forward_self_path(argv[0], self_path)) - { + if (kwsys_shared_forward_self_path(argv[0], self_path)) { /* Found this executable. Use it to get the library directory. */ char exe[KWSYS_SHARED_FORWARD_MAXPATH]; - if(kwsys_shared_forward_get_settings(self_path, - kwsys_shared_forward_ldpath, exe)) - { + if (kwsys_shared_forward_get_settings(self_path, + kwsys_shared_forward_ldpath, exe)) { /* Append the old runtime search path. */ const char* old_ldpath = getenv(KWSYS_SHARED_FORWARD_LDPATH); - if(old_ldpath) - { + if (old_ldpath) { strcat(kwsys_shared_forward_ldpath, kwsys_shared_forward_path_sep); strcat(kwsys_shared_forward_ldpath, old_ldpath); - } + } /* Store the environment variable. */ putenv(kwsys_shared_forward_ldpath); #if defined(KWSYS_SHARED_FORWARD_OPTION_COMMAND) /* Look for the command line replacement option. */ - if(argc > 1 && strcmp(argv[1], KWSYS_SHARED_FORWARD_OPTION_COMMAND) == 0) - { - if(argc > 2) - { + if (argc > 1 && + strcmp(argv[1], KWSYS_SHARED_FORWARD_OPTION_COMMAND) == 0) { + if (argc > 2) { /* Use the command line given. */ strcpy(exe, argv[2]); argv += 2; argc -= 2; - } - else - { + } else { /* The option was not given an executable. */ fprintf(stderr, "Option " KWSYS_SHARED_FORWARD_OPTION_COMMAND - " must be followed by a command line.\n"); + " must be followed by a command line.\n"); return 1; - } } + } #endif #if defined(KWSYS_SHARED_FORWARD_OPTION_PRINT) /* Look for the print command line option. */ - if(argc > 1 && strcmp(argv[1], KWSYS_SHARED_FORWARD_OPTION_PRINT) == 0) - { + if (argc > 1 && + strcmp(argv[1], KWSYS_SHARED_FORWARD_OPTION_PRINT) == 0) { fprintf(stdout, "%s\n", kwsys_shared_forward_ldpath); fprintf(stdout, "%s\n", exe); return 0; - } + } #endif #if defined(KWSYS_SHARED_FORWARD_OPTION_LDD) /* Look for the ldd command line option. */ - if(argc > 1 && strcmp(argv[1], KWSYS_SHARED_FORWARD_OPTION_LDD) == 0) - { -# if defined(KWSYS_SHARED_FORWARD_LDD) + if (argc > 1 && strcmp(argv[1], KWSYS_SHARED_FORWARD_OPTION_LDD) == 0) { +#if defined(KWSYS_SHARED_FORWARD_LDD) /* Use the named ldd-like executable and arguments. */ - char const* ldd_argv[] = {KWSYS_SHARED_FORWARD_LDD, 0, 0}; + char const* ldd_argv[] = { KWSYS_SHARED_FORWARD_LDD, 0, 0 }; ldd_argv[KWSYS_SHARED_FORWARD_LDD_N] = exe; kwsys_shared_forward_execvp(ldd_argv[0], ldd_argv); /* Report why execution failed. */ kwsys_shared_forward_print_failure(ldd_argv); return 1; -# else +#else /* We have no ldd-like executable available on this platform. */ fprintf(stderr, "No ldd-like tool is known to this executable.\n"); return 1; -# endif - } +#endif + } #endif /* Replace this process with the real executable. */ @@ -913,17 +867,13 @@ static int @KWSYS_NAMESPACE@_shared_forward_to_real(int argc, char** argv_in) /* Report why execution failed. */ kwsys_shared_forward_print_failure(argv); - } - else - { + } else { /* Could not convert self path to the library directory. */ - } } - else - { + } else { /* Could not find this executable. */ fprintf(stderr, "Error locating executable \"%s\".\n", argv[0]); - } + } /* Avoid unused argument warning. */ (void)argc; @@ -934,11 +884,11 @@ static int @KWSYS_NAMESPACE@_shared_forward_to_real(int argc, char** argv_in) /* Restore warning stack. */ #if defined(__clang__) && defined(__has_warning) -# if __has_warning("-Wcast-qual") -# pragma clang diagnostic pop -# endif +#if __has_warning("-Wcast-qual") +#pragma clang diagnostic pop +#endif #endif #else -# error "@KWSYS_NAMESPACE@/SharedForward.h should be included only once." +#error "@KWSYS_NAMESPACE@/SharedForward.h should be included only once." #endif |