X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=formats%2Fline.tcl;h=05bf2a5918241257222a0110737c8973f07be220;hb=a53ac4ea1088652b80fec373975c4f8855071903;hp=e81436697ab3a5412ed5aa008dc775968f127fca;hpb=936873a6012cd41b7534a38d633d7cf6572877fa;p=ir-tcl-moved-to-github.git diff --git a/formats/line.tcl b/formats/line.tcl index e814366..05bf2a5 100644 --- a/formats/line.tcl +++ b/formats/line.tcl @@ -4,7 +4,22 @@ # Sebastian Hammer, Adam Dickmeiss # # $Log: line.tcl,v $ -# Revision 1.6 1995-06-29 12:34:20 adam +# Revision 1.11 1996-01-23 15:24:21 adam +# Wrore more comments. +# +# Revision 1.10 1995/10/17 17:39:46 adam +# Minor bug fix in call to display-grs-line. +# +# Revision 1.9 1995/10/17 14:18:09 adam +# Minor changes in presentation formats. +# +# Revision 1.8 1995/10/17 10:58:08 adam +# More work on presentation formats. +# +# 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 @@ -27,6 +42,32 @@ # # +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 $w [lindex $e 4] {} + insertWithTags $w " ?\n" {} + } + } +} + +# Procedure display-line {sno no w hflag} +# sno result set number (integer) +# no record position (integer) +# w text widget in which the record should be displayed. +# hflag header flag. If true a header showing the record position +# should be displayed. +# This procedure attempts to display records in a line-per-line format. proc display-line {sno no w hflag} { global monoFlag set type [z39.$sno type $no] @@ -47,17 +88,20 @@ proc display-line {sno no w hflag} { } if {$hflag} { set nostr [format "%5d " $no] - insertWithTags $w $nostr marc-tag + insertWithTags $w $nostr marc-small-head } if {$type == "DB"} { 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] 0 } else { if {[catch { set title [lindex [z39.$sno getMarc $no field 245 * a] 0] set year [lindex [z39.$sno getMarc $no field 260 * c] 0] - insertWithTags $w "$title - $year\n" marc-data + insertWithTags $w "$title - " marc-text + insertWithTags $w "$year\n" marc-it }]} { insertWithTags $w "Unknown record type: $rtype\n" marc-id }