jdk/src/java.base/windows/native/libjava/HostLocaleProviderAdapter_md.c
author chegar
Sun, 17 Aug 2014 15:54:13 +0100
changeset 25859 3317bb8137f4
parent 24121 jdk/src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c@0de1e14447a8
child 34878 7d7e55ff253a
permissions -rw-r--r--
8054834: Modular Source Code Reviewed-by: alanb, chegar, ihse, mduigou Contributed-by: alan.bateman@oracle.com, alex.buckley@oracle.com, chris.hegarty@oracle.com, erik.joelsson@oracle.com, jonathan.gibbons@oracle.com, karen.kinnear@oracle.com, magnus.ihse.bursie@oracle.com, mandy.chung@oracle.com, mark.reinhold@oracle.com, paul.sandoz@oracle.com
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
     1
/*
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
     2
 * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
     4
 *
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
     7
 * published by the Free Software Foundation.  Oracle designates this
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
     9
 * by Oracle in the LICENSE file that accompanied this code.
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    10
 *
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    15
 * accompanied this code).
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    16
 *
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    20
 *
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    23
 * questions.
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    24
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    25
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    26
#include "sun_util_locale_provider_HostLocaleProviderAdapterImpl.h"
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
    27
#include "jni_util.h"
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    28
#include <windows.h>
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    29
#include <gdefs.h>
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    30
#include <stdlib.h>
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    31
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    32
#define BUFLEN 256
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    33
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    34
// global variables
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    35
typedef int (WINAPI *PGLIE)(const jchar *, LCTYPE, LPWSTR, int);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    36
typedef int (WINAPI *PGCIE)(const jchar *, CALID, LPCWSTR, CALTYPE, LPWSTR, int, LPDWORD);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    37
PGLIE pGetLocaleInfoEx;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    38
PGCIE pGetCalendarInfoEx;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    39
BOOL initialized = FALSE;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    40
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    41
// prototypes
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    42
int getLocaleInfoWrapper(const jchar *langtag, LCTYPE type, LPWSTR data, int buflen);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    43
int getCalendarInfoWrapper(const jchar *langtag, CALID id, LPCWSTR reserved, CALTYPE type, LPWSTR data, int buflen, LPDWORD val);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    44
jint getCalendarID(const jchar *langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    45
void replaceCalendarArrayElems(JNIEnv *env, jstring jlangtag, jobjectArray jarray,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    46
                       CALTYPE* pCalTypes, int offset, int length);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    47
WCHAR * getNumberPattern(const jchar * langtag, const jint numberStyle);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    48
void getNumberPart(const jchar * langtag, const jint numberStyle, WCHAR * number);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    49
void getFixPart(const jchar * langtag, const jint numberStyle, BOOL positive, BOOL prefix, WCHAR * ret);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    50
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    51
// from java_props_md.c
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    52
extern __declspec(dllexport) const char * getJavaIDFromLangID(LANGID langID);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    53
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    54
CALTYPE monthsType[] = {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    55
    CAL_SMONTHNAME1,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    56
    CAL_SMONTHNAME2,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    57
    CAL_SMONTHNAME3,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    58
    CAL_SMONTHNAME4,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    59
    CAL_SMONTHNAME5,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    60
    CAL_SMONTHNAME6,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    61
    CAL_SMONTHNAME7,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    62
    CAL_SMONTHNAME8,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    63
    CAL_SMONTHNAME9,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    64
    CAL_SMONTHNAME10,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    65
    CAL_SMONTHNAME11,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    66
    CAL_SMONTHNAME12,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    67
    CAL_SMONTHNAME13,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    68
};
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    69
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    70
CALTYPE sMonthsType[] = {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    71
    CAL_SABBREVMONTHNAME1,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    72
    CAL_SABBREVMONTHNAME2,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    73
    CAL_SABBREVMONTHNAME3,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    74
    CAL_SABBREVMONTHNAME4,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    75
    CAL_SABBREVMONTHNAME5,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    76
    CAL_SABBREVMONTHNAME6,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    77
    CAL_SABBREVMONTHNAME7,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    78
    CAL_SABBREVMONTHNAME8,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    79
    CAL_SABBREVMONTHNAME9,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    80
    CAL_SABBREVMONTHNAME10,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    81
    CAL_SABBREVMONTHNAME11,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    82
    CAL_SABBREVMONTHNAME12,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    83
    CAL_SABBREVMONTHNAME13,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    84
};
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    85
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    86
CALTYPE wDaysType[] = {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    87
    CAL_SDAYNAME7,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    88
    CAL_SDAYNAME1,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    89
    CAL_SDAYNAME2,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    90
    CAL_SDAYNAME3,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    91
    CAL_SDAYNAME4,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    92
    CAL_SDAYNAME5,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    93
    CAL_SDAYNAME6,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    94
};
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    95
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    96
CALTYPE sWDaysType[] = {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    97
    CAL_SABBREVDAYNAME7,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    98
    CAL_SABBREVDAYNAME1,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
    99
    CAL_SABBREVDAYNAME2,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   100
    CAL_SABBREVDAYNAME3,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   101
    CAL_SABBREVDAYNAME4,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   102
    CAL_SABBREVDAYNAME5,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   103
    CAL_SABBREVDAYNAME6,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   104
};
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   105
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   106
WCHAR * fixes[2][2][3][16] =
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   107
{
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   108
    { //prefix
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   109
        { //positive
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   110
            { // number
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   111
                L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"",
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   112
            },
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   113
            { // currency
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   114
                L"\xA4", L"", L"\xA4 ", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"",
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   115
            },
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   116
            { // percent
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   117
                L"", L"", L"%", L"% ", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"",
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   118
            }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   119
        },
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   120
        { // negative
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   121
            { // number
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   122
                L"(", L"-", L"- ", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"",
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   123
            },
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   124
            { //currency
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   125
                L"(\xA4", L"-\xA4", L"\xA4-", L"\xA4", L"(", L"-", L"", L"", L"-", L"-\xA4 ", L"", L"\xA4 ", L"\xA4 -", L"", L"(\xA4 ", L"("
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   126
            },
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   127
            { // percent
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   128
                L"-", L"-", L"-%", L"%-", L"%", L"", L"", L"-% ", L"", L"% ", L"% -", L"", L"", L"", L"", L"",
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   129
            }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   130
        }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   131
    },
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   132
    { // suffix
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   133
        { //positive
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   134
            { // number
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   135
                L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L""
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   136
            },
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   137
            { // currency
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   138
                L"", L"\xA4 ", L"", L" \xA4", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"",
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   139
            },
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   140
            { // percent
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   141
                L" %", L"%", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"",
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   142
            }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   143
        },
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   144
        { // negative
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   145
            { // number
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   146
                L")", L"", L" ", L"-", L" -", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"", L"",
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   147
            },
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   148
            { //currency
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   149
                L")", L"", L"", L"-", L"\xA4)", L"\xA4", L"-\xA4", L"\xA4-", L" \xA4", L"", L" \xA4-", L"-", L"", L"- \xA4", L")", L" \xA4)"
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   150
            },
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   151
            { // percent
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   152
                L" %", L"%", L"", L"", L"-", L"-%", L"%-", L"", L" %-", L"-", L"", L"- %", L"", L"", L"", L"",
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   153
            }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   154
        }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   155
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   156
};
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   157
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   158
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   159
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   160
 * Method:    initialize
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   161
 * Signature: ()Z
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   162
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   163
JNIEXPORT jboolean JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_initialize
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   164
  (JNIEnv *env, jclass cls) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   165
    if (!initialized) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   166
        pGetLocaleInfoEx = (PGLIE)GetProcAddress(
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   167
            GetModuleHandle("kernel32.dll"),
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   168
            "GetLocaleInfoEx");
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   169
        pGetCalendarInfoEx = (PGCIE)GetProcAddress(
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   170
            GetModuleHandle("kernel32.dll"),
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   171
            "GetCalendarInfoEx");
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   172
        initialized =TRUE;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   173
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   174
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   175
    return pGetLocaleInfoEx != NULL &&
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   176
           pGetCalendarInfoEx != NULL;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   177
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   178
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   179
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   180
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   181
 * Method:    getDefaultLocale
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   182
 * Signature: (I)Ljava/lang/String;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   183
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   184
JNIEXPORT jstring JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getDefaultLocale
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   185
  (JNIEnv *env, jclass cls, jint cat) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   186
    char * localeString = NULL;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   187
    LANGID langid;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   188
    jstring ret;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   189
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   190
    switch (cat) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   191
        case sun_util_locale_provider_HostLocaleProviderAdapterImpl_CAT_DISPLAY:
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   192
            langid = LANGIDFROMLCID(GetUserDefaultUILanguage());
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   193
            break;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   194
        case sun_util_locale_provider_HostLocaleProviderAdapterImpl_CAT_FORMAT:
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   195
        default:
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   196
            langid = LANGIDFROMLCID(GetUserDefaultLCID());
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   197
            break;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   198
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   199
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   200
    localeString = (char *)getJavaIDFromLangID(langid);
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   201
    if (localeString != NULL) {
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   202
        ret = (*env)->NewStringUTF(env, localeString);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   203
        free(localeString);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   204
    } else {
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   205
        JNU_ThrowOutOfMemoryError(env, "memory allocation error");
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   206
        ret = NULL;
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   207
    }
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   208
    return ret;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   209
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   210
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   211
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   212
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   213
 * Method:    getDateTimePattern
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   214
 * Signature: (IILjava/lang/String;)Ljava/lang/String;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   215
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   216
JNIEXPORT jstring JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getDateTimePattern
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   217
  (JNIEnv *env, jclass cls, jint dateStyle, jint timeStyle, jstring jlangtag) {
14028
5f3d5ae5f1ea 7198834: HOST Adapter: one extra empty space in the end of the pattern string
naoto
parents: 13583
diff changeset
   218
    WCHAR pattern[BUFLEN];
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   219
    const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   220
    CHECK_NULL_RETURN(langtag, NULL);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   221
14028
5f3d5ae5f1ea 7198834: HOST Adapter: one extra empty space in the end of the pattern string
naoto
parents: 13583
diff changeset
   222
    pattern[0] = L'\0';
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   223
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   224
    if (dateStyle == 0 || dateStyle == 1) {
14028
5f3d5ae5f1ea 7198834: HOST Adapter: one extra empty space in the end of the pattern string
naoto
parents: 13583
diff changeset
   225
        getLocaleInfoWrapper(langtag, LOCALE_SLONGDATE, pattern, BUFLEN);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   226
    } else if (dateStyle == 2 || dateStyle == 3) {
14028
5f3d5ae5f1ea 7198834: HOST Adapter: one extra empty space in the end of the pattern string
naoto
parents: 13583
diff changeset
   227
        getLocaleInfoWrapper(langtag, LOCALE_SSHORTDATE, pattern, BUFLEN);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   228
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   229
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   230
    if (timeStyle == 0 || timeStyle == 1) {
14028
5f3d5ae5f1ea 7198834: HOST Adapter: one extra empty space in the end of the pattern string
naoto
parents: 13583
diff changeset
   231
        getLocaleInfoWrapper(langtag, LOCALE_STIMEFORMAT, pattern, BUFLEN);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   232
    } else if (timeStyle == 2 || timeStyle == 3) {
14028
5f3d5ae5f1ea 7198834: HOST Adapter: one extra empty space in the end of the pattern string
naoto
parents: 13583
diff changeset
   233
        getLocaleInfoWrapper(langtag, LOCALE_SSHORTTIME, pattern, BUFLEN);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   234
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   235
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   236
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   237
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   238
    return (*env)->NewString(env, pattern, (jsize)wcslen(pattern));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   239
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   240
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   241
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   242
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   243
 * Method:    getCalendarID
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   244
 * Signature: (Ljava/lang/String;)I
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   245
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   246
JNIEXPORT jint JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getCalendarID
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   247
  (JNIEnv *env, jclass cls, jstring jlangtag) {
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   248
    const jchar *langtag;
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   249
    jint ret;
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   250
    langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   251
    CHECK_NULL_RETURN(langtag, 0);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   252
    ret = getCalendarID(langtag);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   253
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   254
    return ret;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   255
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   256
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   257
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   258
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   259
 * Method:    getAmPmStrings
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   260
 * Signature: (Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   261
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   262
JNIEXPORT jobjectArray JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getAmPmStrings
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   263
  (JNIEnv *env, jclass cls, jstring jlangtag, jobjectArray ampms) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   264
    WCHAR buf[BUFLEN];
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   265
    const jchar *langtag;
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   266
    jstring tmp_string;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   267
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   268
    // AM
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   269
    int got;
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   270
    langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   271
    CHECK_NULL_RETURN(langtag, NULL);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   272
    got = getLocaleInfoWrapper(langtag, LOCALE_S1159, buf, BUFLEN);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   273
    if (got) {
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   274
        tmp_string = (*env)->NewString(env, buf, (jsize)wcslen(buf));
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   275
        if (tmp_string != NULL) {
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   276
            (*env)->SetObjectArrayElement(env, ampms, 0, tmp_string);
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   277
        }
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   278
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   279
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   280
    if (!(*env)->ExceptionCheck(env)){
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   281
        // PM
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   282
        got = getLocaleInfoWrapper(langtag, LOCALE_S2359, buf, BUFLEN);
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   283
        if (got) {
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   284
            tmp_string = (*env)->NewString(env, buf, (jsize)wcslen(buf));
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   285
            if (tmp_string != NULL) {
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   286
                (*env)->SetObjectArrayElement(env, ampms, 1, tmp_string);
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   287
            }
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   288
        }
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   289
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   290
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   291
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   292
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   293
    return ampms;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   294
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   295
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   296
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   297
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   298
 * Method:    getEras
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   299
 * Signature: (Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   300
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   301
JNIEXPORT jobjectArray JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getEras
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   302
  (JNIEnv *env, jclass cls, jstring jlangtag, jobjectArray eras) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   303
    WCHAR ad[BUFLEN];
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   304
    const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   305
    jstring tmp_string;
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   306
    CHECK_NULL_RETURN(langtag, eras);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   307
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   308
    getCalendarInfoWrapper(langtag, getCalendarID(langtag), NULL,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   309
                      CAL_SERASTRING, ad, BUFLEN, NULL);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   310
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   311
    // Windows does not provide B.C. era.
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   312
    tmp_string = (*env)->NewString(env, ad, (jsize)wcslen(ad));
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   313
    if (tmp_string != NULL) {
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   314
        (*env)->SetObjectArrayElement(env, eras, 1, tmp_string);
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   315
    }
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   316
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   317
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   318
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   319
    return eras;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   320
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   321
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   322
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   323
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   324
 * Method:    getMonths
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   325
 * Signature: (Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   326
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   327
JNIEXPORT jobjectArray JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getMonths
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   328
  (JNIEnv *env, jclass cls, jstring jlangtag, jobjectArray months) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   329
    replaceCalendarArrayElems(env, jlangtag, months, monthsType,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   330
                      0, sizeof(monthsType)/sizeof(CALTYPE));
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   331
    return months;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   332
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   333
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   334
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   335
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   336
 * Method:    getShortMonths
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   337
 * Signature: (Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   338
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   339
JNIEXPORT jobjectArray JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getShortMonths
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   340
  (JNIEnv *env, jclass cls, jstring jlangtag, jobjectArray smonths) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   341
    replaceCalendarArrayElems(env, jlangtag, smonths, sMonthsType,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   342
                      0, sizeof(sMonthsType)/sizeof(CALTYPE));
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   343
    return smonths;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   344
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   345
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   346
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   347
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   348
 * Method:    getWeekdays
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   349
 * Signature: (Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   350
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   351
JNIEXPORT jobjectArray JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getWeekdays
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   352
  (JNIEnv *env, jclass cls, jstring jlangtag, jobjectArray wdays) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   353
    replaceCalendarArrayElems(env, jlangtag, wdays, wDaysType,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   354
                      1, sizeof(wDaysType)/sizeof(CALTYPE));
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   355
    return wdays;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   356
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   357
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   358
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   359
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   360
 * Method:    getShortWeekdays
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   361
 * Signature: (Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   362
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   363
JNIEXPORT jobjectArray JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getShortWeekdays
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   364
  (JNIEnv *env, jclass cls, jstring jlangtag, jobjectArray swdays) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   365
    replaceCalendarArrayElems(env, jlangtag, swdays, sWDaysType,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   366
                      1, sizeof(sWDaysType)/sizeof(CALTYPE));
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   367
    return swdays;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   368
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   369
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   370
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   371
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   372
 * Method:    getNumberPattern
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   373
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   374
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   375
JNIEXPORT jstring JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getNumberPattern
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   376
  (JNIEnv *env, jclass cls, jint numberStyle, jstring jlangtag) {
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   377
    const jchar *langtag;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   378
    jstring ret;
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   379
    WCHAR * pattern;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   380
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   381
    langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   382
    CHECK_NULL_RETURN(langtag, NULL);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   383
    pattern = getNumberPattern(langtag, numberStyle);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   384
    CHECK_NULL_RETURN(pattern, NULL);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   385
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   386
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   387
    ret = (*env)->NewString(env, pattern, (jsize)wcslen(pattern));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   388
    free(pattern);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   389
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   390
    return ret;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   391
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   392
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   393
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   394
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   395
 * Method:    isNativeDigit
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   396
 * Signature: (Ljava/lang/String;)Z
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   397
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   398
JNIEXPORT jboolean JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_isNativeDigit
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   399
  (JNIEnv *env, jclass cls, jstring jlangtag) {
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   400
    DWORD num;
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   401
    int got;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   402
    const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   403
    CHECK_NULL_RETURN(langtag, JNI_FALSE);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   404
    got = getLocaleInfoWrapper(langtag,
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   405
        LOCALE_IDIGITSUBSTITUTION | LOCALE_RETURN_NUMBER,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   406
        (LPWSTR)&num, sizeof(num));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   407
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   408
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   409
    return got && num == 2; // 2: native digit substitution
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   410
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   411
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   412
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   413
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   414
 * Method:    getCurrencySymbol
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   415
 * Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   416
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   417
JNIEXPORT jstring JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getCurrencySymbol
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   418
  (JNIEnv *env, jclass cls, jstring jlangtag, jstring currencySymbol) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   419
    WCHAR buf[BUFLEN];
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   420
    int got;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   421
    const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   422
    CHECK_NULL_RETURN(langtag, currencySymbol);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   423
    got = getLocaleInfoWrapper(langtag, LOCALE_SCURRENCY, buf, BUFLEN);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   424
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   425
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   426
    if (got) {
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   427
        return (*env)->NewString(env, buf, (jsize)wcslen(buf));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   428
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   429
        return currencySymbol;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   430
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   431
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   432
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   433
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   434
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   435
 * Method:    getDecimalSeparator
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   436
 * Signature: (Ljava/lang/String;C)C
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   437
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   438
JNIEXPORT jchar JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getDecimalSeparator
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   439
  (JNIEnv *env, jclass cls, jstring jlangtag, jchar decimalSeparator) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   440
    WCHAR buf[BUFLEN];
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   441
    int got;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   442
    const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   443
    CHECK_NULL_RETURN(langtag, decimalSeparator);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   444
    got = getLocaleInfoWrapper(langtag, LOCALE_SDECIMAL, buf, BUFLEN);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   445
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   446
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   447
    if (got) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   448
        return buf[0];
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   449
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   450
        return decimalSeparator;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   451
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   452
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   453
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   454
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   455
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   456
 * Method:    getGroupingSeparator
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   457
 * Signature: (Ljava/lang/String;C)C
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   458
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   459
JNIEXPORT jchar JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getGroupingSeparator
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   460
  (JNIEnv *env, jclass cls, jstring jlangtag, jchar groupingSeparator) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   461
    WCHAR buf[BUFLEN];
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   462
    int got;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   463
    const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   464
    CHECK_NULL_RETURN(langtag, groupingSeparator);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   465
    got = getLocaleInfoWrapper(langtag, LOCALE_STHOUSAND, buf, BUFLEN);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   466
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   467
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   468
    if (got) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   469
        return buf[0];
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   470
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   471
        return groupingSeparator;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   472
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   473
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   474
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   475
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   476
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   477
 * Method:    getInfinity
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   478
 * Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   479
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   480
JNIEXPORT jstring JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getInfinity
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   481
  (JNIEnv *env, jclass cls, jstring jlangtag, jstring infinity) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   482
    WCHAR buf[BUFLEN];
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   483
    int got;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   484
    const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   485
    CHECK_NULL_RETURN(langtag, infinity);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   486
    got = getLocaleInfoWrapper(langtag, LOCALE_SPOSINFINITY, buf, BUFLEN);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   487
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   488
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   489
    if (got) {
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   490
        return (*env)->NewString(env, buf, (jsize)wcslen(buf));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   491
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   492
        return infinity;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   493
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   494
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   495
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   496
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   497
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   498
 * Method:    getInternationalCurrencySymbol
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   499
 * Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   500
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   501
JNIEXPORT jstring JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getInternationalCurrencySymbol
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   502
  (JNIEnv *env, jclass cls, jstring jlangtag, jstring internationalCurrencySymbol) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   503
    WCHAR buf[BUFLEN];
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   504
    int got;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   505
    const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   506
    CHECK_NULL_RETURN(langtag, internationalCurrencySymbol);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   507
    got = getLocaleInfoWrapper(langtag, LOCALE_SINTLSYMBOL, buf, BUFLEN);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   508
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   509
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   510
    if (got) {
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   511
        return (*env)->NewString(env, buf, (jsize)wcslen(buf));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   512
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   513
        return internationalCurrencySymbol;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   514
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   515
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   516
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   517
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   518
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   519
 * Method:    getMinusSign
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   520
 * Signature: (Ljava/lang/String;C)C
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   521
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   522
JNIEXPORT jchar JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getMinusSign
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   523
  (JNIEnv *env, jclass cls, jstring jlangtag, jchar minusSign) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   524
    WCHAR buf[BUFLEN];
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   525
    int got;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   526
    const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   527
    CHECK_NULL_RETURN(langtag, minusSign);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   528
    got = getLocaleInfoWrapper(langtag, LOCALE_SNEGATIVESIGN, buf, BUFLEN);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   529
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   530
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   531
    if (got) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   532
        return buf[0];
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   533
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   534
        return minusSign;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   535
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   536
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   537
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   538
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   539
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   540
 * Method:    getMonetaryDecimalSeparator
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   541
 * Signature: (Ljava/lang/String;C)C
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   542
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   543
JNIEXPORT jchar JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getMonetaryDecimalSeparator
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   544
  (JNIEnv *env, jclass cls, jstring jlangtag, jchar monetaryDecimalSeparator) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   545
    WCHAR buf[BUFLEN];
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   546
    int got;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   547
    const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   548
    CHECK_NULL_RETURN(langtag, monetaryDecimalSeparator);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   549
    got = getLocaleInfoWrapper(langtag, LOCALE_SMONDECIMALSEP, buf, BUFLEN);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   550
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   551
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   552
    if (got) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   553
        return buf[0];
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   554
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   555
        return monetaryDecimalSeparator;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   556
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   557
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   558
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   559
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   560
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   561
 * Method:    getNaN
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   562
 * Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   563
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   564
JNIEXPORT jstring JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getNaN
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   565
  (JNIEnv *env, jclass cls, jstring jlangtag, jstring nan) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   566
    WCHAR buf[BUFLEN];
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   567
    int got;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   568
    const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   569
    CHECK_NULL_RETURN(langtag, nan);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   570
    got = getLocaleInfoWrapper(langtag, LOCALE_SNAN, buf, BUFLEN);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   571
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   572
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   573
    if (got) {
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   574
        return (*env)->NewString(env, buf, (jsize)wcslen(buf));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   575
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   576
        return nan;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   577
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   578
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   579
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   580
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   581
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   582
 * Method:    getPercent
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   583
 * Signature: (Ljava/lang/String;C)C
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   584
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   585
JNIEXPORT jchar JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getPercent
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   586
  (JNIEnv *env, jclass cls, jstring jlangtag, jchar percent) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   587
    WCHAR buf[BUFLEN];
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   588
    int got;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   589
    const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   590
    CHECK_NULL_RETURN(langtag, percent);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   591
    got = getLocaleInfoWrapper(langtag, LOCALE_SPERCENT, buf, BUFLEN);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   592
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   593
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   594
    if (got) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   595
        return buf[0];
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   596
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   597
        return percent;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   598
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   599
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   600
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   601
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   602
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   603
 * Method:    getPerMill
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   604
 * Signature: (Ljava/lang/String;C)C
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   605
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   606
JNIEXPORT jchar JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getPerMill
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   607
  (JNIEnv *env, jclass cls, jstring jlangtag, jchar perMill) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   608
    WCHAR buf[BUFLEN];
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   609
    const jchar *langtag;
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   610
    int got;
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   611
    langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   612
    CHECK_NULL_RETURN(langtag, perMill);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   613
    got = getLocaleInfoWrapper(langtag, LOCALE_SPERMILLE, buf, BUFLEN);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   614
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   615
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   616
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   617
    if (got) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   618
        return buf[0];
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   619
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   620
        return perMill;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   621
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   622
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   623
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   624
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   625
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   626
 * Method:    getZeroDigit
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   627
 * Signature: (Ljava/lang/String;C)C
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   628
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   629
JNIEXPORT jchar JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getZeroDigit
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   630
  (JNIEnv *env, jclass cls, jstring jlangtag, jchar zeroDigit) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   631
    WCHAR buf[BUFLEN];
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   632
    const jchar *langtag;
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   633
    int got;
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   634
    langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   635
    CHECK_NULL_RETURN(langtag, zeroDigit);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   636
    got = getLocaleInfoWrapper(langtag, LOCALE_SNATIVEDIGITS, buf, BUFLEN);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   637
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   638
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   639
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   640
    if (got) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   641
        return buf[0];
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   642
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   643
        return zeroDigit;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   644
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   645
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   646
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   647
/*
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   648
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   649
 * Method:    getCalendarDataValue
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   650
 * Signature: (Ljava/lang/String;I)I
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   651
 */
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   652
JNIEXPORT jint JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getCalendarDataValue
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   653
  (JNIEnv *env, jclass cls, jstring jlangtag, jint type) {
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   654
    DWORD num;
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   655
    const jchar *langtag;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   656
    int got = 0;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   657
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   658
    langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   659
    CHECK_NULL_RETURN(langtag, -1);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   660
    switch (type) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   661
    case sun_util_locale_provider_HostLocaleProviderAdapterImpl_CD_FIRSTDAYOFWEEK:
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   662
        got = getLocaleInfoWrapper(langtag,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   663
            LOCALE_IFIRSTDAYOFWEEK | LOCALE_RETURN_NUMBER,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   664
            (LPWSTR)&num, sizeof(num));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   665
        break;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   666
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   667
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   668
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   669
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   670
    if (got) {
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   671
        return num;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   672
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   673
        return -1;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   674
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   675
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   676
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   677
/*
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   678
 * Class:     sun_util_locale_provider_HostLocaleProviderAdapterImpl
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   679
 * Method:    getDisplayString
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   680
 * Signature: (Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   681
 */
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   682
JNIEXPORT jstring JNICALL Java_sun_util_locale_provider_HostLocaleProviderAdapterImpl_getDisplayString
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   683
  (JNIEnv *env, jclass cls, jstring jlangtag, jint type, jstring jvalue) {
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   684
    LCTYPE lcType;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   685
    jstring jStr;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   686
    const jchar * pjChar;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   687
    WCHAR buf[BUFLEN];
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   688
    int got = 0;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   689
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   690
    switch (type) {
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   691
        case sun_util_locale_provider_HostLocaleProviderAdapterImpl_DN_CURRENCY_NAME:
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   692
            lcType = LOCALE_SNATIVECURRNAME;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   693
            jStr = jlangtag;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   694
            break;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   695
        case sun_util_locale_provider_HostLocaleProviderAdapterImpl_DN_CURRENCY_SYMBOL:
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   696
            lcType = LOCALE_SCURRENCY;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   697
            jStr = jlangtag;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   698
            break;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   699
        case sun_util_locale_provider_HostLocaleProviderAdapterImpl_DN_LOCALE_LANGUAGE:
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   700
            lcType = LOCALE_SLOCALIZEDLANGUAGENAME;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   701
            jStr = jvalue;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   702
            break;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   703
        case sun_util_locale_provider_HostLocaleProviderAdapterImpl_DN_LOCALE_REGION:
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   704
            lcType = LOCALE_SLOCALIZEDCOUNTRYNAME;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   705
            jStr = jvalue;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   706
            break;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   707
        default:
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   708
            return NULL;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   709
    }
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   710
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   711
    pjChar = (*env)->GetStringChars(env, jStr, JNI_FALSE);
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   712
    CHECK_NULL_RETURN(pjChar, NULL);
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   713
    got = getLocaleInfoWrapper(pjChar, lcType, buf, BUFLEN);
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   714
    (*env)->ReleaseStringChars(env, jStr, pjChar);
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   715
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   716
    if (got) {
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   717
        return (*env)->NewString(env, buf, (jsize)wcslen(buf));
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   718
    } else {
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   719
        return NULL;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   720
    }
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   721
}
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   722
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   723
int getLocaleInfoWrapper(const jchar *langtag, LCTYPE type, LPWSTR data, int buflen) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   724
    if (pGetLocaleInfoEx) {
16481
8e30386cc014 8008576: Calendar mismatch using Host LocaleProviderAdapter
naoto
parents: 14028
diff changeset
   725
        if (wcscmp(L"und", (LPWSTR)langtag) == 0) {
8e30386cc014 8008576: Calendar mismatch using Host LocaleProviderAdapter
naoto
parents: 14028
diff changeset
   726
            // defaults to "en"
8e30386cc014 8008576: Calendar mismatch using Host LocaleProviderAdapter
naoto
parents: 14028
diff changeset
   727
            return pGetLocaleInfoEx(L"en", type, data, buflen);
8e30386cc014 8008576: Calendar mismatch using Host LocaleProviderAdapter
naoto
parents: 14028
diff changeset
   728
        } else {
8e30386cc014 8008576: Calendar mismatch using Host LocaleProviderAdapter
naoto
parents: 14028
diff changeset
   729
            return pGetLocaleInfoEx((LPWSTR)langtag, type, data, buflen);
8e30386cc014 8008576: Calendar mismatch using Host LocaleProviderAdapter
naoto
parents: 14028
diff changeset
   730
        }
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   731
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   732
        // If we ever wanted to support WinXP, we will need extra module from
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   733
        // MS...
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   734
        // return GetLocaleInfo(DownlevelLocaleNameToLCID(langtag, 0), type, data, buflen);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   735
        return 0;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   736
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   737
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   738
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   739
int getCalendarInfoWrapper(const jchar *langtag, CALID id, LPCWSTR reserved, CALTYPE type, LPWSTR data, int buflen, LPDWORD val) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   740
    if (pGetCalendarInfoEx) {
16481
8e30386cc014 8008576: Calendar mismatch using Host LocaleProviderAdapter
naoto
parents: 14028
diff changeset
   741
        if (wcscmp(L"und", (LPWSTR)langtag) == 0) {
8e30386cc014 8008576: Calendar mismatch using Host LocaleProviderAdapter
naoto
parents: 14028
diff changeset
   742
            // defaults to "en"
8e30386cc014 8008576: Calendar mismatch using Host LocaleProviderAdapter
naoto
parents: 14028
diff changeset
   743
            return pGetCalendarInfoEx(L"en", id, reserved, type, data, buflen, val);
8e30386cc014 8008576: Calendar mismatch using Host LocaleProviderAdapter
naoto
parents: 14028
diff changeset
   744
        } else {
8e30386cc014 8008576: Calendar mismatch using Host LocaleProviderAdapter
naoto
parents: 14028
diff changeset
   745
            return pGetCalendarInfoEx((LPWSTR)langtag, id, reserved, type, data, buflen, val);
8e30386cc014 8008576: Calendar mismatch using Host LocaleProviderAdapter
naoto
parents: 14028
diff changeset
   746
        }
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   747
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   748
        // If we ever wanted to support WinXP, we will need extra module from
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   749
        // MS...
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   750
        // return GetCalendarInfo(DownlevelLocaleNameToLCID(langtag, 0), ...);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   751
        return 0;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   752
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   753
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   754
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   755
jint getCalendarID(const jchar *langtag) {
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   756
    DWORD type;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   757
    int got = getLocaleInfoWrapper(langtag,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   758
        LOCALE_ICALENDARTYPE | LOCALE_RETURN_NUMBER,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   759
        (LPWSTR)&type, sizeof(type));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   760
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   761
    if (got) {
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   762
        return type;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   763
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   764
        return 0;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   765
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   766
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   767
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   768
void replaceCalendarArrayElems(JNIEnv *env, jstring jlangtag, jobjectArray jarray, CALTYPE* pCalTypes, int offset, int length) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   769
    WCHAR name[BUFLEN];
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   770
    const jchar *langtag = (*env)->GetStringChars(env, jlangtag, JNI_FALSE);
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   771
    int calid;
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   772
    jstring tmp_string;
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   773
22939
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   774
    CHECK_NULL(langtag);
fc08f20ea32f 8033370: [parfait] warning from b126 for solaris/native/sun/util/locale/provider: JNI exception pending
naoto
parents: 17169
diff changeset
   775
    calid = getCalendarID(langtag);
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   776
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   777
    if (calid != -1) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   778
        int i;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   779
        for (i = 0; i < length; i++) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   780
            getCalendarInfoWrapper(langtag, calid, NULL,
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   781
                              pCalTypes[i], name, BUFLEN, NULL);
24121
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   782
            tmp_string = (*env)->NewString(env, name, (jsize)wcslen(name));
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   783
            if (tmp_string != NULL) {
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   784
                (*env)->SetObjectArrayElement(env, jarray, i + offset, tmp_string);
0de1e14447a8 8035826: [parfait] JNI exception pending in src/windows/native/sun/util/locale/provider/HostLocaleProviderAdapter_md.c
naoto
parents: 22939
diff changeset
   785
            }
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   786
        }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   787
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   788
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   789
    (*env)->ReleaseStringChars(env, jlangtag, langtag);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   790
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   791
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   792
WCHAR * getNumberPattern(const jchar * langtag, const jint numberStyle) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   793
    WCHAR ret[BUFLEN];
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   794
    WCHAR number[BUFLEN];
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   795
    WCHAR fix[BUFLEN];
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   796
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   797
    getFixPart(langtag, numberStyle, TRUE, TRUE, ret); // "+"
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   798
    getNumberPart(langtag, numberStyle, number);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   799
    wcscat_s(ret, BUFLEN-wcslen(ret), number);      // "+12.34"
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   800
    getFixPart(langtag, numberStyle, TRUE, FALSE, fix);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   801
    wcscat_s(ret, BUFLEN-wcslen(ret), fix);         // "+12.34$"
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   802
    wcscat_s(ret, BUFLEN-wcslen(ret), L";");        // "+12.34$;"
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   803
    getFixPart(langtag, numberStyle, FALSE, TRUE, fix);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   804
    wcscat_s(ret, BUFLEN-wcslen(ret), fix);         // "+12.34$;("
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   805
    wcscat_s(ret, BUFLEN-wcslen(ret), number);      // "+12.34$;(12.34"
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   806
    getFixPart(langtag, numberStyle, FALSE, FALSE, fix);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   807
    wcscat_s(ret, BUFLEN-wcslen(ret), fix);         // "+12.34$;(12.34$)"
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   808
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   809
    return _wcsdup(ret);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   810
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   811
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   812
void getNumberPart(const jchar * langtag, const jint numberStyle, WCHAR * number) {
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   813
    DWORD digits = 0;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   814
    DWORD leadingZero = 0;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   815
    WCHAR grouping[BUFLEN];
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   816
    int groupingLen;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   817
    WCHAR fractionPattern[BUFLEN];
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   818
    WCHAR * integerPattern = number;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   819
    WCHAR * pDest;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   820
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   821
    // Get info from Windows
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   822
    switch (numberStyle) {
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   823
        case sun_util_locale_provider_HostLocaleProviderAdapterImpl_NF_CURRENCY:
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   824
            getLocaleInfoWrapper(langtag,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   825
                LOCALE_ICURRDIGITS | LOCALE_RETURN_NUMBER,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   826
                (LPWSTR)&digits, sizeof(digits));
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   827
            break;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   828
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   829
        case sun_util_locale_provider_HostLocaleProviderAdapterImpl_NF_INTEGER:
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   830
            break;
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   831
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   832
        case sun_util_locale_provider_HostLocaleProviderAdapterImpl_NF_NUMBER:
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   833
        case sun_util_locale_provider_HostLocaleProviderAdapterImpl_NF_PERCENT:
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   834
        default:
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   835
            getLocaleInfoWrapper(langtag,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   836
                LOCALE_IDIGITS | LOCALE_RETURN_NUMBER,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   837
                (LPWSTR)&digits, sizeof(digits));
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   838
            break;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   839
    }
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   840
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   841
    getLocaleInfoWrapper(langtag,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   842
        LOCALE_ILZERO | LOCALE_RETURN_NUMBER,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   843
        (LPWSTR)&leadingZero, sizeof(leadingZero));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   844
    groupingLen = getLocaleInfoWrapper(langtag, LOCALE_SGROUPING, grouping, BUFLEN);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   845
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   846
    // fraction pattern
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   847
    if (digits > 0) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   848
        int i;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   849
        for(i = digits;  i > 0; i--) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   850
            fractionPattern[i] = L'0';
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   851
        }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   852
        fractionPattern[0] = L'.';
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   853
        fractionPattern[digits+1] = L'\0';
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   854
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   855
        fractionPattern[0] = L'\0';
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   856
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   857
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   858
    // integer pattern
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   859
    pDest = integerPattern;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   860
    if (groupingLen > 0) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   861
        int cur = groupingLen - 1;// subtracting null terminator
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   862
        while (--cur >= 0) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   863
            int repnum;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   864
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   865
            if (grouping[cur] == L';') {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   866
                continue;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   867
            }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   868
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   869
            repnum = grouping[cur] - 0x30;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   870
            if (repnum > 0) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   871
                *pDest++ = L'#';
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   872
                *pDest++ = L',';
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   873
                while(--repnum > 0) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   874
                    *pDest++ = L'#';
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   875
                }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   876
            }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   877
        }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   878
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   879
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   880
    if (leadingZero != 0) {
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   881
        *pDest++ = L'0';
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   882
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   883
        *pDest++ = L'#';
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   884
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   885
    *pDest = L'\0';
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   886
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   887
    wcscat_s(integerPattern, BUFLEN, fractionPattern);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   888
}
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   889
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   890
void getFixPart(const jchar * langtag, const jint numberStyle, BOOL positive, BOOL prefix, WCHAR * ret) {
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   891
    DWORD pattern = 0;
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   892
    int style = numberStyle;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   893
    int got = 0;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   894
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   895
    if (positive) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   896
        if (style == sun_util_locale_provider_HostLocaleProviderAdapterImpl_NF_CURRENCY) {
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   897
            got = getLocaleInfoWrapper(langtag,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   898
                LOCALE_ICURRENCY | LOCALE_RETURN_NUMBER,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   899
                (LPWSTR)&pattern, sizeof(pattern));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   900
        } else if (style == sun_util_locale_provider_HostLocaleProviderAdapterImpl_NF_PERCENT) {
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   901
            got = getLocaleInfoWrapper(langtag,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   902
                LOCALE_IPOSITIVEPERCENT | LOCALE_RETURN_NUMBER,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   903
                (LPWSTR)&pattern, sizeof(pattern));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   904
        }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   905
    } else {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   906
        if (style == sun_util_locale_provider_HostLocaleProviderAdapterImpl_NF_CURRENCY) {
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   907
            got = getLocaleInfoWrapper(langtag,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   908
                LOCALE_INEGCURR | LOCALE_RETURN_NUMBER,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   909
                (LPWSTR)&pattern, sizeof(pattern));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   910
        } else if (style == sun_util_locale_provider_HostLocaleProviderAdapterImpl_NF_PERCENT) {
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   911
            got = getLocaleInfoWrapper(langtag,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   912
                LOCALE_INEGATIVEPERCENT | LOCALE_RETURN_NUMBER,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   913
                (LPWSTR)&pattern, sizeof(pattern));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   914
        } else {
17169
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   915
            got = getLocaleInfoWrapper(langtag,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   916
                LOCALE_INEGNUMBER | LOCALE_RETURN_NUMBER,
5e5039c3181d 8010666: Implement Currency/LocaleNameProvider in Windows Host LocaleProviderAdapter
naoto
parents: 16481
diff changeset
   917
                (LPWSTR)&pattern, sizeof(pattern));
13583
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   918
        }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   919
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   920
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   921
    if (numberStyle == sun_util_locale_provider_HostLocaleProviderAdapterImpl_NF_INTEGER) {
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   922
        style = sun_util_locale_provider_HostLocaleProviderAdapterImpl_NF_NUMBER;
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   923
    }
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   924
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   925
    wcscpy(ret, fixes[!prefix][!positive][style][pattern]);
dc0017b1a452 6336885: RFE: Locale Data Deployment Enhancements
naoto
parents:
diff changeset
   926
}