This file is indexed.

/usr/share/rep/lisp/rep/structures.jl is in librep-dev 0.92.5-3build2.

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
#| rep.structures bootstrap

   $Id$

   Copyright (C) 2000 John Harper <john@dcs.warwick.ac.uk>

   This file is part of librep.

   librep 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, or (at your option)
   any later version.

   librep 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 librep; see the file COPYING.  If not, write to
   the Free Software Foundation, 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301 USA
|#

(declare (in-module rep.structures))

(open-structures '(rep.lang.symbols
		   rep.data))

(make-structure nil nil nil '%interfaces)

(defun make-interface (name sig)
  "Create an interface called NAME exporting the list of symbols SIG."
  (structure-define (get-structure '%interfaces) name sig))

(defun parse-interface (sig)
  "Return the list of symbols described by the module interface SIG."
  (cond ((null sig) '())
	((eq (car sig) 'export)
	 (cdr sig))
	((eq (car sig) 'compound-interface)
	 (apply append (mapcar parse-interface (cdr sig))))
	((eq (car sig) 'structure-interface)
	 (structure-interface (intern-structure (cadr sig))))
	((symbolp sig)
	 (let ((interfaces (get-structure '%interfaces)))
	   (or (structure-bound-p interfaces sig)
	       (error "No such interface: %s" sig))
	   (%structure-ref interfaces sig)))))

(defun alias-structure (from to)
  "Create an alias of the structure called FROM as the name TO."
  (name-structure (get-structure from) to))

(defun locate-binding (sym imported)
  "Return the name of the structure binding of SYM, using the list of module
names IMPORTED as the search start points."
  (when imported
    (let ((tem (structure-exports-p (get-structure (car imported)) sym)))
      (cond ((null tem)
	     (locate-binding sym (cdr imported)))
	    ((eq tem 'external)
	     ;; this module exports it, but it doesn't define
	     ;; it, so search its imports
	     (locate-binding sym (structure-imports
				  (get-structure (car imported)))))
	    (t (car imported))))))

(export-bindings '(make-interface parse-interface
		   alias-structure locate-binding))