From 8898ad9b25fca6afe2374d293a981db02a83d7e9 Mon Sep 17 00:00:00 2001 From: "FWoltermann@gmail.com" Date: Thu, 31 May 2012 14:46:27 +0000 Subject: Committing the documentation to svn to have it accessible online --- .../html/n_gen_ex_2_locale__ss_8cpp_source.html | 354 +++++++++++++++++++++ 1 file changed, 354 insertions(+) create mode 100644 Doc/doxygen/html/n_gen_ex_2_locale__ss_8cpp_source.html (limited to 'Doc/doxygen/html/n_gen_ex_2_locale__ss_8cpp_source.html') diff --git a/Doc/doxygen/html/n_gen_ex_2_locale__ss_8cpp_source.html b/Doc/doxygen/html/n_gen_ex_2_locale__ss_8cpp_source.html new file mode 100644 index 0000000..a36dfce --- /dev/null +++ b/Doc/doxygen/html/n_gen_ex_2_locale__ss_8cpp_source.html @@ -0,0 +1,354 @@ + + + + + +Starshatter_Open: D:/SRC/StarshatterSVN/nGenEx/Locale_ss.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
Starshatter_Open +
+
Open source Starshatter engine
+
+
+ + + + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Locale_ss.cpp
+
+
+Go to the documentation of this file.
1 /* Project nGenEx
+
2  Destroyer Studios LLC
+
3  Copyright © 1997-2006. All Rights Reserved.
+
4 
+
5  SUBSYSTEM: nGenEx.lib
+
6  FILE: Locale.cpp
+
7  AUTHOR: John DiCamillo
+
8 
+
9 
+
10  OVERVIEW
+
11  ========
+
12  3D Locale (Polygon) Object
+
13 */
+
14 
+
15 #include "MemDebug.h"
+
16 #include "Locale_ss.h"
+
17 
+
18 void Print(const char* fmt, ...);
+
19 
+
20 // +--------------------------------------------------------------------+
+
21 
+
22 static List<Locale> locales;
+
23 
+
24 // +--------------------------------------------------------------------+
+
25 
+
26 Locale::Locale(const char* l, const char* c, const char* v)
+
27 {
+
28  ZeroMemory(this, sizeof(Locale));
+
29  if (l && *l) {
+
30  strncpy_s(language, l, 6);
+
31  char* p = language;
+
32  while (*p) {
+
33  *p = tolower(*p);
+
34  p++;
+
35  }
+
36  }
+
37 
+
38  if (c && *c) {
+
39  strncpy_s(country, c, 6);
+
40  char* p = country;
+
41  while (*p) {
+
42  *p = toupper(*p);
+
43  p++;
+
44  }
+
45  }
+
46 
+
47  if (v && *v) {
+
48  strncpy_s(variant, v, 6);
+
49  char* p = variant;
+
50  while (*p) {
+
51  *p = tolower(*p);
+
52  p++;
+
53  }
+
54  }
+
55 
+
56  locales.append(this);
+
57 }
+
58 
+
59 // +--------------------------------------------------------------------+
+
60 
+ +
62 {
+
63  locales.remove(this);
+
64 }
+
65 
+
66 // +--------------------------------------------------------------------+
+
67 
+
68 int
+
69 Locale::operator == (const Locale& that) const
+
70 {
+
71  if (this == &that) return 1;
+
72 
+
73  return !_stricmp(language, that.language) &&
+
74  !_stricmp(country, that.country) &&
+
75  !_stricmp(variant, that.variant);
+
76 }
+
77 
+
78 // +--------------------------------------------------------------------+
+
79 
+
80 Locale*
+
81 Locale::ParseLocale(const char* str)
+
82 {
+
83  if (str && *str) {
+
84  int i = 0;
+
85  char s1[4];
+
86  char s2[4];
+
87  char s3[4];
+
88 
+
89  while (*str && *str != '_' && i < 3) {
+
90  s1[i] = *str++;
+
91  i++;
+
92  }
+
93  s1[i] = 0;
+
94  i = 0;
+
95 
+
96  if (*str == '_')
+
97  str++;
+
98 
+
99  while (*str && *str != '_' && i < 3) {
+
100  s2[i] = *str++;
+
101  i++;
+
102  }
+
103  s2[i] = 0;
+
104  i = 0;
+
105 
+
106  if (*str == '_')
+
107  str++;
+
108 
+
109  while (*str && *str != '_' && i < 3) {
+
110  s3[i] = *str++;
+
111  i++;
+
112  }
+
113  s3[i] = 0;
+
114  i = 0;
+
115 
+
116  return CreateLocale(s1, s2, s3);
+
117  }
+
118 
+
119  return 0;
+
120 }
+
121 
+
122 // +--------------------------------------------------------------------+
+
123 
+
124 Locale*
+
125 Locale::CreateLocale(const char* l, const char* c, const char* v)
+
126 {
+
127  ListIter<Locale> iter = locales;
+
128  while (++iter) {
+
129  Locale* loc = iter.value();
+
130  if (!_stricmp(l, loc->GetLanguage())) {
+
131  if (c && *c) {
+
132  if (!_stricmp(c, loc->GetCountry())) {
+
133  if (v && *v) {
+
134  if (!_stricmp(v, loc->GetVariant())) {
+
135  return loc;
+
136  }
+
137  }
+
138  else {
+
139  return loc;
+
140  }
+
141  }
+
142  }
+
143  else {
+
144  return loc;
+
145  }
+
146  }
+
147  }
+
148 
+
149  if (l[0]) {
+
150  if (c[0]) {
+
151  if (v[0]) {
+
152  return new(__FILE__,__LINE__) Locale(l, c, v);
+
153  }
+
154  return new(__FILE__,__LINE__) Locale(l, c);
+
155  }
+
156  return new(__FILE__,__LINE__) Locale(l);
+
157  }
+
158 
+
159  return 0;
+
160 }
+
161 
+
162 // +--------------------------------------------------------------------+
+
163 
+
164 const List<Locale>&
+ +
166 {
+
167  return locales;
+
168 }
+
169 
+
170 // +--------------------------------------------------------------------+
+
171 
+
172 const Text
+
173 Locale::GetFullCode() const
+
174 {
+
175  Text result = language;
+
176  if (*country) {
+
177  result.append("_");
+
178  result.append(country);
+
179 
+
180  if (*variant) {
+
181  result.append("_");
+
182  result.append(variant);
+
183  }
+
184  }
+
185  return result;
+
186 }
+
187 
+
188 // +--------------------------------------------------------------------+
+
189 
+
190 static const char* languages[] = {
+
191  "en", "English",
+
192  "fr", "French",
+
193  "de", "German",
+
194  "it", "Italian",
+
195  "pt", "Portuguese",
+
196  "ru", "Russian",
+
197  "es", "Spanish"
+
198 };
+
199 
+
200 static const char* countries[] = {
+
201  "US", "USA",
+
202  "CA", "Canada",
+
203  "FR", "France",
+
204  "DE", "Germany",
+
205  "IT", "Italy",
+
206  "PT", "Portugal",
+
207  "RU", "Russia",
+
208  "ES", "Spain",
+
209  "UK", "United Kingdom"
+
210 };
+
211 
+
212 const Text
+ +
214 {
+
215  Text result;
+
216  if (*language) {
+
217  for (int i = 0; i < 14; i += 2) {
+
218  if (!_stricmp(language, languages[i])) {
+
219  result = languages[i+1];
+
220  break;
+
221  }
+
222  }
+
223 
+
224  if (*country) {
+
225  for (int i = 0; i < 18; i += 2) {
+
226  if (!_stricmp(country, countries[i])) {
+
227  result.append(" - ");
+
228  result.append(countries[i+1]);
+
229  break;
+
230  }
+
231  }
+
232  }
+
233 
+
234  }
+
235  return result;
+
236 }
+
237 
+
+
+ + + + -- cgit v1.1