From: Adam Dickmeiss Date: Wed, 20 Sep 1995 11:37:06 +0000 (+0000) Subject: Work on GRS. X-Git-Tag: IRTCL.1.4~210 X-Git-Url: http://sru.miketaylor.org.uk/cgi-bin?a=commitdiff_plain;h=085650bacf45b945faca0c5a9120abafab76b5ce;p=ir-tcl-moved-to-github.git Work on GRS. --- diff --git a/formats/line.tcl b/formats/line.tcl index e814366..c513740 100644 --- a/formats/line.tcl +++ b/formats/line.tcl @@ -4,7 +4,10 @@ # Sebastian Hammer, Adam Dickmeiss # # $Log: line.tcl,v $ -# Revision 1.6 1995-06-29 12:34:20 adam +# Revision 1.7 1995-09-20 11:37:06 adam +# Work on GRS. +# +# Revision 1.6 1995/06/29 12:34:20 adam # IrTcl now works with both tk4.0b4/tcl7.4b4 and tk3.6/tcl7.3 # # Revision 1.5 1995/06/22 13:16:28 adam @@ -26,6 +29,24 @@ # as popup windows. # # +proc display-grs-line {w r i} { + foreach e $r { + for {set j 0} {$j < $i} {incr j} { + insertWithTags $w " " {} + } + insertWithTags $w "([lindex $e 0]:[lindex $e 2])" marc-tag + if {[lindex $e 3] == "string"} { + insertWithTags $w [lindex $e 4] {} + insertWithTags $w "\n" {} + } elseif {[lindex $e 3] == "subtree"} { + insertWithTags $w "\n" {} + display-grs-line $w [lindex $e 4] [expr $i+1] + } else { + insertWithTags [lindex $e 4] {} + insertWithTags $w " ?\n" {} + } + } +} proc display-line {sno no w hflag} { global monoFlag @@ -53,6 +74,8 @@ proc display-line {sno no w hflag} { set rtype [z39.$sno recordType $no] if {$rtype == "SUTRS"} { insertWithTags $w [join [z39.$sno getSutrs $no]] + } elseif {$rtype == "GRS1"} { + display-grs-line $w [z39.$sno getGrs $no] 6 } else { if {[catch { set title [lindex [z39.$sno getMarc $no field 245 * a] 0] diff --git a/formats/medium.tcl b/formats/medium.tcl index 52ea4af..1f189e4 100644 --- a/formats/medium.tcl +++ b/formats/medium.tcl @@ -4,7 +4,10 @@ # Sebastian Hammer, Adam Dickmeiss # # $Log: medium.tcl,v $ -# Revision 1.5 1995-06-22 13:16:29 adam +# Revision 1.6 1995-09-20 11:37:06 adam +# Work on GRS. +# +# Revision 1.5 1995/06/22 13:16:29 adam # Feature: SUTRS. Setting getSutrs implemented. # Work on display formats. # @@ -20,6 +23,24 @@ # as popup windows. # # +proc display-grs-medium {w r i} { + foreach e $r { + for {set j 0} {$j < $i} {incr j} { + insertWithTags $w " " {} + } + insertWithTags $w "([lindex $e 0]:[lindex $e 2])" marc-tag + if {[lindex $e 3] == "string"} { + insertWithTags $w [lindex $e 4] {} + insertWithTags $w "\n" {} + } elseif {[lindex $e 3] == "subtree"} { + insertWithTags $w "\n" {} + display-grs-medium $w [lindex $e 4] [expr $i+1] + } else { + insertWithTags [lindex $e 4] {} + insertWithTags $w " ?\n" {} + } + } +} proc display-medium {sno no w hflag} { if {$hflag} { @@ -46,6 +67,10 @@ proc display-medium {sno no w hflag} { $w insert end "\n" return } + if {$rtype == "GRS1"} { + display-grs-medium $w [z39.$sno getGrs $no] 0 + return + } if {[catch {set i [z39.$sno getMarc $no field 245 * a]}]} { insertWithTags $w "Unknown record type: $rtype\n" marc-id return diff --git a/formats/raw.tcl b/formats/raw.tcl index 52fe8a7..5e7eb6e 100644 --- a/formats/raw.tcl +++ b/formats/raw.tcl @@ -4,7 +4,10 @@ # Sebastian Hammer, Adam Dickmeiss # # $Log: raw.tcl,v $ -# Revision 1.5 1995-08-28 12:22:09 adam +# Revision 1.6 1995-09-20 11:37:07 adam +# Work on GRS. +# +# Revision 1.5 1995/08/28 12:22:09 adam # Use 'line' instead of 'list' in MARC extraction. # # Revision 1.4 1995/06/22 13:16:29 adam @@ -19,6 +22,25 @@ # as popup windows. # # +proc display-grs-raw {w r i} { + foreach e $r { + for {set j 0} {$j < $i} {incr j} { + insertWithTags $w " " {} + } + insertWithTags $w "([lindex $e 0]:[lindex $e 2])" marc-tag + if {[lindex $e 3] == "string"} { + insertWithTags $w [lindex $e 4] {} + insertWithTags $w "\n" {} + } elseif {[lindex $e 3] == "subtree"} { + insertWithTags $w "\n" {} + display-grs-raw $w [lindex $e 4] [expr $i+1] + } else { + insertWithTags [lindex $e 4] {} + insertWithTags $w " ?\n" {} + } + } +} + proc display-raw {sno no w hflag} { if {$hflag} { insertWithTags $w "\n$no\n" {} @@ -44,6 +66,10 @@ proc display-raw {sno no w hflag} { $w insert end "\n" return } + if {$rtype == "GRS1"} { + display-grs-raw $w [z39.$sno getGrs $no] 0 + return + } if {[catch {set r [z39.$sno getMarc $no line * * *]}]} { insertWithTags $w "Unknown record type: $rtype\n" marc-id return