diff sources/engine.cpp @ 2:19227b0b7cc1

.h => .hpp for the headers added year 2008 to copyright notes renamed some functions for better meaning prepared parser module for rewriting added showHelp() function some code clean up
author Vlad Glagolev <enqlave@gmail.com>
date Mon, 21 Jan 2008 01:14:10 +0300
parents bafff9de2a76
children a7051ac7118b
line wrap: on
line diff
--- a/sources/engine.cpp	Sun Jan 20 19:32:59 2008 +0300
+++ b/sources/engine.cpp	Mon Jan 21 01:14:10 2008 +0300
@@ -3,7 +3,7 @@
  *
  * -- CABAL -- engine (useful functions)
  *
- * Copyright (c) 2007 Vlad Glagolev <enqlave@gmail.com>
+ * Copyright (c) 2007-2008 Vlad Glagolev <enqlave@gmail.com>
  * All rights reserved.
  *
  * Permission to use, copy, modify, and distribute this software for any
@@ -19,7 +19,7 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include "engine.h"
+#include "engine.hpp"
 
 bool daemonize()
 {
@@ -38,278 +38,275 @@
 	return time (&t);
 }
 
-char *eTime (time_t t)
+char *eTime(time_t t)
 {
-	char *nt = asctime (localtime (&t));
+	char *nt = asctime(localtime(&t));
 
-	nt[strlen (nt) - 1] = 0;
+	nt[strlen(nt) - 1] = 0;
 
 	return nt;
 }
 
