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

Side by Side Diff: third_party/WebKit/Source/platform/text/LineEnding.cpp

Issue 2872133004: blink style: Update one class cluster, delete one class, change comment style. (Closed)
Patch Set: fun Created 3 years, 7 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
« no previous file with comments | « third_party/WebKit/Source/platform/testing/PaintPrinters.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2010 Google Inc. All rights reserved. 3 * Copyright (C) 2010 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 18 matching lines...) Expand all
29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 */ 30 */
31 31
32 #include "platform/text/LineEnding.h" 32 #include "platform/text/LineEnding.h"
33 33
34 #include "platform/wtf/Allocator.h" 34 #include "platform/wtf/Allocator.h"
35 #include "platform/wtf/Noncopyable.h" 35 #include "platform/wtf/Noncopyable.h"
36 #include "platform/wtf/text/CString.h" 36 #include "platform/wtf/text/CString.h"
37 #include "platform/wtf/text/WTFString.h" 37 #include "platform/wtf/text/WTFString.h"
38 38
39 namespace blink {
39 namespace { 40 namespace {
40 41
41 class OutputBuffer { 42 class OutputBuffer {
42 STACK_ALLOCATED(); 43 STACK_ALLOCATED();
43 WTF_MAKE_NONCOPYABLE(OutputBuffer); 44 WTF_MAKE_NONCOPYABLE(OutputBuffer);
44 45
45 public: 46 public:
46 OutputBuffer() {} 47 OutputBuffer() {}
47 virtual char* allocate(size_t) = 0; 48 virtual char* Allocate(size_t) = 0;
48 virtual void copy(const CString&) = 0; 49 virtual void Copy(const CString&) = 0;
49 virtual ~OutputBuffer() {} 50 virtual ~OutputBuffer() {}
50 }; 51 };
51 52
52 class CStringBuffer final : public OutputBuffer { 53 class CStringBuffer final : public OutputBuffer {
53 public: 54 public:
54 CStringBuffer(CString& buffer) : m_buffer(buffer) {} 55 CStringBuffer(CString& buffer) : buffer_(buffer) {}
55 ~CStringBuffer() override {} 56 ~CStringBuffer() override {}
56 57
57 char* allocate(size_t size) override { 58 char* Allocate(size_t size) override {
58 char* ptr; 59 char* ptr;
59 m_buffer = CString::CreateUninitialized(size, ptr); 60 buffer_ = CString::CreateUninitialized(size, ptr);
60 return ptr; 61 return ptr;
61 } 62 }
62 63
63 void copy(const CString& source) override { m_buffer = source; } 64 void Copy(const CString& source) override { buffer_ = source; }
64 65
65 const CString& buffer() const { return m_buffer; } 66 const CString& Buffer() const { return buffer_; }
66 67
67 private: 68 private:
68 CString m_buffer; 69 CString buffer_;
69 }; 70 };
70 71
71 class VectorCharAppendBuffer final : public OutputBuffer { 72 class VectorCharAppendBuffer final : public OutputBuffer {
72 public: 73 public:
73 VectorCharAppendBuffer(Vector<char>& buffer) : m_buffer(buffer) {} 74 VectorCharAppendBuffer(Vector<char>& buffer) : buffer_(buffer) {}
74 ~VectorCharAppendBuffer() override {} 75 ~VectorCharAppendBuffer() override {}
75 76
76 char* allocate(size_t size) override { 77 char* Allocate(size_t size) override {
77 size_t oldSize = m_buffer.size(); 78 size_t old_size = buffer_.size();
78 m_buffer.Grow(oldSize + size); 79 buffer_.Grow(old_size + size);
79 return m_buffer.data() + oldSize; 80 return buffer_.data() + old_size;
80 } 81 }
81 82
82 void copy(const CString& source) override { 83 void Copy(const CString& source) override {
83 m_buffer.Append(source.data(), source.length()); 84 buffer_.Append(source.data(), source.length());
84 } 85 }
85 86
86 private: 87 private:
87 Vector<char>& m_buffer; 88 Vector<char>& buffer_;
88 }; 89 };
89 90
90 void internalNormalizeLineEndingsToCRLF(const CString& from, 91 void InternalNormalizeLineEndingsToCRLF(const CString& from,
91 OutputBuffer& buffer) { 92 OutputBuffer& buffer) {
92 // Compute the new length. 93 // Compute the new length.
93 size_t newLen = 0; 94 size_t new_len = 0;
94 const char* p = from.data(); 95 const char* p = from.data();
95 while (p < from.data() + from.length()) { 96 while (p < from.data() + from.length()) {
96 char c = *p++; 97 char c = *p++;
97 if (c == '\r') { 98 if (c == '\r') {
98 // Safe to look ahead because of trailing '\0'. 99 // Safe to look ahead because of trailing '\0'.
99 if (*p != '\n') { 100 if (*p != '\n') {
100 // Turn CR into CRLF. 101 // Turn CR into CRLF.
101 newLen += 2; 102 new_len += 2;
102 } 103 }
103 } else if (c == '\n') { 104 } else if (c == '\n') {
104 // Turn LF into CRLF. 105 // Turn LF into CRLF.
105 newLen += 2; 106 new_len += 2;
106 } else { 107 } else {
107 // Leave other characters alone. 108 // Leave other characters alone.
108 newLen += 1; 109 new_len += 1;
109 } 110 }
110 } 111 }
111 if (newLen < from.length()) 112 if (new_len < from.length())
112 return; 113 return;
113 114
114 if (newLen == from.length()) { 115 if (new_len == from.length()) {
115 buffer.copy(from); 116 buffer.Copy(from);
116 return; 117 return;
117 } 118 }
118 119
119 p = from.data(); 120 p = from.data();
120 char* q = buffer.allocate(newLen); 121 char* q = buffer.Allocate(new_len);
121 122
122 // Make a copy of the string. 123 // Make a copy of the string.
123 while (p < from.data() + from.length()) { 124 while (p < from.data() + from.length()) {
124 char c = *p++; 125 char c = *p++;
125 if (c == '\r') { 126 if (c == '\r') {
126 // Safe to look ahead because of trailing '\0'. 127 // Safe to look ahead because of trailing '\0'.
127 if (*p != '\n') { 128 if (*p != '\n') {
128 // Turn CR into CRLF. 129 // Turn CR into CRLF.
129 *q++ = '\r'; 130 *q++ = '\r';
130 *q++ = '\n'; 131 *q++ = '\n';
131 } 132 }
132 } else if (c == '\n') { 133 } else if (c == '\n') {
133 // Turn LF into CRLF. 134 // Turn LF into CRLF.
134 *q++ = '\r'; 135 *q++ = '\r';
135 *q++ = '\n'; 136 *q++ = '\n';
136 } else { 137 } else {
137 // Leave other characters alone. 138 // Leave other characters alone.
138 *q++ = c; 139 *q++ = c;
139 } 140 }
140 } 141 }
141 } 142 }
142 143
143 } // namespace; 144 } // namespace
144
145 namespace blink {
146 145
147 void NormalizeLineEndingsToLF(const CString& from, Vector<char>& result) { 146 void NormalizeLineEndingsToLF(const CString& from, Vector<char>& result) {
148 // Compute the new length. 147 // Compute the new length.
149 size_t new_len = 0; 148 size_t new_len = 0;
150 bool need_fix = false; 149 bool need_fix = false;
151 const char* p = from.data(); 150 const char* p = from.data();
152 char from_ending_char = '\r'; 151 char from_ending_char = '\r';
153 char to_ending_char = '\n'; 152 char to_ending_char = '\n';
154 while (p < from.data() + from.length()) { 153 while (p < from.data() + from.length()) {
155 char c = *p++; 154 char c = *p++;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 *q++ = c; 190 *q++ = c;
192 } 191 }
193 } 192 }
194 } 193 }
195 194
196 CString NormalizeLineEndingsToCRLF(const CString& from) { 195 CString NormalizeLineEndingsToCRLF(const CString& from) {
197 if (!from.length()) 196 if (!from.length())
198 return from; 197 return from;
199 CString result; 198 CString result;
200 CStringBuffer buffer(result); 199 CStringBuffer buffer(result);
201 internalNormalizeLineEndingsToCRLF(from, buffer); 200 InternalNormalizeLineEndingsToCRLF(from, buffer);
202 return buffer.buffer(); 201 return buffer.Buffer();
203 } 202 }
204 203
205 void NormalizeLineEndingsToNative(const CString& from, Vector<char>& result) { 204 void NormalizeLineEndingsToNative(const CString& from, Vector<char>& result) {
206 #if OS(WIN) 205 #if OS(WIN)
207 VectorCharAppendBuffer buffer(result); 206 VectorCharAppendBuffer buffer(result);
208 internalNormalizeLineEndingsToCRLF(from, buffer); 207 InternalNormalizeLineEndingsToCRLF(from, buffer);
209 #else 208 #else
210 NormalizeLineEndingsToLF(from, result); 209 NormalizeLineEndingsToLF(from, result);
211 #endif 210 #endif
212 } 211 }
213 212
214 } // namespace blink 213 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/testing/PaintPrinters.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698