/* --------------------------------------------------- */
/* | Copyright (c) 1989 MIPS Computer Systems, Inc.  | */
/* | All Rights Reserved.                            | */
/* --------------------------------------------------- */
/* $Header: locale.h,v 1.7.2.1 92/06/24 13:56:48 marker Exp $ */

#ifndef NULL
#define NULL	0
#endif

#ifndef _LIBC_LOCALE_
#define _LIBC_LOCALE_ 1
struct lconv {
 	char *decimal_point;	/* string for decimal point, eg '.' */
	char *thousands_sep;	/* string used to separate groups of */
				/* thousands */
	char *grouping;		/* grouping characteristics for non-monetary */
				/* strings */
	char *int_curr_symbol; 	/* string containing international currency */
				/* symbol for the locale */
	char *currency_symbol;	/* string used to represent currency, eg '$' */
 	char *mon_decimal_point;/* string for monetary decimal point, eg '.' */
	char *mon_thousands_sep;/* string used to separate groups of */
				/* thousands in monetary strings */
	char *mon_grouping;	/* grouping characteristics for monetary */
				/* strings */
	char *positive_sign;	/* string that indicates a positive monetary */
				/* value */
	char *negative_sign;	/* string that indicates a negative monetary */
				/* value */
	char int_frac_digits;	/* number of fractional digits (those after */
				/* the decimal point) to be displayed in an */
				/* internationally formatted monetary 	    */
				/* quantity */
	char frac_digits; 	/* # of fractional digits in monetray string */
	char p_cs_precedes;	/* indicates whether symbol that denotes */
				/* positive monetary value comes before or */
				/* after the numerals of the monetary string */
	char p_sep_by_space;	/* indicates whether a space should appear */
				/* between the symbol that denotes */
				/* positive monetary value and the numerals */
				/* of the monetary string */
	char n_cs_precedes;	/* indicates whether symbol that denotes */
				/* negative monetary value comes before or */
				/* after the numerals of the monetary string */
	char n_sep_by_space;	/* indicates whether a space should appear */
				/* between the symbol that denotes */
				/* negative monetary value and the numerals */
				/* of the monetary string */
	char p_sign_posn;	/* position and formatting of the symbol */
				/* that denotes negatvie monetary value */
	char n_sign_posn;	/* position and formatting of the symbol */
				/* that denotes negatvie monetary value */
};

/* Legal Categories for setlocale() 
 */
#define	LC_ALL		6	/* query/set all info for locale */	

/* The remainder of this list is ordered according to the sequence in 
 * which the standard requires them to be set when the category is LC_ALL
 */
#define	LC_CTYPE	0	/* query/set char-handling info for locale */	
#define	LC_NUMERIC	1	/* query/set numeric information for locale */	
#define	LC_TIME		2	/* query/set time information for locale */	
#define	LC_COLLATE	3	/* query/set collation info for locale */	
#define	LC_MONETARY	4	/* query/set monetary information for locale */	
#define	LC_MESSAGES	5	/* query/set monetary information for locale */	

#ifndef _NULL
#define NULL	0
#endif


#if defined(__STDC__)

extern char *setlocale(int, const char *);
#else

extern char *setlocale();
#endif /* __STDC__ */

#ifdef _SYSTYPE_SVR3
#define	P_locale	"/svr3/usr/lib/locale/"
#define L_locale	(sizeof(P_locale))
#define MAXLENLOCALE  	23	
#endif
#ifdef _SYSTYPE_BSD43
#define	P_locale	"/bsd43/usr/lib/locale/"
#define L_locale	(sizeof(P_locale))
#define MAXLENLOCALE  	24	
#endif
#define SZ_COLLATE	512
#define SZ_SUBS		128
#endif  /* _LIBC_LOCALE_ */
