X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=www%2Fz39util.tcl;h=36a28a1588133b7fc54bf8ff06cc06e48cb382a5;hb=8bafbc608e1ffba9ee87f4856e586dffa57901b8;hp=bfa560845c37b69475f5c6238558e0bec46a798c;hpb=e406f6fe976eeae769f193a9d48938d903c02543;p=egate.git diff --git a/www/z39util.tcl b/www/z39util.tcl index bfa5608..36a28a1 100644 --- a/www/z39util.tcl +++ b/www/z39util.tcl @@ -1,5 +1,5 @@ # -# $Id: z39util.tcl,v 1.37 1996/03/08 16:47:08 adam Exp $ +# $Id: z39util.tcl,v 1.41 1996/03/14 11:50:51 adam Exp $ # proc saveState {} { uplevel #0 { @@ -65,7 +65,7 @@ proc fail-response {} { set sessionWait -1 } -proc display-brief {zset no setNo targetNo} { +proc display-medium {zset no setNo targetNo} { global env global sessionId @@ -84,21 +84,136 @@ proc display-brief {zset no setNo targetNo} { return } set rtype [$zset recordType $no] - if {$rtype == "SUTRS"} { + switch $rtype { + SUTRS { + html { } + html [join [$zset getSutrs $no]] + html "
\n" + return + } + WAIS { + html { } + html [join [$zset getWAIS $no headline]] + html {} + html "
\n" + html {Score: } [$zset getWAIS $no score] + set lines [$zset getWAIS $no lines] + if {$lines > 0} { + html {, } $lines { lines} + } + html "
\n" + return + } + } + if {![catch { + set author [$zset getMarc $no field 100 * a] + set corp [$zset getMarc $no field 110 * a] + set meet [$zset getMarc $no field 111 * a] + set title [$zset getMarc $no field 245 * a] + if {[llength $author] == 0} { + set cover [$zset getMarc $no field 245 * {[bc]}] + } else { + set cover [$zset getMarc $no field 245 * b] + } + set location [$zset getMarc $no field 260 * a] + set publisher [$zset getMarc $no field 260 * b] + set year [$zset getMarc $no field 260 * c] + set score [$zset getMarc $no field 999 * r] + } dispError ] } { html { } - html [join [$zset getSutrs $no]] - html "
\n" - return - } - if {$rtype == "WAIS"} { + set p 0 + foreach a $author { + if {$p} { + html ", " + } + html $a + set p 1 + } + foreach a $corp { + if {$p} { + html ", " + } + html $a + set p 1 + } + foreach a $meet { + if {$p} { + html ", " + } + html $a + set p 1 + } + if {$p} { + html ": " + } + set nope 1 + foreach v $title { + html $v + set nope 0 + } + set v [join $cover ""] + if {[string length $v] > 0} { + set nope 0 + html $v + } elseif {$nope} { + html "No Title" + } + html { } + if {[scan $score %d nscore]} { + html "; Score " $nscore + } + } else { html { } - html [join [$zset getWAIS $no headline]] - html {} - html "
\n" + html {No Title} + html { } + html "Error: " $dispError "\n" + } + html "
\n" +} + +proc display-brief {zset no setNo targetNo} { + global env + global sessionId + + html {
  • } + set type [$zset type $no] + if {$type == "SD"} { + set err [lindex [$zset diag $no] 1] + set add [lindex [$zset diag $no] 2] + if {$add != {}} { + set add " :${add}" + } + html "${no} Error ${err}${add}
    \n" + return + } + if {$type != "DB"} { return } + set rtype [$zset recordType $no] + switch $rtype { + SUTRS { + html { } + html [string range [join [$zset getSutrs $no]] 0 70] + html "
    \n" + return + } + WAIS { + html { } + html [string range [join [$zset getWAIS $no headline]] 0 70] + + html {} + set score [$zset getWAIS $no score] + html { Score } $score + html "
    \n" + return + } + } if {![catch { set author [$zset getMarc $no field 100 * a] set corp [$zset getMarc $no field 110 * a] @@ -140,11 +255,13 @@ proc display-brief {zset no setNo targetNo} { if {$p} { html ": " } + html {} set nope 1 foreach v $title { html $v set nope 0 } + html {} if {$nope} { set v [join $cover ""] if {[string length $v] > 40} { @@ -168,26 +285,36 @@ proc display-brief {zset no setNo targetNo} { html "
    \n" } -proc display-raw {zset no tno} { +proc display-raw {zset no setNo targetNo} { set type [$zset type $no] - if {$type == "SD"} { - set err [lindex [$zset diag $no] 1] - set add [lindex [$zset diag $no] 2] - if {$add != {}} { - set add " :${add}" + switch $type { + SD { + set err [lindex [$zset diag $no] 1] + set add [lindex [$zset diag $no] 2] + if {$add != {}} { + set add " :${add}" + } + html "

    ${no}

    \n" + html "Error ${err}${add}
    \n" + return + } + DB { + } + default { + return } - html "

    ${no}

    \n" - html "Error ${err}${add}
    \n" - return - } - if {$type != "DB"} { - return } set rtype [$zset recordType $no] - if {$rtype == "SUTRS"} { - html [join [$zset getSutrs $no]] "
    \n" - return - } + switch $rtype { + SUTRS { + html "\n" [join [$zset getSutrs $no]] "\n\n" + return + } + WAIS { + html "\n" [join [$zset getWAIS $no text]] "\n\n" + return + } + } if {[catch {set r [$zset getMarc $no line * * *]}]} { html "Unknown record type: $rtype
    \n" return @@ -305,110 +432,11 @@ proc dl-marc-field-rec {zset no tag lead start stop startid sep} { } } -proc display-full-wais {zset no setNo targetNo} { +proc display-full-marc {zset no setNo targetNo} { global env global hist global sessionId - set i 0 - set element junk - htmlToken l [join [$zset getWAIS $no text]] { - if {[string compare [string index $l 0] {<}]} { - set data($element) $l - continue - } - switch -exact $l { - { - set element title - } - { - set element dateOfLastModification - } - { - set element controlIdentifier - } - { - set element lastChecked - } - { - set element bytes - } - { - set element linkage - } - { - incr i - } -
  • { - set element "$i,linkage" - } - { - set element "$i,title" - } - default { - set element junk - } - } - } - if {![info exists data(title)] || ![info exists data(linkage)]} { - html "
    " [join [$zset getWAIS $no text]] "\n
    \n" - return - } - html {Title: } {} $data(title) "
    \n" - html {URL: } $data(linkage) "
    \n" - html {Score: } [$zset getWAIS $no score] "
    \n" - html {Lines: } [$zset getWAIS $no lines] "
    \n" - if {[info exists data(bytes)]} { - html {Bytes: } $data(bytes) "
    \n" - } - if {[info exists data(dateOfLastModification)]} { - html {Last modified: } $data(dateOfLastModification) "
    \n" - } - if {[info exists data(lastChecked)]} { - html {Last checked: } $data(lastChecked) "
    \n" - } - html {} - html {Similar WAIS record
    } - html "\n" -} - -proc display-full {zset no setNo targetNo} { - set type [$zset type $no] - if {$type == "SD"} { - set err [lindex [$zset diag $no] 1] - set add [lindex [$zset diag $no] 2] - if {$add != {}} { - set add " :${add}" - } - html "Error ${err}${add}
    \n" - return - } - if {$type != "DB"} { - return - } - set rtype [$zset recordType $no] - if {$rtype == "SUTRS"} { - html "
    "
    -        html [join [$zset getSutrs $no]]
    -        html "

    \n" - return - } - if {$rtype == "WAIS"} { - display-full-wais $zset $no $setNo $targetNo - return - } - if {[catch {set r [$zset getMarc $no line * * *]}]} { - html "Unknown record type: $rtype
    \n" - return - } html "
    \n" set n [dl-marc-field $zset $no 700 a "Author" "Authors" "
    \n"] if {$n == 0} { @@ -497,10 +525,155 @@ proc display-full {zset no setNo targetNo} { dl-marc-field $zset $no 537 * "Source of data" {} "
    \n" dl-marc-field $zset $no 538 * "System details" {} "
    \n" dl-marc-field $zset $no 787 {[rstw6]} "Related information" {} "
    \n" + dl-marc-field $zset $no 999 r "Score" {} ", " dl-marc-field $zset $no 001 * "Local control number" {} ", " html "
    \n" } +proc display-full-wais {zset no setNo targetNo} { + global env + global hist + global sessionId + + set i 0 + set element junk + htmlToken l [join [$zset getWAIS $no text]] { + if {[string compare [string index $l 0] {<}]} { + if {[info exist data($element)]} { + set data($element) $data($element)$l + } else { + set data($element) $l + } + continue + } + switch -- $l { + { + set element title + } + { + set element dateOfLastModification + } + { + set element controlIdentifier + } + { + set element lastChecked + } + { + set element bytes + } + { + set element linkage + } + { + incr i + } +
  • { + set element "$i,linkage" + } + { + set element "$i,title" + } + { + set element ip + } + default { + set element junk + } + } + } + if {![info exists data(title)] || ![info exists data(linkage)]} { + set nwi 0 + } else { + set nwi 1 + } + html "
    \n" + html {
    Title} + if {$nwi} { + html {
    } $data(title) "" + html {
    URL} + html {
    } $data(linkage) "
    \n" + } else { + html {
    } [join [$zset getWAIS $no headline]] + } + html {
    Score
    } [$zset getWAIS $no score] + set lines [$zset getWAIS $no lines] + if {$lines > 0} { + html {
    Lines
    } $lines "
    \n" + } + if {!$nwi} { + html "
    \n" [join [$zset getWAIS $no text]] "\n
    \n" + return + } + if {[info exists data(bytes)]} { + html {
    Bytes
    } $data(bytes) + } + if {[info exists data(dateOfLastModification)]} { + html {
    Last modified
    } $data(dateOfLastModification) + } + if {[info exists data(lastChecked)]} { + html {
    Last checked
    } $data(lastChecked) "
    \n" + } + if {[info exists data(ip)]} { + html {
    Initial text
    } $data(ip) "
    \n" + } + if {0} { + html {} + html {Similar WAIS record
    } + } + if {[info exists data($i,linkage)]} { + html "
    References\n" + } + for {set i 1} {[info exists data($i,linkage)]} {incr i} { + html {
    } + if {[info exists data($i,title)]} { + html $data($i,title) + } else { + html Untitled + } + html "
    \n" + } + html "\n" +} + +proc display-full {zset no setNo targetNo} { + set type [$zset type $no] + switch $type { + SD { + set err [lindex [$zset diag $no] 1] + set add [lindex [$zset diag $no] 2] + if {$add != {}} { + set add " :${add}" + } + html "Error ${err}${add}
    \n" + return + } + DB { + } + default { + return + } + } + set rtype [$zset recordType $no] + switch $rtype { + SUTRS { + html "
    " [join [$zset getSutrs $no]] "

    \n" + return + } + WAIS { + display-full-wais $zset $no $setNo $targetNo + return + } + } + if {[catch {set r [$zset getMarc $no line * * *]}]} { + html "Unknown record type: $rtype
    \n" + return + } + display-full-marc $zset $no $setNo $targetNo +} + proc display-rec {from to dfunc setNo targetNo} { while {$from <= $to} { @@ -533,16 +706,16 @@ proc build-query {t ilines} { set q {} for {set i 1} {$i <= $ilines} {incr i} { set term [join [egw_form entry$i]] + if {[string length $term] == 0} continue if {![string compare [lindex $targets($t) 1] WAIS]} { - if {[string length $op] == 0} { + if {[string length $q] == 0} { set q $term } else { set q "$term $q" } set op [egw_form logic$i] continue - } - if {[string length $term] > 0} { + } else { set field [join [egw_form menu$i]] catch {unset attr} foreach x [lindex $targets($t) 2] { @@ -555,13 +728,13 @@ proc build-query {t ilines} { set attr [lindex [lindex [lindex $targets($t) 2] 0] 1] } switch $op { - And + And { set q "@and $q ${attr} \"${term}\"" } - Or + Or { set q "@or $q ${attr} \"${term}\"" } - {And not} + {And not} { set q "@not $q ${attr} \"${term}\"" } - {} + {} { set q "${attr} \"${term}\"" } } set op [egw_form logic$i] @@ -672,6 +845,7 @@ proc display-scan {setNo scanNo tno} { global targets global env global sessionId + global scriptQuery set zz z39$tno set zs $zz.s$scanNo.$setNo @@ -701,7 +875,7 @@ proc display-scan {setNo scanNo tno} { if {0} { regsub -all {\ } [lindex [$zs scanLine $i] 1] + tterm html {} } else { regsub -all {\ } [lindex [$zs scanLine $i] 1] + tterm @@ -779,14 +953,8 @@ proc z39search {setNo piggy tno elements} { return 0 } } elseif {![catch [list $zz.$setNo smallSetUpperBound 0]]} { - if {$tno > 0} { - if {[info exists hist($setNo,$tno,hits)]} { - return 1 - } - } else { - if {[info exists hist($setNo,hits)]} { - return 1 - } + if {[info exists hist($setNo,$tno,hits)]} { + return 1 } } @@ -842,7 +1010,7 @@ proc z39search {setNo piggy tno elements} { if {$sessionWait != 1} { return 0 } - set hist($setNo,hits) [$zz.$setNo resultCount] + set hist($setNo,$tno,hits) [$zz.$setNo resultCount] return 1 } @@ -1021,8 +1189,12 @@ proc z39msearch {setNo elements start number cache} { } set zstatus($i) 1 incr zleft - egw_log debug "setNo=$setNo msearch " $hist($setNo,$i,query) - z39$i.$setNo search $hist($setNo,$i,query) + egw_log debug "msearch host=" $hist($setNo,$i,host) + egw_log debug "setNo=$setNo query=" $hist($setNo,$i,query) "=" + if {[catch {z39$i.$setNo search $hist($setNo,$i,query)}]} { + set zstatus($i) -1 + incr zleft -1 + } } elseif {[z39$i.$setNo resultCount] >= $start} { if {[expr $start + $number - 1] > [z39$i.$setNo resultCount]} { set tnumber [expr [z39$i.$setNo resultCount] - $start + 1] @@ -1142,19 +1314,25 @@ proc buttons-result-set-s {setNo targetNo setMax startPos after} { set zz z39$targetNo html "

    \n" - button-europagate + button-main if {$setMax > 0 && $setMax < [$zz.$setNo resultCount]} { + if {!$useIcons} { + html "\n | " + } html {Next Records} + html {">} } else { - html {">Next Records} " | \n" + html {">Next Records} } } if {$setMax > 0 && $startPos != "" && $startPos != "1"} { + if {!$useIcons} { + html "\n | " + } html {} } else { - html {">Previous Records} " | \n" + html {">Previous Records} } } - button-new-query 1 $setNo - button-new-target 1 - button-view-history 0 + if {$targetNo > 0} { + button-result-set $setNo $targetNo + } + button-new-query $setNo + button-new-target + button-view-history html "

    \n" } +proc score-sort {l r} { + return [expr [lindex $r 0] - [lindex $l 0]] +} + proc display-result-set-m-score {setNo} { global hist global useIcons @@ -1181,23 +1366,51 @@ proc display-result-set-m-score {setNo} { set not $hist($setNo,0,host) for {set i 1} {$i <= $not} {incr i} { - if {[lindex $status 0] != "DBOSD"} continue - - if {$hist($setNo,$i,offset) > $hist($setNo,maxPresent)} { - set nor $hist($setNo,$i,maxPresent) - } else { - set nor $hist($setNo,$i,offset) - } - for {set j 1} {$j < $not} {incr j} { - if {![string compare [z39$i.$setNo recordType] WAIS]} { - lappend scoreArray [list \ - [z39$i.$setNo getWAIS $j score] $i $setNo $j] + if {$zstatus($i) != 2} continue + set status [z39$i.$setNo responseStatus] + if {[lindex $status 0] != "DBOSD"} continue + set nor $hist($setNo,$i,offset) + for {set j 1} {$j <= $nor} {incr j} { + if {![string compare [z39$i.$setNo recordType $j] WAIS]} { + set score [z39$i.$setNo getWAIS $j score] + } elseif {![string compare [z39$i.$setNo recordType $j] USmarc]} { + set score [z39$i.$setNo getMarc $j field 999 * r] + if {[scan $score %d score] != 1} { + set score 10 + } } else { - lappend scoreArray [list 0 $i $setNo $j] + set score 10 + } + if {$score > 0} { + lappend scoreArray [list $score $i $j] } } } - html "score merge
    " + if {![info exists scoreArray]} { + html "

    Search produced no result


    \n" + } else { + html "
      \n" + set scoreSorted [lsort -command score-sort $scoreArray] + foreach r $scoreSorted { + set i [lindex $r 1] + set j [lindex $r 2] + display-$hist($setNo,format) z39$i.$setNo $j $setNo $i + } + html "
    \n" + } + for {set i 1} {$i <= $not} {incr i} { + if {$zstatus($i) != 2} continue + set status [z39$i.$setNo responseStatus] + if {[lindex $status 0] == "NSD"} { + z39$i.$setNo nextResultSetPosition 0 + set code [lindex $status 1] + set msg [lindex $status 2] + set addinfo [lindex $status 3] + html {
    } [lindex $targets($hist($setNo,$i,host)) 0] + html "
    Error: $msg: $addinfo (code $code)
    \n" + } + } + html "\n
    " } proc display-result-set-m-server {setNo} { @@ -1205,31 +1418,35 @@ proc display-result-set-m-server {setNo} { global useIcons global zstatus global targets + global env + global sessionId set not $hist($setNo,0,host) html "
    \n" for {set i 1} {$i <= $not} {incr i} { if {$zstatus($i) != 2} continue - html "

    " [lindex $targets($hist($setNo,$i,host)) 0] ": " set status [z39$i.$setNo responseStatus] if {[lindex $status 0] == "NSD"} { + html "

    " [lindex $targets($hist($setNo,$i,host)) 0] ": " z39$i.$setNo nextResultSetPosition 0 set code [lindex $status 1] set msg [lindex $status 2] set addinfo [lindex $status 3] html "Error

    \n
    NSD$code: $msg: $addinfo" } else { + html {
    } + html "

    " [lindex $targets($hist($setNo,$i,host)) 0] ": " set r [z39$i.$setNo resultCount] - html "$r hits

    \n
    \n
      \n" + html "$r hits

    \n
    \n" if {$hist($setNo,$i,offset) > $hist($setNo,maxPresent)} { - display-rec 1 $hist($setNo,maxPresent) \ - display-brief $setNo $i + set nor $hist($setNo,maxPresent) } else { - display-rec 1 $hist($setNo,$i,offset) \ - display-brief $setNo $i + set nor $hist($setNo,$i,offset) } - html "" + display-rec 1 $nor display-$hist($setNo,format) $setNo $i } html "\n" } @@ -1322,8 +1539,8 @@ proc z39history {} { global sessionId global targets global html3 + global scriptQuery - set targetNo 0 if {![info exists nextSetNo]} { return } @@ -1339,67 +1556,77 @@ proc z39history {} { html {
    } "\n" } for {set setNo 1} {$setNo < $nextSetNo} {incr setNo} { - if {$hist($setNo,scan) > 0} continue - set host $hist($setNo,0,host) - if {$html3} { - html {} - } else { - html {
    } + if {[info exists hist($setNo,scan)]} { + if {$hist($setNo,scan) > 0} continue } - html [lindex $targets($host) 0] - if {$html3} { - html {} [join $hist($setNo,0,database)] + if {[info exists hist($setNo,1,host)]} { + set start 1 + set end $hist($setNo,0,host) } else { - if {[llength [lindex $targets($host) 1]] > 1} { - html ": " - foreach b $hist($setNo,0,database) { - html " $b" + set start 0 + set end 0 + } + for {set i $start} {$i <= $end} {incr i} { + if {$html3} { + html {} + } else { + html {
    } + } + set host $hist($setNo,$i,host) + html [lindex $targets($host) 0] + if {$html3} { + html {} [join $hist($setNo,$i,database)] + } else { + if {[llength [lindex $targets($host) 1]] > 1} { + html ": " + foreach b $hist($setNo,$i,database) { + html " $b" + } } + html {. } } - html {. } - } - if {$html3} { - html {} - } - if {[info exists hist($setNo,hits)]} { - html { } $hist($setNo,hits) {} + if {$html3} { + html {} + } + if {[info exists hist($setNo,$i,hits)]} { + html { } $hist($setNo,$i,hits) {} } else { - html {">Result: } $hist($setNo,hits) { hits.} + if {$html3} { + html {Failed} + } else { + html {Search failed.} + } } - } else { if {$html3} { - html {Failed} + html {} } else { - html {Search failed.} + html "
    \n" } - } - if {$html3} { - html {} - } else { - html "
    \n" - } - html { } - } else { - html {">Query: } - } - set op {} - for {set i 1} {$i <= 3} {incr i} { - if {[string length $hist($setNo,form,entry$i)] > 0} { - html " " [join $op " "] " " - html [join $hist($setNo,form,menu$i)] "=" - html $hist($setNo,form,entry$i) - set op $hist($setNo,form,logic$i) + html { } + } else { + html {">Query: } + } + set op {} + for {set j 1} {$j <= 3} {incr j} { + if {[string length $hist($setNo,form,entry$j)] > 0} { + html " " [join $op " "] " " + set pre [join $hist($setNo,form,menu$j)] + if {[string length $pre] > 0} { + html $pre "=" + } + html $hist($setNo,form,entry$j) + set op $hist($setNo,form,logic$j) + } + } + if {$html3} { + html {} "\n" } - } - if {$html3} { - html {} "\n" } } if {$html3} { @@ -1414,27 +1641,30 @@ proc displayError {msga msgb} { html "

    \n" html {Error} html "

    " $msga "

    \n" - if {$msgb != ""} { + if {[string length $msgb] > 0} { html "

    " $msgb "

    \n" } html "

    \n" } -proc button-europagate {} { +proc button-main {} { global useIcons html {} if {$useIcons} { html {Europagate} } else { - html {Europagate | } + html {Europagate} } } -proc button-define-target {more} { +proc button-define-target {} { global useIcons global env global sessionId + if {!$useIcons} { + html "\n | " + } html {} } else { html {">Define Target} - if {$more} { - html " | \n" - } else { - html "\n" - } } } -proc button-new-target {more} { +proc button-new-target {} { global useIcons global env global sessionId - global mMode + global scriptTarget - html {} } else { html {">New Target} - if {$more} { - html " | \n" - } else { - html "\n" - } } } -proc button-view-history {more} { +proc button-view-history {} { global useIcons global env global sessionId global nextSetNo + if {!$useIcons} { + html "\n | " + } html {} } else { html {">View History} - if {$more} { - html " | \n" - } else { - html "\n" - } } } -proc button-new-query {more setNo} { +proc button-new-query {setNo} { global useIcons global env global sessionId global hist - global mMode + global scriptQuery - html {} + html {} + if {$useIcons} { html {} } else { html {New Query} - if {$more} { - html " | \n" - } else { - html "\n" - } } } -proc button-scan-window {more setNo} { +proc button-result-set {setNo tno} { global useIcons global env global sessionId global hist + if {!$useIcons} { + html "\n | " + } + html {} + } else { + html {">Result Set} + } +} + +proc button-scan-window {setNo} { + global useIcons + global env + global sessionId + global hist + + if {!$useIcons} { + html "\n | " + } set targetNo 0 html {} @@ -1540,11 +1778,6 @@ proc button-scan-window {more setNo} { html {alt="Scan" border=0>} } else { html {Scan} - if {$more} { - html " | \n" - } else { - html "\n" - } } } @@ -1577,7 +1810,7 @@ proc splitDatabaseSpec {host} { } proc mergeHostSpec {host databases} { - return ${host}.[join $databases -] + return ${host}/[join $databases -] } proc mkAssoc {assoc host} { @@ -1598,4 +1831,63 @@ proc mkAssoc {assoc host} { ir $assoc } } -} \ No newline at end of file +} + +proc serverList {headlineProc targetProc} { + global targets + global groupsDescription + + proc targetsCmp {l r} { + global targets + return [string compare [string tolower [lindex $targets($l) 0]] \ + [string tolower [lindex $targets($r) 0]]] + } + proc groupCmp {l r} { + global groupsOrder + if {[catch {set lo $groupsOrder($l)}]} { + set lo 10 + } + if {[catch {set ro $groupsOrder($r)}]} { + set ro 10 + } + return [expr $lo - $ro] + } + + foreach tt [array names targets] { + lappend groupsTmp([lindex $targets($tt) 6]) $tt + } + set gts [lsort -command groupCmp [array names groupsTmp]] + foreach gt $gts { + if {[info exists groupsDescription($gt)]} { + eval $headlineProc [list $groupsDescription($gt)] + } else { + eval $headlineProc $gt + } + set tn [lsort -command targetsCmp $groupsTmp($gt)] + foreach t $tn { + eval $targetProc $t + } + } + + rename targetsCmp {} +} + +proc session-lost {} { + global useIcons + + html {WWW/Z39.50 Gateway: Session Expired} + html \n {} + set useIcons 1 + button-main + html {

    Session Expired

    } + html {Your session has expired. Please reload the gateways' } + html {front page.

    } \n + set useIcons 0 + button-main + html {} +} + +if {[info exists utilExtension]} { + source $utilExtension +} +