#!tcl

#
# pkt - check system.ini for installed NDIS3PKT
#     - backup system.ini if necessary
#     - add section if necessary
#

set netcard0 0
set netcard1 0
set netcard2 0

set infile $env(windir)\\system.ini
set infile [string toupper $infile]

#
# make a backup copy if necessary
#
set bakfile $env(windir)\\system.old
set bakfile [string toupper $bakfile]

set exists [file exists $bakfile]
if {$exists == 0} {
    set b [open $bakfile w]
    set f [open $infile r]
    while {[gets $f line] >= 0} {
        puts -nonewline $b $line
    }
    echo
    echo $infile SAVED AS $bakfile
    close $b
    close $f
}

set f [open $infile r]

#
# check netcard0
#
set pat "netcard0=" 
while {[gets $f line] >= 0} {
    if [regexp $pat $line] {
        set netcard0 1
        break
    }
}
#
# check netcard1
#
set pat "netcard1=" 
while {[gets $f line] >= 0} {
    if [regexp $pat $line] {
        set netcard1 1
        break
    }
}
#
# check netcard2
#
set pat "netcard2=" 
while {[gets $f line] >= 0} {
    if [regexp $pat $line] {
        set netcard2 1
        break
    }
}
close $f
set cards [expr $netcard0+$netcard1+$netcard2]
if {$cards == 3} {
    error "OK"
}     
set f [open $infile r]
set w [open "temp.1" w] 
#
# find [386Enh] section
#
set pat {\[386???\]}
while {[gets $f line] >= 0} {
    puts -nonewline $w $line
    if [string match $pat $line] break
#    if [regexp $pat $line] break
}
#
# write a device= statement
#
set device "device=[pwd]\\ndis3pkt.386"
puts -nonewline $w $device 
#
# delete any further device statements
#
set pat "ndis3pkt.386"
while {[gets $f line] >= 0} {
    if [regexp $pat $line] continue
    puts -nonewline $w $line
}
close $w
close $f
#
# find [ndis3pkt] section and delete it
#
set f [open "temp.1" r]
set w [open "temp.2" w] 
set pat {\[ndis3pkt\]}
while {[gets $f line] >= 0} {
    if [string match $pat $line] break
    puts -nonewline $w $line
}
close $f
close $w
#
# add a new [ndis3pkt] section
#
set f [open "temp.2" r]
set w [open $infile w] 
while {[gets $f line] >= 0} {
    puts -nonewline $w $line
}
set section {[ndis3pkt]}
set netcard0 "netcard0="
set netcard1 "netcard1="
set netcard2 "netcard2="
set buffers "buffers=40"
set muxfull "warnmuxfull=false"
set ignore "ignorelocalbroadcast=false"
puts -nonewline $w $section
puts -nonewline $w $netcard0
puts -nonewline $w $netcard1
puts -nonewline $w $netcard2
puts -nonewline $w $buffers
puts -nonewline $w $ignore
puts $w $muxfull
close $f
close $w
error "ERROR"
