This file is indexed.

/usr/share/pyshared/Xlib/XK.py is in python-xlib 0.14+20091101-1ubuntu2.

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
# Xlib.XK -- X keysym defs
#
#    Copyright (C) 2000 Peter Liljenberg <petli@ctrl-c.liu.se>
#
#    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 2 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, write to the Free Software
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# This module defines some functions for working with X keysyms as well
# as a modular keysym definition and loading mechanism. See the keysym
# definition modules in the Xlib/keysymdef directory.

from Xlib.X import NoSymbol

def string_to_keysym(keysym):
    '''Return the (16 bit) numeric code of keysym.

    Given the name of a keysym as a string, return its numeric code.
    Don't include the 'XK_' prefix, just use the base, i.e. 'Delete'
    instead of 'XK_Delete'.'''
    return globals().get('XK_' + keysym, NoSymbol)

def load_keysym_group(group):
    '''Load all the keysyms in group.

    Given a group name such as 'latin1' or 'katakana' load the keysyms
    defined in module 'Xlib.keysymdef.group-name' into this XK module.'''
    if '.' in group:
        raise ValueError('invalid keysym group name: %s' % group)

    G = globals() #Get a reference to XK.__dict__ a.k.a. globals

    #Import just the keysyms module.
    mod = __import__('Xlib.keysymdef.%s' % group, G, locals(), [group])

    #Extract names of just the keysyms.
    keysyms = [n for n in dir(mod) if n.startswith('XK_')]

    #Copy the named keysyms into XK.__dict__
    for keysym in keysyms:
        ## k = mod.__dict__[keysym]; assert k == int(k) #probably too much.
        G[keysym] = mod.__dict__[keysym]

    #And get rid of the keysym module.
    del mod

def _load_keysyms_into_XK(mod):
    '''keysym definition modules need no longer call Xlib.XK._load_keysyms_into_XK().
    You should remove any calls to that function from your keysym modules.'''
    pass

# Always import miscellany and latin1 keysyms
load_keysym_group('miscellany')
load_keysym_group('latin1')


def keysym_to_string(keysym):
    '''Translate a keysym (16 bit number) into a python string.

    This will pass 0 to 0xff as well as XK_BackSpace, XK_Tab, XK_Clear,
    XK_Return, XK_Pause, XK_Scroll_Lock, XK_Escape, XK_Delete. For other
    values it returns None.'''

    # ISO latin 1, LSB is the code
    if keysym & 0xff00 == 0:
        return chr(keysym & 0xff)

    if keysym in [XK_BackSpace, XK_Tab, XK_Clear, XK_Return,
                  XK_Pause, XK_Scroll_Lock, XK_Escape, XK_Delete]:
        return chr(keysym & 0xff)

    # We should be able to do these things quite automatically
    # for latin2, latin3, etc, in Python 2.0 using the Unicode,
    # but that will have to wait.

    return None