| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller ( mueller@kde.org ) | 4 * (C) 2001 Dirk Mueller ( mueller@kde.org ) |
| 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2013 Apple Inc. All | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2013 Apple Inc. All |
| 6 * rights reserved. | 6 * rights reserved. |
| 7 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) | 7 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) |
| 8 * | 8 * |
| 9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
| 10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
| (...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 644 const char* locale_for_conversion = 0; | 644 const char* locale_for_conversion = 0; |
| 645 if (LocaleIdMatchesLang(locale_identifier, "tr") || | 645 if (LocaleIdMatchesLang(locale_identifier, "tr") || |
| 646 LocaleIdMatchesLang(locale_identifier, "az")) | 646 LocaleIdMatchesLang(locale_identifier, "az")) |
| 647 locale_for_conversion = "tr"; | 647 locale_for_conversion = "tr"; |
| 648 else if (LocaleIdMatchesLang(locale_identifier, "lt")) | 648 else if (LocaleIdMatchesLang(locale_identifier, "lt")) |
| 649 locale_for_conversion = "lt"; | 649 locale_for_conversion = "lt"; |
| 650 else | 650 else |
| 651 return LowerUnicode(); | 651 return LowerUnicode(); |
| 652 | 652 |
| 653 if (length_ > static_cast<unsigned>(numeric_limits<int32_t>::max())) | 653 if (length_ > static_cast<unsigned>(numeric_limits<int32_t>::max())) |
| 654 CRASH(); | 654 IMMEDIATE_CRASH(); |
| 655 int length = length_; | 655 int length = length_; |
| 656 | 656 |
| 657 RefPtr<StringImpl> upconverted = UpconvertedString(); | 657 RefPtr<StringImpl> upconverted = UpconvertedString(); |
| 658 const UChar* source16 = upconverted->Characters16(); | 658 const UChar* source16 = upconverted->Characters16(); |
| 659 return CaseConvert(source16, length, u_strToLower, locale_for_conversion, | 659 return CaseConvert(source16, length, u_strToLower, locale_for_conversion, |
| 660 this); | 660 this); |
| 661 } | 661 } |
| 662 | 662 |
| 663 PassRefPtr<StringImpl> StringImpl::UpperUnicode( | 663 PassRefPtr<StringImpl> StringImpl::UpperUnicode( |
| 664 const AtomicString& locale_identifier) { | 664 const AtomicString& locale_identifier) { |
| 665 // Use the more-optimized code path most of the time. | 665 // Use the more-optimized code path most of the time. |
| 666 // Only Turkic (tr and az) languages, Greek and Lithuanian require | 666 // Only Turkic (tr and az) languages, Greek and Lithuanian require |
| 667 // locale-specific uppercasing rules. | 667 // locale-specific uppercasing rules. |
| 668 const char* locale_for_conversion = 0; | 668 const char* locale_for_conversion = 0; |
| 669 if (LocaleIdMatchesLang(locale_identifier, "tr") || | 669 if (LocaleIdMatchesLang(locale_identifier, "tr") || |
| 670 LocaleIdMatchesLang(locale_identifier, "az")) | 670 LocaleIdMatchesLang(locale_identifier, "az")) |
| 671 locale_for_conversion = "tr"; | 671 locale_for_conversion = "tr"; |
| 672 else if (LocaleIdMatchesLang(locale_identifier, "el")) | 672 else if (LocaleIdMatchesLang(locale_identifier, "el")) |
| 673 locale_for_conversion = "el"; | 673 locale_for_conversion = "el"; |
| 674 else if (LocaleIdMatchesLang(locale_identifier, "lt")) | 674 else if (LocaleIdMatchesLang(locale_identifier, "lt")) |
| 675 locale_for_conversion = "lt"; | 675 locale_for_conversion = "lt"; |
| 676 else | 676 else |
| 677 return UpperUnicode(); | 677 return UpperUnicode(); |
| 678 | 678 |
| 679 if (length_ > static_cast<unsigned>(numeric_limits<int32_t>::max())) | 679 if (length_ > static_cast<unsigned>(numeric_limits<int32_t>::max())) |
| 680 CRASH(); | 680 IMMEDIATE_CRASH(); |
| 681 int length = length_; | 681 int length = length_; |
| 682 | 682 |
| 683 RefPtr<StringImpl> upconverted = UpconvertedString(); | 683 RefPtr<StringImpl> upconverted = UpconvertedString(); |
| 684 const UChar* source16 = upconverted->Characters16(); | 684 const UChar* source16 = upconverted->Characters16(); |
| 685 | 685 |
| 686 return CaseConvert(source16, length, u_strToUpper, locale_for_conversion, | 686 return CaseConvert(source16, length, u_strToUpper, locale_for_conversion, |
| 687 this); | 687 this); |
| 688 } | 688 } |
| 689 | 689 |
| 690 PassRefPtr<StringImpl> StringImpl::Fill(UChar character) { | 690 PassRefPtr<StringImpl> StringImpl::Fill(UChar character) { |
| (...skipping 1323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2014 } else if (LocaleIdMatchesLang(locale_identifier, "lt")) { | 2014 } else if (LocaleIdMatchesLang(locale_identifier, "lt")) { |
| 2015 // TODO(rob.buis) implement upper-casing rules for lt | 2015 // TODO(rob.buis) implement upper-casing rules for lt |
| 2016 // like in StringImpl::upper(locale). | 2016 // like in StringImpl::upper(locale). |
| 2017 } | 2017 } |
| 2018 } | 2018 } |
| 2019 | 2019 |
| 2020 return ToUpper(c); | 2020 return ToUpper(c); |
| 2021 } | 2021 } |
| 2022 | 2022 |
| 2023 } // namespace WTF | 2023 } // namespace WTF |
| OLD | NEW |