summaryrefslogtreecommitdiffstats
path: root/private/crt32/h/setlocal.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/crt32/h/setlocal.h142
1 files changed, 142 insertions, 0 deletions
diff --git a/private/crt32/h/setlocal.h b/private/crt32/h/setlocal.h
new file mode 100644
index 000000000..f69b2b430
--- /dev/null
+++ b/private/crt32/h/setlocal.h
@@ -0,0 +1,142 @@
+/***
+*setlocal.h - internal definitions used by locale-dependent functions.
+*
+* Copyright (c) 1991-1993, Microsoft Corporation. All rights reserved.
+*
+*Purpose:
+* Contains internal definitions/declarations for locale-dependent
+* functions, in particular those required by setlocale().
+* [Internal]
+*
+*Revision History:
+* 10-16-91 ETC 32-bit version created from 16-bit setlocal.c
+* 12-20-91 ETC Removed GetLocaleInfo structure definitions.
+* 08-18-92 KRS Make _CLOCALEHANDLE == LANGNEUTRAL HANDLE = 0.
+* 12-17-92 CFW Added LC_ID, LCSTRINGS, and GetQualifiedLocale
+* 12-17-92 KRS Change value of NLSCMPERROR from 0 to INT_MAX.
+* 01-08-93 CFW Added LC_*_TYPE and _getlocaleinfo (wrapper) prototype.
+* 01-13-93 KRS Change LCSTRINGS back to LC_STRINGS for consistency.
+* Change _getlocaleinfo prototype again.
+* 02-08-93 CFW Added time defintions from locale.h, added 'const' to
+* GetQualifiedLocale prototype, added _lconv_static_*.
+* 02-16-93 CFW Changed time defs to long and short.
+* 03-17-93 CFW Add language and country info definitions.
+* 03-23-93 CFW Add _ to GetQualifiedLocale prototype.
+* 03-24-93 CFW Change to _get_qualified_locale.
+*
+****/
+
+#ifndef _INC_SETLOCAL
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <cruntime.h>
+#include <oscalls.h>
+#include <limits.h>
+
+#define ERR_BUFFER_TOO_SMALL 1 // should be in windef.h
+
+#define NLSCMPERROR INT_MAX // Return value for *cmp and *coll
+ // functions when NLSAPI call fails
+
+#define _CLOCALEHANDLE 0 /* "C" locale handle */
+#define _CLOCALECP CP_ACP /* "C" locale Code page (ANSI 8859) */
+
+/* Define the max length for each string type including space for a null. */
+
+#define _MAX_WDAY_ABBR 4
+#define _MAX_WDAY 10
+#define _MAX_MONTH_ABBR 4
+#define _MAX_MONTH 10
+#define _MAX_AMPM 3
+
+#define _DATE_LENGTH 8 /* mm/dd/yy (null not included) */
+#define _TIME_LENGTH 8 /* hh:mm:ss (null not included) */
+
+/* LC_TIME localization structure */
+
+struct _lc_time_data {
+ char *wday_abbr[7];
+ char *wday[7];
+ char *month_abbr[12];
+ char *month[12];
+ char *ampm[2];
+#ifdef _INTL
+ char *ww_sdatefmt;
+ char *ww_ldatefmt;
+ char *ww_timefmt;
+#endif
+ };
+
+
+#define MAX_LANG_LEN 64 /* max language name length */
+#define MAX_CTRY_LEN 64 /* max country name length */
+#define MAX_MODIFIER_LEN 0 /* max modifier name length - n/a */
+#define MAX_LC_LEN (MAX_LANG_LEN+MAX_CTRY_LEN+MAX_MODIFIER_LEN+3)
+ /* max entire locale string length */
+#define MAX_CP_LEN 5 /* max code page name length */
+#define CATNAMES_LEN 57 /* "LC_COLLATE=;LC_CTYPE=;..." length */
+
+#define LC_INT_TYPE 0
+#define LC_STR_TYPE 1
+
+#define QF_STRINGS 1
+#define QF_LCID 2
+
+typedef struct tagLC_ID {
+ WORD wLanguage;
+ WORD wCountry;
+ WORD wCodePage;
+} LC_ID, *LPLC_ID;
+
+typedef struct tagLC_STRINGS {
+ char szLanguage[MAX_LANG_LEN];
+ char szCountry[MAX_CTRY_LEN];
+ char szCodePage[MAX_CP_LEN];
+} LC_STRINGS, *LPLC_STRINGS;
+
+extern LC_ID _lc_id[]; /* complete info from GetQualifiedLocale */
+extern LCID _lc_handle[]; /* locale "handles" -- ignores country info */
+extern UINT _lc_codepage; /* code page */
+
+BOOL _CRTAPI1 _get_qualified_locale(
+ const DWORD dwType,
+ const LPVOID lpInput,
+ LPLC_ID lpOutId,
+ LPLC_STRINGS lpOutStr
+ );
+
+int _CRTAPI3 _getlocaleinfo (
+ int lc_type,
+ LCID localehandle,
+ LCTYPE fieldtype,
+ void *address
+ );
+
+/* initial values for lconv structure */
+extern char _lconv_static_decimal[];
+extern char _lconv_static_null[];
+
+/* language and country string definitions */
+typedef struct tagLANGREC
+{
+ CHAR szLanguage[MAX_LANG_LEN];
+ WORD wLanguage;
+} LANGREC;
+extern LANGREC __rg_lang_rec[];
+
+typedef struct tagCTRYREC
+{
+ CHAR szCountry[MAX_CTRY_LEN];
+ WORD wCountry;
+} CTRYREC;
+extern CTRYREC __rg_ctry_rec[];
+
+#ifdef __cplusplus
+}
+#endif
+
+#define _INC_SETLOCAL
+#endif /* _INC_SETLOCAL */