[Cmake-commits] [cmake-commits] king committed cmFileCommand.cxx 1.114 1.115
cmake-commits at cmake.org
cmake-commits at cmake.org
Mon Jan 5 11:03:43 EST 2009
Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv4250/Source
Modified Files:
cmFileCommand.cxx
Log Message:
ENH: Refactor internal file(INSTALL) arg parsing
The internal file(INSTALL) command argument parsing used several
booleans with at most one set to true at a time to track argument
parsing state. This refactors it to use one enumeration.
Index: cmFileCommand.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmFileCommand.cxx,v
retrieving revision 1.114
retrieving revision 1.115
diff -C 2 -d -r1.114 -r1.115
*** cmFileCommand.cxx 18 Dec 2008 15:43:23 -0000 1.114
--- cmFileCommand.cxx 5 Jan 2009 16:03:41 -0000 1.115
***************
*** 1689,1697 ****
{
std::string stype = "FILES";
! bool doing_files = false;
! bool doing_properties = false;
! bool doing_permissions_file = false;
! bool doing_permissions_dir = false;
! bool doing_permissions_match = false;
bool use_given_permissions_file = false;
bool use_given_permissions_dir = false;
--- 1689,1696 ----
{
std::string stype = "FILES";
! enum Doing { DoingNone, DoingFiles, DoingProperties,
! DoingPermissionsFile, DoingPermissionsDir,
! DoingPermissionsMatch };
! Doing doing = DoingNone;
bool use_given_permissions_file = false;
bool use_given_permissions_dir = false;
***************
*** 1718,1725 ****
i++;
destination = args[i];
! doing_files = false;
! doing_properties = false;
! doing_permissions_file = false;
! doing_permissions_dir = false;
}
else if ( *cstr == "TYPE" && i < args.size()-1 )
--- 1717,1721 ----
i++;
destination = args[i];
! doing = DoingNone;
}
else if ( *cstr == "TYPE" && i < args.size()-1 )
***************
*** 1740,1747 ****
optional = true;
}
! doing_properties = false;
! doing_files = false;
! doing_permissions_file = false;
! doing_permissions_dir = false;
}
else if ( *cstr == "RENAME" && i < args.size()-1 )
--- 1736,1740 ----
optional = true;
}
! doing = DoingNone;
}
else if ( *cstr == "RENAME" && i < args.size()-1 )
***************
*** 1757,1764 ****
i++;
rename = args[i];
! doing_properties = false;
! doing_files = false;
! doing_permissions_file = false;
! doing_permissions_dir = false;
}
else if ( *cstr == "REGEX" && i < args.size()-1 )
--- 1750,1754 ----
i++;
rename = args[i];
! doing = DoingNone;
}
else if ( *cstr == "REGEX" && i < args.size()-1 )
***************
*** 1774,1781 ****
return false;
}
! doing_properties = false;
! doing_files = false;
! doing_permissions_file = false;
! doing_permissions_dir = false;
}
else if ( *cstr == "EXCLUDE" )
--- 1764,1768 ----
return false;
}
! doing = DoingNone;
}
else if ( *cstr == "EXCLUDE" )
***************
*** 1791,1795 ****
}
current_match_rule->Properties.Exclude = true;
! doing_permissions_match = true;
}
else if ( *cstr == "PROPERTIES" )
--- 1778,1782 ----
}
current_match_rule->Properties.Exclude = true;
! doing = DoingPermissionsMatch;
}
else if ( *cstr == "PROPERTIES" )
***************
*** 1803,1810 ****
}
! doing_properties = true;
! doing_files = false;
! doing_permissions_file = false;
! doing_permissions_dir = false;
}
else if ( *cstr == "PERMISSIONS" )
--- 1790,1794 ----
}
! doing = DoingProperties;
}
else if ( *cstr == "PERMISSIONS" )
***************
*** 1812,1827 ****
if(current_match_rule)
{
! doing_permissions_match = true;
! doing_permissions_file = false;
}
else
{
! doing_permissions_match = false;
! doing_permissions_file = true;
use_given_permissions_file = true;
}
- doing_properties = false;
- doing_files = false;
- doing_permissions_dir = false;
}
else if ( *cstr == "DIR_PERMISSIONS" )
--- 1796,1806 ----
if(current_match_rule)
{
! doing = DoingPermissionsMatch;
}
else
{
! doing = DoingPermissionsFile;
use_given_permissions_file = true;
}
}
else if ( *cstr == "DIR_PERMISSIONS" )
***************
*** 1836,1843 ****
use_given_permissions_dir = true;
! doing_properties = false;
! doing_files = false;
! doing_permissions_file = false;
! doing_permissions_dir = true;
}
else if ( *cstr == "USE_SOURCE_PERMISSIONS" )
--- 1815,1819 ----
use_given_permissions_dir = true;
! doing = DoingPermissionsDir;
}
else if ( *cstr == "USE_SOURCE_PERMISSIONS" )
***************
*** 1851,1858 ****
}
! doing_properties = false;
! doing_files = false;
! doing_permissions_file = false;
! doing_permissions_dir = false;
use_source_permissions = true;
}
--- 1827,1831 ----
}
! doing = DoingNone;
use_source_permissions = true;
}
***************
*** 1867,1874 ****
}
! doing_properties = false;
! doing_files = false;
! doing_permissions_file = false;
! doing_permissions_dir = false;
installer.MatchlessFiles = false;
}
--- 1840,1844 ----
}
! doing = DoingNone;
installer.MatchlessFiles = false;
}
***************
*** 1891,1895 ****
return false;
}
! else if ( *cstr == "FILES" && !doing_files)
{
if(current_match_rule)
--- 1861,1865 ----
return false;
}
! else if(*cstr == "FILES" && doing != DoingFiles)
{
if(current_match_rule)
***************
*** 1901,1919 ****
}
! doing_files = true;
! doing_properties = false;
! doing_permissions_file = false;
! doing_permissions_dir = false;
}
! else if ( doing_properties && i < args.size()-1 )
{
properties[args[i]] = args[i+1].c_str();
i++;
}
! else if ( doing_files )
{
files.push_back(*cstr);
}
! else if(doing_permissions_file)
{
if(!installer.CheckPermissions(args[i], permissions_file))
--- 1871,1886 ----
}
! doing = DoingFiles;
}
! else if(doing == DoingProperties && i < args.size()-1)
{
properties[args[i]] = args[i+1].c_str();
i++;
}
! else if(doing == DoingFiles)
{
files.push_back(*cstr);
}
! else if(doing == DoingPermissionsFile)
{
if(!installer.CheckPermissions(args[i], permissions_file))
***************
*** 1922,1926 ****
}
}
! else if(doing_permissions_dir)
{
if(!installer.CheckPermissions(args[i], permissions_dir))
--- 1889,1893 ----
}
}
! else if(doing == DoingPermissionsDir)
{
if(!installer.CheckPermissions(args[i], permissions_dir))
***************
*** 1929,1933 ****
}
}
! else if(doing_permissions_match)
{
if(!installer.CheckPermissions(
--- 1896,1900 ----
}
}
! else if(doing == DoingPermissionsMatch)
{
if(!installer.CheckPermissions(
More information about the Cmake-commits
mailing list