// Copyright 2013 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 "base/strings/string_util.h"

namespace base {

#define WHITESPACE_UNICODE                    \
  0x0009,     /* CHARACTER TABULATION */      \
      0x000A, /* LINE FEED (LF) */            \
      0x000B, /* LINE TABULATION */           \
      0x000C, /* FORM FEED (FF) */            \
      0x000D, /* CARRIAGE RETURN (CR) */      \
      0x0020, /* SPACE */                     \
      0x0085, /* NEXT LINE (NEL) */           \
      0x00A0, /* NO-BREAK SPACE */            \
      0x1680, /* OGHAM SPACE MARK */          \
      0x2000, /* EN QUAD */                   \
      0x2001, /* EM QUAD */                   \
      0x2002, /* EN SPACE */                  \
      0x2003, /* EM SPACE */                  \
      0x2004, /* THREE-PER-EM SPACE */        \
      0x2005, /* FOUR-PER-EM SPACE */         \
      0x2006, /* SIX-PER-EM SPACE */          \
      0x2007, /* FIGURE SPACE */              \
      0x2008, /* PUNCTUATION SPACE */         \
      0x2009, /* THIN SPACE */                \
      0x200A, /* HAIR SPACE */                \
      0x2028, /* LINE SEPARATOR */            \
      0x2029, /* PARAGRAPH SEPARATOR */       \
      0x202F, /* NARROW NO-BREAK SPACE */     \
      0x205F, /* MEDIUM MATHEMATICAL SPACE */ \
      0x3000, /* IDEOGRAPHIC SPACE */         \
      0

const char16_t kWhitespaceUTF16[] = {WHITESPACE_UNICODE};

const char kWhitespaceASCII[] = {0x09,  // CHARACTER TABULATION
                                 0x0A,  // LINE FEED (LF)
                                 0x0B,  // LINE TABULATION
                                 0x0C,  // FORM FEED (FF)
                                 0x0D,  // CARRIAGE RETURN (CR)
                                 0x20,  // SPACE
                                 0};

const char16_t kWhitespaceASCIIAs16[] = {0x09,  // CHARACTER TABULATION
                                         0x0A,  // LINE FEED (LF)
                                         0x0B,  // LINE TABULATION
                                         0x0C,  // FORM FEED (FF)
                                         0x0D,  // CARRIAGE RETURN (CR)
                                         0x20,  // SPACE
                                         0};

const char kUtf8ByteOrderMark[] = "\xEF\xBB\xBF";

}  // namespace base
