From 95512a4c0230986c52951102909dac00dcfe4bf4 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 5 Mar 2008 17:26:32 -0500 Subject: [PATCH] BUG: Fix parsing of policy version number in cmPolicies. --- Source/cmPolicies.cxx | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/Source/cmPolicies.cxx b/Source/cmPolicies.cxx index 77d903f32..a60fc1c3f 100644 --- a/Source/cmPolicies.cxx +++ b/Source/cmPolicies.cxx @@ -175,25 +175,10 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile *mf, unsigned int majorVer = 2; unsigned int minorVer = 0; unsigned int patchVer = 0; - + // parse the string - std::string major = ver.substr(0,ver.find('.')); - std::string patch = ver.substr(ver.find('.')); - std::string minor = patch.substr(0,patch.find('.')); - patch = patch.substr(patch.find('.')); - - if (major.size()) - { - majorVer = atoi(major.c_str()); - } - if (minor.size()) - { - minorVer = atoi(minor.c_str()); - } - if (patch.size()) - { - patchVer = atoi(patch.c_str()); - } + sscanf(ver.c_str(), "%u.%u.%u", + &majorVer, &minorVer, &patchVer); // add in the old CMAKE_BACKWARDS_COMPATIBILITY var for old CMake compatibility if ((majorVer == 2 && minorVer <= 4) || majorVer < 2)