This file is indexed.

/usr/lib/python2.7/dist-packages/pmg_tk/TextEditor.py is in pymol 1.8.4.0+dfsg-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
'''
Simple Text Editor
'''

import os
import sys

if sys.version_info[0] == 2:
    import Tkinter
    import tkFileDialog
    import tkMessageBox
else:
    import tkinter as Tkinter
    import tkinter.filedialog as tkFileDialog
    import tkinter.messagebox as tkMessageBox

class TextEditor:

    def _write(self, handle):
        content = self._get()
        handle.write(content)
        self._savedcontent = content

    def _open(self, filename):
        self.filename = filename or ''
        if filename and os.path.exists(filename):
            with open(filename, 'rU') as handle:
                content = handle.read()
        else:
            content = ''
        self._set(content)

    def _get(self):
        return self.text.get(0.0, Tkinter.END)

    def _set(self, content):
        self.text.delete(0.0, Tkinter.END)
        self.text.insert(0.0, content)
        self._savedcontent = self._get()

    def doSaveAs(self, *args):
        handle = tkFileDialog.asksaveasfile(mode='w',
                initialfile=os.path.basename(self.filename),
                initialdir=os.path.dirname(self.filename),
                parent=self.root)
        if handle:
            with handle:
                self._write(handle)
                self.filename = handle.name

    def doSave(self, *args):
        if not self.filename:
            return self.doSaveAs()
        with open(self.filename, 'w') as handle:
            self._write(handle)

    def doOpen(self, *args):
        filename = tkFileDialog.askopenfilename(parent=self.root)
        if filename:
            self._open(filename)

    def onClose(self):
        if self._get() != self._savedcontent:
            ok = tkMessageBox.askyesnocancel("Save?", "Save before quit?",
                    parent=self.root)
            if ok:
                self.doSave()
            elif ok is None:
                return
        self.root.destroy()

    def __init__(self, parent=None, filename='', title='Text Editor'):
        self.root = Tkinter.Toplevel(parent) if parent else Tkinter.Tk()
        self.root.title(title)
        self.root.minsize(width=500, height=400)
        self.root.protocol("WM_DELETE_WINDOW", self.onClose)

        menubar = Tkinter.Menu(self.root)
        filemenu = Tkinter.Menu(menubar)
        filemenu.add_command(label="Open", command=self.doOpen, accelerator="Ctrl+O")
        filemenu.add_command(label="Save", command=self.doSave, accelerator="Ctrl+S")
        filemenu.add_command(label="Save as ...", command=self.doSaveAs, accelerator="Ctrl+Shift+S")
        menubar.add_cascade(label="File", menu=filemenu)
        self.root.config(menu=menubar)

        self.text = Tkinter.Text(self.root, background='white', foreground='black')
        self.text.pack(expand=Tkinter.YES, fill=Tkinter.BOTH)

        self._open(filename)

        self.text.bind("<Control-o>", self.doOpen)
        self.text.bind("<Control-s>", self.doSave)
        self.text.bind("<Control-S>", self.doSaveAs)

if __name__ == '__main__':
    try:
        filename = sys.argv[1]
    except:
        filename = ''
    app = TextEditor(None, filename)
    app.root.mainloop()