00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00025 #include "plibc_private.h"
00026
00027 char __langinfo[251];
00028
00032 char *nl_langinfo(int item)
00033 {
00034 unsigned int loc;
00035
00036 loc = GetThreadLocale();
00037
00038 switch(item)
00039 {
00040 case CODESET:
00041 {
00042 unsigned int cp = GetACP();
00043
00044 if (cp)
00045 sprintf(__langinfo, "CP%u", cp);
00046 else
00047 strcpy(__langinfo, "UTF-8");
00048 return __langinfo;
00049 }
00050 case D_T_FMT:
00051 case T_FMT_AMPM:
00052 case ERA_D_T_FMT:
00053 strcpy(__langinfo, "%c");
00054 return __langinfo;
00055 case D_FMT:
00056 case ERA_D_FMT:
00057 strcpy(__langinfo, "%x");
00058 return __langinfo;
00059 case T_FMT:
00060 case ERA_T_FMT:
00061 strcpy(__langinfo, "%X");
00062 return __langinfo;
00063 case AM_STR:
00064 GetLocaleInfo(loc, LOCALE_S1159, __langinfo, 251);
00065 return __langinfo;
00066 case PM_STR:
00067 GetLocaleInfo(loc, LOCALE_S2359, __langinfo, 251);
00068 return __langinfo;
00069 case DAY_1:
00070 GetLocaleInfo(loc, LOCALE_SDAYNAME1, __langinfo, 251);
00071 return __langinfo;
00072 case DAY_2:
00073 GetLocaleInfo(loc, LOCALE_SDAYNAME2, __langinfo, 251);
00074 return __langinfo;
00075 case DAY_3:
00076 GetLocaleInfo(loc, LOCALE_SDAYNAME3, __langinfo, 251);
00077 return __langinfo;
00078 case DAY_4:
00079 GetLocaleInfo(loc, LOCALE_SDAYNAME4, __langinfo, 251);
00080 return __langinfo;
00081 case DAY_5:
00082 GetLocaleInfo(loc, LOCALE_SDAYNAME5, __langinfo, 251);
00083 return __langinfo;
00084 case DAY_6:
00085 GetLocaleInfo(loc, LOCALE_SDAYNAME6, __langinfo, 251);
00086 return __langinfo;
00087 case DAY_7:
00088 GetLocaleInfo(loc, LOCALE_SDAYNAME7, __langinfo, 251);
00089 return __langinfo;
00090 case ABDAY_1:
00091 GetLocaleInfo(loc, LOCALE_SABBREVDAYNAME1, __langinfo, 251);
00092 return __langinfo;
00093 case ABDAY_2:
00094 GetLocaleInfo(loc, LOCALE_SABBREVDAYNAME2, __langinfo, 251);
00095 return __langinfo;
00096 case ABDAY_3:
00097 GetLocaleInfo(loc, LOCALE_SABBREVDAYNAME3, __langinfo, 251);
00098 return __langinfo;
00099 case ABDAY_4:
00100 GetLocaleInfo(loc, LOCALE_SABBREVDAYNAME4, __langinfo, 251);
00101 return __langinfo;
00102 case ABDAY_5:
00103 GetLocaleInfo(loc, LOCALE_SABBREVDAYNAME5, __langinfo, 251);
00104 return __langinfo;
00105 case ABDAY_6:
00106 GetLocaleInfo(loc, LOCALE_SABBREVDAYNAME6, __langinfo, 251);
00107 return __langinfo;
00108 case ABDAY_7:
00109 GetLocaleInfo(loc, LOCALE_SABBREVDAYNAME7, __langinfo, 251);
00110 return __langinfo;
00111 case MON_1:
00112 GetLocaleInfo(loc, LOCALE_SMONTHNAME1, __langinfo, 251);
00113 return __langinfo;
00114 case MON_2:
00115 GetLocaleInfo(loc, LOCALE_SMONTHNAME2, __langinfo, 251);
00116 return __langinfo;
00117 case MON_3:
00118 GetLocaleInfo(loc, LOCALE_SMONTHNAME3, __langinfo, 251);
00119 return __langinfo;
00120 case MON_4:
00121 GetLocaleInfo(loc, LOCALE_SMONTHNAME4, __langinfo, 251);
00122 return __langinfo;
00123 case MON_5:
00124 GetLocaleInfo(loc, LOCALE_SMONTHNAME5, __langinfo, 251);
00125 return __langinfo;
00126 case MON_6:
00127 GetLocaleInfo(loc, LOCALE_SMONTHNAME6, __langinfo, 251);
00128 return __langinfo;
00129 case MON_7:
00130 GetLocaleInfo(loc, LOCALE_SMONTHNAME7, __langinfo, 251);
00131 return __langinfo;
00132 case MON_8:
00133 GetLocaleInfo(loc, LOCALE_SMONTHNAME8, __langinfo, 251);
00134 return __langinfo;
00135 case MON_9:
00136 GetLocaleInfo(loc, LOCALE_SMONTHNAME9, __langinfo, 251);
00137 return __langinfo;
00138 case MON_10:
00139 GetLocaleInfo(loc, LOCALE_SMONTHNAME10, __langinfo, 251);
00140 return __langinfo;
00141 case MON_11:
00142 GetLocaleInfo(loc, LOCALE_SMONTHNAME11, __langinfo, 251);
00143 return __langinfo;
00144 case MON_12:
00145 GetLocaleInfo(loc, LOCALE_SMONTHNAME12, __langinfo, 251);
00146 return __langinfo;
00147 case ABMON_1:
00148 GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME1, __langinfo, 251);
00149 return __langinfo;
00150 case ABMON_2:
00151 GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME2, __langinfo, 251);
00152 return __langinfo;
00153 case ABMON_3:
00154 GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME3, __langinfo, 251);
00155 return __langinfo;
00156 case ABMON_4:
00157 GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME4, __langinfo, 251);
00158 return __langinfo;
00159 case ABMON_5:
00160 GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME5, __langinfo, 251);
00161 return __langinfo;
00162 case ABMON_6:
00163 GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME6, __langinfo, 251);
00164 return __langinfo;
00165 case ABMON_7:
00166 GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME7, __langinfo, 251);
00167 return __langinfo;
00168 case ABMON_8:
00169 GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME8, __langinfo, 251);
00170 return __langinfo;
00171 case ABMON_9:
00172 GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME9, __langinfo, 251);
00173 return __langinfo;
00174 case ABMON_10:
00175 GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME10, __langinfo, 251);
00176 return __langinfo;
00177 case ABMON_11:
00178 GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME11, __langinfo, 251);
00179 return __langinfo;
00180 case ABMON_12:
00181 GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME12, __langinfo, 251);
00182 return __langinfo;
00183 case ERA:
00184
00185 __langinfo[0] = 0;
00186 return __langinfo;
00187 case ALT_DIGITS:
00188 GetLocaleInfo(loc, LOCALE_SNATIVEDIGITS, __langinfo, 251);
00189 return __langinfo;
00190 case RADIXCHAR:
00191 GetLocaleInfo(loc, LOCALE_SDECIMAL, __langinfo, 251);
00192 return __langinfo;
00193 case THOUSEP:
00194 GetLocaleInfo(loc, LOCALE_STHOUSAND, __langinfo, 251);
00195 return __langinfo;
00196 case YESEXPR:
00197
00198 strcpy(__langinfo, "^[yY]");
00199 return __langinfo;
00200 case NOEXPR:
00201
00202 strcpy(__langinfo, "^[nN]");
00203 return __langinfo;
00204 case CRNCYSTR:
00205 GetLocaleInfo(loc, LOCALE_STHOUSAND, __langinfo, 251);
00206 if (__langinfo[0] == '0' || __langinfo[0] == '2')
00207 __langinfo[0] = '-';
00208 else
00209 __langinfo[0] = '+';
00210 GetLocaleInfo(loc, LOCALE_SCURRENCY, __langinfo + 1, 251);
00211 default:
00212 __langinfo[0] = 0;
00213 return __langinfo;
00214 }
00215 }
00216
00217