KWSys 2014-04-02 (39f98b5d)

Extract upstream KWSys using the following shell commands.

$ git archive --prefix=upstream-kwsys/ 39f98b5d | tar x
$ git shortlog --no-merges --abbrev=8 --format='%h %s' a8aa1014..39f98b5d
Brad King (1):
      39f98b5d Encoding: Add self-assignment check to CommandLineArguments

Jiri Malak (1):
      36982798 SystemTools: add Watcom single Quote processing

Change-Id: Ib8e67dc0c29ee62e6489c068987e4206fa4adaf3
This commit is contained in:
KWSys Robot 2014-04-02 09:08:42 -04:00 committed by Brad King
parent 12faf00d71
commit eccc425af6
3 changed files with 46 additions and 12 deletions

View File

@ -110,6 +110,8 @@ Encoding::CommandLineArguments::
Encoding::CommandLineArguments& Encoding::CommandLineArguments&
Encoding::CommandLineArguments::operator=(const CommandLineArguments& other) Encoding::CommandLineArguments::operator=(const CommandLineArguments& other)
{ {
if(this != &other)
{
size_t i; size_t i;
for(i=0; i<this->argv_.size(); i++) for(i=0; i<this->argv_.size(); i++)
{ {
@ -121,6 +123,7 @@ Encoding::CommandLineArguments::operator=(const CommandLineArguments& other)
{ {
this->argv_[i] = other.argv_[i] ? strdup(other.argv_[i]) : 0; this->argv_[i] = other.argv_[i] ? strdup(other.argv_[i]) : 0;
} }
}
return *this; return *this;
} }

View File

@ -353,6 +353,10 @@ static int kwsysSystem_Shell__GetArgumentSize(const char* in,
if(kwsysSystem_Shell__ArgumentNeedsQuotes(in, isUnix, flags)) if(kwsysSystem_Shell__ArgumentNeedsQuotes(in, isUnix, flags))
{ {
/* Surrounding quotes are needed. Allocate space for them. */ /* Surrounding quotes are needed. Allocate space for them. */
if((flags & kwsysSystem_Shell_Flag_WatcomQuote) && (isUnix))
{
size += 2;
}
size += 2; size += 2;
/* We must escape all ending backslashes when quoting on windows. */ /* We must escape all ending backslashes when quoting on windows. */
@ -377,8 +381,19 @@ static char* kwsysSystem_Shell__GetArgument(const char* in, char* out,
if(needQuotes) if(needQuotes)
{ {
/* Add the opening quote for this argument. */ /* Add the opening quote for this argument. */
if(flags & kwsysSystem_Shell_Flag_WatcomQuote)
{
if(isUnix)
{
*out++ = '"'; *out++ = '"';
} }
*out++ = '\'';
}
else
{
*out++ = '"';
}
}
/* Scan the string for characters that require escaping or quoting. */ /* Scan the string for characters that require escaping or quoting. */
for(c=in; *c; ++c) for(c=in; *c; ++c)
@ -549,8 +564,19 @@ static char* kwsysSystem_Shell__GetArgument(const char* in, char* out,
} }
/* Add the closing quote for this argument. */ /* Add the closing quote for this argument. */
if(flags & kwsysSystem_Shell_Flag_WatcomQuote)
{
*out++ = '\'';
if(isUnix)
{
*out++ = '"'; *out++ = '"';
} }
}
else
{
*out++ = '"';
}
}
/* Store a terminating null without incrementing. */ /* Store a terminating null without incrementing. */
*out = 0; *out = 0;

View File

@ -36,6 +36,7 @@
# define kwsysSystem_Shell_Flag_MinGWMake kwsys_ns(System_Shell_Flag_MinGWMake) # define kwsysSystem_Shell_Flag_MinGWMake kwsys_ns(System_Shell_Flag_MinGWMake)
# define kwsysSystem_Shell_Flag_NMake kwsys_ns(System_Shell_Flag_NMake) # define kwsysSystem_Shell_Flag_NMake kwsys_ns(System_Shell_Flag_NMake)
# define kwsysSystem_Shell_Flag_AllowMakeVariables kwsys_ns(System_Shell_Flag_AllowMakeVariables) # define kwsysSystem_Shell_Flag_AllowMakeVariables kwsys_ns(System_Shell_Flag_AllowMakeVariables)
# define kwsysSystem_Shell_Flag_WatcomQuote kwsys_ns(System_Shell_Flag_WatcomQuote)
#endif #endif
#ifdef __VMS #ifdef __VMS
@ -102,14 +103,17 @@ enum kwsysSystem_Shell_Flag_e
kwsysSystem_Shell_Flag_MinGWMake = (1<<4), kwsysSystem_Shell_Flag_MinGWMake = (1<<4),
/** The target shell is in a NMake makefile. */ /** The target shell is in a NMake makefile. */
kwsysSystem_Shell_Flag_NMake = (1<<6), kwsysSystem_Shell_Flag_NMake = (1<<5),
/** Make variable reference syntax $(MAKEVAR) should not be escaped /** Make variable reference syntax $(MAKEVAR) should not be escaped
to allow a build tool to replace it. Replacement values to allow a build tool to replace it. Replacement values
containing spaces, quotes, backslashes, or other containing spaces, quotes, backslashes, or other
non-alphanumeric characters that have significance to some makes non-alphanumeric characters that have significance to some makes
or shells produce undefined behavior. */ or shells produce undefined behavior. */
kwsysSystem_Shell_Flag_AllowMakeVariables = (1<<5) kwsysSystem_Shell_Flag_AllowMakeVariables = (1<<6),
/** The target shell quoting uses extra single Quotes for Watcom tools. */
kwsysSystem_Shell_Flag_WatcomQuote = (1<<7)
}; };
/** /**
@ -156,6 +160,7 @@ kwsysEXPORT char** kwsysSystem_Parse_CommandForUnix(const char* command,
# undef kwsysSystem_Shell_Flag_MinGWMake # undef kwsysSystem_Shell_Flag_MinGWMake
# undef kwsysSystem_Shell_Flag_NMake # undef kwsysSystem_Shell_Flag_NMake
# undef kwsysSystem_Shell_Flag_AllowMakeVariables # undef kwsysSystem_Shell_Flag_AllowMakeVariables
# undef kwsysSystem_Shell_Flag_WatcomQuote
# endif # endif
#endif #endif