This file is indexed.

/usr/lib/ocaml/lablgtk2/gFile.ml is in liblablgtk2-ocaml-dev 2.18.5+dfsg-1build1.

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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
(**************************************************************************)
(*                Lablgtk                                                 *)
(*                                                                        *)
(*    This program is free software; you can redistribute it              *)
(*    and/or modify it under the terms of the GNU Library General         *)
(*    Public License as published by the Free Software Foundation         *)
(*    version 2, with the exception described in file COPYING which       *)
(*    comes with the library.                                             *)
(*                                                                        *)
(*    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 Library General Public License for more details.                *)
(*                                                                        *)
(*    You should have received a copy of the GNU Library 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                                          *)
(*                                                                        *)
(*                                                                        *)
(**************************************************************************)

open GtkFile
  
class filter obj = object
   inherit GObj.gtkobj obj
   method as_file_filter = (obj :> Gtk.file_filter Gtk.obj)
   method set_name = FileFilter.set_name obj 
   method name = FileFilter.get_name obj
   method add_mime_type = FileFilter.add_mime_type obj
   method add_pattern = FileFilter.add_pattern obj
   method add_custom = FileFilter.add_custom obj
end

let filter ?name ?(patterns=[]) ?(mime_types=[]) () =
   let w = FileFilter.create () in
   Gaux.may (FileFilter.set_name w) name ;
   List.iter (FileFilter.add_pattern w) patterns ;
   List.iter (FileFilter.add_mime_type w) mime_types ;
   new filter w

class type chooser_signals = object
  method current_folder_changed : callback:(unit -> unit) -> GtkSignal.id
  method file_activated : callback:(unit -> unit) -> GtkSignal.id
  method selection_changed : callback:(unit -> unit) -> GtkSignal.id
  method update_preview : callback:(unit -> unit) -> GtkSignal.id
  method confirm_overwrite : 
    callback:(unit -> GtkEnums.file_chooser_confirmation) -> GtkSignal.id
  method notify_action : callback:(GtkEnums.file_chooser_action -> unit) -> GtkSignal.id
  method notify_do_overwrite_confirmation : callback:(bool -> unit) -> GtkSignal.id
  method notify_extra_widget : callback:(GObj.widget -> unit) -> GtkSignal.id
  method notify_local_only : callback:(bool -> unit) -> GtkSignal.id
  method notify_preview_widget : callback:(GObj.widget -> unit) -> GtkSignal.id
  method notify_preview_widget_active : callback:(bool -> unit) -> GtkSignal.id
  method notify_select_multiple : callback:(bool -> unit) -> GtkSignal.id
  method notify_show_hidden : callback:(bool -> unit) -> GtkSignal.id
  method notify_use_preview_label : callback:(bool -> unit) -> GtkSignal.id
end

class type chooser =
  object
    method set_action : GtkEnums.file_chooser_action -> unit
    method action : GtkEnums.file_chooser_action
    method set_local_only : bool -> unit
    method local_only : bool
    method set_select_multiple : bool -> unit
    method select_multiple : bool
    method set_current_name : string -> unit
    method show_hidden : bool
    method set_show_hidden : bool -> unit

    method set_filename : string -> bool
    method filename : string option
    method select_filename : string -> bool
    method unselect_filename : string -> unit
    method get_filenames : string list
    method set_current_folder : string -> bool
    method current_folder : string option

    method set_uri : string -> bool
    method uri : string option
    method select_uri : string -> bool
    method unselect_uri : string -> unit
    method get_uris : string list
    method set_current_folder_uri : string -> bool
    method current_folder_uri : string

    method select_all : unit
    method unselect_all : unit

    method set_preview_widget : GObj.widget -> unit
    method preview_widget : GObj.widget
    method set_preview_widget_active : bool -> unit
    method preview_widget_active : bool
    method preview_filename : string option
    method preview_uri : string option
    method set_use_preview_label : bool -> unit
    method use_preview_label : bool

    method set_extra_widget : GObj.widget -> unit
    method extra_widget : GObj.widget

    method add_filter : filter -> unit
    method remove_filter : filter -> unit
    method list_filters : filter list
    method set_filter : filter -> unit
    method filter : filter

    method add_shortcut_folder : string -> unit
    method remove_shortcut_folder : string -> unit
    method list_shortcut_folders : string list
    method add_shortcut_folder_uri : string -> unit
    method remove_shortcut_folder_uri : string -> unit
    method list_shortcut_folder_uris : string list
      
    method do_overwrite_confirmation : bool
    method set_do_overwrite_confirmation : bool -> unit

  end

