Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
6f02f9a3
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
6f02f9a3
编写于
5月 14, 2015
作者:
L
lana
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
d54ed850
5293d8ce
变更
69
隐藏空白更改
内联
并排
Showing
69 changed file
with
1909 addition
and
943 deletion
+1909
-943
make/data/tzdata/VERSION
make/data/tzdata/VERSION
+1
-1
make/data/tzdata/africa
make/data/tzdata/africa
+23
-44
make/data/tzdata/antarctica
make/data/tzdata/antarctica
+1
-50
make/data/tzdata/backward
make/data/tzdata/backward
+1
-0
make/data/tzdata/europe
make/data/tzdata/europe
+1
-1
make/data/tzdata/northamerica
make/data/tzdata/northamerica
+118
-49
make/data/tzdata/southamerica
make/data/tzdata/southamerica
+91
-65
make/gensrc/GensrcLocaleDataMetaInfo.gmk
make/gensrc/GensrcLocaleDataMetaInfo.gmk
+9
-2
src/share/classes/java/util/concurrent/ForkJoinPool.java
src/share/classes/java/util/concurrent/ForkJoinPool.java
+1
-1
src/share/classes/javax/swing/plaf/basic/BasicRadioButtonUI.java
...re/classes/javax/swing/plaf/basic/BasicRadioButtonUI.java
+1
-1
src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java
...lasses/javax/swing/plaf/nimbus/AbstractRegionPainter.java
+3
-0
src/share/classes/sun/security/jgss/GSSUtil.java
src/share/classes/sun/security/jgss/GSSUtil.java
+4
-1
src/share/classes/sun/security/jgss/spnego/SpNegoContext.java
...share/classes/sun/security/jgss/spnego/SpNegoContext.java
+8
-1
src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java
src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java
+11
-12
src/share/classes/sun/util/cldr/CLDRLocaleProviderAdapter.java
...hare/classes/sun/util/cldr/CLDRLocaleProviderAdapter.java
+5
-1
src/share/classes/sun/util/locale/provider/JRELocaleProviderAdapter.java
...es/sun/util/locale/provider/JRELocaleProviderAdapter.java
+5
-1
src/share/classes/sun/util/locale/provider/LocaleDataMetaInfo-XLocales.java.template
...locale/provider/LocaleDataMetaInfo-XLocales.java.template
+7
-1
src/share/classes/sun/util/locale/provider/LocaleProviderAdapter.java
...asses/sun/util/locale/provider/LocaleProviderAdapter.java
+2
-2
src/share/classes/sun/util/resources/LocaleData.java
src/share/classes/sun/util/resources/LocaleData.java
+19
-28
src/share/classes/sun/util/resources/TimeZoneNames.java
src/share/classes/sun/util/resources/TimeZoneNames.java
+3
-6
src/share/classes/sun/util/resources/de/TimeZoneNames_de.java
...share/classes/sun/util/resources/de/TimeZoneNames_de.java
+3
-6
src/share/classes/sun/util/resources/es/TimeZoneNames_es.java
...share/classes/sun/util/resources/es/TimeZoneNames_es.java
+3
-6
src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java
...share/classes/sun/util/resources/fr/TimeZoneNames_fr.java
+3
-6
src/share/classes/sun/util/resources/it/TimeZoneNames_it.java
...share/classes/sun/util/resources/it/TimeZoneNames_it.java
+3
-6
src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java
...share/classes/sun/util/resources/ja/TimeZoneNames_ja.java
+3
-6
src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java
...share/classes/sun/util/resources/ko/TimeZoneNames_ko.java
+3
-6
src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java
...re/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java
+3
-6
src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java
...share/classes/sun/util/resources/sv/TimeZoneNames_sv.java
+3
-6
src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java
...re/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java
+3
-6
src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java
...re/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java
+3
-6
src/share/native/sun/java2d/cmm/lcms/cmscgats.c
src/share/native/sun/java2d/cmm/lcms/cmscgats.c
+1
-1
src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c
src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c
+20
-2
src/share/native/sun/java2d/cmm/lcms/cmserr.c
src/share/native/sun/java2d/cmm/lcms/cmserr.c
+8
-1
src/share/native/sun/java2d/cmm/lcms/cmsintrp.c
src/share/native/sun/java2d/cmm/lcms/cmsintrp.c
+2
-2
src/share/native/sun/java2d/cmm/lcms/cmsio0.c
src/share/native/sun/java2d/cmm/lcms/cmsio0.c
+28
-40
src/share/native/sun/java2d/cmm/lcms/cmsio1.c
src/share/native/sun/java2d/cmm/lcms/cmsio1.c
+12
-6
src/share/native/sun/java2d/cmm/lcms/cmslut.c
src/share/native/sun/java2d/cmm/lcms/cmslut.c
+16
-0
src/share/native/sun/java2d/cmm/lcms/cmsnamed.c
src/share/native/sun/java2d/cmm/lcms/cmsnamed.c
+6
-4
src/share/native/sun/java2d/cmm/lcms/cmsopt.c
src/share/native/sun/java2d/cmm/lcms/cmsopt.c
+169
-47
src/share/native/sun/java2d/cmm/lcms/cmspack.c
src/share/native/sun/java2d/cmm/lcms/cmspack.c
+156
-175
src/share/native/sun/java2d/cmm/lcms/cmspcs.c
src/share/native/sun/java2d/cmm/lcms/cmspcs.c
+9
-0
src/share/native/sun/java2d/cmm/lcms/cmsplugin.c
src/share/native/sun/java2d/cmm/lcms/cmsplugin.c
+14
-7
src/share/native/sun/java2d/cmm/lcms/cmssamp.c
src/share/native/sun/java2d/cmm/lcms/cmssamp.c
+1
-26
src/share/native/sun/java2d/cmm/lcms/cmstypes.c
src/share/native/sun/java2d/cmm/lcms/cmstypes.c
+1
-4
src/share/native/sun/java2d/cmm/lcms/cmsvirt.c
src/share/native/sun/java2d/cmm/lcms/cmsvirt.c
+23
-14
src/share/native/sun/java2d/cmm/lcms/cmsxform.c
src/share/native/sun/java2d/cmm/lcms/cmsxform.c
+42
-40
src/share/native/sun/java2d/cmm/lcms/lcms2.h
src/share/native/sun/java2d/cmm/lcms/lcms2.h
+25
-17
src/share/native/sun/java2d/cmm/lcms/lcms2_internal.h
src/share/native/sun/java2d/cmm/lcms/lcms2_internal.h
+16
-8
src/solaris/classes/sun/java2d/xr/XRSolidSrcPict.java
src/solaris/classes/sun/java2d/xr/XRSolidSrcPict.java
+1
-2
src/solaris/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java
...n/util/locale/provider/HostLocaleProviderAdapterImpl.java
+1
-1
src/windows/native/sun/windows/awt_TrayIcon.cpp
src/windows/native/sun/windows/awt_TrayIcon.cpp
+3
-3
test/java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java
...reen/MultiResolutionSplash/MultiResolutionSplashTest.java
+2
-1
test/java/awt/TrayIcon/8072769/bug8072769.java
test/java/awt/TrayIcon/8072769/bug8072769.java
+150
-0
test/java/util/concurrent/forkjoin/SubmissionTest.java
test/java/util/concurrent/forkjoin/SubmissionTest.java
+49
-0
test/javax/swing/JRadioButton/8075609/bug8075609.java
test/javax/swing/JRadioButton/8075609/bug8075609.java
+115
-0
test/javax/swing/plaf/nimbus/8041642/bug8041642.java
test/javax/swing/plaf/nimbus/8041642/bug8041642.java
+95
-0
test/javax/xml/jaxp/transform/8062518/DocumentExtFunc.java
test/javax/xml/jaxp/transform/8062518/DocumentExtFunc.java
+32
-0
test/javax/xml/jaxp/transform/8062518/XSLTFunctionsTest.java
test/javax/xml/jaxp/transform/8062518/XSLTFunctionsTest.java
+128
-0
test/sun/security/jgss/spnego/MSOID.java
test/sun/security/jgss/spnego/MSOID.java
+75
-0
test/sun/security/jgss/spnego/msoid.txt
test/sun/security/jgss/spnego/msoid.txt
+27
-0
test/sun/security/krb5/auto/MSOID2.java
test/sun/security/krb5/auto/MSOID2.java
+78
-0
test/sun/security/pkcs12/StoreSecretKeyTest.java
test/sun/security/pkcs12/StoreSecretKeyTest.java
+24
-5
test/sun/util/calendar/zi/tzdata/VERSION
test/sun/util/calendar/zi/tzdata/VERSION
+1
-1
test/sun/util/calendar/zi/tzdata/africa
test/sun/util/calendar/zi/tzdata/africa
+23
-44
test/sun/util/calendar/zi/tzdata/antarctica
test/sun/util/calendar/zi/tzdata/antarctica
+1
-50
test/sun/util/calendar/zi/tzdata/backward
test/sun/util/calendar/zi/tzdata/backward
+1
-0
test/sun/util/calendar/zi/tzdata/europe
test/sun/util/calendar/zi/tzdata/europe
+1
-1
test/sun/util/calendar/zi/tzdata/northamerica
test/sun/util/calendar/zi/tzdata/northamerica
+118
-49
test/sun/util/calendar/zi/tzdata/southamerica
test/sun/util/calendar/zi/tzdata/southamerica
+91
-65
未找到文件。
make/data/tzdata/VERSION
浏览文件 @
6f02f9a3
...
@@ -21,4 +21,4 @@
...
@@ -21,4 +21,4 @@
# or visit www.oracle.com if you need additional information or have any
# or visit www.oracle.com if you need additional information or have any
# questions.
# questions.
#
#
tzdata2015
b
tzdata2015
d
make/data/tzdata/africa
浏览文件 @
6f02f9a3
...
@@ -342,35 +342,29 @@ Rule Egypt 2007 only - Sep Thu>=1 24:00 0 -
...
@@ -342,35 +342,29 @@ Rule Egypt 2007 only - Sep Thu>=1 24:00 0 -
# above) says DST had no affect on electricity consumption. There is
# above) says DST had no affect on electricity consumption. There is
# no information about when DST will end this fall. See:
# no information about when DST will end this fall. See:
# http://abcnews.go.com/International/wireStory/el-sissi-pushes-egyptians-line-23614833
# http://abcnews.go.com/International/wireStory/el-sissi-pushes-egyptians-line-23614833
# From Steffen Thorsen (2015-04-08):
# Egypt will start DST on midnight after Thursday, April 30, 2015.
# This is based on a law (no 35) from May 15, 2014 saying it starts the last
# Thursday of April.... Clocks will still be turned back for Ramadan, but
# dates not yet announced....
# http://almogaz.com/news/weird-news/2015/04/05/1947105 ...
# http://www.timeanddate.com/news/time/egypt-starts-dst-2015.html
# From Ahmed Nazmy (2015-04-20):
# Egypt's ministers cabinet just announced ... that it will cancel DST at
# least for 2015.
#
#
# For now, guess that later spring and fall transitions will use
# From Tim Parenti (2015-04-20):
# 2010's rules, and guess that Egypt will switch to standard time at
# http://english.ahram.org.eg/WriterArticles/NewsContentP/1/128195/Egypt/No-daylight-saving-this-summer-Egypts-prime-minist.aspx
# 24:00 the last Thursday before Ramadan, and back to DST at 00:00 the
# "Egypt's cabinet agreed on Monday not to switch clocks for daylight saving
# first Friday after Ramadan. To implement this,
# time this summer, and carry out studies on the possibility of canceling the
# transition dates for 2015 through 2037 were determined by running
# practice altogether in future years."
# the following program under GNU Emacs 24.3, with the results integrated
#
# by hand into the table below. Ramadan again intrudes on the guessed
# From Paul Eggert (2015-04-20):
# DST starting in 2038, but that's beyond our somewhat-arbitrary cutoff.
# For now, assume DST will be canceled. Any resumption would likely
# (let ((islamic-year 1436))
# use different rules anyway.
# (while (< islamic-year 1460)
# (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
# (b (calendar-islamic-to-absolute (list 10 1 islamic-year)))
# (friday 5))
# (while (/= friday (mod a 7))
# (setq a (1- a)))
# (while (/= friday (mod b 7))
# (setq b (1+ b)))
# (setq a (1- a))
# (setq b (1- b))
# (setq a (calendar-gregorian-from-absolute a))
# (setq b (calendar-gregorian-from-absolute b))
# (insert
# (format
# (concat "Rule\tEgypt\t%d\tonly\t-\t%s\t%2d\t24:00\t0\t-\n"
# "Rule\tEgypt\t%d\tonly\t-\t%s\t%2d\t24:00\t1:00\tS\n")
# (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a))
# (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
# (setq islamic-year (+ 1 islamic-year))))
Rule Egypt 2008 only - Aug lastThu 24:00 0 -
Rule Egypt 2008 only - Aug lastThu 24:00 0 -
Rule Egypt 2009 only - Aug 20 24:00 0 -
Rule Egypt 2009 only - Aug 20 24:00 0 -
Rule Egypt 2010 only - Aug 10 24:00 0 -
Rule Egypt 2010 only - Aug 10 24:00 0 -
...
@@ -379,22 +373,7 @@ Rule Egypt 2010 only - Sep lastThu 24:00 0 -
...
@@ -379,22 +373,7 @@ Rule Egypt 2010 only - Sep lastThu 24:00 0 -
Rule Egypt 2014 only - May 15 24:00 1:00 S
Rule Egypt 2014 only - May 15 24:00 1:00 S
Rule Egypt 2014 only - Jun 26 24:00 0 -
Rule Egypt 2014 only - Jun 26 24:00 0 -
Rule Egypt 2014 only - Jul 31 24:00 1:00 S
Rule Egypt 2014 only - Jul 31 24:00 1:00 S
Rule Egypt 2014 max - Sep lastThu 24:00 0 -
Rule Egypt 2014 only - Sep lastThu 24:00 0 -
Rule Egypt 2015 2019 - Apr lastFri 0:00s 1:00 S
Rule Egypt 2015 only - Jun 11 24:00 0 -
Rule Egypt 2015 only - Jul 23 24:00 1:00 S
Rule Egypt 2016 only - Jun 2 24:00 0 -
Rule Egypt 2016 only - Jul 7 24:00 1:00 S
Rule Egypt 2017 only - May 25 24:00 0 -
Rule Egypt 2017 only - Jun 29 24:00 1:00 S
Rule Egypt 2018 only - May 10 24:00 0 -
Rule Egypt 2018 only - Jun 14 24:00 1:00 S
Rule Egypt 2019 only - May 2 24:00 0 -
Rule Egypt 2019 only - Jun 6 24:00 1:00 S
Rule Egypt 2020 only - May 28 24:00 1:00 S
Rule Egypt 2021 only - May 13 24:00 1:00 S
Rule Egypt 2022 only - May 5 24:00 1:00 S
Rule Egypt 2023 max - Apr lastFri 0:00s 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Cairo 2:05:09 - LMT 1900 Oct
Zone Africa/Cairo 2:05:09 - LMT 1900 Oct
...
...
make/data/tzdata/antarctica
浏览文件 @
6f02f9a3
...
@@ -38,41 +38,6 @@
...
@@ -38,41 +38,6 @@
# I made up all time zone abbreviations mentioned here; corrections welcome!
# I made up all time zone abbreviations mentioned here; corrections welcome!
# FORMAT is 'zzz' and GMTOFF is 0 for locations while uninhabited.
# FORMAT is 'zzz' and GMTOFF is 0 for locations while uninhabited.
# These rules are stolen from the 'southamerica' file.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule ArgAQ 1964 1966 - Mar 1 0:00 0 -
Rule ArgAQ 1964 1966 - Oct 15 0:00 1:00 S
Rule ArgAQ 1967 only - Apr 2 0:00 0 -
Rule ArgAQ 1967 1968 - Oct Sun>=1 0:00 1:00 S
Rule ArgAQ 1968 1969 - Apr Sun>=1 0:00 0 -
Rule ArgAQ 1974 only - Jan 23 0:00 1:00 S
Rule ArgAQ 1974 only - May 1 0:00 0 -
Rule ChileAQ 1972 1986 - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 1974 1987 - Oct Sun>=9 4:00u 1:00 S
Rule ChileAQ 1987 only - Apr 12 3:00u 0 -
Rule ChileAQ 1988 1989 - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 1988 only - Oct Sun>=1 4:00u 1:00 S
Rule ChileAQ 1989 only - Oct Sun>=9 4:00u 1:00 S
Rule ChileAQ 1990 only - Mar 18 3:00u 0 -
Rule ChileAQ 1990 only - Sep 16 4:00u 1:00 S
Rule ChileAQ 1991 1996 - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 1991 1997 - Oct Sun>=9 4:00u 1:00 S
Rule ChileAQ 1997 only - Mar 30 3:00u 0 -
Rule ChileAQ 1998 only - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 1998 only - Sep 27 4:00u 1:00 S
Rule ChileAQ 1999 only - Apr 4 3:00u 0 -
Rule ChileAQ 1999 2010 - Oct Sun>=9 4:00u 1:00 S
Rule ChileAQ 2000 2007 - Mar Sun>=9 3:00u 0 -
# N.B.: the end of March 29 in Chile is March 30 in Universal time,
# which is used below in specifying the transition.
Rule ChileAQ 2008 only - Mar 30 3:00u 0 -
Rule ChileAQ 2009 only - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 2010 only - Apr Sun>=1 3:00u 0 -
Rule ChileAQ 2011 only - May Sun>=2 3:00u 0 -
Rule ChileAQ 2011 only - Aug Sun>=16 4:00u 1:00 S
Rule ChileAQ 2012 2015 - Apr Sun>=23 3:00u 0 -
Rule ChileAQ 2012 2014 - Sep Sun>=2 4:00u 1:00 S
# Argentina - year-round bases
# Argentina - year-round bases
# Belgrano II, Confin Coast, -770227-0343737, since 1972-02-05
# Belgrano II, Confin Coast, -770227-0343737, since 1972-02-05
# Carlini, Potter Cove, King George Island, -6414-0602320, since 1982-01
# Carlini, Potter Cove, King George Island, -6414-0602320, since 1982-01
...
@@ -367,21 +332,7 @@ Zone Antarctica/Rothera 0 - zzz 1976 Dec 1
...
@@ -367,21 +332,7 @@ Zone Antarctica/Rothera 0 - zzz 1976 Dec 1
# USA - year-round bases
# USA - year-round bases
#
#
# Palmer, Anvers Island, since 1965 (moved 2 miles in 1968)
# Palmer, Anvers Island, since 1965 (moved 2 miles in 1968)
#
# See 'southamerica' for Antarctica/Palmer, since it uses South American DST.
# From Ethan Dicks (1996-10-06):
# It keeps the same time as Punta Arenas, Chile, because, just like us
# and the South Pole, that's the other end of their supply line....
# I verified with someone who was there that since 1980,
# Palmer has followed Chile. Prior to that, before the Falklands War,
# Palmer used to be supplied from Argentina.
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Palmer 0 - zzz 1965
-4:00 ArgAQ AR%sT 1969 Oct 5
-3:00 ArgAQ AR%sT 1982 May
-4:00 ChileAQ CL%sT 2015 Apr 26 3:00u
-3:00 - CLT
#
#
#
# McMurdo Station, Ross Island, since 1955-12
# McMurdo Station, Ross Island, since 1955-12
# Amundsen-Scott South Pole Station, continuously occupied since 1956-11-20
# Amundsen-Scott South Pole Station, continuously occupied since 1956-11-20
...
...
make/data/tzdata/backward
浏览文件 @
6f02f9a3
...
@@ -43,6 +43,7 @@ Link America/Argentina/Jujuy America/Jujuy
...
@@ -43,6 +43,7 @@ Link America/Argentina/Jujuy America/Jujuy
Link America/Indiana/Knox America/Knox_IN
Link America/Indiana/Knox America/Knox_IN
Link America/Kentucky/Louisville America/Louisville
Link America/Kentucky/Louisville America/Louisville
Link America/Argentina/Mendoza America/Mendoza
Link America/Argentina/Mendoza America/Mendoza
Link America/Toronto America/Montreal
Link America/Rio_Branco America/Porto_Acre
Link America/Rio_Branco America/Porto_Acre
Link America/Argentina/Cordoba America/Rosario
Link America/Argentina/Cordoba America/Rosario
Link America/Denver America/Shiprock
Link America/Denver America/Shiprock
...
...
make/data/tzdata/europe
浏览文件 @
6f02f9a3
...
@@ -99,7 +99,7 @@
...
@@ -99,7 +99,7 @@
# 1:00:14 SET Swedish (1879-1899)*
# 1:00:14 SET Swedish (1879-1899)*
# 2:00 EET EEST Eastern Europe
# 2:00 EET EEST Eastern Europe
# 3:00 FET Further-eastern Europe (2011-2014)*
# 3:00 FET Further-eastern Europe (2011-2014)*
# 3:00 MSK MSD MSM* Moscow
# 3:00 MSK MSD MSM* M
insk, M
oscow
# From Peter Ilieve (1994-12-04),
# From Peter Ilieve (1994-12-04),
# The original six [EU members]: Belgium, France, (West) Germany, Italy,
# The original six [EU members]: Belgium, France, (West) Germany, Italy,
...
...
make/data/tzdata/northamerica
浏览文件 @
6f02f9a3
...
@@ -250,9 +250,14 @@ Zone PST8PDT -8:00 US P%sT
...
@@ -250,9 +250,14 @@ Zone PST8PDT -8:00 US P%sT
# The law doesn't give abbreviations.
# The law doesn't give abbreviations.
#
#
# From Paul Eggert (2000-01-08), following a heads-up from Rives McDow:
# From Paul Eggert (2000-01-08), following a heads-up from Rives McDow:
# Public law 106-564 (2000-12-23) introduced the abbreviation
# Public law 106-564 (2000-12-23) introduced ... "Chamorro Standard Time"
# "Chamorro Standard Time" for time in Guam and the Northern Marianas.
# for time in Guam and the Northern Marianas. See the file "australasia".
# See the file "australasia".
#
# From Paul Eggert (2015-04-17):
# HST and HDT are standardized abbreviations for Hawaii-Aleutian
# standard and daylight times. See section 9.47 (p 234) of the
# U.S. Government Printing Office Style Manual (2008)
# http://www.gpo.gov/fdsys/pkg/GPO-STYLEMANUAL-2008/pdf/GPO-STYLEMANUAL-2008.pdf
# From Arthur David Olson, 2005-08-09
# From Arthur David Olson, 2005-08-09
# The following was signed into law on 2005-08-08.
# The following was signed into law on 2005-08-08.
...
@@ -559,7 +564,7 @@ Zone America/Adak 12:13:21 - LMT 1867 Oct 18
...
@@ -559,7 +564,7 @@ Zone America/Adak 12:13:21 - LMT 1867 Oct 18
-11:00 - BST 1969
-11:00 - BST 1969
-11:00 US B%sT 1983 Oct 30 2:00
-11:00 US B%sT 1983 Oct 30 2:00
-10:00 US AH%sT 1983 Nov 30
-10:00 US AH%sT 1983 Nov 30
-10:00 US H
A
%sT
-10:00 US H%sT
# The following switches don't quite make our 1970 cutoff.
# The following switches don't quite make our 1970 cutoff.
#
#
# Shanks writes that part of southwest Alaska (e.g. Aniak)
# Shanks writes that part of southwest Alaska (e.g. Aniak)
...
@@ -1354,14 +1359,9 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
...
@@ -1354,14 +1359,9 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
# Quebec
# Quebec
# From Paul Eggert (2013-08-30):
# From Paul Eggert (2015-03-24):
# Since 1970 most of Quebec has been like Toronto.
# See America/Toronto for most of Quebec, including Montreal.
# However, because earlier versions of the tz database mistakenly relied on data
#
# from Shanks & Pottenger saying that Quebec differed from Ontario after 1970,
# a separate entry was created for most of Quebec. We're loath to lose
# its pre-1970 info, even though the tz database is normally limited to
# zones that differ after 1970, so keep this otherwise out-of-scope entry.
# Matthews and Vincent (1998) also write that Quebec east of the -63
# Matthews and Vincent (1998) also write that Quebec east of the -63
# meridian is supposed to observe AST, but residents as far east as
# meridian is supposed to observe AST, but residents as far east as
# Natashquan use EST/EDT, and residents east of Natashquan use AST.
# Natashquan use EST/EDT, and residents east of Natashquan use AST.
...
@@ -1375,39 +1375,10 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
...
@@ -1375,39 +1375,10 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
# For lack of better info, guess this practice began around 1970, contra to
# For lack of better info, guess this practice began around 1970, contra to
# Shanks & Pottenger who have this region observing AST/ADT.
# Shanks & Pottenger who have this region observing AST/ADT.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Mont 1917 only - Mar 25 2:00 1:00 D
Rule Mont 1917 only - Apr 24 0:00 0 S
Rule Mont 1919 only - Mar 31 2:30 1:00 D
Rule Mont 1919 only - Oct 25 2:30 0 S
Rule Mont 1920 only - May 2 2:30 1:00 D
Rule Mont 1920 1922 - Oct Sun>=1 2:30 0 S
Rule Mont 1921 only - May 1 2:00 1:00 D
Rule Mont 1922 only - Apr 30 2:00 1:00 D
Rule Mont 1924 only - May 17 2:00 1:00 D
Rule Mont 1924 1926 - Sep lastSun 2:30 0 S
Rule Mont 1925 1926 - May Sun>=1 2:00 1:00 D
Rule Mont 1927 1937 - Apr lastSat 24:00 1:00 D
Rule Mont 1927 1937 - Sep lastSat 24:00 0 S
Rule Mont 1938 1940 - Apr lastSun 0:00 1:00 D
Rule Mont 1938 1939 - Sep lastSun 0:00 0 S
Rule Mont 1946 1973 - Apr lastSun 2:00 1:00 D
Rule Mont 1945 1948 - Sep lastSun 2:00 0 S
Rule Mont 1949 1950 - Oct lastSun 2:00 0 S
Rule Mont 1951 1956 - Sep lastSun 2:00 0 S
Rule Mont 1957 1973 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Blanc-Sablon -3:48:28 - LMT 1884
Zone America/Blanc-Sablon -3:48:28 - LMT 1884
-4:00 Canada A%sT 1970
-4:00 Canada A%sT 1970
-4:00 - AST
-4:00 - AST
Zone America/Montreal -4:54:16 - LMT 1884
-5:00 Mont E%sT 1918
-5:00 Canada E%sT 1919
-5:00 Mont E%sT 1942 Feb 9 2:00s
-5:00 Canada E%sT 1946
-5:00 Mont E%sT 1974
-5:00 Canada E%sT
# Ontario
# Ontario
...
@@ -1898,17 +1869,115 @@ Zone America/Creston -7:46:04 - LMT 1884
...
@@ -1898,17 +1869,115 @@ Zone America/Creston -7:46:04 - LMT 1884
# Dawson switched to PST in 1973. Inuvik switched to MST in 1979.
# Dawson switched to PST in 1973. Inuvik switched to MST in 1979.
# Mathew Englander (1996-10-07) gives the following refs:
# Mathew Englander (1996-10-07) gives the following refs:
# * 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68,
# * 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68,
# c. 7 defines Yukon standard time as UTC-9.
This is still valid;
# c. 7 defines Yukon standard time as UTC-9.
...
# see Interpretation Act, R.S.C. 1985, c. I-21, s. 35(1).
# see Interpretation Act, R.S.C. 1985, c. I-21, s. 35(1).
# [http://canlii.ca/t/7vhg]
# * C.O. 1973/214 switched Yukon to PST on 1973-10-28 00:00.
# * C.O. 1973/214 switched Yukon to PST on 1973-10-28 00:00.
# * O.I.C. 1980/02 established DST.
# * O.I.C. 1980/02 established DST.
# * O.I.C. 1987/056 changed DST to Apr firstSun 2:00 to Oct lastSun 2:00.
# * O.I.C. 1987/056 changed DST to Apr firstSun 2:00 to Oct lastSun 2:00.
# Shanks & Pottenger say Yukon's 1973-10-28 switch was at 2:00; go
# with Englander.
# From Brian Inglis (2015-04-14):
# From Chris Walton (2006-06-26):
#
# Here is a link to the old daylight saving portion of the interpretation
# I tried to trace the history of Yukon time and found the following
# act which was last updated in 1987:
# regulations, giving the reference title and URL if found, regulation name,
# http://www.gov.yk.ca/legislation/regs/oic1987_056.pdf
# and relevant quote if available. Each regulation specifically revokes its
# predecessor. The final reference is to the current Interpretation Act
# authorizing and resulting from these regulatory changes.
#
# Only recent regulations were retrievable via Yukon government site search or
# index, and only some via Canadian legal sources. Other sources used include
# articles titled "Standard Time and Time Zones in Canada" from JRASC via ADS
# Abstracts, cited by ADO for 1932 ..., and updated versions from 1958 and
# 1970 quoted below; each article includes current extracts from provincial
# and territorial ST and DST regulations at the end, summaries and details of
# standard times and daylight saving time at many locations across Canada,
# with time zone maps, tables and calculations for Canadian Sunrise, Sunset,
# and LMST; they also cover many countries and global locations, with a chart
# and table showing current Universal Time offsets, and may be useful as
# another source of information for 1970 and earlier.
#
# * Standard Time and Time Zones in Canada; Smith, C.C.; JRASC, Vol. 26,
# pp.49-77; February 1932; SAO/NASA Astrophysics Data System (ADS)
# http://adsabs.harvard.edu/abs/1932JRASC..26...49S from p.75:
# Yukon Interpretation Ordinance
# Yukon standard time is the local mean time at the one hundred and
# thirty-fifth meridian.
#
# * Standard Time and Time Zones in Canada; Smith, C.C.; Thomson, Malcolm M.;
# JRASC, Vol. 52, pp.193-223; October 1958; SAO/NASA Astrophysics Data System
# (ADS) http://adsabs.harvard.edu/abs/1958JRASC..52..193S from pp.220-1:
# Yukon Interpretation Ordinance, 1955, Chap. 16.
#
# (1) Subject to this section, standard time shall be reckoned as nine
# hours behind Greenwich Time and called Yukon Standard Time.
#
# (2) Notwithstanding subsection (1), the Commissioner may make regulations
# varying the manner of reckoning standard time.
#
# * Yukon Territory Commissioner's Order 1966-20 Interpretation Ordinance
# http://? - no online source found
#
# * Standard Time and Time Zones in Canada; Thomson, Malcolm M.; JRASC,
# Vol. 64, pp.129-162; June 1970; SAO/NASA Astrophysics Data System (ADS)
# http://adsabs.harvard.edu/abs/1970JRASC..64..129T from p.156: Yukon
# Territory Commissioner's Order 1967-59 Interpretation Ordinance ...
#
# 1. Commissioner's Order 1966-20 dated at Whitehorse in the Yukon
# Territory on 27th January, 1966, is hereby revoked.
#
# 2. Yukon (East) Standard Time as defined by section 36 of the
# Interpretation Ordinance from and after mid-night on the 28th day of May,
# 1967 shall be reckoned in the same manner as Pacific Standard Time, that
# is to say, eight hours behind Greenwich Time in the area of the Yukon
# Territory lying east of the 138th degree longitude west.
#
# 3. In the remainder of the Territory, lying west of the 138th degree
# longitude west, Yukon (West) Standard Time shall be reckoned as nine
# hours behind Greenwich Time.
#
# * Yukon Standard Time defined as Pacific Standard Time, YCO 1973/214
# http://www.canlii.org/en/yk/laws/regu/yco-1973-214/latest/yco-1973-214.html
# C.O. 1973/214 INTERPRETATION ACT ...
#
# 1. Effective October 28, 1973 Commissioner's Order 1967/59 is hereby
# revoked.
#
# 2. Yukon Standard Time as defined by section 36 of the Interpretation
# Act from and after midnight on the twenty-eighth day of October, 1973
# shall be reckoned in the same manner as Pacific Standard Time, that is
# to say eight hours behind Greenwich Time.
#
# * O.I.C. 1980/02 INTERPRETATION ACT
# http://? - no online source found
#
# * Yukon Daylight Saving Time, YOIC 1987/56
# http://www.canlii.org/en/yk/laws/regu/yoic-1987-56/latest/yoic-1987-56.html
# O.I.C. 1987/056 INTERPRETATION ACT ...
#
# In every year between
# (a) two o'clock in the morning in the first Sunday in April, and
# (b) two o'clock in the morning in the last Sunday in October,
# Standard Time shall be reckoned as seven hours behind Greenwich Time and
# called Yukon Daylight Saving Time.
# ...
# Dated ... 9th day of March, A.D., 1987.
#
# * Yukon Daylight Saving Time 2006, YOIC 2006/127
# http://www.canlii.org/en/yk/laws/regu/yoic-2006-127/latest/yoic-2006-127.html
# O.I.C. 2006/127 INTERPRETATION ACT ...
#
# 1. In Yukon each year the time for general purposes shall be 7 hours
# behind Greenwich mean time during the period commencing at two o'clock
# in the forenoon on the second Sunday of March and ending at two o'clock
# in the forenoon on the first Sunday of November and shall be called
# Yukon Daylight Saving Time.
#
# 2. Order-in-Council 1987/56 is revoked.
#
# 3. This order comes into force January 1, 2007.
#
# * Interpretation Act, RSY 2002, c 125
# http://www.canlii.org/en/yk/laws/stat/rsy-2002-c-125/latest/rsy-2002-c-125.html
# From Rives McDow (1999-09-04):
# From Rives McDow (1999-09-04):
# Nunavut ... moved ... to incorporate the whole territory into one time zone.
# Nunavut ... moved ... to incorporate the whole territory into one time zone.
...
@@ -2134,7 +2203,7 @@ Zone America/Inuvik 0 - zzz 1953 # Inuvik founded
...
@@ -2134,7 +2203,7 @@ Zone America/Inuvik 0 - zzz 1953 # Inuvik founded
-7:00 NT_YK M%sT 1980
-7:00 NT_YK M%sT 1980
-7:00 Canada M%sT
-7:00 Canada M%sT
Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
-9:00 NT_YK Y%sT 196
6 Jul 1 2
:00
-9:00 NT_YK Y%sT 196
7 May 28 0
:00
-8:00 NT_YK P%sT 1980
-8:00 NT_YK P%sT 1980
-8:00 Canada P%sT
-8:00 Canada P%sT
Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
...
...
make/data/tzdata/southamerica
浏览文件 @
6f02f9a3
...
@@ -1121,6 +1121,60 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
...
@@ -1121,6 +1121,60 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
# Chile
# Chile
# From Paul Eggert (2015-04-03):
# Shanks & Pottenger says America/Santiago introduced standard time in
# 1890 and rounds its UTC offset to 70W40; guess that in practice this
# was the same offset as in 1916-1919. It also says Pacific/Easter
# standardized on 109W22 in 1890; assume this didn't change the clocks.
#
# Dates for America/Santiago from 1910 to 2004 are primarily from
# the following source, cited by Oscar van Vlijmen (2006-10-08):
# [1] Chile Law
# http://www.webexhibits.org/daylightsaving/chile.html
# This contains a copy of a this official table:
# Cambios en la hora oficial de Chile desde 1900 (retrieved 2008-03-30)
# http://web.archive.org/web/20080330200901/http://www.horaoficial.cl/cambio.htm
# [1] needs several corrections, though.
#
# The first set of corrections is from:
# [2] History of the Official Time of Chile
# http://www.horaoficial.cl/ing/horaof_ing.html (retrieved 2012-03-06). See:
# http://web.archive.org/web/20120306042032/http://www.horaoficial.cl/ing/horaof_ing.html
# This is an English translation of:
# Historia de la hora oficial de Chile (retrieved 2012-10-24). See:
# http://web.archive.org/web/20121024234627/http://www.horaoficial.cl/horaof.htm
# A fancier Spanish version (requiring mouse-clicking) is at:
# http://www.horaoficial.cl/historia_hora.html
# Conflicts between [1] and [2] were resolved as follows:
#
# - [1] says the 1910 transition was Jan 1, [2] says Jan 10 and cites
# Boletín Nº 1, Aviso Nº 1 (1910). Go with [2].
#
# - [1] says SMT was -4:42:45, [2] says Chile's official time from
# 1916 to 1919 was -4:42:46.3, the meridian of Chile's National
# Astronomical Observatory (OAN), then located in what is now
# Quinta Normal in Santiago. Go with [2], rounding it to -4:42:46.
#
# - [1] says the 1918 transition was Sep 1, [2] says Sep 10 and cites
# Boletín Nº 22, Aviso Nº 129/1918 (1918-08-23). Go with [2].
#
# - [1] does not give times for transitions; assume they occur
# at midnight mainland time, the current common practice. However,
# go with [2]'s specification of 23:00 for the 1947-05-21 transition.
#
# Another correction to [1] is from Jesper Nørgaard Welen, who
# wrote (2006-10-08), "I think that there are some obvious mistakes in
# the suggested link from Oscar van Vlijmen,... for instance entry 66
# says that GMT-4 ended 1990-09-12 while entry 67 only begins GMT-3 at
# 1990-09-15 (they should have been 1990-09-15 and 1990-09-16
# respectively), but anyhow it clears up some doubts too."
#
# Data for Pacific/Easter from 1910 through 1967 come from Shanks &
# Pottenger. After that, for lack of better info assume
# Pacific/Easter is always two hours behind America/Santiago;
# this is known to work for DST transitions starting in 2008 and
# may well be true for earlier transitions.
# From Eduardo Krell (1995-10-19):
# From Eduardo Krell (1995-10-19):
# The law says to switch to DST at midnight [24:00] on the second SATURDAY
# The law says to switch to DST at midnight [24:00] on the second SATURDAY
# of October.... The law is the same for March and October.
# of October.... The law is the same for March and October.
...
@@ -1133,78 +1187,35 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
...
@@ -1133,78 +1187,35 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
# Because of the same drought, the government decided to end DST later,
# Because of the same drought, the government decided to end DST later,
# on April 3, (one-time change).
# on April 3, (one-time change).
# From Oscar van Vlijmen (2006-10-08):
# http://www.horaoficial.cl/cambio.htm
# From Jesper Nørgaard Welen (2006-10-08):
# I think that there are some obvious mistakes in the suggested link
# from Oscar van Vlijmen,... for instance entry 66 says that GMT-4
# ended 1990-09-12 while entry 67 only begins GMT-3 at 1990-09-15
# (they should have been 1990-09-15 and 1990-09-16 respectively), but
# anyhow it clears up some doubts too.
# From Paul Eggert (2014-08-12):
# The following data entries for Chile and America/Santiago are from
# <http://www.horaoficial.cl/horaof.htm> (2006-09-20), transcribed by
# Jesper Nørgaard Welen. The data entries for Pacific/Easter are from Shanks
# & Pottenger, except with DST transitions after 1932 cloned from
# America/Santiago. The pre-1980 Pacific/Easter data entries are dubious,
# but we have no other source.
# From Germán Poo-Caamaño (2008-03-03):
# From Germán Poo-Caamaño (2008-03-03):
# Due to drought, Chile extends Daylight Time in three weeks. This
# Due to drought, Chile extends Daylight Time in three weeks. This
# is one-time change (Saturday 3/29 at 24:00 for America/Santiago
# is one-time change (Saturday 3/29 at 24:00 for America/Santiago
# and Saturday 3/29 at 22:00 for Pacific/Easter)
# and Saturday 3/29 at 22:00 for Pacific/Easter)
# The Supreme Decree is located at
# The Supreme Decree is located at
# http://www.shoa.cl/servicios/supremo316.pdf
# http://www.shoa.cl/servicios/supremo316.pdf
# and the instructions for 2008 are located in:
#
# http://www.horaoficial.cl/cambio.htm
# From José Miguel Garrido (2008-03-05):
# From José Miguel Garrido (2008-03-05):
# ...
# You could see the announces of the change on
# http://www.shoa.cl/noticias/2008/04hora/hora.htm
# http://www.shoa.cl/noticias/2008/04hora/hora.htm
# From Angel Chiang (2010-03-04):
# From Angel Chiang (2010-03-04):
# Subject: DST in Chile exceptionally extended to 3 April due to earthquake
# Subject: DST in Chile exceptionally extended to 3 April due to earthquake
# http://www.gobiernodechile.cl/viewNoticia.aspx?idArticulo=30098
# http://www.gobiernodechile.cl/viewNoticia.aspx?idArticulo=30098
# (in Spanish, last paragraph).
#
#
# This is breaking news. There should be more information available later.
# From Arthur David Olson (2010-03-06):
# From Arthur David Olson (2010-03-06):
# Angel Chiang's message confirmed by Julio Pacheco; Julio provided a patch.
# Angel Chiang's message confirmed by Julio Pacheco; Julio provided a patch.
# From Glenn Eychaner (2011-03-02):
# It appears that the Chilean government has decided to postpone the
# change from summer time to winter time again, by three weeks to April
# 2nd:
# http://www.emol.com/noticias/nacional/detalle/detallenoticias.asp?idnoticia=467651
#
# This is not yet reflected in the official "cambio de hora" site, but
# probably will be soon:
# http://www.horaoficial.cl/cambio.htm
# From Arthur David Olson (2011-03-02):
# The emol.com article mentions a water shortage as the cause of the
# postponement, which may mean that it's not a permanent change.
# From Glenn Eychaner (2011-03-28):
# From Glenn Eychaner (2011-03-28):
# The article:
# http://diario.elmercurio.com/2011/03/28/_portada/_portada/noticias/7565897A-CA86-49E6-9E03-660B21A4883E.htm?id=3D{7565897A-CA86-49E6-9E03-660B21A4883E}
# http://diario.elmercurio.com/2011/03/28/_portada/_portada/noticias/7565897A-CA86-49E6-9E03-660B21A4883E.htm?id=3D{7565897A-CA86-49E6-9E03-660B21A4883E}
#
# In English:
# In English:
# Chile's clocks will go back an hour this year on the 7th of May instead
# Chile's clocks will go back an hour this year on the 7th of May instead
# of this Saturday. They will go forward again the 3rd Saturday in
# of this Saturday. They will go forward again the 3rd Saturday in
# August, not in October as they have since 1968. This is a pilot plan
# August, not in October as they have since 1968.
# which will be reevaluated in 2012.
# From Mauricio Parada (2012-02-22), translated by Glenn Eychaner (2012-02-23):
# From Mauricio Parada (2012-02-22), translated by Glenn Eychaner (2012-02-23):
# As stated in the website of the Chilean Energy Ministry
# As stated in the website of the Chilean Energy Ministry
# http://www.minenergia.cl/ministerio/noticias/generales/gobierno-anuncia-fechas-de-cambio-de.html
# http://www.minenergia.cl/ministerio/noticias/generales/gobierno-anuncia-fechas-de-cambio-de.html
# The Chilean Government has decided to postpone the entrance into winter time
# The Chilean Government has decided to postpone the entrance into winter time
# (to leave DST) from March 11 2012 to April 28th 2012. The decision has not
# (to leave DST) from March 11 2012 to April 28th 2012....
# been yet formalized but it will within the next days.
# Quote from the website communication:
# Quote from the website communication:
#
#
# 6. For the year 2012, the dates of entry into winter time will be as follows:
# 6. For the year 2012, the dates of entry into winter time will be as follows:
...
@@ -1237,17 +1248,9 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
...
@@ -1237,17 +1248,9 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
# From Paul Eggert (2015-03-03):
# From Paul Eggert (2015-03-03):
# For now, assume that the extension will persist indefinitely.
# For now, assume that the extension will persist indefinitely.
# NOTE: ChileAQ rules for Antarctic bases are stored separately in the
# 'antarctica' file.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Chile 1927 193
2
- Sep 1 0:00 1:00 S
Rule Chile 1927 193
1
- Sep 1 0:00 1:00 S
Rule Chile 1928 1932 - Apr 1 0:00 0 -
Rule Chile 1928 1932 - Apr 1 0:00 0 -
Rule Chile 1942 only - Jun 1 4:00u 0 -
Rule Chile 1942 only - Aug 1 5:00u 1:00 S
Rule Chile 1946 only - Jul 15 4:00u 1:00 S
Rule Chile 1946 only - Sep 1 3:00u 0:00 -
Rule Chile 1947 only - Apr 1 4:00u 0 -
Rule Chile 1968 only - Nov 3 4:00u 1:00 S
Rule Chile 1968 only - Nov 3 4:00u 1:00 S
Rule Chile 1969 only - Mar 30 3:00u 0 -
Rule Chile 1969 only - Mar 30 3:00u 0 -
Rule Chile 1969 only - Nov 23 4:00u 1:00 S
Rule Chile 1969 only - Nov 23 4:00u 1:00 S
...
@@ -1258,10 +1261,8 @@ Rule Chile 1972 1986 - Mar Sun>=9 3:00u 0 -
...
@@ -1258,10 +1261,8 @@ Rule Chile 1972 1986 - Mar Sun>=9 3:00u 0 -
Rule Chile 1973 only - Sep 30 4:00u 1:00 S
Rule Chile 1973 only - Sep 30 4:00u 1:00 S
Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1987 only - Apr 12 3:00u 0 -
Rule Chile 1987 only - Apr 12 3:00u 0 -
Rule Chile 1988 1989 - Mar Sun>=9 3:00u 0 -
Rule Chile 1988 1990 - Mar Sun>=9 3:00u 0 -
Rule Chile 1988 only - Oct Sun>=1 4:00u 1:00 S
Rule Chile 1988 1989 - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1989 only - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1990 only - Mar 18 3:00u 0 -
Rule Chile 1990 only - Sep 16 4:00u 1:00 S
Rule Chile 1990 only - Sep 16 4:00u 1:00 S
Rule Chile 1991 1996 - Mar Sun>=9 3:00u 0 -
Rule Chile 1991 1996 - Mar Sun>=9 3:00u 0 -
Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 S
...
@@ -1284,15 +1285,21 @@ Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 S
...
@@ -1284,15 +1285,21 @@ Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 S
# (1996-09) says 1998-03-08. Ignore these.
# (1996-09) says 1998-03-08. Ignore these.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Santiago -4:42:46 - LMT 1890
Zone America/Santiago -4:42:46 - LMT 1890
-4:42:46 - SMT 1910
# Santiago Mean Time
-4:42:46 - SMT 1910
Jan 10
# Santiago Mean Time
-5:00 - CLT 1916 Jul 1 # Chile Time
-5:00 - CLT 1916 Jul 1 # Chile Time
-4:42:46 - SMT 1918 Sep 1 # Santiago Mean Time
-4:42:46 - SMT 1918 Sep 10
-4:00 - CLT 1919 Jul 1 # Chile Time
-4:00 - CLT 1919 Jul 1
-4:42:46 - SMT 1927 Sep 1 # Santiago Mean Time
-4:42:46 - SMT 1927 Sep 1
-5:00 Chile CL%sT 1947 May 22 # Chile Time
-5:00 Chile CL%sT 1932 Sep 1
-4:00 - CLT 1942 Jun 1
-5:00 - CLT 1942 Aug 1
-4:00 - CLT 1946 Jul 15
-4:00 1:00 CLST 1946 Sep 1 # central Chile
-4:00 - CLT 1947 Apr 1
-5:00 - CLT 1947 May 21 23:00
-4:00 Chile CL%sT 2015 Apr 26 3:00u
-4:00 Chile CL%sT 2015 Apr 26 3:00u
-3:00 - CLT
-3:00 - CLT
Zone Pacific/Easter -7:17:
44
- LMT 1890
Zone Pacific/Easter -7:17:
28
- LMT 1890
-7:17:28 - EMT 1932 Sep # Easter Mean Time
-7:17:28 - EMT 1932 Sep # Easter Mean Time
-7:00 Chile EAS%sT 1982 Mar 14 3:00u # Easter Time
-7:00 Chile EAS%sT 1982 Mar 14 3:00u # Easter Time
-6:00 Chile EAS%sT 2015 Apr 26 3:00u
-6:00 Chile EAS%sT 2015 Apr 26 3:00u
...
@@ -1302,6 +1309,25 @@ Zone Pacific/Easter -7:17:44 - LMT 1890
...
@@ -1302,6 +1309,25 @@ Zone Pacific/Easter -7:17:44 - LMT 1890
# Other Chilean locations, including Juan Fernández Is, Desventuradas Is,
# Other Chilean locations, including Juan Fernández Is, Desventuradas Is,
# and Antarctic bases, are like America/Santiago.
# and Antarctic bases, are like America/Santiago.
# Antarctic base using South American rules
# (See the file 'antarctica' for more.)
#
# Palmer, Anvers Island, since 1965 (moved 2 miles in 1968)
#
# From Ethan Dicks (1996-10-06):
# It keeps the same time as Punta Arenas, Chile, because, just like us
# and the South Pole, that's the other end of their supply line....
# I verified with someone who was there that since 1980,
# Palmer has followed Chile. Prior to that, before the Falklands War,
# Palmer used to be supplied from Argentina.
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Palmer 0 - zzz 1965
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1982 May
-4:00 Chile CL%sT 2015 Apr 26 3:00u
-3:00 - CLT
# Colombia
# Colombia
# Milne gives 4:56:16.4 for Bogotá time in 1899; round to nearest. He writes,
# Milne gives 4:56:16.4 for Bogotá time in 1899; round to nearest. He writes,
...
...
make/gensrc/GensrcLocaleDataMetaInfo.gmk
浏览文件 @
6f02f9a3
#
#
# Copyright (c) 2011, 201
3
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 201
5
, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
#
# This code is free software; you can redistribute it and/or modify it
# This code is free software; you can redistribute it and/or modify it
...
@@ -34,7 +34,8 @@ LOCALE_FILES := $(shell $(FIND) $(JDK_TOPDIR)/src/share/classes \
...
@@ -34,7 +34,8 @@ LOCALE_FILES := $(shell $(FIND) $(JDK_TOPDIR)/src/share/classes \
-name "TimeZoneNames_*.java" -o -name "TimeZoneNames_*.properties" -o \
-name "TimeZoneNames_*.java" -o -name "TimeZoneNames_*.properties" -o \
-name "LocaleNames_*.java" -o -name "LocaleNames_*.properties" -o \
-name "LocaleNames_*.java" -o -name "LocaleNames_*.properties" -o \
-name "CurrencyNames_*.java" -o -name "CurrencyNames_*.properties" -o \
-name "CurrencyNames_*.java" -o -name "CurrencyNames_*.properties" -o \
-name "CalendarData_*.java" -o -name "CalendarData_*.properties")
-name "CalendarData_*.java" -o -name "CalendarData_*.properties" -o \
-name "BreakIteratorInfo_*.java" -o -name "BreakIteratorRules_*.java")
# Then translate the locale files into for example: FormatData_sv
# Then translate the locale files into for example: FormatData_sv
LOCALE_RESOURCES := $(sort $(subst .properties,,$(subst .java,,$(notdir $(LOCALE_FILES)))))
LOCALE_RESOURCES := $(sort $(subst .properties,,$(subst .java,,$(notdir $(LOCALE_FILES)))))
...
@@ -79,6 +80,12 @@ $(eval $(call CaptureLocale,FormatData))
...
@@ -79,6 +80,12 @@ $(eval $(call CaptureLocale,FormatData))
#sun.text.resources.CollationData
#sun.text.resources.CollationData
$(eval $(call CaptureLocale,CollationData))
$(eval $(call CaptureLocale,CollationData))
#sun.text.resources.BreakIteratorInfo
$(eval $(call CaptureLocale,BreakIteratorInfo))
#sun.text.resources.BreakIteratorRules
$(eval $(call CaptureLocale,BreakIteratorRules))
#sun.util.resources.TimeZoneNames
#sun.util.resources.TimeZoneNames
$(eval $(call CaptureLocale,TimeZoneNames))
$(eval $(call CaptureLocale,TimeZoneNames))
...
...
src/share/classes/java/util/concurrent/ForkJoinPool.java
浏览文件 @
6f02f9a3
...
@@ -2406,7 +2406,7 @@ public class ForkJoinPool extends AbstractExecutorService {
...
@@ -2406,7 +2406,7 @@ public class ForkJoinPool extends AbstractExecutorService {
int
j
=
((
am
&
s
)
<<
ASHIFT
)
+
ABASE
;
int
j
=
((
am
&
s
)
<<
ASHIFT
)
+
ABASE
;
U
.
putOrderedObject
(
a
,
j
,
task
);
U
.
putOrderedObject
(
a
,
j
,
task
);
U
.
putOrderedInt
(
q
,
QTOP
,
s
+
1
);
U
.
putOrderedInt
(
q
,
QTOP
,
s
+
1
);
U
.
put
OrderedInt
(
q
,
QLOCK
,
0
);
U
.
put
IntVolatile
(
q
,
QLOCK
,
0
);
if
(
n
<=
1
)
if
(
n
<=
1
)
signalWork
(
ws
,
q
);
signalWork
(
ws
,
q
);
return
;
return
;
...
...
src/share/classes/javax/swing/plaf/basic/BasicRadioButtonUI.java
浏览文件 @
6f02f9a3
...
@@ -438,7 +438,7 @@ public class BasicRadioButtonUI extends BasicToggleButtonUI
...
@@ -438,7 +438,7 @@ public class BasicRadioButtonUI extends BasicToggleButtonUI
// to the button group or not
// to the button group or not
Component
getFocusTransferBaseComponent
(
boolean
next
){
Component
getFocusTransferBaseComponent
(
boolean
next
){
Component
focusBaseComp
=
activeBtn
;
Component
focusBaseComp
=
activeBtn
;
Window
container
=
SwingUtilities
.
getWindowAncestor
(
activeBtn
);
Container
container
=
focusBaseComp
.
getFocusCycleRootAncestor
(
);
if
(
container
!=
null
)
{
if
(
container
!=
null
)
{
FocusTraversalPolicy
policy
=
container
.
getFocusTraversalPolicy
();
FocusTraversalPolicy
policy
=
container
.
getFocusTraversalPolicy
();
Component
comp
=
next
?
policy
.
getComponentAfter
(
container
,
activeBtn
)
Component
comp
=
next
?
policy
.
getComponentAfter
(
container
,
activeBtn
)
...
...
src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java
浏览文件 @
6f02f9a3
...
@@ -625,6 +625,9 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
...
@@ -625,6 +625,9 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
// check if we can scale to the requested size
// check if we can scale to the requested size
Dimension
canvas
=
ctx
.
canvasSize
;
Dimension
canvas
=
ctx
.
canvasSize
;
Insets
insets
=
ctx
.
stretchingInsets
;
Insets
insets
=
ctx
.
stretchingInsets
;
if
(
insets
.
left
+
insets
.
right
>
w
||
insets
.
top
+
insets
.
bottom
>
h
)
{
return
;
}
if
(
w
<=
(
canvas
.
width
*
ctx
.
maxHorizontalScaleFactor
)
&&
h
<=
(
canvas
.
height
*
ctx
.
maxVerticalScaleFactor
))
{
if
(
w
<=
(
canvas
.
width
*
ctx
.
maxHorizontalScaleFactor
)
&&
h
<=
(
canvas
.
height
*
ctx
.
maxVerticalScaleFactor
))
{
// get image at canvas size
// get image at canvas size
...
...
src/share/classes/sun/security/jgss/GSSUtil.java
浏览文件 @
6f02f9a3
...
@@ -59,6 +59,8 @@ public class GSSUtil {
...
@@ -59,6 +59,8 @@ public class GSSUtil {
GSSUtil
.
createOid
(
"1.2.840.113554.1.2.2"
);
GSSUtil
.
createOid
(
"1.2.840.113554.1.2.2"
);
public
static
final
Oid
GSS_KRB5_MECH_OID2
=
public
static
final
Oid
GSS_KRB5_MECH_OID2
=
GSSUtil
.
createOid
(
"1.3.5.1.5.2"
);
GSSUtil
.
createOid
(
"1.3.5.1.5.2"
);
public
static
final
Oid
GSS_KRB5_MECH_OID_MS
=
GSSUtil
.
createOid
(
"1.2.840.48018.1.2.2"
);
public
static
final
Oid
GSS_SPNEGO_MECH_OID
=
public
static
final
Oid
GSS_SPNEGO_MECH_OID
=
GSSUtil
.
createOid
(
"1.3.6.1.5.5.2"
);
GSSUtil
.
createOid
(
"1.3.6.1.5.5.2"
);
...
@@ -101,7 +103,8 @@ public class GSSUtil {
...
@@ -101,7 +103,8 @@ public class GSSUtil {
public
static
boolean
isKerberosMech
(
Oid
oid
)
{
public
static
boolean
isKerberosMech
(
Oid
oid
)
{
return
(
GSS_KRB5_MECH_OID
.
equals
(
oid
)
||
return
(
GSS_KRB5_MECH_OID
.
equals
(
oid
)
||
GSS_KRB5_MECH_OID2
.
equals
(
oid
));
GSS_KRB5_MECH_OID2
.
equals
(
oid
)
||
GSS_KRB5_MECH_OID_MS
.
equals
(
oid
));
}
}
...
...
src/share/classes/sun/security/jgss/spnego/SpNegoContext.java
浏览文件 @
6f02f9a3
...
@@ -540,14 +540,21 @@ public class SpNegoContext implements GSSContextSpi {
...
@@ -540,14 +540,21 @@ public class SpNegoContext implements GSSContextSpi {
// get the token for mechanism
// get the token for mechanism
byte
[]
accept_token
;
byte
[]
accept_token
;
if
(
mechList
[
0
].
equals
(
mech_wanted
))
{
if
(
mechList
[
0
].
equals
(
mech_wanted
)
||
(
GSSUtil
.
isKerberosMech
(
mechList
[
0
])
&&
GSSUtil
.
isKerberosMech
(
mech_wanted
)))
{
// get the mechanism token
// get the mechanism token
if
(
DEBUG
&&
!
mech_wanted
.
equals
(
mechList
[
0
]))
{
System
.
out
.
println
(
"SpNegoContext.acceptSecContext: "
+
"negotiated mech adjusted to "
+
mechList
[
0
]);
}
byte
[]
mechToken
=
initToken
.
getMechToken
();
byte
[]
mechToken
=
initToken
.
getMechToken
();
if
(
mechToken
==
null
)
{
if
(
mechToken
==
null
)
{
throw
new
GSSException
(
GSSException
.
FAILURE
,
-
1
,
throw
new
GSSException
(
GSSException
.
FAILURE
,
-
1
,
"mechToken is missing"
);
"mechToken is missing"
);
}
}
accept_token
=
GSS_acceptSecContext
(
mechToken
);
accept_token
=
GSS_acceptSecContext
(
mechToken
);
mech_wanted
=
mechList
[
0
];
}
else
{
}
else
{
accept_token
=
null
;
accept_token
=
null
;
}
}
...
...
src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java
浏览文件 @
6f02f9a3
/*
/*
* Copyright (c) 1999, 201
4
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
5
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -1600,23 +1600,22 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
...
@@ -1600,23 +1600,22 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
Entry
entry
=
entries
.
get
(
alias
);
Entry
entry
=
entries
.
get
(
alias
);
// certificate chain
// certificate chain
int
chainLen
=
1
;
Certificate
[]
certs
;
Certificate
[]
certs
=
null
;
if
(
entry
instanceof
PrivateKeyEntry
)
{
if
(
entry
instanceof
PrivateKeyEntry
)
{
PrivateKeyEntry
keyEntry
=
(
PrivateKeyEntry
)
entry
;
PrivateKeyEntry
keyEntry
=
(
PrivateKeyEntry
)
entry
;
if
(
keyEntry
.
chain
==
null
)
{
if
(
keyEntry
.
chain
!=
null
)
{
chainLen
=
0
;
certs
=
keyEntry
.
chain
;
}
else
{
}
else
{
chainLen
=
keyEntry
.
chain
.
length
;
certs
=
new
Certificate
[
0
];
}
}
certs
=
keyEntry
.
chain
;
}
else
if
(
entry
instanceof
CertEntry
)
{
}
else
if
(
entry
instanceof
CertEntry
)
{
certs
=
new
Certificate
[]{((
CertEntry
)
entry
).
cert
};
certs
=
new
Certificate
[]{((
CertEntry
)
entry
).
cert
};
}
else
{
certs
=
new
Certificate
[
0
];
}
}
for
(
int
i
=
0
;
i
<
c
hainLen
;
i
++)
{
for
(
int
i
=
0
;
i
<
c
erts
.
length
;
i
++)
{
// create SafeBag of Type CertBag
// create SafeBag of Type CertBag
DerOutputStream
safeBag
=
new
DerOutputStream
();
DerOutputStream
safeBag
=
new
DerOutputStream
();
safeBag
.
putOID
(
CertBag_OID
);
safeBag
.
putOID
(
CertBag_OID
);
...
...
src/share/classes/sun/util/cldr/CLDRLocaleProviderAdapter.java
浏览文件 @
6f02f9a3
/*
/*
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012,
2015,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -30,6 +30,7 @@ import java.security.AccessController;
...
@@ -30,6 +30,7 @@ import java.security.AccessController;
import
java.security.PrivilegedAction
;
import
java.security.PrivilegedAction
;
import
java.text.spi.BreakIteratorProvider
;
import
java.text.spi.BreakIteratorProvider
;
import
java.text.spi.CollatorProvider
;
import
java.text.spi.CollatorProvider
;
import
java.util.Collections
;
import
java.util.HashSet
;
import
java.util.HashSet
;
import
java.util.Locale
;
import
java.util.Locale
;
import
java.util.ResourceBundle
;
import
java.util.ResourceBundle
;
...
@@ -103,6 +104,9 @@ public class CLDRLocaleProviderAdapter extends JRELocaleProviderAdapter {
...
@@ -103,6 +104,9 @@ public class CLDRLocaleProviderAdapter extends JRELocaleProviderAdapter {
protected
Set
<
String
>
createLanguageTagSet
(
String
category
)
{
protected
Set
<
String
>
createLanguageTagSet
(
String
category
)
{
ResourceBundle
rb
=
ResourceBundle
.
getBundle
(
"sun.util.cldr.CLDRLocaleDataMetaInfo"
,
Locale
.
ROOT
);
ResourceBundle
rb
=
ResourceBundle
.
getBundle
(
"sun.util.cldr.CLDRLocaleDataMetaInfo"
,
Locale
.
ROOT
);
String
supportedLocaleString
=
rb
.
getString
(
category
);
String
supportedLocaleString
=
rb
.
getString
(
category
);
if
(
supportedLocaleString
==
null
)
{
return
Collections
.
emptySet
();
}
Set
<
String
>
tagset
=
new
HashSet
<>();
Set
<
String
>
tagset
=
new
HashSet
<>();
StringTokenizer
tokens
=
new
StringTokenizer
(
supportedLocaleString
);
StringTokenizer
tokens
=
new
StringTokenizer
(
supportedLocaleString
);
while
(
tokens
.
hasMoreTokens
())
{
while
(
tokens
.
hasMoreTokens
())
{
...
...
src/share/classes/sun/util/locale/provider/JRELocaleProviderAdapter.java
浏览文件 @
6f02f9a3
/*
/*
* Copyright (c) 2012, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 201
5
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -34,6 +34,7 @@ import java.text.spi.DateFormatProvider;
...
@@ -34,6 +34,7 @@ import java.text.spi.DateFormatProvider;
import
java.text.spi.DateFormatSymbolsProvider
;
import
java.text.spi.DateFormatSymbolsProvider
;
import
java.text.spi.DecimalFormatSymbolsProvider
;
import
java.text.spi.DecimalFormatSymbolsProvider
;
import
java.text.spi.NumberFormatProvider
;
import
java.text.spi.NumberFormatProvider
;
import
java.util.Collections
;
import
java.util.HashSet
;
import
java.util.HashSet
;
import
java.util.Locale
;
import
java.util.Locale
;
import
java.util.Set
;
import
java.util.Set
;
...
@@ -356,6 +357,9 @@ public class JRELocaleProviderAdapter extends LocaleProviderAdapter implements R
...
@@ -356,6 +357,9 @@ public class JRELocaleProviderAdapter extends LocaleProviderAdapter implements R
protected
Set
<
String
>
createLanguageTagSet
(
String
category
)
{
protected
Set
<
String
>
createLanguageTagSet
(
String
category
)
{
String
supportedLocaleString
=
LocaleDataMetaInfo
.
getSupportedLocaleString
(
category
);
String
supportedLocaleString
=
LocaleDataMetaInfo
.
getSupportedLocaleString
(
category
);
if
(
supportedLocaleString
==
null
)
{
return
Collections
.
emptySet
();
}
Set
<
String
>
tagset
=
new
HashSet
<>();
Set
<
String
>
tagset
=
new
HashSet
<>();
StringTokenizer
tokens
=
new
StringTokenizer
(
supportedLocaleString
);
StringTokenizer
tokens
=
new
StringTokenizer
(
supportedLocaleString
);
while
(
tokens
.
hasMoreTokens
())
{
while
(
tokens
.
hasMoreTokens
())
{
...
...
src/share/classes/sun/util/locale/provider/LocaleDataMetaInfo-XLocales.java.template
浏览文件 @
6f02f9a3
/*
/*
*
Copyright
(
c
)
2005
,
201
3
,
Oracle
and
/
or
its
affiliates
.
All
rights
reserved
.
*
Copyright
(
c
)
2005
,
201
5
,
Oracle
and
/
or
its
affiliates
.
All
rights
reserved
.
*
DO
NOT
ALTER
OR
REMOVE
COPYRIGHT
NOTICES
OR
THIS
FILE
HEADER
.
*
DO
NOT
ALTER
OR
REMOVE
COPYRIGHT
NOTICES
OR
THIS
FILE
HEADER
.
*
*
*
This
code
is
free
software
;
you
can
redistribute
it
and
/
or
modify
it
*
This
code
is
free
software
;
you
can
redistribute
it
and
/
or
modify
it
...
@@ -57,6 +57,12 @@ public class LocaleDataMetaInfo {
...
@@ -57,6 +57,12 @@ public class LocaleDataMetaInfo {
resourceNameToLocales.put("
CollationData
",
resourceNameToLocales.put("
CollationData
",
"
#
CollationData_ENLocales
#
|
#
CollationData_NonENLocales
#
");
"
#
CollationData_ENLocales
#
|
#
CollationData_NonENLocales
#
");
resourceNameToLocales.put("
BreakIteratorInfo
",
"
#
BreakIteratorInfo_ENLocales
#
|
#
BreakIteratorInfo_NonENLocales
#
");
resourceNameToLocales.put("
BreakIteratorRules
",
"
#
BreakIteratorRules_ENLocales
#
|
#
BreakIteratorRules_NonENLocales
#
");
resourceNameToLocales.put("
TimeZoneNames
",
resourceNameToLocales.put("
TimeZoneNames
",
"
#
TimeZoneNames_ENLocales
#
|
#
TimeZoneNames_NonENLocales
#
");
"
#
TimeZoneNames_ENLocales
#
|
#
TimeZoneNames_NonENLocales
#
");
...
...
src/share/classes/sun/util/locale/provider/LocaleProviderAdapter.java
浏览文件 @
6f02f9a3
/*
/*
* Copyright (c) 2012, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 201
5
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -295,7 +295,7 @@ public abstract class LocaleProviderAdapter {
...
@@ -295,7 +295,7 @@ public abstract class LocaleProviderAdapter {
* A utility method for implementing the default LocaleServiceProvider.isSupportedLocale
* A utility method for implementing the default LocaleServiceProvider.isSupportedLocale
* for the JRE, CLDR, and FALLBACK adapters.
* for the JRE, CLDR, and FALLBACK adapters.
*/
*/
static
boolean
isSupportedLocale
(
Locale
locale
,
LocaleProviderAdapter
.
Type
type
,
Set
<
String
>
langtags
)
{
public
static
boolean
isSupportedLocale
(
Locale
locale
,
LocaleProviderAdapter
.
Type
type
,
Set
<
String
>
langtags
)
{
assert
type
==
Type
.
JRE
||
type
==
Type
.
CLDR
||
type
==
Type
.
FALLBACK
;
assert
type
==
Type
.
JRE
||
type
==
Type
.
CLDR
||
type
==
Type
.
FALLBACK
;
if
(
Locale
.
ROOT
.
equals
(
locale
))
{
if
(
Locale
.
ROOT
.
equals
(
locale
))
{
return
true
;
return
true
;
...
...
src/share/classes/sun/util/resources/LocaleData.java
浏览文件 @
6f02f9a3
/*
/*
* Copyright (c) 1996, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 201
5
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -48,8 +48,11 @@ import java.util.List;
...
@@ -48,8 +48,11 @@ import java.util.List;
import
java.util.Locale
;
import
java.util.Locale
;
import
java.util.MissingResourceException
;
import
java.util.MissingResourceException
;
import
java.util.ResourceBundle
;
import
java.util.ResourceBundle
;
import
java.util.Set
;
import
sun.util.locale.provider.JRELocaleProviderAdapter
;
import
sun.util.locale.provider.LocaleDataMetaInfo
;
import
sun.util.locale.provider.LocaleDataMetaInfo
;
import
sun.util.locale.provider.LocaleProviderAdapter
;
import
sun.util.locale.provider.LocaleProviderAdapter
;
import
static
sun
.
util
.
locale
.
provider
.
LocaleProviderAdapter
.
Type
.
CLDR
;
import
static
sun
.
util
.
locale
.
provider
.
LocaleProviderAdapter
.
Type
.
JRE
;
import
static
sun
.
util
.
locale
.
provider
.
LocaleProviderAdapter
.
Type
.
JRE
;
/**
/**
...
@@ -204,35 +207,23 @@ public class LocaleData {
...
@@ -204,35 +207,23 @@ public class LocaleData {
@Override
@Override
public
List
<
Locale
>
getCandidateLocales
(
String
baseName
,
Locale
locale
)
{
public
List
<
Locale
>
getCandidateLocales
(
String
baseName
,
Locale
locale
)
{
List
<
Locale
>
candidates
=
super
.
getCandidateLocales
(
baseName
,
locale
);
List
<
Locale
>
candidates
=
super
.
getCandidateLocales
(
baseName
,
locale
);
/* Get the locale string list from LocaleDataMetaInfo class. */
// Weed out Locales which are known to have no resource bundles
String
localeString
=
LocaleDataMetaInfo
.
getSupportedLocaleString
(
baseName
);
int
lastDot
=
baseName
.
lastIndexOf
(
'.'
);
String
category
=
(
lastDot
>=
0
)
?
baseName
.
substring
(
lastDot
+
1
)
:
baseName
;
if
(
localeString
!=
null
&&
localeString
.
length
()
!=
0
)
{
LocaleProviderAdapter
.
Type
type
=
baseName
.
contains
(
DOTCLDR
)
?
CLDR
:
JRE
;
for
(
Iterator
<
Locale
>
l
=
candidates
.
iterator
();
l
.
hasNext
();)
{
LocaleProviderAdapter
adapter
=
LocaleProviderAdapter
.
forType
(
type
);
Locale
loc
=
l
.
next
();
Set
<
String
>
langtags
=
((
JRELocaleProviderAdapter
)
adapter
).
getLanguageTagSet
(
category
);
String
lstr
;
if
(!
langtags
.
isEmpty
())
{
if
(
loc
.
getScript
().
length
()
>
0
)
{
for
(
Iterator
<
Locale
>
itr
=
candidates
.
iterator
();
itr
.
hasNext
();)
{
lstr
=
loc
.
toLanguageTag
().
replace
(
'-'
,
'_'
);
if
(!
LocaleProviderAdapter
.
isSupportedLocale
(
itr
.
next
(),
type
,
langtags
))
{
}
else
{
itr
.
remove
();
lstr
=
loc
.
toString
();
int
idx
=
lstr
.
indexOf
(
"_#"
);
if
(
idx
>=
0
)
{
lstr
=
lstr
.
substring
(
0
,
idx
);
}
}
/* Every locale string in the locale string list returned from
the above getSupportedLocaleString is enclosed
within two white spaces so that we could check some locale
such as "en".
*/
if
(
lstr
.
length
()
!=
0
&&
localeString
.
indexOf
(
" "
+
lstr
+
" "
)
==
-
1
)
{
l
.
remove
();
}
}
}
}
}
}
// Force fallback to Locale.ENGLISH for CLDR time zone names support
// Force fallback to Locale.ENGLISH for CLDR time zone names support
if
(
locale
.
getLanguage
()
!=
"en"
if
(
locale
.
getLanguage
()
!=
"en"
&&
baseName
.
contains
(
CLDR
)
&&
baseName
.
endsWith
(
"TimeZoneNames"
))
{
&&
type
==
CLDR
&&
category
.
equals
(
"TimeZoneNames"
))
{
candidates
.
add
(
candidates
.
size
()
-
1
,
Locale
.
ENGLISH
);
candidates
.
add
(
candidates
.
size
()
-
1
,
Locale
.
ENGLISH
);
}
}
return
candidates
;
return
candidates
;
...
@@ -254,7 +245,7 @@ public class LocaleData {
...
@@ -254,7 +245,7 @@ public class LocaleData {
return
null
;
return
null
;
}
}
private
static
final
String
CLDR
=
".cldr"
;
private
static
final
String
DOT
CLDR
=
".cldr"
;
/**
/**
* Changes baseName to its per-language package name and
* Changes baseName to its per-language package name and
...
@@ -275,8 +266,8 @@ public class LocaleData {
...
@@ -275,8 +266,8 @@ public class LocaleData {
assert
JRE
.
getUtilResourcesPackage
().
length
()
assert
JRE
.
getUtilResourcesPackage
().
length
()
==
JRE
.
getTextResourcesPackage
().
length
();
==
JRE
.
getTextResourcesPackage
().
length
();
int
index
=
JRE
.
getUtilResourcesPackage
().
length
();
int
index
=
JRE
.
getUtilResourcesPackage
().
length
();
if
(
baseName
.
indexOf
(
CLDR
,
index
)
>
0
)
{
if
(
baseName
.
indexOf
(
DOT
CLDR
,
index
)
>
0
)
{
index
+=
CLDR
.
length
();
index
+=
DOT
CLDR
.
length
();
}
}
newBaseName
=
baseName
.
substring
(
0
,
index
+
1
)
+
lang
newBaseName
=
baseName
.
substring
(
0
,
index
+
1
)
+
lang
+
baseName
.
substring
(
index
);
+
baseName
.
substring
(
index
);
...
...
src/share/classes/sun/util/resources/TimeZoneNames.java
浏览文件 @
6f02f9a3
...
@@ -152,9 +152,6 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
...
@@ -152,9 +152,6 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
String
GST
[]
=
new
String
[]
{
"Gulf Standard Time"
,
"GST"
,
String
GST
[]
=
new
String
[]
{
"Gulf Standard Time"
,
"GST"
,
"Gulf Daylight Time"
,
"GDT"
,
"Gulf Daylight Time"
,
"GDT"
,
"Gulf Time"
,
"GT"
};
"Gulf Time"
,
"GT"
};
String
HAST
[]
=
new
String
[]
{
"Hawaii-Aleutian Standard Time"
,
"HAST"
,
"Hawaii-Aleutian Daylight Time"
,
"HADT"
,
"Hawaii-Aleutian Time"
,
"HAT"
};
String
HKT
[]
=
new
String
[]
{
"Hong Kong Time"
,
"HKT"
,
String
HKT
[]
=
new
String
[]
{
"Hong Kong Time"
,
"HKT"
,
"Hong Kong Summer Time"
,
"HKST"
,
"Hong Kong Summer Time"
,
"HKST"
,
"Hong Kong Time"
,
"HKT"
};
"Hong Kong Time"
,
"HKT"
};
...
@@ -371,7 +368,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
...
@@ -371,7 +368,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Windhoek"
,
WAT
},
{
"Africa/Windhoek"
,
WAT
},
{
"America/Adak"
,
H
A
ST
},
{
"America/Adak"
,
HST
},
{
"America/Anguilla"
,
AST
},
{
"America/Anguilla"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Araguaina"
,
BRT
},
{
"America/Araguaina"
,
BRT
},
...
@@ -393,7 +390,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
...
@@ -393,7 +390,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
"Paraguay Summer Time"
,
"PYST"
,
"Paraguay Summer Time"
,
"PYST"
,
"Paraguay Time"
,
"PYT"
}},
"Paraguay Time"
,
"PYT"
}},
{
"America/Atikokan"
,
EST
},
{
"America/Atikokan"
,
EST
},
{
"America/Atka"
,
H
A
ST
},
{
"America/Atka"
,
HST
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Barbados"
,
AST
},
{
"America/Barbados"
,
AST
},
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
{
"UCT"
,
UTC
},
{
"UCT"
,
UTC
},
{
"Universal"
,
UTC
},
{
"Universal"
,
UTC
},
{
"US/Alaska"
,
AKST
},
{
"US/Alaska"
,
AKST
},
{
"US/Aleutian"
,
H
A
ST
},
{
"US/Aleutian"
,
HST
},
{
"US/Arizona"
,
MST
},
{
"US/Arizona"
,
MST
},
{
"US/Central"
,
CST
},
{
"US/Central"
,
CST
},
{
"US/Eastern"
,
EST
},
{
"US/Eastern"
,
EST
},
...
...
src/share/classes/sun/util/resources/de/TimeZoneNames_de.java
浏览文件 @
6f02f9a3
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
String
GST
[]
=
new
String
[]
{
"Golf Normalzeit"
,
"GST"
,
String
GST
[]
=
new
String
[]
{
"Golf Normalzeit"
,
"GST"
,
"Golf Sommerzeit"
,
"GDT"
,
"Golf Sommerzeit"
,
"GDT"
,
"Zeitzone f\u00FCr Persischen Golf"
,
"GT"
};
"Zeitzone f\u00FCr Persischen Golf"
,
"GT"
};
String
HAST
[]
=
new
String
[]
{
"Hawaii-Aleutische Normalzeit"
,
"HAST"
,
"Hawaii-Aleutische Sommerzeit"
,
"HADT"
,
"Zeitzone f\u00FCr Hawaii und Al\u00EButen"
,
"HAT"
};
String
HKT
[]
=
new
String
[]
{
"Hongkong Zeit"
,
"HKT"
,
String
HKT
[]
=
new
String
[]
{
"Hongkong Zeit"
,
"HKT"
,
"Hongkong Sommerzeit"
,
"HKST"
,
"Hongkong Sommerzeit"
,
"HKST"
,
"Hongkong Zeit"
,
"HKT"
};
"Hongkong Zeit"
,
"HKT"
};
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Windhoek"
,
WAT
},
{
"Africa/Windhoek"
,
WAT
},
{
"America/Adak"
,
H
A
ST
},
{
"America/Adak"
,
HST
},
{
"America/Anguilla"
,
AST
},
{
"America/Anguilla"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Araguaina"
,
BRT
},
{
"America/Araguaina"
,
BRT
},
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
"Paraguay Sommerzeit"
,
"PYST"
,
"Paraguay Sommerzeit"
,
"PYST"
,
"Paraguay Zeit"
,
"PYT"
}},
"Paraguay Zeit"
,
"PYT"
}},
{
"America/Atikokan"
,
EST
},
{
"America/Atikokan"
,
EST
},
{
"America/Atka"
,
H
A
ST
},
{
"America/Atka"
,
HST
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Barbados"
,
AST
},
{
"America/Barbados"
,
AST
},
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
{
"UCT"
,
UTC
},
{
"UCT"
,
UTC
},
{
"Universal"
,
UTC
},
{
"Universal"
,
UTC
},
{
"US/Alaska"
,
AKST
},
{
"US/Alaska"
,
AKST
},
{
"US/Aleutian"
,
H
A
ST
},
{
"US/Aleutian"
,
HST
},
{
"US/Arizona"
,
MST
},
{
"US/Arizona"
,
MST
},
{
"US/Central"
,
CST
},
{
"US/Central"
,
CST
},
{
"US/Eastern"
,
EST
},
{
"US/Eastern"
,
EST
},
...
...
src/share/classes/sun/util/resources/es/TimeZoneNames_es.java
浏览文件 @
6f02f9a3
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
String
GST
[]
=
new
String
[]
{
"Hora est\u00e1ndar del Golfo"
,
"GST"
,
String
GST
[]
=
new
String
[]
{
"Hora est\u00e1ndar del Golfo"
,
"GST"
,
"Hora de verano del Golfo"
,
"GDT"
,
"Hora de verano del Golfo"
,
"GDT"
,
"Hora del Golfo"
,
"GT"
};
"Hora del Golfo"
,
"GT"
};
String
HAST
[]
=
new
String
[]
{
"Hora est\u00e1ndar de Hawaii-Aleutianas"
,
"HAST"
,
"Hora de verano de Hawaii-Aleutianas"
,
"HADT"
,
"Hora de Hawaii-Aleutian"
,
"HAT"
};
String
HKT
[]
=
new
String
[]
{
"Hora de Hong Kong"
,
"HKT"
,
String
HKT
[]
=
new
String
[]
{
"Hora de Hong Kong"
,
"HKT"
,
"Hora de verano de Hong Kong"
,
"HKST"
,
"Hora de verano de Hong Kong"
,
"HKST"
,
"Hora de Hong Kong"
,
"HKT"
};
"Hora de Hong Kong"
,
"HKT"
};
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Windhoek"
,
WAT
},
{
"Africa/Windhoek"
,
WAT
},
{
"America/Adak"
,
H
A
ST
},
{
"America/Adak"
,
HST
},
{
"America/Anguilla"
,
AST
},
{
"America/Anguilla"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Araguaina"
,
BRT
},
{
"America/Araguaina"
,
BRT
},
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
"Hora de verano de Paraguay"
,
"PYST"
,
"Hora de verano de Paraguay"
,
"PYST"
,
"Hora de Paraguay"
,
"PYT"
}},
"Hora de Paraguay"
,
"PYT"
}},
{
"America/Atikokan"
,
EST
},
{
"America/Atikokan"
,
EST
},
{
"America/Atka"
,
H
A
ST
},
{
"America/Atka"
,
HST
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Barbados"
,
AST
},
{
"America/Barbados"
,
AST
},
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
{
"UCT"
,
UTC
},
{
"UCT"
,
UTC
},
{
"Universal"
,
UTC
},
{
"Universal"
,
UTC
},
{
"US/Alaska"
,
AKST
},
{
"US/Alaska"
,
AKST
},
{
"US/Aleutian"
,
H
A
ST
},
{
"US/Aleutian"
,
HST
},
{
"US/Arizona"
,
MST
},
{
"US/Arizona"
,
MST
},
{
"US/Central"
,
CST
},
{
"US/Central"
,
CST
},
{
"US/Eastern"
,
EST
},
{
"US/Eastern"
,
EST
},
...
...
src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java
浏览文件 @
6f02f9a3
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
String
GST
[]
=
new
String
[]
{
"Heure normale du Golfe"
,
"GST"
,
String
GST
[]
=
new
String
[]
{
"Heure normale du Golfe"
,
"GST"
,
"Heure avanc\u00e9e du Golfe"
,
"GDT"
,
"Heure avanc\u00e9e du Golfe"
,
"GDT"
,
"Golfe"
,
"GT"
}
;
"Golfe"
,
"GT"
}
;
String
HAST
[]
=
new
String
[]
{
"Heure normale d'Hawa\u00ef-Al\u00e9outiennes"
,
"HAST"
,
"Heure avanc\u00e9e d'Hawa\u00ef-Al\u00e9outiennes"
,
"HADT"
,
"Hawa\u00EF-Iles Al\u00E9outiennes"
,
"HAT"
}
;
String
HKT
[]
=
new
String
[]
{
"Heure de Hong Kong"
,
"HKT"
,
String
HKT
[]
=
new
String
[]
{
"Heure de Hong Kong"
,
"HKT"
,
"Heure d'\u00e9t\u00e9 de Hong Kong"
,
"HKST"
,
"Heure d'\u00e9t\u00e9 de Hong Kong"
,
"HKST"
,
"Heure de Hong-Kong"
,
"HKT"
};
"Heure de Hong-Kong"
,
"HKT"
};
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Windhoek"
,
WAT
},
{
"Africa/Windhoek"
,
WAT
},
{
"America/Adak"
,
H
A
ST
},
{
"America/Adak"
,
HST
},
{
"America/Anguilla"
,
AST
},
{
"America/Anguilla"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Araguaina"
,
BRT
},
{
"America/Araguaina"
,
BRT
},
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
"Heure d'\u00e9t\u00e9 du Paraguay"
,
"PYST"
,
"Heure d'\u00e9t\u00e9 du Paraguay"
,
"PYST"
,
"Heure du Paraguay"
,
"PYT"
}},
"Heure du Paraguay"
,
"PYT"
}},
{
"America/Atikokan"
,
EST
},
{
"America/Atikokan"
,
EST
},
{
"America/Atka"
,
H
A
ST
},
{
"America/Atka"
,
HST
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Barbados"
,
AST
},
{
"America/Barbados"
,
AST
},
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
{
"UCT"
,
UTC
},
{
"UCT"
,
UTC
},
{
"Universal"
,
UTC
},
{
"Universal"
,
UTC
},
{
"US/Alaska"
,
AKST
},
{
"US/Alaska"
,
AKST
},
{
"US/Aleutian"
,
H
A
ST
},
{
"US/Aleutian"
,
HST
},
{
"US/Arizona"
,
MST
},
{
"US/Arizona"
,
MST
},
{
"US/Central"
,
CST
},
{
"US/Central"
,
CST
},
{
"US/Eastern"
,
EST
},
{
"US/Eastern"
,
EST
},
...
...
src/share/classes/sun/util/resources/it/TimeZoneNames_it.java
浏览文件 @
6f02f9a3
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
String
GST
[]
=
new
String
[]
{
"Ora solare del golfo"
,
"GST"
,
String
GST
[]
=
new
String
[]
{
"Ora solare del golfo"
,
"GST"
,
"Ora legale del golfo"
,
"GDT"
,
"Ora legale del golfo"
,
"GDT"
,
"Ora del golfo"
,
"GT"
};
"Ora del golfo"
,
"GT"
};
String
HAST
[]
=
new
String
[]
{
"Ora solare delle Isole Hawaii-Aleutine"
,
"HAST"
,
"Ora solare delle Isole Hawaii-Aleutine"
,
"HADT"
,
"Ora Hawaii-Aleutine"
,
"HAT"
};
String
HKT
[]
=
new
String
[]
{
"Ora di Hong Kong"
,
"HKT"
,
String
HKT
[]
=
new
String
[]
{
"Ora di Hong Kong"
,
"HKT"
,
"Ora estiva di Hong Kong"
,
"HKST"
,
"Ora estiva di Hong Kong"
,
"HKST"
,
"Ora di Hong Kong"
,
"HKT"
};
"Ora di Hong Kong"
,
"HKT"
};
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Windhoek"
,
WAT
},
{
"Africa/Windhoek"
,
WAT
},
{
"America/Adak"
,
H
A
ST
},
{
"America/Adak"
,
HST
},
{
"America/Anguilla"
,
AST
},
{
"America/Anguilla"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Araguaina"
,
BRT
},
{
"America/Araguaina"
,
BRT
},
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
"Ora estiva del Paraguay"
,
"PYST"
,
"Ora estiva del Paraguay"
,
"PYST"
,
"Ora del Paraguay"
,
"PYT"
}},
"Ora del Paraguay"
,
"PYT"
}},
{
"America/Atikokan"
,
EST
},
{
"America/Atikokan"
,
EST
},
{
"America/Atka"
,
H
A
ST
},
{
"America/Atka"
,
HST
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Barbados"
,
AST
},
{
"America/Barbados"
,
AST
},
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
{
"UCT"
,
UTC
},
{
"UCT"
,
UTC
},
{
"Universal"
,
UTC
},
{
"Universal"
,
UTC
},
{
"US/Alaska"
,
AKST
},
{
"US/Alaska"
,
AKST
},
{
"US/Aleutian"
,
H
A
ST
},
{
"US/Aleutian"
,
HST
},
{
"US/Arizona"
,
MST
},
{
"US/Arizona"
,
MST
},
{
"US/Central"
,
CST
},
{
"US/Central"
,
CST
},
{
"US/Eastern"
,
EST
},
{
"US/Eastern"
,
EST
},
...
...
src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java
浏览文件 @
6f02f9a3
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
String
GST
[]
=
new
String
[]
{
"\u6e7e\u5cb8\u6a19\u6e96\u6642"
,
"GST"
,
String
GST
[]
=
new
String
[]
{
"\u6e7e\u5cb8\u6a19\u6e96\u6642"
,
"GST"
,
"\u6e7e\u5cb8\u590f\u6642\u9593"
,
"GDT"
,
"\u6e7e\u5cb8\u590f\u6642\u9593"
,
"GDT"
,
"\u6E7E\u5CB8\u6642\u9593"
,
"GT"
};
"\u6E7E\u5CB8\u6642\u9593"
,
"GT"
};
String
HAST
[]
=
new
String
[]
{
"\u30cf\u30ef\u30a4 - \u30a2\u30ea\u30e5\u30fc\u30b7\u30e3\u30f3\u6a19\u6e96\u6642"
,
"HAST"
,
"\u30cf\u30ef\u30a4 - \u30a2\u30ea\u30e5\u30fc\u30b7\u30e3\u30f3\u590f\u6642\u9593"
,
"HADT"
,
"\u30CF\u30EF\u30A4\u30FB\u30A2\u30EA\u30E5\u30FC\u30B7\u30E3\u30F3\u6642\u9593"
,
"HAT"
};
String
HKT
[]
=
new
String
[]
{
"\u9999\u6e2f\u6642\u9593"
,
"HKT"
,
String
HKT
[]
=
new
String
[]
{
"\u9999\u6e2f\u6642\u9593"
,
"HKT"
,
"\u9999\u6e2f\u590f\u6642\u9593"
,
"HKST"
,
"\u9999\u6e2f\u590f\u6642\u9593"
,
"HKST"
,
"\u9999\u6E2F\u6642\u9593"
,
"HKT"
};
"\u9999\u6E2F\u6642\u9593"
,
"HKT"
};
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Windhoek"
,
WAT
},
{
"Africa/Windhoek"
,
WAT
},
{
"America/Adak"
,
H
A
ST
},
{
"America/Adak"
,
HST
},
{
"America/Anguilla"
,
AST
},
{
"America/Anguilla"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Araguaina"
,
BRT
},
{
"America/Araguaina"
,
BRT
},
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
"\u30d1\u30e9\u30b0\u30a2\u30a4\u590f\u6642\u9593"
,
"PYST"
,
"\u30d1\u30e9\u30b0\u30a2\u30a4\u590f\u6642\u9593"
,
"PYST"
,
"\u30D1\u30E9\u30B0\u30A2\u30A4\u6642\u9593"
,
"PYT"
}},
"\u30D1\u30E9\u30B0\u30A2\u30A4\u6642\u9593"
,
"PYT"
}},
{
"America/Atikokan"
,
EST
},
{
"America/Atikokan"
,
EST
},
{
"America/Atka"
,
H
A
ST
},
{
"America/Atka"
,
HST
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Barbados"
,
AST
},
{
"America/Barbados"
,
AST
},
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
{
"UCT"
,
UTC
},
{
"UCT"
,
UTC
},
{
"Universal"
,
UTC
},
{
"Universal"
,
UTC
},
{
"US/Alaska"
,
AKST
},
{
"US/Alaska"
,
AKST
},
{
"US/Aleutian"
,
H
A
ST
},
{
"US/Aleutian"
,
HST
},
{
"US/Arizona"
,
MST
},
{
"US/Arizona"
,
MST
},
{
"US/Central"
,
CST
},
{
"US/Central"
,
CST
},
{
"US/Eastern"
,
EST
},
{
"US/Eastern"
,
EST
},
...
...
src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java
浏览文件 @
6f02f9a3
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
String
GST
[]
=
new
String
[]
{
"\uac78\ud504\ub9cc \ud45c\uc900\uc2dc"
,
"GST"
,
String
GST
[]
=
new
String
[]
{
"\uac78\ud504\ub9cc \ud45c\uc900\uc2dc"
,
"GST"
,
"\uac78\ud504\ub9cc \uc77c\uad11\uc808\uc57d\uc2dc\uac04"
,
"GDT"
,
"\uac78\ud504\ub9cc \uc77c\uad11\uc808\uc57d\uc2dc\uac04"
,
"GDT"
,
"\uAC78\uD504\uB9CC \uD45C\uC900\uC2DC"
,
"GT"
};
"\uAC78\uD504\uB9CC \uD45C\uC900\uC2DC"
,
"GT"
};
String
HAST
[]
=
new
String
[]
{
"\ud558\uc640\uc774 \uc54c\ub958\uc0e8 \ud45c\uc900\uc2dc"
,
"HAST"
,
"\ud558\uc640\uc774 \uc54c\ub958\uc0e8 \uc77c\uad11\uc808\uc57d\uc2dc\uac04"
,
"HADT"
,
"\uD558\uC640\uC774-\uC54C\uB8E8\uC0E8 \uD45C\uC900\uC2DC"
,
"HAT"
};
String
HKT
[]
=
new
String
[]
{
"\ud64d\ucf69 \uc2dc\uac04"
,
"HKT"
,
String
HKT
[]
=
new
String
[]
{
"\ud64d\ucf69 \uc2dc\uac04"
,
"HKT"
,
"\ud64d\ucf69 \uc77c\uad11\uc808\uc57d\uc2dc\uac04"
,
"HKST"
,
"\ud64d\ucf69 \uc77c\uad11\uc808\uc57d\uc2dc\uac04"
,
"HKST"
,
"\uD64D\uCF69 \uD45C\uC900\uC2DC"
,
"HKT"
};
"\uD64D\uCF69 \uD45C\uC900\uC2DC"
,
"HKT"
};
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Windhoek"
,
WAT
},
{
"Africa/Windhoek"
,
WAT
},
{
"America/Adak"
,
H
A
ST
},
{
"America/Adak"
,
HST
},
{
"America/Anguilla"
,
AST
},
{
"America/Anguilla"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Araguaina"
,
BRT
},
{
"America/Araguaina"
,
BRT
},
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
"\ud30c\ub77c\uacfc\uc774 \uc77c\uad11\uc808\uc57d\uc2dc\uac04"
,
"PYST"
,
"\ud30c\ub77c\uacfc\uc774 \uc77c\uad11\uc808\uc57d\uc2dc\uac04"
,
"PYST"
,
"\uD30C\uB77C\uACFC\uC774 \uD45C\uC900\uC2DC"
,
"PYT"
}},
"\uD30C\uB77C\uACFC\uC774 \uD45C\uC900\uC2DC"
,
"PYT"
}},
{
"America/Atikokan"
,
EST
},
{
"America/Atikokan"
,
EST
},
{
"America/Atka"
,
H
A
ST
},
{
"America/Atka"
,
HST
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Barbados"
,
AST
},
{
"America/Barbados"
,
AST
},
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
{
"UCT"
,
UTC
},
{
"UCT"
,
UTC
},
{
"Universal"
,
UTC
},
{
"Universal"
,
UTC
},
{
"US/Alaska"
,
AKST
},
{
"US/Alaska"
,
AKST
},
{
"US/Aleutian"
,
H
A
ST
},
{
"US/Aleutian"
,
HST
},
{
"US/Arizona"
,
MST
},
{
"US/Arizona"
,
MST
},
{
"US/Central"
,
CST
},
{
"US/Central"
,
CST
},
{
"US/Eastern"
,
EST
},
{
"US/Eastern"
,
EST
},
...
...
src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java
浏览文件 @
6f02f9a3
...
@@ -150,9 +150,6 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
...
@@ -150,9 +150,6 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
String
GST
[]
=
new
String
[]
{
"Fuso hor\u00e1rio padr\u00e3o do golfo"
,
"GST"
,
String
GST
[]
=
new
String
[]
{
"Fuso hor\u00e1rio padr\u00e3o do golfo"
,
"GST"
,
"Hor\u00e1rio de luz natural do golfo"
,
"GDT"
,
"Hor\u00e1rio de luz natural do golfo"
,
"GDT"
,
"Hor\u00E1rio do Golfo"
,
"GT"
};
"Hor\u00E1rio do Golfo"
,
"GT"
};
String
HAST
[]
=
new
String
[]
{
"Fuso hor\u00e1rio padr\u00e3o do Hava\u00ed-Aleutian"
,
"HAST"
,
"Hor\u00e1rio de luz natural do Hava\u00ed-Aleutian"
,
"HADT"
,
"Hor\u00E1rio do Hava\u00ED-Aleutas"
,
"HAT"
};
String
HKT
[]
=
new
String
[]
{
"Fuso hor\u00e1rio de Hong Kong"
,
"HKT"
,
String
HKT
[]
=
new
String
[]
{
"Fuso hor\u00e1rio de Hong Kong"
,
"HKT"
,
"Fuso hor\u00e1rio de ver\u00e3o de Hong Kong"
,
"HKST"
,
"Fuso hor\u00e1rio de ver\u00e3o de Hong Kong"
,
"HKST"
,
"Hor\u00E1rio de Hong Kong"
,
"HKT"
};
"Hor\u00E1rio de Hong Kong"
,
"HKT"
};
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Windhoek"
,
WAT
},
{
"Africa/Windhoek"
,
WAT
},
{
"America/Adak"
,
H
A
ST
},
{
"America/Adak"
,
HST
},
{
"America/Anguilla"
,
AST
},
{
"America/Anguilla"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Araguaina"
,
BRT
},
{
"America/Araguaina"
,
BRT
},
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
"Fuso hor\u00e1rio de ver\u00e3o do Paraguai"
,
"PYST"
,
"Fuso hor\u00e1rio de ver\u00e3o do Paraguai"
,
"PYST"
,
"Hor\u00E1rio do Paraguai"
,
"PYT"
}},
"Hor\u00E1rio do Paraguai"
,
"PYT"
}},
{
"America/Atikokan"
,
EST
},
{
"America/Atikokan"
,
EST
},
{
"America/Atka"
,
H
A
ST
},
{
"America/Atka"
,
HST
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Barbados"
,
AST
},
{
"America/Barbados"
,
AST
},
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
{
"UCT"
,
UTC
},
{
"UCT"
,
UTC
},
{
"Universal"
,
UTC
},
{
"Universal"
,
UTC
},
{
"US/Alaska"
,
AKST
},
{
"US/Alaska"
,
AKST
},
{
"US/Aleutian"
,
H
A
ST
},
{
"US/Aleutian"
,
HST
},
{
"US/Arizona"
,
MST
},
{
"US/Arizona"
,
MST
},
{
"US/Central"
,
CST
},
{
"US/Central"
,
CST
},
{
"US/Eastern"
,
EST
},
{
"US/Eastern"
,
EST
},
...
...
src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java
浏览文件 @
6f02f9a3
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
String
GST
[]
=
new
String
[]
{
"Gulf-normaltid"
,
"GST"
,
String
GST
[]
=
new
String
[]
{
"Gulf-normaltid"
,
"GST"
,
"Gulf-sommartid"
,
"GDT"
,
"Gulf-sommartid"
,
"GDT"
,
"Golfens tid"
,
"GT"
};
"Golfens tid"
,
"GT"
};
String
HAST
[]
=
new
String
[]
{
"Hawaii-Aleuterna, normaltid"
,
"HAST"
,
"Hawaii-Aleuterna, sommartid"
,
"HADT"
,
"Hawaiiansk-aleutisk tid"
,
"HAT"
};
String
HKT
[]
=
new
String
[]
{
"Hong Kong, normaltid"
,
"HKT"
,
String
HKT
[]
=
new
String
[]
{
"Hong Kong, normaltid"
,
"HKT"
,
"Hong Kong, sommartid"
,
"HKST"
,
"Hong Kong, sommartid"
,
"HKST"
,
"Hongkong-tid"
,
"HKT"
};
"Hongkong-tid"
,
"HKT"
};
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Windhoek"
,
WAT
},
{
"Africa/Windhoek"
,
WAT
},
{
"America/Adak"
,
H
A
ST
},
{
"America/Adak"
,
HST
},
{
"America/Anguilla"
,
AST
},
{
"America/Anguilla"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Araguaina"
,
BRT
},
{
"America/Araguaina"
,
BRT
},
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
"Paraguay, sommartid"
,
"PYST"
,
"Paraguay, sommartid"
,
"PYST"
,
"Paraguayansk tid"
,
"PYT"
}},
"Paraguayansk tid"
,
"PYT"
}},
{
"America/Atikokan"
,
EST
},
{
"America/Atikokan"
,
EST
},
{
"America/Atka"
,
H
A
ST
},
{
"America/Atka"
,
HST
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Barbados"
,
AST
},
{
"America/Barbados"
,
AST
},
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
{
"UCT"
,
UTC
},
{
"UCT"
,
UTC
},
{
"Universal"
,
UTC
},
{
"Universal"
,
UTC
},
{
"US/Alaska"
,
AKST
},
{
"US/Alaska"
,
AKST
},
{
"US/Aleutian"
,
H
A
ST
},
{
"US/Aleutian"
,
HST
},
{
"US/Arizona"
,
MST
},
{
"US/Arizona"
,
MST
},
{
"US/Central"
,
CST
},
{
"US/Central"
,
CST
},
{
"US/Eastern"
,
EST
},
{
"US/Eastern"
,
EST
},
...
...
src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java
浏览文件 @
6f02f9a3
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
String
GST
[]
=
new
String
[]
{
"\u6ce2\u65af\u6e7e\u6807\u51c6\u65f6\u95f4"
,
"GST"
,
String
GST
[]
=
new
String
[]
{
"\u6ce2\u65af\u6e7e\u6807\u51c6\u65f6\u95f4"
,
"GST"
,
"\u6ce2\u65af\u6e7e\u590f\u4ee4\u65f6"
,
"GDT"
,
"\u6ce2\u65af\u6e7e\u590f\u4ee4\u65f6"
,
"GDT"
,
"\u6D77\u6E7E\u65F6\u95F4"
,
"GT"
};
"\u6D77\u6E7E\u65F6\u95F4"
,
"GT"
};
String
HAST
[]
=
new
String
[]
{
"\u590f\u5a01\u5937-\u963f\u7559\u7533\u7fa4\u5c9b\u6807\u51c6\u65f6\u95f4"
,
"HAST"
,
"\u590f\u5a01\u5937-\u963f\u7559\u7533\u7fa4\u5c9b\u590f\u4ee4\u65f6"
,
"HADT"
,
"\u590F\u5A01\u5937-\u963F\u7559\u7533\u65F6\u95F4"
,
"HAT"
};
String
HKT
[]
=
new
String
[]
{
"\u9999\u6e2f\u65f6\u95f4"
,
"HKT"
,
String
HKT
[]
=
new
String
[]
{
"\u9999\u6e2f\u65f6\u95f4"
,
"HKT"
,
"\u9999\u6e2f\u590f\u4ee4\u65f6"
,
"HKST"
,
"\u9999\u6e2f\u590f\u4ee4\u65f6"
,
"HKST"
,
"\u9999\u6E2F\u65F6\u95F4"
,
"HKT"
};
"\u9999\u6E2F\u65F6\u95F4"
,
"HKT"
};
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Windhoek"
,
WAT
},
{
"Africa/Windhoek"
,
WAT
},
{
"America/Adak"
,
H
A
ST
},
{
"America/Adak"
,
HST
},
{
"America/Anguilla"
,
AST
},
{
"America/Anguilla"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Araguaina"
,
BRT
},
{
"America/Araguaina"
,
BRT
},
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
"\u5df4\u62c9\u572d\u590f\u4ee4\u65f6"
,
"PYST"
,
"\u5df4\u62c9\u572d\u590f\u4ee4\u65f6"
,
"PYST"
,
"\u5DF4\u62C9\u572D\u65F6\u95F4"
,
"PYT"
}},
"\u5DF4\u62C9\u572D\u65F6\u95F4"
,
"PYT"
}},
{
"America/Atikokan"
,
EST
},
{
"America/Atikokan"
,
EST
},
{
"America/Atka"
,
H
A
ST
},
{
"America/Atka"
,
HST
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Barbados"
,
AST
},
{
"America/Barbados"
,
AST
},
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
...
@@ -1024,7 +1021,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
{
"UCT"
,
UTC
},
{
"UCT"
,
UTC
},
{
"Universal"
,
UTC
},
{
"Universal"
,
UTC
},
{
"US/Alaska"
,
AKST
},
{
"US/Alaska"
,
AKST
},
{
"US/Aleutian"
,
H
A
ST
},
{
"US/Aleutian"
,
HST
},
{
"US/Arizona"
,
MST
},
{
"US/Arizona"
,
MST
},
{
"US/Central"
,
CST
},
{
"US/Central"
,
CST
},
{
"US/Eastern"
,
EST
},
{
"US/Eastern"
,
EST
},
...
...
src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java
浏览文件 @
6f02f9a3
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
...
@@ -153,9 +153,6 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
String
GST
[]
=
new
String
[]
{
"\u6ce2\u65af\u7063\u6a19\u6e96\u6642\u9593"
,
"GST"
,
String
GST
[]
=
new
String
[]
{
"\u6ce2\u65af\u7063\u6a19\u6e96\u6642\u9593"
,
"GST"
,
"\u6ce2\u65af\u7063\u65e5\u5149\u7bc0\u7d04\u6642\u9593"
,
"GDT"
,
"\u6ce2\u65af\u7063\u65e5\u5149\u7bc0\u7d04\u6642\u9593"
,
"GDT"
,
"\u6CE2\u65AF\u7063\u6642\u9593"
,
"GT"
};
"\u6CE2\u65AF\u7063\u6642\u9593"
,
"GT"
};
String
HAST
[]
=
new
String
[]
{
"\u590f\u5a01\u5937-\u963f\u7559\u7533\u7fa4\u5cf6\u6a19\u6e96\u6642\u9593"
,
"HAST"
,
"\u590f\u5a01\u5937-\u963f\u7559\u7533\u7fa4\u5cf6\u65e5\u5149\u7bc0\u7d04\u6642\u9593"
,
"HADT"
,
"\u590F\u5A01\u5937-\u963F\u7559\u7533\u6642\u9593"
,
"HAT"
};
String
HKT
[]
=
new
String
[]
{
"\u9999\u6e2f\u6642\u9593"
,
"HKT"
,
String
HKT
[]
=
new
String
[]
{
"\u9999\u6e2f\u6642\u9593"
,
"HKT"
,
"\u9999\u6e2f\u590f\u4ee4\u6642\u9593"
,
"HKST"
,
"\u9999\u6e2f\u590f\u4ee4\u6642\u9593"
,
"HKST"
,
"\u9999\u6E2F\u6642\u9593"
,
"HKT"
};
"\u9999\u6E2F\u6642\u9593"
,
"HKT"
};
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
...
@@ -372,7 +369,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tripoli"
,
EET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Tunis"
,
CET
},
{
"Africa/Windhoek"
,
WAT
},
{
"Africa/Windhoek"
,
WAT
},
{
"America/Adak"
,
H
A
ST
},
{
"America/Adak"
,
HST
},
{
"America/Anguilla"
,
AST
},
{
"America/Anguilla"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Antigua"
,
AST
},
{
"America/Araguaina"
,
BRT
},
{
"America/Araguaina"
,
BRT
},
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
...
@@ -394,7 +391,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
"\u5df4\u62c9\u572d\u590f\u4ee4\u6642\u9593"
,
"PYST"
,
"\u5df4\u62c9\u572d\u590f\u4ee4\u6642\u9593"
,
"PYST"
,
"\u5DF4\u62C9\u572D\u6642\u9593"
,
"PYT"
}},
"\u5DF4\u62C9\u572D\u6642\u9593"
,
"PYT"
}},
{
"America/Atikokan"
,
EST
},
{
"America/Atikokan"
,
EST
},
{
"America/Atka"
,
H
A
ST
},
{
"America/Atka"
,
HST
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia"
,
BRT
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Bahia_Banderas"
,
CST
},
{
"America/Barbados"
,
AST
},
{
"America/Barbados"
,
AST
},
...
@@ -1026,7 +1023,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
...
@@ -1026,7 +1023,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
{
"UCT"
,
UTC
},
{
"UCT"
,
UTC
},
{
"Universal"
,
UTC
},
{
"Universal"
,
UTC
},
{
"US/Alaska"
,
AKST
},
{
"US/Alaska"
,
AKST
},
{
"US/Aleutian"
,
H
A
ST
},
{
"US/Aleutian"
,
HST
},
{
"US/Arizona"
,
MST
},
{
"US/Arizona"
,
MST
},
{
"US/Central"
,
CST
},
{
"US/Central"
,
CST
},
{
"US/Eastern"
,
EST
},
{
"US/Eastern"
,
EST
},
...
...
src/share/native/sun/java2d/cmm/lcms/cmscgats.c
浏览文件 @
6f02f9a3
...
@@ -353,7 +353,7 @@ static const char* PredefinedSampleID[] = {
...
@@ -353,7 +353,7 @@ static const char* PredefinedSampleID[] = {
"XYZ_X"
,
// X component of tristimulus data
"XYZ_X"
,
// X component of tristimulus data
"XYZ_Y"
,
// Y component of tristimulus data
"XYZ_Y"
,
// Y component of tristimulus data
"XYZ_Z"
,
// Z component of tristimulus data
"XYZ_Z"
,
// Z component of tristimulus data
"XYY_X"
// x component of chromaticity data
"XYY_X"
,
// x component of chromaticity data
"XYY_Y"
,
// y component of chromaticity data
"XYY_Y"
,
// y component of chromaticity data
"XYY_CAPY"
,
// Y component of tristimulus data
"XYY_CAPY"
,
// Y component of tristimulus data
"LAB_L"
,
// L* component of Lab data
"LAB_L"
,
// L* component of Lab data
...
...
src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c
浏览文件 @
6f02f9a3
...
@@ -298,6 +298,8 @@ cmsBool ComputeAbsoluteIntent(cmsFloat64Number AdaptationState,
...
@@ -298,6 +298,8 @@ cmsBool ComputeAbsoluteIntent(cmsFloat64Number AdaptationState,
{
{
cmsMAT3
Scale
,
m1
,
m2
,
m3
,
m4
;
cmsMAT3
Scale
,
m1
,
m2
,
m3
,
m4
;
// TODO: Follow Marc Mahy's recommendation to check if CHAD is same by using M1*M2 == M2*M1. If so, do nothing.
// Adaptation state
// Adaptation state
if
(
AdaptationState
==
1
.
0
)
{
if
(
AdaptationState
==
1
.
0
)
{
...
@@ -559,7 +561,7 @@ cmsPipeline* DefaultICCintents(cmsContext ContextID,
...
@@ -559,7 +561,7 @@ cmsPipeline* DefaultICCintents(cmsContext ContextID,
cmsHPROFILE
hProfile
;
cmsHPROFILE
hProfile
;
cmsMAT3
m
;
cmsMAT3
m
;
cmsVEC3
off
;
cmsVEC3
off
;
cmsColorSpaceSignature
ColorSpaceIn
,
ColorSpaceOut
,
CurrentColorSpace
;
cmsColorSpaceSignature
ColorSpaceIn
,
ColorSpaceOut
=
cmsSigLabData
,
CurrentColorSpace
;
cmsProfileClassSignature
ClassSig
;
cmsProfileClassSignature
ClassSig
;
cmsUInt32Number
i
,
Intent
;
cmsUInt32Number
i
,
Intent
;
...
@@ -661,6 +663,22 @@ cmsPipeline* DefaultICCintents(cmsContext ContextID,
...
@@ -661,6 +663,22 @@ cmsPipeline* DefaultICCintents(cmsContext ContextID,
CurrentColorSpace
=
ColorSpaceOut
;
CurrentColorSpace
=
ColorSpaceOut
;
}
}
// Check for non-negatives clip
if
(
dwFlags
&
cmsFLAGS_NONEGATIVES
)
{
if
(
ColorSpaceOut
==
cmsSigGrayData
||
ColorSpaceOut
==
cmsSigRgbData
||
ColorSpaceOut
==
cmsSigCmykData
)
{
cmsStage
*
clip
=
_cmsStageClipNegatives
(
Result
->
ContextID
,
cmsChannelsOf
(
ColorSpaceOut
));
if
(
clip
==
NULL
)
goto
Error
;
if
(
!
cmsPipelineInsertStage
(
Result
,
cmsAT_END
,
clip
))
goto
Error
;
}
}
return
Result
;
return
Result
;
Error:
Error:
...
@@ -1074,7 +1092,7 @@ cmsPipeline* _cmsLinkProfiles(cmsContext ContextID,
...
@@ -1074,7 +1092,7 @@ cmsPipeline* _cmsLinkProfiles(cmsContext ContextID,
if
(
TheIntents
[
i
]
==
INTENT_PERCEPTUAL
||
TheIntents
[
i
]
==
INTENT_SATURATION
)
{
if
(
TheIntents
[
i
]
==
INTENT_PERCEPTUAL
||
TheIntents
[
i
]
==
INTENT_SATURATION
)
{
// Force BPC for V4 profiles in perceptual and saturation
// Force BPC for V4 profiles in perceptual and saturation
if
(
cmsGet
ProfileVersion
(
hProfiles
[
i
])
>=
4
.
0
)
if
(
cmsGet
EncodedICCversion
(
hProfiles
[
i
])
>=
0x400000
0
)
BPC
[
i
]
=
TRUE
;
BPC
[
i
]
=
TRUE
;
}
}
}
}
...
...
src/share/native/sun/java2d/cmm/lcms/cmserr.c
浏览文件 @
6f02f9a3
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
//---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
//
//
// Little Color Management System
// Little Color Management System
// Copyright (c) 1998-201
2
Marti Maria Saguer
// Copyright (c) 1998-201
5
Marti Maria Saguer
//
//
// Permission is hereby granted, free of charge, to any person obtaining
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the "Software"),
// a copy of this software and associated documentation files (the "Software"),
...
@@ -54,6 +54,13 @@
...
@@ -54,6 +54,13 @@
#include "lcms2_internal.h"
#include "lcms2_internal.h"
// This function is here to help applications to prevent mixing lcms versions on header and shared objects.
int
CMSEXPORT
cmsGetEncodedCMMversion
(
void
)
{
return
LCMS_VERSION
;
}
// I am so tired about incompatibilities on those functions that here are some replacements
// I am so tired about incompatibilities on those functions that here are some replacements
// that hopefully would be fully portable.
// that hopefully would be fully portable.
...
...
src/share/native/sun/java2d/cmm/lcms/cmsintrp.c
浏览文件 @
6f02f9a3
...
@@ -958,7 +958,7 @@ void Eval4Inputs(register const cmsUInt16Number Input[],
...
@@ -958,7 +958,7 @@ void Eval4Inputs(register const cmsUInt16Number Input[],
Rest
=
c1
*
rx
+
c2
*
ry
+
c3
*
rz
;
Rest
=
c1
*
rx
+
c2
*
ry
+
c3
*
rz
;
Tmp1
[
OutChan
]
=
(
cmsUInt16Number
)
c0
+
ROUND_FIXED_TO_INT
(
_cmsToFixedDomain
(
Rest
));
Tmp1
[
OutChan
]
=
(
cmsUInt16Number
)
(
c0
+
ROUND_FIXED_TO_INT
(
_cmsToFixedDomain
(
Rest
)
));
}
}
...
@@ -1022,7 +1022,7 @@ void Eval4Inputs(register const cmsUInt16Number Input[],
...
@@ -1022,7 +1022,7 @@ void Eval4Inputs(register const cmsUInt16Number Input[],
Rest
=
c1
*
rx
+
c2
*
ry
+
c3
*
rz
;
Rest
=
c1
*
rx
+
c2
*
ry
+
c3
*
rz
;
Tmp2
[
OutChan
]
=
(
cmsUInt16Number
)
c0
+
ROUND_FIXED_TO_INT
(
_cmsToFixedDomain
(
Rest
));
Tmp2
[
OutChan
]
=
(
cmsUInt16Number
)
(
c0
+
ROUND_FIXED_TO_INT
(
_cmsToFixedDomain
(
Rest
)
));
}
}
...
...
src/share/native/sun/java2d/cmm/lcms/cmsio0.c
浏览文件 @
6f02f9a3
...
@@ -482,6 +482,14 @@ cmsBool CMSEXPORT cmsCloseIOhandler(cmsIOHANDLER* io)
...
@@ -482,6 +482,14 @@ cmsBool CMSEXPORT cmsCloseIOhandler(cmsIOHANDLER* io)
// -------------------------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------------------------
cmsIOHANDLER
*
CMSEXPORT
cmsGetProfileIOhandler
(
cmsHPROFILE
hProfile
)
{
_cmsICCPROFILE
*
Icc
=
(
_cmsICCPROFILE
*
)
hProfile
;
if
(
Icc
==
NULL
)
return
NULL
;
return
Icc
->
IOhandler
;
}
// Creates an empty structure holding all required parameters
// Creates an empty structure holding all required parameters
cmsHPROFILE
CMSEXPORT
cmsCreateProfilePlaceholder
(
cmsContext
ContextID
)
cmsHPROFILE
CMSEXPORT
cmsCreateProfilePlaceholder
(
cmsContext
ContextID
)
{
{
...
@@ -651,25 +659,26 @@ cmsBool CMSEXPORT cmsIsTag(cmsHPROFILE hProfile, cmsTagSignature sig)
...
@@ -651,25 +659,26 @@ cmsBool CMSEXPORT cmsIsTag(cmsHPROFILE hProfile, cmsTagSignature sig)
return
_cmsSearchTag
(
Icc
,
sig
,
FALSE
)
>=
0
;
return
_cmsSearchTag
(
Icc
,
sig
,
FALSE
)
>=
0
;
}
}
/*
* Enforces that the profile version is per. spec.
* Operates on the big endian bytes from the profile.
// Enforces that the profile version is per. spec.
* Called before converting to platform endianness.
// Operates on the big endian bytes from the profile.
* Byte 0 is BCD major version, so max 9.
// Called before converting to platform endianness.
* Byte 1 is 2 BCD digits, one per nibble.
// Byte 0 is BCD major version, so max 9.
* Reserved bytes 2 & 3 must be 0.
// Byte 1 is 2 BCD digits, one per nibble.
*/
// Reserved bytes 2 & 3 must be 0.
static
cmsUInt32Number
_validatedVersion
(
cmsUInt32Number
DWord
)
static
cmsUInt32Number
_validatedVersion
(
cmsUInt32Number
DWord
)
{
{
cmsUInt8Number
*
pByte
=
(
cmsUInt8Number
*
)
&
DWord
;
cmsUInt8Number
*
pByte
=
(
cmsUInt8Number
*
)
&
DWord
;
cmsUInt8Number
temp1
;
cmsUInt8Number
temp1
;
cmsUInt8Number
temp2
;
cmsUInt8Number
temp2
;
if
(
*
pByte
>
0x09
)
*
pByte
=
(
cmsUInt8Number
)
9
;
if
(
*
pByte
>
0x09
)
*
pByte
=
(
cmsUInt8Number
)
0x0
9
;
temp1
=
*
(
pByte
+
1
)
&
0xf0
;
temp1
=
*
(
pByte
+
1
)
&
0xf0
;
temp2
=
*
(
pByte
+
1
)
&
0x0f
;
temp2
=
*
(
pByte
+
1
)
&
0x0f
;
if
(
temp1
>
0x90
)
temp1
=
0x90
;
if
(
temp1
>
0x90
)
temp1
=
0x90
;
if
(
temp2
>
9
)
temp2
=
0x09
;
if
(
temp2
>
0x0
9
)
temp2
=
0x09
;
*
(
pByte
+
1
)
=
(
cmsUInt8Number
)(
temp1
|
temp2
);
*
(
pByte
+
1
)
=
(
cmsUInt8Number
)(
temp1
|
temp2
);
*
(
pByte
+
2
)
=
(
cmsUInt8Number
)
0
;
*
(
pByte
+
2
)
=
(
cmsUInt8Number
)
0
;
*
(
pByte
+
3
)
=
(
cmsUInt8Number
)
0
;
*
(
pByte
+
3
)
=
(
cmsUInt8Number
)
0
;
...
@@ -1167,33 +1176,7 @@ cmsHPROFILE CMSEXPORT cmsOpenProfileFromMem(const void* MemPtr, cmsUInt32Number
...
@@ -1167,33 +1176,7 @@ cmsHPROFILE CMSEXPORT cmsOpenProfileFromMem(const void* MemPtr, cmsUInt32Number
return
cmsOpenProfileFromMemTHR
(
NULL
,
MemPtr
,
dwSize
);
return
cmsOpenProfileFromMemTHR
(
NULL
,
MemPtr
,
dwSize
);
}
}
static
cmsBool
SanityCheck
(
_cmsICCPROFILE
*
profile
)
{
cmsIOHANDLER
*
io
;
if
(
!
profile
)
{
return
FALSE
;
}
io
=
profile
->
IOhandler
;
if
(
!
io
)
{
return
FALSE
;
}
if
(
!
io
->
Seek
||
!
(
io
->
Seek
==
NULLSeek
||
io
->
Seek
==
MemorySeek
||
io
->
Seek
==
FileSeek
))
{
return
FALSE
;
}
if
(
!
io
->
Read
||
!
(
io
->
Read
==
NULLRead
||
io
->
Read
==
MemoryRead
||
io
->
Read
==
FileRead
))
{
return
FALSE
;
}
return
TRUE
;
}
// Dump tag contents. If the profile is being modified, untouched tags are copied from FileOrig
// Dump tag contents. If the profile is being modified, untouched tags are copied from FileOrig
static
static
...
@@ -1225,7 +1208,7 @@ cmsBool SaveTags(_cmsICCPROFILE* Icc, _cmsICCPROFILE* FileOrig)
...
@@ -1225,7 +1208,7 @@ cmsBool SaveTags(_cmsICCPROFILE* Icc, _cmsICCPROFILE* FileOrig)
// Reach here if we are copying a tag from a disk-based ICC profile which has not been modified by user.
// Reach here if we are copying a tag from a disk-based ICC profile which has not been modified by user.
// In this case a blind copy of the block data is performed
// In this case a blind copy of the block data is performed
if
(
SanityCheck
(
FileOrig
)
&&
Icc
->
TagOffsets
[
i
])
{
if
(
FileOrig
!=
NULL
&&
Icc
->
TagOffsets
[
i
])
{
cmsUInt32Number
TagSize
=
FileOrig
->
TagSizes
[
i
];
cmsUInt32Number
TagSize
=
FileOrig
->
TagSizes
[
i
];
cmsUInt32Number
TagOffset
=
FileOrig
->
TagOffsets
[
i
];
cmsUInt32Number
TagOffset
=
FileOrig
->
TagOffsets
[
i
];
...
@@ -1874,7 +1857,7 @@ Error:
...
@@ -1874,7 +1857,7 @@ Error:
// Similar to the anterior. This function allows to write directly to the ICC profile any data, without
// Similar to the anterior. This function allows to write directly to the ICC profile any data, without
// checking anything. As a rule, mixing Raw with cooked doesn't work, so writting a tag as raw and then reading
// checking anything. As a rule, mixing Raw with cooked doesn't work, so writting a tag as raw and then reading
// it as cooked without serializing does result into an error. If that is wha you want, you will need to dump
// it as cooked without serializing does result into an error. If that is wha
t
you want, you will need to dump
// the profile to memry or disk and then reopen it.
// the profile to memry or disk and then reopen it.
cmsBool
CMSEXPORT
cmsWriteRawTag
(
cmsHPROFILE
hProfile
,
cmsTagSignature
sig
,
const
void
*
data
,
cmsUInt32Number
Size
)
cmsBool
CMSEXPORT
cmsWriteRawTag
(
cmsHPROFILE
hProfile
,
cmsTagSignature
sig
,
const
void
*
data
,
cmsUInt32Number
Size
)
{
{
...
@@ -1898,6 +1881,11 @@ cmsBool CMSEXPORT cmsWriteRawTag(cmsHPROFILE hProfile, cmsTagSignature sig, cons
...
@@ -1898,6 +1881,11 @@ cmsBool CMSEXPORT cmsWriteRawTag(cmsHPROFILE hProfile, cmsTagSignature sig, cons
Icc
->
TagSizes
[
i
]
=
Size
;
Icc
->
TagSizes
[
i
]
=
Size
;
_cmsUnlockMutex
(
Icc
->
ContextID
,
Icc
->
UsrMutex
);
_cmsUnlockMutex
(
Icc
->
ContextID
,
Icc
->
UsrMutex
);
if
(
Icc
->
TagPtrs
[
i
]
==
NULL
)
{
Icc
->
TagNames
[
i
]
=
0
;
return
FALSE
;
}
return
TRUE
;
return
TRUE
;
}
}
...
...
src/share/native/sun/java2d/cmm/lcms/cmsio1.c
浏览文件 @
6f02f9a3
...
@@ -339,8 +339,8 @@ Error:
...
@@ -339,8 +339,8 @@ Error:
cmsPipeline
*
_cmsReadInputLUT
(
cmsHPROFILE
hProfile
,
int
Intent
)
cmsPipeline
*
_cmsReadInputLUT
(
cmsHPROFILE
hProfile
,
int
Intent
)
{
{
cmsTagTypeSignature
OriginalType
;
cmsTagTypeSignature
OriginalType
;
cmsTagSignature
tag16
=
Device2PCS16
[
Intent
]
;
cmsTagSignature
tag16
;
cmsTagSignature
tagFloat
=
Device2PCSFloat
[
Intent
]
;
cmsTagSignature
tagFloat
;
cmsContext
ContextID
=
cmsGetProfileContextID
(
hProfile
);
cmsContext
ContextID
=
cmsGetProfileContextID
(
hProfile
);
// On named color, take the appropiate tag
// On named color, take the appropiate tag
...
@@ -369,6 +369,9 @@ cmsPipeline* _cmsReadInputLUT(cmsHPROFILE hProfile, int Intent)
...
@@ -369,6 +369,9 @@ cmsPipeline* _cmsReadInputLUT(cmsHPROFILE hProfile, int Intent)
// matter other LUT are present and have precedence. Intent = -1 means just this.
// matter other LUT are present and have precedence. Intent = -1 means just this.
if
(
Intent
!=
-
1
)
{
if
(
Intent
!=
-
1
)
{
tag16
=
Device2PCS16
[
Intent
];
tagFloat
=
Device2PCSFloat
[
Intent
];
if
(
cmsIsTag
(
hProfile
,
tagFloat
))
{
// Float tag takes precedence
if
(
cmsIsTag
(
hProfile
,
tagFloat
))
{
// Float tag takes precedence
// Floating point LUT are always V4, but the encoding range is no
// Floating point LUT are always V4, but the encoding range is no
...
@@ -611,13 +614,16 @@ Error:
...
@@ -611,13 +614,16 @@ Error:
cmsPipeline
*
_cmsReadOutputLUT
(
cmsHPROFILE
hProfile
,
int
Intent
)
cmsPipeline
*
_cmsReadOutputLUT
(
cmsHPROFILE
hProfile
,
int
Intent
)
{
{
cmsTagTypeSignature
OriginalType
;
cmsTagTypeSignature
OriginalType
;
cmsTagSignature
tag16
=
PCS2Device16
[
Intent
]
;
cmsTagSignature
tag16
;
cmsTagSignature
tagFloat
=
PCS2DeviceFloat
[
Intent
]
;
cmsTagSignature
tagFloat
;
cmsContext
ContextID
=
cmsGetProfileContextID
(
hProfile
);
cmsContext
ContextID
=
cmsGetProfileContextID
(
hProfile
);
if
(
Intent
!=
-
1
)
{
if
(
Intent
!=
-
1
)
{
tag16
=
PCS2Device16
[
Intent
];
tagFloat
=
PCS2DeviceFloat
[
Intent
];
if
(
cmsIsTag
(
hProfile
,
tagFloat
))
{
// Float tag takes precedence
if
(
cmsIsTag
(
hProfile
,
tagFloat
))
{
// Float tag takes precedence
// Floating point LUT are always V4
// Floating point LUT are always V4
...
@@ -935,7 +941,7 @@ cmsBool _cmsWriteProfileSequence(cmsHPROFILE hProfile, const cmsSEQ* seq)
...
@@ -935,7 +941,7 @@ cmsBool _cmsWriteProfileSequence(cmsHPROFILE hProfile, const cmsSEQ* seq)
{
{
if
(
!
cmsWriteTag
(
hProfile
,
cmsSigProfileSequenceDescTag
,
seq
))
return
FALSE
;
if
(
!
cmsWriteTag
(
hProfile
,
cmsSigProfileSequenceDescTag
,
seq
))
return
FALSE
;
if
(
cmsGet
ProfileVersion
(
hProfile
)
>=
4
.
0
)
{
if
(
cmsGet
EncodedICCversion
(
hProfile
)
>=
0x400000
0
)
{
if
(
!
cmsWriteTag
(
hProfile
,
cmsSigProfileSequenceIdTag
,
seq
))
return
FALSE
;
if
(
!
cmsWriteTag
(
hProfile
,
cmsSigProfileSequenceIdTag
,
seq
))
return
FALSE
;
}
}
...
...
src/share/native/sun/java2d/cmm/lcms/cmslut.c
浏览文件 @
6f02f9a3
...
@@ -1154,7 +1154,23 @@ cmsStage* _cmsStageNormalizeToXyzFloat(cmsContext ContextID)
...
@@ -1154,7 +1154,23 @@ cmsStage* _cmsStageNormalizeToXyzFloat(cmsContext ContextID)
return
mpe
;
return
mpe
;
}
}
// Clips values smaller than zero
static
void
Clipper
(
const
cmsFloat32Number
In
[],
cmsFloat32Number
Out
[],
const
cmsStage
*
mpe
)
{
cmsUInt32Number
i
;
for
(
i
=
0
;
i
<
mpe
->
InputChannels
;
i
++
)
{
cmsFloat32Number
n
=
In
[
i
];
Out
[
i
]
=
n
<
0
?
0
:
n
;
}
}
cmsStage
*
_cmsStageClipNegatives
(
cmsContext
ContextID
,
int
nChannels
)
{
return
_cmsStageAllocPlaceholder
(
ContextID
,
cmsSigClipNegativesElemType
,
nChannels
,
nChannels
,
Clipper
,
NULL
,
NULL
,
NULL
);
}
// ********************************************************************************
// ********************************************************************************
// Type cmsSigXYZ2LabElemType
// Type cmsSigXYZ2LabElemType
...
...
src/share/native/sun/java2d/cmm/lcms/cmsnamed.c
浏览文件 @
6f02f9a3
...
@@ -543,8 +543,9 @@ cmsNAMEDCOLORLIST* CMSEXPORT cmsAllocNamedColorList(cmsContext ContextID, cmsUIn
...
@@ -543,8 +543,9 @@ cmsNAMEDCOLORLIST* CMSEXPORT cmsAllocNamedColorList(cmsContext ContextID, cmsUIn
v
->
nColors
=
0
;
v
->
nColors
=
0
;
v
->
ContextID
=
ContextID
;
v
->
ContextID
=
ContextID
;
while
(
v
->
Allocated
<
n
)
while
(
v
->
Allocated
<
n
){
GrowNamedColorList
(
v
);
if
(
!
GrowNamedColorList
(
v
))
return
NULL
;
}
strncpy
(
v
->
Prefix
,
Prefix
,
sizeof
(
v
->
Prefix
)
-
1
);
strncpy
(
v
->
Prefix
,
Prefix
,
sizeof
(
v
->
Prefix
)
-
1
);
strncpy
(
v
->
Suffix
,
Suffix
,
sizeof
(
v
->
Suffix
)
-
1
);
strncpy
(
v
->
Suffix
,
Suffix
,
sizeof
(
v
->
Suffix
)
-
1
);
...
@@ -573,8 +574,9 @@ cmsNAMEDCOLORLIST* CMSEXPORT cmsDupNamedColorList(const cmsNAMEDCOLORLIST* v)
...
@@ -573,8 +574,9 @@ cmsNAMEDCOLORLIST* CMSEXPORT cmsDupNamedColorList(const cmsNAMEDCOLORLIST* v)
if
(
NewNC
==
NULL
)
return
NULL
;
if
(
NewNC
==
NULL
)
return
NULL
;
// For really large tables we need this
// For really large tables we need this
while
(
NewNC
->
Allocated
<
v
->
Allocated
)
while
(
NewNC
->
Allocated
<
v
->
Allocated
){
GrowNamedColorList
(
NewNC
);
if
(
!
GrowNamedColorList
(
NewNC
))
return
NULL
;
}
memmove
(
NewNC
->
Prefix
,
v
->
Prefix
,
sizeof
(
v
->
Prefix
));
memmove
(
NewNC
->
Prefix
,
v
->
Prefix
,
sizeof
(
v
->
Prefix
));
memmove
(
NewNC
->
Suffix
,
v
->
Suffix
,
sizeof
(
v
->
Suffix
));
memmove
(
NewNC
->
Suffix
,
v
->
Suffix
,
sizeof
(
v
->
Suffix
));
...
...
src/share/native/sun/java2d/cmm/lcms/cmsopt.c
浏览文件 @
6f02f9a3
...
@@ -192,6 +192,88 @@ cmsBool _Remove2Op(cmsPipeline* Lut, cmsStageSignature Op1, cmsStageSignature Op
...
@@ -192,6 +192,88 @@ cmsBool _Remove2Op(cmsPipeline* Lut, cmsStageSignature Op1, cmsStageSignature Op
return
AnyOpt
;
return
AnyOpt
;
}
}
static
cmsBool
CloseEnoughFloat
(
cmsFloat64Number
a
,
cmsFloat64Number
b
)
{
return
fabs
(
b
-
a
)
<
0
.
00001
f
;
}
static
cmsBool
isFloatMatrixIdentity
(
const
cmsMAT3
*
a
)
{
cmsMAT3
Identity
;
int
i
,
j
;
_cmsMAT3identity
(
&
Identity
);
for
(
i
=
0
;
i
<
3
;
i
++
)
for
(
j
=
0
;
j
<
3
;
j
++
)
if
(
!
CloseEnoughFloat
(
a
->
v
[
i
].
n
[
j
],
Identity
.
v
[
i
].
n
[
j
]))
return
FALSE
;
return
TRUE
;
}
// if two adjacent matrices are found, multiply them.
static
cmsBool
_MultiplyMatrix
(
cmsPipeline
*
Lut
)
{
cmsStage
**
pt1
;
cmsStage
**
pt2
;
cmsStage
*
chain
;
cmsBool
AnyOpt
=
FALSE
;
pt1
=
&
Lut
->
Elements
;
if
(
*
pt1
==
NULL
)
return
AnyOpt
;
while
(
*
pt1
!=
NULL
)
{
pt2
=
&
((
*
pt1
)
->
Next
);
if
(
*
pt2
==
NULL
)
return
AnyOpt
;
if
((
*
pt1
)
->
Implements
==
cmsSigMatrixElemType
&&
(
*
pt2
)
->
Implements
==
cmsSigMatrixElemType
)
{
// Get both matrices
_cmsStageMatrixData
*
m1
=
(
_cmsStageMatrixData
*
)
cmsStageData
(
*
pt1
);
_cmsStageMatrixData
*
m2
=
(
_cmsStageMatrixData
*
)
cmsStageData
(
*
pt2
);
cmsMAT3
res
;
// Input offset and output offset should be zero to use this optimization
if
(
m1
->
Offset
!=
NULL
||
m2
->
Offset
!=
NULL
||
cmsStageInputChannels
(
*
pt1
)
!=
3
||
cmsStageOutputChannels
(
*
pt1
)
!=
3
||
cmsStageInputChannels
(
*
pt2
)
!=
3
||
cmsStageOutputChannels
(
*
pt2
)
!=
3
)
return
FALSE
;
// Multiply both matrices to get the result
_cmsMAT3per
(
&
res
,
(
cmsMAT3
*
)
m2
->
Double
,
(
cmsMAT3
*
)
m1
->
Double
);
// Get the next in chain afer the matrices
chain
=
(
*
pt2
)
->
Next
;
// Remove both matrices
_RemoveElement
(
pt2
);
_RemoveElement
(
pt1
);
// Now what if the result is a plain identity?
if
(
!
isFloatMatrixIdentity
(
&
res
))
{
// We can not get rid of full matrix
cmsStage
*
Multmat
=
cmsStageAllocMatrix
(
Lut
->
ContextID
,
3
,
3
,
(
const
cmsFloat64Number
*
)
&
res
,
NULL
);
// Recover the chain
Multmat
->
Next
=
chain
;
*
pt1
=
Multmat
;
}
AnyOpt
=
TRUE
;
}
else
pt1
=
&
((
*
pt1
)
->
Next
);
}
return
AnyOpt
;
}
// Preoptimize just gets rif of no-ops coming paired. Conversion from v2 to v4 followed
// Preoptimize just gets rif of no-ops coming paired. Conversion from v2 to v4 followed
// by a v4 to v2 and vice-versa. The elements are then discarded.
// by a v4 to v2 and vice-versa. The elements are then discarded.
static
static
...
@@ -224,6 +306,9 @@ cmsBool PreOptimize(cmsPipeline* Lut)
...
@@ -224,6 +306,9 @@ cmsBool PreOptimize(cmsPipeline* Lut)
// Remove float pcs Lab conversions
// Remove float pcs Lab conversions
Opt
|=
_Remove2Op
(
Lut
,
cmsSigXYZ2FloatPCS
,
cmsSigFloatPCS2XYZ
);
Opt
|=
_Remove2Op
(
Lut
,
cmsSigXYZ2FloatPCS
,
cmsSigFloatPCS2XYZ
);
// Simplify matrix.
Opt
|=
_MultiplyMatrix
(
Lut
);
if
(
Opt
)
AnyOpt
=
TRUE
;
if
(
Opt
)
AnyOpt
=
TRUE
;
}
while
(
Opt
);
}
while
(
Opt
);
...
@@ -280,12 +365,12 @@ static
...
@@ -280,12 +365,12 @@ static
void
*
Prelin16dup
(
cmsContext
ContextID
,
const
void
*
ptr
)
void
*
Prelin16dup
(
cmsContext
ContextID
,
const
void
*
ptr
)
{
{
Prelin16Data
*
p16
=
(
Prelin16Data
*
)
ptr
;
Prelin16Data
*
p16
=
(
Prelin16Data
*
)
ptr
;
Prelin16Data
*
Duped
=
_cmsDupMem
(
ContextID
,
p16
,
sizeof
(
Prelin16Data
));
Prelin16Data
*
Duped
=
(
Prelin16Data
*
)
_cmsDupMem
(
ContextID
,
p16
,
sizeof
(
Prelin16Data
));
if
(
Duped
==
NULL
)
return
NULL
;
if
(
Duped
==
NULL
)
return
NULL
;
Duped
->
EvalCurveOut16
=
_cmsDupMem
(
ContextID
,
p16
->
EvalCurveOut16
,
p16
->
nOutputs
*
sizeof
(
_cmsInterpFn16
));
Duped
->
EvalCurveOut16
=
(
_cmsInterpFn16
*
)
_cmsDupMem
(
ContextID
,
p16
->
EvalCurveOut16
,
p16
->
nOutputs
*
sizeof
(
_cmsInterpFn16
));
Duped
->
ParamsCurveOut16
=
_cmsDupMem
(
ContextID
,
p16
->
ParamsCurveOut16
,
p16
->
nOutputs
*
sizeof
(
cmsInterpParams
*
));
Duped
->
ParamsCurveOut16
=
(
cmsInterpParams
**
)
_cmsDupMem
(
ContextID
,
p16
->
ParamsCurveOut16
,
p16
->
nOutputs
*
sizeof
(
cmsInterpParams
*
));
return
Duped
;
return
Duped
;
}
}
...
@@ -298,7 +383,7 @@ Prelin16Data* PrelinOpt16alloc(cmsContext ContextID,
...
@@ -298,7 +383,7 @@ Prelin16Data* PrelinOpt16alloc(cmsContext ContextID,
int
nOutputs
,
cmsToneCurve
**
Out
)
int
nOutputs
,
cmsToneCurve
**
Out
)
{
{
int
i
;
int
i
;
Prelin16Data
*
p16
=
_cmsMallocZero
(
ContextID
,
sizeof
(
Prelin16Data
));
Prelin16Data
*
p16
=
(
Prelin16Data
*
)
_cmsMallocZero
(
ContextID
,
sizeof
(
Prelin16Data
));
if
(
p16
==
NULL
)
return
NULL
;
if
(
p16
==
NULL
)
return
NULL
;
p16
->
nInputs
=
nInputs
;
p16
->
nInputs
=
nInputs
;
...
@@ -787,7 +872,7 @@ Prelin8Data* PrelinOpt8alloc(cmsContext ContextID, const cmsInterpParams* p, cms
...
@@ -787,7 +872,7 @@ Prelin8Data* PrelinOpt8alloc(cmsContext ContextID, const cmsInterpParams* p, cms
cmsS15Fixed16Number
v1
,
v2
,
v3
;
cmsS15Fixed16Number
v1
,
v2
,
v3
;
Prelin8Data
*
p8
;
Prelin8Data
*
p8
;
p8
=
_cmsMallocZero
(
ContextID
,
sizeof
(
Prelin8Data
));
p8
=
(
Prelin8Data
*
)
_cmsMallocZero
(
ContextID
,
sizeof
(
Prelin8Data
));
if
(
p8
==
NULL
)
return
NULL
;
if
(
p8
==
NULL
)
return
NULL
;
// Since this only works for 8 bit input, values comes always as x * 257,
// Since this only works for 8 bit input, values comes always as x * 257,
...
@@ -861,7 +946,7 @@ void PrelinEval8(register const cmsUInt16Number Input[],
...
@@ -861,7 +946,7 @@ void PrelinEval8(register const cmsUInt16Number Input[],
Prelin8Data
*
p8
=
(
Prelin8Data
*
)
D
;
Prelin8Data
*
p8
=
(
Prelin8Data
*
)
D
;
register
const
cmsInterpParams
*
p
=
p8
->
p
;
register
const
cmsInterpParams
*
p
=
p8
->
p
;
int
TotalOut
=
p
->
nOutputs
;
int
TotalOut
=
p
->
nOutputs
;
const
cmsUInt16Number
*
LutTable
=
p
->
Table
;
const
cmsUInt16Number
*
LutTable
=
(
const
cmsUInt16Number
*
)
p
->
Table
;
r
=
Input
[
0
]
>>
8
;
r
=
Input
[
0
]
>>
8
;
g
=
Input
[
1
]
>>
8
;
g
=
Input
[
1
]
>>
8
;
...
@@ -1180,15 +1265,15 @@ void CurvesFree(cmsContext ContextID, void* ptr)
...
@@ -1180,15 +1265,15 @@ void CurvesFree(cmsContext ContextID, void* ptr)
static
static
void
*
CurvesDup
(
cmsContext
ContextID
,
const
void
*
ptr
)
void
*
CurvesDup
(
cmsContext
ContextID
,
const
void
*
ptr
)
{
{
Curves16Data
*
Data
=
_cmsDupMem
(
ContextID
,
ptr
,
sizeof
(
Curves16Data
));
Curves16Data
*
Data
=
(
Curves16Data
*
)
_cmsDupMem
(
ContextID
,
ptr
,
sizeof
(
Curves16Data
));
int
i
;
int
i
;
if
(
Data
==
NULL
)
return
NULL
;
if
(
Data
==
NULL
)
return
NULL
;
Data
->
Curves
=
_cmsDupMem
(
ContextID
,
Data
->
Curves
,
Data
->
nCurves
*
sizeof
(
cmsUInt16Number
*
));
Data
->
Curves
=
(
cmsUInt16Number
**
)
_cmsDupMem
(
ContextID
,
Data
->
Curves
,
Data
->
nCurves
*
sizeof
(
cmsUInt16Number
*
));
for
(
i
=
0
;
i
<
Data
->
nCurves
;
i
++
)
{
for
(
i
=
0
;
i
<
Data
->
nCurves
;
i
++
)
{
Data
->
Curves
[
i
]
=
_cmsDupMem
(
ContextID
,
Data
->
Curves
[
i
],
Data
->
nElements
*
sizeof
(
cmsUInt16Number
));
Data
->
Curves
[
i
]
=
(
cmsUInt16Number
*
)
_cmsDupMem
(
ContextID
,
Data
->
Curves
[
i
],
Data
->
nElements
*
sizeof
(
cmsUInt16Number
));
}
}
return
(
void
*
)
Data
;
return
(
void
*
)
Data
;
...
@@ -1201,18 +1286,18 @@ Curves16Data* CurvesAlloc(cmsContext ContextID, int nCurves, int nElements, cmsT
...
@@ -1201,18 +1286,18 @@ Curves16Data* CurvesAlloc(cmsContext ContextID, int nCurves, int nElements, cmsT
int
i
,
j
;
int
i
,
j
;
Curves16Data
*
c16
;
Curves16Data
*
c16
;
c16
=
_cmsMallocZero
(
ContextID
,
sizeof
(
Curves16Data
));
c16
=
(
Curves16Data
*
)
_cmsMallocZero
(
ContextID
,
sizeof
(
Curves16Data
));
if
(
c16
==
NULL
)
return
NULL
;
if
(
c16
==
NULL
)
return
NULL
;
c16
->
nCurves
=
nCurves
;
c16
->
nCurves
=
nCurves
;
c16
->
nElements
=
nElements
;
c16
->
nElements
=
nElements
;
c16
->
Curves
=
_cmsCalloc
(
ContextID
,
nCurves
,
sizeof
(
cmsUInt16Number
*
));
c16
->
Curves
=
(
cmsUInt16Number
**
)
_cmsCalloc
(
ContextID
,
nCurves
,
sizeof
(
cmsUInt16Number
*
));
if
(
c16
->
Curves
==
NULL
)
return
NULL
;
if
(
c16
->
Curves
==
NULL
)
return
NULL
;
for
(
i
=
0
;
i
<
nCurves
;
i
++
)
{
for
(
i
=
0
;
i
<
nCurves
;
i
++
)
{
c16
->
Curves
[
i
]
=
_cmsCalloc
(
ContextID
,
nElements
,
sizeof
(
cmsUInt16Number
));
c16
->
Curves
[
i
]
=
(
cmsUInt16Number
*
)
_cmsCalloc
(
ContextID
,
nElements
,
sizeof
(
cmsUInt16Number
));
if
(
c16
->
Curves
[
i
]
==
NULL
)
{
if
(
c16
->
Curves
[
i
]
==
NULL
)
{
...
@@ -1560,49 +1645,83 @@ cmsBool SetMatShaper(cmsPipeline* Dest, cmsToneCurve* Curve1[3], cmsMAT3* Mat, c
...
@@ -1560,49 +1645,83 @@ cmsBool SetMatShaper(cmsPipeline* Dest, cmsToneCurve* Curve1[3], cmsMAT3* Mat, c
}
}
// 8 bits on input allows matrix-shaper boot up to 25 Mpixels per second on RGB. That's fast!
// 8 bits on input allows matrix-shaper boot up to 25 Mpixels per second on RGB. That's fast!
// TODO: Allow a third matrix for abs. colorimetric
static
static
cmsBool
OptimizeMatrixShaper
(
cmsPipeline
**
Lut
,
cmsUInt32Number
Intent
,
cmsUInt32Number
*
InputFormat
,
cmsUInt32Number
*
OutputFormat
,
cmsUInt32Number
*
dwFlags
)
cmsBool
OptimizeMatrixShaper
(
cmsPipeline
**
Lut
,
cmsUInt32Number
Intent
,
cmsUInt32Number
*
InputFormat
,
cmsUInt32Number
*
OutputFormat
,
cmsUInt32Number
*
dwFlags
)
{
{
cmsStage
*
Curve1
,
*
Curve2
;
cmsStage
*
Curve1
,
*
Curve2
;
cmsStage
*
Matrix1
,
*
Matrix2
;
cmsStage
*
Matrix1
,
*
Matrix2
;
_cmsStageMatrixData
*
Data1
;
cmsMAT3
res
;
_cmsStageMatrixData
*
Data2
;
cmsBool
IdentityMat
;
cmsMAT3
res
;
cmsPipeline
*
Dest
,
*
Src
;
cmsBool
IdentityMat
;
cmsFloat64Number
*
Offset
;
cmsPipeline
*
Dest
,
*
Src
;
// Only works on RGB to RGB
// Only works on RGB to RGB
if
(
T_CHANNELS
(
*
InputFormat
)
!=
3
||
T_CHANNELS
(
*
OutputFormat
)
!=
3
)
return
FALSE
;
if
(
T_CHANNELS
(
*
InputFormat
)
!=
3
||
T_CHANNELS
(
*
OutputFormat
)
!=
3
)
return
FALSE
;
// Only works on 8 bit input
// Only works on 8 bit input
if
(
!
_cmsFormatterIs8bit
(
*
InputFormat
))
return
FALSE
;
if
(
!
_cmsFormatterIs8bit
(
*
InputFormat
))
return
FALSE
;
// Seems suitable, proceed
// Seems suitable, proceed
Src
=
*
Lut
;
Src
=
*
Lut
;
// Check for shaper-matrix-matrix-shaper structure, that is what this optimizer stands for
// Check for:
if
(
!
cmsPipelineCheckAndRetreiveStages
(
Src
,
4
,
//
cmsSigCurveSetElemType
,
cmsSigMatrixElemType
,
cmsSigMatrixElemType
,
cmsSigCurveSetElemType
,
// shaper-matrix-matrix-shaper
&
Curve1
,
&
Matrix1
,
&
Matrix2
,
&
Curve2
))
return
FALSE
;
// shaper-matrix-shaper
//
// Both of those constructs are possible (first because abs. colorimetric).
// additionally, In the first case, the input matrix offset should be zero.
// Get both matrices
IdentityMat
=
FALSE
;
Data1
=
(
_cmsStageMatrixData
*
)
cmsStageData
(
Matrix1
);
if
(
cmsPipelineCheckAndRetreiveStages
(
Src
,
4
,
Data2
=
(
_cmsStageMatrixData
*
)
cmsStageData
(
Matrix2
);
cmsSigCurveSetElemType
,
cmsSigMatrixElemType
,
cmsSigMatrixElemType
,
cmsSigCurveSetElemType
,
&
Curve1
,
&
Matrix1
,
&
Matrix2
,
&
Curve2
))
{
// Input offset should be zero
// Get both matrices
if
(
Data1
->
Offset
!=
NULL
)
return
FALSE
;
_cmsStageMatrixData
*
Data1
=
(
_cmsStageMatrixData
*
)
cmsStageData
(
Matrix1
);
_cmsStageMatrixData
*
Data2
=
(
_cmsStageMatrixData
*
)
cmsStageData
(
Matrix2
);
// Multiply both matrices to get the result
// Input offset should be zero
_cmsMAT3per
(
&
res
,
(
cmsMAT3
*
)
Data2
->
Double
,
(
cmsMAT3
*
)
Data1
->
Double
)
;
if
(
Data1
->
Offset
!=
NULL
)
return
FALSE
;
// Now the result is in res + Data2 -> Offset. Maybe is a plain identity?
// Multiply both matrices to get the result
IdentityMat
=
FALSE
;
_cmsMAT3per
(
&
res
,
(
cmsMAT3
*
)
Data2
->
Double
,
(
cmsMAT3
*
)
Data1
->
Double
);
if
(
_cmsMAT3isIdentity
(
&
res
)
&&
Data2
->
Offset
==
NULL
)
{
// We can get rid of full matrix
// Only 2nd matrix has offset, or it is zero
IdentityMat
=
TRUE
;
Offset
=
Data2
->
Offset
;
}
// Now the result is in res + Data2 -> Offset. Maybe is a plain identity?
if
(
_cmsMAT3isIdentity
(
&
res
)
&&
Offset
==
NULL
)
{
// We can get rid of full matrix
IdentityMat
=
TRUE
;
}
}
else
{
if
(
cmsPipelineCheckAndRetreiveStages
(
Src
,
3
,
cmsSigCurveSetElemType
,
cmsSigMatrixElemType
,
cmsSigCurveSetElemType
,
&
Curve1
,
&
Matrix1
,
&
Curve2
))
{
_cmsStageMatrixData
*
Data
=
(
_cmsStageMatrixData
*
)
cmsStageData
(
Matrix1
);
// Copy the matrix to our result
memcpy
(
&
res
,
Data
->
Double
,
sizeof
(
res
));
// Preserve the Odffset (may be NULL as a zero offset)
Offset
=
Data
->
Offset
;
if
(
_cmsMAT3isIdentity
(
&
res
)
&&
Offset
==
NULL
)
{
// We can get rid of full matrix
IdentityMat
=
TRUE
;
}
}
else
return
FALSE
;
// Not optimizeable this time
}
// Allocate an empty LUT
// Allocate an empty LUT
Dest
=
cmsPipelineAlloc
(
Src
->
ContextID
,
Src
->
InputChannels
,
Src
->
OutputChannels
);
Dest
=
cmsPipelineAlloc
(
Src
->
ContextID
,
Src
->
InputChannels
,
Src
->
OutputChannels
);
...
@@ -1612,9 +1731,12 @@ cmsBool OptimizeMatrixShaper(cmsPipeline** Lut, cmsUInt32Number Intent, cmsUInt3
...
@@ -1612,9 +1731,12 @@ cmsBool OptimizeMatrixShaper(cmsPipeline** Lut, cmsUInt32Number Intent, cmsUInt3
if
(
!
cmsPipelineInsertStage
(
Dest
,
cmsAT_BEGIN
,
cmsStageDup
(
Curve1
)))
if
(
!
cmsPipelineInsertStage
(
Dest
,
cmsAT_BEGIN
,
cmsStageDup
(
Curve1
)))
goto
Error
;
goto
Error
;
if
(
!
IdentityMat
)
if
(
!
IdentityMat
)
{
if
(
!
cmsPipelineInsertStage
(
Dest
,
cmsAT_END
,
cmsStageAllocMatrix
(
Dest
->
ContextID
,
3
,
3
,
(
const
cmsFloat64Number
*
)
&
res
,
Data2
->
Offset
)))
goto
Error
;
if
(
!
cmsPipelineInsertStage
(
Dest
,
cmsAT_END
,
cmsStageAllocMatrix
(
Dest
->
ContextID
,
3
,
3
,
(
const
cmsFloat64Number
*
)
&
res
,
Offset
)))
goto
Error
;
}
if
(
!
cmsPipelineInsertStage
(
Dest
,
cmsAT_END
,
cmsStageDup
(
Curve2
)))
if
(
!
cmsPipelineInsertStage
(
Dest
,
cmsAT_END
,
cmsStageDup
(
Curve2
)))
goto
Error
;
goto
Error
;
...
@@ -1632,7 +1754,7 @@ cmsBool OptimizeMatrixShaper(cmsPipeline** Lut, cmsUInt32Number Intent, cmsUInt3
...
@@ -1632,7 +1754,7 @@ cmsBool OptimizeMatrixShaper(cmsPipeline** Lut, cmsUInt32Number Intent, cmsUInt3
*
dwFlags
|=
cmsFLAGS_NOCACHE
;
*
dwFlags
|=
cmsFLAGS_NOCACHE
;
// Setup the optimizarion routines
// Setup the optimizarion routines
SetMatShaper
(
Dest
,
mpeC1
->
TheCurves
,
&
res
,
(
cmsVEC3
*
)
Data2
->
Offset
,
mpeC2
->
TheCurves
,
OutputFormat
);
SetMatShaper
(
Dest
,
mpeC1
->
TheCurves
,
&
res
,
(
cmsVEC3
*
)
Offset
,
mpeC2
->
TheCurves
,
OutputFormat
);
}
}
cmsPipelineFree
(
Src
);
cmsPipelineFree
(
Src
);
...
...
src/share/native/sun/java2d/cmm/lcms/cmspack.c
浏览文件 @
6f02f9a3
...
@@ -2438,9 +2438,6 @@ cmsUInt8Number* PackDoubleFrom16(register _cmsTRANSFORM* info,
...
@@ -2438,9 +2438,6 @@ cmsUInt8Number* PackDoubleFrom16(register _cmsTRANSFORM* info,
((
cmsFloat64Number
*
)
output
)[
i
+
start
]
=
v
;
((
cmsFloat64Number
*
)
output
)[
i
+
start
]
=
v
;
}
}
if
(
!
ExtraFirst
)
{
output
+=
Extra
*
sizeof
(
cmsFloat64Number
);
}
if
(
Extra
==
0
&&
SwapFirst
)
{
if
(
Extra
==
0
&&
SwapFirst
)
{
...
@@ -2451,7 +2448,7 @@ cmsUInt8Number* PackDoubleFrom16(register _cmsTRANSFORM* info,
...
@@ -2451,7 +2448,7 @@ cmsUInt8Number* PackDoubleFrom16(register _cmsTRANSFORM* info,
if
(
T_PLANAR
(
info
->
OutputFormat
))
if
(
T_PLANAR
(
info
->
OutputFormat
))
return
output
+
sizeof
(
cmsFloat64Number
);
return
output
+
sizeof
(
cmsFloat64Number
);
else
else
return
output
+
nChan
*
sizeof
(
cmsFloat64Number
);
return
output
+
(
nChan
+
Extra
)
*
sizeof
(
cmsFloat64Number
);
}
}
...
@@ -2462,50 +2459,47 @@ cmsUInt8Number* PackFloatFrom16(register _cmsTRANSFORM* info,
...
@@ -2462,50 +2459,47 @@ cmsUInt8Number* PackFloatFrom16(register _cmsTRANSFORM* info,
register
cmsUInt8Number
*
output
,
register
cmsUInt8Number
*
output
,
register
cmsUInt32Number
Stride
)
register
cmsUInt32Number
Stride
)
{
{
int
nChan
=
T_CHANNELS
(
info
->
OutputFormat
);
int
nChan
=
T_CHANNELS
(
info
->
OutputFormat
);
int
DoSwap
=
T_DOSWAP
(
info
->
OutputFormat
);
int
DoSwap
=
T_DOSWAP
(
info
->
OutputFormat
);
int
Reverse
=
T_FLAVOR
(
info
->
OutputFormat
);
int
Reverse
=
T_FLAVOR
(
info
->
OutputFormat
);
int
Extra
=
T_EXTRA
(
info
->
OutputFormat
);
int
Extra
=
T_EXTRA
(
info
->
OutputFormat
);
int
SwapFirst
=
T_SWAPFIRST
(
info
->
OutputFormat
);
int
SwapFirst
=
T_SWAPFIRST
(
info
->
OutputFormat
);
int
Planar
=
T_PLANAR
(
info
->
OutputFormat
);
int
Planar
=
T_PLANAR
(
info
->
OutputFormat
);
int
ExtraFirst
=
DoSwap
^
SwapFirst
;
int
ExtraFirst
=
DoSwap
^
SwapFirst
;
cmsFloat64Number
maximum
=
IsInkSpace
(
info
->
OutputFormat
)
?
655
.
35
:
65535
.
0
;
cmsFloat64Number
maximum
=
IsInkSpace
(
info
->
OutputFormat
)
?
655
.
35
:
65535
.
0
;
cmsFloat64Number
v
=
0
;
cmsFloat64Number
v
=
0
;
cmsFloat32Number
*
swap1
=
(
cmsFloat32Number
*
)
output
;
cmsFloat32Number
*
swap1
=
(
cmsFloat32Number
*
)
output
;
int
i
,
start
=
0
;
int
i
,
start
=
0
;
if
(
ExtraFirst
)
if
(
ExtraFirst
)
start
=
Extra
;
start
=
Extra
;
for
(
i
=
0
;
i
<
nChan
;
i
++
)
{
for
(
i
=
0
;
i
<
nChan
;
i
++
)
{
int
index
=
DoSwap
?
(
nChan
-
i
-
1
)
:
i
;
int
index
=
DoSwap
?
(
nChan
-
i
-
1
)
:
i
;
v
=
(
cmsFloat64Number
)
wOut
[
index
]
/
maximum
;
v
=
(
cmsFloat64Number
)
wOut
[
index
]
/
maximum
;
if
(
Reverse
)
if
(
Reverse
)
v
=
maximum
-
v
;
v
=
maximum
-
v
;
if
(
Planar
)
if
(
Planar
)
((
cmsFloat32Number
*
)
output
)[(
i
+
start
)
*
Stride
]
=
(
cmsFloat32Number
)
v
;
((
cmsFloat32Number
*
)
output
)[(
i
+
start
)
*
Stride
]
=
(
cmsFloat32Number
)
v
;
else
else
((
cmsFloat32Number
*
)
output
)[
i
+
start
]
=
(
cmsFloat32Number
)
v
;
((
cmsFloat32Number
*
)
output
)[
i
+
start
]
=
(
cmsFloat32Number
)
v
;
}
}
if
(
!
ExtraFirst
)
{
output
+=
Extra
*
sizeof
(
cmsFloat32Number
);
}
if
(
Extra
==
0
&&
SwapFirst
)
{
if
(
Extra
==
0
&&
SwapFirst
)
{
memmove
(
swap1
+
1
,
swap1
,
(
nChan
-
1
)
*
sizeof
(
cmsFloat32Number
));
memmove
(
swap1
+
1
,
swap1
,
(
nChan
-
1
)
*
sizeof
(
cmsFloat32Number
));
*
swap1
=
(
cmsFloat32Number
)
v
;
*
swap1
=
(
cmsFloat32Number
)
v
;
}
}
if
(
T_PLANAR
(
info
->
OutputFormat
))
if
(
T_PLANAR
(
info
->
OutputFormat
))
return
output
+
sizeof
(
cmsFloat32Number
);
return
output
+
sizeof
(
cmsFloat32Number
);
else
else
return
output
+
nChan
*
sizeof
(
cmsFloat32Number
);
return
output
+
(
nChan
+
Extra
)
*
sizeof
(
cmsFloat32Number
);
}
}
...
@@ -2518,50 +2512,47 @@ cmsUInt8Number* PackFloatsFromFloat(_cmsTRANSFORM* info,
...
@@ -2518,50 +2512,47 @@ cmsUInt8Number* PackFloatsFromFloat(_cmsTRANSFORM* info,
cmsUInt8Number
*
output
,
cmsUInt8Number
*
output
,
cmsUInt32Number
Stride
)
cmsUInt32Number
Stride
)
{
{
int
nChan
=
T_CHANNELS
(
info
->
OutputFormat
);
int
nChan
=
T_CHANNELS
(
info
->
OutputFormat
);
int
DoSwap
=
T_DOSWAP
(
info
->
OutputFormat
);
int
DoSwap
=
T_DOSWAP
(
info
->
OutputFormat
);
int
Reverse
=
T_FLAVOR
(
info
->
OutputFormat
);
int
Reverse
=
T_FLAVOR
(
info
->
OutputFormat
);
int
Extra
=
T_EXTRA
(
info
->
OutputFormat
);
int
Extra
=
T_EXTRA
(
info
->
OutputFormat
);
int
SwapFirst
=
T_SWAPFIRST
(
info
->
OutputFormat
);
int
SwapFirst
=
T_SWAPFIRST
(
info
->
OutputFormat
);
int
Planar
=
T_PLANAR
(
info
->
OutputFormat
);
int
Planar
=
T_PLANAR
(
info
->
OutputFormat
);
int
ExtraFirst
=
DoSwap
^
SwapFirst
;
int
ExtraFirst
=
DoSwap
^
SwapFirst
;
cmsFloat64Number
maximum
=
IsInkSpace
(
info
->
OutputFormat
)
?
100
.
0
:
1
.
0
;
cmsFloat64Number
maximum
=
IsInkSpace
(
info
->
OutputFormat
)
?
100
.
0
:
1
.
0
;
cmsFloat32Number
*
swap1
=
(
cmsFloat32Number
*
)
output
;
cmsFloat32Number
*
swap1
=
(
cmsFloat32Number
*
)
output
;
cmsFloat64Number
v
=
0
;
cmsFloat64Number
v
=
0
;
int
i
,
start
=
0
;
int
i
,
start
=
0
;
if
(
ExtraFirst
)
if
(
ExtraFirst
)
start
=
Extra
;
start
=
Extra
;
for
(
i
=
0
;
i
<
nChan
;
i
++
)
{
for
(
i
=
0
;
i
<
nChan
;
i
++
)
{
int
index
=
DoSwap
?
(
nChan
-
i
-
1
)
:
i
;
int
index
=
DoSwap
?
(
nChan
-
i
-
1
)
:
i
;
v
=
wOut
[
index
]
*
maximum
;
v
=
wOut
[
index
]
*
maximum
;
if
(
Reverse
)
if
(
Reverse
)
v
=
maximum
-
v
;
v
=
maximum
-
v
;
if
(
Planar
)
if
(
Planar
)
((
cmsFloat32Number
*
)
output
)[(
i
+
start
)
*
Stride
]
=
(
cmsFloat32Number
)
v
;
((
cmsFloat32Number
*
)
output
)[(
i
+
start
)
*
Stride
]
=
(
cmsFloat32Number
)
v
;
else
else
((
cmsFloat32Number
*
)
output
)[
i
+
start
]
=
(
cmsFloat32Number
)
v
;
((
cmsFloat32Number
*
)
output
)[
i
+
start
]
=
(
cmsFloat32Number
)
v
;
}
}
if
(
!
ExtraFirst
)
{
output
+=
Extra
*
sizeof
(
cmsFloat32Number
);
}
if
(
Extra
==
0
&&
SwapFirst
)
{
if
(
Extra
==
0
&&
SwapFirst
)
{
memmove
(
swap1
+
1
,
swap1
,
(
nChan
-
1
)
*
sizeof
(
cmsFloat32Number
));
memmove
(
swap1
+
1
,
swap1
,
(
nChan
-
1
)
*
sizeof
(
cmsFloat32Number
));
*
swap1
=
(
cmsFloat32Number
)
v
;
*
swap1
=
(
cmsFloat32Number
)
v
;
}
}
if
(
T_PLANAR
(
info
->
OutputFormat
))
if
(
T_PLANAR
(
info
->
OutputFormat
))
return
output
+
sizeof
(
cmsFloat32Number
);
return
output
+
sizeof
(
cmsFloat32Number
);
else
else
return
output
+
nChan
*
sizeof
(
cmsFloat32Number
);
return
output
+
(
nChan
+
Extra
)
*
sizeof
(
cmsFloat32Number
);
}
}
static
static
...
@@ -2570,51 +2561,47 @@ cmsUInt8Number* PackDoublesFromFloat(_cmsTRANSFORM* info,
...
@@ -2570,51 +2561,47 @@ cmsUInt8Number* PackDoublesFromFloat(_cmsTRANSFORM* info,
cmsUInt8Number
*
output
,
cmsUInt8Number
*
output
,
cmsUInt32Number
Stride
)
cmsUInt32Number
Stride
)
{
{
int
nChan
=
T_CHANNELS
(
info
->
OutputFormat
);
int
nChan
=
T_CHANNELS
(
info
->
OutputFormat
);
int
DoSwap
=
T_DOSWAP
(
info
->
OutputFormat
);
int
DoSwap
=
T_DOSWAP
(
info
->
OutputFormat
);
int
Reverse
=
T_FLAVOR
(
info
->
OutputFormat
);
int
Reverse
=
T_FLAVOR
(
info
->
OutputFormat
);
int
Extra
=
T_EXTRA
(
info
->
OutputFormat
);
int
Extra
=
T_EXTRA
(
info
->
OutputFormat
);
int
SwapFirst
=
T_SWAPFIRST
(
info
->
OutputFormat
);
int
SwapFirst
=
T_SWAPFIRST
(
info
->
OutputFormat
);
int
Planar
=
T_PLANAR
(
info
->
OutputFormat
);
int
Planar
=
T_PLANAR
(
info
->
OutputFormat
);
int
ExtraFirst
=
DoSwap
^
SwapFirst
;
int
ExtraFirst
=
DoSwap
^
SwapFirst
;
cmsFloat64Number
maximum
=
IsInkSpace
(
info
->
OutputFormat
)
?
100
.
0
:
1
.
0
;
cmsFloat64Number
maximum
=
IsInkSpace
(
info
->
OutputFormat
)
?
100
.
0
:
1
.
0
;
cmsFloat64Number
v
=
0
;
cmsFloat64Number
v
=
0
;
cmsFloat64Number
*
swap1
=
(
cmsFloat64Number
*
)
output
;
cmsFloat64Number
*
swap1
=
(
cmsFloat64Number
*
)
output
;
int
i
,
start
=
0
;
int
i
,
start
=
0
;
if
(
ExtraFirst
)
start
=
Extra
;
for
(
i
=
0
;
i
<
nChan
;
i
++
)
{
if
(
ExtraFirst
)
start
=
Extra
;
int
index
=
DoSwap
?
(
nChan
-
i
-
1
)
:
i
;
for
(
i
=
0
;
i
<
nChan
;
i
++
)
{
v
=
wOut
[
index
]
*
maximum
;
int
index
=
DoSwap
?
(
nChan
-
i
-
1
)
:
i
;
if
(
Reverse
)
v
=
wOut
[
index
]
*
maximum
;
v
=
maximum
-
v
;
if
(
Planar
)
if
(
Reverse
)
((
cmsFloat64Number
*
)
output
)[(
i
+
start
)
*
Stride
]
=
v
;
v
=
maximum
-
v
;
else
((
cmsFloat64Number
*
)
output
)[
i
+
start
]
=
v
;
}
if
(
!
ExtraFirst
)
{
if
(
Planar
)
output
+=
Extra
*
sizeof
(
cmsFloat64Number
);
((
cmsFloat64Number
*
)
output
)[(
i
+
start
)
*
Stride
]
=
v
;
}
else
((
cmsFloat64Number
*
)
output
)[
i
+
start
]
=
v
;
}
if
(
Extra
==
0
&&
SwapFirst
)
{
if
(
Extra
==
0
&&
SwapFirst
)
{
memmove
(
swap1
+
1
,
swap1
,
(
nChan
-
1
)
*
sizeof
(
cmsFloat64Number
));
memmove
(
swap1
+
1
,
swap1
,
(
nChan
-
1
)
*
sizeof
(
cmsFloat64Number
));
*
swap1
=
v
;
*
swap1
=
v
;
}
}
if
(
T_PLANAR
(
info
->
OutputFormat
))
if
(
T_PLANAR
(
info
->
OutputFormat
))
return
output
+
sizeof
(
cmsFloat64Number
);
return
output
+
sizeof
(
cmsFloat64Number
);
else
else
return
output
+
nChan
*
sizeof
(
cmsFloat64Number
);
return
output
+
(
nChan
+
Extra
)
*
sizeof
(
cmsFloat64Number
);
}
}
...
@@ -2850,50 +2837,47 @@ cmsUInt8Number* PackHalfFrom16(register _cmsTRANSFORM* info,
...
@@ -2850,50 +2837,47 @@ cmsUInt8Number* PackHalfFrom16(register _cmsTRANSFORM* info,
register
cmsUInt8Number
*
output
,
register
cmsUInt8Number
*
output
,
register
cmsUInt32Number
Stride
)
register
cmsUInt32Number
Stride
)
{
{
int
nChan
=
T_CHANNELS
(
info
->
OutputFormat
);
int
nChan
=
T_CHANNELS
(
info
->
OutputFormat
);
int
DoSwap
=
T_DOSWAP
(
info
->
OutputFormat
);
int
DoSwap
=
T_DOSWAP
(
info
->
OutputFormat
);
int
Reverse
=
T_FLAVOR
(
info
->
OutputFormat
);
int
Reverse
=
T_FLAVOR
(
info
->
OutputFormat
);
int
Extra
=
T_EXTRA
(
info
->
OutputFormat
);
int
Extra
=
T_EXTRA
(
info
->
OutputFormat
);
int
SwapFirst
=
T_SWAPFIRST
(
info
->
OutputFormat
);
int
SwapFirst
=
T_SWAPFIRST
(
info
->
OutputFormat
);
int
Planar
=
T_PLANAR
(
info
->
OutputFormat
);
int
Planar
=
T_PLANAR
(
info
->
OutputFormat
);
int
ExtraFirst
=
DoSwap
^
SwapFirst
;
int
ExtraFirst
=
DoSwap
^
SwapFirst
;
cmsFloat32Number
maximum
=
IsInkSpace
(
info
->
OutputFormat
)
?
655
.
35
F
:
65535
.
0
F
;
cmsFloat32Number
maximum
=
IsInkSpace
(
info
->
OutputFormat
)
?
655
.
35
F
:
65535
.
0
F
;
cmsFloat32Number
v
=
0
;
cmsFloat32Number
v
=
0
;
cmsUInt16Number
*
swap1
=
(
cmsUInt16Number
*
)
output
;
cmsUInt16Number
*
swap1
=
(
cmsUInt16Number
*
)
output
;
int
i
,
start
=
0
;
int
i
,
start
=
0
;
if
(
ExtraFirst
)
if
(
ExtraFirst
)
start
=
Extra
;
start
=
Extra
;
for
(
i
=
0
;
i
<
nChan
;
i
++
)
{
for
(
i
=
0
;
i
<
nChan
;
i
++
)
{
int
index
=
DoSwap
?
(
nChan
-
i
-
1
)
:
i
;
int
index
=
DoSwap
?
(
nChan
-
i
-
1
)
:
i
;
v
=
(
cmsFloat32Number
)
wOut
[
index
]
/
maximum
;
v
=
(
cmsFloat32Number
)
wOut
[
index
]
/
maximum
;
if
(
Reverse
)
if
(
Reverse
)
v
=
maximum
-
v
;
v
=
maximum
-
v
;
if
(
Planar
)
if
(
Planar
)
((
cmsUInt16Number
*
)
output
)[(
i
+
start
)
*
Stride
]
=
_cmsFloat2Half
(
v
);
((
cmsUInt16Number
*
)
output
)[(
i
+
start
)
*
Stride
]
=
_cmsFloat2Half
(
v
);
else
else
((
cmsUInt16Number
*
)
output
)[
i
+
start
]
=
_cmsFloat2Half
(
v
);
((
cmsUInt16Number
*
)
output
)[
i
+
start
]
=
_cmsFloat2Half
(
v
);
}
}
if
(
!
ExtraFirst
)
{
output
+=
Extra
*
sizeof
(
cmsUInt16Number
);
}
if
(
Extra
==
0
&&
SwapFirst
)
{
if
(
Extra
==
0
&&
SwapFirst
)
{
memmove
(
swap1
+
1
,
swap1
,
(
nChan
-
1
)
*
sizeof
(
cmsUInt16Number
));
memmove
(
swap1
+
1
,
swap1
,
(
nChan
-
1
)
*
sizeof
(
cmsUInt16Number
));
*
swap1
=
_cmsFloat2Half
(
v
);
*
swap1
=
_cmsFloat2Half
(
v
);
}
}
if
(
T_PLANAR
(
info
->
OutputFormat
))
if
(
T_PLANAR
(
info
->
OutputFormat
))
return
output
+
sizeof
(
cmsUInt16Number
);
return
output
+
sizeof
(
cmsUInt16Number
);
else
else
return
output
+
nChan
*
sizeof
(
cmsUInt16Number
);
return
output
+
(
nChan
+
Extra
)
*
sizeof
(
cmsUInt16Number
);
}
}
...
@@ -2904,50 +2888,47 @@ cmsUInt8Number* PackHalfFromFloat(_cmsTRANSFORM* info,
...
@@ -2904,50 +2888,47 @@ cmsUInt8Number* PackHalfFromFloat(_cmsTRANSFORM* info,
cmsUInt8Number
*
output
,
cmsUInt8Number
*
output
,
cmsUInt32Number
Stride
)
cmsUInt32Number
Stride
)
{
{
int
nChan
=
T_CHANNELS
(
info
->
OutputFormat
);
int
nChan
=
T_CHANNELS
(
info
->
OutputFormat
);
int
DoSwap
=
T_DOSWAP
(
info
->
OutputFormat
);
int
DoSwap
=
T_DOSWAP
(
info
->
OutputFormat
);
int
Reverse
=
T_FLAVOR
(
info
->
OutputFormat
);
int
Reverse
=
T_FLAVOR
(
info
->
OutputFormat
);
int
Extra
=
T_EXTRA
(
info
->
OutputFormat
);
int
Extra
=
T_EXTRA
(
info
->
OutputFormat
);
int
SwapFirst
=
T_SWAPFIRST
(
info
->
OutputFormat
);
int
SwapFirst
=
T_SWAPFIRST
(
info
->
OutputFormat
);
int
Planar
=
T_PLANAR
(
info
->
OutputFormat
);
int
Planar
=
T_PLANAR
(
info
->
OutputFormat
);
int
ExtraFirst
=
DoSwap
^
SwapFirst
;
int
ExtraFirst
=
DoSwap
^
SwapFirst
;
cmsFloat32Number
maximum
=
IsInkSpace
(
info
->
OutputFormat
)
?
100
.
0
F
:
1
.
0
F
;
cmsFloat32Number
maximum
=
IsInkSpace
(
info
->
OutputFormat
)
?
100
.
0
F
:
1
.
0
F
;
cmsUInt16Number
*
swap1
=
(
cmsUInt16Number
*
)
output
;
cmsUInt16Number
*
swap1
=
(
cmsUInt16Number
*
)
output
;
cmsFloat32Number
v
=
0
;
cmsFloat32Number
v
=
0
;
int
i
,
start
=
0
;
int
i
,
start
=
0
;
if
(
ExtraFirst
)
if
(
ExtraFirst
)
start
=
Extra
;
start
=
Extra
;
for
(
i
=
0
;
i
<
nChan
;
i
++
)
{
for
(
i
=
0
;
i
<
nChan
;
i
++
)
{
int
index
=
DoSwap
?
(
nChan
-
i
-
1
)
:
i
;
int
index
=
DoSwap
?
(
nChan
-
i
-
1
)
:
i
;
v
=
wOut
[
index
]
*
maximum
;
v
=
wOut
[
index
]
*
maximum
;
if
(
Reverse
)
if
(
Reverse
)
v
=
maximum
-
v
;
v
=
maximum
-
v
;
if
(
Planar
)
if
(
Planar
)
((
cmsUInt16Number
*
)
output
)[(
i
+
start
)
*
Stride
]
=
_cmsFloat2Half
(
v
);
((
cmsUInt16Number
*
)
output
)[(
i
+
start
)
*
Stride
]
=
_cmsFloat2Half
(
v
);
else
else
((
cmsUInt16Number
*
)
output
)[
i
+
start
]
=
_cmsFloat2Half
(
v
);
((
cmsUInt16Number
*
)
output
)[
i
+
start
]
=
_cmsFloat2Half
(
v
);
}
}
if
(
!
ExtraFirst
)
{
output
+=
Extra
*
sizeof
(
cmsUInt16Number
);
}
if
(
Extra
==
0
&&
SwapFirst
)
{
if
(
Extra
==
0
&&
SwapFirst
)
{
memmove
(
swap1
+
1
,
swap1
,
(
nChan
-
1
)
*
sizeof
(
cmsUInt16Number
));
memmove
(
swap1
+
1
,
swap1
,
(
nChan
-
1
)
*
sizeof
(
cmsUInt16Number
));
*
swap1
=
(
cmsUInt16Number
)
_cmsFloat2Half
(
v
);
*
swap1
=
(
cmsUInt16Number
)
_cmsFloat2Half
(
v
);
}
}
if
(
T_PLANAR
(
info
->
OutputFormat
))
if
(
T_PLANAR
(
info
->
OutputFormat
))
return
output
+
sizeof
(
cmsUInt16Number
);
return
output
+
sizeof
(
cmsUInt16Number
);
else
else
return
output
+
nChan
*
sizeof
(
cmsUInt16Number
);
return
output
+
(
nChan
+
Extra
)
*
sizeof
(
cmsUInt16Number
);
}
}
#endif
#endif
...
...
src/share/native/sun/java2d/cmm/lcms/cmspcs.c
浏览文件 @
6f02f9a3
...
@@ -135,6 +135,15 @@ void CMSEXPORT cmsxyY2XYZ(cmsCIEXYZ* Dest, const cmsCIExyY* Source)
...
@@ -135,6 +135,15 @@ void CMSEXPORT cmsxyY2XYZ(cmsCIEXYZ* Dest, const cmsCIExyY* Source)
Dest
->
Z
=
((
1
-
Source
->
x
-
Source
->
y
)
/
Source
->
y
)
*
Source
->
Y
;
Dest
->
Z
=
((
1
-
Source
->
x
-
Source
->
y
)
/
Source
->
y
)
*
Source
->
Y
;
}
}
/*
The break point (24/116)^3 = (6/29)^3 is a very small amount of tristimulus
primary (0.008856). Generally, this only happens for
nearly ideal blacks and for some orange / amber colors in transmission mode.
For example, the Z value of the orange turn indicator lamp lens on an
automobile will often be below this value. But the Z does not
contribute to the perceived color directly.
*/
static
static
cmsFloat64Number
f
(
cmsFloat64Number
t
)
cmsFloat64Number
f
(
cmsFloat64Number
t
)
{
{
...
...
src/share/native/sun/java2d/cmm/lcms/cmsplugin.c
浏览文件 @
6f02f9a3
...
@@ -712,15 +712,21 @@ struct _cmsContext_struct* _cmsGetContext(cmsContext ContextID)
...
@@ -712,15 +712,21 @@ struct _cmsContext_struct* _cmsGetContext(cmsContext ContextID)
// Internal: get the memory area associanted with each context client
// Internal: get the memory area associanted with each context client
// Returns the block assigned to the specific zone.
// Returns the block assigned to the specific zone.
Never return NULL.
void
*
_cmsContextGetClientChunk
(
cmsContext
ContextID
,
_cmsMemoryClient
mc
)
void
*
_cmsContextGetClientChunk
(
cmsContext
ContextID
,
_cmsMemoryClient
mc
)
{
{
struct
_cmsContext_struct
*
ctx
;
struct
_cmsContext_struct
*
ctx
;
void
*
ptr
;
void
*
ptr
;
if
(
mc
<
0
||
mc
>=
MemoryClientMax
)
{
if
((
int
)
mc
<
0
||
mc
>=
MemoryClientMax
)
{
cmsSignalError
(
ContextID
,
cmsERROR_RANGE
,
"Bad context client"
);
return
NULL
;
cmsSignalError
(
ContextID
,
cmsERROR_INTERNAL
,
"Bad context client -- possible corruption"
);
// This is catastrophic. Should never reach here
_cmsAssert
(
0
);
// Reverts to global context
return
globalContext
.
chunks
[
UserPtr
];
}
}
ctx
=
_cmsGetContext
(
ContextID
);
ctx
=
_cmsGetContext
(
ContextID
);
...
@@ -909,7 +915,7 @@ cmsContext CMSEXPORT cmsDupContext(cmsContext ContextID, void* NewUserData)
...
@@ -909,7 +915,7 @@ cmsContext CMSEXPORT cmsDupContext(cmsContext ContextID, void* NewUserData)
}
}
/*
static
static
struct _cmsContext_struct* FindPrev(struct _cmsContext_struct* id)
struct _cmsContext_struct* FindPrev(struct _cmsContext_struct* id)
{
{
...
@@ -926,6 +932,7 @@ struct _cmsContext_struct* FindPrev(struct _cmsContext_struct* id)
...
@@ -926,6 +932,7 @@ struct _cmsContext_struct* FindPrev(struct _cmsContext_struct* id)
return NULL; // List is empty or only one element!
return NULL; // List is empty or only one element!
}
}
*/
// Frees any resources associated with the given context,
// Frees any resources associated with the given context,
// and destroys the context placeholder.
// and destroys the context placeholder.
...
@@ -961,8 +968,8 @@ void CMSEXPORT cmsDeleteContext(cmsContext ContextID)
...
@@ -961,8 +968,8 @@ void CMSEXPORT cmsDeleteContext(cmsContext ContextID)
// Search for previous
// Search for previous
for
(
prev
=
_cmsContextPoolHead
;
for
(
prev
=
_cmsContextPoolHead
;
prev
!=
NULL
;
prev
!=
NULL
;
prev
=
prev
->
Next
)
prev
=
prev
->
Next
)
{
{
if
(
prev
->
Next
==
ctx
)
{
if
(
prev
->
Next
==
ctx
)
{
prev
->
Next
=
ctx
->
Next
;
prev
->
Next
=
ctx
->
Next
;
...
...
src/share/native/sun/java2d/cmm/lcms/cmssamp.c
浏览文件 @
6f02f9a3
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
//---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
//
//
// Little Color Management System
// Little Color Management System
// Copyright (c) 1998-201
0
Marti Maria Saguer
// Copyright (c) 1998-201
4
Marti Maria Saguer
//
//
// Permission is hereby granted, free of charge, to any person obtaining
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the "Software"),
// a copy of this software and associated documentation files (the "Software"),
...
@@ -369,28 +369,7 @@ cmsFloat64Number RootOfLeastSquaresFitQuadraticCurve(int n, cmsFloat64Number x[]
...
@@ -369,28 +369,7 @@ cmsFloat64Number RootOfLeastSquaresFitQuadraticCurve(int n, cmsFloat64Number x[]
}
}
/*
static
cmsBool IsMonotonic(int n, const cmsFloat64Number Table[])
{
int i;
cmsFloat64Number last;
last = Table[n-1];
for (i = n-2; i >= 0; --i) {
if (Table[i] > last)
return FALSE;
else
last = Table[i];
}
return TRUE;
}
*/
// Calculates the black point of a destination profile.
// Calculates the black point of a destination profile.
// This algorithm comes from the Adobe paper disclosing its black point compensation method.
// This algorithm comes from the Adobe paper disclosing its black point compensation method.
...
@@ -515,7 +494,6 @@ cmsBool CMSEXPORT cmsDetectDestinationBlackPoint(cmsCIEXYZ* BlackPoint, cmsHPROF
...
@@ -515,7 +494,6 @@ cmsBool CMSEXPORT cmsDetectDestinationBlackPoint(cmsCIEXYZ* BlackPoint, cmsHPROF
// Test for mid range straight (only on relative colorimetric)
// Test for mid range straight (only on relative colorimetric)
NearlyStraightMidrange
=
TRUE
;
NearlyStraightMidrange
=
TRUE
;
MinL
=
outRamp
[
0
];
MaxL
=
outRamp
[
255
];
MinL
=
outRamp
[
0
];
MaxL
=
outRamp
[
255
];
if
(
Intent
==
INTENT_RELATIVE_COLORIMETRIC
)
{
if
(
Intent
==
INTENT_RELATIVE_COLORIMETRIC
)
{
...
@@ -531,7 +509,6 @@ cmsBool CMSEXPORT cmsDetectDestinationBlackPoint(cmsCIEXYZ* BlackPoint, cmsHPROF
...
@@ -531,7 +509,6 @@ cmsBool CMSEXPORT cmsDetectDestinationBlackPoint(cmsCIEXYZ* BlackPoint, cmsHPROF
// DestinationBlackPoint shall be the same as initialLab.
// DestinationBlackPoint shall be the same as initialLab.
// Otherwise, the DestinationBlackPoint shall be determined
// Otherwise, the DestinationBlackPoint shall be determined
// using curve fitting.
// using curve fitting.
if
(
NearlyStraightMidrange
)
{
if
(
NearlyStraightMidrange
)
{
cmsLab2XYZ
(
NULL
,
BlackPoint
,
&
InitialLab
);
cmsLab2XYZ
(
NULL
,
BlackPoint
,
&
InitialLab
);
...
@@ -543,14 +520,12 @@ cmsBool CMSEXPORT cmsDetectDestinationBlackPoint(cmsCIEXYZ* BlackPoint, cmsHPROF
...
@@ -543,14 +520,12 @@ cmsBool CMSEXPORT cmsDetectDestinationBlackPoint(cmsCIEXYZ* BlackPoint, cmsHPROF
// curve fitting: The round-trip curve normally looks like a nearly constant section at the black point,
// curve fitting: The round-trip curve normally looks like a nearly constant section at the black point,
// with a corner and a nearly straight line to the white point.
// with a corner and a nearly straight line to the white point.
for
(
l
=
0
;
l
<
256
;
l
++
)
{
for
(
l
=
0
;
l
<
256
;
l
++
)
{
yRamp
[
l
]
=
(
outRamp
[
l
]
-
MinL
)
/
(
MaxL
-
MinL
);
yRamp
[
l
]
=
(
outRamp
[
l
]
-
MinL
)
/
(
MaxL
-
MinL
);
}
}
// find the black point using the least squares error quadratic curve fitting
// find the black point using the least squares error quadratic curve fitting
if
(
Intent
==
INTENT_RELATIVE_COLORIMETRIC
)
{
if
(
Intent
==
INTENT_RELATIVE_COLORIMETRIC
)
{
lo
=
0
.
1
;
lo
=
0
.
1
;
hi
=
0
.
5
;
hi
=
0
.
5
;
...
...
src/share/native/sun/java2d/cmm/lcms/cmstypes.c
浏览文件 @
6f02f9a3
...
@@ -1718,10 +1718,7 @@ cmsBool Write8bitTables(cmsContext ContextID, cmsIOHANDLER* io, cmsUInt32Number
...
@@ -1718,10 +1718,7 @@ cmsBool Write8bitTables(cmsContext ContextID, cmsIOHANDLER* io, cmsUInt32Number
else
else
for
(
j
=
0
;
j
<
256
;
j
++
)
{
for
(
j
=
0
;
j
<
256
;
j
++
)
{
if
(
Tables
!=
NULL
)
val
=
(
cmsUInt8Number
)
FROM_16_TO_8
(
Tables
->
TheCurves
[
i
]
->
Table16
[
j
]);
val
=
(
cmsUInt8Number
)
FROM_16_TO_8
(
Tables
->
TheCurves
[
i
]
->
Table16
[
j
]);
else
val
=
(
cmsUInt8Number
)
j
;
if
(
!
_cmsWriteUInt8Number
(
io
,
val
))
return
FALSE
;
if
(
!
_cmsWriteUInt8Number
(
io
,
val
))
return
FALSE
;
}
}
...
...
src/share/native/sun/java2d/cmm/lcms/cmsvirt.c
浏览文件 @
6f02f9a3
...
@@ -671,7 +671,7 @@ cmsToneCurve* Build_sRGBGamma(cmsContext ContextID)
...
@@ -671,7 +671,7 @@ cmsToneCurve* Build_sRGBGamma(cmsContext ContextID)
// Create the ICC virtual profile for sRGB space
// Create the ICC virtual profile for sRGB space
cmsHPROFILE
CMSEXPORT
cmsCreate_sRGBProfileTHR
(
cmsContext
ContextID
)
cmsHPROFILE
CMSEXPORT
cmsCreate_sRGBProfileTHR
(
cmsContext
ContextID
)
{
{
cmsCIExyY
D65
;
cmsCIExyY
D65
=
{
0
.
3127
,
0
.
3290
,
1
.
0
}
;
cmsCIExyYTRIPLE
Rec709Primaries
=
{
cmsCIExyYTRIPLE
Rec709Primaries
=
{
{
0
.
6400
,
0
.
3300
,
1
.
0
},
{
0
.
6400
,
0
.
3300
,
1
.
0
},
{
0
.
3000
,
0
.
6000
,
1
.
0
},
{
0
.
3000
,
0
.
6000
,
1
.
0
},
...
@@ -680,7 +680,7 @@ cmsHPROFILE CMSEXPORT cmsCreate_sRGBProfileTHR(cmsContext ContextID)
...
@@ -680,7 +680,7 @@ cmsHPROFILE CMSEXPORT cmsCreate_sRGBProfileTHR(cmsContext ContextID)
cmsToneCurve
*
Gamma22
[
3
];
cmsToneCurve
*
Gamma22
[
3
];
cmsHPROFILE
hsRGB
;
cmsHPROFILE
hsRGB
;
cmsWhitePointFromTemp
(
&
D65
,
6504
);
//
cmsWhitePointFromTemp(&D65, 6504);
Gamma22
[
0
]
=
Gamma22
[
1
]
=
Gamma22
[
2
]
=
Build_sRGBGamma
(
ContextID
);
Gamma22
[
0
]
=
Gamma22
[
1
]
=
Gamma22
[
2
]
=
Build_sRGBGamma
(
ContextID
);
if
(
Gamma22
[
0
]
==
NULL
)
return
NULL
;
if
(
Gamma22
[
0
]
==
NULL
)
return
NULL
;
...
@@ -708,6 +708,7 @@ typedef struct {
...
@@ -708,6 +708,7 @@ typedef struct {
cmsFloat64Number
Contrast
;
cmsFloat64Number
Contrast
;
cmsFloat64Number
Hue
;
cmsFloat64Number
Hue
;
cmsFloat64Number
Saturation
;
cmsFloat64Number
Saturation
;
cmsBool
lAdjustWP
;
cmsCIEXYZ
WPsrc
,
WPdest
;
cmsCIEXYZ
WPsrc
,
WPdest
;
}
BCHSWADJUSTS
,
*
LPBCHSWADJUSTS
;
}
BCHSWADJUSTS
,
*
LPBCHSWADJUSTS
;
...
@@ -737,9 +738,10 @@ int bchswSampler(register const cmsUInt16Number In[], register cmsUInt16Number O
...
@@ -737,9 +738,10 @@ int bchswSampler(register const cmsUInt16Number In[], register cmsUInt16Number O
cmsLCh2Lab
(
&
LabOut
,
&
LChOut
);
cmsLCh2Lab
(
&
LabOut
,
&
LChOut
);
// Move white point in Lab
// Move white point in Lab
if
(
bchsw
->
lAdjustWP
)
{
cmsLab2XYZ
(
&
bchsw
->
WPsrc
,
&
XYZ
,
&
LabOut
);
cmsLab2XYZ
(
&
bchsw
->
WPsrc
,
&
XYZ
,
&
LabOut
);
cmsXYZ2Lab
(
&
bchsw
->
WPdest
,
&
LabOut
,
&
XYZ
);
cmsXYZ2Lab
(
&
bchsw
->
WPdest
,
&
LabOut
,
&
XYZ
);
}
// Back to encoded
// Back to encoded
...
@@ -773,18 +775,23 @@ cmsHPROFILE CMSEXPORT cmsCreateBCHSWabstractProfileTHR(cmsContext ContextID,
...
@@ -773,18 +775,23 @@ cmsHPROFILE CMSEXPORT cmsCreateBCHSWabstractProfileTHR(cmsContext ContextID,
bchsw
.
Contrast
=
Contrast
;
bchsw
.
Contrast
=
Contrast
;
bchsw
.
Hue
=
Hue
;
bchsw
.
Hue
=
Hue
;
bchsw
.
Saturation
=
Saturation
;
bchsw
.
Saturation
=
Saturation
;
if
(
TempSrc
==
TempDest
)
{
cmsWhitePointFromTemp
(
&
WhitePnt
,
TempSrc
);
bchsw
.
lAdjustWP
=
FALSE
;
cmsxyY2XYZ
(
&
bchsw
.
WPsrc
,
&
WhitePnt
);
}
else
{
bchsw
.
lAdjustWP
=
TRUE
;
cmsWhitePointFromTemp
(
&
WhitePnt
,
TempSrc
);
cmsxyY2XYZ
(
&
bchsw
.
WPsrc
,
&
WhitePnt
);
cmsWhitePointFromTemp
(
&
WhitePnt
,
TempDest
);
cmsxyY2XYZ
(
&
bchsw
.
WPdest
,
&
WhitePnt
);
cmsWhitePointFromTemp
(
&
WhitePnt
,
TempDest
);
}
cmsxyY2XYZ
(
&
bchsw
.
WPdest
,
&
WhitePnt
);
hICC
=
cmsCreateProfilePlaceholder
(
ContextID
);
hICC
=
cmsCreateProfilePlaceholder
(
ContextID
);
if
(
!
hICC
)
// can't allocate
if
(
!
hICC
)
// can't allocate
return
NULL
;
return
NULL
;
cmsSetDeviceClass
(
hICC
,
cmsSigAbstractClass
);
cmsSetDeviceClass
(
hICC
,
cmsSigAbstractClass
);
cmsSetColorSpace
(
hICC
,
cmsSigLabData
);
cmsSetColorSpace
(
hICC
,
cmsSigLabData
);
cmsSetPCS
(
hICC
,
cmsSigLabData
);
cmsSetPCS
(
hICC
,
cmsSigLabData
);
...
@@ -1017,12 +1024,14 @@ typedef struct {
...
@@ -1017,12 +1024,14 @@ typedef struct {
}
cmsAllowedLUT
;
}
cmsAllowedLUT
;
#define cmsSig0 ((cmsTagSignature) 0)
static
const
cmsAllowedLUT
AllowedLUTTypes
[]
=
{
static
const
cmsAllowedLUT
AllowedLUTTypes
[]
=
{
{
FALSE
,
0
,
cmsSigLut16Type
,
4
,
{
cmsSigMatrixElemType
,
cmsSigCurveSetElemType
,
cmsSigCLutElemType
,
cmsSigCurveSetElemType
}
},
{
FALSE
,
cmsSig0
,
cmsSigLut16Type
,
4
,
{
cmsSigMatrixElemType
,
cmsSigCurveSetElemType
,
cmsSigCLutElemType
,
cmsSigCurveSetElemType
}
},
{
FALSE
,
0
,
cmsSigLut16Type
,
3
,
{
cmsSigCurveSetElemType
,
cmsSigCLutElemType
,
cmsSigCurveSetElemType
}
},
{
FALSE
,
cmsSig0
,
cmsSigLut16Type
,
3
,
{
cmsSigCurveSetElemType
,
cmsSigCLutElemType
,
cmsSigCurveSetElemType
}
},
{
FALSE
,
0
,
cmsSigLut16Type
,
2
,
{
cmsSigCurveSetElemType
,
cmsSigCLutElemType
}
},
{
FALSE
,
cmsSig0
,
cmsSigLut16Type
,
2
,
{
cmsSigCurveSetElemType
,
cmsSigCLutElemType
}
},
{
TRUE
,
0
,
cmsSigLutAtoBType
,
1
,
{
cmsSigCurveSetElemType
}
},
{
TRUE
,
cmsSig0
,
cmsSigLutAtoBType
,
1
,
{
cmsSigCurveSetElemType
}
},
{
TRUE
,
cmsSigAToB0Tag
,
cmsSigLutAtoBType
,
3
,
{
cmsSigCurveSetElemType
,
cmsSigMatrixElemType
,
cmsSigCurveSetElemType
}
},
{
TRUE
,
cmsSigAToB0Tag
,
cmsSigLutAtoBType
,
3
,
{
cmsSigCurveSetElemType
,
cmsSigMatrixElemType
,
cmsSigCurveSetElemType
}
},
{
TRUE
,
cmsSigAToB0Tag
,
cmsSigLutAtoBType
,
3
,
{
cmsSigCurveSetElemType
,
cmsSigCLutElemType
,
cmsSigCurveSetElemType
}
},
{
TRUE
,
cmsSigAToB0Tag
,
cmsSigLutAtoBType
,
3
,
{
cmsSigCurveSetElemType
,
cmsSigCLutElemType
,
cmsSigCurveSetElemType
}
},
{
TRUE
,
cmsSigAToB0Tag
,
cmsSigLutAtoBType
,
5
,
{
cmsSigCurveSetElemType
,
cmsSigCLutElemType
,
cmsSigCurveSetElemType
,
cmsSigMatrixElemType
,
cmsSigCurveSetElemType
}},
{
TRUE
,
cmsSigAToB0Tag
,
cmsSigLutAtoBType
,
5
,
{
cmsSigCurveSetElemType
,
cmsSigCLutElemType
,
cmsSigCurveSetElemType
,
cmsSigMatrixElemType
,
cmsSigCurveSetElemType
}},
...
...
src/share/native/sun/java2d/cmm/lcms/cmsxform.c
浏览文件 @
6f02f9a3
...
@@ -621,46 +621,48 @@ _cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut,
...
@@ -621,46 +621,48 @@ _cmsTRANSFORM* AllocEmptyTransform(cmsContext ContextID, cmsPipeline* lut,
_cmsTransformPluginChunkType
*
ctx
=
(
_cmsTransformPluginChunkType
*
)
_cmsContextGetClientChunk
(
ContextID
,
TransformPlugin
);
_cmsTransformPluginChunkType
*
ctx
=
(
_cmsTransformPluginChunkType
*
)
_cmsContextGetClientChunk
(
ContextID
,
TransformPlugin
);
_cmsTransformCollection
*
Plugin
;
_cmsTransformCollection
*
Plugin
;
// Allocate needed memory
// Allocate needed memory
_cmsTRANSFORM
*
p
=
(
_cmsTRANSFORM
*
)
_cmsMallocZero
(
ContextID
,
sizeof
(
_cmsTRANSFORM
));
_cmsTRANSFORM
*
p
=
(
_cmsTRANSFORM
*
)
_cmsMallocZero
(
ContextID
,
sizeof
(
_cmsTRANSFORM
));
if
(
!
p
)
return
NULL
;
if
(
!
p
)
return
NULL
;
// Store the proposed pipeline
// Store the proposed pipeline
p
->
Lut
=
lut
;
p
->
Lut
=
lut
;
// Let's see if any plug-in want to do the transform by itself
// Let's see if any plug-in want to do the transform by itself
for
(
Plugin
=
ctx
->
TransformCollection
;
if
(
p
->
Lut
!=
NULL
)
{
Plugin
!=
NULL
;
Plugin
=
Plugin
->
Next
)
{
for
(
Plugin
=
ctx
->
TransformCollection
;
Plugin
!=
NULL
;
if
(
Plugin
->
Factory
(
&
p
->
xform
,
&
p
->
UserData
,
&
p
->
FreeUserData
,
&
p
->
Lut
,
InputFormat
,
OutputFormat
,
dwFlags
))
{
Plugin
=
Plugin
->
Next
)
{
// Last plugin in the declaration order takes control. We just keep
if
(
Plugin
->
Factory
(
&
p
->
xform
,
&
p
->
UserData
,
&
p
->
FreeUserData
,
&
p
->
Lut
,
InputFormat
,
OutputFormat
,
dwFlags
))
{
// the original parameters as a logging.
// Note that cmsFLAGS_CAN_CHANGE_FORMATTER is not set, so by default
// Last plugin in the declaration order takes control. We just keep
// an optimized transform is not reusable. The plug-in can, however, change
// the original parameters as a logging.
// the flags and make it suitable.
// Note that cmsFLAGS_CAN_CHANGE_FORMATTER is not set, so by default
// an optimized transform is not reusable. The plug-in can, however, change
p
->
ContextID
=
ContextID
;
// the flags and make it suitable.
p
->
InputFormat
=
*
InputFormat
;
p
->
OutputFormat
=
*
OutputFormat
;
p
->
ContextID
=
ContextID
;
p
->
dwOriginalFlags
=
*
dwFlags
;
p
->
InputFormat
=
*
InputFormat
;
p
->
OutputFormat
=
*
OutputFormat
;
// Fill the formatters just in case the optimized routine is interested.
p
->
dwOriginalFlags
=
*
dwFlags
;
// No error is thrown if the formatter doesn't exist. It is up to the optimization
// factory to decide what to do in those cases.
// Fill the formatters just in case the optimized routine is interested.
p
->
FromInput
=
_cmsGetFormatter
(
ContextID
,
*
InputFormat
,
cmsFormatterInput
,
CMS_PACK_FLAGS_16BITS
).
Fmt16
;
// No error is thrown if the formatter doesn't exist. It is up to the optimization
p
->
ToOutput
=
_cmsGetFormatter
(
ContextID
,
*
OutputFormat
,
cmsFormatterOutput
,
CMS_PACK_FLAGS_16BITS
).
Fmt16
;
// factory to decide what to do in those cases.
p
->
FromInputFloat
=
_cmsGetFormatter
(
ContextID
,
*
InputFormat
,
cmsFormatterInput
,
CMS_PACK_FLAGS_FLOAT
).
FmtFloat
;
p
->
FromInput
=
_cmsGetFormatter
(
ContextID
,
*
InputFormat
,
cmsFormatterInput
,
CMS_PACK_FLAGS_16BITS
).
Fmt16
;
p
->
ToOutputFloat
=
_cmsGetFormatter
(
ContextID
,
*
OutputFormat
,
cmsFormatterOutput
,
CMS_PACK_FLAGS_FLOAT
).
FmtFloat
;
p
->
ToOutput
=
_cmsGetFormatter
(
ContextID
,
*
OutputFormat
,
cmsFormatterOutput
,
CMS_PACK_FLAGS_16BITS
).
Fmt16
;
p
->
FromInputFloat
=
_cmsGetFormatter
(
ContextID
,
*
InputFormat
,
cmsFormatterInput
,
CMS_PACK_FLAGS_FLOAT
).
FmtFloat
;
return
p
;
p
->
ToOutputFloat
=
_cmsGetFormatter
(
ContextID
,
*
OutputFormat
,
cmsFormatterOutput
,
CMS_PACK_FLAGS_FLOAT
).
FmtFloat
;
}
}
return
p
;
}
// Not suitable for the transform plug-in, let's check the pipeline plug-in
}
if
(
p
->
Lut
!=
NULL
)
_cmsOptimizePipeline
(
ContextID
,
&
p
->
Lut
,
Intent
,
InputFormat
,
OutputFormat
,
dwFlags
);
// Not suitable for the transform plug-in, let's check the pipeline plug-in
_cmsOptimizePipeline
(
ContextID
,
&
p
->
Lut
,
Intent
,
InputFormat
,
OutputFormat
,
dwFlags
);
}
// Check whatever this is a true floating point transform
// Check whatever this is a true floating point transform
if
(
_cmsFormatterIsFloat
(
*
InputFormat
)
&&
_cmsFormatterIsFloat
(
*
OutputFormat
))
{
if
(
_cmsFormatterIsFloat
(
*
InputFormat
)
&&
_cmsFormatterIsFloat
(
*
OutputFormat
))
{
...
...
src/share/native/sun/java2d/cmm/lcms/lcms2.h
浏览文件 @
6f02f9a3
...
@@ -52,7 +52,7 @@
...
@@ -52,7 +52,7 @@
//
//
//---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
//
//
// Version 2.
6
// Version 2.
7
//
//
#ifndef _lcms2_H
#ifndef _lcms2_H
...
@@ -104,7 +104,7 @@ extern "C" {
...
@@ -104,7 +104,7 @@ extern "C" {
#endif
#endif
// Version/release
// Version/release
#define LCMS_VERSION 20
6
0
#define LCMS_VERSION 20
7
0
// I will give the chance of redefining basic types for compilers that are not fully C99 compliant
// I will give the chance of redefining basic types for compilers that are not fully C99 compliant
#ifndef CMS_BASIC_TYPES_ALREADY_DEFINED
#ifndef CMS_BASIC_TYPES_ALREADY_DEFINED
...
@@ -213,27 +213,19 @@ typedef int cmsBool;
...
@@ -213,27 +213,19 @@ typedef int cmsBool;
# define CMS_USE_BIG_ENDIAN 1
# define CMS_USE_BIG_ENDIAN 1
#endif
#endif
# ifdef TARGET_CPU_PPC
# if TARGET_CPU_PPC
# define CMS_USE_BIG_ENDIAN 1
# endif
# endif
#if defined(__powerpc__) || defined(__ppc__) || defined(TARGET_CPU_PPC)
#if defined(__powerpc__) || defined(__ppc__) || defined(TARGET_CPU_PPC)
# if __powerpc__ || __ppc__ || TARGET_CPU_PPC
# define CMS_USE_BIG_ENDIAN 1
# define CMS_USE_BIG_ENDIAN 1
# if defined (__GNUC__) && defined(__BYTE_ORDER
) && defined(__LITTLE_ENDIAN
)
# if defined (__GNUC__) && defined(__BYTE_ORDER
__) && defined(__ORDER_LITTLE_ENDIAN__
)
# if __BYTE_ORDER
== __LITTLE_ENDIAN
# if __BYTE_ORDER
__ == __ORDER_LITTLE_ENDIAN__
//
// Don't use big endian for PowerPC little endian mode
// Don't use big endian for PowerPC little endian mode
# undef CMS_USE_BIG_ENDIAN
# undef CMS_USE_BIG_ENDIAN
# endif
# endif
# endif
# endif
# endif
#endif
#endif
// WORDS_BIGENDIAN takes precedence
#if defined(_HOST_BIG_ENDIAN) || defined(__BIG_ENDIAN__) || defined(WORDS_BIGENDIAN)
# define CMS_USE_BIG_ENDIAN 1
#endif
#ifdef macintosh
#ifdef macintosh
# ifdef __BIG_ENDIAN__
# ifdef __BIG_ENDIAN__
# define CMS_USE_BIG_ENDIAN 1
# define CMS_USE_BIG_ENDIAN 1
...
@@ -243,6 +235,12 @@ typedef int cmsBool;
...
@@ -243,6 +235,12 @@ typedef int cmsBool;
# endif
# endif
#endif
#endif
// WORDS_BIGENDIAN takes precedence
#if defined(_HOST_BIG_ENDIAN) || defined(__BIG_ENDIAN__) || defined(WORDS_BIGENDIAN)
# define CMS_USE_BIG_ENDIAN 1
#endif
// Calling convention -- this is hardly platform and compiler dependent
// Calling convention -- this is hardly platform and compiler dependent
#ifdef CMS_IS_WINDOWS_
#ifdef CMS_IS_WINDOWS_
# if defined(CMS_DLL) || defined(CMS_DLL_BUILD)
# if defined(CMS_DLL) || defined(CMS_DLL_BUILD)
...
@@ -553,7 +551,8 @@ typedef enum {
...
@@ -553,7 +551,8 @@ typedef enum {
cmsSigLab2FloatPCS
=
0x64326C20
,
// 'd2l '
cmsSigLab2FloatPCS
=
0x64326C20
,
// 'd2l '
cmsSigFloatPCS2Lab
=
0x6C326420
,
// 'l2d '
cmsSigFloatPCS2Lab
=
0x6C326420
,
// 'l2d '
cmsSigXYZ2FloatPCS
=
0x64327820
,
// 'd2x '
cmsSigXYZ2FloatPCS
=
0x64327820
,
// 'd2x '
cmsSigFloatPCS2XYZ
=
0x78326420
// 'x2d '
cmsSigFloatPCS2XYZ
=
0x78326420
,
// 'x2d '
cmsSigClipNegativesElemType
=
0x636c7020
// 'clp '
}
cmsStageSignature
;
}
cmsStageSignature
;
...
@@ -1031,6 +1030,10 @@ typedef struct {
...
@@ -1031,6 +1030,10 @@ typedef struct {
}
cmsICCViewingConditions
;
}
cmsICCViewingConditions
;
// Get LittleCMS version (for shared objects) -----------------------------------------------------------------------------
CMSAPI
int
CMSEXPORT
cmsGetEncodedCMMversion
(
void
);
// Support of non-standard functions --------------------------------------------------------------------------------------
// Support of non-standard functions --------------------------------------------------------------------------------------
CMSAPI
int
CMSEXPORT
cmsstrcasecmp
(
const
char
*
s1
,
const
char
*
s2
);
CMSAPI
int
CMSEXPORT
cmsstrcasecmp
(
const
char
*
s1
,
const
char
*
s2
);
...
@@ -1509,7 +1512,7 @@ CMSAPI int CMSEXPORT _cmsLCMScolorSpace(cmsColorSpaceSignat
...
@@ -1509,7 +1512,7 @@ CMSAPI int CMSEXPORT _cmsLCMScolorSpace(cmsColorSpaceSignat
CMSAPI
cmsUInt32Number
CMSEXPORT
cmsChannelsOf
(
cmsColorSpaceSignature
ColorSpace
);
CMSAPI
cmsUInt32Number
CMSEXPORT
cmsChannelsOf
(
cmsColorSpaceSignature
ColorSpace
);
// Build a suitable formatter for the colorspace of this profile
// Build a suitable formatter for the colorspace of this profile
. nBytes=1 means 8 bits, nBytes=2 means 16 bits.
CMSAPI
cmsUInt32Number
CMSEXPORT
cmsFormatterForColorspaceOfProfile
(
cmsHPROFILE
hProfile
,
cmsUInt32Number
nBytes
,
cmsBool
lIsFloat
);
CMSAPI
cmsUInt32Number
CMSEXPORT
cmsFormatterForColorspaceOfProfile
(
cmsHPROFILE
hProfile
,
cmsUInt32Number
nBytes
,
cmsBool
lIsFloat
);
CMSAPI
cmsUInt32Number
CMSEXPORT
cmsFormatterForPCSOfProfile
(
cmsHPROFILE
hProfile
,
cmsUInt32Number
nBytes
,
cmsBool
lIsFloat
);
CMSAPI
cmsUInt32Number
CMSEXPORT
cmsFormatterForPCSOfProfile
(
cmsHPROFILE
hProfile
,
cmsUInt32Number
nBytes
,
cmsBool
lIsFloat
);
...
@@ -1538,6 +1541,7 @@ CMSAPI cmsIOHANDLER* CMSEXPORT cmsOpenIOhandlerFromFile(cmsContext ContextID
...
@@ -1538,6 +1541,7 @@ CMSAPI cmsIOHANDLER* CMSEXPORT cmsOpenIOhandlerFromFile(cmsContext ContextID
CMSAPI
cmsIOHANDLER
*
CMSEXPORT
cmsOpenIOhandlerFromStream
(
cmsContext
ContextID
,
FILE
*
Stream
);
CMSAPI
cmsIOHANDLER
*
CMSEXPORT
cmsOpenIOhandlerFromStream
(
cmsContext
ContextID
,
FILE
*
Stream
);
CMSAPI
cmsIOHANDLER
*
CMSEXPORT
cmsOpenIOhandlerFromMem
(
cmsContext
ContextID
,
void
*
Buffer
,
cmsUInt32Number
size
,
const
char
*
AccessMode
);
CMSAPI
cmsIOHANDLER
*
CMSEXPORT
cmsOpenIOhandlerFromMem
(
cmsContext
ContextID
,
void
*
Buffer
,
cmsUInt32Number
size
,
const
char
*
AccessMode
);
CMSAPI
cmsIOHANDLER
*
CMSEXPORT
cmsOpenIOhandlerFromNULL
(
cmsContext
ContextID
);
CMSAPI
cmsIOHANDLER
*
CMSEXPORT
cmsOpenIOhandlerFromNULL
(
cmsContext
ContextID
);
CMSAPI
cmsIOHANDLER
*
CMSEXPORT
cmsGetProfileIOhandler
(
cmsHPROFILE
hProfile
);
CMSAPI
cmsBool
CMSEXPORT
cmsCloseIOhandler
(
cmsIOHANDLER
*
io
);
CMSAPI
cmsBool
CMSEXPORT
cmsCloseIOhandler
(
cmsIOHANDLER
*
io
);
// MD5 message digest --------------------------------------------------------------------------------------------------
// MD5 message digest --------------------------------------------------------------------------------------------------
...
@@ -1672,6 +1676,10 @@ CMSAPI cmsUInt32Number CMSEXPORT cmsGetSupportedIntentsTHR(cmsContext ContextID
...
@@ -1672,6 +1676,10 @@ CMSAPI cmsUInt32Number CMSEXPORT cmsGetSupportedIntentsTHR(cmsContext ContextID
#define cmsFLAGS_CLUT_POST_LINEARIZATION 0x0001 // create postlinearization tables if possible
#define cmsFLAGS_CLUT_POST_LINEARIZATION 0x0001 // create postlinearization tables if possible
#define cmsFLAGS_CLUT_PRE_LINEARIZATION 0x0010 // create prelinearization tables if possible
#define cmsFLAGS_CLUT_PRE_LINEARIZATION 0x0010 // create prelinearization tables if possible
// Specific to unbounded mode
#define cmsFLAGS_NONEGATIVES 0x8000 // Prevent negative numbers in floating point transforms
// Fine-tune control over number of gridpoints
// Fine-tune control over number of gridpoints
#define cmsFLAGS_GRIDPOINTS(n) (((n) & 0xFF) << 16)
#define cmsFLAGS_GRIDPOINTS(n) (((n) & 0xFF) << 16)
...
...
src/share/native/sun/java2d/cmm/lcms/lcms2_internal.h
浏览文件 @
6f02f9a3
...
@@ -223,11 +223,17 @@ cmsINLINE cmsUInt16Number _cmsQuickSaturateWord(cmsFloat64Number d)
...
@@ -223,11 +223,17 @@ cmsINLINE cmsUInt16Number _cmsQuickSaturateWord(cmsFloat64Number d)
// Microsoft felt that it was necessary to keep it set at -1 for an unlocked critical
// Microsoft felt that it was necessary to keep it set at -1 for an unlocked critical
// section, even when they changed the underlying algorithm to be more scalable.
// section, even when they changed the underlying algorithm to be more scalable.
// The final parts of the critical section object are unimportant, and can be set
// The final parts of the critical section object are unimportant, and can be set
// to zero for their defaults. This yields an initialization macro:
// to zero for their defaults. This yields
to
an initialization macro:
typedef
CRITICAL_SECTION
_cmsMutex
;
typedef
CRITICAL_SECTION
_cmsMutex
;
#define CMS_MUTEX_INITIALIZER {(void*) -1,-1,0,0,0,0}
#define CMS_MUTEX_INITIALIZER {(PRTL_CRITICAL_SECTION_DEBUG) -1,-1,0,0,0,0}
#ifdef _MSC_VER
# if (_MSC_VER >= 1800)
# pragma warning(disable : 26135)
# endif
#endif
cmsINLINE
int
_cmsLockPrimitive
(
_cmsMutex
*
m
)
cmsINLINE
int
_cmsLockPrimitive
(
_cmsMutex
*
m
)
{
{
...
@@ -313,38 +319,38 @@ typedef int _cmsMutex;
...
@@ -313,38 +319,38 @@ typedef int _cmsMutex;
cmsINLINE
int
_cmsLockPrimitive
(
_cmsMutex
*
m
)
cmsINLINE
int
_cmsLockPrimitive
(
_cmsMutex
*
m
)
{
{
return
0
;
cmsUNUSED_PARAMETER
(
m
);
cmsUNUSED_PARAMETER
(
m
);
return
0
;
}
}
cmsINLINE
int
_cmsUnlockPrimitive
(
_cmsMutex
*
m
)
cmsINLINE
int
_cmsUnlockPrimitive
(
_cmsMutex
*
m
)
{
{
return
0
;
cmsUNUSED_PARAMETER
(
m
);
cmsUNUSED_PARAMETER
(
m
);
return
0
;
}
}
cmsINLINE
int
_cmsInitMutexPrimitive
(
_cmsMutex
*
m
)
cmsINLINE
int
_cmsInitMutexPrimitive
(
_cmsMutex
*
m
)
{
{
return
0
;
cmsUNUSED_PARAMETER
(
m
);
cmsUNUSED_PARAMETER
(
m
);
return
0
;
}
}
cmsINLINE
int
_cmsDestroyMutexPrimitive
(
_cmsMutex
*
m
)
cmsINLINE
int
_cmsDestroyMutexPrimitive
(
_cmsMutex
*
m
)
{
{
return
0
;
cmsUNUSED_PARAMETER
(
m
);
cmsUNUSED_PARAMETER
(
m
);
return
0
;
}
}
cmsINLINE
int
_cmsEnterCriticalSectionPrimitive
(
_cmsMutex
*
m
)
cmsINLINE
int
_cmsEnterCriticalSectionPrimitive
(
_cmsMutex
*
m
)
{
{
return
0
;
cmsUNUSED_PARAMETER
(
m
);
cmsUNUSED_PARAMETER
(
m
);
return
0
;
}
}
cmsINLINE
int
_cmsLeaveCriticalSectionPrimitive
(
_cmsMutex
*
m
)
cmsINLINE
int
_cmsLeaveCriticalSectionPrimitive
(
_cmsMutex
*
m
)
{
{
return
0
;
cmsUNUSED_PARAMETER
(
m
);
cmsUNUSED_PARAMETER
(
m
);
return
0
;
}
}
#endif
#endif
...
@@ -852,6 +858,8 @@ cmsStage* _cmsStageNormalizeFromLabFloat(cmsContext ContextID);
...
@@ -852,6 +858,8 @@ cmsStage* _cmsStageNormalizeFromLabFloat(cmsContext ContextID);
cmsStage
*
_cmsStageNormalizeFromXyzFloat
(
cmsContext
ContextID
);
cmsStage
*
_cmsStageNormalizeFromXyzFloat
(
cmsContext
ContextID
);
cmsStage
*
_cmsStageNormalizeToLabFloat
(
cmsContext
ContextID
);
cmsStage
*
_cmsStageNormalizeToLabFloat
(
cmsContext
ContextID
);
cmsStage
*
_cmsStageNormalizeToXyzFloat
(
cmsContext
ContextID
);
cmsStage
*
_cmsStageNormalizeToXyzFloat
(
cmsContext
ContextID
);
cmsStage
*
_cmsStageClipNegatives
(
cmsContext
ContextID
,
int
nChannels
);
// For curve set only
// For curve set only
cmsToneCurve
**
_cmsStageGetPtrToCurveSet
(
const
cmsStage
*
mpe
);
cmsToneCurve
**
_cmsStageGetPtrToCurveSet
(
const
cmsStage
*
mpe
);
...
...
src/solaris/classes/sun/java2d/xr/XRSolidSrcPict.java
浏览文件 @
6f02f9a3
/*
/*
* Copyright (c) 2013, 2014 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
src/solaris/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java
浏览文件 @
6f02f9a3
/*
/*
* Copyright (c) 2012, 2014 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2014
,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
...
src/windows/native/sun/windows/awt_TrayIcon.cpp
浏览文件 @
6f02f9a3
...
@@ -709,7 +709,7 @@ void AwtTrayIcon::SetToolTip(LPCTSTR tooltip)
...
@@ -709,7 +709,7 @@ void AwtTrayIcon::SetToolTip(LPCTSTR tooltip)
{
{
if
(
tooltip
==
NULL
)
{
if
(
tooltip
==
NULL
)
{
m_nid
.
szTip
[
0
]
=
'\0'
;
m_nid
.
szTip
[
0
]
=
'\0'
;
}
else
if
(
lstrlen
(
tooltip
)
>
TRAY_ICON_TOOLTIP_MAX_SIZE
)
{
}
else
if
(
lstrlen
(
tooltip
)
>
=
TRAY_ICON_TOOLTIP_MAX_SIZE
)
{
_tcsncpy
(
m_nid
.
szTip
,
tooltip
,
TRAY_ICON_TOOLTIP_MAX_SIZE
);
_tcsncpy
(
m_nid
.
szTip
,
tooltip
,
TRAY_ICON_TOOLTIP_MAX_SIZE
);
m_nid
.
szTip
[
TRAY_ICON_TOOLTIP_MAX_SIZE
-
1
]
=
'\0'
;
m_nid
.
szTip
[
TRAY_ICON_TOOLTIP_MAX_SIZE
-
1
]
=
'\0'
;
}
else
{
}
else
{
...
@@ -814,7 +814,7 @@ void AwtTrayIcon::DisplayMessage(LPCTSTR caption, LPCTSTR text, LPCTSTR msgType)
...
@@ -814,7 +814,7 @@ void AwtTrayIcon::DisplayMessage(LPCTSTR caption, LPCTSTR text, LPCTSTR msgType)
if
(
caption
[
0
]
==
'\0'
)
{
if
(
caption
[
0
]
==
'\0'
)
{
m_nid
.
szInfoTitle
[
0
]
=
'\0'
;
m_nid
.
szInfoTitle
[
0
]
=
'\0'
;
}
else
if
(
lstrlen
(
caption
)
>
TRAY_ICON_BALLOON_TITLE_MAX_SIZE
)
{
}
else
if
(
lstrlen
(
caption
)
>
=
TRAY_ICON_BALLOON_TITLE_MAX_SIZE
)
{
_tcsncpy
(
m_nid
.
szInfoTitle
,
caption
,
TRAY_ICON_BALLOON_TITLE_MAX_SIZE
);
_tcsncpy
(
m_nid
.
szInfoTitle
,
caption
,
TRAY_ICON_BALLOON_TITLE_MAX_SIZE
);
m_nid
.
szInfoTitle
[
TRAY_ICON_BALLOON_TITLE_MAX_SIZE
-
1
]
=
'\0'
;
m_nid
.
szInfoTitle
[
TRAY_ICON_BALLOON_TITLE_MAX_SIZE
-
1
]
=
'\0'
;
...
@@ -827,7 +827,7 @@ void AwtTrayIcon::DisplayMessage(LPCTSTR caption, LPCTSTR text, LPCTSTR msgType)
...
@@ -827,7 +827,7 @@ void AwtTrayIcon::DisplayMessage(LPCTSTR caption, LPCTSTR text, LPCTSTR msgType)
m_nid
.
szInfo
[
0
]
=
' '
;
m_nid
.
szInfo
[
0
]
=
' '
;
m_nid
.
szInfo
[
1
]
=
'\0'
;
m_nid
.
szInfo
[
1
]
=
'\0'
;
}
else
if
(
lstrlen
(
text
)
>
TRAY_ICON_BALLOON_INFO_MAX_SIZE
)
{
}
else
if
(
lstrlen
(
text
)
>
=
TRAY_ICON_BALLOON_INFO_MAX_SIZE
)
{
_tcsncpy
(
m_nid
.
szInfo
,
text
,
TRAY_ICON_BALLOON_INFO_MAX_SIZE
);
_tcsncpy
(
m_nid
.
szInfo
,
text
,
TRAY_ICON_BALLOON_INFO_MAX_SIZE
);
m_nid
.
szInfo
[
TRAY_ICON_BALLOON_INFO_MAX_SIZE
-
1
]
=
'\0'
;
m_nid
.
szInfo
[
TRAY_ICON_BALLOON_INFO_MAX_SIZE
-
1
]
=
'\0'
;
...
...
test/java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java
浏览文件 @
6f02f9a3
...
@@ -40,7 +40,7 @@ import sun.java2d.SunGraphics2D;
...
@@ -40,7 +40,7 @@ import sun.java2d.SunGraphics2D;
/**
/**
* @test
* @test
* @bug 8043869 8075244
* @bug 8043869 8075244
8078082
* @author Alexander Scherbatiy
* @author Alexander Scherbatiy
* @summary [macosx] java -splash does not honor 2x hi dpi notation for retina
* @summary [macosx] java -splash does not honor 2x hi dpi notation for retina
* support
* support
...
@@ -115,6 +115,7 @@ public class MultiResolutionSplashTest {
...
@@ -115,6 +115,7 @@ public class MultiResolutionSplashTest {
frame
.
setSize
(
100
,
100
);
frame
.
setSize
(
100
,
100
);
String
test
=
"123"
;
String
test
=
"123"
;
TextField
textField
=
new
TextField
(
test
);
TextField
textField
=
new
TextField
(
test
);
textField
.
selectAll
();
frame
.
add
(
textField
);
frame
.
add
(
textField
);
frame
.
setVisible
(
true
);
frame
.
setVisible
(
true
);
robot
.
waitForIdle
();
robot
.
waitForIdle
();
...
...
test/java/awt/TrayIcon/8072769/bug8072769.java
0 → 100644
浏览文件 @
6f02f9a3
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* @test
@bug 8072769
@summary System tray icon title freezes java
@author Semyon Sadetsky
@library ../../../../lib/testlibrary
@build jdk.testlibrary.OSInfo
@run main bug8072769
*/
import
jdk.testlibrary.OSInfo
;
import
javax.swing.*
;
import
java.awt.*
;
import
java.util.Arrays
;
public
class
bug8072769
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
if
(
OSInfo
.
getOSType
()
==
OSInfo
.
OSType
.
WINDOWS
)
{
if
(
SystemTray
.
isSupported
())
{
test
();
}
else
{
System
.
out
.
println
(
"SystemTray not supported. "
+
"Test is skipped."
);
}
}
else
{
System
.
out
.
println
(
"Test will only run on Windows platform. "
+
"Test is skipped."
);
}
System
.
out
.
println
(
"ok"
);
}
private
static
void
test
()
throws
Exception
{
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
final
SystemTray
tray
=
SystemTray
.
getSystemTray
();
final
TrayIcon
trayIcon
=
new
TrayIcon
(
icon
.
getImage
());
try
{
tray
.
add
(
trayIcon
);
}
catch
(
AWTException
e
)
{
throw
new
RuntimeException
(
"TrayIcon could not be added."
);
}
try
{
trayIcon
.
displayMessage
(
createString
(
63
,
'A'
),
createString
(
255
,
'C'
),
TrayIcon
.
MessageType
.
ERROR
);
trayIcon
.
setToolTip
(
createString
(
127
,
'B'
));
trayIcon
.
displayMessage
(
createString
(
64
,
'A'
),
createString
(
256
,
'C'
),
TrayIcon
.
MessageType
.
ERROR
);
trayIcon
.
setToolTip
(
createString
(
128
,
'B'
));
trayIcon
.
displayMessage
(
createString
(
65
,
'A'
),
createString
(
257
,
'C'
),
TrayIcon
.
MessageType
.
ERROR
);
trayIcon
.
setToolTip
(
createString
(
129
,
'B'
));
}
finally
{
tray
.
remove
(
trayIcon
);
}
}
});
}
private
static
String
createString
(
int
len
,
char
letter
)
{
char
[]
chars
=
new
char
[
len
];
Arrays
.
fill
(
chars
,
letter
);
chars
[
len
-
2
]
=
'='
;
chars
[
len
-
1
]
=
'>'
;
return
new
String
(
chars
);
}
private
static
ImageIcon
icon
=
new
ImageIcon
(
new
byte
[]{
71
,
73
,
70
,
56
,
57
,
97
,
32
,
0
,
35
,
0
,
-
43
,
0
,
0
,
-
1
,
-
1
,
-
1
,
-
19
,
-
101
,
9
,
-
18
,
-
95
,
24
,
-
14
,
-
76
,
71
,
-
4
,
-
19
,
-
46
,
-
3
,
-
13
,
-
31
,
-
17
,
-
88
,
40
,
-
12
,
-
63
,
102
,
-
10
,
-
51
,
-
124
,
-
16
,
-
82
,
55
,
-
11
,
-
57
,
117
,
-
2
,
-
7
,
-
15
,
-
7
,
-
32
,
-
77
,
-
9
,
-
45
,
-
108
,
-
5
,
-
26
,
-
62
,
-
13
,
-
70
,
86
,
-
8
,
-
39
,
-
94
,
83
,
-
126
,
-
95
,
-
8
,
-
38
,
-
93
,
-
6
,
-
26
,
-
63
,
-
9
,
-
45
,
-
109
,
-
4
,
-
14
,
-
32
,
-
15
,
-
76
,
70
,
-
12
,
-
58
,
116
,
-
17
,
-
89
,
39
,
77
,
121
,
-
106
,
-
3
,
-
8
,
-
17
,
104
,
-
111
,
-
84
,
126
,
-
95
,
-
72
,
93
,
-
119
,
-
90
,
-
14
,
-
70
,
85
,
-
13
,
-
64
,
101
,
-
16
,
-
83
,
55
,
-
109
,
-
80
,
-
60
,
-
7
,
-
33
,
-
78
,
-
100
,
-
84
,
-
85
,
94
,
-
127
,
-
104
,
-
32
,
-
99
,
39
,
127
,
-
120
,
-
114
,
83
,
113
,
-
124
,
-
12
,
-
9
,
-
7
,
-
16
,
-
16
,
-
16
,
-
115
,
108
,
45
,
57
,
89
,
110
,
-
50
,
-
41
,
-
35
,
104
,
-
111
,
-
83
,
41
,
65
,
80
,
72
,
113
,
-
116
,
115
,
-
103
,
-
78
,
88
,
106
,
112
,
-
82
,
-
78
,
-
82
,
-
45
,
-
38
,
-
40
,
-
5
,
-
20
,
-
48
,
-
65
,
-
48
,
-
36
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
33
,
-
7
,
4
,
0
,
0
,
0
,
0
,
0
,
44
,
0
,
0
,
0
,
0
,
32
,
0
,
35
,
0
,
0
,
6
,
-
1
,
64
,
-
128
,
112
,
72
,
4
,
16
,
0
,
14
,
-
57
,
2
,
1
,
96
,
30
,
-
117
,
-
48
,
40
,
-
78
,
-
55
,
96
,
28
,
28
,
-
125
,
-
62
,
0
,
96
,
48
,
74
,
-
91
,
-
116
,
102
,
3
,
97
,
64
,
4
,
20
,
-
25
,
-
128
,
68
,
-
80
,
16
,
24
,
11
,
95
,
98
,
-
29
,
-
64
,
72
,
11
,
2
,
120
,
-
68
,
96
,
-
64
,
39
,
116
,
-
29
,
0
,
12
,
13
,
5
,
1
,
3
,
121
,
-
121
,
-
120
,
9
,
2
,
7
,
5
,
15
,
82
,
11
,
11
,
92
,
15
,
6
,
-
120
,
-
107
,
-
121
,
7
,
2
,
18
,
0
,
112
,
80
,
3
,
8
,
104
,
-
106
,
-
95
,
122
,
88
,
97
,
68
,
5
,
11
,
4
,
-
95
,
32
,
8
,
16
,
19
,
16
,
8
,
22
,
-
106
,
-
114
,
79
,
66
,
5
,
2
,
15
,
9
,
-
120
,
22
,
19
,
81
,
21
,
31
,
-
120
,
7
,
6
,
10
,
67
,
71
,
4
,
119
,
-
121
,
20
,
-
128
,
16
,
-
57
,
120
,
7
,
-
101
,
-
111
,
-
58
,
9
,
-
108
,
121
,
-
55
,
-
128
,
0
,
16
,
121
,
123
,
-
117
,
67
,
5
,
-
71
,
121
,
30
,
-
42
,
67
,
23
,
-
121
,
13
,
66
,
14
,
6
,
3
,
-
34
,
120
,
21
,
-
31
,
66
,
26
,
-
39
,
3
,
6
,
-
50
,
11
,
-
96
,
120
,
31
,
-
19
,
67
,
30
,
121
,
9
,
14
,
0
,
13
,
124
,
-
121
,
68
,
-
32
,
19
,
98
,
6
,
15
,
58
,
71
,
18
,
12
,
-
27
,
97
,
55
,
80
,
68
,
54
,
5
,
5
,
24
,
40
,
80
,
23
,
96
,
-
96
,
-
112
,
9
,
-
39
,
30
,
52
,
-
112
,
72
,
-
47
,
34
,
0
,
10
,
25
,
-
53
,
37
,
60
,
-
60
,
16
,
-
33
,
56
,
61
,
16
,
-
1
,
41
,
-
60
,
83
,
13
,
31
,
-
122
,
60
,
7
,
1
,
-
48
,
59
,
-
124
,
65
,
3
,
62
,
-
116
,
48
,
-
5
,
57
,
72
,
-
112
,
-
18
,
-
48
,
5
,
-
103
,
124
,
32
,
-
32
,
37
,
112
,
-
74
,
-
119
,
98
,
0
,
8
,
-
31
,
64
,
-
110
,
35
,
38
,
64
,
26
,
34
,
-
92
,
113
,
42
,
48
,
-
45
,
70
,
-
76
,
24
,
-
77
,
60
,
80
,
-
91
,
-
60
,
-
70
,
-
12
,
76
,
-
120
,
49
,
92
,
-
120
,
4
,
-
40
,
-
116
,
-
126
,
51
,
79
,
-
80
,
97
,
-
36
,
80
,
89
,
-
6
,
25
,
-
91
,
96
,
-
98
,
89
,
-
99
,
62
,
33
,
-
62
,
32
,
-
59
,
-
83
,
0
,
82
,
80
,
32
,
1
,
-
72
,
53
,
13
,
-
113
,
-
42
,
102
,
-
103
,
54
,
-
127
,
25
,
84
,
40
,
15
,
-
115
,
40
,
37
,
20
,
49
,
34
,
26
,
103
,
78
,
29
,
52
,
42
,
88
,
16
,
65
,
17
,
-
94
,
-
49
,
31
,
107
,
97
,
16
,
-
116
,
49
,
32
,
35
,
-
61
,
6
,
14
,
33
,
56
,
68
,
-
120
,
-
80
,
-
96
,
11
,
1
,
78
,
-
31
,
-
6
,
33
,
96
,
48
,
-
93
,
-
61
,
-
122
,
21
,
46
,
50
,
-
116
,
-
10
,
-
30
,
-
47
,
-
117
,
-
125
,
24
,
29
,
94
,
-
100
,
-
112
,
61
,
-
94
,
54
,
-
108
,
20
,
38
,
90
,
-
112
,
-
128
,
81
,
-
61
,
90
,
16
,
0
,
59
},
"try icon"
);
}
test/java/util/concurrent/forkjoin/SubmissionTest.java
0 → 100644
浏览文件 @
6f02f9a3
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import
java.util.concurrent.ForkJoinPool
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.atomic.AtomicBoolean
;
/*
* @test
* @bug 8078490
* @summary Test submission and execution of task without joining
*/
public
class
SubmissionTest
{
public
static
void
main
(
String
[]
args
)
throws
Throwable
{
final
ForkJoinPool
e
=
new
ForkJoinPool
(
1
);
final
AtomicBoolean
b
=
new
AtomicBoolean
();
final
Runnable
setFalse
=
()
->
b
.
set
(
false
);
for
(
int
i
=
0
;
i
<
100000
;
i
++)
{
b
.
set
(
true
);
e
.
execute
(
setFalse
);
long
st
=
System
.
nanoTime
();
while
(
b
.
get
())
{
if
(
System
.
nanoTime
()
-
st
>=
TimeUnit
.
SECONDS
.
toNanos
(
10
))
{
throw
new
RuntimeException
(
"Submitted task failed to execute"
);
}
}
}
}
}
test/javax/swing/JRadioButton/8075609/bug8075609.java
0 → 100644
浏览文件 @
6f02f9a3
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @library ../../regtesthelpers
* @build Util
* @bug 8075609
* @summary IllegalArgumentException when transferring focus from JRadioButton using tab
* @author Vivi An
* @run main bug8075609
*/
import
javax.swing.*
;
import
javax.swing.event.*
;
import
java.awt.event.*
;
import
java.awt.*
;
import
sun.awt.SunToolkit
;
public
class
bug8075609
{
private
static
Robot
robot
;
private
static
SunToolkit
toolkit
;
private
static
JTextField
textField
;
public
static
void
main
(
String
args
[])
throws
Throwable
{
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
createAndShowGUI
();
}
});
robot
=
new
Robot
();
Thread
.
sleep
(
100
);
robot
.
setAutoDelay
(
100
);
toolkit
=
(
SunToolkit
)
Toolkit
.
getDefaultToolkit
();
// Radio button group tab key test
runTest1
();
}
private
static
void
createAndShowGUI
()
{
JFrame
mainFrame
=
new
JFrame
(
"Bug 8075609 - 1 test"
);
JPanel
rootPanel
=
new
JPanel
();
rootPanel
.
setLayout
(
new
BorderLayout
());
JPanel
formPanel
=
new
JPanel
();
formPanel
.
setFocusTraversalPolicy
(
new
LayoutFocusTraversalPolicy
());
formPanel
.
setFocusCycleRoot
(
true
);
JRadioButton
option1
=
new
JRadioButton
(
"Option 1"
,
true
);
JRadioButton
option2
=
new
JRadioButton
(
"Option 2"
);
ButtonGroup
radioButtonGroup
=
new
ButtonGroup
();
radioButtonGroup
.
add
(
option1
);
radioButtonGroup
.
add
(
option2
);
formPanel
.
add
(
option1
);
formPanel
.
add
(
option2
);
textField
=
new
JTextField
(
"Another focusable component"
);
formPanel
.
add
(
textField
);
rootPanel
.
add
(
formPanel
,
BorderLayout
.
CENTER
);
JButton
okButton
=
new
JButton
(
"OK"
);
rootPanel
.
add
(
okButton
,
BorderLayout
.
SOUTH
);
mainFrame
.
add
(
rootPanel
);
mainFrame
.
pack
();
mainFrame
.
setVisible
(
true
);
mainFrame
.
toFront
();
}
// Radio button Group as a single component when traversing through tab key
private
static
void
runTest1
()
throws
Exception
{
hitKey
(
robot
,
KeyEvent
.
VK_TAB
);
robot
.
setAutoDelay
(
1000
);
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
if
(
textField
.
hasFocus
())
{
System
.
out
.
println
(
"Radio Button Group Go To Next Component through Tab Key failed"
);
throw
new
RuntimeException
(
"Focus is not on textField as Expected"
);
}
}
});
}
private
static
void
hitKey
(
Robot
robot
,
int
keycode
)
{
robot
.
keyPress
(
keycode
);
robot
.
keyRelease
(
keycode
);
toolkit
.
realSync
();
}
}
test/javax/swing/plaf/nimbus/8041642/bug8041642.java
0 → 100644
浏览文件 @
6f02f9a3
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* @test
@bug 8041642
@summary Incorrect paint of JProgressBar in Nimbus LF
@author Semyon Sadetsky
*/
import
javax.swing.*
;
import
java.awt.*
;
public
class
bug8041642
{
private
static
JFrame
frame
;
private
static
Point
point
;
private
static
JProgressBar
bar
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
for
(
UIManager
.
LookAndFeelInfo
info
:
UIManager
.
getInstalledLookAndFeels
())
{
if
(
"Nimbus"
.
equals
(
info
.
getName
()))
{
try
{
UIManager
.
setLookAndFeel
(
info
.
getClassName
());
}
catch
(
Exception
ex
)
{
}
break
;
}
}
try
{
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
frame
=
new
JFrame
();
frame
.
setUndecorated
(
true
);
frame
.
setDefaultCloseOperation
(
JFrame
.
EXIT_ON_CLOSE
);
setup
(
frame
);
}
});
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
@Override
public
void
run
()
{
point
=
bar
.
getLocationOnScreen
();
}
});
final
Robot
robot
=
new
Robot
();
Color
color
=
robot
.
getPixelColor
(
point
.
x
+
1
,
point
.
y
+
7
);
System
.
out
.
println
(
color
);
if
(
color
.
getGreen
()
<
150
||
color
.
getBlue
()
>
30
||
color
.
getRed
()
>
200
)
{
throw
new
RuntimeException
(
"Bar padding color should be green"
);
}
}
finally
{
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
@Override
public
void
run
()
{
//frame.dispose();
}
});
}
System
.
out
.
println
(
"ok"
);
}
static
void
setup
(
JFrame
frame
)
{
bar
=
new
JProgressBar
();
bar
.
setBackground
(
Color
.
WHITE
);
bar
.
setValue
(
2
);
frame
.
getContentPane
().
add
(
bar
,
BorderLayout
.
NORTH
);
frame
.
getContentPane
().
setBackground
(
Color
.
GREEN
);
frame
.
setSize
(
200
,
150
);
frame
.
setLocation
(
100
,
100
);
frame
.
setVisible
(
true
);
}
}
test/javax/xml/jaxp/transform/8062518/DocumentExtFunc.java
0 → 100644
浏览文件 @
6f02f9a3
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import
org.w3c.dom.Node
;
import
org.w3c.dom.NodeList
;
public
class
DocumentExtFunc
{
public
static
String
test
(
NodeList
list
)
{
Node
node
=
list
.
item
(
0
);
return
"["
+
node
.
getNodeName
()
+
":"
+
node
.
getNodeValue
()+
"]"
;
}
}
test/javax/xml/jaxp/transform/8062518/XSLTFunctionsTest.java
0 → 100644
浏览文件 @
6f02f9a3
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* @test
* @bug 8062518
* @summary This class contains tests for XSLT functions
* @compile DocumentExtFunc.java
* @run testng/othervm XSLTFunctionsTest
*/
import
java.io.StringReader
;
import
java.io.StringWriter
;
import
javax.xml.transform.Source
;
import
javax.xml.transform.Transformer
;
import
javax.xml.transform.TransformerException
;
import
javax.xml.transform.TransformerFactory
;
import
javax.xml.transform.URIResolver
;
import
javax.xml.transform.stream.StreamResult
;
import
javax.xml.transform.stream.StreamSource
;
import
org.testng.annotations.DataProvider
;
import
org.testng.annotations.Test
;
import
static
org
.
testng
.
Assert
.
assertEquals
;
public
class
XSLTFunctionsTest
{
/**
* bug 8062518
* Verifies that a reference to the DTM created by XSLT document function is
* actually read from the DTM by an extension function.
* @param xml Content of xml file to process
* @param xsl stylesheet content that loads external document {@code externalDoc}
* with XSLT 'document' function and then reads it with
* DocumentExtFunc.test() function
* @param externalDoc Content of the external xml document
* @param expectedResult Expected transformation result
**/
@Test
(
dataProvider
=
"document"
)
public
void
testDocument
(
final
String
xml
,
final
String
xsl
,
final
String
externalDoc
,
final
String
expectedResult
)
throws
Exception
{
// Prepare sources for transormation
Source
src
=
new
StreamSource
(
new
StringReader
(
xml
));
Source
xslsrc
=
new
StreamSource
(
new
StringReader
(
xsl
));
// Create factory and transformer
TransformerFactory
tf
=
TransformerFactory
.
newInstance
();
Transformer
t
=
tf
.
newTransformer
(
xslsrc
);
t
.
setErrorListener
(
tf
.
getErrorListener
());
// Set URI Resolver to return the newly constructed xml
// stream source object from xml test string
t
.
setURIResolver
(
new
URIResolver
()
{
@Override
public
Source
resolve
(
String
href
,
String
base
)
throws
TransformerException
{
if
(
href
.
contains
(
"externalDoc"
))
{
return
new
StreamSource
(
new
StringReader
(
externalDoc
));
}
else
{
return
new
StreamSource
(
new
StringReader
(
xml
));
}
}
});
// Prepare output stream
StringWriter
xmlResultString
=
new
StringWriter
();
StreamResult
xmlResultStream
=
new
StreamResult
(
xmlResultString
);
//Transform the xml
t
.
transform
(
src
,
xmlResultStream
);
// If the document can't be accessed and the bug is in place then
// reported exception will be thrown during transformation
System
.
out
.
println
(
"Transformation result:"
+
xmlResultString
.
toString
().
trim
());
// Check the result - it should contain two (node name, node values) entries -
// one for original document, another for a document created with
// call to 'document' function
assertEquals
(
xmlResultString
.
toString
().
trim
(),
expectedResult
);
}
@DataProvider
(
name
=
"document"
)
public
static
Object
[][]
documentTestData
()
{
return
new
Object
[][]
{
{
documentTestXml
,
documentTestXsl
,
documentTestExternalDoc
,
documentTesteExpectedResult
},
};
}
static
final
String
documentTestXml
=
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><Test>Doc</Test>"
;
static
final
String
documentTestExternalDoc
=
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><Test>External Doc</Test>"
;
static
final
String
documentTestXsl
=
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+
"<xsl:transform version=\"1.0\""
+
" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" "
+
" xmlns:cfunc=\"http://xml.apache.org/xalan/java/\">"
+
"<xsl:template match=\"/\">"
+
"<xsl:element name=\"root\">"
+
"<xsl:variable name=\"other_doc\" select=\"document('externalDoc')\"/>"
+
"<!-- Source -->"
+
"<xsl:value-of select=\"cfunc:DocumentExtFunc.test(/Test)\"/>"
+
"<!-- document() -->"
+
"<xsl:value-of select=\"cfunc:DocumentExtFunc.test($other_doc/Test)\"/>"
+
"</xsl:element></xsl:template></xsl:transform>"
;
static
final
String
documentTesteExpectedResult
=
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+
"<root>[Test:Doc][Test:External Doc]</root>"
;
}
test/sun/security/jgss/spnego/MSOID.java
0 → 100644
浏览文件 @
6f02f9a3
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 8078439
* @summary SPNEGO auth fails if client proposes MS krb5 OID
*/
import
org.ietf.jgss.GSSContext
;
import
org.ietf.jgss.GSSCredential
;
import
org.ietf.jgss.GSSException
;
import
org.ietf.jgss.GSSManager
;
import
java.lang.Exception
;
import
java.nio.file.Files
;
import
java.nio.file.Paths
;
import
java.util.Arrays
;
import
java.util.Base64
;
public
class
MSOID
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
// msoid.txt is a NegTokenInit packet sent from Internet Explorer to
// IIS server on a test machine. No sensitive info included.
byte
[]
header
=
Files
.
readAllBytes
(
Paths
.
get
(
System
.
getProperty
(
"test.src"
),
"msoid.txt"
));
byte
[]
token
=
Base64
.
getMimeDecoder
().
decode
(
Arrays
.
copyOfRange
(
header
,
10
,
header
.
length
));
GSSCredential
cred
=
null
;
GSSContext
ctx
=
GSSManager
.
getInstance
().
createContext
(
cred
);
try
{
ctx
.
acceptSecContext
(
token
,
0
,
token
.
length
);
// Before the fix, GSS_KRB5_MECH_OID_MS is not recognized
// and acceptor chooses another mech and goes on
throw
new
Exception
(
"Should fail"
);
}
catch
(
GSSException
gsse
)
{
// After the fix, GSS_KRB5_MECH_OID_MS is recognized but the token
// cannot be accepted because we don't have any krb5 credential.
gsse
.
printStackTrace
();
if
(
gsse
.
getMajor
()
!=
GSSException
.
NO_CRED
)
{
throw
gsse
;
}
for
(
StackTraceElement
st:
gsse
.
getStackTrace
())
{
if
(
st
.
getClassName
().
startsWith
(
"sun.security.jgss.krb5."
))
{
// Good, it is already in krb5 mech's hand.
return
;
}
}
throw
gsse
;
}
}
}
test/sun/security/jgss/spnego/msoid.txt
0 → 100644
浏览文件 @
6f02f9a3
Negotiate YIIGPAYGKwYBBQUCoIIGMDCCBiygMDAuBgkqhkiC9xIBAgIGCSqGSIb3EgECAgYKKwYBBA
GCNwICHgYKKwYBBAGCNwICCqKCBfYEggXyYIIF7gYJKoZIhvcSAQICAQBuggXdMIIF2aADAgEFoQMCAQ
6iBwMFACAAAACjggTIYYIExDCCBMCgAwIBBaEOGwxUV0VMVkUuVEhJTkuiIzAhoAMCAQKhGjAYGwRIVF
RQGxBrZGMuVFdFTFZFLlRISU5Lo4IEgjCCBH6gAwIBEqEDAgEJooIEcASCBGyoIL0zQevk57pY6D25+1
SQbAeldYXkpdn8JlKgSyz1cdiTpwqDt8B7pj7AoKMPHCiVss37XCEpBIuZClBK3Jmry+QWXCbQemKvyO
Caz806RDNB7TA7l1NxUJ6LsCiQncNV1TEq37NM6H8il6PjnbcBoMcHH/+cFGVPNP3eP+Z5Kd+5DZELPV
qQkYogXybmngmYy2168OsfyANzotUpm/HBwEHKujCPH9Gbhwhmx4tUcBvCetPNoXmHOQZLB4u7uyblKO
c6R2yGTFCa8DBQNXx38RRHgsvlNGlx+UsSoF4/DixAreNRkZnpKabn1cRK/KZh6vHfbL2QVegr1hrp71
IJwyVuR+RTGL/7WCSWFClJyWD3Cm4+eK46uVj4MKPUJBc0XVViV/Dsh4N9EomVDkovWU/v+0d+W4pQJk
BFnJoNYuaG8UnLWrxMKGNwVOfsblcJtB7B5zuZzsWsUIdmMT1n8mtWrv0wYiwvotfT6z/suk+Vhg9MGd
uDmeneeG9deMDUMwrwB8u5J2VEeWKurBfDB02jv/08qAZS2ovBfV2SiXCuky5z7llvQ8uPsoezVwYdhu
HmBuPE7PqDIkmkEJRWpq95dqxllCXvlL4uINxFadkhcbzuCDjSGil78p6FJTKc4Dt/kuug1zJuXhJO1L
2CgkMsYPTogoUvAtplzIDF0nSMwJUIJzQXIHCFasmDNJA1GAvQD+Qh7Mp4dYb2Uid+sSM2qlQn8bgR9S
dlfL/olQ9GKPOBBGwsVoZKR3Brimc9LOJofPMEEa560KQNgtO1MyjoqEJKzFq+2wVZQahvpcV7VgixCq
Nom3Wd4NdZ3QM0PHL7e9bl3/qCsWaiNlmRW7gupz8nNCtWNMf4UBqIeo9jPH9Cb96fOUM4c7XXp4iX6w
ns1MsmPZ4VQDRU7VK+yTC81KGfMlSvrvqCJfGoxy0NaeXtmkN55oAhaj8ebiEBdKCXXF5wk0zqvt1ifE
9ywYk/AbdFBPThyOT6Tu9x41gi6mCTiMtSdg7cFY+5yXd3UIgUwnbOG3IwAkdLXlepvnHwEXCXkbfbr9
e1wjs5LMmYRunJ05FOx8iAibB8bWjgiFmYWbeyjyQF3KDs5cpvROXcapT1+KlFU4lEO8lnKM/Ipq81ED
s+/DygXCvlskeKV57URx+XcMWnURu4hdGHbCPY/X7eOmox0mw5/V0rJMIjSjQNPyi4UM4dDTso6mt0XE
h+YyCGmV67D8/nihO/NaRFEFxHlaGwh3Lqu/Tero88iuDb9U1uEWz8cF8wr+2azyOTmhi/ID/jfiEC8i
b/hjYEcBI99x/CNmuuM7uCwTPIsJtBD3AnUdPa/yo41rCtm/K5HZCTzw2W93vaHqyttEC7c70rdAUB49
CfSAVtH4gwxCDKMSJMlELfHGrIloEppEoUEc7LOdmzinvzcuajj0moBn5WUZHiVmopLjGjW7wunmMPQS
H9FmCQf2I1N4E6nZfH+cUzBbHkIF5XHY4KXwmJQ3UdbUDp8z3npIH3MIH0oAMCARKigewEgenD23U6gQ
aORjuWnT1nqadqR+E5fa/viohey4g6mn6uPfVRPz5a7OsDOurQV9wHR/VEwvjpdlZzMcANbt28Ut3YvQ
SWWwqALoLtSLOTgXmK9Higb+NSSO7hKtqKgDWREfQisn3xE9PGkMUlanu2es34+k43AQmJf2InvFNNcy
PcKllikoMOldVeoF1BIKvbDI0+vE3SwSrD0UhUdDeeZTN33b0Y8f3I1UYtidwxcRRkvCaNEhphtr8hp8
hXWQkuxVvF2TiQyHF4PnJkgb1Zr6GXydOmMgMJE1anPFKFKWH6PZWGnp8mw0F5zw==
test/sun/security/krb5/auto/MSOID2.java
0 → 100644
浏览文件 @
6f02f9a3
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 8078439
* @summary SPNEGO auth fails if client proposes MS krb5 OID
* @compile -XDignore.symbol.file MSOID2.java
* @run main/othervm MSOID2
*/
import
sun.security.jgss.GSSUtil
;
// The basic krb5 test skeleton you can copy from
public
class
MSOID2
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
new
OneKDC
(
null
).
writeJAASConf
();
Context
c
,
s
;
c
=
Context
.
fromJAAS
(
"client"
);
s
=
Context
.
fromJAAS
(
"server"
);
c
.
startAsClient
(
OneKDC
.
SERVER
,
GSSUtil
.
GSS_SPNEGO_MECH_OID
);
s
.
startAsServer
(
GSSUtil
.
GSS_SPNEGO_MECH_OID
);
byte
[]
t
=
new
byte
[
0
];
boolean
first
=
true
;
while
(
true
)
{
if
(
t
!=
null
||
!
c
.
x
().
isEstablished
())
t
=
c
.
take
(
t
);
if
(
first
)
{
// Tweak the packet to append an extra OID
int
len
=
t
.
length
;
byte
[]
nt
=
new
byte
[
len
+
11
];
System
.
arraycopy
(
t
,
0
,
nt
,
0
,
0x23
);
System
.
arraycopy
(
t
,
0x18
,
nt
,
0x23
,
11
);
// dup the OID
System
.
arraycopy
(
t
,
0x23
,
nt
,
0x2e
,
len
-
0x23
);
nt
[
0x1d
]
=
(
byte
)
0x82
;
// change the 1st to MS OID
// Length bytes to be tweaked
for
(
int
pos:
new
int
[]
{
3
,
0xf
,
0x13
,
0x15
,
0x17
})
{
nt
[
pos
]
=
(
byte
)(
nt
[
pos
]
+
11
);
}
t
=
nt
;
new
sun
.
misc
.
HexDumpEncoder
().
encodeBuffer
(
t
,
System
.
out
);
}
if
(
t
!=
null
||
!
s
.
x
().
isEstablished
())
t
=
s
.
take
(
t
);
if
(
c
.
x
().
isEstablished
()
&&
s
.
x
().
isEstablished
())
break
;
first
=
false
;
}
Context
.
transmit
(
"i say high --"
,
c
,
s
);
Context
.
transmit
(
" you say low"
,
s
,
c
);
s
.
dispose
();
c
.
dispose
();
}
}
test/sun/security/pkcs12/StoreSecretKeyTest.java
浏览文件 @
6f02f9a3
/*
/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013,
2015
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -23,12 +23,14 @@
...
@@ -23,12 +23,14 @@
/*
/*
* @test
* @test
* @bug 8005408
* @bug 8005408
8079129
* @summary KeyStore API enhancements
* @summary KeyStore API enhancements
*/
*/
import
java.io.*
;
import
java.io.*
;
import
java.security.*
;
import
java.security.*
;
import
java.security.cert.*
;
import
java.security.cert.Certificate
;
import
java.util.*
;
import
java.util.*
;
import
javax.crypto.*
;
import
javax.crypto.*
;
import
javax.crypto.spec.*
;
import
javax.crypto.spec.*
;
...
@@ -39,7 +41,9 @@ public class StoreSecretKeyTest {
...
@@ -39,7 +41,9 @@ public class StoreSecretKeyTest {
private
final
static
String
DIR
=
System
.
getProperty
(
"test.src"
,
"."
);
private
final
static
String
DIR
=
System
.
getProperty
(
"test.src"
,
"."
);
private
static
final
char
[]
PASSWORD
=
"passphrase"
.
toCharArray
();
private
static
final
char
[]
PASSWORD
=
"passphrase"
.
toCharArray
();
private
static
final
String
KEYSTORE
=
"keystore.p12"
;
private
static
final
String
KEYSTORE
=
"keystore.p12"
;
private
static
final
String
ALIAS
=
"my secret key"
;
private
static
final
String
CERT
=
DIR
+
"/trusted.pem"
;
private
static
final
String
ALIAS
=
"my trusted cert"
;
private
static
final
String
ALIAS2
=
"my secret key"
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
...
@@ -56,8 +60,13 @@ public class StoreSecretKeyTest {
...
@@ -56,8 +60,13 @@ public class StoreSecretKeyTest {
KeyStore
keystore
=
KeyStore
.
getInstance
(
"PKCS12"
);
KeyStore
keystore
=
KeyStore
.
getInstance
(
"PKCS12"
);
keystore
.
load
(
null
,
null
);
keystore
.
load
(
null
,
null
);
// Set entry
// Set trusted certificate entry
Certificate
cert
=
loadCertificate
(
CERT
);
keystore
.
setEntry
(
ALIAS
,
keystore
.
setEntry
(
ALIAS
,
new
KeyStore
.
TrustedCertificateEntry
(
cert
),
null
);
// Set secret key entry
keystore
.
setEntry
(
ALIAS2
,
new
KeyStore
.
SecretKeyEntry
(
generateSecretKey
(
"AES"
,
128
)),
new
KeyStore
.
SecretKeyEntry
(
generateSecretKey
(
"AES"
,
128
)),
new
KeyStore
.
PasswordProtection
(
PASSWORD
));
new
KeyStore
.
PasswordProtection
(
PASSWORD
));
...
@@ -73,7 +82,7 @@ public class StoreSecretKeyTest {
...
@@ -73,7 +82,7 @@ public class StoreSecretKeyTest {
" entries"
);
" entries"
);
}
}
KeyStore
.
Entry
entry
=
keystore
.
getEntry
(
ALIAS
,
KeyStore
.
Entry
entry
=
keystore
.
getEntry
(
ALIAS
2
,
new
KeyStore
.
PasswordProtection
(
PASSWORD
));
new
KeyStore
.
PasswordProtection
(
PASSWORD
));
System
.
out
.
println
(
"Retrieved entry: "
+
entry
);
System
.
out
.
println
(
"Retrieved entry: "
+
entry
);
...
@@ -101,4 +110,14 @@ public class StoreSecretKeyTest {
...
@@ -101,4 +110,14 @@ public class StoreSecretKeyTest {
generator
.
init
(
size
);
generator
.
init
(
size
);
return
generator
.
generateKey
();
return
generator
.
generateKey
();
}
}
private
static
Certificate
loadCertificate
(
String
certFile
)
throws
Exception
{
X509Certificate
cert
=
null
;
try
(
FileInputStream
certStream
=
new
FileInputStream
(
certFile
))
{
CertificateFactory
factory
=
CertificateFactory
.
getInstance
(
"X.509"
);
return
factory
.
generateCertificate
(
certStream
);
}
}
}
}
test/sun/util/calendar/zi/tzdata/VERSION
浏览文件 @
6f02f9a3
...
@@ -21,4 +21,4 @@
...
@@ -21,4 +21,4 @@
# or visit www.oracle.com if you need additional information or have any
# or visit www.oracle.com if you need additional information or have any
# questions.
# questions.
#
#
tzdata2015
b
tzdata2015
d
test/sun/util/calendar/zi/tzdata/africa
浏览文件 @
6f02f9a3
...
@@ -342,35 +342,29 @@ Rule Egypt 2007 only - Sep Thu>=1 24:00 0 -
...
@@ -342,35 +342,29 @@ Rule Egypt 2007 only - Sep Thu>=1 24:00 0 -
# above) says DST had no affect on electricity consumption. There is
# above) says DST had no affect on electricity consumption. There is
# no information about when DST will end this fall. See:
# no information about when DST will end this fall. See:
# http://abcnews.go.com/International/wireStory/el-sissi-pushes-egyptians-line-23614833
# http://abcnews.go.com/International/wireStory/el-sissi-pushes-egyptians-line-23614833
# From Steffen Thorsen (2015-04-08):
# Egypt will start DST on midnight after Thursday, April 30, 2015.
# This is based on a law (no 35) from May 15, 2014 saying it starts the last
# Thursday of April.... Clocks will still be turned back for Ramadan, but
# dates not yet announced....
# http://almogaz.com/news/weird-news/2015/04/05/1947105 ...
# http://www.timeanddate.com/news/time/egypt-starts-dst-2015.html
# From Ahmed Nazmy (2015-04-20):
# Egypt's ministers cabinet just announced ... that it will cancel DST at
# least for 2015.
#
#
# For now, guess that later spring and fall transitions will use
# From Tim Parenti (2015-04-20):
# 2010's rules, and guess that Egypt will switch to standard time at
# http://english.ahram.org.eg/WriterArticles/NewsContentP/1/128195/Egypt/No-daylight-saving-this-summer-Egypts-prime-minist.aspx
# 24:00 the last Thursday before Ramadan, and back to DST at 00:00 the
# "Egypt's cabinet agreed on Monday not to switch clocks for daylight saving
# first Friday after Ramadan. To implement this,
# time this summer, and carry out studies on the possibility of canceling the
# transition dates for 2015 through 2037 were determined by running
# practice altogether in future years."
# the following program under GNU Emacs 24.3, with the results integrated
#
# by hand into the table below. Ramadan again intrudes on the guessed
# From Paul Eggert (2015-04-20):
# DST starting in 2038, but that's beyond our somewhat-arbitrary cutoff.
# For now, assume DST will be canceled. Any resumption would likely
# (let ((islamic-year 1436))
# use different rules anyway.
# (while (< islamic-year 1460)
# (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
# (b (calendar-islamic-to-absolute (list 10 1 islamic-year)))
# (friday 5))
# (while (/= friday (mod a 7))
# (setq a (1- a)))
# (while (/= friday (mod b 7))
# (setq b (1+ b)))
# (setq a (1- a))
# (setq b (1- b))
# (setq a (calendar-gregorian-from-absolute a))
# (setq b (calendar-gregorian-from-absolute b))
# (insert
# (format
# (concat "Rule\tEgypt\t%d\tonly\t-\t%s\t%2d\t24:00\t0\t-\n"
# "Rule\tEgypt\t%d\tonly\t-\t%s\t%2d\t24:00\t1:00\tS\n")
# (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a))
# (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
# (setq islamic-year (+ 1 islamic-year))))
Rule Egypt 2008 only - Aug lastThu 24:00 0 -
Rule Egypt 2008 only - Aug lastThu 24:00 0 -
Rule Egypt 2009 only - Aug 20 24:00 0 -
Rule Egypt 2009 only - Aug 20 24:00 0 -
Rule Egypt 2010 only - Aug 10 24:00 0 -
Rule Egypt 2010 only - Aug 10 24:00 0 -
...
@@ -379,22 +373,7 @@ Rule Egypt 2010 only - Sep lastThu 24:00 0 -
...
@@ -379,22 +373,7 @@ Rule Egypt 2010 only - Sep lastThu 24:00 0 -
Rule Egypt 2014 only - May 15 24:00 1:00 S
Rule Egypt 2014 only - May 15 24:00 1:00 S
Rule Egypt 2014 only - Jun 26 24:00 0 -
Rule Egypt 2014 only - Jun 26 24:00 0 -
Rule Egypt 2014 only - Jul 31 24:00 1:00 S
Rule Egypt 2014 only - Jul 31 24:00 1:00 S
Rule Egypt 2014 max - Sep lastThu 24:00 0 -
Rule Egypt 2014 only - Sep lastThu 24:00 0 -
Rule Egypt 2015 2019 - Apr lastFri 0:00s 1:00 S
Rule Egypt 2015 only - Jun 11 24:00 0 -
Rule Egypt 2015 only - Jul 23 24:00 1:00 S
Rule Egypt 2016 only - Jun 2 24:00 0 -
Rule Egypt 2016 only - Jul 7 24:00 1:00 S
Rule Egypt 2017 only - May 25 24:00 0 -
Rule Egypt 2017 only - Jun 29 24:00 1:00 S
Rule Egypt 2018 only - May 10 24:00 0 -
Rule Egypt 2018 only - Jun 14 24:00 1:00 S
Rule Egypt 2019 only - May 2 24:00 0 -
Rule Egypt 2019 only - Jun 6 24:00 1:00 S
Rule Egypt 2020 only - May 28 24:00 1:00 S
Rule Egypt 2021 only - May 13 24:00 1:00 S
Rule Egypt 2022 only - May 5 24:00 1:00 S
Rule Egypt 2023 max - Apr lastFri 0:00s 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Cairo 2:05:09 - LMT 1900 Oct
Zone Africa/Cairo 2:05:09 - LMT 1900 Oct
...
...
test/sun/util/calendar/zi/tzdata/antarctica
浏览文件 @
6f02f9a3
...
@@ -38,41 +38,6 @@
...
@@ -38,41 +38,6 @@
# I made up all time zone abbreviations mentioned here; corrections welcome!
# I made up all time zone abbreviations mentioned here; corrections welcome!
# FORMAT is 'zzz' and GMTOFF is 0 for locations while uninhabited.
# FORMAT is 'zzz' and GMTOFF is 0 for locations while uninhabited.
# These rules are stolen from the 'southamerica' file.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule ArgAQ 1964 1966 - Mar 1 0:00 0 -
Rule ArgAQ 1964 1966 - Oct 15 0:00 1:00 S
Rule ArgAQ 1967 only - Apr 2 0:00 0 -
Rule ArgAQ 1967 1968 - Oct Sun>=1 0:00 1:00 S
Rule ArgAQ 1968 1969 - Apr Sun>=1 0:00 0 -
Rule ArgAQ 1974 only - Jan 23 0:00 1:00 S
Rule ArgAQ 1974 only - May 1 0:00 0 -
Rule ChileAQ 1972 1986 - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 1974 1987 - Oct Sun>=9 4:00u 1:00 S
Rule ChileAQ 1987 only - Apr 12 3:00u 0 -
Rule ChileAQ 1988 1989 - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 1988 only - Oct Sun>=1 4:00u 1:00 S
Rule ChileAQ 1989 only - Oct Sun>=9 4:00u 1:00 S
Rule ChileAQ 1990 only - Mar 18 3:00u 0 -
Rule ChileAQ 1990 only - Sep 16 4:00u 1:00 S
Rule ChileAQ 1991 1996 - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 1991 1997 - Oct Sun>=9 4:00u 1:00 S
Rule ChileAQ 1997 only - Mar 30 3:00u 0 -
Rule ChileAQ 1998 only - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 1998 only - Sep 27 4:00u 1:00 S
Rule ChileAQ 1999 only - Apr 4 3:00u 0 -
Rule ChileAQ 1999 2010 - Oct Sun>=9 4:00u 1:00 S
Rule ChileAQ 2000 2007 - Mar Sun>=9 3:00u 0 -
# N.B.: the end of March 29 in Chile is March 30 in Universal time,
# which is used below in specifying the transition.
Rule ChileAQ 2008 only - Mar 30 3:00u 0 -
Rule ChileAQ 2009 only - Mar Sun>=9 3:00u 0 -
Rule ChileAQ 2010 only - Apr Sun>=1 3:00u 0 -
Rule ChileAQ 2011 only - May Sun>=2 3:00u 0 -
Rule ChileAQ 2011 only - Aug Sun>=16 4:00u 1:00 S
Rule ChileAQ 2012 2015 - Apr Sun>=23 3:00u 0 -
Rule ChileAQ 2012 2014 - Sep Sun>=2 4:00u 1:00 S
# Argentina - year-round bases
# Argentina - year-round bases
# Belgrano II, Confin Coast, -770227-0343737, since 1972-02-05
# Belgrano II, Confin Coast, -770227-0343737, since 1972-02-05
# Carlini, Potter Cove, King George Island, -6414-0602320, since 1982-01
# Carlini, Potter Cove, King George Island, -6414-0602320, since 1982-01
...
@@ -367,21 +332,7 @@ Zone Antarctica/Rothera 0 - zzz 1976 Dec 1
...
@@ -367,21 +332,7 @@ Zone Antarctica/Rothera 0 - zzz 1976 Dec 1
# USA - year-round bases
# USA - year-round bases
#
#
# Palmer, Anvers Island, since 1965 (moved 2 miles in 1968)
# Palmer, Anvers Island, since 1965 (moved 2 miles in 1968)
#
# See 'southamerica' for Antarctica/Palmer, since it uses South American DST.
# From Ethan Dicks (1996-10-06):
# It keeps the same time as Punta Arenas, Chile, because, just like us
# and the South Pole, that's the other end of their supply line....
# I verified with someone who was there that since 1980,
# Palmer has followed Chile. Prior to that, before the Falklands War,
# Palmer used to be supplied from Argentina.
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Palmer 0 - zzz 1965
-4:00 ArgAQ AR%sT 1969 Oct 5
-3:00 ArgAQ AR%sT 1982 May
-4:00 ChileAQ CL%sT 2015 Apr 26 3:00u
-3:00 - CLT
#
#
#
# McMurdo Station, Ross Island, since 1955-12
# McMurdo Station, Ross Island, since 1955-12
# Amundsen-Scott South Pole Station, continuously occupied since 1956-11-20
# Amundsen-Scott South Pole Station, continuously occupied since 1956-11-20
...
...
test/sun/util/calendar/zi/tzdata/backward
浏览文件 @
6f02f9a3
...
@@ -43,6 +43,7 @@ Link America/Argentina/Jujuy America/Jujuy
...
@@ -43,6 +43,7 @@ Link America/Argentina/Jujuy America/Jujuy
Link America/Indiana/Knox America/Knox_IN
Link America/Indiana/Knox America/Knox_IN
Link America/Kentucky/Louisville America/Louisville
Link America/Kentucky/Louisville America/Louisville
Link America/Argentina/Mendoza America/Mendoza
Link America/Argentina/Mendoza America/Mendoza
Link America/Toronto America/Montreal
Link America/Rio_Branco America/Porto_Acre
Link America/Rio_Branco America/Porto_Acre
Link America/Argentina/Cordoba America/Rosario
Link America/Argentina/Cordoba America/Rosario
Link America/Denver America/Shiprock
Link America/Denver America/Shiprock
...
...
test/sun/util/calendar/zi/tzdata/europe
浏览文件 @
6f02f9a3
...
@@ -99,7 +99,7 @@
...
@@ -99,7 +99,7 @@
# 1:00:14 SET Swedish (1879-1899)*
# 1:00:14 SET Swedish (1879-1899)*
# 2:00 EET EEST Eastern Europe
# 2:00 EET EEST Eastern Europe
# 3:00 FET Further-eastern Europe (2011-2014)*
# 3:00 FET Further-eastern Europe (2011-2014)*
# 3:00 MSK MSD MSM* Moscow
# 3:00 MSK MSD MSM* M
insk, M
oscow
# From Peter Ilieve (1994-12-04),
# From Peter Ilieve (1994-12-04),
# The original six [EU members]: Belgium, France, (West) Germany, Italy,
# The original six [EU members]: Belgium, France, (West) Germany, Italy,
...
...
test/sun/util/calendar/zi/tzdata/northamerica
浏览文件 @
6f02f9a3
...
@@ -250,9 +250,14 @@ Zone PST8PDT -8:00 US P%sT
...
@@ -250,9 +250,14 @@ Zone PST8PDT -8:00 US P%sT
# The law doesn't give abbreviations.
# The law doesn't give abbreviations.
#
#
# From Paul Eggert (2000-01-08), following a heads-up from Rives McDow:
# From Paul Eggert (2000-01-08), following a heads-up from Rives McDow:
# Public law 106-564 (2000-12-23) introduced the abbreviation
# Public law 106-564 (2000-12-23) introduced ... "Chamorro Standard Time"
# "Chamorro Standard Time" for time in Guam and the Northern Marianas.
# for time in Guam and the Northern Marianas. See the file "australasia".
# See the file "australasia".
#
# From Paul Eggert (2015-04-17):
# HST and HDT are standardized abbreviations for Hawaii-Aleutian
# standard and daylight times. See section 9.47 (p 234) of the
# U.S. Government Printing Office Style Manual (2008)
# http://www.gpo.gov/fdsys/pkg/GPO-STYLEMANUAL-2008/pdf/GPO-STYLEMANUAL-2008.pdf
# From Arthur David Olson, 2005-08-09
# From Arthur David Olson, 2005-08-09
# The following was signed into law on 2005-08-08.
# The following was signed into law on 2005-08-08.
...
@@ -559,7 +564,7 @@ Zone America/Adak 12:13:21 - LMT 1867 Oct 18
...
@@ -559,7 +564,7 @@ Zone America/Adak 12:13:21 - LMT 1867 Oct 18
-11:00 - BST 1969
-11:00 - BST 1969
-11:00 US B%sT 1983 Oct 30 2:00
-11:00 US B%sT 1983 Oct 30 2:00
-10:00 US AH%sT 1983 Nov 30
-10:00 US AH%sT 1983 Nov 30
-10:00 US H
A
%sT
-10:00 US H%sT
# The following switches don't quite make our 1970 cutoff.
# The following switches don't quite make our 1970 cutoff.
#
#
# Shanks writes that part of southwest Alaska (e.g. Aniak)
# Shanks writes that part of southwest Alaska (e.g. Aniak)
...
@@ -1354,14 +1359,9 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
...
@@ -1354,14 +1359,9 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
# Quebec
# Quebec
# From Paul Eggert (2013-08-30):
# From Paul Eggert (2015-03-24):
# Since 1970 most of Quebec has been like Toronto.
# See America/Toronto for most of Quebec, including Montreal.
# However, because earlier versions of the tz database mistakenly relied on data
#
# from Shanks & Pottenger saying that Quebec differed from Ontario after 1970,
# a separate entry was created for most of Quebec. We're loath to lose
# its pre-1970 info, even though the tz database is normally limited to
# zones that differ after 1970, so keep this otherwise out-of-scope entry.
# Matthews and Vincent (1998) also write that Quebec east of the -63
# Matthews and Vincent (1998) also write that Quebec east of the -63
# meridian is supposed to observe AST, but residents as far east as
# meridian is supposed to observe AST, but residents as far east as
# Natashquan use EST/EDT, and residents east of Natashquan use AST.
# Natashquan use EST/EDT, and residents east of Natashquan use AST.
...
@@ -1375,39 +1375,10 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
...
@@ -1375,39 +1375,10 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9
# For lack of better info, guess this practice began around 1970, contra to
# For lack of better info, guess this practice began around 1970, contra to
# Shanks & Pottenger who have this region observing AST/ADT.
# Shanks & Pottenger who have this region observing AST/ADT.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Mont 1917 only - Mar 25 2:00 1:00 D
Rule Mont 1917 only - Apr 24 0:00 0 S
Rule Mont 1919 only - Mar 31 2:30 1:00 D
Rule Mont 1919 only - Oct 25 2:30 0 S
Rule Mont 1920 only - May 2 2:30 1:00 D
Rule Mont 1920 1922 - Oct Sun>=1 2:30 0 S
Rule Mont 1921 only - May 1 2:00 1:00 D
Rule Mont 1922 only - Apr 30 2:00 1:00 D
Rule Mont 1924 only - May 17 2:00 1:00 D
Rule Mont 1924 1926 - Sep lastSun 2:30 0 S
Rule Mont 1925 1926 - May Sun>=1 2:00 1:00 D
Rule Mont 1927 1937 - Apr lastSat 24:00 1:00 D
Rule Mont 1927 1937 - Sep lastSat 24:00 0 S
Rule Mont 1938 1940 - Apr lastSun 0:00 1:00 D
Rule Mont 1938 1939 - Sep lastSun 0:00 0 S
Rule Mont 1946 1973 - Apr lastSun 2:00 1:00 D
Rule Mont 1945 1948 - Sep lastSun 2:00 0 S
Rule Mont 1949 1950 - Oct lastSun 2:00 0 S
Rule Mont 1951 1956 - Sep lastSun 2:00 0 S
Rule Mont 1957 1973 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Blanc-Sablon -3:48:28 - LMT 1884
Zone America/Blanc-Sablon -3:48:28 - LMT 1884
-4:00 Canada A%sT 1970
-4:00 Canada A%sT 1970
-4:00 - AST
-4:00 - AST
Zone America/Montreal -4:54:16 - LMT 1884
-5:00 Mont E%sT 1918
-5:00 Canada E%sT 1919
-5:00 Mont E%sT 1942 Feb 9 2:00s
-5:00 Canada E%sT 1946
-5:00 Mont E%sT 1974
-5:00 Canada E%sT
# Ontario
# Ontario
...
@@ -1898,17 +1869,115 @@ Zone America/Creston -7:46:04 - LMT 1884
...
@@ -1898,17 +1869,115 @@ Zone America/Creston -7:46:04 - LMT 1884
# Dawson switched to PST in 1973. Inuvik switched to MST in 1979.
# Dawson switched to PST in 1973. Inuvik switched to MST in 1979.
# Mathew Englander (1996-10-07) gives the following refs:
# Mathew Englander (1996-10-07) gives the following refs:
# * 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68,
# * 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68,
# c. 7 defines Yukon standard time as UTC-9.
This is still valid;
# c. 7 defines Yukon standard time as UTC-9.
...
# see Interpretation Act, R.S.C. 1985, c. I-21, s. 35(1).
# see Interpretation Act, R.S.C. 1985, c. I-21, s. 35(1).
# [http://canlii.ca/t/7vhg]
# * C.O. 1973/214 switched Yukon to PST on 1973-10-28 00:00.
# * C.O. 1973/214 switched Yukon to PST on 1973-10-28 00:00.
# * O.I.C. 1980/02 established DST.
# * O.I.C. 1980/02 established DST.
# * O.I.C. 1987/056 changed DST to Apr firstSun 2:00 to Oct lastSun 2:00.
# * O.I.C. 1987/056 changed DST to Apr firstSun 2:00 to Oct lastSun 2:00.
# Shanks & Pottenger say Yukon's 1973-10-28 switch was at 2:00; go
# with Englander.
# From Brian Inglis (2015-04-14):
# From Chris Walton (2006-06-26):
#
# Here is a link to the old daylight saving portion of the interpretation
# I tried to trace the history of Yukon time and found the following
# act which was last updated in 1987:
# regulations, giving the reference title and URL if found, regulation name,
# http://www.gov.yk.ca/legislation/regs/oic1987_056.pdf
# and relevant quote if available. Each regulation specifically revokes its
# predecessor. The final reference is to the current Interpretation Act
# authorizing and resulting from these regulatory changes.
#
# Only recent regulations were retrievable via Yukon government site search or
# index, and only some via Canadian legal sources. Other sources used include
# articles titled "Standard Time and Time Zones in Canada" from JRASC via ADS
# Abstracts, cited by ADO for 1932 ..., and updated versions from 1958 and
# 1970 quoted below; each article includes current extracts from provincial
# and territorial ST and DST regulations at the end, summaries and details of
# standard times and daylight saving time at many locations across Canada,
# with time zone maps, tables and calculations for Canadian Sunrise, Sunset,
# and LMST; they also cover many countries and global locations, with a chart
# and table showing current Universal Time offsets, and may be useful as
# another source of information for 1970 and earlier.
#
# * Standard Time and Time Zones in Canada; Smith, C.C.; JRASC, Vol. 26,
# pp.49-77; February 1932; SAO/NASA Astrophysics Data System (ADS)
# http://adsabs.harvard.edu/abs/1932JRASC..26...49S from p.75:
# Yukon Interpretation Ordinance
# Yukon standard time is the local mean time at the one hundred and
# thirty-fifth meridian.
#
# * Standard Time and Time Zones in Canada; Smith, C.C.; Thomson, Malcolm M.;
# JRASC, Vol. 52, pp.193-223; October 1958; SAO/NASA Astrophysics Data System
# (ADS) http://adsabs.harvard.edu/abs/1958JRASC..52..193S from pp.220-1:
# Yukon Interpretation Ordinance, 1955, Chap. 16.
#
# (1) Subject to this section, standard time shall be reckoned as nine
# hours behind Greenwich Time and called Yukon Standard Time.
#
# (2) Notwithstanding subsection (1), the Commissioner may make regulations
# varying the manner of reckoning standard time.
#
# * Yukon Territory Commissioner's Order 1966-20 Interpretation Ordinance
# http://? - no online source found
#
# * Standard Time and Time Zones in Canada; Thomson, Malcolm M.; JRASC,
# Vol. 64, pp.129-162; June 1970; SAO/NASA Astrophysics Data System (ADS)
# http://adsabs.harvard.edu/abs/1970JRASC..64..129T from p.156: Yukon
# Territory Commissioner's Order 1967-59 Interpretation Ordinance ...
#
# 1. Commissioner's Order 1966-20 dated at Whitehorse in the Yukon
# Territory on 27th January, 1966, is hereby revoked.
#
# 2. Yukon (East) Standard Time as defined by section 36 of the
# Interpretation Ordinance from and after mid-night on the 28th day of May,
# 1967 shall be reckoned in the same manner as Pacific Standard Time, that
# is to say, eight hours behind Greenwich Time in the area of the Yukon
# Territory lying east of the 138th degree longitude west.
#
# 3. In the remainder of the Territory, lying west of the 138th degree
# longitude west, Yukon (West) Standard Time shall be reckoned as nine
# hours behind Greenwich Time.
#
# * Yukon Standard Time defined as Pacific Standard Time, YCO 1973/214
# http://www.canlii.org/en/yk/laws/regu/yco-1973-214/latest/yco-1973-214.html
# C.O. 1973/214 INTERPRETATION ACT ...
#
# 1. Effective October 28, 1973 Commissioner's Order 1967/59 is hereby
# revoked.
#
# 2. Yukon Standard Time as defined by section 36 of the Interpretation
# Act from and after midnight on the twenty-eighth day of October, 1973
# shall be reckoned in the same manner as Pacific Standard Time, that is
# to say eight hours behind Greenwich Time.
#
# * O.I.C. 1980/02 INTERPRETATION ACT
# http://? - no online source found
#
# * Yukon Daylight Saving Time, YOIC 1987/56
# http://www.canlii.org/en/yk/laws/regu/yoic-1987-56/latest/yoic-1987-56.html
# O.I.C. 1987/056 INTERPRETATION ACT ...
#
# In every year between
# (a) two o'clock in the morning in the first Sunday in April, and
# (b) two o'clock in the morning in the last Sunday in October,
# Standard Time shall be reckoned as seven hours behind Greenwich Time and
# called Yukon Daylight Saving Time.
# ...
# Dated ... 9th day of March, A.D., 1987.
#
# * Yukon Daylight Saving Time 2006, YOIC 2006/127
# http://www.canlii.org/en/yk/laws/regu/yoic-2006-127/latest/yoic-2006-127.html
# O.I.C. 2006/127 INTERPRETATION ACT ...
#
# 1. In Yukon each year the time for general purposes shall be 7 hours
# behind Greenwich mean time during the period commencing at two o'clock
# in the forenoon on the second Sunday of March and ending at two o'clock
# in the forenoon on the first Sunday of November and shall be called
# Yukon Daylight Saving Time.
#
# 2. Order-in-Council 1987/56 is revoked.
#
# 3. This order comes into force January 1, 2007.
#
# * Interpretation Act, RSY 2002, c 125
# http://www.canlii.org/en/yk/laws/stat/rsy-2002-c-125/latest/rsy-2002-c-125.html
# From Rives McDow (1999-09-04):
# From Rives McDow (1999-09-04):
# Nunavut ... moved ... to incorporate the whole territory into one time zone.
# Nunavut ... moved ... to incorporate the whole territory into one time zone.
...
@@ -2134,7 +2203,7 @@ Zone America/Inuvik 0 - zzz 1953 # Inuvik founded
...
@@ -2134,7 +2203,7 @@ Zone America/Inuvik 0 - zzz 1953 # Inuvik founded
-7:00 NT_YK M%sT 1980
-7:00 NT_YK M%sT 1980
-7:00 Canada M%sT
-7:00 Canada M%sT
Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
-9:00 NT_YK Y%sT 196
6 Jul 1 2
:00
-9:00 NT_YK Y%sT 196
7 May 28 0
:00
-8:00 NT_YK P%sT 1980
-8:00 NT_YK P%sT 1980
-8:00 Canada P%sT
-8:00 Canada P%sT
Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
Zone America/Dawson -9:17:40 - LMT 1900 Aug 20
...
...
test/sun/util/calendar/zi/tzdata/southamerica
浏览文件 @
6f02f9a3
...
@@ -1121,6 +1121,60 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
...
@@ -1121,6 +1121,60 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
# Chile
# Chile
# From Paul Eggert (2015-04-03):
# Shanks & Pottenger says America/Santiago introduced standard time in
# 1890 and rounds its UTC offset to 70W40; guess that in practice this
# was the same offset as in 1916-1919. It also says Pacific/Easter
# standardized on 109W22 in 1890; assume this didn't change the clocks.
#
# Dates for America/Santiago from 1910 to 2004 are primarily from
# the following source, cited by Oscar van Vlijmen (2006-10-08):
# [1] Chile Law
# http://www.webexhibits.org/daylightsaving/chile.html
# This contains a copy of a this official table:
# Cambios en la hora oficial de Chile desde 1900 (retrieved 2008-03-30)
# http://web.archive.org/web/20080330200901/http://www.horaoficial.cl/cambio.htm
# [1] needs several corrections, though.
#
# The first set of corrections is from:
# [2] History of the Official Time of Chile
# http://www.horaoficial.cl/ing/horaof_ing.html (retrieved 2012-03-06). See:
# http://web.archive.org/web/20120306042032/http://www.horaoficial.cl/ing/horaof_ing.html
# This is an English translation of:
# Historia de la hora oficial de Chile (retrieved 2012-10-24). See:
# http://web.archive.org/web/20121024234627/http://www.horaoficial.cl/horaof.htm
# A fancier Spanish version (requiring mouse-clicking) is at:
# http://www.horaoficial.cl/historia_hora.html
# Conflicts between [1] and [2] were resolved as follows:
#
# - [1] says the 1910 transition was Jan 1, [2] says Jan 10 and cites
# Boletín Nº 1, Aviso Nº 1 (1910). Go with [2].
#
# - [1] says SMT was -4:42:45, [2] says Chile's official time from
# 1916 to 1919 was -4:42:46.3, the meridian of Chile's National
# Astronomical Observatory (OAN), then located in what is now
# Quinta Normal in Santiago. Go with [2], rounding it to -4:42:46.
#
# - [1] says the 1918 transition was Sep 1, [2] says Sep 10 and cites
# Boletín Nº 22, Aviso Nº 129/1918 (1918-08-23). Go with [2].
#
# - [1] does not give times for transitions; assume they occur
# at midnight mainland time, the current common practice. However,
# go with [2]'s specification of 23:00 for the 1947-05-21 transition.
#
# Another correction to [1] is from Jesper Nørgaard Welen, who
# wrote (2006-10-08), "I think that there are some obvious mistakes in
# the suggested link from Oscar van Vlijmen,... for instance entry 66
# says that GMT-4 ended 1990-09-12 while entry 67 only begins GMT-3 at
# 1990-09-15 (they should have been 1990-09-15 and 1990-09-16
# respectively), but anyhow it clears up some doubts too."
#
# Data for Pacific/Easter from 1910 through 1967 come from Shanks &
# Pottenger. After that, for lack of better info assume
# Pacific/Easter is always two hours behind America/Santiago;
# this is known to work for DST transitions starting in 2008 and
# may well be true for earlier transitions.
# From Eduardo Krell (1995-10-19):
# From Eduardo Krell (1995-10-19):
# The law says to switch to DST at midnight [24:00] on the second SATURDAY
# The law says to switch to DST at midnight [24:00] on the second SATURDAY
# of October.... The law is the same for March and October.
# of October.... The law is the same for March and October.
...
@@ -1133,78 +1187,35 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
...
@@ -1133,78 +1187,35 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
# Because of the same drought, the government decided to end DST later,
# Because of the same drought, the government decided to end DST later,
# on April 3, (one-time change).
# on April 3, (one-time change).
# From Oscar van Vlijmen (2006-10-08):
# http://www.horaoficial.cl/cambio.htm
# From Jesper Nørgaard Welen (2006-10-08):
# I think that there are some obvious mistakes in the suggested link
# from Oscar van Vlijmen,... for instance entry 66 says that GMT-4
# ended 1990-09-12 while entry 67 only begins GMT-3 at 1990-09-15
# (they should have been 1990-09-15 and 1990-09-16 respectively), but
# anyhow it clears up some doubts too.
# From Paul Eggert (2014-08-12):
# The following data entries for Chile and America/Santiago are from
# <http://www.horaoficial.cl/horaof.htm> (2006-09-20), transcribed by
# Jesper Nørgaard Welen. The data entries for Pacific/Easter are from Shanks
# & Pottenger, except with DST transitions after 1932 cloned from
# America/Santiago. The pre-1980 Pacific/Easter data entries are dubious,
# but we have no other source.
# From Germán Poo-Caamaño (2008-03-03):
# From Germán Poo-Caamaño (2008-03-03):
# Due to drought, Chile extends Daylight Time in three weeks. This
# Due to drought, Chile extends Daylight Time in three weeks. This
# is one-time change (Saturday 3/29 at 24:00 for America/Santiago
# is one-time change (Saturday 3/29 at 24:00 for America/Santiago
# and Saturday 3/29 at 22:00 for Pacific/Easter)
# and Saturday 3/29 at 22:00 for Pacific/Easter)
# The Supreme Decree is located at
# The Supreme Decree is located at
# http://www.shoa.cl/servicios/supremo316.pdf
# http://www.shoa.cl/servicios/supremo316.pdf
# and the instructions for 2008 are located in:
#
# http://www.horaoficial.cl/cambio.htm
# From José Miguel Garrido (2008-03-05):
# From José Miguel Garrido (2008-03-05):
# ...
# You could see the announces of the change on
# http://www.shoa.cl/noticias/2008/04hora/hora.htm
# http://www.shoa.cl/noticias/2008/04hora/hora.htm
# From Angel Chiang (2010-03-04):
# From Angel Chiang (2010-03-04):
# Subject: DST in Chile exceptionally extended to 3 April due to earthquake
# Subject: DST in Chile exceptionally extended to 3 April due to earthquake
# http://www.gobiernodechile.cl/viewNoticia.aspx?idArticulo=30098
# http://www.gobiernodechile.cl/viewNoticia.aspx?idArticulo=30098
# (in Spanish, last paragraph).
#
#
# This is breaking news. There should be more information available later.
# From Arthur David Olson (2010-03-06):
# From Arthur David Olson (2010-03-06):
# Angel Chiang's message confirmed by Julio Pacheco; Julio provided a patch.
# Angel Chiang's message confirmed by Julio Pacheco; Julio provided a patch.
# From Glenn Eychaner (2011-03-02):
# It appears that the Chilean government has decided to postpone the
# change from summer time to winter time again, by three weeks to April
# 2nd:
# http://www.emol.com/noticias/nacional/detalle/detallenoticias.asp?idnoticia=467651
#
# This is not yet reflected in the official "cambio de hora" site, but
# probably will be soon:
# http://www.horaoficial.cl/cambio.htm
# From Arthur David Olson (2011-03-02):
# The emol.com article mentions a water shortage as the cause of the
# postponement, which may mean that it's not a permanent change.
# From Glenn Eychaner (2011-03-28):
# From Glenn Eychaner (2011-03-28):
# The article:
# http://diario.elmercurio.com/2011/03/28/_portada/_portada/noticias/7565897A-CA86-49E6-9E03-660B21A4883E.htm?id=3D{7565897A-CA86-49E6-9E03-660B21A4883E}
# http://diario.elmercurio.com/2011/03/28/_portada/_portada/noticias/7565897A-CA86-49E6-9E03-660B21A4883E.htm?id=3D{7565897A-CA86-49E6-9E03-660B21A4883E}
#
# In English:
# In English:
# Chile's clocks will go back an hour this year on the 7th of May instead
# Chile's clocks will go back an hour this year on the 7th of May instead
# of this Saturday. They will go forward again the 3rd Saturday in
# of this Saturday. They will go forward again the 3rd Saturday in
# August, not in October as they have since 1968. This is a pilot plan
# August, not in October as they have since 1968.
# which will be reevaluated in 2012.
# From Mauricio Parada (2012-02-22), translated by Glenn Eychaner (2012-02-23):
# From Mauricio Parada (2012-02-22), translated by Glenn Eychaner (2012-02-23):
# As stated in the website of the Chilean Energy Ministry
# As stated in the website of the Chilean Energy Ministry
# http://www.minenergia.cl/ministerio/noticias/generales/gobierno-anuncia-fechas-de-cambio-de.html
# http://www.minenergia.cl/ministerio/noticias/generales/gobierno-anuncia-fechas-de-cambio-de.html
# The Chilean Government has decided to postpone the entrance into winter time
# The Chilean Government has decided to postpone the entrance into winter time
# (to leave DST) from March 11 2012 to April 28th 2012. The decision has not
# (to leave DST) from March 11 2012 to April 28th 2012....
# been yet formalized but it will within the next days.
# Quote from the website communication:
# Quote from the website communication:
#
#
# 6. For the year 2012, the dates of entry into winter time will be as follows:
# 6. For the year 2012, the dates of entry into winter time will be as follows:
...
@@ -1237,17 +1248,9 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
...
@@ -1237,17 +1248,9 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
# From Paul Eggert (2015-03-03):
# From Paul Eggert (2015-03-03):
# For now, assume that the extension will persist indefinitely.
# For now, assume that the extension will persist indefinitely.
# NOTE: ChileAQ rules for Antarctic bases are stored separately in the
# 'antarctica' file.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Chile 1927 193
2
- Sep 1 0:00 1:00 S
Rule Chile 1927 193
1
- Sep 1 0:00 1:00 S
Rule Chile 1928 1932 - Apr 1 0:00 0 -
Rule Chile 1928 1932 - Apr 1 0:00 0 -
Rule Chile 1942 only - Jun 1 4:00u 0 -
Rule Chile 1942 only - Aug 1 5:00u 1:00 S
Rule Chile 1946 only - Jul 15 4:00u 1:00 S
Rule Chile 1946 only - Sep 1 3:00u 0:00 -
Rule Chile 1947 only - Apr 1 4:00u 0 -
Rule Chile 1968 only - Nov 3 4:00u 1:00 S
Rule Chile 1968 only - Nov 3 4:00u 1:00 S
Rule Chile 1969 only - Mar 30 3:00u 0 -
Rule Chile 1969 only - Mar 30 3:00u 0 -
Rule Chile 1969 only - Nov 23 4:00u 1:00 S
Rule Chile 1969 only - Nov 23 4:00u 1:00 S
...
@@ -1258,10 +1261,8 @@ Rule Chile 1972 1986 - Mar Sun>=9 3:00u 0 -
...
@@ -1258,10 +1261,8 @@ Rule Chile 1972 1986 - Mar Sun>=9 3:00u 0 -
Rule Chile 1973 only - Sep 30 4:00u 1:00 S
Rule Chile 1973 only - Sep 30 4:00u 1:00 S
Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1987 only - Apr 12 3:00u 0 -
Rule Chile 1987 only - Apr 12 3:00u 0 -
Rule Chile 1988 1989 - Mar Sun>=9 3:00u 0 -
Rule Chile 1988 1990 - Mar Sun>=9 3:00u 0 -
Rule Chile 1988 only - Oct Sun>=1 4:00u 1:00 S
Rule Chile 1988 1989 - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1989 only - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1990 only - Mar 18 3:00u 0 -
Rule Chile 1990 only - Sep 16 4:00u 1:00 S
Rule Chile 1990 only - Sep 16 4:00u 1:00 S
Rule Chile 1991 1996 - Mar Sun>=9 3:00u 0 -
Rule Chile 1991 1996 - Mar Sun>=9 3:00u 0 -
Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 S
Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 S
...
@@ -1284,15 +1285,21 @@ Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 S
...
@@ -1284,15 +1285,21 @@ Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 S
# (1996-09) says 1998-03-08. Ignore these.
# (1996-09) says 1998-03-08. Ignore these.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Santiago -4:42:46 - LMT 1890
Zone America/Santiago -4:42:46 - LMT 1890
-4:42:46 - SMT 1910
# Santiago Mean Time
-4:42:46 - SMT 1910
Jan 10
# Santiago Mean Time
-5:00 - CLT 1916 Jul 1 # Chile Time
-5:00 - CLT 1916 Jul 1 # Chile Time
-4:42:46 - SMT 1918 Sep 1 # Santiago Mean Time
-4:42:46 - SMT 1918 Sep 10
-4:00 - CLT 1919 Jul 1 # Chile Time
-4:00 - CLT 1919 Jul 1
-4:42:46 - SMT 1927 Sep 1 # Santiago Mean Time
-4:42:46 - SMT 1927 Sep 1
-5:00 Chile CL%sT 1947 May 22 # Chile Time
-5:00 Chile CL%sT 1932 Sep 1
-4:00 - CLT 1942 Jun 1
-5:00 - CLT 1942 Aug 1
-4:00 - CLT 1946 Jul 15
-4:00 1:00 CLST 1946 Sep 1 # central Chile
-4:00 - CLT 1947 Apr 1
-5:00 - CLT 1947 May 21 23:00
-4:00 Chile CL%sT 2015 Apr 26 3:00u
-4:00 Chile CL%sT 2015 Apr 26 3:00u
-3:00 - CLT
-3:00 - CLT
Zone Pacific/Easter -7:17:
44
- LMT 1890
Zone Pacific/Easter -7:17:
28
- LMT 1890
-7:17:28 - EMT 1932 Sep # Easter Mean Time
-7:17:28 - EMT 1932 Sep # Easter Mean Time
-7:00 Chile EAS%sT 1982 Mar 14 3:00u # Easter Time
-7:00 Chile EAS%sT 1982 Mar 14 3:00u # Easter Time
-6:00 Chile EAS%sT 2015 Apr 26 3:00u
-6:00 Chile EAS%sT 2015 Apr 26 3:00u
...
@@ -1302,6 +1309,25 @@ Zone Pacific/Easter -7:17:44 - LMT 1890
...
@@ -1302,6 +1309,25 @@ Zone Pacific/Easter -7:17:44 - LMT 1890
# Other Chilean locations, including Juan Fernández Is, Desventuradas Is,
# Other Chilean locations, including Juan Fernández Is, Desventuradas Is,
# and Antarctic bases, are like America/Santiago.
# and Antarctic bases, are like America/Santiago.
# Antarctic base using South American rules
# (See the file 'antarctica' for more.)
#
# Palmer, Anvers Island, since 1965 (moved 2 miles in 1968)
#
# From Ethan Dicks (1996-10-06):
# It keeps the same time as Punta Arenas, Chile, because, just like us
# and the South Pole, that's the other end of their supply line....
# I verified with someone who was there that since 1980,
# Palmer has followed Chile. Prior to that, before the Falklands War,
# Palmer used to be supplied from Argentina.
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Palmer 0 - zzz 1965
-4:00 Arg AR%sT 1969 Oct 5
-3:00 Arg AR%sT 1982 May
-4:00 Chile CL%sT 2015 Apr 26 3:00u
-3:00 - CLT
# Colombia
# Colombia
# Milne gives 4:56:16.4 for Bogotá time in 1899; round to nearest. He writes,
# Milne gives 4:56:16.4 for Bogotá time in 1899; round to nearest. He writes,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录