<!doctype linuxdoc system>
<!--
- $Id: ir-tcl.sgml,v 1.9 1995-06-25 10:25:33 adam Exp $
+ $Id: ir-tcl.sgml,v 1.11 1995-06-30 12:39:49 adam Exp $
-->
<article>
<title>IrTcl User's Guide and Reference
<author>Index Data, <tt/info@index.ping.dk/
-<date>$Revision: 1.9 $
+<date>$Revision: 1.11 $
<abstract>
This document describes IrTcl — an information retrieval toolkit for
Tcl and Tk that provides access to the Z39.50/SR protocol.
<itemize>
<item> A simple command line shell — useful for
testing purposes.
-<item> A system which operates within the Tk environment which
-makes it very easy to implement GUI clients.
+<item> A simple command line shell which operates within the Tk
+ environment — makes it very easy to implement GUI clients.
</itemize>
<sect>Compilation and installation
In order to compile you need:
<itemize>
<item> An ANSI C compiler such as GNU C.
-<item> Tcl 7.3.
+<item> Tcl. Version 7.3 and 7.4 has been tested.
<item> YAZ version 1.0b or higher
</itemize>
As an option you may want:
<itemize>
-<item> Tk 3.6.
+<item> Tk. Version 3.6 and 4.0b4 has been tested.
<item> XTI/mosi
</itemize>
-Newer versions of Tcl and Tk have been released. These packages
-will <em/not/ work with <sf/IrTcl/. The <sf/IrTcl/ package will
-probably be able to use the newer versions soon. Fortunately this
-move will not change the <sf/IrTcl/ API — only the Tk code of the
-test client will be modified.
-
Unpack the <sf/IrTcl/ package at the same directory level as <bf/YAZ/.
Type:
Summary of files installed (the names refer to the Makefile variables):
<descrip>
-<tag><tt>ir-tk</tt></tag> The Tk client. Installed in <tt>BINDIR</tt> —
-defaults to <tt>/usr/local/bin</tt>. When ir-tk starts it reads
-<tt>client.tcl</tt>. If the files doesn't exist in the current
-directory it tries to read it from <tt>IRTCLDIR</tt> - defaults
-to <tt>/usr/local/lib/irtcl</tt>.
-<tag><tt>ir-tcl</tt></tag> The Tcl client. Installed in <tt>BINDIR</tt> —
-defaults to <tt>/usr/local/bin</tt>.
+<tag><tt>ir-tk</tt></tag> The <sf/IrTcl/ shell for Tk.
+ Installed in <tt>BINDIR</tt> — defaults to
+ <tt>/usr/local/bin</tt>. <tt>ir-tk</tt> works like
+ <tt>wish</tt> &mdash without arguments it reads commands from stdin.
+ A source file may be specified by option <tt>-f</tt>. <tt>ir-tk</tt>
+ accept the same set of options as <tt>wish</tt>.
+<tag><tt>ir-tcl</tt></tag> The <sf/IrTcl/ shell for Tcl. Installed in
+ <tt>BINDIR</tt> — defaults to <tt>/usr/local/bin</tt>.
+<tag><tt>client.tcl</tt></tag> A graphical client for <tt>ir-tk</tt>.
+ The client is installed as an executable script called <tt>irclient</tt> in
+ <tt>BINDIR</tt>. This client needs a number of files, bitmaps, etc.
+ The client looks for the files in the current directory &mdash if
+ this fails it tries to look in the directory <tt>IRTCLDIR</tt>
+ — defaults to <tt>/usr/local/lib/irtcl</tt>.
<tag><tt>libirtcl.a</tt></tag> The <sf/IrTcl/ library.
-Installed in <tt>LIBDIR</tt> — defaults to <tt>/usr/local/lib</tt>.
+ Installed in <tt>LIBDIR</tt> — defaults to <tt>/usr/local/lib</tt>.
<tag><tt>ir-tcl.h</tt></tag> The <sf/IrTcl/ header file.
-Installed in <tt>INCDIR</tt> — defaults to <tt>/usr/local/include</tt>.
-<tag><tt>client.tcl</tt></tag> A graphical client written in TK.
-Installed in <tt>IRTCLDIR</tt> — defaults to
-<tt>/usr/local/lib/irtcl</tt>.
+ Installed in <tt>INCDIR</tt> — defaults to <tt>/usr/local/include</tt>.
<tag><tt>clientrc.tcl</tt></tag> A setup file with definitions
-of target and queries. Read and updated by <tt>client.tcl</tt>. Installed
-in <tt>IRTCLDIR</tt> — defaults to <tt>/usr/local/lib/irtcl</tt>.
+ of target and queries. Read and updated by <tt>client.tcl</tt>. Installed
+ in <tt>IRTCLDIR</tt> — defaults to <tt>/usr/local/lib/irtcl</tt>.
<tag><tt>formats/*</tt></tag> Display format files written
-in Tk. Read by <tt>client.tcl</tt>. Installed
-in <tt>IRTCLDIR</tt> — defaults to <tt>/usr/local/lib/irtcl</tt>.
+ in Tk. Read by <tt>client.tcl</tt>. Installed
+ in <tt>IRTCLDIR</tt> — defaults to <tt>/usr/local/lib/irtcl</tt>.
<tag><tt>bitmaps/*</tt></tag> Various bitmap files. Read by
-<tt>client.tcl</tt>. Installed
-in <tt>IRTCLDIR</tt> — defaults to <tt>/usr/local/lib/irtcl</tt>.
+ <tt>client.tcl</tt>. Installed
+ in <tt>IRTCLDIR</tt> — defaults to <tt>/usr/local/lib/irtcl</tt>.
<tag><tt>LICENSE</tt></tag> LICENSE file. Read by
-<tt>client.tcl</tt>. Installed
-in <tt>IRTCLDIR</tt> — defaults to <tt>/usr/local/lib/irtcl</tt>.
+ <tt>client.tcl</tt>. Installed
+ in <tt>IRTCLDIR</tt> — defaults to <tt>/usr/local/lib/irtcl</tt>.
</descrip>
<sect1>ir-tcl
<sect1>ir-tk
<p>
-<tt>ir-tk</tt> is a program which basically waits for X events and
-socket events (assocated with Z39.50/SR targets). <tt>ir-tk</tt> normally
-tries to evaluate the file named <tt>client.tcl</tt> when it
-starts. However, this behaviour may be changed by specifying another
-filename with the <tt>-file</tt> option.
-
-The enclosed script <tt>client.tcl</tt> is a graphical client which
-demonstates an example of a user interface for the Z39.50/SR protocols.
+<tt>ir-tk</tt> is a program that works like <tt>wish</tt> except that
+<tt>ir-tk</tt> include the new set of commands. All options accepted
+by <tt>wish</tt> are also accepted by <tt>ir-tk</tt>.
+
+The enclosed script <tt>client.tcl</tt> for <tt>ir-tk</tt> is a graphical
+client which demonstates an example of a user interface for the Z39.50/SR
+protocols.
At first the script was relatively small but it has grown since the
-beginning. At present it is about 3000 lines.
+beginning. At present it is about 3000 lines.
+
+The client can be started directly from the top level directory
+of <sf/IrTcl/ by typing:
+<tscreen><verb>
+$ ir-tk -f client.tcl
+</verb></tscreen>
+
+Or, if you have installed <sf/IrTcl/ you may also type:
+<tscreen><verb>
+$ irclient
+</verb></tscreen>
The client lets up define targets and query types within the interface.
Hence, you will not need to modify configation files.
<tscreen><verb>
ir z
-ir-set z.1 z
z databaseNames books
+ir-set z.1 z
z callback {connect-response}
z connect fake.com
<sect1>SUTRS
+<p>
In <sf/IrTcl/ a SUTRS record is treated as one single string. To retrieve
-a SUTRS string at a given index, the <tt>getSutrs</tt> should be used.
-The <tt>getSutrs</tt> is immediately followed by a index.
+a SUTRS record use the <tt>getSutrs</tt> followed by an index.
<sect>Scan