OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008 Apple 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 | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 for (i = 0; i < 0x20; ++i) | 166 for (i = 0; i < 0x20; ++i) |
167 buffer[i] = zeroWidthSpace; | 167 buffer[i] = zeroWidthSpace; |
168 for (i = 0x7F; i < 0xA0; i++) | 168 for (i = 0x7F; i < 0xA0; i++) |
169 buffer[i] = zeroWidthSpace; | 169 buffer[i] = zeroWidthSpace; |
170 buffer[softHyphen] = zeroWidthSpace; | 170 buffer[softHyphen] = zeroWidthSpace; |
171 | 171 |
172 // \n, \t, and nonbreaking space must render as a space. | 172 // \n, \t, and nonbreaking space must render as a space. |
173 buffer[newlineCharacter] = space; | 173 buffer[newlineCharacter] = space; |
174 buffer[characterTabulation] = space; | 174 buffer[characterTabulation] = space; |
175 buffer[noBreakSpace] = space; | 175 buffer[noBreakSpace] = space; |
| 176 } else if (start == (arabicLetterMark & ~(GlyphPage::size - 1)))
{ |
| 177 buffer[arabicLetterMark - start] = zeroWidthSpace; |
176 } else if (start == (leftToRightMark & ~(GlyphPage::size - 1)))
{ | 178 } else if (start == (leftToRightMark & ~(GlyphPage::size - 1)))
{ |
177 // LRM, RLM, LRE, RLE, ZWNJ, ZWJ, and PDF must not render at
all. | 179 // LRM, RLM, LRE, RLE, ZWNJ, ZWJ, and PDF must not render at
all. |
178 buffer[leftToRightMark - start] = zeroWidthSpace; | 180 buffer[leftToRightMark - start] = zeroWidthSpace; |
179 buffer[rightToLeftMark - start] = zeroWidthSpace; | 181 buffer[rightToLeftMark - start] = zeroWidthSpace; |
180 buffer[leftToRightEmbed - start] = zeroWidthSpace; | 182 buffer[leftToRightEmbed - start] = zeroWidthSpace; |
181 buffer[rightToLeftEmbed - start] = zeroWidthSpace; | 183 buffer[rightToLeftEmbed - start] = zeroWidthSpace; |
182 buffer[leftToRightOverride - start] = zeroWidthSpace; | 184 buffer[leftToRightOverride - start] = zeroWidthSpace; |
183 buffer[rightToLeftOverride - start] = zeroWidthSpace; | 185 buffer[rightToLeftOverride - start] = zeroWidthSpace; |
184 buffer[zeroWidthNonJoiner - start] = zeroWidthSpace; | 186 buffer[zeroWidthNonJoiner - start] = zeroWidthSpace; |
185 buffer[zeroWidthJoiner - start] = zeroWidthSpace; | 187 buffer[zeroWidthJoiner - start] = zeroWidthSpace; |
186 buffer[popDirectionalFormatting - start] = zeroWidthSpace; | 188 buffer[popDirectionalFormatting - start] = zeroWidthSpace; |
| 189 buffer[activateArabicFormShaping - start] = zeroWidthSpace; |
| 190 buffer[activateSymmetricSwapping - start] = zeroWidthSpace; |
| 191 buffer[firstStrongIsolate - start] = zeroWidthSpace; |
| 192 buffer[inhibitArabicFormShaping - start] = zeroWidthSpace; |
| 193 buffer[inhibitSymmetricSwapping - start] = zeroWidthSpace; |
| 194 buffer[leftToRightIsolate - start] = zeroWidthSpace; |
| 195 buffer[nationalDigitShapes - start] = zeroWidthSpace; |
| 196 buffer[nominalDigitShapes - start] = zeroWidthSpace; |
| 197 buffer[popDirectionalIsolate - start] = zeroWidthSpace; |
| 198 buffer[rightToLeftIsolate - start] = zeroWidthSpace; |
187 } else if (start == (objectReplacementCharacter & ~(GlyphPage::s
ize - 1))) { | 199 } else if (start == (objectReplacementCharacter & ~(GlyphPage::s
ize - 1))) { |
188 // Object replacement character must not render at all. | 200 // Object replacement character must not render at all. |
189 buffer[objectReplacementCharacter - start] = zeroWidthSpace; | 201 buffer[objectReplacementCharacter - start] = zeroWidthSpace; |
190 } else if (start == (zeroWidthNoBreakSpace & ~(GlyphPage::size -
1))) { | 202 } else if (start == (zeroWidthNoBreakSpace & ~(GlyphPage::size -
1))) { |
191 // ZWNBS/BOM must not render at all. | 203 // ZWNBS/BOM must not render at all. |
192 buffer[zeroWidthNoBreakSpace - start] = zeroWidthSpace; | 204 buffer[zeroWidthNoBreakSpace - start] = zeroWidthSpace; |
193 } | 205 } |
194 } else { | 206 } else { |
195 bufferLength = GlyphPage::size * 2; | 207 bufferLength = GlyphPage::size * 2; |
196 for (i = 0; i < GlyphPage::size; i++) { | 208 for (i = 0; i < GlyphPage::size; i++) { |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
378 if (level > fontData->maxGlyphPageTreeLevel()) | 390 if (level > fontData->maxGlyphPageTreeLevel()) |
379 return; | 391 return; |
380 | 392 |
381 GlyphPageTreeNodeMap::iterator end = m_children.end(); | 393 GlyphPageTreeNodeMap::iterator end = m_children.end(); |
382 for (GlyphPageTreeNodeMap::iterator it = m_children.begin(); it != end; ++it
) | 394 for (GlyphPageTreeNodeMap::iterator it = m_children.begin(); it != end; ++it
) |
383 it->value->pruneFontData(fontData, level); | 395 it->value->pruneFontData(fontData, level); |
384 } | 396 } |
385 | 397 |
386 } // namespace blink | 398 } // namespace blink |
387 | 399 |
OLD | NEW |