This file is indexed.

/usr/include/ebml/EbmlUnicodeString.h is in libebml-dev 1.3.3-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/****************************************************************************
** libebml : parse EBML files, see http://embl.sourceforge.net/
**
** <file/class description>
**
** Copyright (C) 2002-2010 Steve Lhomme.  All rights reserved.
**
** This file is part of libebml.
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Lesser General Public
** License as published by the Free Software Foundation; either
** version 2.1 of the License, or (at your option) any later version.
**
** This library is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
** Lesser General Public License for more details.
**
** You should have received a copy of the GNU Lesser General Public
** License along with this library; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
**
** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
**
** Contact license@matroska.org if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/

/*!
  \file
  \version \$Id$
  \author Steve Lhomme     <robux4 @ users.sf.net>
  \author Moritz Bunkus <moritz @ bunkus.org>
  \author Jory Stone       <jcsston @ toughguy.net>
*/
#ifndef LIBEBML_UNICODE_STRING_H
#define LIBEBML_UNICODE_STRING_H

#include <string>

#include "EbmlTypes.h"
#include "EbmlElement.h"

START_LIBEBML_NAMESPACE

/*!
  \class UTFstring
  A class storing strings in a wchar_t (ie, in UCS-2 or UCS-4)
  \note inspired by wstring which is not available everywhere
*/
class EBML_DLL_API UTFstring {
public:
  typedef wchar_t value_type;

  UTFstring();
  UTFstring(const wchar_t *); // should be NULL terminated
  UTFstring(const UTFstring &);
  UTFstring(std::wstring const &);

  virtual ~UTFstring();
  bool operator==(const UTFstring&) const;
  inline bool operator!=(const UTFstring &cmp) const
  {
    return !(*this == cmp);
  }
  UTFstring & operator=(const UTFstring &);
  UTFstring & operator=(const wchar_t *);
  UTFstring & operator=(wchar_t);

  /// Return length of string
  size_t length() const {return _Length;}

  operator const wchar_t*() const;
  const wchar_t* c_str() const {return _Data;}

  const std::string & GetUTF8() const {return UTF8string;}
  void SetUTF8(const std::string &);

#if defined(EBML_STRICT_API)
    private:
#else
    protected:
#endif
  size_t _Length; ///< length of the UCS string excluding the \0
  wchar_t* _Data; ///< internal UCS representation
  std::string UTF8string;
  static bool wcscmp_internal(const wchar_t *str1, const wchar_t *str2);
  void UpdateFromUTF8();
  void UpdateFromUCS2();
};


/*!
    \class EbmlUnicodeString
    \brief Handle all operations on a Unicode string EBML element
  \note internally treated as a string made of wide characters (ie UCS-2 or UCS-4 depending on the machine)
*/
class EBML_DLL_API EbmlUnicodeString : public EbmlElement {
  public:
    EbmlUnicodeString();
    EbmlUnicodeString(const UTFstring & DefaultValue);
    EbmlUnicodeString(const EbmlUnicodeString & ElementToClone);

    virtual ~EbmlUnicodeString() {}

    virtual bool ValidateSize() const {return IsFiniteSize();} // any size is possible
    filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
    filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
    filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);

    EbmlUnicodeString & operator=(const UTFstring &); ///< platform dependant code
    operator const UTFstring &() const;

    EbmlUnicodeString &SetValue(UTFstring const &NewValue);
    EbmlUnicodeString &SetValueUTF8(std::string const &NewValue);
    UTFstring GetValue() const;
    std::string GetValueUTF8() const;

    void SetDefaultValue(UTFstring &);

    const UTFstring & DefaultVal() const;

    bool IsDefaultValue() const {
      return (DefaultISset() && Value == DefaultValue);
    }

#if defined(EBML_STRICT_API)
    private:
#else
    protected:
#endif
    UTFstring Value; /// The actual value of the element
    UTFstring DefaultValue;
};

END_LIBEBML_NAMESPACE

#endif // LIBEBML_UNICODE_STRING_H