Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(125)

Side by Side Diff: Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.cpp

Issue 7145023: Merge 88139 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/782/
Patch Set: Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010 Google Inc. All rights reserved. 2 * Copyright (c) 2010 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 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 // normalization (e.g., Arabic text). Unless the run contains the diacritica l marks, 360 // normalization (e.g., Arabic text). Unless the run contains the diacritica l marks,
361 // Harfbuzz will do the same thing for us using the GSUB table. 361 // Harfbuzz will do the same thing for us using the GSUB table.
362 // 2) Convert spacing characters into plain spaces, as some fonts will provi de glyphs 362 // 2) Convert spacing characters into plain spaces, as some fonts will provi de glyphs
363 // for characters like '\n' otherwise. 363 // for characters like '\n' otherwise.
364 // 3) Convert mirrored characters such as parenthesis for rtl text. 364 // 3) Convert mirrored characters such as parenthesis for rtl text.
365 365
366 // Convert to NFC form if the text has diacritical marks. 366 // Convert to NFC form if the text has diacritical marks.
367 icu::UnicodeString normalizedString; 367 icu::UnicodeString normalizedString;
368 UErrorCode error = U_ZERO_ERROR; 368 UErrorCode error = U_ZERO_ERROR;
369 369
370 for (int16_t i = 0; i < originalRun.length(); ++i) { 370 for (int i = 0; i < originalRun.length(); ++i) {
371 UChar ch = originalRun[i]; 371 UChar ch = originalRun[i];
372 if (::ublock_getCode(ch) == UBLOCK_COMBINING_DIACRITICAL_MARKS) { 372 if (::ublock_getCode(ch) == UBLOCK_COMBINING_DIACRITICAL_MARKS) {
373 icu::Normalizer::normalize(icu::UnicodeString(originalRun.characters (), 373 icu::Normalizer::normalize(icu::UnicodeString(originalRun.characters (),
374 originalRun.length()), UNORM_NFC, 0 /* no options */, 374 originalRun.length()), UNORM_NFC, 0 /* no options */,
375 normalizedString, error); 375 normalizedString, error);
376 if (U_FAILURE(error)) 376 if (U_FAILURE(error))
377 return originalRun; 377 return originalRun;
378 break; 378 break;
379 } 379 }
380 } 380 }
(...skipping 12 matching lines...) Expand all
393 normalizedBuffer = adoptArrayPtr(new UChar[normalizedBufferLength + 1]); 393 normalizedBuffer = adoptArrayPtr(new UChar[normalizedBufferLength + 1]);
394 394
395 normalizeSpacesAndMirrorChars(sourceText, originalRun.rtl(), normalizedBuffe r.get(), normalizedBufferLength); 395 normalizeSpacesAndMirrorChars(sourceText, originalRun.rtl(), normalizedBuffe r.get(), normalizedBufferLength);
396 396
397 normalizedRun = adoptPtr(new TextRun(originalRun)); 397 normalizedRun = adoptPtr(new TextRun(originalRun));
398 normalizedRun->setText(normalizedBuffer.get(), normalizedBufferLength); 398 normalizedRun->setText(normalizedBuffer.get(), normalizedBufferLength);
399 return *normalizedRun; 399 return *normalizedRun;
400 } 400 }
401 401
402 } // namespace WebCore 402 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/WebCore/platform/graphics/WidthIterator.cpp ('k') | Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698