Ok - so one of the steps in building CDE is an early phase called the includes phase (make includes). At this point, all of the public header files are exported to exports/include/Dt, DtI, ... Then, the software is built using that include dir. This of course does not work in autotools. Much of the software does things like #include <Dt/something.h>, so in order for the build to succeed, this behavior must be represented/replicated in some way. It seems the usual way of dealing with this is to place all public headers (and in some projects, ALL headers) into a toplevel include directory. We now do this for all public headers - they have been moved from wherever they were and placed in the appropriate spot in includes/ This will break the Imake 'make includes' phase unless the Imakefiles are fixed (remove the HEADERS = stuff, and the incdir defines). This has not been done at this point since in reality, once autotools works properly, there will be no need for the Imake stuff anymore, and I intend to get rid of it. This is just a warning for now - Imake builds in this tree will now fail at the 'includes' stage. This commit is only the migration. In upcoming commits, libtt will be fixed so that the hack being used before to get around this problem is removed as there will no longer be any need. And then the autotools work continues...
364 lines
14 KiB
C
364 lines
14 KiB
C
/*
|
|
* CDE - Common Desktop Environment
|
|
*
|
|
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
|
|
*
|
|
* These libraries and programs are free software; you can
|
|
* redistribute them and/or modify them under the terms of the GNU
|
|
* Lesser General Public License as published by the Free Software
|
|
* Foundation; either version 2 of the License, or (at your option)
|
|
* any later version.
|
|
*
|
|
* These libraries and programs are distributed in the hope that
|
|
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
* PURPOSE. See the GNU Lesser General Public License for more
|
|
* details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with these libraries and programs; if not, write
|
|
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
* Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
/* $XConsortium: Setlocale.h /main/3 1995/10/26 15:27:34 rswiston $ */
|
|
/*
|
|
* (c) Copyright 1993, 1994 Hewlett-Packard Company *
|
|
* (c) Copyright 1993, 1994 International Business Machines Corp. *
|
|
* (c) Copyright 1993, 1994 Sun Microsystems, Inc. *
|
|
* (c) Copyright 1993, 1994 Novell, Inc. *
|
|
*/
|
|
/* Hp DT's version of an 8.0 include file; needed for Fnmatch */
|
|
|
|
#ifndef DtSETLOCALE_INCLUDED /* allow multiple inclusions */
|
|
#define DtSETLOCALE_INCLUDED
|
|
|
|
#ifdef _NAMESPACE_CLEAN
|
|
#define _1kanji __1kanji
|
|
#define _2kanji __2kanji
|
|
#define _downshift __downshift
|
|
#define _upshift __upshift
|
|
#endif /* _NAMESPACE_CLEAN */
|
|
|
|
#include <locale.h>
|
|
#include <limits.h>
|
|
#include <nl_types.h>
|
|
#include <langinfo.h>
|
|
#include <Dt/Collate.h>
|
|
|
|
#ifndef _NL_ORDER
|
|
#define _NL_ORDER
|
|
typedef int nl_order;
|
|
#endif
|
|
#ifndef _NL_MODE
|
|
#define _NL_MODE
|
|
typedef int nl_mode;
|
|
#endif
|
|
#ifndef _NL_OUTDGT
|
|
#define _NL_OUTDGT
|
|
typedef int nl_outdgt;
|
|
#endif
|
|
#ifndef MAXLNAMELEN
|
|
#define MAXLNAMELEN 14
|
|
#endif
|
|
#endif
|
|
|
|
struct _era_data { /* defines an Emperor/Era time period */
|
|
short start_year; /* starting date of era */
|
|
unsigned short start_month;
|
|
unsigned short start_day;
|
|
short end_year; /* ending date of era */
|
|
unsigned short end_month;
|
|
unsigned short end_day;
|
|
short origin_year; /* time axis origin for era (one of start_year or end_year) */
|
|
short offset; /* offset from 0 for 1st year of era */
|
|
short signflag; /* adjusts sign of (year - origin_year) value */
|
|
unsigned short reserved;
|
|
unsigned char *name; /* name of era */
|
|
unsigned char *format; /* instead of nl_langinfo(ERA_FMT) */
|
|
};
|
|
|
|
extern int __nl_langid[]; /* langid of currently loaded language */
|
|
extern unsigned char *__ctype; /* pointer to ctype table */
|
|
extern unsigned char *_1kanji; /* pointer to 1st of 2 kanji table */
|
|
extern unsigned char *_2kanji; /* pointer to 2nd of 2 kanji table */
|
|
extern unsigned char *_upshift; /* pointer to up shift table */
|
|
extern unsigned char *_downshift; /* pointer to down shift table */
|
|
#ifdef EUC
|
|
extern unsigned char *__e_cset; /* pointer to expanded char set table */
|
|
extern unsigned char *__ein_csize; /* pointer to expanded in_csize table */
|
|
extern unsigned char *__eout_csize; /* pointer to expanded out_csize table*/
|
|
#endif /* EUC */
|
|
extern struct _era_data *_nl_era[]; /* array of era info str pointer */
|
|
extern int _nl_radix; /* radix character */
|
|
extern int _sh_low; /* lowest char in shift table domain */
|
|
extern int _sh_high; /* highest char in shift table domain */
|
|
extern int __nl_char_size; /* size of characters */
|
|
#ifdef EUC
|
|
extern int __nl_code_scheme;/* flag for char code scheme */
|
|
extern int __cs_SBYTE; /* flag for 1 byte char code scheme */
|
|
extern int __cs_HP15; /* flag for HP15 char code scheme */
|
|
extern int __cs_EUC; /* flag for EUC char code scheme */
|
|
extern unsigned char __in_csize[]; /* input char size */
|
|
extern unsigned char __out_csize[]; /* output char size */
|
|
extern unsigned int __euc_template[]; /* euc process code template */
|
|
#endif /* EUC */
|
|
extern nl_direct _nl_direct; /* direction flag */
|
|
extern int _nl_context; /* directionality context flag */
|
|
extern nl_order _nl_order; /* order flag */
|
|
extern nl_mode _nl_mode; /* mode flag; Latin or non-Latin */
|
|
extern nl_outdgt _nl_outdigit; /* digit output : ascii or alt digit */
|
|
|
|
extern int _nl_space_alt; /* value of alternative space */
|
|
extern unsigned char *_nl_dgt_alt; /* buffer for alt digit string */
|
|
extern unsigned char *_nl_punct_alt; /* buffer for alt punctuation string */
|
|
extern unsigned char *_nl_pascii; /* buffer for ascii punctuation string */
|
|
extern unsigned char *_nl_dascii; /* buffer for ascii digits string */
|
|
extern int _nl_map21; /* non-zero if 2-to-1 mappings */
|
|
extern int _nl_onlyseq; /* true if only 1-to-1 char w no pri */
|
|
extern int _nl_collate_on; /* true if collation table loaded */
|
|
extern int _nl_mb_collate; /* true if collation is multibyte */
|
|
|
|
extern unsigned char *_seqtab; /* dictionary sequence number table */
|
|
extern unsigned char *_pritab; /* 1to2/2to1 flag + priority table */
|
|
extern struct col_21tab *_tab21; /* 2-to-1 mapping table */
|
|
extern struct col_12tab *_tab12; /* 1-to-2 mapping table */
|
|
|
|
extern unsigned char *__errptr; /* pointer to an area _errlocale() can use as a buffer */
|
|
|
|
extern struct lconv *_lconv;
|
|
extern unsigned char *__category_name[];
|
|
|
|
extern unsigned char **__nl_info; /* pointers to locale langinfo strings */
|
|
extern unsigned char *__C_langinfo[];/* default langinfo strings for the C locale */
|
|
#define _NL_MAX_MSG ERA_FMT /* last nl_langinfo item */
|
|
|
|
/***************************************************************************
|
|
|
|
The remainder of this file includes structures for the language files.
|
|
The files are built by buildlang(1M).
|
|
|
|
The structure of the files is as follows :
|
|
|
|
----------------------------------
|
|
| Table Header (A) |
|
|
----------------------------------
|
|
| Category/Modifier Structures(B)|
|
|
==================================
|
|
| LC_ALL Table Header (C) |
|
|
- - - - - - - - -
|
|
| LC_ALL Data |
|
|
----------------------------------
|
|
| LC_COLLATE Table Header (D) |
|
|
- - - - - - - - -
|
|
| LC_COLLATE Data |
|
|
----------------------------------
|
|
| LC_CTYPE Table Header (E) |
|
|
- - - - - - - - -
|
|
| LC_CTYPE Data |
|
|
----------------------------------
|
|
| LC_MONETARY Table Header (F)
|
|
- - - - - - - - -
|
|
| LC_MONETARY Data |
|
|
----------------------------------
|
|
| LC_NUMERIC Table Header (G) |
|
|
- - - - - - - - -
|
|
| LC_NUMERIC Data |
|
|
----------------------------------
|
|
| LC_TIME Table Header (H) |
|
|
- - - - - - - - -
|
|
| LC_TIME Data |
|
|
----------------------------------
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
/* Category Id's */
|
|
|
|
|
|
/* Table Header (A) */
|
|
|
|
struct table_header {
|
|
unsigned int size; /* size of table header and category
|
|
structure. (A) + (B) */
|
|
unsigned short nl_langid; /* _nl_langid */
|
|
unsigned char lang[3*MAXLNAMELEN+2+1]; /* language name */
|
|
unsigned short cat_no; /* number of categories defined */
|
|
unsigned short mod_no; /* number of modifiers defined */
|
|
unsigned short rev_flag; /* true if HP defined */
|
|
unsigned char rev_str[36]; /* Revision String */
|
|
unsigned short codeset; /* 0 if 1 byte, 1 if 2 byte */
|
|
unsigned int reserved1;
|
|
unsigned int reserved2;
|
|
unsigned int reserved3;
|
|
};
|
|
|
|
/* Category/Modifier Structure (B)
|
|
|
|
Catinfotype structure describes a category/modifier table
|
|
There is one structure for each category and modifier defined.
|
|
These entries follow the table header */
|
|
|
|
|
|
struct catinfotype
|
|
{
|
|
int size; /* size of category table */
|
|
int address; /* address of category table -
|
|
offset from the beginning of
|
|
the category tables () */
|
|
short catid; /* category id */
|
|
unsigned char mod_name[MAXLNAMELEN+1]; /* name of modifier */
|
|
short mod_addr; /* address of category table
|
|
for modifier - offset from
|
|
beginning of file */
|
|
};
|
|
|
|
|
|
/* Below are the category headers for each of the defined categories
|
|
All addresses are offset from the beginning of the category information */
|
|
|
|
/* LC_ALL Table (C) */
|
|
|
|
struct all_header {
|
|
unsigned short yes_addr; /* msg_index[YESSTR] */
|
|
unsigned short no_addr; /* msg_index[NOSTR] */
|
|
unsigned short direct_addr; /* msg_index[DIRECTION] */
|
|
/* _nl_direct */
|
|
unsigned short context_addr; /* _nl_context */
|
|
};
|
|
|
|
/* LC_COLLATE Tables (D) */
|
|
|
|
struct col_header {
|
|
unsigned int seqtab_addr; /* _seqtab */
|
|
unsigned int pritab_addr; /* _pritab */
|
|
unsigned short nl_map21; /* not an address */
|
|
unsigned short nl_onlyseq; /* not an address */
|
|
unsigned int tab21_addr;
|
|
unsigned int tab12_addr;
|
|
};
|
|
|
|
|
|
/* LC_CTYPE Tables (E) */
|
|
|
|
struct ctype_header {
|
|
unsigned int _sh_high; /* _sh_high */
|
|
int _sh_low; /* _sh_low */
|
|
unsigned int _ctype_addr; /* __ctype */
|
|
unsigned int kanji1_addr; /* _1kanji */
|
|
unsigned int kanji2_addr; /* _2kanji */
|
|
unsigned int upshift_addr; /* _upshift */
|
|
unsigned int downshift_addr; /* _downshift */
|
|
unsigned short byte_char_addr; /* msg_index[BYTES_CHAR] */
|
|
unsigned short alt_punct_addr; /* msg_index[ALT_PUNCT] */
|
|
/* _nl_punct_alt[] */
|
|
/* _nl_space_alt */
|
|
#ifdef EUC
|
|
unsigned int io_csize_addr; /* __io_csize[] */
|
|
unsigned int e_cset_addr; /* __e_cset */
|
|
unsigned int ein_csize_addr; /* __ein_csize */
|
|
unsigned int eout_csize_addr; /* __eout_csize */
|
|
#endif /* EUC */
|
|
};
|
|
|
|
|
|
|
|
/* LC_MONETARY Tables (F) */
|
|
|
|
|
|
struct monetary_header {
|
|
unsigned short int_frac_digits; /* _lconv->short_frac_digits */
|
|
unsigned short frac_digits; /* _lconv->frac_digits */
|
|
unsigned short p_cs_precedes; /* _lconv->p_cs_precedes */
|
|
unsigned short p_sep_by_space; /* _lconv->p_sep_by_space */
|
|
unsigned short n_cs_precedes; /* _lconv->n_cs_precedes */
|
|
unsigned short n_sep_by_space; /* _lconv->n_sep_by_space */
|
|
unsigned short p_sign_posn; /* _lconv->p_sign_posn */
|
|
unsigned short n_sign_posn; /* _lconv->n_sign_posn */
|
|
unsigned short curr_symbol_lconv; /* _lconv->currency_symbol */
|
|
unsigned short curr_symbol_li; /* msg_index[CRNCYSTR] */
|
|
unsigned short mon_decimal_point; /* _lconv->mon_decimal_point */
|
|
unsigned short int_curr_symbol; /* _lconv->short_curr_symbol */
|
|
unsigned short mon_thousands_sep; /* _lconv->mon_thousands_sep */
|
|
unsigned short mon_grouping; /* _lconv->mon_grouping */
|
|
unsigned short positive_sign; /* _lconv->positive_sign */
|
|
unsigned short negative_sign; /* _lconv->negative_sign */
|
|
};
|
|
|
|
|
|
|
|
/* LC_NUMERIC Tables (G) */
|
|
|
|
|
|
struct numeric_header {
|
|
unsigned short grouping; /* _lconv->grouping */
|
|
unsigned short decimal_point; /* _lconv->decimal_point */
|
|
/* msg_index[RADIXCHAR] */
|
|
/* _nl_radix */
|
|
unsigned short thousands_sep; /* _lconv->thousands_sep */
|
|
/* msg_index[THOUSEP] */
|
|
unsigned short alt_digit_addr; /* msg_index[ALT_DIGIT] */
|
|
};
|
|
|
|
|
|
|
|
/* LC_TIME Tables (H) */
|
|
|
|
struct time_header {
|
|
unsigned short d_t_fmt; /* msg_index[D_T_FMT] */
|
|
unsigned short d_fmt; /* msg_index[D_FMT] */
|
|
unsigned short t_fmt; /* msg_index[T_FMT] */
|
|
unsigned short day_1; /* msg_index[DAY_1] */
|
|
unsigned short day_2; /* msg_index[DAY_2] */
|
|
unsigned short day_3; /* msg_index[DAY_3] */
|
|
unsigned short day_4; /* msg_index[DAY_4] */
|
|
unsigned short day_5; /* msg_index[DAY_5] */
|
|
unsigned short day_6; /* msg_index[DAY_6] */
|
|
unsigned short day_7; /* msg_index[DAY_7] */
|
|
unsigned short abday_1; /* msg_index[ABDAY_1] */
|
|
unsigned short abday_2; /* msg_index[ABDAY_2] */
|
|
unsigned short abday_3; /* msg_index[ABDAY_3] */
|
|
unsigned short abday_4; /* msg_index[ABDAY_4] */
|
|
unsigned short abday_5; /* msg_index[ABDAY_5] */
|
|
unsigned short abday_6; /* msg_index[ABDAY_6] */
|
|
unsigned short abday_7; /* msg_index[ABDAY_7] */
|
|
unsigned short mon_1; /* msg_index[MON_1] */
|
|
unsigned short mon_2; /* msg_index[MON_2] */
|
|
unsigned short mon_3; /* msg_index[MON_3] */
|
|
unsigned short mon_4; /* msg_index[MON_4] */
|
|
unsigned short mon_5; /* msg_index[MON_5] */
|
|
unsigned short mon_6; /* msg_index[MON_6] */
|
|
unsigned short mon_7; /* msg_index[MON_7] */
|
|
unsigned short mon_8; /* msg_index[MON_8] */
|
|
unsigned short mon_9; /* msg_index[MON_9] */
|
|
unsigned short mon_10; /* msg_index[MON_10] */
|
|
unsigned short mon_11; /* msg_index[MON_11] */
|
|
unsigned short mon_12; /* msg_index[MON_12] */
|
|
unsigned short abmon_1; /* msg_index[ABMON_1] */
|
|
unsigned short abmon_2; /* msg_index[ABMON_2] */
|
|
unsigned short abmon_3; /* msg_index[ABMON_3] */
|
|
unsigned short abmon_4; /* msg_index[ABMON_4] */
|
|
unsigned short abmon_5; /* msg_index[ABMON_5] */
|
|
unsigned short abmon_6; /* msg_index[ABMON_6] */
|
|
unsigned short abmon_7; /* msg_index[ABMON_7] */
|
|
unsigned short abmon_8; /* msg_index[ABMON_8] */
|
|
unsigned short abmon_9; /* msg_index[ABMON_9] */
|
|
unsigned short abmon_10; /* msg_index[ABMON_10] */
|
|
unsigned short abmon_11; /* msg_index[ABMON_11] */
|
|
unsigned short abmon_12; /* msg_index[ABMON_12] */
|
|
unsigned short am_str; /* msg_index[AM_STR] */
|
|
unsigned short pm_str; /* msg_index[PM_STR] */
|
|
unsigned short year_unit; /* msg_index[YEAR_UNIT] */
|
|
unsigned short mon_unit; /* msg_index[MON_UNIT] */
|
|
unsigned short day_unit; /* msg_index[DAY_UNIT] */
|
|
unsigned short hour_unit; /* msg_index[HOUR_UNIT] */
|
|
unsigned short min_unit; /* msg_index[MIN_UNIT] */
|
|
unsigned short sec_unit; /* msg_index[SEC_UNIT] */
|
|
unsigned short era_fmt; /* msg_index[ERA_FMT] */
|
|
unsigned short era_count; /* number of era entries */
|
|
unsigned short era_names; /* address of era name and format strings */
|
|
unsigned short era_addr; /* address of era data structure entries */
|
|
unsigned short reserved; /* address of era data structure entries */
|
|
};
|
|
|
|
#endif /* DtSETLOCALE_INCLUDED */
|