ReactOS Fundraising Campaign 2012
 
€ 3,303 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

c_locale_dummy.c

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 1999
00003  * Silicon Graphics Computer Systems, Inc.
00004  *
00005  * Copyright (c) 1999
00006  * Boris Fomitchev
00007  *
00008  * This material is provided "as is", with absolutely no warranty expressed
00009  * or implied. Any use is at your own risk.
00010  *
00011  * Permission to use or copy this software for any purpose is hereby granted
00012  * without fee, provided the above notices are retained on all copies.
00013  * Permission to modify the code and to distribute modified code is granted,
00014  * provided the above notices are retained, and a notice that the code was
00015  * modified is included with the above copyright notice.
00016  *
00017  */
00018 
00019 /* This is a "stub" implementation of the "c_locale.h" interface,
00020    intended for operating systems where we have not yet written
00021    a real implementation.  A C++ library using this stub implementation
00022    is still standard-conforming, since the C++ standard does not require
00023    that any locales other than "C" be supported.
00024 */
00025 
00026 #include <string.h>
00027 #include <wchar.h>
00028 #include <ctype.h>
00029 #include <wctype.h>
00030 #include <limits.h>
00031 
00032 #if defined (_STLP_USE_SAFE_STRING_FUNCTIONS)
00033 #  define _STLP_STRNCPY(D, DS, S, C) strncpy_s(D, DS, S, C)
00034 #  if !defined (_STLP_NO_WCHAR_T)
00035 #    define _STLP_WCSNCPY(D, DS, S, C) wcsncpy_s(D, DS, S, C)
00036 #  endif
00037 #else
00038 #  define _STLP_STRNCPY(D, DS, S, C) strncpy(D, S, C)
00039 #  if !defined (_STLP_NO_WCHAR_T)
00040 #    define _STLP_WCSNCPY(D, DS, S, C) wcsncpy(D, S, C)
00041 #  endif
00042 #endif
00043 
00044 static const char *_C_name = "C";
00045 static const char *_empty_str = "";
00046 #ifndef _STLP_NO_WCHAR_T
00047 static const wchar_t *_empty_wstr = L"";
00048 #endif
00049 
00050 static _Locale_mask_t ctable[256];
00051 
00052 /* Framework functions */
00053 
00054 void _Locale_init(void) {
00055   /* Ctype table for the ASCII character set. */
00056   char c;
00057   /* We might never reach 128 when char is signed. */
00058   for (c = 0; /* c != 128 */; ++c) {
00059     if (isalpha(c)) ctable[(unsigned char)c] |= _Locale_ALPHA;
00060     if (iscntrl(c)) ctable[(unsigned char)c] |= _Locale_CNTRL;
00061     if (isdigit(c)) ctable[(unsigned char)c] |= _Locale_DIGIT;
00062     if (isprint(c)) ctable[(unsigned char)c] |= _Locale_PRINT;
00063     if (ispunct(c)) ctable[(unsigned char)c] |= _Locale_PUNCT;
00064     if (isspace(c)) ctable[(unsigned char)c] |= _Locale_SPACE;
00065     if (isxdigit(c)) ctable[(unsigned char)c] |= _Locale_XDIGIT;
00066     if (isupper(c)) ctable[(unsigned char)c] |= _Locale_UPPER;
00067     if (islower(c)) ctable[(unsigned char)c] |= _Locale_LOWER;
00068     if (c == 127) break;
00069   }
00070 
00071   /* ASCII is a 7-bit code, so everything else is non-ASCII. */
00072   memset(&(ctable[128]), 0, 128 * sizeof(_Locale_mask_t));
00073 }
00074 
00075 void _Locale_final(void)
00076 {}
00077 
00078 void* _Locale_create(const char* name, int *__err_code) {
00079   if (name[0] == 'C' && name[1] == 0)
00080   { return (void*)0x1; }
00081   *__err_code = _STLP_LOC_NO_PLATFORM_SUPPORT; return 0;
00082 }
00083 
00084 struct _Locale_ctype* _Locale_ctype_create(const char *name,
00085                                            struct _Locale_name_hint* hint, int *__err_code)
00086 { return (struct _Locale_ctype*)_Locale_create(name, __err_code); }
00087 
00088 struct _Locale_codecvt* _Locale_codecvt_create(const char *name,
00089                                                struct _Locale_name_hint* hint, int *__err_code)
00090 { return (struct _Locale_codecvt*)_Locale_create(name, __err_code); }
00091 
00092 struct _Locale_numeric* _Locale_numeric_create(const char *name,
00093                                                struct _Locale_name_hint* hint, int *__err_code)
00094 { return (struct _Locale_numeric*)_Locale_create(name, __err_code); }
00095 
00096 struct _Locale_time* _Locale_time_create(const char *name,
00097                                          struct _Locale_name_hint* hint, int *__err_code)
00098 { return (struct _Locale_time*)_Locale_create(name, __err_code); }
00099 
00100 struct _Locale_collate* _Locale_collate_create(const char *name,
00101                                                struct _Locale_name_hint* hint, int *__err_code)
00102 { return (struct _Locale_collate*)_Locale_create(name, __err_code); }
00103 
00104 struct _Locale_monetary* _Locale_monetary_create(const char *name,
00105                                                  struct _Locale_name_hint* hint, int *__err_code)
00106 { return (struct _Locale_monetary*)_Locale_create(name, __err_code); }
00107 
00108 struct _Locale_messages* _Locale_messages_create(const char *name,
00109                                                  struct _Locale_name_hint* hint, int *__err_code)
00110 { return (struct _Locale_messages*)_Locale_create(name, __err_code); }
00111 
00112 const char *_Locale_ctype_default(char* buf)    { return _C_name; }
00113 const char *_Locale_numeric_default(char * buf) { return _C_name; }
00114 const char *_Locale_time_default(char* buf)     { return _C_name; }
00115 const char *_Locale_collate_default(char* buf)  { return _C_name; }
00116 const char *_Locale_monetary_default(char* buf) { return _C_name; }
00117 const char *_Locale_messages_default(char* buf) { return _C_name; }
00118 
00119 char const* _Locale_ctype_name(const struct _Locale_ctype *lctype, char* buf)
00120 { return _C_name; }
00121 
00122 char const* _Locale_codecvt_name(const struct _Locale_codecvt *lcodecvt, char* buf)
00123 { return _C_name; }
00124 
00125 char const* _Locale_numeric_name(const struct _Locale_numeric *lnum, char* buf)
00126 { return _C_name; }
00127 
00128 char const* _Locale_time_name(const struct _Locale_time *ltime, char* buf)
00129 { return _C_name; }
00130 
00131 char const* _Locale_collate_name(const struct _Locale_collate *lcol, char* buf)
00132 { return _C_name; }
00133 
00134 char const* _Locale_monetary_name(const struct _Locale_monetary *lmon, char* buf)
00135 { return _C_name; }
00136 
00137 char const* _Locale_messages_name(const struct _Locale_messages *lmes, char* buf)
00138 { return _C_name; }
00139 
00140 void _Locale_ctype_destroy(struct _Locale_ctype *lctype)     {}
00141 void _Locale_codecvt_destroy(struct _Locale_codecvt *lcodecvt)   {}
00142 void _Locale_numeric_destroy(struct _Locale_numeric *lnum)   {}
00143 void _Locale_time_destroy(struct _Locale_time *ltime)        {}
00144 void _Locale_collate_destroy(struct _Locale_collate *lcol)   {}
00145 void _Locale_monetary_destroy(struct _Locale_monetary *lmon) {}
00146 void _Locale_messages_destroy(struct _Locale_messages *lmes) {}
00147 
00148 static char const* _Locale_extract_name(const char* name, int *__err_code) {
00149   // When the request is the default locale or the "C" locale we answer "C".
00150   if (name[0] == 0 ||
00151       (name[0] == 'C' && name[1] == 0))
00152   {  return _C_name; }
00153   *__err_code = _STLP_LOC_NO_PLATFORM_SUPPORT; return 0;
00154 }
00155 
00156 char const* _Locale_extract_ctype_name(const char *name, char *buf,
00157                                        struct _Locale_name_hint* hint, int *__err_code)
00158 { return _Locale_extract_name(name, __err_code); }
00159 
00160 char const* _Locale_extract_numeric_name(const char *name, char *buf,
00161                                          struct _Locale_name_hint* hint, int *__err_code)
00162 { return _Locale_extract_name(name, __err_code); }
00163 
00164 char const* _Locale_extract_time_name(const char*name, char *buf,
00165                                       struct _Locale_name_hint* hint, int *__err_code)
00166 { return _Locale_extract_name(name, __err_code); }
00167 
00168 char const* _Locale_extract_collate_name(const char *name, char *buf,
00169                                          struct _Locale_name_hint* hint, int *__err_code)
00170 { return _Locale_extract_name(name, __err_code); }
00171 
00172 char const* _Locale_extract_monetary_name(const char *name, char *buf,
00173                                           struct _Locale_name_hint* hint, int *__err_code)
00174 { return _Locale_extract_name(name, __err_code); }
00175 
00176 char const* _Locale_extract_messages_name(const char *name, char *buf,
00177                                           struct _Locale_name_hint* hint, int *__err_code)
00178 { return _Locale_extract_name(name, __err_code); }
00179 
00180 struct _Locale_name_hint* _Locale_get_ctype_hint(struct _Locale_ctype* ctype)
00181 { return 0; }
00182 struct _Locale_name_hint* _Locale_get_numeric_hint(struct _Locale_numeric* numeric)
00183 { return 0; }
00184 struct _Locale_name_hint* _Locale_get_time_hint(struct _Locale_time* time)
00185 { return 0; }
00186 struct _Locale_name_hint* _Locale_get_collate_hint(struct _Locale_collate* collate)
00187 { return 0; }
00188 struct _Locale_name_hint* _Locale_get_monetary_hint(struct _Locale_monetary* monetary)
00189 { return 0; }
00190 struct _Locale_name_hint* _Locale_get_messages_hint(struct _Locale_messages* messages)
00191 { return 0; }
00192 
00193 /* ctype */
00194 const _Locale_mask_t* _Locale_ctype_table(struct _Locale_ctype* lctype) {
00195   _STLP_MARK_PARAMETER_AS_UNUSED(lctype)
00196   return ctable;
00197 }
00198 
00199 int _Locale_toupper(struct _Locale_ctype*lctype, int c)
00200 { return toupper(c); }
00201 
00202 int _Locale_tolower(struct _Locale_ctype*lctype, int c)
00203 { return tolower(c); }
00204 
00205 #ifndef _STLP_NO_WCHAR_T
00206 _Locale_mask_t _WLocale_ctype(struct _Locale_ctype *lctype, wint_t wc, _Locale_mask_t mask) {
00207   _Locale_mask_t ret = 0;
00208   if ((mask & _Locale_ALPHA) != 0 && iswalpha(wc))
00209     ret |= _Locale_ALPHA;
00210   
00211   if ((mask & _Locale_CNTRL) != 0 && iswcntrl(wc))
00212     ret |= _Locale_CNTRL;
00213 
00214   if ((mask & _Locale_DIGIT) != 0 && iswdigit(wc))
00215     ret |= _Locale_DIGIT;
00216 
00217   if ((mask & _Locale_PRINT) != 0 && iswprint(wc)) 
00218     ret |= _Locale_PRINT;
00219 
00220   if ((mask & _Locale_PUNCT) != 0 && iswpunct(wc))
00221     ret |= _Locale_PUNCT;
00222 
00223   if ((mask & _Locale_SPACE) != 0 && iswspace(wc))
00224     ret |= _Locale_SPACE;
00225 
00226   if ((mask & _Locale_XDIGIT) != 0 && iswxdigit(wc))
00227     ret |= _Locale_XDIGIT;
00228 
00229   if ((mask & _Locale_UPPER) != 0 && iswupper(wc))
00230     ret |= _Locale_UPPER;
00231 
00232   if ((mask & _Locale_LOWER) != 0 && iswlower(wc))
00233     ret |= _Locale_LOWER;
00234 
00235   return ret;
00236 }
00237 
00238 wint_t _WLocale_tolower(struct _Locale_ctype *lctype, wint_t wc)
00239 { return towlower(wc); }
00240 
00241 wint_t _WLocale_toupper(struct _Locale_ctype *lctype, wint_t wc)
00242 { return towupper(wc); }
00243 
00244 int _WLocale_mb_cur_max (struct _Locale_codecvt *lcodecvt) { return 1; }
00245 int _WLocale_mb_cur_min (struct _Locale_codecvt *lcodecvt) { return 1; }
00246 int _WLocale_is_stateless (struct _Locale_codecvt *lcodecvt) { return 1; }
00247 
00248 size_t _WLocale_mbtowc(struct _Locale_codecvt *lcodecvt,
00249                        wchar_t *to,
00250                        const char *from, size_t n,
00251                        mbstate_t *st)
00252 { *to = *from; return 1; }
00253 
00254 size_t _WLocale_wctomb(struct _Locale_codecvt *lcodecvt,
00255                        char *to, size_t n,
00256                        const wchar_t c,
00257                        mbstate_t *st)
00258 { *to = (char)c; return 1; }
00259 
00260 size_t _WLocale_unshift(struct _Locale_codecvt *lcodecvt,
00261                         mbstate_t *st,
00262                         char *buf, size_t n, char ** next)
00263 { *next = buf; return 0; }
00264 #endif
00265 
00266 /* Collate */
00267  int _Locale_strcmp(struct _Locale_collate* lcol,
00268                     const char* s1, size_t n1, const char* s2, size_t n2) {
00269   int ret = 0;
00270   char buf1[64], buf2[64];
00271   while (n1 > 0 || n2 > 0) {
00272     size_t bufsize1 = n1 < 63 ? n1 : 63;
00273     size_t bufsize2 = n2 < 63 ? n2 : 63;
00274     _STLP_STRNCPY(buf1, 64, s1, bufsize1); buf1[bufsize1] = 0;
00275     _STLP_STRNCPY(buf2, 64, s2, bufsize2); buf2[bufsize2] = 0;
00276 
00277     ret = strcmp(buf1, buf2);
00278     if (ret != 0) return ret < 0 ? -1 : 1;
00279     s1 += bufsize1; n1 -= bufsize1;
00280     s2 += bufsize2; n2 -= bufsize2;
00281   }
00282   return ret == 0 ? 0 : (ret < 0 ? -1 : 1);
00283 }
00284 
00285 #ifndef _STLP_NO_WCHAR_T
00286 
00287 int _WLocale_strcmp(struct _Locale_collate* lcol,
00288                     const wchar_t* s1, size_t n1, const wchar_t* s2, size_t n2) {
00289   int ret = 0;
00290   wchar_t buf1[64], buf2[64];
00291   while (n1 > 0 || n2 > 0) {
00292     size_t bufsize1 = n1 < 63 ? n1 : 63;
00293     size_t bufsize2 = n2 < 63 ? n2 : 63;
00294     _STLP_WCSNCPY(buf1, 64, s1, bufsize1); buf1[bufsize1] = 0;
00295     _STLP_WCSNCPY(buf2, 64, s2, bufsize2); buf2[bufsize2] = 0;
00296 
00297     ret = wcscmp(buf1, buf2);
00298     if (ret != 0) return ret < 0 ? -1 : 1;
00299     s1 += bufsize1; n1 -= bufsize1;
00300     s2 += bufsize2; n2 -= bufsize2;
00301   }
00302   return ret == 0 ? 0 : (ret < 0 ? -1 : 1);
00303 }
00304 
00305 #endif
00306 
00307 size_t _Locale_strxfrm(struct _Locale_collate* lcol,
00308                        char* dest, size_t dest_n,
00309                        const char* src, size_t src_n) {
00310   if (dest != 0) {
00311     _STLP_STRNCPY(dest, dest_n, src, dest_n - 1); dest[dest_n - 1] = 0;
00312   }
00313   return src_n;
00314 }
00315 
00316 #ifndef _STLP_NO_WCHAR_T
00317 
00318 size_t _WLocale_strxfrm(struct _Locale_collate* lcol,
00319                         wchar_t* dest, size_t dest_n,
00320                         const wchar_t* src, size_t src_n) {
00321   if (dest != 0) {
00322     _STLP_WCSNCPY(dest, dest_n, src, dest_n - 1); dest[dest_n - 1] = 0;
00323   }
00324   return src_n;
00325 }
00326 
00327 #endif
00328 
00329 /* Numeric */
00330 
00331 char _Locale_decimal_point(struct _Locale_numeric* lnum)
00332 { return '.'; }
00333 char _Locale_thousands_sep(struct _Locale_numeric* lnum)
00334 { return ','; }
00335 const char* _Locale_grouping(struct _Locale_numeric * lnum)
00336 { return _empty_str; }
00337 const char * _Locale_true(struct _Locale_numeric * lnum)
00338 { return "true"; }
00339 const char * _Locale_false(struct _Locale_numeric * lnum)
00340 { return "false"; }
00341 
00342 #ifndef _STLP_NO_WCHAR_T
00343 wchar_t _WLocale_decimal_point(struct _Locale_numeric* lnum)
00344 { return L'.'; }
00345 wchar_t _WLocale_thousands_sep(struct _Locale_numeric* lnum)
00346 { return L','; }
00347 const wchar_t * _WLocale_true(struct _Locale_numeric* lnum, wchar_t* buf, size_t bufSize)
00348 { return L"true"; }
00349 const wchar_t * _WLocale_false(struct _Locale_numeric* lnum, wchar_t* buf, size_t bufSize)
00350 { return L"false"; }
00351 #endif
00352 
00353 /* Monetary */
00354 
00355 const char* _Locale_int_curr_symbol(struct _Locale_monetary * lmon)
00356 { return _empty_str; }
00357 const char* _Locale_currency_symbol(struct _Locale_monetary * lmon)
00358 { return _empty_str; }
00359 char        _Locale_mon_decimal_point(struct _Locale_monetary * lmon)
00360 { return '.'; }
00361 char        _Locale_mon_thousands_sep(struct _Locale_monetary * lmon)
00362 { return ','; }
00363 const char* _Locale_mon_grouping(struct _Locale_monetary * lmon)
00364 { return _empty_str; }
00365 const char* _Locale_positive_sign(struct _Locale_monetary * lmon)
00366 { return _empty_str; }
00367 const char* _Locale_negative_sign(struct _Locale_monetary * lmon)
00368 { return _empty_str; }
00369 char        _Locale_int_frac_digits(struct _Locale_monetary * lmon)
00370 { return 0; }
00371 char        _Locale_frac_digits(struct _Locale_monetary * lmon)
00372 { return 0; }
00373 int         _Locale_p_cs_precedes(struct _Locale_monetary * lmon)
00374 { return CHAR_MAX; }
00375 int         _Locale_p_sep_by_space(struct _Locale_monetary * lmon)
00376 { return CHAR_MAX; }
00377 int         _Locale_p_sign_posn(struct _Locale_monetary * lmon)
00378 { return CHAR_MAX; }
00379 int         _Locale_n_cs_precedes(struct _Locale_monetary * lmon)
00380 { return CHAR_MAX; }
00381 int          _Locale_n_sep_by_space(struct _Locale_monetary * lmon)
00382 { return CHAR_MAX; }
00383 int          _Locale_n_sign_posn(struct _Locale_monetary * lmon)
00384 { return CHAR_MAX; }
00385 
00386 #ifndef _STLP_NO_WCHAR_T
00387 const wchar_t* _WLocale_int_curr_symbol(struct _Locale_monetary * lmon,
00388                                         wchar_t* buf, size_t bufSize)
00389 { return _empty_wstr; }
00390 const wchar_t* _WLocale_currency_symbol(struct _Locale_monetary * lmon,
00391                                         wchar_t* buf, size_t bufSize)
00392 { return _empty_wstr; }
00393 wchar_t        _WLocale_mon_decimal_point(struct _Locale_monetary * lmon)
00394 { return L'.'; }
00395 wchar_t        _WLocale_mon_thousands_sep(struct _Locale_monetary * lmon)
00396 { return L','; }
00397 const wchar_t* _WLocale_positive_sign(struct _Locale_monetary * lmon,
00398                                       wchar_t* buf, size_t bufSize)
00399 { return _empty_wstr; }
00400 const wchar_t* _WLocale_negative_sign(struct _Locale_monetary * lmon,
00401                                       wchar_t* buf, size_t bufSize)
00402 { return _empty_wstr; }
00403 #endif
00404 
00405 /* Time */
00406 static const char* full_monthname[] =
00407 { "January", "February", "March", "April", "May", "June",
00408   "July", "August", "September", "October", "November", "December" };
00409 const char * _Locale_full_monthname(struct _Locale_time * ltime, int n)
00410 { return full_monthname[n]; }
00411 
00412 static const char* abbrev_monthname[] =
00413 { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
00414   "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
00415 const char * _Locale_abbrev_monthname(struct _Locale_time * ltime, int n)
00416 { return abbrev_monthname[n]; }
00417 
00418 static const char* full_dayname[] =
00419 { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
00420 const char * _Locale_full_dayofweek(struct _Locale_time * ltime, int n)
00421 { return full_dayname[n]; }
00422 
00423 static const char* abbrev_dayname[] =
00424 { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
00425 const char * _Locale_abbrev_dayofweek(struct _Locale_time * ltime, int n)
00426 { return abbrev_dayname[n]; }
00427 
00428 const char* _Locale_d_t_fmt(struct _Locale_time* ltime)
00429 { return "%m/%d/%y"; }
00430 const char* _Locale_d_fmt(struct _Locale_time* ltime)
00431 { return "%m/%d/%y"; }
00432 const char* _Locale_t_fmt(struct _Locale_time* ltime)
00433 { return "%H:%M:%S"; }
00434 const char* _Locale_long_d_t_fmt(struct _Locale_time* ltime)
00435 { return _empty_str; }
00436 const char* _Locale_long_d_fmt(struct _Locale_time* ltime)
00437 { return _empty_str; }
00438 const char* _Locale_am_str(struct _Locale_time* ltime)
00439 { return "AM"; }
00440 const char* _Locale_pm_str(struct _Locale_time* ltime)
00441 { return "PM"; }
00442 
00443 #ifndef _STLP_NO_WCHAR_T
00444 static const wchar_t* full_wmonthname[] =
00445 { L"January", L"February", L"March", L"April", L"May", L"June",
00446   L"July", L"August", L"September", L"October", L"November", L"December" };
00447 const wchar_t * _WLocale_full_monthname(struct _Locale_time * ltime, int n,
00448                                         wchar_t* buf, size_t bufSize)
00449 { return full_wmonthname[n]; }
00450 
00451 static const wchar_t* abbrev_wmonthname[] =
00452 { L"Jan", L"Feb", L"Mar", L"Apr", L"May", L"Jun",
00453   L"Jul", L"Aug", L"Sep", L"Oct", L"Nov", L"Dec" };
00454 const wchar_t * _WLocale_abbrev_monthname(struct _Locale_time * ltime, int n,
00455                                           wchar_t* buf, size_t bufSize)
00456 { return abbrev_wmonthname[n]; }
00457 
00458 static const wchar_t* full_wdayname[] =
00459 { L"Sunday", L"Monday", L"Tuesday", L"Wednesday", L"Thursday", L"Friday", L"Saturday" };
00460 const wchar_t * _WLocale_full_dayofweek(struct _Locale_time * ltime, int n,
00461                                         wchar_t* buf, size_t bufSize)
00462 { return full_wdayname[n]; }
00463 
00464 static const wchar_t* abbrev_wdayname[] =
00465 { L"Sun", L"Mon", L"Tue", L"Wed", L"Thu", L"Fri", L"Sat" };
00466 const wchar_t * _WLocale_abbrev_dayofweek(struct _Locale_time * ltime, int n,
00467                                           wchar_t* buf, size_t bufSize)
00468 { return abbrev_wdayname[n]; }
00469 
00470 const wchar_t* _WLocale_am_str(struct _Locale_time* ltime,
00471                                wchar_t* buf, size_t bufSize)
00472 { return L"AM"; }
00473 const wchar_t* _WLocale_pm_str(struct _Locale_time* ltime,
00474                                wchar_t* buf, size_t bufSize)
00475 { return L"PM"; }
00476 #endif
00477 
00478 /* Messages */
00479 
00480 nl_catd_type _Locale_catopen(struct _Locale_messages* lmes, const char* name)
00481 { return -1; }
00482 void _Locale_catclose(struct _Locale_messages* lmes, nl_catd_type cat) {}
00483 const char* _Locale_catgets(struct _Locale_messages* lmes, nl_catd_type cat,
00484                             int setid, int msgid, const char *dfault)
00485 { return dfault; }

Generated on Tue May 15 04:59:26 2012 for ReactOS by doxygen 1.6.3

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.