This file is indexed.

/usr/share/xcrysden/Tcl/fhiPreset.tcl is in xcrysden-data 1.5.60-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
#############################################################################
# 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/fhiPreset.tcl                                    #
# ------                                                                    #
# Copyright (c) 1996-2003 by Anton Kokalj                                   #
#############################################################################

proc fhiPreset {type file} {
    global system fhi

    if { $type != "inpini" && $type != "coord" } {
	ErrorDialog "invalid type of fhiPreset !!!"
	return 0
    }
    
    # just for any case
    cd $system(SCRDIR)
    if { $type == "inpini" } {
	##############################
	# execute CONVERTING program #
	##############################
	xcCatchExecReturn $system(BINDIR)/fhi_inpini2ftn34 $file getlist
	#if { [catch {exec $system(BINDIR)/fhi_inpini2ftn34 $file getlist}] } {
	#    ErrorDialog "error while executing \"fhi_inpini2ftn34 $file getlist\" program"
	#    return 0
	#}
    } else {
	# type == coord
	##############################
	# execute CONVERTING program #
	##############################
	xcCatchExecReturn $system(BINDIR)/fhi_coord2xcr $file getlist
	#if { [catch {exec $system(BINDIR)/fhi_coord2xcr $file getlist}] } {
	#    ErrorDialog "error while executing \"fhi_coord2xcr $file getlist\" program"
	#    return 0
	#}
    }
    
    # check if "fhi_species_name.list" was created ?!!
    if { ! [file exists fhi_species_name.list] } {
	ErrorDialog "\"FHIxxMD's\" file is probably bad !!!"
	return 0
    } 

    #
    # pop-up the toplevel with corresponding entries
    #

    set t [xcToplevel [WidgetName] "Atomic Numbers of Species" \
	    "Atomic Numbers" . 0 0 1]

    set f1 [frame $t.1]
    set f2 [frame $t.2]
    pack $f1 $f2 -side top -padx 10 -pady 10 -fill x

    frame $f1.title -class StressText
    label $f1.title.l -text "Specify Atomic Numbers of Species" \
	    -relief groove -bd 2
    $f1.title.l config -font [ModifyFontSize $f1.title.l 18]
    pack $f1.title -side top -expand 1
    pack $f1.title.l -ipadx 10 -ipady 3 -padx 10 -pady 10 -expand 1

    #
    # build up for ScrollEntries
    # 
    set list           [split [ReadFile fhi_species_name.list] \n]
    set fhi(n_species) [lindex $list 0]
    set species_names  [concat [lrange $list 1 end]]
    for {set i 0} {$i < $fhi(n_species)} {incr i} {
	set ii [expr $i + 1]
	set fhi(NAME,$ii) [lindex $species_names $i]
    }
    set labellist  [list "Species:" "Atomic Number:"]    
    set arraylist  [list NAME NAT]
    set arraytype  [list text posint]
    set buttonlist [list 1 \
	    [list {Periodic Table} scroll_ptableSelectNAT $t fhi NAT]]	    

    ScrollEntries \
	    $f1 \
	    $fhi(n_species) \
	    "Set Atomic Number for Species #" \
	    $labellist \
	    $arraylist \
	    $arraytype \
	    15 \
	    fhi \
	    $buttonlist \
	    3

    # OK and cancel button should be cerated as well
    set ok  [button $f2.ok -text OK -command [list fhiPresetOK $t]]    
    set can [button $f2.can -text Cancel -command [list fhiPresetCan $t]]
    pack $ok $can -side left -expand 1 -padx 10

    tkwait window $t

    return $fhi(status)
}
    
#
# maybe the program should found out if OK button was pressed by the
# presence of "fhi_species_nat.list" file !!!
#
proc fhiPresetOK t {
    global varlist foclist fhi system
    
    if ![check_var $varlist $foclist] {return 0}
    #
    # its seems OK; write the "fhi_species_nat.list" file and destroy 
    # the toplevel window
    set out "$fhi(n_species)\n"
    for {set i 1} {$i <= $fhi(n_species)} {incr i} {
	append out "$fhi(NAT,$i) "
    }
    ####################
    # just in any case #
    cd $system(SCRDIR)
    ####################
    WriteFile fhi_species_nat.list $out w

    destroy $t
    set fhi(status) 1
}
	    

proc fhiPresetCan t {
    global fhi system

    ####################
    # just in any case #
    cd $system(SCRDIR)
    ####################
    if { [file exists fhi_species_nat.list] } {
	file delete fhi_species_nat.list
    }
    destroy $t
    set fhi(status) 0
}