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