This file is indexed.

/usr/include/IceE/Unicode.h is in libicee-dev 1.2.0-6.2.

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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
// **********************************************************************
//
// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
//
// This copy of Ice-E is licensed to you under the terms described in the
// ICEE_LICENSE file included in this distribution.
//
// **********************************************************************

#ifndef ICEE_UNICODE_H
#define ICEE_UNICODE_H

#include <IceE/Config.h>
#include <IceE/Exception.h>

namespace IceUtil
{

#if defined(_MSC_VER) && (_MSC_VER >= 1300)

//
// With Visual C++ 7.x, wchar_t is either a typedef unsigned short or a 
// native type (when /Zc:wchar_t is used).
// Since wstring is a typedef basic_string<wchar_t>, its type is also 
// different depending on whether /Zc:wchar_t is used or not.
//
// With Visual C++ 7.x, the default is typedef; with Visual C++ 8.0,
// the default is native type.
//
// Ice is always built with the default, but provides wstringToString() 
// and stringToWstring() implementations for both flavors of wstring.
//

#   if defined(_NATIVE_WCHAR_T_DEFINED)
ICE_API std::string wstringToString(const std::wstring&);

#      if _MSC_VER >= 1400
//
// Building or using with VC8
//
ICE_API std::wstring stringToWstring(const std::string&);
ICE_API std::string wstringToString(const std::basic_string<unsigned short>&);
ICE_API std::basic_string<unsigned short> stringToTypedefWstring(const std::string&);
#     else
//
// Using a VC7.x build with the non-default /Zc
//
ICE_API std::wstring stringToNativeWstring(const std::string&);
inline std::wstring 
stringToWstring(const std::string& str)
{
    return stringToNativeWstring(str);
}
#     endif

#   else
ICE_API std::string wstringToString(const std::wstring&);

#      if _MSC_VER < 1400
//
// Building or using with VC7.x
//
ICE_API std::wstring stringToWstring(const std::string&);
ICE_API std::string wstringToString(const std::basic_string<__wchar_t>&);
ICE_API std::basic_string<__wchar_t> stringToNativeWstring(const std::string&);
#      else
//
// Using a VC8.x build the non-default /Zc
//
ICE_API std::wstring stringToTypedefWstring(const std::string&);
inline std::wstring 
stringToWstring(const std::string& str)
{
    return stringToTypedefWstring(str);
}
#      endif
#   endif

#else

ICE_API std::string wstringToString(const std::wstring&);
ICE_API std::wstring stringToWstring(const std::string&);

#endif


//
// Converts UTF-8 byte-sequences to and from UTF-16 or UTF-32 (with native
// endianness) depending on sizeof(wchar_t).
//
// These are thin wrappers over the UTF8/16/32 converters provided by 
// unicode.org
//
//
// TODO: provide the same support for /Zc:wchar_t as the functions above
//

enum ConversionResult
{
	conversionOK, 		/* conversion successful */
	sourceExhausted,	/* partial character in source, but hit end */
	targetExhausted,	/* insuff. room in target for conversion */
	sourceIllegal		/* source sequence is illegal/malformed */
};


enum ConversionFlags 
{
    strictConversion = 0,
    lenientConversion
};

typedef unsigned char Byte;

ICE_API bool
isLegalUTF8Sequence(const Byte* source, const Byte* end);

ICE_API ConversionResult 
convertUTFWstringToUTF8(const wchar_t*& sourceStart, const wchar_t* sourceEnd, 
			Byte*& targetStart, Byte* targetEnd, ConversionFlags flags);

ICE_API ConversionResult
convertUTF8ToUTFWstring(const Byte*& sourceStart, const Byte* sourceEnd, 
			wchar_t*& targetStart, wchar_t* targetEnd, ConversionFlags flags);

ICE_API ConversionResult 
convertUTF8ToUTFWstring(const Byte*& sourceStart, const Byte* sourceEnd, 
			std::wstring& target, ConversionFlags flags);




//
// UTFConversionException is raised by wstringToString() or stringToWstring()
// to report a conversion error 
//
class ICE_API UTFConversionException : public Exception
{
public:
    
    UTFConversionException(const char*, int, ConversionResult);
    virtual std::string ice_name() const;
    virtual std::string toString() const;
    virtual Exception* ice_clone() const;
    virtual void ice_throw() const;

    ConversionResult conversionResult() const;
private:

    const ConversionResult _conversionResult;
    static const char* _name;    
};

}

#endif