| Index: Source/wtf/text/TextCodecReplacement.cpp
|
| diff --git a/Source/wtf/text/TextCodecReplacement.cpp b/Source/wtf/text/TextCodecReplacement.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e5d300aff7ede416af483ee742aa78d2c11b706d
|
| --- /dev/null
|
| +++ b/Source/wtf/text/TextCodecReplacement.cpp
|
| @@ -0,0 +1,48 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "config.h"
|
| +#include "wtf/text/TextCodecReplacement.h"
|
| +
|
| +#include "wtf/PassOwnPtr.h"
|
| +#include "wtf/text/WTFString.h"
|
| +#include "wtf/unicode/CharacterNames.h"
|
| +
|
| +namespace WTF {
|
| +
|
| +TextCodecReplacement::TextCodecReplacement()
|
| + : m_sentEOF(false)
|
| +{
|
| +}
|
| +
|
| +void TextCodecReplacement::registerEncodingNames(EncodingNameRegistrar registrar)
|
| +{
|
| + registrar("replacement", "replacement");
|
| + registrar("csiso2022kr", "replacement");
|
| + registrar("iso-2022-cn", "replacement");
|
| + registrar("iso-2022-cn-ext", "replacement");
|
| + registrar("iso-2022-kr", "replacement");
|
| +}
|
| +
|
| +static PassOwnPtr<TextCodec> newStreamingTextDecoderReplacement(const TextEncoding&, const void*)
|
| +{
|
| + return adoptPtr(new TextCodecReplacement);
|
| +}
|
| +
|
| +void TextCodecReplacement::registerCodecs(TextCodecRegistrar registrar)
|
| +{
|
| + registrar("replacement", newStreamingTextDecoderReplacement, 0);
|
| +}
|
| +
|
| +String TextCodecReplacement::decode(const char*, size_t, FlushBehavior, bool, bool& sawError)
|
| +{
|
| + sawError = true;
|
| + if (m_sentEOF)
|
| + return String();
|
| +
|
| + m_sentEOF = true;
|
| + return String(&Unicode::replacementCharacter, 1);
|
| +}
|
| +
|
| +} // namespace WTF
|
|
|