[cmake-commits] king committed System.c 1.3 1.4 System.h.in 1.2 1.3
cmake-commits at cmake.org
cmake-commits at cmake.org
Wed Oct 4 18:52:26 EDT 2006
Update of /cvsroot/CMake/CMake/Source/kwsys
In directory public:/mounts/ram/cvs-serv22392/Source/kwsys
Modified Files:
System.c System.h.in
Log Message:
ENH: Adding Shell_Flag_EchoWindows option to setup escapes for arguments to the native echo command in a shell. This special case is needed to avoid adding quotes when passing text to echo in a native windows shell which does no command line parsing at all.
Index: System.h.in
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/kwsys/System.h.in,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- System.h.in 27 Sep 2006 17:43:46 -0000 1.2
+++ System.h.in 4 Oct 2006 22:52:24 -0000 1.3
@@ -31,6 +31,7 @@
#define kwsysSystem_Shell_Flag_e kwsys_ns(System_Shell_Flag_e)
#define kwsysSystem_Shell_Flag_Make kwsys_ns(System_Shell_Flag_Make)
#define kwsysSystem_Shell_Flag_VSIDE kwsys_ns(System_Shell_Flag_VSIDE)
+#define kwsysSystem_Shell_Flag_EchoWindows kwsys_ns(System_Shell_Flag_EchoWindows)
#define kwsysSystem_Shell_Flag_AllowMakeVariables kwsys_ns(System_Shell_Flag_AllowMakeVariables)
#if defined(__cplusplus)
@@ -78,12 +79,15 @@
Shell_Flag_Make. */
kwsysSystem_Shell_Flag_VSIDE = (1<<1),
+ /** In a windows whell the argument is being passed to "echo". */
+ kwsysSystem_Shell_Flag_EchoWindows = (1<<2),
+
/** Make variable reference syntax $(MAKEVAR) should not be escaped
to allow a build tool to replace it. Replacement values
containing spaces, quotes, backslashes, or other
non-alphanumeric characters that have significance to some makes
or shells produce undefined behavior. */
- kwsysSystem_Shell_Flag_AllowMakeVariables = (1<<2)
+ kwsysSystem_Shell_Flag_AllowMakeVariables = (1<<3)
};
#if defined(__cplusplus)
@@ -102,6 +106,7 @@
# undef kwsysSystem_Shell_Flag_e
# undef kwsysSystem_Shell_Flag_Make
# undef kwsysSystem_Shell_Flag_VSIDE
+# undef kwsysSystem_Shell_Flag_EchoWindows
# undef kwsysSystem_Shell_Flag_AllowMakeVariables
#endif
Index: System.c
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/kwsys/System.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- System.c 27 Sep 2006 17:43:46 -0000 1.3
+++ System.c 4 Oct 2006 22:52:24 -0000 1.4
@@ -66,6 +66,12 @@
/*--------------------------------------------------------------------------*/
static int kwsysSystem_Shell__CharNeedsQuotes(char c, int isUnix, int flags)
{
+ /* On Windows the built-in command shell echo never needs quotes. */
+ if(!isUnix && (flags & kwsysSystem_Shell_Flag_EchoWindows))
+ {
+ return 0;
+ }
+
/* On all platforms quotes are needed to preserve whitespace. */
if(kwsysSystem_Shell__CharIsWhitespace(c))
{
@@ -227,6 +233,10 @@
++size;
}
}
+ else if(flags & kwsysSystem_Shell_Flag_EchoWindows)
+ {
+ /* On Windows the built-in command shell echo never needs escaping. */
+ }
else
{
/* On Windows only backslashes and double-quotes need escaping. */
@@ -334,6 +344,10 @@
*out++ = '\\';
}
}
+ else if(flags & kwsysSystem_Shell_Flag_EchoWindows)
+ {
+ /* On Windows the built-in command shell echo never needs escaping. */
+ }
else
{
/* On Windows only backslashes and double-quotes need escaping. */
More information about the Cmake-commits
mailing list