From 9a9de7689176de013872e5a6a5367f79202d0844 Mon Sep 17 00:00:00 2001 From: "FWoltermann@gmail.com" Date: Sat, 26 May 2012 16:38:08 +0000 Subject: Getting closer to getting magic to compile. The file renaming was necessary in order to remove a conflict between the WinSDK's locale.h and starshatter's own version. --- nGenEx/ContentBundle.h | 2 +- nGenEx/Locale.cpp | 237 ------------------------------------------ nGenEx/Locale.h | 53 ---------- nGenEx/Locale_ss.cpp | 237 ++++++++++++++++++++++++++++++++++++++++++ nGenEx/Locale_ss.h | 53 ++++++++++ nGenEx/nGenEx.vcxproj | 4 +- nGenEx/nGenEx.vcxproj.filters | 12 +-- 7 files changed, 299 insertions(+), 299 deletions(-) delete mode 100644 nGenEx/Locale.cpp delete mode 100644 nGenEx/Locale.h create mode 100644 nGenEx/Locale_ss.cpp create mode 100644 nGenEx/Locale_ss.h (limited to 'nGenEx') diff --git a/nGenEx/ContentBundle.h b/nGenEx/ContentBundle.h index d0c103b..4848716 100644 --- a/nGenEx/ContentBundle.h +++ b/nGenEx/ContentBundle.h @@ -18,7 +18,7 @@ #include "Types.h" #include "Dictionary.h" #include "Text.h" -#include "Locale.h" +#include "Locale_ss.h" // +--------------------------------------------------------------------+ diff --git a/nGenEx/Locale.cpp b/nGenEx/Locale.cpp deleted file mode 100644 index 1e7d511..0000000 --- a/nGenEx/Locale.cpp +++ /dev/null @@ -1,237 +0,0 @@ -/* Project nGenEx - Destroyer Studios LLC - Copyright © 1997-2006. All Rights Reserved. - - SUBSYSTEM: nGenEx.lib - FILE: Locale.cpp - AUTHOR: John DiCamillo - - - OVERVIEW - ======== - 3D Locale (Polygon) Object -*/ - -#include "MemDebug.h" -#include "Locale.h" - -void Print(const char* fmt, ...); - -// +--------------------------------------------------------------------+ - -static List locales; - -// +--------------------------------------------------------------------+ - -Locale::Locale(const char* l, const char* c, const char* v) -{ - ZeroMemory(this, sizeof(Locale)); - if (l && *l) { - strncpy_s(language, l, 6); - char* p = language; - while (*p) { - *p = tolower(*p); - p++; - } - } - - if (c && *c) { - strncpy_s(country, c, 6); - char* p = country; - while (*p) { - *p = toupper(*p); - p++; - } - } - - if (v && *v) { - strncpy_s(variant, v, 6); - char* p = variant; - while (*p) { - *p = tolower(*p); - p++; - } - } - - locales.append(this); -} - -// +--------------------------------------------------------------------+ - -Locale::~Locale() -{ - locales.remove(this); -} - -// +--------------------------------------------------------------------+ - -int -Locale::operator == (const Locale& that) const -{ - if (this == &that) return 1; - - return !_stricmp(language, that.language) && - !_stricmp(country, that.country) && - !_stricmp(variant, that.variant); -} - -// +--------------------------------------------------------------------+ - -Locale* -Locale::ParseLocale(const char* str) -{ - if (str && *str) { - int i = 0; - char s1[4]; - char s2[4]; - char s3[4]; - - while (*str && *str != '_' && i < 3) { - s1[i] = *str++; - i++; - } - s1[i] = 0; - i = 0; - - if (*str == '_') - str++; - - while (*str && *str != '_' && i < 3) { - s2[i] = *str++; - i++; - } - s2[i] = 0; - i = 0; - - if (*str == '_') - str++; - - while (*str && *str != '_' && i < 3) { - s3[i] = *str++; - i++; - } - s3[i] = 0; - i = 0; - - return CreateLocale(s1, s2, s3); - } - - return 0; -} - -// +--------------------------------------------------------------------+ - -Locale* -Locale::CreateLocale(const char* l, const char* c, const char* v) -{ - ListIter iter = locales; - while (++iter) { - Locale* loc = iter.value(); - if (!_stricmp(l, loc->GetLanguage())) { - if (c && *c) { - if (!_stricmp(c, loc->GetCountry())) { - if (v && *v) { - if (!_stricmp(v, loc->GetVariant())) { - return loc; - } - } - else { - return loc; - } - } - } - else { - return loc; - } - } - } - - if (l[0]) { - if (c[0]) { - if (v[0]) { - return new(__FILE__,__LINE__) Locale(l, c, v); - } - return new(__FILE__,__LINE__) Locale(l, c); - } - return new(__FILE__,__LINE__) Locale(l); - } - - return 0; -} - -// +--------------------------------------------------------------------+ - -const List& -Locale::GetAllLocales() -{ - return locales; -} - -// +--------------------------------------------------------------------+ - -const Text -Locale::GetFullCode() const -{ - Text result = language; - if (*country) { - result.append("_"); - result.append(country); - - if (*variant) { - result.append("_"); - result.append(variant); - } - } - return result; -} - -// +--------------------------------------------------------------------+ - -static const char* languages[] = { - "en", "English", - "fr", "French", - "de", "German", - "it", "Italian", - "pt", "Portuguese", - "ru", "Russian", - "es", "Spanish" -}; - -static const char* countries[] = { - "US", "USA", - "CA", "Canada", - "FR", "France", - "DE", "Germany", - "IT", "Italy", - "PT", "Portugal", - "RU", "Russia", - "ES", "Spain", - "UK", "United Kingdom" -}; - -const Text -Locale::GetDisplayName() const -{ - Text result; - if (*language) { - for (int i = 0; i < 14; i += 2) { - if (!_stricmp(language, languages[i])) { - result = languages[i+1]; - break; - } - } - - if (*country) { - for (int i = 0; i < 18; i += 2) { - if (!_stricmp(country, countries[i])) { - result.append(" - "); - result.append(countries[i+1]); - break; - } - } - } - - } - return result; -} - diff --git a/nGenEx/Locale.h b/nGenEx/Locale.h deleted file mode 100644 index 551c379..0000000 --- a/nGenEx/Locale.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Project nGenEx - Destroyer Studios LLC - Copyright © 1997-2006. All Rights Reserved. - - SUBSYSTEM: nGenEx.lib - FILE: Locale.h - AUTHOR: John DiCamillo - - - OVERVIEW - ======== - Description of locale by ISO language, country, and variant -*/ - -#ifndef Locale_h -#define Locale_h - -#include "List.h" -#include "Text.h" - -// +--------------------------------------------------------------------+ - -class Locale -{ -public: - static const char* TYPENAME() { return "Locale"; } - - Locale(const char* language, const char* country=0, const char* variant=0); - ~Locale(); - - int operator == (const Locale& that) const; - - // Operations: - static const List& GetAllLocales(); - static Locale* ParseLocale(const char* str); - - // Property accessors: - const char* GetLanguage() const { return language; } - const char* GetCountry() const { return country; } - const char* GetVariant() const { return variant; } - const Text GetFullCode() const; - const Text GetDisplayName() const; - - -protected: - static Locale* CreateLocale(const char* language, const char* country=0, const char* variant=0); - char language[8]; - char country[8]; - char variant[8]; -}; - -#endif Locale_h - diff --git a/nGenEx/Locale_ss.cpp b/nGenEx/Locale_ss.cpp new file mode 100644 index 0000000..9a87650 --- /dev/null +++ b/nGenEx/Locale_ss.cpp @@ -0,0 +1,237 @@ +/* Project nGenEx + Destroyer Studios LLC + Copyright © 1997-2006. All Rights Reserved. + + SUBSYSTEM: nGenEx.lib + FILE: Locale.cpp + AUTHOR: John DiCamillo + + + OVERVIEW + ======== + 3D Locale (Polygon) Object +*/ + +#include "MemDebug.h" +#include "Locale_ss.h" + +void Print(const char* fmt, ...); + +// +--------------------------------------------------------------------+ + +static List locales; + +// +--------------------------------------------------------------------+ + +Locale::Locale(const char* l, const char* c, const char* v) +{ + ZeroMemory(this, sizeof(Locale)); + if (l && *l) { + strncpy_s(language, l, 6); + char* p = language; + while (*p) { + *p = tolower(*p); + p++; + } + } + + if (c && *c) { + strncpy_s(country, c, 6); + char* p = country; + while (*p) { + *p = toupper(*p); + p++; + } + } + + if (v && *v) { + strncpy_s(variant, v, 6); + char* p = variant; + while (*p) { + *p = tolower(*p); + p++; + } + } + + locales.append(this); +} + +// +--------------------------------------------------------------------+ + +Locale::~Locale() +{ + locales.remove(this); +} + +// +--------------------------------------------------------------------+ + +int +Locale::operator == (const Locale& that) const +{ + if (this == &that) return 1; + + return !_stricmp(language, that.language) && + !_stricmp(country, that.country) && + !_stricmp(variant, that.variant); +} + +// +--------------------------------------------------------------------+ + +Locale* +Locale::ParseLocale(const char* str) +{ + if (str && *str) { + int i = 0; + char s1[4]; + char s2[4]; + char s3[4]; + + while (*str && *str != '_' && i < 3) { + s1[i] = *str++; + i++; + } + s1[i] = 0; + i = 0; + + if (*str == '_') + str++; + + while (*str && *str != '_' && i < 3) { + s2[i] = *str++; + i++; + } + s2[i] = 0; + i = 0; + + if (*str == '_') + str++; + + while (*str && *str != '_' && i < 3) { + s3[i] = *str++; + i++; + } + s3[i] = 0; + i = 0; + + return CreateLocale(s1, s2, s3); + } + + return 0; +} + +// +--------------------------------------------------------------------+ + +Locale* +Locale::CreateLocale(const char* l, const char* c, const char* v) +{ + ListIter iter = locales; + while (++iter) { + Locale* loc = iter.value(); + if (!_stricmp(l, loc->GetLanguage())) { + if (c && *c) { + if (!_stricmp(c, loc->GetCountry())) { + if (v && *v) { + if (!_stricmp(v, loc->GetVariant())) { + return loc; + } + } + else { + return loc; + } + } + } + else { + return loc; + } + } + } + + if (l[0]) { + if (c[0]) { + if (v[0]) { + return new(__FILE__,__LINE__) Locale(l, c, v); + } + return new(__FILE__,__LINE__) Locale(l, c); + } + return new(__FILE__,__LINE__) Locale(l); + } + + return 0; +} + +// +--------------------------------------------------------------------+ + +const List& +Locale::GetAllLocales() +{ + return locales; +} + +// +--------------------------------------------------------------------+ + +const Text +Locale::GetFullCode() const +{ + Text result = language; + if (*country) { + result.append("_"); + result.append(country); + + if (*variant) { + result.append("_"); + result.append(variant); + } + } + return result; +} + +// +--------------------------------------------------------------------+ + +static const char* languages[] = { + "en", "English", + "fr", "French", + "de", "German", + "it", "Italian", + "pt", "Portuguese", + "ru", "Russian", + "es", "Spanish" +}; + +static const char* countries[] = { + "US", "USA", + "CA", "Canada", + "FR", "France", + "DE", "Germany", + "IT", "Italy", + "PT", "Portugal", + "RU", "Russia", + "ES", "Spain", + "UK", "United Kingdom" +}; + +const Text +Locale::GetDisplayName() const +{ + Text result; + if (*language) { + for (int i = 0; i < 14; i += 2) { + if (!_stricmp(language, languages[i])) { + result = languages[i+1]; + break; + } + } + + if (*country) { + for (int i = 0; i < 18; i += 2) { + if (!_stricmp(country, countries[i])) { + result.append(" - "); + result.append(countries[i+1]); + break; + } + } + } + + } + return result; +} + diff --git a/nGenEx/Locale_ss.h b/nGenEx/Locale_ss.h new file mode 100644 index 0000000..551c379 --- /dev/null +++ b/nGenEx/Locale_ss.h @@ -0,0 +1,53 @@ +/* Project nGenEx + Destroyer Studios LLC + Copyright © 1997-2006. All Rights Reserved. + + SUBSYSTEM: nGenEx.lib + FILE: Locale.h + AUTHOR: John DiCamillo + + + OVERVIEW + ======== + Description of locale by ISO language, country, and variant +*/ + +#ifndef Locale_h +#define Locale_h + +#include "List.h" +#include "Text.h" + +// +--------------------------------------------------------------------+ + +class Locale +{ +public: + static const char* TYPENAME() { return "Locale"; } + + Locale(const char* language, const char* country=0, const char* variant=0); + ~Locale(); + + int operator == (const Locale& that) const; + + // Operations: + static const List& GetAllLocales(); + static Locale* ParseLocale(const char* str); + + // Property accessors: + const char* GetLanguage() const { return language; } + const char* GetCountry() const { return country; } + const char* GetVariant() const { return variant; } + const Text GetFullCode() const; + const Text GetDisplayName() const; + + +protected: + static Locale* CreateLocale(const char* language, const char* country=0, const char* variant=0); + char language[8]; + char country[8]; + char variant[8]; +}; + +#endif Locale_h + diff --git a/nGenEx/nGenEx.vcxproj b/nGenEx/nGenEx.vcxproj index 9a0b68d..3b9f232 100644 --- a/nGenEx/nGenEx.vcxproj +++ b/nGenEx/nGenEx.vcxproj @@ -373,7 +373,7 @@ - + @@ -461,7 +461,7 @@ - + diff --git a/nGenEx/nGenEx.vcxproj.filters b/nGenEx/nGenEx.vcxproj.filters index b31e5e7..e5049f1 100644 --- a/nGenEx/nGenEx.vcxproj.filters +++ b/nGenEx/nGenEx.vcxproj.filters @@ -119,9 +119,6 @@ Source Files - - Source Files - Source Files @@ -257,6 +254,9 @@ Source Files + + Source Files + @@ -379,9 +379,6 @@ Header Files - - Header Files - Header Files @@ -538,6 +535,9 @@ Header Files + + Header Files + -- cgit v1.1