This file is indexed.

/usr/lib/python2.7/dist-packages/hachoir_wx/field_view/field_view_imp.py is in python-hachoir-wx 0.3-3.

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
# -*- coding: utf-8 -*-

from hachoir_wx.field_view.format import format_addr_hex, format_addr_dec, format_size, format_data, format_name, format_desc
from hachoir_core.i18n import _

class field_view_imp_t:
    def __init__(self):
        self.addr_func = lambda field: field._getAbsoluteAddress()
        self.format_addr = lambda field: format_addr_hex(self.addr_func(field))

    def on_field_set_ready(self, dispatcher, field_set):
        assert field_set is not None
        self.fields = field_set

    def on_field_view_ready(self, dispatcher, view):
        assert view is not None
        self.view = view
        self.fill_view()
        self.dispatcher.trigger('field_activated', self.fields)

    def on_item_selected(self):
        name = self.view.get_selected(_('name'))
        if isinstance(name, unicode):
            name = str(name)
        self.dispatcher.trigger('field_selected', self.fields[name])

    def on_item_activated(self):
        field = self.fields[self.view.get_selected(_('name'))]
        if field.is_field_set:
            self.fields = field
            self.refill_view()
        self.dispatcher.trigger('field_activated', field)

    def on_field_modified(self, dispatcher, field):
        self.refill_view()

    def on_item_show_ops(self):
        field = self.fields[self.view.get_selected(_('name'))]
        self.dispatcher.trigger('field_show_ops', field)

    def on_address_relative(self, dispatcher):
        self.addr_func = lambda field: field._getAddress()
        self.refill_view()

    def on_address_absolute(self, dispatcher):
        self.addr_func = lambda field: field._getAbsoluteAddress()
        self.refill_view()

    def on_address_hexadecimal(self, dispatcher):
        self.format_addr = lambda field: format_addr_hex(self.addr_func(field))
        self.refill_view()

    def on_address_decimal(self, dispatcher):
        self.format_addr = lambda field: format_addr_dec(self.addr_func(field))
        self.refill_view()

    def on_field_was_split_bytes(self, dispatcher, field):
        self.refill_view()

    def on_field_was_split_bits(self, dispatcher, field):
        self.refill_view()

    def fill_view(self):
        if self.fields._getParent() is not None:
            self.view.append_row({ _('name') : '../' })

        for field in self.fields:
            map = {
                _('address') : self.format_addr(field),
                _('name') : format_name(field),
                _('type') : field.getFieldType(),
                _('size') : format_size(field._getSize()),
                _('data') : format_data(field),
                _('description'): format_desc(field)
                }

            self.view.append_row(map)

    def refill_view(self):
        self.view.clear()
        self.fill_view()