1*38fd1498Szrj // std::time_get, std::time_put implementation, DragonFly version -*- C++ -*- 2*38fd1498Szrj 3*38fd1498Szrj // Copyright (C) 2001-2018 Free Software Foundation, Inc. 4*38fd1498Szrj // 5*38fd1498Szrj // This file is part of the GNU ISO C++ Library. This library is free 6*38fd1498Szrj // software; you can redistribute it and/or modify it under the 7*38fd1498Szrj // terms of the GNU General Public License as published by the 8*38fd1498Szrj // Free Software Foundation; either version 3, or (at your option) 9*38fd1498Szrj // any later version. 10*38fd1498Szrj 11*38fd1498Szrj // This library is distributed in the hope that it will be useful, 12*38fd1498Szrj // but WITHOUT ANY WARRANTY; without even the implied warranty of 13*38fd1498Szrj // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*38fd1498Szrj // GNU General Public License for more details. 15*38fd1498Szrj 16*38fd1498Szrj // Under Section 7 of GPL version 3, you are granted additional 17*38fd1498Szrj // permissions described in the GCC Runtime Library Exception, version 18*38fd1498Szrj // 3.1, as published by the Free Software Foundation. 19*38fd1498Szrj 20*38fd1498Szrj // You should have received a copy of the GNU General Public License and 21*38fd1498Szrj // a copy of the GCC Runtime Library Exception along with this program; 22*38fd1498Szrj // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23*38fd1498Szrj // <http://www.gnu.org/licenses/>. 24*38fd1498Szrj 25*38fd1498Szrj // 26*38fd1498Szrj // ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions 27*38fd1498Szrj // ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions 28*38fd1498Szrj // 29*38fd1498Szrj 30*38fd1498Szrj // Written by Benjamin Kosnik <bkoz@redhat.com> 31*38fd1498Szrj // Modified for DragonFly by John Marino <gnugcc@marino.st> 32*38fd1498Szrj 33*38fd1498Szrj #include <locale> 34*38fd1498Szrj #include <ctime> 35*38fd1498Szrj #include <cwchar> 36*38fd1498Szrj #include <stdlib.h> 37*38fd1498Szrj #include <langinfo.h> 38*38fd1498Szrj #include <xlocale.h> 39*38fd1498Szrj 40*38fd1498Szrj namespace std _GLIBCXX_VISIBILITY(default) 41*38fd1498Szrj { 42*38fd1498Szrj _GLIBCXX_BEGIN_NAMESPACE_VERSION 43*38fd1498Szrj 44*38fd1498Szrj template<> 45*38fd1498Szrj void 46*38fd1498Szrj __timepunct<char>:: _M_put(char * __s,size_t __maxlen,const char * __format,const tm * __tm) const47*38fd1498Szrj _M_put(char* __s, size_t __maxlen, const char* __format, 48*38fd1498Szrj const tm* __tm) const throw() 49*38fd1498Szrj { 50*38fd1498Szrj const size_t __len = strftime_l(__s, __maxlen, __format, __tm, 51*38fd1498Szrj (locale_t)_M_c_locale_timepunct); 52*38fd1498Szrj // Make sure __s is null terminated. 53*38fd1498Szrj if (__len == 0) 54*38fd1498Szrj __s[0] = '\0'; 55*38fd1498Szrj } 56*38fd1498Szrj 57*38fd1498Szrj template<> 58*38fd1498Szrj void _M_initialize_timepunct(__c_locale __cloc)59*38fd1498Szrj __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc) 60*38fd1498Szrj { 61*38fd1498Szrj if (!_M_data) 62*38fd1498Szrj _M_data = new __timepunct_cache<char>; 63*38fd1498Szrj 64*38fd1498Szrj if (!__cloc) 65*38fd1498Szrj { 66*38fd1498Szrj // "C" locale 67*38fd1498Szrj _M_c_locale_timepunct = _S_get_c_locale(); 68*38fd1498Szrj 69*38fd1498Szrj _M_data->_M_date_format = "%m/%d/%y"; 70*38fd1498Szrj _M_data->_M_date_era_format = "%m/%d/%y"; 71*38fd1498Szrj _M_data->_M_time_format = "%H:%M:%S"; 72*38fd1498Szrj _M_data->_M_time_era_format = "%H:%M:%S"; 73*38fd1498Szrj _M_data->_M_date_time_format = ""; 74*38fd1498Szrj _M_data->_M_date_time_era_format = ""; 75*38fd1498Szrj _M_data->_M_am = "AM"; 76*38fd1498Szrj _M_data->_M_pm = "PM"; 77*38fd1498Szrj _M_data->_M_am_pm_format = ""; 78*38fd1498Szrj 79*38fd1498Szrj // Day names, starting with "C"'s Sunday. 80*38fd1498Szrj _M_data->_M_day1 = "Sunday"; 81*38fd1498Szrj _M_data->_M_day2 = "Monday"; 82*38fd1498Szrj _M_data->_M_day3 = "Tuesday"; 83*38fd1498Szrj _M_data->_M_day4 = "Wednesday"; 84*38fd1498Szrj _M_data->_M_day5 = "Thursday"; 85*38fd1498Szrj _M_data->_M_day6 = "Friday"; 86*38fd1498Szrj _M_data->_M_day7 = "Saturday"; 87*38fd1498Szrj 88*38fd1498Szrj // Abbreviated day names, starting with "C"'s Sun. 89*38fd1498Szrj _M_data->_M_aday1 = "Sun"; 90*38fd1498Szrj _M_data->_M_aday2 = "Mon"; 91*38fd1498Szrj _M_data->_M_aday3 = "Tue"; 92*38fd1498Szrj _M_data->_M_aday4 = "Wed"; 93*38fd1498Szrj _M_data->_M_aday5 = "Thu"; 94*38fd1498Szrj _M_data->_M_aday6 = "Fri"; 95*38fd1498Szrj _M_data->_M_aday7 = "Sat"; 96*38fd1498Szrj 97*38fd1498Szrj // Month names, starting with "C"'s January. 98*38fd1498Szrj _M_data->_M_month01 = "January"; 99*38fd1498Szrj _M_data->_M_month02 = "February"; 100*38fd1498Szrj _M_data->_M_month03 = "March"; 101*38fd1498Szrj _M_data->_M_month04 = "April"; 102*38fd1498Szrj _M_data->_M_month05 = "May"; 103*38fd1498Szrj _M_data->_M_month06 = "June"; 104*38fd1498Szrj _M_data->_M_month07 = "July"; 105*38fd1498Szrj _M_data->_M_month08 = "August"; 106*38fd1498Szrj _M_data->_M_month09 = "September"; 107*38fd1498Szrj _M_data->_M_month10 = "October"; 108*38fd1498Szrj _M_data->_M_month11 = "November"; 109*38fd1498Szrj _M_data->_M_month12 = "December"; 110*38fd1498Szrj 111*38fd1498Szrj // Abbreviated month names, starting with "C"'s Jan. 112*38fd1498Szrj _M_data->_M_amonth01 = "Jan"; 113*38fd1498Szrj _M_data->_M_amonth02 = "Feb"; 114*38fd1498Szrj _M_data->_M_amonth03 = "Mar"; 115*38fd1498Szrj _M_data->_M_amonth04 = "Apr"; 116*38fd1498Szrj _M_data->_M_amonth05 = "May"; 117*38fd1498Szrj _M_data->_M_amonth06 = "Jun"; 118*38fd1498Szrj _M_data->_M_amonth07 = "Jul"; 119*38fd1498Szrj _M_data->_M_amonth08 = "Aug"; 120*38fd1498Szrj _M_data->_M_amonth09 = "Sep"; 121*38fd1498Szrj _M_data->_M_amonth10 = "Oct"; 122*38fd1498Szrj _M_data->_M_amonth11 = "Nov"; 123*38fd1498Szrj _M_data->_M_amonth12 = "Dec"; 124*38fd1498Szrj } 125*38fd1498Szrj else 126*38fd1498Szrj { 127*38fd1498Szrj _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 128*38fd1498Szrj 129*38fd1498Szrj _M_data->_M_date_format = nl_langinfo_l(D_FMT, (locale_t)__cloc); 130*38fd1498Szrj _M_data->_M_date_era_format = nl_langinfo_l(ERA_D_FMT, 131*38fd1498Szrj (locale_t)__cloc); 132*38fd1498Szrj _M_data->_M_time_format = nl_langinfo_l(T_FMT, (locale_t)__cloc); 133*38fd1498Szrj _M_data->_M_time_era_format = nl_langinfo_l(ERA_T_FMT, 134*38fd1498Szrj (locale_t)__cloc); 135*38fd1498Szrj _M_data->_M_date_time_format = nl_langinfo_l(D_T_FMT, 136*38fd1498Szrj (locale_t)__cloc); 137*38fd1498Szrj _M_data->_M_date_time_era_format = nl_langinfo_l(ERA_D_T_FMT, 138*38fd1498Szrj (locale_t)__cloc); 139*38fd1498Szrj _M_data->_M_am = nl_langinfo_l(AM_STR, (locale_t)__cloc); 140*38fd1498Szrj _M_data->_M_pm = nl_langinfo_l(PM_STR, (locale_t)__cloc); 141*38fd1498Szrj _M_data->_M_am_pm_format = nl_langinfo_l(T_FMT_AMPM, 142*38fd1498Szrj (locale_t)__cloc); 143*38fd1498Szrj 144*38fd1498Szrj // Day names, starting with "C"'s Sunday. 145*38fd1498Szrj _M_data->_M_day1 = nl_langinfo_l(DAY_1, (locale_t)__cloc); 146*38fd1498Szrj _M_data->_M_day2 = nl_langinfo_l(DAY_2, (locale_t)__cloc); 147*38fd1498Szrj _M_data->_M_day3 = nl_langinfo_l(DAY_3, (locale_t)__cloc); 148*38fd1498Szrj _M_data->_M_day4 = nl_langinfo_l(DAY_4, (locale_t)__cloc); 149*38fd1498Szrj _M_data->_M_day5 = nl_langinfo_l(DAY_5, (locale_t)__cloc); 150*38fd1498Szrj _M_data->_M_day6 = nl_langinfo_l(DAY_6, (locale_t)__cloc); 151*38fd1498Szrj _M_data->_M_day7 = nl_langinfo_l(DAY_7, (locale_t)__cloc); 152*38fd1498Szrj 153*38fd1498Szrj // Abbreviated day names, starting with "C"'s Sun. 154*38fd1498Szrj _M_data->_M_aday1 = nl_langinfo_l(ABDAY_1, (locale_t)__cloc); 155*38fd1498Szrj _M_data->_M_aday2 = nl_langinfo_l(ABDAY_2, (locale_t)__cloc); 156*38fd1498Szrj _M_data->_M_aday3 = nl_langinfo_l(ABDAY_3, (locale_t)__cloc); 157*38fd1498Szrj _M_data->_M_aday4 = nl_langinfo_l(ABDAY_4, (locale_t)__cloc); 158*38fd1498Szrj _M_data->_M_aday5 = nl_langinfo_l(ABDAY_5, (locale_t)__cloc); 159*38fd1498Szrj _M_data->_M_aday6 = nl_langinfo_l(ABDAY_6, (locale_t)__cloc); 160*38fd1498Szrj _M_data->_M_aday7 = nl_langinfo_l(ABDAY_7, (locale_t)__cloc); 161*38fd1498Szrj 162*38fd1498Szrj // Month names, starting with "C"'s January. 163*38fd1498Szrj _M_data->_M_month01 = nl_langinfo_l(MON_1, (locale_t)__cloc); 164*38fd1498Szrj _M_data->_M_month02 = nl_langinfo_l(MON_2, (locale_t)__cloc); 165*38fd1498Szrj _M_data->_M_month03 = nl_langinfo_l(MON_3, (locale_t)__cloc); 166*38fd1498Szrj _M_data->_M_month04 = nl_langinfo_l(MON_4, (locale_t)__cloc); 167*38fd1498Szrj _M_data->_M_month05 = nl_langinfo_l(MON_5, (locale_t)__cloc); 168*38fd1498Szrj _M_data->_M_month06 = nl_langinfo_l(MON_6, (locale_t)__cloc); 169*38fd1498Szrj _M_data->_M_month07 = nl_langinfo_l(MON_7, (locale_t)__cloc); 170*38fd1498Szrj _M_data->_M_month08 = nl_langinfo_l(MON_8, (locale_t)__cloc); 171*38fd1498Szrj _M_data->_M_month09 = nl_langinfo_l(MON_9, (locale_t)__cloc); 172*38fd1498Szrj _M_data->_M_month10 = nl_langinfo_l(MON_10, (locale_t)__cloc); 173*38fd1498Szrj _M_data->_M_month11 = nl_langinfo_l(MON_11, (locale_t)__cloc); 174*38fd1498Szrj _M_data->_M_month12 = nl_langinfo_l(MON_12, (locale_t)__cloc); 175*38fd1498Szrj 176*38fd1498Szrj // Abbreviated month names, starting with "C"'s Jan. 177*38fd1498Szrj _M_data->_M_amonth01 = nl_langinfo_l(ABMON_1, (locale_t)__cloc); 178*38fd1498Szrj _M_data->_M_amonth02 = nl_langinfo_l(ABMON_2, (locale_t)__cloc); 179*38fd1498Szrj _M_data->_M_amonth03 = nl_langinfo_l(ABMON_3, (locale_t)__cloc); 180*38fd1498Szrj _M_data->_M_amonth04 = nl_langinfo_l(ABMON_4, (locale_t)__cloc); 181*38fd1498Szrj _M_data->_M_amonth05 = nl_langinfo_l(ABMON_5, (locale_t)__cloc); 182*38fd1498Szrj _M_data->_M_amonth06 = nl_langinfo_l(ABMON_6, (locale_t)__cloc); 183*38fd1498Szrj _M_data->_M_amonth07 = nl_langinfo_l(ABMON_7, (locale_t)__cloc); 184*38fd1498Szrj _M_data->_M_amonth08 = nl_langinfo_l(ABMON_8, (locale_t)__cloc); 185*38fd1498Szrj _M_data->_M_amonth09 = nl_langinfo_l(ABMON_9, (locale_t)__cloc); 186*38fd1498Szrj _M_data->_M_amonth10 = nl_langinfo_l(ABMON_10, (locale_t)__cloc); 187*38fd1498Szrj _M_data->_M_amonth11 = nl_langinfo_l(ABMON_11, (locale_t)__cloc); 188*38fd1498Szrj _M_data->_M_amonth12 = nl_langinfo_l(ABMON_12, (locale_t)__cloc); 189*38fd1498Szrj } 190*38fd1498Szrj } 191*38fd1498Szrj 192*38fd1498Szrj #ifdef _GLIBCXX_USE_WCHAR_T 193*38fd1498Szrj template<> 194*38fd1498Szrj void 195*38fd1498Szrj __timepunct<wchar_t>:: _M_put(wchar_t * __s,size_t __maxlen,const wchar_t * __format,const tm * __tm) const196*38fd1498Szrj _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, 197*38fd1498Szrj const tm* __tm) const throw() 198*38fd1498Szrj { 199*38fd1498Szrj const size_t __len = wcsftime_l(__s, __maxlen, __format, __tm, 200*38fd1498Szrj (locale_t)_M_c_locale_timepunct); 201*38fd1498Szrj // Make sure __s is null terminated. 202*38fd1498Szrj if (__len == 0) 203*38fd1498Szrj __s[0] = L'\0'; 204*38fd1498Szrj } 205*38fd1498Szrj 206*38fd1498Szrj #define WIDE_LANGINFO(M,FMT) \ 207*38fd1498Szrj fmtlen = mbstowcs_l (holder, nl_langinfo_l(FMT, (locale_t)__cloc), \ 208*38fd1498Szrj 128, (locale_t)__cloc); \ 209*38fd1498Szrj langstring = new wchar_t[fmtlen + 1]; \ 210*38fd1498Szrj wcsncpy (langstring, holder, fmtlen); \ 211*38fd1498Szrj langstring[fmtlen] = L'\0'; \ 212*38fd1498Szrj _M_data->M = langstring; 213*38fd1498Szrj 214*38fd1498Szrj template<> 215*38fd1498Szrj void _M_initialize_timepunct(__c_locale __cloc)216*38fd1498Szrj __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc) 217*38fd1498Szrj { 218*38fd1498Szrj if (!_M_data) 219*38fd1498Szrj _M_data = new __timepunct_cache<wchar_t>; 220*38fd1498Szrj 221*38fd1498Szrj if (!__cloc) 222*38fd1498Szrj { 223*38fd1498Szrj // "C" locale 224*38fd1498Szrj _M_c_locale_timepunct = _S_get_c_locale(); 225*38fd1498Szrj 226*38fd1498Szrj _M_data->_M_date_format = L"%m/%d/%y"; 227*38fd1498Szrj _M_data->_M_date_era_format = L"%m/%d/%y"; 228*38fd1498Szrj _M_data->_M_time_format = L"%H:%M:%S"; 229*38fd1498Szrj _M_data->_M_time_era_format = L"%H:%M:%S"; 230*38fd1498Szrj _M_data->_M_date_time_format = L""; 231*38fd1498Szrj _M_data->_M_date_time_era_format = L""; 232*38fd1498Szrj _M_data->_M_am = L"AM"; 233*38fd1498Szrj _M_data->_M_pm = L"PM"; 234*38fd1498Szrj _M_data->_M_am_pm_format = L""; 235*38fd1498Szrj 236*38fd1498Szrj // Day names, starting with "C"'s Sunday. 237*38fd1498Szrj _M_data->_M_day1 = L"Sunday"; 238*38fd1498Szrj _M_data->_M_day2 = L"Monday"; 239*38fd1498Szrj _M_data->_M_day3 = L"Tuesday"; 240*38fd1498Szrj _M_data->_M_day4 = L"Wednesday"; 241*38fd1498Szrj _M_data->_M_day5 = L"Thursday"; 242*38fd1498Szrj _M_data->_M_day6 = L"Friday"; 243*38fd1498Szrj _M_data->_M_day7 = L"Saturday"; 244*38fd1498Szrj 245*38fd1498Szrj // Abbreviated day names, starting with "C"'s Sun. 246*38fd1498Szrj _M_data->_M_aday1 = L"Sun"; 247*38fd1498Szrj _M_data->_M_aday2 = L"Mon"; 248*38fd1498Szrj _M_data->_M_aday3 = L"Tue"; 249*38fd1498Szrj _M_data->_M_aday4 = L"Wed"; 250*38fd1498Szrj _M_data->_M_aday5 = L"Thu"; 251*38fd1498Szrj _M_data->_M_aday6 = L"Fri"; 252*38fd1498Szrj _M_data->_M_aday7 = L"Sat"; 253*38fd1498Szrj 254*38fd1498Szrj // Month names, starting with "C"'s January. 255*38fd1498Szrj _M_data->_M_month01 = L"January"; 256*38fd1498Szrj _M_data->_M_month02 = L"February"; 257*38fd1498Szrj _M_data->_M_month03 = L"March"; 258*38fd1498Szrj _M_data->_M_month04 = L"April"; 259*38fd1498Szrj _M_data->_M_month05 = L"May"; 260*38fd1498Szrj _M_data->_M_month06 = L"June"; 261*38fd1498Szrj _M_data->_M_month07 = L"July"; 262*38fd1498Szrj _M_data->_M_month08 = L"August"; 263*38fd1498Szrj _M_data->_M_month09 = L"September"; 264*38fd1498Szrj _M_data->_M_month10 = L"October"; 265*38fd1498Szrj _M_data->_M_month11 = L"November"; 266*38fd1498Szrj _M_data->_M_month12 = L"December"; 267*38fd1498Szrj 268*38fd1498Szrj // Abbreviated month names, starting with "C"'s Jan. 269*38fd1498Szrj _M_data->_M_amonth01 = L"Jan"; 270*38fd1498Szrj _M_data->_M_amonth02 = L"Feb"; 271*38fd1498Szrj _M_data->_M_amonth03 = L"Mar"; 272*38fd1498Szrj _M_data->_M_amonth04 = L"Apr"; 273*38fd1498Szrj _M_data->_M_amonth05 = L"May"; 274*38fd1498Szrj _M_data->_M_amonth06 = L"Jun"; 275*38fd1498Szrj _M_data->_M_amonth07 = L"Jul"; 276*38fd1498Szrj _M_data->_M_amonth08 = L"Aug"; 277*38fd1498Szrj _M_data->_M_amonth09 = L"Sep"; 278*38fd1498Szrj _M_data->_M_amonth10 = L"Oct"; 279*38fd1498Szrj _M_data->_M_amonth11 = L"Nov"; 280*38fd1498Szrj _M_data->_M_amonth12 = L"Dec"; 281*38fd1498Szrj } 282*38fd1498Szrj else 283*38fd1498Szrj { 284*38fd1498Szrj wchar_t *langstring = 0; 285*38fd1498Szrj wchar_t holder[128]; 286*38fd1498Szrj size_t fmtlen; 287*38fd1498Szrj 288*38fd1498Szrj _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 289*38fd1498Szrj 290*38fd1498Szrj WIDE_LANGINFO(_M_date_format, D_FMT) 291*38fd1498Szrj WIDE_LANGINFO(_M_date_era_format, ERA_D_FMT) 292*38fd1498Szrj WIDE_LANGINFO(_M_time_format, T_FMT) 293*38fd1498Szrj WIDE_LANGINFO(_M_time_era_format, ERA_T_FMT) 294*38fd1498Szrj WIDE_LANGINFO(_M_date_time_format, D_T_FMT) 295*38fd1498Szrj WIDE_LANGINFO(_M_date_time_era_format, ERA_D_T_FMT) 296*38fd1498Szrj WIDE_LANGINFO(_M_am, AM_STR) 297*38fd1498Szrj WIDE_LANGINFO(_M_pm, PM_STR) 298*38fd1498Szrj WIDE_LANGINFO(_M_am_pm_format, T_FMT_AMPM) 299*38fd1498Szrj 300*38fd1498Szrj // Day names, starting with "C"'s Sunday. 301*38fd1498Szrj WIDE_LANGINFO(_M_day1, DAY_1) 302*38fd1498Szrj WIDE_LANGINFO(_M_day2, DAY_2) 303*38fd1498Szrj WIDE_LANGINFO(_M_day3, DAY_3) 304*38fd1498Szrj WIDE_LANGINFO(_M_day4, DAY_4) 305*38fd1498Szrj WIDE_LANGINFO(_M_day5, DAY_5) 306*38fd1498Szrj WIDE_LANGINFO(_M_day6, DAY_6) 307*38fd1498Szrj WIDE_LANGINFO(_M_day7, DAY_7) 308*38fd1498Szrj 309*38fd1498Szrj // Abbreviated day names, starting with "C"'s Sun. 310*38fd1498Szrj WIDE_LANGINFO(_M_aday1, ABDAY_1) 311*38fd1498Szrj WIDE_LANGINFO(_M_aday2, ABDAY_2) 312*38fd1498Szrj WIDE_LANGINFO(_M_aday3, ABDAY_3) 313*38fd1498Szrj WIDE_LANGINFO(_M_aday4, ABDAY_4) 314*38fd1498Szrj WIDE_LANGINFO(_M_aday5, ABDAY_5) 315*38fd1498Szrj WIDE_LANGINFO(_M_aday6, ABDAY_6) 316*38fd1498Szrj WIDE_LANGINFO(_M_aday7, ABDAY_7) 317*38fd1498Szrj 318*38fd1498Szrj // Month names, starting with "C"'s January. 319*38fd1498Szrj WIDE_LANGINFO(_M_month01, MON_1) 320*38fd1498Szrj WIDE_LANGINFO(_M_month02, MON_2) 321*38fd1498Szrj WIDE_LANGINFO(_M_month03, MON_3) 322*38fd1498Szrj WIDE_LANGINFO(_M_month04, MON_4) 323*38fd1498Szrj WIDE_LANGINFO(_M_month05, MON_5) 324*38fd1498Szrj WIDE_LANGINFO(_M_month06, MON_6) 325*38fd1498Szrj WIDE_LANGINFO(_M_month07, MON_7) 326*38fd1498Szrj WIDE_LANGINFO(_M_month08, MON_8) 327*38fd1498Szrj WIDE_LANGINFO(_M_month09, MON_9) 328*38fd1498Szrj WIDE_LANGINFO(_M_month10, MON_10) 329*38fd1498Szrj WIDE_LANGINFO(_M_month11, MON_11) 330*38fd1498Szrj WIDE_LANGINFO(_M_month12, MON_12) 331*38fd1498Szrj 332*38fd1498Szrj // Abbreviated month names, starting with "C"'s Jan. 333*38fd1498Szrj WIDE_LANGINFO(_M_amonth01, ABMON_1) 334*38fd1498Szrj WIDE_LANGINFO(_M_amonth02, ABMON_2) 335*38fd1498Szrj WIDE_LANGINFO(_M_amonth03, ABMON_3) 336*38fd1498Szrj WIDE_LANGINFO(_M_amonth04, ABMON_4) 337*38fd1498Szrj WIDE_LANGINFO(_M_amonth05, ABMON_5) 338*38fd1498Szrj WIDE_LANGINFO(_M_amonth06, ABMON_6) 339*38fd1498Szrj WIDE_LANGINFO(_M_amonth07, ABMON_7) 340*38fd1498Szrj WIDE_LANGINFO(_M_amonth08, ABMON_8) 341*38fd1498Szrj WIDE_LANGINFO(_M_amonth09, ABMON_9) 342*38fd1498Szrj WIDE_LANGINFO(_M_amonth10, ABMON_10) 343*38fd1498Szrj WIDE_LANGINFO(_M_amonth11, ABMON_11) 344*38fd1498Szrj WIDE_LANGINFO(_M_amonth12, ABMON_12) 345*38fd1498Szrj } 346*38fd1498Szrj } 347*38fd1498Szrj 348*38fd1498Szrj template<> ~__timepunct()349*38fd1498Szrj __timepunct<wchar_t>::~__timepunct() 350*38fd1498Szrj { 351*38fd1498Szrj delete [] _M_data->_M_date_format; 352*38fd1498Szrj delete [] _M_data->_M_date_era_format; 353*38fd1498Szrj delete [] _M_data->_M_time_format; 354*38fd1498Szrj delete [] _M_data->_M_time_era_format; 355*38fd1498Szrj delete [] _M_data->_M_date_time_format; 356*38fd1498Szrj delete [] _M_data->_M_date_time_era_format; 357*38fd1498Szrj delete [] _M_data->_M_am; 358*38fd1498Szrj delete [] _M_data->_M_pm; 359*38fd1498Szrj delete [] _M_data->_M_am_pm_format; 360*38fd1498Szrj delete [] _M_data->_M_day1; 361*38fd1498Szrj delete [] _M_data->_M_day2; 362*38fd1498Szrj delete [] _M_data->_M_day3; 363*38fd1498Szrj delete [] _M_data->_M_day4; 364*38fd1498Szrj delete [] _M_data->_M_day5; 365*38fd1498Szrj delete [] _M_data->_M_day6; 366*38fd1498Szrj delete [] _M_data->_M_day7; 367*38fd1498Szrj delete [] _M_data->_M_aday1; 368*38fd1498Szrj delete [] _M_data->_M_aday2; 369*38fd1498Szrj delete [] _M_data->_M_aday3; 370*38fd1498Szrj delete [] _M_data->_M_aday4; 371*38fd1498Szrj delete [] _M_data->_M_aday5; 372*38fd1498Szrj delete [] _M_data->_M_aday6; 373*38fd1498Szrj delete [] _M_data->_M_aday7; 374*38fd1498Szrj delete [] _M_data->_M_month01; 375*38fd1498Szrj delete [] _M_data->_M_month02; 376*38fd1498Szrj delete [] _M_data->_M_month03; 377*38fd1498Szrj delete [] _M_data->_M_month04; 378*38fd1498Szrj delete [] _M_data->_M_month05; 379*38fd1498Szrj delete [] _M_data->_M_month06; 380*38fd1498Szrj delete [] _M_data->_M_month07; 381*38fd1498Szrj delete [] _M_data->_M_month08; 382*38fd1498Szrj delete [] _M_data->_M_month09; 383*38fd1498Szrj delete [] _M_data->_M_month10; 384*38fd1498Szrj delete [] _M_data->_M_month11; 385*38fd1498Szrj delete [] _M_data->_M_month12; 386*38fd1498Szrj delete [] _M_data->_M_amonth01; 387*38fd1498Szrj delete [] _M_data->_M_amonth02; 388*38fd1498Szrj delete [] _M_data->_M_amonth03; 389*38fd1498Szrj delete [] _M_data->_M_amonth04; 390*38fd1498Szrj delete [] _M_data->_M_amonth05; 391*38fd1498Szrj delete [] _M_data->_M_amonth06; 392*38fd1498Szrj delete [] _M_data->_M_amonth07; 393*38fd1498Szrj delete [] _M_data->_M_amonth08; 394*38fd1498Szrj delete [] _M_data->_M_amonth09; 395*38fd1498Szrj delete [] _M_data->_M_amonth10; 396*38fd1498Szrj delete [] _M_data->_M_amonth11; 397*38fd1498Szrj delete [] _M_data->_M_amonth12; 398*38fd1498Szrj delete _M_data; 399*38fd1498Szrj } 400*38fd1498Szrj 401*38fd1498Szrj #endif 402*38fd1498Szrj 403*38fd1498Szrj _GLIBCXX_END_NAMESPACE_VERSION 404*38fd1498Szrj } // namespace 405