1 /*
   2  * CDDL HEADER START
   3  *
   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License, Version 1.0 only
   6  * (the "License").  You may not use this file except in compliance
   7  * with the License.
   8  *
   9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  10  * or http://www.opensolaris.org/os/licensing.
  11  * See the License for the specific language governing permissions
  12  * and limitations under the License.
  13  *
  14  * When distributing Covered Code, include this CDDL HEADER in each
  15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16  * If applicable, add the following below this CDDL HEADER, with the
  17  * fields enclosed by brackets "[]" replaced with your own identifying
  18  * information: Portions Copyright [yyyy] [name of copyright owner]
  19  *
  20  * CDDL HEADER END
  21  */
  22 /*
  23  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
  24  *
  25  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
  26  * Use is subject to license terms.
  27  */
  28 
  29 /*      Copyright (c) 1988 AT&T     */
  30 /*        All Rights Reserved   */
  31 
  32 
  33 #ifndef _LANGINFO_H
  34 #define _LANGINFO_H
  35 
  36 #include <sys/feature_tests.h>
  37 #include <nl_types.h>
  38 
  39 #ifdef  __cplusplus
  40 extern "C" {
  41 #endif
  42 
  43 /*
  44  * The seven days of the week in their full beauty
  45  */
  46 
  47 #define DAY_1     1     /* sunday */
  48 #define DAY_2     2     /* monday */
  49 #define DAY_3     3     /* tuesday */
  50 #define DAY_4     4     /* wednesday */
  51 #define DAY_5     5     /* thursday */
  52 #define DAY_6     6     /* friday */
  53 #define DAY_7     7     /* saturday */
  54 
  55 /*
  56  * The abbreviated seven days of the week
  57  */
  58 
  59 #define ABDAY_1   8  /* sun */
  60 #define ABDAY_2   9  /* mon */
  61 #define ABDAY_3   10 /* tue */
  62 #define ABDAY_4   11 /* wed */
  63 #define ABDAY_5   12 /* thu */
  64 #define ABDAY_6   13 /* fri */
  65 #define ABDAY_7   14 /* sat */
  66 
  67 /*
  68  * The full names of the twelve months...
  69  */
  70 
  71 #define MON_1     15 /* january */
  72 #define MON_2     16 /* february */
  73 #define MON_3     17 /* march */
  74 #define MON_4     18 /* april */
  75 #define MON_5     19 /* may */
  76 #define MON_6     20 /* june */
  77 #define MON_7     21 /* july */
  78 #define MON_8     22 /* august */
  79 #define MON_9     23 /* september */
  80 #define MON_10    24 /* october */
  81 #define MON_11    25 /* november */
  82 #define MON_12    26 /* december */
  83 
  84 /*
  85  * ... and their abbreviated form
  86  */
  87 
  88 #define ABMON_1   27 /* jan */
  89 #define ABMON_2   28 /* feb */
  90 #define ABMON_3   29 /* mar */
  91 #define ABMON_4   30 /* apr */
  92 #define ABMON_5   31 /* may */
  93 #define ABMON_6   32 /* jun */
  94 #define ABMON_7   33 /* jul */
  95 #define ABMON_8   34 /* aug */
  96 #define ABMON_9   35 /* sep */
  97 #define ABMON_10  36 /* oct */
  98 #define ABMON_11  37 /* nov */
  99 #define ABMON_12  38 /* dec */
 100 
 101 /*
 102  * plus some special strings you might need to know
 103  */
 104 
 105 #define RADIXCHAR 39    /* radix character */
 106 #define THOUSEP   40    /* separator for thousand */
 107 /* YESSTR and NOSTR marked as legacy in XPG5 and removed in SUSv3 */
 108 #if !defined(_XPG6) || defined(__EXTENSIONS__)
 109 #define YESSTR    41    /* affirmative response for yes/no queries */
 110 #define NOSTR     42    /* negative response for yes/no queries */
 111 #endif /* !defined(_XPG6) || defined(__EXTENSIONS__ */
 112 #define CRNCYSTR  43    /* currency symbol */
 113 
 114 /*
 115  * Default string used to format date and time
 116  *      e.g. Sunday, August 24 21:08:38 MET 1986
 117  */
 118 
 119 #define D_T_FMT   44    /* string for formatting date and time */
 120 #define D_FMT     45    /* date format */
 121 #define T_FMT     46    /* time format */
 122 #define AM_STR    47    /* am string */
 123 #define PM_STR    48    /* pm string */
 124 
 125 /*
 126  * Additions for XPG4 (XSH4) Compliance
 127  */
 128 
 129 #define CODESET         49      /* codeset name */
 130 #define T_FMT_AMPM      50      /* am or pm time format string */
 131 #define ERA             51      /* era description segments */
 132 #define ERA_D_FMT       52      /* era date format string */
 133 #define ERA_D_T_FMT     53      /* era date and time format string */
 134 #define ERA_T_FMT       54      /* era time format string */
 135 #define ALT_DIGITS      55      /* alternative symbols for digits */
 136 #define YESEXPR         56      /* affirmative response expression */
 137 #define NOEXPR          57      /* negative response expression */
 138 #define _DATE_FMT       58      /* strftime format for date(1) */
 139 
 140 #if defined(__EXTENSIONS__) || !defined(_XOPEN_SOURCE)
 141 #define MAXSTRMSG       58 /* Maximum number of strings in langinfo */
 142 #endif /* defined(__EXTENSIONS__) || !defined(_XOPEN_SOURCE) */
 143 
 144 /*
 145  * and the definitions of functions langinfo(3C)
 146  */
 147 char   *nl_langinfo(nl_item);   /* get a string from the database       */
 148 
 149 #if defined(_XPG7) || !defined(_STRICT_SYMBOLS)
 150 #ifndef _LOCALE_T
 151 #define _LOCALE_T
 152 typedef struct _locale *locale_t;
 153 #endif
 154 
 155 char    *nl_langinfo_l(nl_item, locale_t);
 156 #endif
 157 
 158 #ifdef  __cplusplus
 159 }
 160 #endif
 161 
 162 #endif  /* _LANGINFO_H */