File indexing completed on 2023-10-25 09:39:09
0001
0002
0003 exec tclsh "$0" ${1+"$@"}
0004
0005 proc print_usage {} {
0006 puts stderr ""
0007 puts stderr "Usage: [file tail [info script]] file_name line_number_1 line_number_2 ..."
0008 puts stderr ""
0009 return
0010 }
0011
0012
0013 if {$argc < 2} {
0014 print_usage
0015 exit 1
0016 }
0017
0018
0019 set fname [lindex $argv 0]
0020 if {![file readable $fname]} {
0021 puts stderr "Error: file \"$fname\" does not exist (or unreadable)"
0022 exit 1
0023 }
0024
0025 proc file_contents {filename} {
0026 set chan [open $filename "r"]
0027 set contents [read $chan [file size $filename]]
0028 close $chan
0029 return $contents
0030 }
0031
0032 set lines [split [file_contents $fname] "\n"]
0033 set nlines [llength $lines]
0034
0035 set line_numbers [list]
0036 foreach inp [lrange $argv 1 end] {
0037 if {![string is integer -strict $inp]} {
0038 puts stderr "Argument \"$inp\" does not represent a valid line number"
0039 exit 1
0040 }
0041 if {$inp <= 0 || $inp > $nlines} {
0042 puts stderr "Line number $inp is out of range"
0043 exit 1
0044 }
0045 lappend line_numbers [expr {$inp - 1}]
0046 }
0047
0048 foreach l $line_numbers {
0049 puts [lindex $lines $l]
0050 }
0051
0052 exit 0