| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. |
| 3 * Copyright (C) 2008, 2009, 2010, 2011 Google Inc. All rights reserved. | 3 * Copyright (C) 2008, 2009, 2010, 2011 Google Inc. All rights reserved. |
| 4 * Copyright (C) 2011 Igalia S.L. | 4 * Copyright (C) 2011 Igalia S.L. |
| 5 * Copyright (C) 2011 Motorola Mobility. All rights reserved. | 5 * Copyright (C) 2011 Motorola Mobility. All rights reserved. |
| 6 * | 6 * |
| 7 * Redistribution and use in source and binary forms, with or without | 7 * Redistribution and use in source and binary forms, with or without |
| 8 * modification, are permitted provided that the following conditions | 8 * modification, are permitted provided that the following conditions |
| 9 * are met: | 9 * are met: |
| 10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
| (...skipping 736 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 747 | 747 |
| 748 if (string.isEmpty()) { | 748 if (string.isEmpty()) { |
| 749 paragraph->appendChild(createBlockPlaceholderElement(document)); | 749 paragraph->appendChild(createBlockPlaceholderElement(document)); |
| 750 return; | 750 return; |
| 751 } | 751 } |
| 752 | 752 |
| 753 ASSERT(string.find('\n') == kNotFound); | 753 ASSERT(string.find('\n') == kNotFound); |
| 754 | 754 |
| 755 Vector<String> tabList; | 755 Vector<String> tabList; |
| 756 string.split('\t', true, tabList); | 756 string.split('\t', true, tabList); |
| 757 String tabText = emptyString(); | 757 StringBuilder tabText; |
| 758 bool first = true; | 758 bool first = true; |
| 759 size_t numEntries = tabList.size(); | 759 size_t numEntries = tabList.size(); |
| 760 for (size_t i = 0; i < numEntries; ++i) { | 760 for (size_t i = 0; i < numEntries; ++i) { |
| 761 const String& s = tabList[i]; | 761 const String& s = tabList[i]; |
| 762 | 762 |
| 763 // append the non-tab textual part | 763 // append the non-tab textual part |
| 764 if (!s.isEmpty()) { | 764 if (!s.isEmpty()) { |
| 765 if (!tabText.isEmpty()) { | 765 if (!tabText.isEmpty()) { |
| 766 paragraph->appendChild(createTabSpanElement(document, tabText)); | 766 paragraph->appendChild(createTabSpanElement(document, tabText.to
String())); |
| 767 tabText = emptyString(); | 767 tabText.clear(); |
| 768 } | 768 } |
| 769 RefPtr<Node> textNode = document.createTextNode(stringWithRebalanced
Whitespace(s, first, i + 1 == numEntries)); | 769 RefPtr<Node> textNode = document.createTextNode(stringWithRebalanced
Whitespace(s, first, i + 1 == numEntries)); |
| 770 paragraph->appendChild(textNode.release()); | 770 paragraph->appendChild(textNode.release()); |
| 771 } | 771 } |
| 772 | 772 |
| 773 // there is a tab after every entry, except the last entry | 773 // there is a tab after every entry, except the last entry |
| 774 // (if the last character is a tab, the list gets an extra empty entry) | 774 // (if the last character is a tab, the list gets an extra empty entry) |
| 775 if (i + 1 != numEntries) | 775 if (i + 1 != numEntries) |
| 776 tabText.append('\t'); | 776 tabText.append('\t'); |
| 777 else if (!tabText.isEmpty()) | 777 else if (!tabText.isEmpty()) |
| 778 paragraph->appendChild(createTabSpanElement(document, tabText)); | 778 paragraph->appendChild(createTabSpanElement(document, tabText.toStri
ng())); |
| 779 | 779 |
| 780 first = false; | 780 first = false; |
| 781 } | 781 } |
| 782 } | 782 } |
| 783 | 783 |
| 784 bool isPlainTextMarkup(Node *node) | 784 bool isPlainTextMarkup(Node *node) |
| 785 { | 785 { |
| 786 if (!node->isElementNode() || !node->hasTagName(divTag) || toElement(node)->
hasAttributes()) | 786 if (!node->isElementNode() || !node->hasTagName(divTag) || toElement(node)->
hasAttributes()) |
| 787 return false; | 787 return false; |
| 788 | 788 |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1077 return; | 1077 return; |
| 1078 | 1078 |
| 1079 RefPtr<Text> textNode = toText(node.get()); | 1079 RefPtr<Text> textNode = toText(node.get()); |
| 1080 RefPtr<Text> textNext = toText(next); | 1080 RefPtr<Text> textNext = toText(next); |
| 1081 textNode->appendData(textNext->data()); | 1081 textNode->appendData(textNext->data()); |
| 1082 if (textNext->parentNode()) // Might have been removed by mutation event. | 1082 if (textNext->parentNode()) // Might have been removed by mutation event. |
| 1083 textNext->remove(exceptionState); | 1083 textNext->remove(exceptionState); |
| 1084 } | 1084 } |
| 1085 | 1085 |
| 1086 } | 1086 } |
| OLD | NEW |