| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 break; | 162 break; |
| 163 ++count; | 163 ++count; |
| 164 } | 164 } |
| 165 return count; | 165 return count; |
| 166 } | 166 } |
| 167 | 167 |
| 168 static void commitLiteralToken(StringBuilder& literalBuffer, StringBuilder& conv
erted) | 168 static void commitLiteralToken(StringBuilder& literalBuffer, StringBuilder& conv
erted) |
| 169 { | 169 { |
| 170 if (literalBuffer.length() <= 0) | 170 if (literalBuffer.length() <= 0) |
| 171 return; | 171 return; |
| 172 DateTimeFormat::quoteAndappend(literalBuffer.toString(), converted); | 172 DateTimeFormat::quoteAndAppendLiteral(literalBuffer.toString(), converted); |
| 173 literalBuffer.clear(); | 173 literalBuffer.clear(); |
| 174 } | 174 } |
| 175 | 175 |
| 176 // This function converts Windows date/time pattern format [1][2] into LDML date | 176 // This function converts Windows date/time pattern format [1][2] into LDML date |
| 177 // format pattern [3]. | 177 // format pattern [3]. |
| 178 // | 178 // |
| 179 // i.e. | 179 // i.e. |
| 180 // We set h, H, m, s, d, dd, M, or y as is. They have same meaning in both of | 180 // We set h, H, m, s, d, dd, M, or y as is. They have same meaning in both of |
| 181 // Windows and LDML. | 181 // Windows and LDML. |
| 182 // We need to convert the following patterns: | 182 // We need to convert the following patterns: |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 226 commitLiteralToken(literalBuffer, converted); | 226 commitLiteralToken(literalBuffer, converted); |
| 227 unsigned symbolStart = i; | 227 unsigned symbolStart = i; |
| 228 unsigned count = countContinuousLetters(format, i); | 228 unsigned count = countContinuousLetters(format, i); |
| 229 i += count - 1; | 229 i += count - 1; |
| 230 if (ch == 'h' || ch == 'H' || ch == 'm' || ch == 's' || ch == 'M' ||
ch == 'y') { | 230 if (ch == 'h' || ch == 'H' || ch == 'm' || ch == 's' || ch == 'M' ||
ch == 'y') { |
| 231 converted.append(format, symbolStart, count); | 231 converted.append(format, symbolStart, count); |
| 232 } else if (ch == 'd') { | 232 } else if (ch == 'd') { |
| 233 if (count <= 2) | 233 if (count <= 2) |
| 234 converted.append(format, symbolStart, count); | 234 converted.append(format, symbolStart, count); |
| 235 else if (count == 3) | 235 else if (count == 3) |
| 236 converted.append("EEE"); | 236 converted.appendLiteral("EEE"); |
| 237 else | 237 else |
| 238 converted.append("EEEE"); | 238 converted.appendLiteral("EEEE"); |
| 239 } else if (ch == 'g') { | 239 } else if (ch == 'g') { |
| 240 if (count == 1) { | 240 if (count == 1) { |
| 241 converted.append('G'); | 241 converted.append('G'); |
| 242 } else { | 242 } else { |
| 243 // gg means imperial era in Windows. | 243 // gg means imperial era in Windows. |
| 244 // Just ignore it. | 244 // Just ignore it. |
| 245 } | 245 } |
| 246 } else if (ch == 't') { | 246 } else if (ch == 't') { |
| 247 converted.append('a'); | 247 converted.append('a'); |
| 248 } else { | 248 } else { |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 374 String LocaleWin::shortTimeFormat() | 374 String LocaleWin::shortTimeFormat() |
| 375 { | 375 { |
| 376 if (!m_timeFormatWithoutSeconds.isNull()) | 376 if (!m_timeFormatWithoutSeconds.isNull()) |
| 377 return m_timeFormatWithoutSeconds; | 377 return m_timeFormatWithoutSeconds; |
| 378 String format = getLocaleInfoString(LOCALE_SSHORTTIME); | 378 String format = getLocaleInfoString(LOCALE_SSHORTTIME); |
| 379 // Vista or older Windows doesn't support LOCALE_SSHORTTIME. | 379 // Vista or older Windows doesn't support LOCALE_SSHORTTIME. |
| 380 if (format.isEmpty()) { | 380 if (format.isEmpty()) { |
| 381 format = getLocaleInfoString(LOCALE_STIMEFORMAT); | 381 format = getLocaleInfoString(LOCALE_STIMEFORMAT); |
| 382 StringBuilder builder; | 382 StringBuilder builder; |
| 383 builder.append(getLocaleInfoString(LOCALE_STIME)); | 383 builder.append(getLocaleInfoString(LOCALE_STIME)); |
| 384 builder.append("ss"); | 384 builder.appendLiteral("ss"); |
| 385 size_t pos = format.reverseFind(builder.toString()); | 385 size_t pos = format.reverseFind(builder.toString()); |
| 386 if (pos != kNotFound) | 386 if (pos != kNotFound) |
| 387 format.remove(pos, builder.length()); | 387 format.remove(pos, builder.length()); |
| 388 } | 388 } |
| 389 m_timeFormatWithoutSeconds = convertWindowsDateTimeFormat(format); | 389 m_timeFormatWithoutSeconds = convertWindowsDateTimeFormat(format); |
| 390 return m_timeFormatWithoutSeconds; | 390 return m_timeFormatWithoutSeconds; |
| 391 } | 391 } |
| 392 | 392 |
| 393 String LocaleWin::dateTimeFormatWithSeconds() | 393 String LocaleWin::dateTimeFormatWithSeconds() |
| 394 { | 394 { |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 506 case NegativeFormatSignPrefix: // Fall through. | 506 case NegativeFormatSignPrefix: // Fall through. |
| 507 default: | 507 default: |
| 508 negativePrefix = negativeSign; | 508 negativePrefix = negativeSign; |
| 509 break; | 509 break; |
| 510 } | 510 } |
| 511 m_didInitializeNumberData = true; | 511 m_didInitializeNumberData = true; |
| 512 setLocaleData(symbols, emptyString(), emptyString(), negativePrefix, negativ
eSuffix); | 512 setLocaleData(symbols, emptyString(), emptyString(), negativePrefix, negativ
eSuffix); |
| 513 } | 513 } |
| 514 | 514 |
| 515 } | 515 } |
| OLD | NEW |