This file is indexed.

/usr/share/pyshared/dfeet/dbus_utils.py is in d-feet 0.1.14-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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
def convert_complex_type(subsig):
    result = None
    len_consumed = 0

    c = subsig[0]

    c_lookahead = ''
    try:
        c_lookahead = subsig[1]
    except:
        c_lookahead = ''

    if c == 'a' and c_lookahead == '{':  # handle dicts as a special case array
        ss = subsig[2:]
        # account for the trailing '}'
        len_consumed = 3
        c = ss[0]
        key = convert_simple_type(c)

        ss = ss[1:]

        (r, lc) = convert_complex_type(ss)
        if r:
            subtypelist = [key]
            for item in r:
                subtypelist.append(item)

            len_consumed += lc + 1
        else:
            value = convert_simple_type(ss[0])
            subtypelist = [key, value]
            len_consumed += 1

        result = ['Dict of {', subtypelist,'}']

    elif c == 'a':                       # handle an array 
        ss = subsig[1:]
        (r, lc) = convert_complex_type(ss)
        if r:
            subtypelist = r
            len_consumed = lc + 1
        else:
            subtypelist = sig_to_type_list(ss[0])
            len_consumed = 1

        result = ['Array of [', subtypelist, ']']
    elif c == '(':                       # handle structs
        # iterate over sig until paren_count == 0
        paren_count = 1
        i = 0
        ss = subsig[1:]
        len_ss = len(ss)
        while i < len_ss and paren_count != 0:
            if ss[i] == '(':
                paren_count+=1
            elif ss[i] == ')':
                paren_count-=1

            i+=1
        
        len_consumed = i
        ss = ss[0:i-1]
        result = ['Struct of (', sig_to_type_list(ss), ')'] 

    return (result, len_consumed)

def convert_simple_type(c):
    result = None

    if c == 'n':
        result = 'Int16'
    elif c == 'q':
        result = 'UInt16'
    elif c == 'i':
        result = 'Int32'
    elif c == 'u':
        result = 'UInt32'
    elif c == 'x':
        result = 'Int64'
    elif c == 't':
        result = 'UInt64'
    elif c == 's':
        result = 'String'
    elif c == 'b':
        result = 'Boolean'
    elif c == 'y':
        result = 'Byte'
    elif c == 'o':
        result = 'Object Path'
    elif c == 'g':
        result = 'Signature'
    elif c == 'd':
        result = 'Double'
    elif c == 'v':
        result = 'Variant'

    return result

def sig_to_type_list(sig):
    i = 0
    result = []

    sig_len = len(sig)
    while i < sig_len:
        c = sig[i]
        type = convert_simple_type(c)
        if not type:
            (type, len_consumed) = convert_complex_type(sig[i:])
            if not type:
                type = 'Error(' + c + ')'

            i += len_consumed

        if isinstance(type, list):
            for item in type:
                result.append(item)
        else:
                result.append(type)

        i+=1
        
    return result

def type_list_to_string(type_list):
    result = ''
    add_cap = False

    for dbus_type in type_list:
        if isinstance(dbus_type, list):
            result += type_list_to_string(dbus_type)
            add_cap = True
        else:
            # we get rid of the leading comma later
            if not add_cap:
                result += ', '
            else:
                add_cap = False

            try:
                result += dbus_type
            except:
                print type_list

    return result[2:]

def sig_to_markup(sig, span_attr_str):
    list = sig_to_type_list(sig)
    markedup_list = []
    m = '<span ' + span_attr_str + '>'
    m += type_list_to_string(list)
    m += '</span>'

    return m 

def sig_to_string(sig):
    return type_list_to_string(sig_to_type_list(sig))