class virtual chooser_impl = object (self)
  val virtual obj : 'a Gtk.obj
  inherit OgtkFileProps.file_chooser_props

  method set_current_name = FileChooser.set_current_name obj

  method set_filename = FileChooser.set_filename obj
  method filename = FileChooser.get_filename obj
  method select_filename = FileChooser.select_filename obj
  method unselect_filename = FileChooser.unselect_filename obj
  method select_all = FileChooser.select_all obj
  method unselect_all = FileChooser.unselect_all obj
  method get_filenames = FileChooser.get_filenames obj
  method set_current_folder = FileChooser.set_current_folder obj
  method current_folder = FileChooser.get_current_folder obj

  method set_uri = FileChooser.set_uri obj
  method uri = FileChooser.get_uri obj
  method select_uri = FileChooser.select_uri obj
  method unselect_uri = FileChooser.unselect_uri obj
  method get_uris = FileChooser.get_uris obj
  method set_current_folder_uri = FileChooser.set_current_folder_uri obj
  method current_folder_uri = FileChooser.get_current_folder_uri obj

  method preview_filename = FileChooser.get_preview_filename obj
  method preview_uri = FileChooser.get_preview_uri obj

  method add_filter (f : filter) = FileChooser.add_filter obj f#as_file_filter
  method remove_filter (f : filter) = FileChooser.remove_filter obj f#as_file_filter
  method list_filters = List.map (new filter) (FileChooser.list_filters obj )
  method set_filter (f : filter) = Gobject.set FileChooser.P.filter obj f#as_file_filter
  method filter = new filter (Gobject.get FileChooser.P.filter obj)
      
  method add_shortcut_folder = FileChooser.add_shortcut_folder obj
  method remove_shortcut_folder = FileChooser.remove_shortcut_folder obj
  method list_shortcut_folders = FileChooser.list_shortcut_folders obj
  method add_shortcut_folder_uri = FileChooser.add_shortcut_folder_uri obj
  method remove_shortcut_folder_uri = FileChooser.remove_shortcut_folder_uri obj
  method list_shortcut_folder_uris = FileChooser.list_shortcut_folder_uris obj
end

class chooser_widget_signals obj = object
  inherit GObj.widget_signals_impl obj
  inherit OgtkFileProps.file_chooser_sigs
end

class chooser_widget obj = object
  inherit [_] GObj.widget_impl obj
  inherit chooser_impl
  method event = new GObj.event_ops obj
  method connect = new chooser_widget_signals obj
end

let may_cons = Gobject.Property.may_cons 

let chooser_widget ~action ?backend ?packing ?show () =
  let w = FileChooser.widget_create 
      (may_cons 
	 FileChooser.P.file_system_backend backend
	 [ Gobject.param FileChooser.P.action action ]) in
  let o = new chooser_widget w in
  GObj.pack_return o ~packing ~show

class chooser_button_signals obj = object
  inherit GContainer.container_signals_impl obj
  inherit OgtkFileProps.file_chooser_sigs
end

class chooser_button obj = object
  method private obj = obj
  inherit GPack.box_skel obj
  inherit chooser_impl
  inherit OgtkFileProps.file_chooser_button_props
  method connect = new chooser_button_signals obj
end

let chooser_button ~action ?title ?width_chars ?backend =
  GContainer.pack_container
    (Gobject.param FileChooser.P.action action ::
     (may_cons FileChooser.P.file_system_backend backend (
      may_cons FileChooserButton.P.title title (
      may_cons FileChooserButton.P.width_chars width_chars []))))
    ~create:(fun pl -> new chooser_button (FileChooserButton.create pl))