From 1922d8c2cf7dcaacafd17394849577794b1f10eb Mon Sep 17 00:00:00 2001
From: open-license-manager <rillf@maildrop.cc>
Date: 周六, 13 9月 2014 06:24:55 +0800
Subject: [PATCH] signature windows

---
 src/license-generator/license-generator.cpp |   33 ++++++++++++++-------------------
 1 files changed, 14 insertions(+), 19 deletions(-)

diff --git a/src/license-generator/license-generator.cpp b/src/license-generator/license-generator.cpp
index 466d5d7..846d5d9 100644
--- a/src/license-generator/license-generator.cpp
+++ b/src/license-generator/license-generator.cpp
@@ -81,7 +81,7 @@
 			time_t curtime = time(NULL);
 			strftime(curdate, 20, "%Y-%m-%d", localtime(&curtime));
 			begin_date.assign(curdate);
-		} catch (invalid_argument &e) {
+		} catch (const invalid_argument &e) {
 			cerr << endl << "End date not recognized: " << dt_end
 					<< " Please enter a valid date in format YYYYMMDD" << endl;
 			exit(2);
@@ -189,29 +189,24 @@
 }
 
 
-const std::locale formats[] = { std::locale(std::locale::classic(),
-		new bt::time_input_facet("%Y-%m-%d")), //
-std::locale(std::locale::classic(), new bt::time_input_facet("%Y/%m/%d")), //
-std::locale(std::locale::classic(), new bt::time_input_facet("%Y%m%d")) };
-const size_t formats_n = sizeof(formats) / sizeof(formats[0]);
+const std::string formats[] = { "%4u-%2u-%2u","%4u/%2u/%2u","%4u%2u%2u" };
+const size_t formats_n = 3;
 
-string LicenseGenerator::normalize_date(const std::string& s) {
-	bt::ptime pt;
-	for (size_t i = 0; i < formats_n; ++i) {
-		std::istringstream is(s);
-		is.imbue(formats[i]);
-		is >> pt;
-		if (pt != bt::ptime()) {
-			break;
+string LicenseGenerator::normalize_date(const char * s) {
+	unsigned int year, month, day;
+	int chread;
+	bool found = false;
+	for (size_t i = 0; i < formats_n &&!found; ++i) {
+		chread = sscanf(s, formats[i].c_str(),&year, &month, &day);
+		if (chread == 3){
+			found = true;
 		}
 	}
-	if (pt == bt::ptime()) {
-		throw invalid_argument(string("Date not regognized") + s);
+	if (!found){
+		throw invalid_argument("Date not recognized.");
 	}
 	ostringstream oss;
-	bt::time_facet *facet = new bt::time_facet("%Y-%m-%d");
-	oss.imbue(locale(cout.getloc(), facet));
-	oss << pt;
+	oss << year << "-"<<setfill('0') << std::setw(2)<< month<<"-"<<day;
 	//delete (facet);
 	return oss.str();
 }

--
Gitblit v1.9.1