This file is indexed.

/usr/share/xcrysden/Tcl/g98.tcl is in xcrysden-data 1.5.60-1build3.

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
#############################################################################
# Author:                                                                   #
# ------                                                                    #
#  Anton Kokalj                                  Email: Tone.Kokalj@ijs.si  #
#  Department of Physical and Organic Chemistry  Phone: x 386 1 477 3523    #
#  Jozef Stefan Institute                          Fax: x 386 1 477 3811    #
#  Jamova 39, SI-1000 Ljubljana                                             #
#  SLOVENIA                                                                 #
#                                                                           #
# Source: $XCRYSDEN_TOPDIR/Tcl/g98.tcl
# ------                                                                    #
# Copyright (c) 1996-2003 by Anton Kokalj                                   #
#############################################################################

proc g98Cube {{file {}} {viewmol_exists {}}} {
    global g98 system

    # delete welcome window
    set title_off 0
    if {[winfo exists .title]} { 
	destroy .title 
	set title_off 1
    }

    if { $file == {} } {
	# get-file
	set file [tk_getOpenFile -defaultextension .cube \
		      -filetypes { 
			  {{All Files}                  {.*}  }
		      } -initialdir $system(PWD) \
		      -title "Open Gaussian CUBE File"]
	if { $file == "" } {
	    return
	}
    } else {
	if { ![file exists $file] } {	    
	    ErrorDialog "WARNING: File \"$file\" does not exists !!!"
	    return
	}
    }
    
    set files [g98Cube:cube2xsf $file]

    # ------------------------------------------------------------------------
    # Now we have either one or several XSF files. If there is only one,
    # simply load it, otherwise ask for which one to load !!!
    # ------------------------------------------------------------------------

    set nfiles [llength $files]
    
    # now create a Viewer ...

    if { $viewmol_exists == "" } {
	if { $title_off } {		
	    wm deiconify .
	}
	ViewMol .
    }

    # ... and load the structure 

    if { $nfiles == 0 } {
	ErrorDialog "An ERROR occured: cube2xsf has failed !!!"
	return
    } elseif { $nfiles == 1 } {
	set file $files
    } else {
	# make a selection-list, where user will select a directory !!!
	set file [g98Cube:selectFile $files]
    }
	
    xsfOpen $g98(cube_dir)/$file .mesa
}
proc g98Cube:cube2xsf {file} {
    global g98 system

    # uncompress the file is necessary

    set file [gunzipFile $file]


    # make a new directory where converting files will be placed

    set dir $system(SCRDIR)/g98cube
    file mkdir $dir
    cd $dir
    set g98(cube_dir) [pwd]

    # execute cube2xsf
    set cw [DisplayUpdateWidget "Calculating" "Converting GAUSSIAN CUBE file to XSF"]
    update
    xcCatchExec $system(BINDIR)/cube2xsf 1 $file
    destroy $cw
    return [glob -nocomplain *.xsf]
}


proc g98Cube:selectFile {files} {
    global g98cube

    set result ""

    set t [xcToplevel .g98cube "Select File" "Select File"]

    set f1 [frame $t.1 -class StressText]
    set f2 [frame $t.2]
    set f3 [frame $t.3]    
    pack $f1 $f2 $f3 -side top -padx 10 -pady 10 -ipadx 10 -ipady 10


    set m [message $f1.m -text "Your CUBE file contain several molecular orbitals, therefore several XSF files were created.\n\nPlease select a particular XSF file that you would like to analyze." -width 400 -justify left]
    pack $m -side top -fill both -expand 1 -padx 3 -pady 3

    set ind 1
    set g98cube(xsf_file) [lindex $files 0]
    
    set irow 1
    set icol 1
    foreach file $files {
	set r [radiobutton $f2.r$ind \
		   -variable g98cube(xsf_file) \
		   -text     "File: $file" \
		   -value    $file \
		   -relief   ridge \
		   -bd       2 \
		   -anchor   w]
	grid $r -row $irow -column $icol -padx 3 -pady 3 -sticky we
	incr icol
	if { $icol > 3 } {
	    set icol 1
	    incr irow
	}
	incr ind
    }
    
    set b [button $f3.b -text "Continue" -command [list CancelProc $t]]
    pack $b -side top -ipadx 5 -ipady 5

    tkwait window $t
    return $g98cube(xsf_file)
}