/**************************************************************************
*   Copyright 2000 Compaq Computer Corporation
*
*   COMPAQ Registered in U.S. Patent and Trademark Office.
*
*   Confidential computer software. Valid license from Compaq or authorized
*   sublicensor required for possession, use or copying. Consistent with
*   FAR 12.211 and 12.212, Commercial Computer Software, Computer Software
*   Documentation, and Technical Data for Commercial Items are licensed to
*   the U.S. Government under vendor's standard commercial license.
**************************************************************************/

#if !defined(_LOCALE_H_) && !defined(_LOCALE_H)
#if defined(__linux__)
#define _LOCALE_H
#else
#define _LOCALE_H_
#endif  /* __linux__  */


#if defined(__linux__)
#define NULL    0
#else
#define NULL    0L
#endif  /* __linux__ */

extern "C" {
namespace std {

struct lconv {
   char *decimal_point;		/* decimal point character		*/
   char *thousands_sep;		/* thousands separator		 	*/
   char *grouping;		/* digit grouping		 	*/
   char *int_curr_symbol;	/* international currency symbol	*/
   char *currency_symbol;	/* national currency symbol		*/
   char *mon_decimal_point;	/* currency decimal point		*/
   char *mon_thousands_sep;	/* currency thousands separator		*/
   char *mon_grouping;		/* currency digits grouping		*/
   char *positive_sign;		/* currency plus sign			*/
   char *negative_sign;		/* currency minus sign		 	*/
   char int_frac_digits;	/* internat currency fractional digits	*/
   char frac_digits;		/* currency fractional digits		*/
   char p_cs_precedes;		/* currency plus location		*/
   char p_sep_by_space;		/* currency plus space ind.		*/
   char n_cs_precedes;		/* currency minus location		*/
   char n_sep_by_space;		/* currency minus space ind.		*/
   char p_sign_posn;		/* currency plus position		*/
   char n_sign_posn;		/* currency minus position		*/
#if !defined(__linux__)
#ifdef _OSF_SOURCE
   char *left_parenthesis;	/* negative currency left paren         */
   char *right_parenthesis;	/* negative currency right paren        */
#else
   char *__left_parenthesis;	/* negative currency left paren         */
   char *__right_parenthesis;	/* negative currency right paren        */
#endif /* _OSF_SOURCE */
#endif  /* __linux__ */
};

#if defined(__linux__)
#define LC_ALL		6	/* name of locale's category name 	*/
#define LC_COLLATE	3	/* locale's collation data		*/
#define LC_CTYPE	0	/* locale's ctype handline		*/
#define LC_MONETARY	4	/* locale's monetary handling		*/
#define LC_NUMERIC	1	/* locale's decimal handling		*/
#define LC_TIME		2	/* locale's time handling		*/
#else
#define LC_ALL		0xFFFF	/* name of locale's category name 	*/
#define LC_COLLATE	0	/* locale's collation data		*/
#define LC_CTYPE	1	/* locale's ctype handline		*/
#define LC_MONETARY	2	/* locale's monetary handling		*/
#define LC_NUMERIC	3	/* locale's decimal handling		*/
#define LC_TIME		4	/* locale's time handling		*/
#endif  /* __linux__ */

struct lconv *localeconv (void);
char   *setlocale (int, const char *);

}  /* namespace std */
}  /* extern "C" */

#endif /* _LOCALE_H_ */
