X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=shell.tcl;h=9b64f68ea0c9003fd85f69b2defe86acfe171ffd;hb=d026c3e06f6e19e5ed4174ab1a504a4b5af79183;hp=a6a1c926bca101539e5efcfdb04ec4266464a171;hpb=a3d15c17d1389f3047e2c271e69df869f6dd904d;p=ir-tcl-moved-to-github.git
diff --git a/shell.tcl b/shell.tcl
index a6a1c92..9b64f68 100644
--- a/shell.tcl
+++ b/shell.tcl
@@ -1,8 +1,17 @@
-# $Id: shell.tcl,v 1.3 1996-08-21 11:24:03 adam Exp $
+# $Id: shell.tcl,v 1.8 2002-03-21 11:11:53 adam Exp $
#
+
+if {[catch {ir-log-init all irtcl shell.log}]} {
+ set e [info sharedlibextension]
+ puts "Loading irtcl$e ..."
+ load ./irtcl$e irtcl
+ ir-log-init all irtcl shell.log
+}
+
source display.tcl
ir z
+
set pref(base) Default
set pref(format) usmarc
@@ -12,6 +21,7 @@ proc help {} {
puts " base "
puts " format "
puts " find "
+ puts " sort "
puts " show "
puts ""
}
@@ -29,9 +39,14 @@ proc target {name} {
z callback {connect-response}
if [catch "z connect $name"] {
fail-response
- } else {
+ } elseif {$ok == 0} {
vwait ok
}
+ if {$ok == 1} {
+ puts "Connected and initialized."
+ } else {
+ puts "Failed."
+ }
return {}
}
@@ -54,7 +69,6 @@ proc init-response {} {
global ok pref
set ok 1
- puts "Connected and initialized."
ir-set z.1 z
}
@@ -63,12 +77,23 @@ proc find-response {z} {
if {$sstatus} {
set h [$z resultCount]
puts "Search ok. $h hits"
+ set terms [$z searchResult]
+ foreach tc $terms {
+ puts "[lindex $tc 0]: [lindex $tc 1]"
+ }
} else {
puts "Search failed"
}
common-response $z 1
}
+proc sort-response {z} {
+ global ok
+ set sstatus [$z sortStatus]
+ puts "Sort Status: $sstatus"
+ set ok 1
+}
+
proc common-response {z from} {
global ok pref
@@ -86,7 +111,8 @@ proc common-response {z from} {
}
DBOSD {
puts "DBOSD"
- for {set i $from} {$i < [$z nextResultSetPosition]} {incr i} {
+ set to [expr $from + [$z numberOfRecordsReturned]]
+ for {set i $from} {$i < $to} {incr i} {
if {[$z type $i] == ""} {
break
}
@@ -97,7 +123,7 @@ proc common-response {z from} {
}
}
-proc show {from number} {
+proc show {{from 1} {number 1}} {
global ok pref
set ok 0
@@ -106,6 +132,18 @@ proc show {from number} {
vwait ok
return {}
}
+
+proc explain {query} {
+ global ok pref
+
+ set ok 0
+ z.1 databaseNames IR-Explain-1
+ z.1 preferredRecordSyntax explain
+ z callback {find-response z.1}
+ z.1 search "@attrset exp1 @attr 1=1 @attr 2=3 @attr 3=3 @attr 4=3 $query"
+ vwait ok
+ return {}
+}
proc find {query} {
global ok pref
@@ -119,3 +157,13 @@ proc find {query} {
return {}
}
+proc sort {query flags} {
+ global ok pref
+
+ set ok 0
+ z callback {sort-response z.1}
+ z.1 sort "$query $flags"
+ vwait ok
+ return {}
+}
+