-char *eCountry (char *c)
+string getCountry(string c)
 {
-	if (!*c)
+	if (c == "")
 		return "Enter the correct code of country";
-	else
-		sscanf (c, "%s", c);
 
 	struct countries {
-		char *code;
-		char *country;
+		string code;
+		string country;
 	} countries[] = {
-		"AC", "Ascension Island",
-		"AD", "Andorra",
-		"AE", "United Arab Emirates",
-		"AF", "Afghanistan",
-		"AG", "Antigua and Barbuda",
-		"AI", "Anguilla",
-		"AL", "Albania",
-		"AM", "Armenia",
-		"AN", "Netherlands Antilles",
-		"AO", "Angola",
-		"AQ", "Antarctica",
-		"AR", "Argentina",
-		"AS", "American Samoa",
-		"AT", "Austria",
-		"AU", "Australia",
-		"AW", "Aruba",
-		"AX", "Aland Islands",
-		"AZ", "Azerbaijan",
-		"BA", "Bosnia and Herzegovina",
-		"BB", "Barbados",
-		"BD", "Bangladesh",
-		"BE", "Belgium",
-		"BF", "Burkina Faso",
-		"BG", "Bulgaria",
-		"BH", "Bahrain",
-		"BI", "Burundi",
-		"BJ", "Benin",
-		"BM", "Bermuda",
-		"BN", "Brunei Darussalam",
-		"BO", "Bolivia",
-		"BR", "Brazil",
-		"BS", "Bahamas",
-		"BT", "Bhutan",
-		"BU", "Burma",
-		"BV", "Bouvet Island",
-		"BW", "Botswana",
-		"BY", "Belarus",
-		"BZ", "Belize",
-		"CA", "Canada",
-		"CC", "Cocos (Keeling) Islands",
-		"CD", "The Democratic Republic of the Congo",
-		"CF", "Central African Republic",
-		"CG", "Congo",
-		"CH", "Switzerland",
-		"CI", "Cote d'Ivoire (Ivory Coast)",
-		"CK", "Cook Islands",
-		"CL", "Chile",
-		"CM", "Cameroon",
-		"CN", "China",
-		"CO", "Colombia",
-		"CR", "Costa Rica",
-		"CS", "Serbia and Montenegro",
-		"CU", "Cuba",
-		"CV", "Cape Verde",
-		"CX", "Christmas Island",
-		"CY", "Cyprus",
-		"CZ", "Czech Republic",
-		"DE", "Germany",
-		"DJ", "Djibouti",
-		"DK", "Denmark",
-		"DM", "Dominica",
-		"DO", "Dominican Republic",
-		"DZ", "Algeria",
-		"EC", "Ecuador",
-		"EE", "Estonia",
-		"EG", "Egypt",
-		"EH", "Western Sahara",
-		"ER", "Eritrea",
-		"ES", "Spain (including Canary Islands, Ceuta and Melilla)",
-		"ET", "Ethiopia",
-		"EU", "European Union",
-		"FI", "Finland",
-		"FJ", "Fiji",
-		"FK", "Falkland Islands (Malvinas)",
-		"FM", "Federated States of Micronesia",
-		"FO", "Faroe Islands",
-		"FR", "France",
-		"GA", "Gabon",
-		"GD", "Grenada",
-		"GE", "Georgia",
-		"GF", "French Guiana",
-		"GG", "Guernsey",
-		"GH", "Ghana",
-		"GI", "Gibraltar",
-		"GL", "Greenland",
-		"GM", "Gambia",
-		"GN", "Guinea",
-		"GP", "Guadeloupe",
-		"GQ", "Equatorial Guinea",
-		"GR", "Greece",
-		"GS", "South Georgia and the South Sandwich Islands",
-		"GT", "Guatemala",
-		"GU", "Guam",
-		"GW", "Guinea-Bissau",
-		"GY", "Guyana",
-		"HK", "Hong Kong",
-		"HM", "Heard Island and McDonald Islands",
-		"HN", "Honduras",
-		"HR", "Croatia",
-		"HT", "Haiti",
-		"HU", "Hungary",
-		"ID", "Indonesia",
-		"IE", "Ireland",
-		"IL", "Israel",
-		"IM", "Isle of Man",
-		"IN", "India",
-		"IO", "British Indian Ocean Territory (including Diego Garcia)",
-		"IQ", "Iraq",
-		"IR", "Islamic Republic of Iran",
-		"IS", "Iceland",
-		"IT", "Italy",
-		"JE", "Jersey",
-		"JM", "Jamaica",
-		"JO", "Jordan",
-		"JP", "Japan",
-		"KE", "Kenya",
-		"KG", "Kyrgyzstan",
-		"KH", "Cambodia",
-		"KI", "Kiribati",
-		"KM", "Comoros",
-		"KN", "Saint Kitts and Nevis",
-		"KP", "Democratic People's Republic of Korea (North Korea)",
-		"KR", "Republic of Korea (South Korea)",
-		"KW", "Kuwait",
-		"KY", "Cayman Islands",
-		"KZ", "Kazakhstan",
-		"LA", "Lao People's Democratic Republic",
-		"LB", "Lebanon",
-		"LC", "Saint Lucia",
-		"LI", "Liechtenstein",
-		"LK", "Sri Lanka",
-		"LR", "Liberia",
-		"LS", "Lesotho",
-		"LT", "Lithuania",
-		"LU", "Luxembourg",
-		"LV", "Latvia",
-		"LY", "Libyan Arab Jamahiriya",
-		"MA", "Morocco",
-		"MC", "Monaco",
-		"MD", "Republic of Moldova",
-		"MG", "Madagascar",
-		"MH", "Marshall Islands",
-		"MK", "Macedonia",
-		"ML", "Mali",
-		"MM", "Myanmar",
-		"MN", "Mongolia",
-		"MO", "Macao",
-		"MP", "Northern Mariana Islands",
-		"MQ", "Martinique",
-		"MR", "Mauritania",
-		"MS", "Montserrat",
-		"MT", "Malta",
-		"MU", "Mauritius",
-		"MV", "Maldives",
-		"MW", "Malawi",
-		"MX", "Mexico",
-		"MY", "Malaysia",
-		"MZ", "Mozambique",
-		"NA", "Namibia",
-		"NC", "New Caledonia",
-		"NE", "Niger",
-		"NF", "Norfolk Island",
-		"NG", "Nigeria",
-		"NI", "Nicaragua",
-		"NL", "Netherlands",
-		"NO", "Norway",
-		"NP", "Nepal",
-		"NR", "Nauru",
-		"NU", "Niue",
-		"NZ", "New Zealand",
-		"OM", "Oman",
-		"PA", "Panama",
-		"PE", "Peru",
-		"PF", "French Polynesia (including Clipperton Island)",
-		"PG", "Papua New Guinea",
-		"PH", "Philippines",
-		"PK", "Pakistan",
-		"PL", "Poland",
-		"PM", "Saint Pierre and Miquelon",
-		"PN", "Pitcairn",
-		"PR", "Puerto Rico",
-		"PS", "Palestinian Territory, Occupied",
-		"PT", "Portugal",
-		"PW", "Palau",
-		"PY", "Paraguay",
-		"QA", "Qatar",
-		"RE", "Reunion",
-		"RO", "Romania",
-		"RU", "Russian Federation",
-		"RW", "Rwanda",
-		"SA", "Saudi Arabia",
-		"SB", "Solomon Islands",
-		"SC", "Seychelles",
-		"SD", "Sudan",
-		"SE", "Sweden",
-		"SG", "Singapore",
-		"SH", "Saint Helena (including Ascension Island and Tristan da Cunha)",
-		"SI", "Slovenia",
-		"SJ", "Svalbard and Jan Mayen consisting of Svalbard and Jan Mayen",
-		"SK", "Slovakia",
-		"SL", "Sierra Leone",
-		"SM", "San Marino",
-		"SN", "Senegal",
-		"SO", "Somalia",
-		"SR", "Suriname",
-		"ST", "Sao Tome and Principe",
-		"SU", "Soviet Union",
-		"SV", "El Salvador",
-		"SY", "Syrian Arab Republic",
-		"SZ", "Swaziland",
-		"TC", "Turks and Caicos Islands",
-		"TD", "Chad",
-		"TF", "French Southern Territories",
-		"TG", "Togo",
-		"TH", "Thailand",
-		"TJ", "Tajikistan",
-		"TK", "Tokelau",
-		"TL", "Timor-Leste (East Timor)",
-		"TM", "Turkmenistan",
-		"TN", "Tunisia",
-		"TO", "Tonga",
-		"TR", "Turkey",
-		"TT", "Trinidad and Tobago",
-		"TV", "Tuvalu",
-		"TW", "Taiwan, Province of China",
-		"TZ", "United Republic of Tanzania",
-		"UA", "Ukraine",
-		"UG", "Uganda",
-		"UK", "United Kingdom",
-		"UM", "United States Minor Outlying Islands",
-		"US", "United States",
-		"UY", "Uruguay",
-		"UZ", "Uzbekistan",
-		"VA", "Holy See (Vatican City State)",
-		"VC", "Saint Vincent and the Grenadines",
-		"VE", "Venezuela",
-		"VG", "Virgin Islands, British",
-		"VI", "Virgin Islands, U.S.",
-		"VN", "Viet Nam",
-		"VU", "Vanuatu",
-		"WF", "Wallis and Futuna",
-		"WS", "Samoa",
-		"YE", "Yemen",
-		"YT", "Mayotte",
-		"ZA", "South Africa",
-		"ZM", "Zambia",
-		"ZW", "Zimbabwe",
-		0
+		{"AC", "Ascension Island"},
+		{"AD", "Andorra"},
+		{"AE", "United Arab Emirates"},
+		{"AF", "Afghanistan"},
+		{"AG", "Antigua and Barbuda"},
+		{"AI", "Anguilla"},
+		{"AL", "Albania"},
+		{"AM", "Armenia"},
+		{"AN", "Netherlands Antilles"},
+		{"AO", "Angola"},
+		{"AQ", "Antarctica"},
+		{"AR", "Argentina"},
+		{"AS", "American Samoa"},
+		{"AT", "Austria"},
+		{"AU", "Australia"},
+		{"AW", "Aruba"},
+		{"AX", "Aland Islands"},
+		{"AZ", "Azerbaijan"},
+		{"BA", "Bosnia and Herzegovina"},
+		{"BB", "Barbados"},
+		{"BD", "Bangladesh"},
+		{"BE", "Belgium"},
+		{"BF", "Burkina Faso"},
+		{"BG", "Bulgaria"},
+		{"BH", "Bahrain"},
+		{"BI", "Burundi"},
+		{"BJ", "Benin"},
+		{"BM", "Bermuda"},
+		{"BN", "Brunei Darussalam"},
+		{"BO", "Bolivia"},
+		{"BR", "Brazil"},
+		{"BS", "Bahamas"},
+		{"BT", "Bhutan"},
+		{"BU", "Burma"},
+		{"BV", "Bouvet Island"},
+		{"BW", "Botswana"},
+		{"BY", "Belarus"},
+		{"BZ", "Belize"},
+		{"CA", "Canada"},
+		{"CC", "Cocos (Keeling) Islands"},
+		{"CD", "The Democratic Republic of the Congo"},
+		{"CF", "Central African Republic"},
+		{"CG", "Congo"},
+		{"CH", "Switzerland"},
+		{"CI", "Cote d'Ivoire (Ivory Coast)"},
+		{"CK", "Cook Islands"},
+		{"CL", "Chile"},
+		{"CM", "Cameroon"},
+		{"CN", "China"},
+		{"CO", "Colombia"},
+		{"CR", "Costa Rica"},
+		{"CS", "Serbia and Montenegro"},
+		{"CU", "Cuba"},
+		{"CV", "Cape Verde"},
+		{"CX", "Christmas Island"},
+		{"CY", "Cyprus"},
+		{"CZ", "Czech Republic"},
+		{"DE", "Germany"},
+		{"DJ", "Djibouti"},
+		{"DK", "Denmark"},
+		{"DM", "Dominica"},
+		{"DO", "Dominican Republic"},
+		{"DZ", "Algeria"},
+		{"EC", "Ecuador"},
+		{"EE", "Estonia"},
+		{"EG", "Egypt"},
+		{"EH", "Western Sahara"},
+		{"ER", "Eritrea"},
+		{"ES", "Spain (inc. Canary Islands, Ceuta and Melilla)"},
+		{"ET", "Ethiopia"},
+		{"EU", "European Union"},
+		{"FI", "Finland"},
+		{"FJ", "Fiji"},
+		{"FK", "Falkland Islands (Malvinas)"},
+		{"FM", "Federated States of Micronesia"},
+		{"FO", "Faroe Islands"},
+		{"FR", "France"},
+		{"GA", "Gabon"},
+		{"GD", "Grenada"},
+		{"GE", "Georgia"},
+		{"GF", "French Guiana"},
+		{"GG", "Guernsey"},
+		{"GH", "Ghana"},
+		{"GI", "Gibraltar"},
+		{"GL", "Greenland"},
+		{"GM", "Gambia"},
+		{"GN", "Guinea"},
+		{"GP", "Guadeloupe"},
+		{"GQ", "Equatorial Guinea"},
+		{"GR", "Greece"},
+		{"GS", "South Georgia and the South Sandwich Islands"},
+		{"GT", "Guatemala"},
+		{"GU", "Guam"},
+		{"GW", "Guinea-Bissau"},
+		{"GY", "Guyana"},
+		{"HK", "Hong Kong"},
+		{"HM", "Heard Island and McDonald Islands"},
+		{"HN", "Honduras"},
+		{"HR", "Croatia"},
+		{"HT", "Haiti"},
+		{"HU", "Hungary"},
+		{"ID", "Indonesia"},
+		{"IE", "Ireland"},
+		{"IL", "Israel"},
+		{"IM", "Isle of Man"},
+		{"IN", "India"},
+		{"IO", "British Indian Ocean Territory (inc. Diego Garcia)"},
+		{"IQ", "Iraq"},
+		{"IR", "Islamic Republic of Iran"},
+		{"IS", "Iceland"},
+		{"IT", "Italy"},
+		{"JE", "Jersey"},
+		{"JM", "Jamaica"},
+		{"JO", "Jordan"},
+		{"JP", "Japan"},
+		{"KE", "Kenya"},
+		{"KG", "Kyrgyzstan"},
+		{"KH", "Cambodia"},
+		{"KI", "Kiribati"},
+		{"KM", "Comoros"},
+		{"KN", "Saint Kitts and Nevis"},
+		{"KP", "Democratic People's Republic of Korea (North Korea)"},
+		{"KR", "Republic of Korea (South Korea)"},
+		{"KW", "Kuwait"},
+		{"KY", "Cayman Islands"},
+		{"KZ", "Kazakhstan"},
+		{"LA", "Lao People's Democratic Republic"},
+		{"LB", "Lebanon"},
+		{"LC", "Saint Lucia"},
+		{"LI", "Liechtenstein"},
+		{"LK", "Sri Lanka"},
+		{"LR", "Liberia"},
+		{"LS", "Lesotho"},
+		{"LT", "Lithuania"},
+		{"LU", "Luxembourg"},
+		{"LV", "Latvia"},
+		{"LY", "Libyan Arab Jamahiriya"},
+		{"MA", "Morocco"},
+		{"MC", "Monaco"},
+		{"MD", "Republic of Moldova"},
+		{"MG", "Madagascar"},
+		{"MH", "Marshall Islands"},
+		{"MK", "Macedonia"},
+		{"ML", "Mali"},
+		{"MM", "Myanmar"},
+		{"MN", "Mongolia"},
+		{"MO", "Macao"},
+		{"MP", "Northern Mariana Islands"},
+		{"MQ", "Martinique"},
+		{"MR", "Mauritania"},
+		{"MS", "Montserrat"},
+		{"MT", "Malta"},
+		{"MU", "Mauritius"},
+		{"MV", "Maldives"},
+		{"MW", "Malawi"},
+		{"MX", "Mexico"},
+		{"MY", "Malaysia"},
+		{"MZ", "Mozambique"},
+		{"NA", "Namibia"},
+		{"NC", "New Caledonia"},
+		{"NE", "Niger"},
+		{"NF", "Norfolk Island"},
+		{"NG", "Nigeria"},
+		{"NI", "Nicaragua"},
+		{"NL", "Netherlands"},
+		{"NO", "Norway"},
+		{"NP", "Nepal"},
+		{"NR", "Nauru"},
+		{"NU", "Niue"},
+		{"NZ", "New Zealand"},
+		{"OM", "Oman"},
+		{"PA", "Panama"},
+		{"PE", "Peru"},
+		{"PF", "French Polynesia (inc. Clipperton Island)"},
+		{"PG", "Papua New Guinea"},
+		{"PH", "Philippines"},
+		{"PK", "Pakistan"},
+		{"PL", "Poland"},
+		{"PM", "Saint Pierre and Miquelon"},
+		{"PN", "Pitcairn"},
+		{"PR", "Puerto Rico"},
+		{"PS", "Palestinian Territory, Occupied"},
+		{"PT", "Portugal"},
+		{"PW", "Palau"},
+		{"PY", "Paraguay"},
+		{"QA", "Qatar"},
+		{"RE", "Reunion"},
+		{"RO", "Romania"},
+		{"RU", "Russian Federation"},
+		{"RW", "Rwanda"},
+		{"SA", "Saudi Arabia"},
+		{"SB", "Solomon Islands"},
+		{"SC", "Seychelles"},
+		{"SD", "Sudan"},
+		{"SE", "Sweden"},
+		{"SG", "Singapore"},
+		{"SH", "Saint Helena (inc. Ascension Island and Tristan da Cunha)"},
+		{"SI", "Slovenia"},
+		{"SJ", "Svalbard and Jan Mayen consisting of Svalbard and Jan Mayen"},
+		{"SK", "Slovakia"},
+		{"SL", "Sierra Leone"},
+		{"SM", "San Marino"},
+		{"SN", "Senegal"},
+		{"SO", "Somalia"},
+		{"SR", "Suriname"},
+		{"ST", "Sao Tome and Principe"},
+		{"SU", "Soviet Union"},
+		{"SV", "El Salvador"},
+		{"SY", "Syrian Arab Republic"},
+		{"SZ", "Swaziland"},
+		{"TC", "Turks and Caicos Islands"},
+		{"TD", "Chad"},
+		{"TF", "French Southern Territories"},
+		{"TG", "Togo"},
+		{"TH", "Thailand"},
+		{"TJ", "Tajikistan"},
+		{"TK", "Tokelau"},
+		{"TL", "Timor-Leste (East Timor)"},
+		{"TM", "Turkmenistan"},
+		{"TN", "Tunisia"},
+		{"TO", "Tonga"},
+		{"TR", "Turkey"},
+		{"TT", "Trinidad and Tobago"},
+		{"TV", "Tuvalu"},
+		{"TW", "Taiwan, Province of China"},
+		{"TZ", "United Republic of Tanzania"},
+		{"UA", "Ukraine"},
+		{"UG", "Uganda"},
+		{"UK", "United Kingdom"},
+		{"UM", "United States Minor Outlying Islands"},
+		{"US", "United States"},
+		{"UY", "Uruguay"},
+		{"UZ", "Uzbekistan"},
+		{"VA", "Holy See (Vatican City State)"},
+		{"VC", "Saint Vincent and the Grenadines"},
+		{"VE", "Venezuela"},
+		{"VG", "Virgin Islands, British"},
+		{"VI", "Virgin Islands, U.S."},
+		{"VN", "Viet Nam"},
+		{"VU", "Vanuatu"},
+		{"WF", "Wallis and Futuna"},
+		{"WS", "Samoa"},
+		{"YE", "Yemen"},
+		{"YT", "Mayotte"},
+		{"ZA", "South Africa"},
+		{"ZM", "Zambia"},
+		{"ZW", "Zimbabwe"},
 	};
 
-	for (int e = 0; countries[e].code; e++)
-		if (!strcasecmp (countries[e].code, c))
+	for (int e = 0; countries[e].code != ""; e++)
+		if (countries[e].code == c)
 			return countries[e].country;
 
 	return "Incorrect country code, try again";