This file is indexed.

/usr/share/savi/tcl/init.tcl is in savi 1.5.1-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
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
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
#
######################################################
#
#  SaVi by Lloyd Wood (lloydwood@users.sourceforge.net),
#          Patrick Worfolk (worfolk@alum.mit.edu) and
#          Robert Thurman.
#
#  Copyright (c) 1997 by The Geometry Center.
#  Also Copyright (c) 2017 by Lloyd Wood.
#
#  This file is part of SaVi.  SaVi is free software;
#  you can redistribute it and/or modify it only under
#  the terms given in the file COPYRIGHT which you should
#  have received along with this file.  SaVi may be
#  obtained from:
#  http://savi.sourceforge.net/
#  http://www.geom.uiuc.edu/locate/SaVi
#
######################################################
#
# init.tcl
#
# $Id: init.tcl,v 1.96 2017/07/02 11:07:11 lloydwood Exp $

proc geomview_init {} {
    global satellites_flag box_sat_flag planes_sat_flag fancy_sat_flag \
	   sphere_sat_flag fast_marker_sat_flag cones_flag footprints_flag \
	   orbits_flag axes_flag stars_flag \
	   earth_flag simple_earth_flag fancy_earth_flag texture_flag \
	   geomview_flag geomview_dynamic_texture_flag COLOR

    satellites GV_BEGIN

    set COLOR(geomview) \#000000

    trace variable satellites_flag w flag_change
    trace variable box_sat_flag w flag_change
    trace variable planes_sat_flag w flag_change
    trace variable fancy_sat_flag w flag_change
    trace variable sphere_sat_flag w flag_change
    trace variable fast_marker_sat_flag w flag_change

    trace variable orbits_flag w flag_change
    trace variable footprints_flag w flag_change
    trace variable cones_flag w flag_change

    trace variable axes_flag w flag_change
    trace variable stars_flag w flag_change

    trace variable earth_flag w flag_change
    trace variable simple_earth_flag w flag_change
    trace variable fancy_earth_flag w flag_change
    trace variable texture_flag w flag_change
    trace variable geomview_dynamic_texture_flag w flag_change


    trace variable geomview_flag w flag_change

    set satellites_flag 1
    set fast_marker_sat_flag 1
    set box_sat_flag 0
    set planes_sat_flag 0
    set fancy_sat_flag 0
    set sphere_sat_flag 0

    set orbits_flag 1
    set footprints_flag 0
    set cones_flag 0

    set axes_flag 1
    set stars_flag 0

    set earth_flag 1
    set simple_earth_flag 1
    set fancy_earth_flag 0
    set texture_flag 1

    set geomview_dynamic_texture_flag 0
    set geomview_flag 1

    satellites GV_END
}

proc app_init {} {
    global TITLE FONT COLOR NUM_COLORS NUM_COLORS_PREV PLATFORM Projection
    global first_filename last_filename source_comments comments_text comments_file details_source
    global user_file_dir helpfile_text helpfile_name geomview_module
    global realtime_flag sun_flag playbar delta_t splash_about rendering_size
    global plane_flag
    global modifier modifier_indicator

    # env is unused.

    global PI
    set PI 3.14159265358979324

    # delay per simulation interval
    set delta_t 60.0

    set playbar 0

    # set colors for windows

    if {[string equal [tk windowingsystem] aqua]} {
      # Aqua Tcl on Mac OS X - white
      # can't control menu highlights or button colors as you'd expect.
      # instead, -highlightbackground is needed to color the frame
      # around the edges and corners of the button.
      set COLOR(bg) #fff
      set COLOR(abg) #67f
      set COLOR(sbg) #33f
      set modifier "Command"
      set modifier_indicator "Command"
      set PLATFORM 1
    } elseif {[string equal [tk windowingsystem] win32]||[file exists "/proc/cygdrive"]} {
      # Tcl on Windows - grey to match XP. Vary to suit interface.
      set COLOR(bg) #d4d0c8
      set COLOR(abg) #bbb
      set COLOR(sbg) #aaa
      set modifier "Control"
      set modifier_indicator "Ctrl"
      set PLATFORM 2
    } elseif {[file exists /usr/bsd ]&&[file exists /usr/sbin ]} {
      # Tcl on IRIX - different grey
      set COLOR(bg) #c1c1c1
      set COLOR(abg) #bbb
      set COLOR(sbg) #aaa
      set modifier "Control"
      set modifier_indicator "Ctrl"
      set PLATFORM 3
    } else {
      # Tcl on Unix - shades of blue
      set COLOR(bg) #acf
      set COLOR(abg) #67f
      set COLOR(sbg) #33f
      set modifier "Control"
      set modifier_indicator "Ctrl"
      set PLATFORM 0
    }

    set COLOR(entry) white
    set FONT(button) -Adobe-Helvetica-Bold-R-Normal--*-120-*
    set FONT(label) -Adobe-Helvetica-Medium-R-Normal--*-120-*
    set FONT(fixed) -Adobe-Courier-Medium-R-Normal--*-120-*

    # set colors everywhere
    tk_setPalette background $COLOR(bg) \
	 activeBackground $COLOR(abg) selectBackground $COLOR(abg)

    # set directory for saving files to user's home directory
    set user_file_dir "~/"

    # close the default toplevel window
    wm withdraw .

    # set up string for title bar
    set TITLE "SaVi"

    if {$geomview_module == 1} {
	geomview_init
    }

    # Should we show the about box as a splash screen?
    if {$splash_about == 1} {
      about(build)
    }

    set realtime_flag 0
    trace variable realtime_flag w flag_change

    # default high-resolution rendering size
    set rendering_size(x) 4000
    set rendering_size(y) 4000

    set helpfile_name ""
    set helpfile_text ""
    set source_comments ""
    set details_source ""

    trace variable plane_flag w flag_change
    set plane_flag 0

    set sun_flag 0
    trace variable sun_flag w flag_change

    trace variable realtime_flag w flag_change
    set realtime_flag 0

    # load in fake sun as first satellite (zero)
    sunlight(create)

    equator(init)
    coverage(init)
    fisheye(init)
    load_url_tle(init)

    # build top window
    set last_filename ""
    main(build)
}

