Home | History | Annotate | Line # | Download | only in locale
nl_langinfo.c revision 1.11
      1  1.11  christos /*	$NetBSD: nl_langinfo.c,v 1.11 2005/11/29 03:11:59 christos Exp $	*/
      2   1.4    kleink 
      3   1.1       jtc /*
      4   1.9      salo  * Written by J.T. Conklin <jtc (at) NetBSD.org>.
      5   1.3       jtc  * Public domain.
      6   1.1       jtc  */
      7   1.1       jtc 
      8   1.5  christos #include <sys/cdefs.h>
      9   1.1       jtc #if defined(LIBC_SCCS) && !defined(lint)
     10  1.11  christos __RCSID("$NetBSD: nl_langinfo.c,v 1.11 2005/11/29 03:11:59 christos Exp $");
     11   1.1       jtc #endif /* LIBC_SCCS and not lint */
     12   1.1       jtc 
     13   1.2       jtc #include <sys/localedef.h>
     14   1.1       jtc #include <locale.h>
     15   1.1       jtc #include <nl_types.h>
     16   1.1       jtc #include <langinfo.h>
     17   1.7  tshiozak #include "rune.h"
     18   1.7  tshiozak #include "runetype.h"
     19   1.1       jtc 
     20   1.1       jtc char *
     21   1.1       jtc nl_langinfo(item)
     22   1.1       jtc 	nl_item item;
     23   1.1       jtc {
     24   1.1       jtc 	const char *s;
     25   1.1       jtc 
     26   1.1       jtc 	switch (item) {
     27   1.1       jtc 	case D_T_FMT:
     28   1.2       jtc 		s = _CurrentTimeLocale->d_t_fmt;
     29   1.1       jtc 		break;
     30   1.1       jtc 	case D_FMT:
     31   1.2       jtc 		s = _CurrentTimeLocale->d_fmt;
     32   1.1       jtc 		break;
     33   1.1       jtc 	case T_FMT:
     34   1.2       jtc 		s = _CurrentTimeLocale->t_fmt;
     35   1.1       jtc 		break;
     36   1.1       jtc 	case T_FMT_AMPM:
     37   1.2       jtc 		s = _CurrentTimeLocale->t_fmt_ampm;
     38   1.1       jtc 		break;
     39   1.1       jtc 	case AM_STR:
     40   1.1       jtc 	case PM_STR:
     41   1.6  christos 		s = _CurrentTimeLocale->am_pm[(size_t)(item - AM_STR)];
     42   1.1       jtc 		break;
     43   1.1       jtc 	case DAY_1:
     44   1.1       jtc 	case DAY_2:
     45   1.1       jtc 	case DAY_3:
     46   1.1       jtc 	case DAY_4:
     47   1.1       jtc 	case DAY_5:
     48   1.1       jtc 	case DAY_6:
     49   1.1       jtc 	case DAY_7:
     50   1.6  christos 		s = _CurrentTimeLocale->day[(size_t)(item - DAY_1)];
     51   1.1       jtc 		break;
     52   1.1       jtc 	case ABDAY_1:
     53   1.1       jtc 	case ABDAY_2:
     54   1.1       jtc 	case ABDAY_3:
     55   1.1       jtc 	case ABDAY_4:
     56   1.1       jtc 	case ABDAY_5:
     57   1.1       jtc 	case ABDAY_6:
     58   1.1       jtc 	case ABDAY_7:
     59   1.6  christos 		s = _CurrentTimeLocale->abday[(size_t)(item - ABDAY_1)];
     60   1.1       jtc 		break;
     61   1.1       jtc 	case MON_1:
     62   1.1       jtc 	case MON_2:
     63   1.1       jtc 	case MON_3:
     64   1.1       jtc 	case MON_4:
     65   1.1       jtc 	case MON_5:
     66   1.1       jtc 	case MON_6:
     67   1.1       jtc 	case MON_7:
     68   1.1       jtc 	case MON_8:
     69   1.1       jtc 	case MON_9:
     70   1.1       jtc 	case MON_10:
     71   1.1       jtc 	case MON_11:
     72   1.1       jtc 	case MON_12:
     73   1.6  christos 		s = _CurrentTimeLocale->mon[(size_t)(item - MON_1)];
     74   1.1       jtc 		break;
     75   1.1       jtc 	case ABMON_1:
     76   1.1       jtc 	case ABMON_2:
     77   1.1       jtc 	case ABMON_3:
     78   1.1       jtc 	case ABMON_4:
     79   1.1       jtc 	case ABMON_5:
     80   1.1       jtc 	case ABMON_6:
     81   1.1       jtc 	case ABMON_7:
     82   1.1       jtc 	case ABMON_8:
     83   1.1       jtc 	case ABMON_9:
     84   1.1       jtc 	case ABMON_10:
     85   1.1       jtc 	case ABMON_11:
     86   1.1       jtc 	case ABMON_12:
     87   1.6  christos 		s = _CurrentTimeLocale->abmon[(size_t)(item - ABMON_1)];
     88   1.1       jtc 		break;
     89   1.1       jtc 	case RADIXCHAR:
     90   1.2       jtc 		s = _CurrentNumericLocale->decimal_point;
     91   1.1       jtc 		break;
     92   1.1       jtc 	case THOUSEP:
     93   1.2       jtc 		s = _CurrentNumericLocale->thousands_sep;
     94   1.1       jtc 		break;
     95   1.2       jtc 	case YESSTR:
     96   1.2       jtc 		s = _CurrentMessagesLocale->yesstr;
     97   1.1       jtc 		break;
     98   1.2       jtc 	case YESEXPR:
     99   1.2       jtc 		s = _CurrentMessagesLocale->yesexpr;
    100   1.1       jtc 		break;
    101   1.2       jtc 	case NOSTR:
    102   1.2       jtc 		s = _CurrentMessagesLocale->nostr;
    103   1.1       jtc 		break;
    104   1.2       jtc 	case NOEXPR:
    105   1.2       jtc 		s = _CurrentMessagesLocale->noexpr;
    106   1.1       jtc 		break;
    107   1.1       jtc 	case CRNCYSTR:				/* XXX */
    108   1.2       jtc 		s = "";
    109   1.7  tshiozak 		break;
    110   1.7  tshiozak 	case CODESET:
    111  1.10  tshiozak #ifdef WITH_RUNE
    112   1.8  tshiozak 		s = _CurrentRuneLocale->rl_codeset;
    113  1.10  tshiozak #else
    114  1.10  tshiozak 		s = NULL;
    115  1.10  tshiozak #endif
    116   1.7  tshiozak 		if (!s)
    117   1.7  tshiozak 			s = "";
    118   1.1       jtc 		break;
    119   1.1       jtc 	default:
    120   1.2       jtc 		s = "";
    121   1.1       jtc 		break;
    122   1.1       jtc 	}
    123   1.1       jtc 
    124   1.6  christos 	/* The return value should be really const, but the interface says OW */
    125  1.11  christos 	return __UNCONST(s);
    126   1.1       jtc }
    127