This file is indexed.

/usr/include/luabind/detail/format_signature.hpp is in libluabind-dev 0.9.1+dfsg-11.

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
// Copyright Daniel Wallin 2008. Use, modification and distribution is
// subject to the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

#ifndef LUABIND_FORMAT_SIGNATURE_081014_HPP
# define LUABIND_FORMAT_SIGNATURE_081014_HPP

# include <luabind/config.hpp>
# include <luabind/lua_include.hpp>
# include <luabind/typeid.hpp>

# include <boost/mpl/begin_end.hpp>
# include <boost/mpl/next.hpp>
# include <boost/mpl/size.hpp>

namespace luabind { namespace adl
{

  class object;
  class argument;
  template <class Base>
  struct table;

} // namespace adl

using adl::object;
using adl::argument;
using adl::table;

} // namespace luabind

namespace luabind { namespace detail {

LUABIND_API std::string get_class_name(lua_State* L, type_id const& i);

template <class T>
struct type_to_string
{
    static void get(lua_State* L)
    {
        lua_pushstring(L, get_class_name(L, typeid(T)).c_str());
    }
};

template <class T>
struct type_to_string<T*>
{
    static void get(lua_State* L)
    {
        type_to_string<T>::get(L);
        lua_pushstring(L, "*");
        lua_concat(L, 2);
    }
};

template <class T>
struct type_to_string<T&>
{
    static void get(lua_State* L)
    {
        type_to_string<T>::get(L);
        lua_pushstring(L, "&");
        lua_concat(L, 2);
    }
};

template <class T>
struct type_to_string<T const>
{
    static void get(lua_State* L)
    {
        type_to_string<T>::get(L);
        lua_pushstring(L, " const");
        lua_concat(L, 2);
    }
};

# define LUABIND_TYPE_TO_STRING(x) \
    template <> \
    struct type_to_string<x> \
    { \
        static void get(lua_State* L) \
        { \
            lua_pushstring(L, #x); \
        } \
    };

# define LUABIND_INTEGRAL_TYPE_TO_STRING(x) \
    LUABIND_TYPE_TO_STRING(x) \
    LUABIND_TYPE_TO_STRING(unsigned x)

LUABIND_INTEGRAL_TYPE_TO_STRING(char)
LUABIND_INTEGRAL_TYPE_TO_STRING(short)
LUABIND_INTEGRAL_TYPE_TO_STRING(int)
LUABIND_INTEGRAL_TYPE_TO_STRING(long)

LUABIND_TYPE_TO_STRING(void)
LUABIND_TYPE_TO_STRING(bool)
LUABIND_TYPE_TO_STRING(std::string)
LUABIND_TYPE_TO_STRING(lua_State)

LUABIND_TYPE_TO_STRING(luabind::object)
LUABIND_TYPE_TO_STRING(luabind::argument)

# undef LUABIND_INTEGRAL_TYPE_TO_STRING
# undef LUABIND_TYPE_TO_STRING

template <class Base>
struct type_to_string<table<Base> >
{
    static void get(lua_State* L)
    {
        lua_pushstring(L, "table");
    }
};

template <class End>
void format_signature_aux(lua_State*, bool, End, End)
{}

template <class Iter, class End>
void format_signature_aux(lua_State* L, bool first, Iter, End end)
{
    if (!first)
        lua_pushstring(L, ",");
    type_to_string<typename Iter::type>::get(L);
    format_signature_aux(L, false, typename mpl::next<Iter>::type(), end);
}

template <class Signature>
void format_signature(lua_State* L, char const* function, Signature)
{
    typedef typename mpl::begin<Signature>::type first;

    type_to_string<typename first::type>::get(L);

    lua_pushstring(L, " ");
    lua_pushstring(L, function);

    lua_pushstring(L, "(");
    format_signature_aux(
        L
      , true
      , typename mpl::next<first>::type()
      , typename mpl::end<Signature>::type()
    );
    lua_pushstring(L, ")");

    lua_concat(L, static_cast<int>(mpl::size<Signature>()) * 2 + 2);
}

}} // namespace luabind::detail

#endif // LUABIND_FORMAT_SIGNATURE_081014_HPP