15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Author: alekseys@google.com (Aleksey Shlyapnikov)
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This code is not actually used, it was copied here for the reference only.
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// See cld_htmlutils_windows.cc for Windows version of this code.
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "cld/encodings/compact_lang_det/win/cld_htmlutils.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "cld/third_party/utf/utf.h"        // for runetochar
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "cld/webutil/html/htmlutils.h"     // for ReadEntity
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copied from getonescriptspan.cc
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Src points to '&'
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Writes entity value to dst. Returns take(src), put(dst) byte counts
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void EntityToBuffer(const char* src, int len, char* dst,
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    int* tlen, int* plen) {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  char32 entval = HtmlUtils::ReadEntity(src, len, tlen);
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // ReadEntity does this already: entval = FixUnicodeValue(entval);
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (entval > 0) {
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *plen = runetochar(dst, &entval);
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  } else {
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    // Illegal entity; ignore the '&'
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *tlen = 1;
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *plen = 0;
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // fprintf(stderr,"t%d p%d]\n", *tlen, *plen);
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
33