This file is indexed.

/usr/share/veromix/dbus-service/VeromixUtils.py is in veromix-common 0.18.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
# -*- coding: utf-8 -*-
# Copyright (C) 2010-2012 Nik Lutz <nik.lutz@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.


import sys
use_old = True
if sys.version_info >= (3, 0):
    use_old = False

class UnicodingError(Exception):
    pass

# these encodings should be in most likely order to save time
encodings = [ "ascii", "utf_8", "big5", "big5hkscs", "cp037", "cp424", "cp437", "cp500", "cp737", "cp775", "cp850", "cp852", "cp855",
    "cp856", "cp857", "cp860", "cp861", "cp862", "cp863", "cp864", "cp865", "cp866", "cp869", "cp874", "cp875", "cp932", "cp949",
    "cp950", "cp1006", "cp1026", "cp1140", "cp1250", "cp1251", "cp1252", "cp1253", "cp1254", "cp1255", "cp1256", "cp1257", "cp1258",
    "euc_jp", "euc_jis_2004", "euc_jisx0213", "euc_kr", "gb2312", "gbk", "gb18030", "hz", "iso2022_jp", "iso2022_jp_1", "iso2022_jp_2",
    "iso2022_jp_2004", "iso2022_jp_3", "iso2022_jp_ext", "iso2022_kr", "latin_1", "iso8859_2", "iso8859_3", "iso8859_4", "iso8859_5",
    "iso8859_6", "iso8859_7", "iso8859_8", "iso8859_9", "iso8859_10", "iso8859_13", "iso8859_14", "iso8859_15", "johab", "koi8_r", "koi8_u",
    "mac_cyrillic", "mac_greek", "mac_iceland", "mac_latin2", "mac_roman", "mac_turkish", "ptcp154", "shift_jis", "shift_jis_2004",
    "shift_jisx0213", "utf_32", "utf_32_be", "utf_32_le", "utf_16", "utf_16_be", "utf_16_le", "utf_7", "utf_8_sig" ]

def in_unicode(string):
    if use_old:
        return _in_unicode(string)
    if isinstance(string, bytes):
        return string.decode("utf-8")
    return str(string)

def _in_unicode(string):
    # FIXME - fix the sender!
    if string == None:
        return "None"
    if isinstance(string, int):
        return str(string)
    if isinstance(string, float):
        return str(string) 
    if isinstance(string, long):
        return str(string)     
    if isinstance(string, tuple):
        if len(string) > 1:
            return in_unicode(string[0])
        return ""
    if isinstance(string, unicode):
        return string
    for enc in encodings:
        try:
            utf8 = unicode(string, enc)
            return utf8
        except:
            if enc == encodings[-1]:
                #raise UnicodingError("still don't recognise encoding after trying do guess.")
#                print type(string)
                return "problem with string decoding"
    return "problem with string decoding"


def proplist_to_dict(string):
    dict = {}
    lines = string.split("\n")
    for line in lines:
        arr = line.split(" = ")
        if len(arr) == 2:
            dict[arr[0]] = in_unicode(arr[1].strip('"'))
    return dict

def assertEncoding(aDict):
    for key in aDict.keys():
        try:
            aDict[key]= in_unicode(aDict[key])
        except:
            aDict[key] = "error with string encoding #1"
    return aDict