proc flag_change {name element op} {
    global geomview_module box_sat_flag planes_sat_flag fancy_sat_flag \
           sphere_sat_flag satellites_flag no_access_flag sun_flag \
	   simple_earth_flag fancy_earth_flag plane_flag
    upvar #0 $name flag

   if {$geomview_module == 1} {
    set not_geomview_flag 0
    if {$name == "satellites_flag"} {
	if {$flag == 1} {satellites SATELLITES_ON} else {satellites SATELLITES_OFF}
    } elseif {$name == "box_sat_flag"} {
        if {$flag == 1} {
            satellites BOX_SAT_ON
	    set fast_marker_sat_flag 0
            set planes_sat_flag 0
	    set fancy_sat_flag 0
	    set sphere_sat_flag 0
        } else {satellites BOX_SAT_OFF}
    } elseif {$name == "planes_sat_flag"} {
	if {$flag == 1} {
	    satellites PLANES_SAT_ON
	    set fast_marker_sat_flag 0
	    set box_sat_flag 0
	    set fancy_sat_flag 0
	    set sphere_sat_flag 0
	} else {satellites PLANES_SAT_OFF}
    } elseif {$name == "fancy_sat_flag"} {
        if {$flag == 1} {
	    satellites FANCY_SAT_ON
	    set fast_marker_sat_flag 0
	    set box_sat_flag 0
	    set planes_sat_flag 0
	    set sphere_sat_flag 0
	} else {satellites FANCY_SAT_OFF}
    } elseif {$name == "sphere_sat_flag"} {
        if {$flag == 1} {
	    satellites SPHERE_SAT_ON
	    set fast_marker_sat_flag 0
	    set box_sat_flag 0
	    set planes_sat_flag 0
	    set fancy_sat_flag 0
	} else {satellites SPHERE_SAT_OFF}
    } elseif {$name == "fast_marker_sat_flag"} {
        if {$flag == 1} {
	    satellites FAST_MARKER_SAT_ON
	    set sphere_sat_flag 0
	    set box_sat_flag 0
	    set planes_sat_flag 0
	    set fancy_sat_flag 0
	} else {satellites FAST_MARKER_SAT_OFF}
    } elseif {$name == "orbits_flag"} {
	if {$flag == 1} {satellites ORBITS_ON} else {satellites ORBITS_OFF}
    } elseif {$name == "footprints_flag"} {
	if {$flag == 1} {satellites FOOTPRINTS_ON} else {satellites FOOTPRINTS_OFF}
    } elseif {$name == "cones_flag"} {
	if {$flag == 1} {satellites CONES_ON} else {satellites CONES_OFF}
    } elseif {$name == "axes_flag"} {
	if {$flag == 1} {satellites AXES_ON} else {satellites AXES_OFF}
    } elseif {$name == "stars_flag"} {
	if {$flag == 1} {satellites STARS_ON} else {satellites STARS_OFF}
    } elseif {$name == "earth_flag"} {
	if {$flag == 1} {satellites EARTH_ON} else {satellites EARTH_OFF}
    } elseif {$name == "simple_earth_flag"} {
	if {$flag == 1} {
	    satellites SIMPLE_EARTH_ON
	    set fancy_earth_flag 0
	} else {satellites SIMPLE_EARTH_OFF}
    } elseif {$name == "fancy_earth_flag"} {
	if {$flag == 1} {
	    satellites FANCY_EARTH_ON
	    set simple_earth_flag 0
	} else {satellites FANCY_EARTH_OFF}
    } elseif {$name == "texture_flag"} {
	if {$flag == 1} {satellites TEXTURE_ON} else {satellites TEXTURE_OFF}
    } elseif {$name == "geomview_flag"} {
	if {$flag == 1} {satellites GEOMVIEW_ON} else {satellites GEOMVIEW_OFF}
    } elseif {$name == "geomview_dynamic_texture_flag"} {
	if {$flag == 1} {
	    satellites GEOMVIEW_DYNAMIC_TEXTURE_ON
	} else {
	    satellites GEOMVIEW_DYNAMIC_TEXTURE_OFF
	}
    } else {
	set not_geomview_flag 1
    }
    if {$not_geomview_flag == 0} return
   }

    if {$name == "realtime_flag"} {
	if {$flag == 1} {satellites REALTIME_ON} else {satellites REALTIME_OFF}
    } elseif {$name == "coverage_flag"} {
	if {$flag == 1} {satellites COVERAGE_ON} else {satellites COVERAGE_OFF}
	if {[winfo exists .coverage]} coverage(update_wells)
    } elseif {$name == "no_access_flag"} {
	if {$flag == 1} { satellites NO_ACCESS_ON
	} else {
	    if {$sun_flag == 1} {
		set sun_flag 0
	    }
	    satellites NO_ACCESS_OFF
	}
	if {[winfo exists .coverage]} coverage(update_wells)
    } elseif {$name == "print_access_flag"} {
	if {$flag == 1} {satellites PRINT_ACCESS_ON} else {satellites PRINT_ACCESS_OFF}
    } elseif {$name == "map_flag"} {
	if {$flag == 1} {
	    satellites MAP_ON
	} else {
	    satellites MAP_OFF
	}
    } elseif {$name == "plane_flag"} {
        if {$flag == 1} {
            satellites PLANE 0.0 0.0
	    equator(create)
            fisheye(update)
        } else {
            satellites PLANE_OFF
            fisheye(update)
        }

    } elseif {$name == "fisheye_reverse_view_flag"} {
	if {$flag == 1} {satellites FISHEYE_REVERSE_VIEW_ON} else {satellites FISHEYE_REVERSE_VIEW_OFF}
    } elseif {$name == "fisheye_print_inview_flag"} {
	if {$flag == 1} {satellites FISHEYE_PRINT_INVIEW_ON} else {satellites FISHEYE_PRINT_INVIEW_OFF}
    } elseif {$name == "tracks_flag"} {
	if {$flag == 1} {satellites TRACKS_ON} else {satellites TRACKS_OFF}
    } elseif {$name == "project_tracks_flag"} {
	if {$flag == 1} {satellites PROJECT_TRACKS_ON} else {satellites PROJECT_TRACKS_OFF}
    } elseif {$name == "coverage_proj_flag"} {
	if {$flag == 1} {satellites COVERAGE_PROJ 1} else {satellites COVERAGE_PROJ 0}
    } elseif {$name == "coverage_angle_flag"} {
	if {$flag == 1} {satellites COVERAGE_ANGLE_TYPE 1} else {satellites COVERAGE_ANGLE_TYPE 0}
    } elseif {$name == "fisheye_flag"} {
	if {$flag == 1} {satellites FISHEYE_ON} else {satellites FISHEYE_OFF}
    } elseif {$name == "fisheye_labels_flag"} {
        if {$flag == 1} {satellites FISHEYE_LABELS_ON} else {satellites FISHEYE_LABELS_OFF}
    } elseif {$name == "fisheye_names_flag"} {
        if {$flag == 1} {satellites FISHEYE_NAMES_ON} else {satellites FISHEYE_NAMES_OFF}
    } elseif {$name == "fisheye_viewpoint_flag"} {
        if {$flag == 1} {satellites FISHEYE_VIEWPOINT_ON} else {satellites FISHEYE_VIEWPOINT_OFF}
    } elseif {$name == "fisheye_numbers_flag"} {
        if {$flag == 1} {satellites FISHEYE_NUMBERS_ON} else {satellites FISHEYE_NUMBERS_OFF}
    } elseif {$name == "fisheye_times_flag"} {
        if {$flag == 1} {satellites FISHEYE_TIMES_ON} else {satellites FISHEYE_TIMES_OFF}
    } elseif {$name == "sun_flag"} {
	if {$flag == 1} {
	    satellites SUN_ON
	    set no_access_flag 1
	    main(show_sunlight)
	    coverage(labels_show_sunlight)
	    coverage(update)
	} else {
	    satellites SUN_OFF
	    main(hide_sunlight)
	    coverage(labels_show_decay)
	    coverage(update_decay)
	}
    } else {
	puts "Unrecognized flag: $name"
    }
}